收藏 分销(赏)

应数计算机程序设计(C语言)实验.docx

上传人:仙人****88 文档编号:8991739 上传时间:2025-03-10 格式:DOCX 页数:122 大小:222.91KB
下载 相关 举报
应数计算机程序设计(C语言)实验.docx_第1页
第1页 / 共122页
应数计算机程序设计(C语言)实验.docx_第2页
第2页 / 共122页
点击查看更多>>
资源描述
问题 A: 问候世界 时间限制: 1 Sec  内存限制: 2 MB 题目描述 输出:Hello world 输入 无 输出 Hello world 样例输入 样例输出 Hello world 提示 Append Code #include <stdio.h> #include <stdlib.h> int main() { printf("Hello world\n"); return 0; } 问题 B: Hello world! 时间限制: 1 Sec  内存限制: 2 MB 题目描述 Xiao_ming有两个哥哥,大哥叫Da_min,二哥叫Er_min。三兄弟放学回家,父母分别跟他们打招呼。 输入 无 输出 请输出: Hello Da_min, Hello Er_min, Hello Xiao_ming! 样例输入 样例输出 Hello Da_min, Hello Er_min, Hello Xiao_ming! 提示 请注意换行符 Append Code #include <stdio.h> #include <stdlib.h> int main() { printf("Hello Da_min,\nHello Er_min,\nHello Xiao_ming!\n"); return 0; } 问题 C: I/O练习 时间限制: 1 Sec  内存限制: 2 MB 题目描述 I/O是Input/Output的缩写,是“输入与输出”的意思。 从键盘输入一个整数,然后输出这个整数。 输入 一个整数,在int类型的表示范围内。 输出 输入的整数。 样例输入 10 样例输出 10 提示 Append Code #include <stdio.h> #include <stdlib.h> int main() { int n; scanf ("%d",&n); printf("%d\n",n); } 问题 A: 货币兑换 时间限制: 1 Sec  内存限制: 2 MB 题目描述 给出人民币对美元、欧元、日元的当日汇率,求给定金额的人民币能兑换成外币的金额,求给定金额的外币能兑换成人民币的金额。 要计算的外币有三种:美元、欧元、日元。 输入 输入有三行。 第一行依次为美元、欧元、日元外币汇率,用空格分开。汇率用100外币为单位,精确到小数点后4位,如668.5200表示“100美元=668.5200人民币”。汇率浮动范围为(0,10000)。 第二行为外币金额x,第三行为人民币金额y。x,y均为整数,且0<x,y<10000。 输出 输出为两行。 第一行是金额为x的美元、欧元、日元兑换成人民币的金额,用空格分开。 第二行是金额为y的人民币兑换成美元、欧元、日元的金额,用空格分开。 所有金额精确到小数点后两位。 样例输入 668.5200 908.0685 7.9852 1500 1500 样例输出 10027.80 13621.03 119.78 224.38 165.19 18784.75 提示 了解浮点数据类型的精确度和输出控制。 Append Code #include <stdio.h> #include <stdlib.h> int main() { double a,b,c; double x,y; scanf("%lf%lf%lf/n",&a,&b,&c); scanf("%lf",&x); scanf("%lf",&y); printf("%.2lf %.2lf %.2lf\n",x*0.01*a, x*0.01*b, x*0.01*c); printf("%.2lf %.2lf %.2lf\n",y/a*100, y/b*100, y/c*100); return 0; } 问题 B: 求字符的值 时间限制: 1 Sec  内存限制: 2 MB 题目描述 从键盘输入3个字符(不含双字节字符),分别输出每个字符的十进制值(ASCII码)、八进制值和十六进制值。 输入 输入为3个字符。 输出 输出为3行。 每一行为每个字符(对应输入顺序)的十进制、八进制和十六进制值,用空格分隔开。每个输出的值占3个字符,不足3个字符前面补0。 样例输入 0 A 样例输出 048 060 030 032 040 020 065 101 041 提示 了解字符值的存储和整型的关系。 Append Code #include <stdio.h> #include <stdlib.h> int main() { char a,b,c; scanf("%c%c%c",&a,&b,&c); printf("%.3d %.3o %.3x\n",a,a,a); printf("%.3d %.3o %.3x\n",b,b,b); printf("%.3d %.3o %.3x\n",c,c,c); return 0; } 问题 C: 奇数还是偶数? 时间限制: 1 Sec  内存限制: 2 MB 题目描述 输入一个整数,判读它是奇数还是偶数。 输入 输入只有一行,为一个100以内的正整数。 输出 输出为一行。 若输入为偶数则输出“even”,奇数输出“odd”。 样例输入 30 样例输出 even 提示 用整数运算可以解决,练习“?:”表达式。 Append Code #include <stdio.h> #include <stdlib.h> int main() { int a; scanf("%d",&a); if(a>=0&&a<=100); if(a%2==0)printf("even"); else printf("odd"); return 0; } 问题 A: 判断是否是元音字母 时间限制: 1 Sec  内存限制: 2 MB 题目描述 输入一个英文字母,判断是否是元音字母。元音字母是:a,e,i,o u,A,E,I,O,U 输入 输入一个英文字母 输出 是元音字母,输出“yes”,否则输出“no”,行尾没有回车。 样例输入 A 样例输出 yes 提示 Append Code #include <stdio.h> #include <stdlib.h> void main() { char c; scanf("%c",&c); if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) { if(c=='A'||c=='E'||c=='I'||c=='O'||c=='U'||c=='a'||c=='e'||c=='i'||c=='o'||c=='u') printf("yes"); else printf("no"); return 0; } } 问题 B: 你过线了吗? 时间限制: 1 Sec  内存限制: 128 MB 题目描述 经过四年的学习,你决定报考我国著名的“285”高校之一的北青大学,经过认真的复习,残酷的考试,终于知晓了自己的考试成绩,也知道了北青大学的录取分数线,请你编程判断,自己过线了吗? 输入 输入有2行,第一行有4个正整数,分别表示三门课程的分数线以及总分分数线。第二行有3个非负整数,分别表示你考的三门课程的成绩。 输出 如果你的三门课程成绩都不低于相应课程的分数线,且你的考试总分也不低于北青大学的总分分数线要求,则输出“congratulations”,否则输出“sorry”。 样例输入 70 80 70 240 80 80 82 样例输出 congratulations 提示 如果你不会使用分支语句,同样可以使用条件运算符实现该程序。 Append Code #include <stdio.h> #include <stdlib.h> int main() { int a,b,x,y,c,d,e; scanf("%d %d %d %d",&a,&b,&x,&y); scanf("%d %d %d",&c,&d,&e); if(c<a||d<b||e<x||c+d+e<y) printf("sorry"); else printf("congratulations"); return 0; } 问题 C: k个数的平均值 时间限制: 1 Sec  内存限制: 128 MB 题目描述 求k个数的平均值。 输入 输入分为两部分:第一个数是k,然后输入k个较小的整数。 输出 输出为这k个整数的平均值,保留3位小数。 样例输入 3 1 2 3 样例输出 2.000 提示 Append Code #include<stdio.h> int main() { int k,i,s; double ave=0; scanf("%d",&k); for(i=1;i<=k;i++) { scanf("%d",&s); ave+=s; } ave=ave/k; printf("%.3lf\n",ave); } 问题 D: 多个数的平均值 时间限制: 1 Sec  内存限制: 128 MB 题目描述 求k个数的平均值。 输入 输入k个较小的整数,以EOF结尾。 输出 输出为这k个整数的平均值,保留3位小数。 样例输入 1 2 3 样例输出 2.000 提示 Append Code #include <stdio.h> int main() { int c,k,i=0; double a,sum=0; while(scanf("%lf",&a)!=EOF) { i++; sum+=a; } printf("%.3lf",sum/i); } 问题 A: 分数转小数 时间限制: 1 Sec  内存限制: 2 MB 提交: 4367  解决: 2562 [提交][状态][讨论版] 题目描述 求一个分数的小数值,要求保留小数点后2位,并且进行四舍五入。 输入 输入为一个分数m,格式为:“分子/分母”,也可能会有负号:“-分子/分母”。 输出 输出m的小数值,输出保留到小数后2位,根据小数点后的第3位向前四舍五入。 样例输入 -5/3 样例输出 -1.67 提示 printf函数是可以进行四舍五入的。 Append Code [提交][状态][讨论版] 한국어<   中文  فارسی  English  ไทย  All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include <stdio.h> #include <stdlib.h> int main() { double a,b,m; scanf("%lf/%lf",&a,&b); m=a/b; printf("%.2f",m); } 问题 B: 产生等差序列 之一 时间限制: 1 Sec  内存限制: 2 MB 提交: 6534  解决: 2688 [提交][状态][讨论版] 题目描述 根据给出的初始数、公差和序列长度求等差序列。 输入 输入为一行,格式见sample。其中,start为初始数,step为公差,times为序列长度。满足,times>0,step不为0。 输出 把这个等差序列输出在一行里,序列两数之间用一个空格分隔。 样例输入 start = 1, step = 2, times = 100 样例输出 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 155 157 159 161 163 165 167 169 171 173 175 177 179 181 183 185 187 189 191 193 195 197 199 提示 Append Code [提交][状态][讨论版] 한국어<   中文  فارسی  English  ไทย  All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include <stdio.h> #include <stdlib.h> int main() { int x,y,z,n; int a[1000]; scanf("start = %d, step = %d, times = %d",&x,&y,&z); for(n=0;n<z;n++) { a[n]=x+y*n; } for(n=0;n<z;n++) { if(n==z-1) printf("%d ",a[n]); else printf("%d ",a[n]); } } 问题 C: 产生等差序列 之二 时间限制: 1 Sec  内存限制: 2 MB 提交: 5970  解决: 2119 [提交][状态][讨论版] 题目描述 根据给出的初始数、公差和终止条件求等差序列。 输入 输入为一行,格式见sample。其中,start为初始数,step为公差,end为终止条件。满足,step不为0,并且start和end的大小关系与step的方向一致。end不一定是序列的最后一个数。start、step和end均为int类型的范围内的整数。 输出 把这个等差序列输出在一行里,序列两数之间用一个空格分隔。 样例输入 start = 1, step = 2, end = 200 样例输出 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 155 157 159 161 163 165 167 169 171 173 175 177 179 181 183 185 187 189 191 193 195 197 199 提示 根据start和step的大小关系,判断序列终止的条件可能不同。 Append Code [提交][状态][讨论版] 한국어<   中文  فارسی  English  ไทย  All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include <stdio.h> #include <stdlib.h> int main() { int i,j,k,b,n; int a[1000]; scanf("start = %d, step = %d, end = %d",&i,&j,&k); a[0]=i; if(j>=0) for(n=0;a[n]<=k;n++) a[n+1]=i+(n+1)*j; else for(n=0;a[n]>=k;n++) a[n+1]=i+(n+1)*j; for(b=0;b<n;b++) if(b==n-1) printf("%d",a[b]); else printf("%d ",a[b]); } 问题 D: Print Graphics Problerm (II) 时间限制: 1 Sec  内存限制: 16 MB 提交: 5259  解决: 2184 [提交][状态][讨论版] 题目描述 向标准输出上打印一些用ASCII字符组成的图形。 输入 输入为多个整数n,0<n<100。当n为0时结束输入。 输出 若n为偶数,则输出一个正向的n层等腰三角形;n为奇数,则输出一个倒向的n层等腰三角形。三角形由“+”组成。任意两个图形之间有一个空行分隔,格式见sample。 样例输入 5 4 0 样例输出 +++++++++ +++++++ +++++ +++ + + +++ +++++ +++++++ 提示 Append Code [提交][状态][讨论版] 한국어<   中文  فارسی  English  ไทย  All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include <stdio.h> #include <stdlib.h> int main() { int i,j,k; int a[100]; scanf("%d",&a[0]); for(i=1;i<100;i++) { scanf("%d",&a[i]); if(a[i]==0) break ; } for(i=0;i<=100;i++) { if(a[i]==0) break; if(a[i]%2==0) { for(j=1;j<=a[i];j++) { for(k=1;k<=(a[i]-j);k++) printf(" "); for(k=1;k<=(2*j-1);k++) printf("+"); printf("\n"); } printf("\n"); } else { for(j=a[i];j>=1;j--) { for(k=a[i]-j;k>=1;k--) printf(" "); for(k=2*j-1;k>=1;k--) printf("+"); printf("\n"); } printf("\n"); } } return 0; } 问题 E: 它满足条件吗? 时间限制: 1 Sec  内存限制: 128 MB 提交: 3696  解决: 2040 [提交][状态][讨论版] 题目描述 需要判断给定的一个整数是否同时满足如下三个条件: 1. 它是一个完全平方数。 2. 它是一个偶数。 3. 它是一个正数。 注:若一个数能表示成某个自然数的平方的形式,则称这个数为完全平方数。例如: 0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,484,529 输入 一个int范围内的整数。 输出 如果输入的数字满足条件,则输出yes,否则输出no。 样例输入 100 样例输出 yes 提示 注意逻辑表达式判断三个条件的顺序。 如果你不会使用分支语句,同样可以使用条件运算符实现该程序。 库函数sqrt()可以用于求一个数的平方根。 Append Code [提交][状态][讨论版] 한국어<   中文  فارسی  English  ไทย  All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int x,y; scanf("%d",&x); y=sqrt(x); if(x==y*y&&x%2==0&&x>0) printf("yes"); else printf("no"); return 0; } 问题 A: 输出整数的最低两位 时间限制: 1 Sec  内存限制: 2 MB 提交: 5800  解决: 2383 [提交][状态][讨论版] 题目描述 把一个整数的最低两位打印出来,不输出整数的符号。 输入 输入为一个整数n,不会超出int类型的数据范围。 输出 输出n的最低两位数字。但是,输入的数字本身不足两位时,不应当补0。如,输入为“1”,则输出为“1”。 样例输入 -102 样例输出 02 提示 printf函数可以完成补0的操作。 Append Code [提交][状态][讨论版] 한국어<   中文  فارسی  English  ไทย  All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include <stdio.h> #include <stdlib.h> int main() { int z; scanf("%d",&z); if(z<0) z*=-1; if(z<100) printf("%d\n",z); else { int ans=z%100; if(ans<10) printf("0"); printf("%d\n",ans); } return 0; } 问题 B: 笛卡尔平面 时间限制: 1 Sec  内存限制: 16 MB 提交: 5805  解决: 1693 [提交][状态][讨论版] 题目描述 在数学里,笛卡儿坐标系(Cartesian坐标系),也称直角坐标系,是一种正交坐标系。二维的直角坐标系是由两条相互垂直、0 点重合的数轴构成的。在平面内,任何一点的坐标 是根据数轴上对应的点的坐标设定的。 二维的直角坐标系通常由两个互相垂直的坐标轴设定,通常分别称为 x-轴 和 y-轴;两个坐标轴的相交点,称为原点,通常标记为 O ,既有“零”的意思,又是英语“Origin”的首字母。每一个轴都指向一个特定的方向。这两个不同线的坐标轴,决定了一个平面,称为 xy-平面,又称为笛卡儿平面。 以笛卡尔平面上一个点的坐标(x,y)坐标为输入,输出该点是否在坐标轴上或者位于哪一个象限。 输入 输入为一行。输入的坐标x、y值都会带有1位小数,括号和逗号都是英文半角符号,逗号后面有一个空格。 输出 四个象限输出为“quadrand I”、“quadrand II”、“quadrand III”、“quadrand IV”,x-轴和y-轴输出为“x axis”和“y axis”,原点输出为“origin” 输出为以下三种: (-1.0, -2.5) is in quadrand III (0.0, 4.8) is on the y axis (0.0, 0.0) is origin 样例输入 (-1.0, -2.5) 样例输出 (-1.0, -2.5) is in quadrand III 提示 Append Code [提交][状态][讨论版] 한국어<   中文  فارسی  English  ไทย  All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include <stdio.h> #include <stdlib.h> int main() { double x,y; scanf("(%lf, %lf)",&x,&y); if(x>0&&y>0) printf("(%.1lf, %.1lf) is in quadrand I",x,y); else if(x<0&&y>0) printf("(%.1lf, %.1lf) is in quadrand II",x,y); else if(x<0&&y<0) printf("(%.1lf, %.1lf) is in quadrand III",x,y); else if(x>0&&y<0) printf("(%.1lf, %.1lf) is in quadrand IV",x,y); else if(x!=0&&y==0) printf("(%.1lf, %.1lf) is on the x axis",x,y); else if(x==0&&y!=0) printf("(%.1lf, %.1lf) is on the y axis",x,y); else if(x==0&&y==0) printf("(%.1lf, %.1lf) is origin",x,y); return 0; } 问题 C: Print Graphics Problerm (I) 时间限制: 1 Sec  内存限制: 16 MB 提交: 2220  解决: 1439 [提交][状态][讨论版] 题目描述 向标准输出上打印一些用ASCII字符组成的图形。 输入 输入为一个整数n,0<n<100。 输出 输出一个n层等腰三角形,格式见sample。 样例输入 5 样例输出 + +++ +++++ +++++++ +++++++++ 提示  推导出第i层要输出的空格和“+”与i的关系,用循环很容易完成。 Append Code [提交][状态][讨论版] 한국어<   中文  فارسی  English  ไทย  All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include <stdio.h> #include <stdlib.h> int main() { int a,i,t; scanf("%d",&a); for (i=1;i<=a;i++) { for (t=1;t<=a-i;t++) printf(" "); for (t=1;t<=2*i-1;t++) printf("+"); printf("\n"); } } 问题 D: 输出连续的整数序列 之一 时间限制: 1 Sec  内存限制: 128 MB 提交: 2938  解决: 1579 [提交][状态][讨论版] 题目描述 输出指定区间内的所有整数。 输入 输入只有1行,即N,N是一个int类型的数据。 输出 如果N>0,则输出[1,N]区间内的所有整数;如果N =0,则输出0;如果N<0,则输出[N,-1]内的所有整数。 如果输出的整数多于1个,则两两之间用一个空格隔开。 样例输入 9 样例输出 1 2 3 4 5 6 7 8 9 提示 Append Code [提交][状态][讨论版] 한국어<   中文  فارسی  English  ไทย  All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include <stdio.h> #include <stdlib.h> int main() { int n,m,i; scanf("%d",&n); if (n==0) printf ("%d",0); else if (n>0) { printf ("%d",1); for (i=1;i<n;i++) printf (" %d",i+1);} else { printf ("%d",n); for (i=n;i<-1;i++) printf (" %d",i+1); } return 0; } 问题 E: 输出连续的整数序列 之二 时间限制: 1 Sec  内存限制: 128 MB 提交: 3835  解决: 844 [提交][状态][讨论版] 题目描述 输出若干个连续的整数序列。 输入 输入有多行。第一行是N>0,表示后面有N行输入。 之后每行输入包含2个数据P和Q,两者之间用空格隔开,且均在int类型的表示范围内。 输出 输出N个连续的整数序列,序列两两之间用一个空行隔开。 其中第i个序列是在P和Q之间的整数,包括P和Q,且当输出的数据多于1个时,两两之间用一个空格隔开。 样例输入 3 1 100 10 -10 10 10 样例输出 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 10 提示  当P或Q是int类型的能够表示的最大值或者最小值时,应该如何处理? Append Code [提交][状态][讨论版] 한국어<   中文  فارسی  English  ไทย  All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include <stdio.h> #include <stdlib.h> int main() { int n,m,i,a,b,e,j=1; scanf("%d",&n); i=1; while(i<=n) { i++; scanf ("%d%d",&a,&b); if(a>b) { e=a; a=b; b=e; } printf ("%d",a); for (j=1;j<=b-a;j++) { printf (" %d",a+j); } printf ("\n\n"); } return 0; } Problem A: 编写函数:求三个整数的最大值 (Append Code) Time Limit: 1 Sec  Memory Limit: 2 MB Submit: 5834  Solve
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服