C语言上机题库_第1页
C语言上机题库_第2页
C语言上机题库_第3页
免费预览已结束,剩余10页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、输入AF中的一个字母,代表一个十六进制数, 将其转换为十进制数,求该数与15的和并输出。 输入格式:B输出格式:26#in cludeint main(v oid)char ch;int sum;ch=getchar();sum=ch-A+10+15;prin tf(%dn,sum);return 0;输入三个整数,求其平均值。输入格式:3 5 7输出格式:5#in clude int main(v oid)int a,b,c,aver;sca nf(%d %d %d,&a,&b,&c); aver=(a+b+c)/3;prin tf(%dn,aver);return 0;根据c=5/9*(f

2、-32)公式,输入华氏温度f,求摄 氏温度c,结果精确到小数点后两位。输入格式:输出格式:#in cludeint main(v oid)float f,c;scan f(%f, &f);c=9*(f-32);prin tf(%.2fn,c); return 0;输入一个四位正整数,求其各位数字之和。例如,1357的各位数字之和为1 + 3 + 5 + 7 = 16 输入格式:1357输出格式:16 #in clude int main(v oid)int num;int a,b,c,d,total; scan f(%d,&nu m);a=n um/1000;b=( nu m-a*1000)/

3、100;c=( num-a*1000-b*100)/10;d=n um-a*1000-b*100-c*10;total=a+b+c+d; prin tf(%dn,total); return 0;输入一大写字母,输出对应的小写字母输入格式:A输出格式:a#in cludeint main(v oid)char c1,c2;scan f(%c,&c1);c2=c1+32;prin tf(%c,c2);输入两个整数分别赋值给变量 a和b,将a和 b的值互换,输出a、b的值。输入格式:3 5#in clude 输出格式:5 3#in elude int main(v oid)int a,b,temp

4、;sea nf(%d%d,&a,&b);temp=a;a=b;b=temp;prin tf(%d %d,a,b);return 0;输入一小写字母,输出对应的大写字母。输入格式:b输出格式:B#in cludeint main(v oid)char ch;ch=getchar();putchar(ch-32);putchar(n);输入任意四位整数,以反序的方式输出该整数。例如:输入1234,输出4321输入格式:1357输出格式:7531#in cludeint main(v oid)char c1,c2,c3,c4;sca nf(%c%c%c%c,&c1,&c2,&c3,&c4); pri

5、n tf(%c%c%c%cn,c4,c3,c2,c1);输入两个电阻值,求它们并联和串联的电阻值, 结果保留两位小数。并联和串联的电阻值的计算 公式为:并联电阻:PR=(R1*R2)/(R1+R2) 串联电阻: RS=R1+R2输入格式:3 5输出格式:int main(v oid)double r1, r2, pr, rs;scanf(%lf%lf, &r1, &;pr =(r1 * r2)/ (r1 + r2);rs = r1 + r2;prin tf(%.2f %.2fn, pr, rs);return 0;使用getchar函数分别输入两个字符变量c1和c2, 要求c1、c2均是字符O

6、到9中的一个字符。将 c1、c2中的值转换成相应的数字,如将字符1 转换为数字1,并输出这两个数相加的结果。输入格式:26输出格式:8#in cludeint main(v oid)char c1,c2;c1=getchar();c2=getchar();c1= c1-48;c2=c2-48;prin tf(%dn,c1+c2);return 0;输入梯形的上下底边长度和高,计算梯形的面积, 保留一位小数。计算梯形面积的公式如下:S=h*(a+b)/2输入格式:3 5 4输出格式:#in cludeint main(v oid)int a,b,h;float S;scan f(%d%d%d,&

7、a,&b,&h);S=h*(a+b)/;prin tf(%.1f,S);return 0;输入圆的半径,求圆的周长和面积,结果精确到小数点后两位。已知圆周率为。输入格式:输出格式:#in elude void mai n() double r,l,s;scan f(%lf,&r);l=2*r;s=*r*r;prin tf(%.2f %.2fn,l,s);输入整数a和b,如果aA2 + bA2大于100,则输 出a + b的值;否则,输出a - b的值。输入格式:3 5输出格式:-2#in cludevoid mai n()int a,b;scan f(%d%d,&a,&b);if (a*a+b

