收藏 分销(赏)

C语言例题.doc

上传人:丰**** 文档编号:3015018 上传时间:2024-06-13 格式:DOC 页数:57 大小:79KB 下载积分:14 金币
下载 相关 举报
C语言例题.doc_第1页
第1页 / 共57页
C语言例题.doc_第2页
第2页 / 共57页


点击查看更多>>
资源描述
C语言例题 目录 1 输入两个整数,求第一个数除以第二个数所得到的余数 2输入圆的半径,求圆的周长与面积,输出计算结果,输出时要求按题目案例说明,取小数点后2位数字,其中∏=3.14。 3 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。 4 输入一个华氏温度,要求输出摄氏温度。公式为C=(5/9)*(F-32),F为华氏温度,C为摄氏温度。输出取2位小数。 5 小学数学中,我们了解到在自然数中,2,4,8......之类的数为偶数,1,3,5......为奇数。 下面的任务是让计算机来完成,判断所输入的数据是否是奇数。 6 计算购货款,根据输入的购货金额,输出实际付款金额。购货折扣率如下: 购货金额<=500元 不打折 500元<购货金额<=1000元 打9折 1000元<购货金额 打8折 7 有一函数 x (x<1) y= 2x-1 (1≤x<10) 3x-11 (x≥10) 编程实现输入x的值,输出y的值。 8 给出三个整数,请你设计一个程序,求出这三个数的和、乘积和平均数。 9 小瑜是个爱吃糖果的馋鬼,天天嚷着要爸爸买糖果,可是爸爸很忙,哪有时间啊,于是就让小瑜自己去了,糖果3角钱一块,爸爸给小瑜n元钱,请你告诉小瑜最多能买几块糖,还剩几角钱 10 以两个输入为一组,两个浮点数之间用空格分隔。 11 输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下: 90~100为A; 80~89为B; 70~79为C; 60~69为D; 0~59为E; 12 有一函数 x (x<1) y= 2x-1 (1≤x<10) 3x-11 (x≥10) 编程实现输入x的值,输出y的值 13 从键盘接受任一字符, 如果是小写字母转换为大写输出; 如果是大写转换为小写输出; 如果是数字原样输出; 否则显示“error”。 14 输入年和月,判断该月有几天? 15 三角形具有稳定性,现在有三个木棍.要用来搭个三角形。现在从键盘接收三个浮点数,代表三条边,问能否组成三角形,并求其面积。 16 输入三个整数a,b,c。并进行两两相加,最后比较相加和的最大值。 17 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3 现在要求输出所有在m和n范围内的水仙花数。 18 青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。 19 求n个数的平均值 20 求n以内的所有素数。n(2<=n<=1000) 21 多项式的描述如下: 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ... 22 找出数组a中能被3整除的数,要求用数组完成。 23 输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。 24 将给定的一维数组进行逆置,即第一个元素与最后一个元素互换,第二个元素与倒数第二个互换,其余类推。 25 输入n(n<100)个数,找出其中最小的数,将它与第一个数交换后输出这些数 26 找出一个一维数组中的最大值,最小值,并交换其位置。 27 找出一个一维数组中的第一个负数。 28 数组排序 29 我们在键盘上输入的任意一个字符,在计算机中均是由数值保存的,且是固定的。我们称其为ASCII码值。 我们知道,字母a在计算机中存放的时候是按97存放的;字母A是65。但有些字母是我们不知道的。 下面的任务是要求输入任意个字符(不考虑回车符的转换),字符用回车分隔,输出它们的ASCII码,每个数值后带一个空格。每五个一行。 如果超过五个,换另一行。 30 输入多个三位整数,分别倒置后并输出。例如:输入356,输出653 31 制作一个简单的计算机程序,可实现的加减乘除运算('+','-','*','/') 32 大家都知道,手机号是一个11位长的数字串,同时,作为学生,还可以申请加入校园网,如果加入成功,你将另外拥有一个短号。假设所有的短号都是是 6+手机号的后5位,比如号码为13512345678的手机,对应的短号就是645678。 现在,如果给你一个11位长的手机号码,你能找出对应的短号吗 33 从键盘上输入数字星期,然后输出它的英文: 其对应关系是 1 Monday 2 Tuesday 3 Wednesday 4 Thursday 5 Friday 6 Saturday 7 Sunday 34 输入n(n<100)个数,找出其中最小的数,将它与第一个数交换后输出这些数 35 找出一个一维数组中的最大值,最小值,并交换其位置。 36 找出一个一维数组中的第一个负数。 37 数组排序 1 输入两个整数,求第一个数除以第二个数所得到的余数。 Input 输入数据有多组,每组占一行,每行中有两个数,用空格分隔。 Output 对于每组输入数据,输出一行 Sample Input 5 2 6 4 7 5 8 2 Sample Output 1 2 2 0 #include<stdio.h> int main() { int x,y,z; while(scanf("%d%d",&x,&y)!=EOF) { z=x%y; printf("%d\n",z); } return 0; } 2 输入圆的半径,求圆的周长与面积,输出计算结果,输出时要求按题目案例说明,取小数点后2位数字,其中∏=3.14。 Input 输入数据有多组,每组占一行,每行中有1个数 Output 对于每组输入数据,输出一行,需要有必要的提示 Sample Input 2 3.5 5 4.2 Sample Output 2.00,long:12.56,area:12.56 3.50,long:21.98,area:38.47 5.00,long:31.40,area:78.50 4.20,long:26.38,area:55.39 #include<stdio.h> int main() { double r,l,s; while(scanf("%lf",&r)!=EOF) { l=2*3.14*r; s=3.14*r*r; printf("%.2lf,long:%.2lf,area:%.2lf\n",r,l,s); } return 0; } 3 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。 Input 输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。 Output 对于每组输入数据,输出一行,结果保留两位小数。 Sample Input 0 0 0 1 0 1 1 0 Sample Output 1.00 1.41 #include<math.h> int main() { double x1,y1,x2,y2,a; while(scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2)!=EOF) { a=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2); a=sqrt(a); printf("%.2lf\n",a); } return 0; } 4 输入一个华氏温度,要求输出摄氏温度。公式为C=(5/9)*(F-32),F为华氏温度,C为摄氏温度。输出取2位小数。 Input 输入数据有多组,每组占一行,由1个实数组成 Output 对于每组输入数据,输出一行,要求输出摄氏温度,结果保留两位小数。 Sample Input 78 132 Sample Output 25.56 55.56 #include<stdio.h> int main() { double F,C; while(scanf("%lf",&F)!=EOF) { C=1.0*5/9*(F-32); printf("%.2lf\n",C); } return 0; } 5 小学数学中,我们了解到在自然数中,2,4,8......之类的数为偶数,1,3,5......为奇数。 下面的任务是让计算机来完成,判断所输入的数据是否是奇数。 Input 输入整数N,代表下面有N组测试数据。 接下来的N行,每行为一个整数。 Output 输出N个整数的奇偶性,如果是奇数请输出"YES!",否则输出"NO!"。 每个结果占一行。 Sample Input 3 45 75643 5786 Sample Output YES! YES! NO! #include<stdio.h> int main() { int a,N; scanf("%d",&N); while(N--) { scanf("%d",&a); if(a%2==0) printf("NO!\n",a); else printf("YES!\n",a); } return 0; } 6 计算购货款,根据输入的购货金额,输出实际付款金额。购货折扣率如下: 购货金额<=500元 不打折 500元<购货金额<=1000元 打9折 1000元<购货金额 打8折 Input 输入数据有多组,每组占一行,每行的一个数。 Output 对于每组输入数据,输出一个数,保留一位小数,每组输出占一行。 Sample Input 450 879 2000 Sample Output 450.0 791.1 1600.0 #include<stdio.h> int main() { float a,q; while(scanf("%f",&a)!=EOF) { if(a<=500) q=a; else if(a<=1000) q=0.9*a; else q=0.8*a; printf ("%.1f\n",q); } return 0; } 7 有一函数 x (x<1) y= 2x-1 (1≤x<10) 3x-11 (x≥10) 编程实现输入x的值,输出y的值。 Input 输入数据有多组,每组占一行,由一个整数组成。 Output 对于每组输入数据,输出一行。 Sample Input -5 8 17 Sample Output -5 15 40 #include<stdio.h> int main() { int x,y; while(scanf("%d",&x)!=EOF) { if(x<1) y=x; else if(x<=10) y=2*x-1; else y=3*x-11; printf("%d\n",y); } return 0; } 8 给出三个整数,请你设计一个程序,求出这三个数的和、乘积和平均数。 Input 输入数据有多组,每组占一行,每行包含3个实验数,分别表示三个正整数a、b、c,数据之间用空格隔开。 Output 输出一行,包括三个的和、乘积、平均数。 数据之间用一个空格隔开,其中平均数保留小数后面两位。 Sample Input 1 2 3 Sample Output 6 6 2.00 #include<stdio.h> int main() { int a,b,c; double s,t,e; while(scanf("%d%d%d",&a,&b,&c)!=EOF) { s=a+b+c; t=a*b*c; e=(a+b+c)/3.0; printf("%.0lf %.0lf %.2lf\n",s,t,e); } return 0; } 9 小瑜是个爱吃糖果的馋鬼,天天嚷着要爸爸买糖果,可是爸爸很忙,哪有时间啊,于是就让小瑜自己去了,糖果3角钱一块,爸爸给小瑜n元钱,请你告诉小瑜最多能买几块糖,还剩几角钱 Input 输入数据有多组,每组表示爸爸给小瑜的钱n元,n为整数。 Output 小瑜最多能买回的糖块数以及剩下的钱(单位为:角),用空格分隔。 Sample Input 2 Sample Output 6 2 #include<stdio.h> int main() { int a,b,c; while(scanf("%d",&a)!=EOF) { b=a*10/3; c=a*10%3; printf("%d %d\n",b,c); } return 0; } 10 以两个输入为一组,两个浮点数之间用空格分隔。 Input 对每一组数据输出计算后的结果,一个输出占一行,保留3位小数。如果分母为0的话,就输出“devisor is zero !”。 Output 对每一组数据输出计算后的结果,一个输出占一行,保留3位小数。如果分母为0的话,就输出“devisor is zero !”。 Sample Input 1 2 1 0 3 4 Sample Output 0.500 devisor is zero ! 0.750 #include<stdio.h> #include<math.h> int main() { double a,b,s; while(scanf("%lf%lf",&a,&b)!=EOF) if(b==0) printf("devisor is zero !\n"); else { s=a/b; printf("%.3lf\n",s); } return 0; } 11 输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下: 90~100为A; 80~89为B; 70~79为C; 60~69为D; 0~59为E; Input 输入数据有多组,每组占一行,由一个整数组成。 Output 对于每组输入数据,输出一行。如果输入数据不在0~100范围内,请输出一行:“Score is error!”。 Sample Input 56 67 100 123 Sample Output E D A Score is error! #include<stdio.h> int main() { int a; while(scanf("%d",&a)!=EOF) { if(a>=0&&a<60) printf("E\n"); if(a>=60&&a<70) printf("D\n"); if(a>=70&&a<80) printf("C\n"); if(a>=80&&a<90) printf("B\n"); if(a>=90&&a<=100) printf("A\n"); if(a<0||a>100) printf("Score is error!\n"); } return 0; } 12 有一函数 x (x<1) y= 2x-1 (1≤x<10) 3x-11 (x≥10) 编程实现输入x的值,输出y的值。 Input 输入数据有多组,每组占一行,由一个整数组成。 Output 对于每组输入数据,输出一行。 Sample Input -5 8 17 Sample Output -5 15 40 #include<stdio.h> int main() { int a,y; while(scanf("%d",&a)!=EOF) { if(a<1) { y=a; printf("%d\n",y); } if(a>=1&a<10) { y=2*a-1; printf("%d\n",y); } if(a>=10) { y=3*a-11; printf("%d\n",y); } } return 0; } 13 从键盘接受任一字符, 如果是小写字母转换为大写输出; 如果是大写转换为小写输出; 如果是数字原样输出; 否则显示“error”。 Input 输入一行字符,以回车结束。 Output 每一行为针对输入的每一个字符输出其相应结果。 Sample Input H5*a Sample Output h 5 error A #include<stdio.h> int main() { char a; while(scanf("%c",&a)!=EOF) { if(a=='\n')break; if('0'<=a&&a<='9') printf("%c\n",a); else if(a>='A'&&a<='Z') printf("%c\n",a+32); else if('a'<=a&&a<='z') printf("%c\n",a-32); else printf("error\n"); } return 0; } 14 输入年和月,判断该月有几天? Input 输入数据有多组,每组占一行,表示年和月,格式为年\月。 Output 输出该月的天数。 Sample Input 2009\1 Sample Output 31 #include<stdio.h> int main() { int a,b,c; while(scanf("%d\\%d",&a,&b)!=EOF) { if(a%400!=0&&b==2&&a%100==0) printf("28\n"); if(a%400==0&&b==2) printf("29\n"); if(a%4==0&&b==2&&a%100!=0) printf("29\n"); if(a%4!=0&&b==2&&a%100!=0) printf("28\n"); if(b!=2) { if(b<=7&&b%2==0) printf("30\n"); if(b<=7&&b%2!=0) printf("31\n"); if(b>=8&&b<=12&&b%2==0) printf("31\n"); if(b>=8&&b<=12&&b%2!=0) printf("30\n"); } } return 0; } 15 三角形具有稳定性,现在有三个木棍.要用来搭个三角形。现在从键盘接收三个浮点数,代表三条边,问能否组成三角形,并求其面积。 Input 多组测试数据。 一行输入三个数,数之间用空格分割。 输入0,0,0时表示结束。 Output 一行分两个域,分别是形状描述和面积显示(若不能形成三角形,则不用显示形状描述)。 判断它们是否可以形成一个三角形,若可以,显示“triangle:”,再计算出其面积并紧接着显示面积值,否则显示“fail to form a triangle.”。 Sample Input 3 4 5.0 1 2 9 6 7 8 0 0 0 Sample Output triangle:6.000000 fail to form a triangle. triangle:20.333163 #include<stdio.h> #include<math.h> int main() { double a,b,c,p,s; while(scanf("%lf%lf%lf",&a,&b,&c)&&a!=0&&b!=0&&c!=0) { if((a+b)>c&&(b+c)>a&&(a+c)>b) { p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); printf("triangle:%f\n",s); } else printf("fail to form a triangle.\n"); } return 0; } 16 输入三个整数a,b,c。并进行两两相加,最后比较相加和的最大值。 Input 输入多组数据,每组输入数据包含三个整数,用空格分开。 Output 输出两两相加后的最大值。每组占一行 Sample Input 1 2 3 Sample Output 5 #include<stdio.h> int main() { int a,b,c,t,e,f; while(scanf("%d%d%d",&a,&b,&c)!=EOF) { t=a+b; e=a+c; f=b+c; if(t>e&&t>f) printf("%d\n",t); if(e>t&&e>f) printf("%d\n",e); if(f>t&&f>e) printf("%d\n",f); } return 0; } 17 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3 现在要求输出所有在m和n范围内的水仙花数。 Input 输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。 Output 对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,每个数据后面均有空 格; 如果给定的范围内不存在水仙花数,则输出no; 每个测试实例的输出占一行。 Sample Input 100 120 300 380 Sample Output no 370 371 #include<stdio.h> int main() { int a,b,c,d,e,f,t; while(scanf("%d%d",&a,&b)!=EOF) { f=0; for(t=a;t<=b;t++) { c=t/100; d=t/10-c*10; e=t-(c*100)-(d*10); if(t==c*c*c+d*d*d+e*e*e) { printf("%d ",t); f=1; } } if(f==0) printf("no\n"); else printf("\n"); } return 0; } 18 青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。 Input 输入数据有多组,每组占一行,每行的第一个整数是n(2<n<100),表示评委的人数,然后是n个评委的打分,均为整数。 Output 对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。 Sample Input 3 99 98 97 4 100 99 98 97 Sample Output 98.00 98.50 #include<stdio.h> int main() { int n,a[101],i,max,min,sum; double ave; while(scanf("%d",&n)!=EOF) { sum=0; for(i=0;i<n;i++) { scanf("%d",&a[i]); sum+=a[i]; } max=0;min=a[0]; for(i=0;i<n;i++) { if(a[i]>max) max=a[i]; if(a[i]<min) min=a[i]; } ave=(sum-max-min)*1.0/(n-2); printf("%.2lf\n",ave); } return 0; } 19 求n个数的平均值。 Input 输入数据有多组,每组占一行,每行的第一个数是n,表示要求n个数的平均值,后面的n个数是具体的数值。 Output 对于每组输入数据,输出平均值,结果保留2位小数,每组输出占一行。 Sample Input 3 99 98 97 4 100 99 98 97 Sample Output 98.00 98.50 #include<stdio.h> int main() { int a,b=0,i,n; double s; while(~scanf("%d",&a)) { for(i=1;i<=a;i++) { scanf("%d",&n); b=b+n; } s=1.0*b/a; printf("%.2lf\n",s); b=0; } return 0; } 20 求n以内的所有素数。n(2<=n<=1000) Input 输入数据有多组,每组占一行,每行的一个数,表示n。 Output 对于每组输入数据,输出2~n所有的素数,每个数后面带一个空格,每组输出占一行。 Sample Input 10 20 Sample Output 2 3 5 7 2 3 5 7 11 13 17 19 #include <stdio.h> #include<math.h> int main() { int n,i,j,s; while(scanf("%d",&n)!=EOF) { for(i=2;i<=n;i++) { s=1; for(j=2;j<=sqrt(i);j++) if(i%j==0) { s=0; break; } if(s) printf("%d ",i); } printf("\n"); } return 0; } 21 多项式的描述如下: 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ... Input 输入数据由2行组成,首先是一个正整数m(m<100),表示测试实例的个数,第二行包含m个正整数,对于每一个整数(不妨设为n,n<1000),求该多项式的前n项的和。 Output 对于每个测试实例n,要求输出多项式前n项的和。每个测试实例的输出占一行,结果保留2位小数。 Sample Input 2 1 2 Sample Output 1.00 0.50 #include<stdio.h> int main() { int m,n,i,j; double s; while(scanf("%d",&m)!=EOF) { for(i=1;i<=m;i++) { s=0; scanf("%d",&n); for(j=1;j<=n;j++) { if(j%2==0) s=s-(double)1/j; else s=s+(double)1/j; } printf("%.2lf\n",s); } } return 0; } 22 找出数组a中能被3整除的数,要求用数组完成。 Input 输入整数N,代表N组数据。接下来的N行中,每行的第一个整数M代表这一行共有M个测试数据(M<100),接下来是这M个数据的数值。 Output 输出每一组数据中能被3整除的数值,及其所在数组中的位置。注意,按生活中的习惯,下标从1算起。如果该测试数据中不含有被3整除的数值,则输出“not found!”每一组数据对应一行输出。 Sample Input 3 3 9 34 12 4 1 2 4 5 2 6 5 Sample Output a[1]=9 a[3]=12 not found! a[1]=6 #include<stdio.h> int main() { int a[100],n,i,m,j,f; scanf("%d",&n); while(n--) { j=0;f=0; scanf("%d",&m); i=1; while(i<=m) { scanf("%d",&a[i]); j=a[i]; if(j%3==0) { printf("a[%d]=%d ",i,j); f=1; } i++; } if(f==0) printf("not found!\n"); else printf("\n"); } return 0; } 23 输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。 Input 输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。 Output 对于每个测试实例,输出排序后的结果,每个数后带一个空格。每个测试实例占一行。 Sample Input 3 3 -4 2 4 0 1 2 -3 0 Sample Output -4 3 2 -3 2 1 0 Hints 绝对值用数学函数abs,例如变量a的绝对值:abs(a) #include<stdio.h> #include<math.h> int main() { int n,a[100],i,j,temp,h; while(scanf("%d",&n)&&n) { for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=n-1;i>0;i--) for(j=0;j<i;j++) { if(abs(a[j+1])>abs(a[j])) { temp=a[j]; a[j]=a[j+1]; a[j+1]= temp; } } for(i=0;i<n;i++) printf("%d ",a[i]); printf("\n"); } return 0; } 24 将给定的一维数组进行逆置,即第一个元素与最后一个元素互换,第二个元素与倒数第二个互换,其余类推。 Input 输入数据有多组测试实例,每个测试实例的一行,其中第一个数表示一维数组的长度n(n<100),后面的整数表示具体的元素值。 Output 对于每组输入数据,输出占一行。 Sample Input 5 1 2 3 4 5 6 6 5 4 3 2 1 Sample Output 5 4 3 2 1 1 2 3 4 5 6 #include<stdio.h> int main() { int a[100],n,i,j,t; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) scanf("%d",&a[i]); for(j=1,i=0;j<=n/2;i++,j++) { t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; } for(i=0;i<n;i++) { if(i!=n-1) printf("%d ",a[i]); else printf("%d \n",a[i]); } } return 0; } 25 输入n(n<100)个数,找出其中最小的数,将它与第一个数交换后输出这些数 Input 输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。 Output 对于每组输入数据,输出交换后的数列,每组输出占一行。 Sample Input 4 2 1 3 4 5 5 4 3 2 1
展开阅读全文

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


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 中考

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

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

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服