8、*b100)prin tf(%dn,a+b);elseprin tf(%dn,a-b);输入整数n,如果n既是5的整倍数又是7的整 倍数,则输出yes;否则输出no。输入格式:35输出格式:Yes#in elude void mai n()int n;scan f(%d,&n);if(n%5 = 0 & n%7 = 0)prin tf(yesn);elseprin tf( non);商场为促销实行打折销售商品,假定商品价格为 p元,编程计算某顾客购买x件商品的应付金额, 保留一位小数。先输入价格p,再输入购买的件数X。计算公式sum = p * x * (1 - d)其中,sum为 应付金额,

9、d为折扣(x5时:d=0; 5=x10时: d=1%; 10=x21 时:d=2%;21=x30时:d=4% 30=x 时:d=6%;)。输入格式:15输出格式:#in cludevoid mai n()int x;float p,sum,d;sca nf (%f%d,&p, &x);if(x5)d=0;else if(x10)d=;else if(x21)d=;else if(x30)d=;else d=;sum=p*x*(1-d);prin tf(%.1f,sum);输入09或a f或AF中的一个字符,代 表一个十六进制数,将其转换为十进制数,求该 数与15的和并输出。输入格式:6输出格式

10、:21 #in clude void mai n()char ch; ch=getchar();if(ch=0&ch=A &ch=a&ch=f)prin tf(%dn,ch-a+10+15); elseprin tf(Iaput Error!n);已知一张如下所示的时间表:*Time*1 morni ng2 after noon3 ni ght*Please in put your choice:根据输入的序号显示相应的问候信息:输入1时,输出Good morning;输入2时,输出Good afternoon ;输入3时,输出Good night;对于其 他的输入,则输出error。输入格式

11、:2输出格式:Good after noon#in cludeint main(v oid)int choice;scan f(%d,&choice);switch(choice)case 1:pri ntf(Good morningn );break;case 2:pri ntf(Good afterno onn);break;case 3:pri ntf(Good ni ghtn);break; default:pri ntf(errorn);输入3个整数,要求按从小到大的顺序输出。输入格式:5 3 1输出格式:1 3 5#in cludeint main(v oid)int a,b,c,

12、t;scan f(%d%d%d,&a,&b,&c);if(ab) t=a;a=b;b=t;if(ac) t=a;a=c;c=t;if(bc) t=b;b=c;c=t;prin tf(%d %d %dn,a,b,c);return 0;输入两个实数和一个算术运算符(+,-,*,/), 根据运算符执行相应的运算并输出运算结果,保 留一位小数。(提示:运算符先输入,两个实数 后输入)输入格式:+输出格式:#in cludeint main(v oid)double a,b;char op;scan f(%c %lf%lf,&op,&a,&b);if (op=+)prin tf(%.1fn,a+b);

13、else if(op=-)prin tf(%.1fn,a-b);else if(op=*) prin tf(%.1fn,a*b);else printf(%.1fn,a/b);return 0;输入3个整数,要求按从大到小的顺序输出。输入格式:1 3 5输出格式:5 3 1#in cludeint main(v oid)int a,b,c,t;scan f(%d%d%d,&a,&b,&c);if(ab) t=a;a=b;b=t;if(ac) t=a;a=c;c=t;if(bc) t=b;b=c;c=t;prin tf(%d %d %dn,a,b,c);return 0;编写程序,接收两个整数n

14、um1和num2,找出 这两个数之间所有奇数的和。输入格式:1 100输出格式:2500#in cludeint main(v oid)int nu m1, nu m2,t,i,sum=0;scan f(%d%d,&nu m1,&n um2);if(nu m1 nu m2)t=nu m1;nu m1= nu m2;nu m2=t;if(n um1%2=0)num1+;for(i=nu m1;i=nu m2;i+=2)sum+=i;prin tf(%d,sum);输入10个分数(浮点型),去掉最高分和最低分后 求平均分,保留一位小数。输入格式:0 1 2 3 4 5 6 7 8 9输出格式:#i

15、n elude void mai n() int i;double sum=0,a,max, min;sea nf(%lf,&a);sum=max=min=a;for(i=1;i=9;i+)sca nf(%lf,&a);if(maxa)mi n=a;sum=sum+a;sum=sum-max- min;prin tf(%.1f,sum/8);输入n,求1 * 2 * 3 * . * n的值。输入格式:10输出格式:3628800#in eludeint main(v oid)int i,n ,k=1;scan f(%d,&n);for(i=1;i=n ;i+)k=k*i;prin tf(%d,

16、k);根据用户输入的正整数a(19)和正整数n,求a + aa + . + aa.a(n个 a)的值。例如,当用户输入 a 为6,n为5时,结果为74070。输入格式:6 5输出格式:74070#in elude void mai n() int a, n,i,t;long int sum=0;scan f(%d%d,&a,&n);t=a;for(i=1;i=n ;i+)sum=sum+t;t=t*10+a;prin tf(%d,sum);已知函数头为 void avg(void),函数avg的功能: 输入10个分数(浮点型),去掉最高分和最低分, 求平均分,保留一位小数。编写 main函数并

17、调 用函数avg。输入格式:0 1 2 3 4 5 6 7 8 9输出格式:#in elude void avg(void)int i;float sum, n, max,mi n,aver;sea nf(%f,&n);max=min=n;sum=n;for(i=2;in)? max:n;mi n=( mi nn )?mi n:n; sum+=n;aver=(sum-max-mi n)/8;prin tf(%.1fn,aver);根据用户输入的正整数n,求1- 1/2 + 1/3 - 1/4 +.+ (-1)A( n+1)/n的值。保留两位小数。输入格式:2输出格式:#in elude voi

18、d mai n()int i,flag=1, n;double sum = 0;sea nf(%d,&n);for ( i=1;i=n ;i+ )sum +=i*flag ; flag=-flag;prin tf(%.2fn,sum);输入 n,求 1! + 2! + 3! +. + n!的值。输入格式:10输出格式:4037913#in cludeint main(v oid)int sum=0,i ,n, s=1;scan f(%d,&n);for(i=1;i=n ;i+)s*=i;sum+=s;prin tf(%dn,sum);根据用户输入的正整数n ,求2/1 + 3/2 + 5/3

19、+ 8/5 + 13/8 +的前n项之和。保留两位小数。输入格式:2输出格式:#in clude void ma in (void)int a = 1, b = 2, c, i, n;double d,sum=0;scan f(%d,&n);for(i = 1; i = n; i+) d=1.*b/a;sum+=d;c = a + b;a = b;b = c;prin tf(%.2f,sum);根据用户输入的正整数n ,求1 - 2/3 + 3/5 - 4/7 +5/9 - 6/11 +的前n项之和。保留两位小数。 输入格式:2输出格式:#in cludeint main(v oid)int

20、i, n ,flag=1;double sum=0;scan f(%d,&n);for(i=1;i=n ;i+)sum+=flag*i/(2*i-1);flag=-flag;prin tf(%.2fn,sum);return 0;根据用户输入的正整数n,求数列1,2, 3, 5, 8, 13,21,34, .中第n项的值。输入格式:25输出格式:121393#in clude int mai n(void)int a = 1, b = 2, c,n, i;scan f(%d,&n);for(i = 3; i=n; i+)c = a + b;a = b;b = c;prin tf(%dn, c)

21、;return 0;输入一行字符,统计其中英文字母、数字字符、 空格和其他字符的个数。输入格式:kf 3f5;p0 8d?A输出格式:5 4 2 4#in clude int main(v oid)char c;int en g=0,dig=0,space=0,others=0;scan f(%c,&c);while (c!=n)if(c=a&c=A&c=0&c=9) dig+;else if(c=)space+;elseothers+;sca nf(%c,&c);prin tf(%d %d %d %dn,e ng,dig,space,others); return 0;根据用户输入的正整数n

22、,输出数列0, 1,2, 3, 6, 11,20, 37, 68,.中第 n 项的值。输入格式:4输出格式:3#in cludevoid mai n() int i,a=0,b=1,c=2,d,n;scan f(%d,&n);for(i=4;i=n ;i+) d=a+b+c;a=b;b=c;c=d; printf (%dn,d);输入若干整数,以-1结束,去掉最大值和最小值, 求平均值,保留一位小数。输入格式:1 3 5 7 9 -1输出格式:#in clude void mai n ()int score;double sum=0, n=O,avg,max,mi n,b; scan f(%d

23、,&score);max=min=b=score;while(score!=-1)if(scoremax)max=score;if(score min)min=score;sum+=score;n+;sca nf(%d,&score);avg=(sum-max-mi n)/(n-2);prin tf(%.1fn,avg);输入两个正整数,求最大公约数。 输入格式:15 5输出格式:5#in clude int mai n (void ) int i,m, n, temp,maxgy;scanf (%d%d, &m, &n);if(m n) temp=m ;m=n;n=temp;for(i=m;

24、i=1;i-)if(m%i=0&n %i=0) maxgy=i;break;prin tf(%dn,maxgy);return 0;输入两个正整数,求最小公倍数。输入格式:5 15输出格式:15#in clude int mai n (void ) int i,m, n, temp,maxgy;scanf (%d%d, &m, &n);if(m n) temp=m ;m=n;n=temp; for(i=m;i+)if(i%m=0&i%n=0) maxgy=i;break;prin tf(%dn,maxgy);return 0;输入一个正整数n,求n是几位数。输入格式:1357输出格式:4#in

25、 clude mai n(void)int n, sum = 0,k=0;sca nf(%d, &n);while (n)n /= 10;k+;prin tf(%dn, k);输入一个正整数n,判断n是否为回文数。所谓 回文数,是从左到右读这个数和从右到左读这个 数是一样的。例如,98789是回文数。如果是, 输出yes;如果不是,则输出no。输入格式:输出格式:Yes#in elude mai n(void) int n,m, sum = 0,k=0;sea nf(%d, &n);m=n;while (m) sum = sum*10 + m%10;m /= 10;if (sum=n)prin

26、 tf(yes);elseprin tf( no);根据输入的行数输出图案。例如,输入的行数为7,贝U输出如下图所示的图案(注:星号之间没 有空格)。输入格式:5输出格式:*#in clude void mai n()int i,j,n;scan f(%d,&n);for(i=-n/2;i=n/2;i+)for(j=1;j=abs(i);j+) printf();for(j=1;j=n-2*abs(i);j+)prin tf(*);prin tf(n);输入10个数到数组t中,求最小值及最小值在数 组t中的下标。输入格式:9 7 5 3 1 0 2 4 6 8输出格式:0 5#in clude

27、 void mai n() int x10,i,mi n,j,k;for(i=0;i 10;i+)sca nf(%d, &xi);min=x0;k=0;for(j=1;j xj) mi n=xj;k=j;prin tf(%d %dn,mi n,k);输入10个数到数组t中,再输入x,如果有与x 相等的数组元素,输出该数组元素的下标;否则, 输出-1。输入格式:9 7 5 3 1 0 2 4 6 85输出格式:2#in clude void mai n() int t10,i,x,flag=0;for(i=0;i 10;i+)sca nf(%d, &ti);sca nf(%d, &x);for

28、(i=0;i10;i+) if (x=ti)flag=1;prin tf(%d, i);break;if(flag=0) prin tf(-1);输入10个整数到数组t中,按升序排序,输出下 标为6的数组元素。输入格式:9 7 5 3 1 0 2 4 6 8输出格式:6#in cludeint main(v oid)int t10,i,j,temp;for(i=0;i10;i+)sca nf(%d, &ti);for(i=1;i10;i+)for(j=0;jtj+1)temp=tj;tj=tj+1; tj+1=temp;prin tf(%d,t6);return 0;输入九个整数到数组t中数组

29、长度为 奇数,将数组t中的数组元素倒置,输出倒置以 后下标为5的数组元素。例如,数组t中九个数 组元素依次为2、4、6、8、9、7、5、3、1,倒 置以后九个数组元素依次为1、3、5、7、9、8、 & 4、2,下标为5的数组元素为&已知变量声 明和数组声明为“ int i, tmp, t9; ”,要求不再声明 其他的变量或数组。输入格式:9 7 5 3 1 2 4 6 8输出格式:3#in cludeint main(v oid)int i,tmp,t9;for(i=0;i9;i+)sca nf(%d, &ti);for(i=0;i9/2;i+)tmp=ti;ti=t8-i;t8-i=tmp;

30、prin tf(%dn,t5);return 0;求3行5列二维数组中每列数组元素的最小值, 并输出列下标为3的这一列的最小值。输入格式:-3 -1 -5 -7 -9-8 -6 -4 -2 -8-2 -3 -4 -5 -6输出格式:-7#in cludeint main(v oid)int i,j,t3 5 ,max;for(i=0;i3;i+)for(j=0;j5;j+)sca nf(%d, &tij);max=t03;for(i=1;i=ti3) max=ti3; prin tf(%d,max); return 0;求3行5列二维数组中的最小值,及最小值在数 组中的行号和列号,并输出。输入

31、格式:3 1 5 7 98 6 4 2 01 3 -1 3 1输出格式:-1 2 2#in cludeint main(v oid) int i,j,t35,max,m, n;for(i=0;i3;i+) for(j=0;j5;j+) scan f(%d, &tij);max=t00;for(i=0;i3;i+)for(j=0;jtij)max=tij; m=i; n =j; prin tf(%d %d %d,max,m, n);return 0;输入10个数到数组t中,求最大值及最大值在数 组t中的下标。输入格式:9 7 5 3 1 0 2 4 6 8输出格式:9 0#in cludevoi

32、d mai n()int i,a,m,t10,max;for(i=0;i10;i+)sca nf(%d, &ti);max=t0;a=0;for(m=1;m10;m+)if(maxtm) max=tm;a=m; prin tf(%d %d,max,a);输入10个整数到数组t中,按降序排序,输出下 标为5的数组元素。输入格式:9 7 5 3 1 0 2 4 6 8输出格式:4void mai n()int a,b,k,t1O;for(a=0;a10;a+)sea nf(%d, &ta);for(a=1;a10;a+) for(b=0;b10-a;b+)if(tbtb+1)k=tb;tb=tb+

33、1; tb+1=k;prin tf(%d,t5);输出数组s中字符串的子串,子串从sbegin开始, 长度为len。char s80;int begi n, len;gets(s);sea nf(%d%d, & begi n, &en);输入格式:how do you do?4 9输出格式:do you doint main(v oid)char s80;int i,beg in, len;gets(s);sea nf(%d%d, & begi n, &en);for(i=begi n;ibegi n+le n;i+)prin tf(%c,si);return 0;输入6个整数到数组t中,求最

34、小值。输入格式:9 7 5 3 1 0输出格式:0#in cludeint main(v oid)int a6,i,m in;scan f(%d,&a0);min=a0;for(i=1;i6;i+)sca nf(%d,&ai);mi n=( mi n ai)?mi n:ai;prin tf(%dn,mi n);return 0;输入10个整数到数组t中数组长度为偶数,将数 组t中的数组元素倒置,输出倒置以后下标为5的数组元素。例如,数组t中10个数组元素依次 为 1、3、5、7、9、& 6、4、2、0,倒置以后 10个数组元素依次为 0、2、4、6、8、9、7、5、3、1,下标为5的数组元素为

35、9。已知变量声明 和数组声明为“ int i, tmp, t10; ”,要求不再声明 其他的变量或数组。输入格式:9 7 5 3 1 0 2 4 6 8输出格式:1#in cludeint main(v oid)int t10,i,temp;for(i=0;i10;i+)scan f(%d, &ti);for(i=0;i10/2;i+)temp=ti;ti=t10-1-i; t10-1-i=temp;prin tf(%dn,t5);return 0;已知数组声明为int a10 = 0, 10, 20, 30, 40, 50, 60, 70, 80, 90;, 10个数组元素是按升序排列 的。

36、输入一个整数n,如果没有与n相等的数组 元素,输出-1;否则,删除与n相等的数组元素, 要求剩余的九个数组元素是按升序排列的,输出 下标为6的数组元素。输入格式:100输出格式:-1#in cludeint main(v oid) int a10=0, 10, 20, 30, 40, 50, 60, 70, 80, 90; int n ,i,flag=1;scan f(%d,&n);for(i=0;i10;i+)if(n=ai) flag=0; break; if(flag=1)prin tf(-1n);else for(;i10;i+)ai=ai+1;prin tf(%dn,a 6);ret

37、urn 0;求3行5列二维数组中每列数组元素的最大值,并输出列下标为3的这一列的最大值。输入格式:-3 -1 -5 -7 -9-8 -6 -4 -2 -8-2 -3 -4 -5 -6输出格式:-2#in cludeint main(v oid)int i,j,t3 5 ,max;for(i=0;i3;i+)for(j=0;j5;j+)sca nf(%d, &tij);max=t03;for(i=1;i3;i+)if(max=ti3)max=ti3;prin tf(%dn,max);return 0;判断数组s中的字符串是不是回文。一个字符串 从左向右读和从右向左读是一样的,该字符串是 回文。例如,字符串abcdedcba是回文。如果是, 输出yes;如果不是,则输出no。char s80

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论