C语言上机题库_第1页
C语言上机题库_第2页
C语言上机题库_第3页
C语言上机题库_第4页
C语言上机题库_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言习题集精心整理3.11输入AF中的一个字母,代表一个十六进制数, 将其转换为十进制数,求该数与15的和并输出。输入格式:B输出格式:26#i ncludein tmai n(void)charch;in tsum;ch=getchar();sum=ch-A+10+15;prin tf(%dn,sum); return。;3.12输入三个整数,求其平均值。 输入格式:357 输出格式:5#i ncludein tmai n(void)in ta,b,c,aver;scan f(%d%d%d,&a,&b,&c); aver=(a+b+c)/3;prin tf(%dn ”,aver); ret

2、urnO; .-、,i3.13根据c=5/9*(f-32)公式,输入华氏温度f,求摄氏温度c,结果精确到小数点后两位。输入格式:80.0输出格式:26.67#i ncludein tmai n(void)floatf,c;sca nf(%f, &f);c=5.0/9*(f-32);prin tf(%.2fn,c);returnO;3.14输入一个四位正整数,求其各位数字之和。例如,1357的各位数字之和为 1+3+5+7=16。输入格式:1357输出格式:16#i ncludein tmai n(void)intnum;in ta,b,c,d,total;sca nf(%d,&n um);a=

3、n um/1000;、丈 I | X ”b=( num-a*1000)/100;c=( nu m-a*1000-b*100)/10;d=nu m-a*1000-b*100-c*10;total=a+b+c+d;prin tf(%dn,total);IreturnO;3.15输入一大写字母,输出对应的小写字母。输入格式:A输出格式:a#i ncludein tmai n(void)charc1,c2;scan f(%c,&c1);c2=c1+32;prin tf(%c,c2);3.16输入两个整数分别赋值给变量a和b,将a和b的值互换,输出a、b的值。输入格式:35输出格式:53#i nclud

4、ein tmai n(void)in ta,b,temp;scan f(%d%d,&a,&b);temp=a;a=b;b=temp;prin tf(%d%d,a,b);return。;3.21输入一小写字母,输出对应的大写字母。输入格式:b输出格式:B#i ncludein tmai n(void)charch;ch=getchar();putchar(ch-32);putchar(n);3.22输入任意四位整数,以反序的方式输出该整数。例如:输入1234,输出4321输入格式:1357输出格式:7531#i ncludein tmai n(void)charc1,c2,c3,c4;scan

5、f(%c%c%c%c, &c1, &c2, &c3,& c4);prin tf(%c%c%c%c n,c4,c3,c2,c1);3.23输入两个电阻值,求它们并联和串联的电阻值,结 果保留两位小数。并联和串联的电阻值的计算公式为:并联电阻:PR=(R1*R2)/(R1+R2串联电阻:RS=R1+R2输入格式:35输出格式:1.888.00#i ncludein tmai n(void)doubler1,r2,pr,rs;sca nf(%lf%lf, &r1,&r2);pr=(r1*r2)/(r1+r2);rs=r1+r2;prin tf(%.2f%.2fn ,pr,rs);return0;3.

6、24使用getchar函数分别输入两个字符变量c1和c2,要求c1、c2均是字符0到9中的一个字符。将c1、c2中的值转换成相应的数字,如将字符1转换为数字1,并输出这两个数相加的结果。输入格式:26输出格式:8|S|#i nclude_ _w i: iin tmai n(void)charc1,c2;c1=getchar();c2=getchar();c1=c1-48;c2=c2-48;.i j Iprin tf(%dn,c1+c2);return0;3.25输入梯形的上下底边长度和高,计算梯形的面积, 保留一位小数。计算梯形面积的公式如下:S=h*(a+b)/2输入格式:354输出格式:1

7、6.0#i ncludein tmai n(void)inta,b,h;floatS;scan f(%d%d%d,&a,&b,&h);S=h*(a+b)/2.0;prin tf(%.1f,S);return0;3.26输入圆的半径,求圆的周长和面积,结果精确到小 数点后两位。已知圆周率为3.14159。输入格式:5.0输出格式:31.4278.54#i ncludevoidmai n()doubler,l,s;scan f(%lf,&r);l=2*3.14159*r;s=3.14159*r*r;prin tf(%.2f%.2fn,l,s);4.1输入整数a和b,如果aA2+bA2大于100,则

8、输出a+b的值;否则,输出 a-b的值。输入格式:35输出格式:-2#i ncludevoidmai n()in ta,b;sca nf(%d%d, &a,& b);if(a*a+b*b1OO)prin tf(%dn,a+b);elseprin tf(%dn,a-b);4.2输入整数n,如果n既是5的整倍数又是7的整倍数, 则输出yes;否则输出no。输入格式:35输出格式:Yes#i ncludevoidmai n()intn;sca nf(%d,&n);if(n %5=0&n %7=0)prin tf(yesn);elseprin tf( non ”);4.3商场为促销实行打折销售商品,假

9、定商品价格为p元,编程计算某顾客购买x件商品的应付金额,保留一位小数。先输入价格p,再输入购买的件数X。计算公式sum=p*x*(1-d)其中,sum为应付金额,d为折扣(x5 时:d=0;5=x10 时:d=1%;10=x21 时:d=2%; 21=x30 时:d=4%; 30=x 时:d=6%;)。输入格式:9.915输出格式:145.5#i ncludevoidmai n()intx;floatp,sum,d;scan f(%f%d, &p,&x);if(x5)d=0;elseif(x10)d=0.01;elseif(x21)d=0.02;elseif(x30)d=0.04;elsed=

10、0.06;sum=p*x*(1-d);.i j Iprin tf(%.1f,sum);4.4输入O9或af或AF中的一个字符,代表一 个十六进制数,将其转换为十进制数,求该数与15的和并输出。输入格式:6输出格式:21#i ncludevoidmai n()charch;ch=getchar();if(ch=O&ch=A &ch=a&ch=f)prin tf(%dn,ch-a+10+15);elseprin tf(laputError!n);4.5已知一张如下所示的时间表:*Time*Imorning2after noon3ni ght*Please in putyourchoice:根据输入

11、的序号显示相应的问候信息:输入1时,输出Goodmorning ;输入 2 时,输出 Goodafternoon ;输入 3 时,输出Goodnight ;对于其他的输入,则输出error。输入格式:2输出格式:Goodafter noon#i ncludein tmai n(void)in tchoice;sca nf(%d,&choice);switch(choice)case1:pri ntf(Goodmorni ngn);break;case2:pri ntf(Goodafterinoonn );break;case3:pri ntf(Good ni ghtn );break;defa

12、ult:pri ntf(errorn);4.6输入3个整数,要求按从小到大的顺序输出。输入格式:531输出格式:135#i ncludein tmai n(void)in ta,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);returnO;4.7输入两个实数和一个算术运算符(+,-,*,/),根据运算符执行相应的运算并输出运算结果,保留一位小 数。(提示:运算符先输入,两个实数后输入) 输入格式:+ 1.52.1输出格式:3.6

13、#i ncludein tmai n(void)doublea,b;charop;sca nf(%c%lf%lf, &op,&a,&b);if(op=+)pri ntf(%.1fn,a+b);elseif(op=-)pri ntf(%.1fn,a-b);elseif(op=*)pri ntf(%.1fn,a*b);elsepri ntf(%.1fn ,a/b);returnO;4.8输入3个整数,要求按从大到小的顺序输出。 输入格式:135输出格式:531L B1 ;#i ncludein tmai n(void)in ta,b,c,t;scan f(%d%d%d,&a,&b,&c); if(

14、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);returnO;5.11编写程序,接收两个整数num1和num2,找出这两个数之间所有奇数的和。输入格式:1100输出格式:2500#i ncludein tmai n(void)intnu m1, nu m2,t,i,sum=0;sca nf(%d%d, &nu m1,&n um2);if(nu m1 nu m2)t=num1; num1= num2; num2=t; if(n um1%2=0)num1+;for(i=nu m1;i=nu m2

15、;i+=2)sum+=i;prin tf(%d,sum);5.12输入10个分数(浮点型),去掉最高分和最低分后求 平均分,保留一位小数。输入格式:0123456789输出格式:4.5#i ncludevoidmai n()in ti;doublesum=0,a,max, min;scan f(%lf,&a);sum=max=min=a;for(i=1;i=9;i+)sca nf(%lf, &a);if(maxa)min=a;sum=sum+a;sum=sum-max- min;prin tf(%.1f,sum/8);5.13 输入 n,求 1*2*3*.*n 的值。输入格式:10:1|l输出

16、格式:3628800#i ncludein tmai n(void)in ti, n,k=1;sca nf(%d,&n);for(i=1;i=n ;i+)k=k*i;prin tf(%d,k);5.14根据用户输入的正整数a(19)和正整数 n,求a+aa+.+aa.a(n个a)的值。例如,当用户输入 a为6,n 为5时,结果为74070。输入格式:65输出格式:74070#i ncludevoidmai n()i nta, n,i,t;longin tsum=0;sca nf(%d%d, &a,&n);t=a;for(i=1;i=n ;i+)sum=sum+t;t=t*10+a;prin t

17、f(%d,sum);5.15已知函数头为 voidavg(void),函数 avg的功能:输 入10个分数(浮点型),去掉最高分和最低分,求平均分, 保留一位小数。编写main函数并调用函数 avg。输入格式:0123456789输出格式:4.5#in clude,: T .- voidavg(void)L I*i ;inti;.i j Ifloatsu m,n, max, min, aver;scan f(%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;p

18、rin tf(%.1fn,aver);5.16 根据用户输入的正整数 n,求1-1/2+1/3-1/4+.+(-1)A( n+1)/n的值。保留两位小数。输入格式:2输出格式:0.50#i ncludevoidmai n()in ti,flag=1, n;doublesum=0;scan f(%d, &n);for(i=1;i=n ;i+)sum+=1.0/i*flag;flag=-flag;prin tf(%.2fn ”,sum);5.21 输入 n,求 1!+2!+3!+.+n!的值。输入格式:10输出格式:4037913#i ncludein tmai n(void)in tsum=0,

19、i, n, s=1;scan f(%d, &n);for(i=1;i=n ;i+)s*=i;sum+=s;prin tf(%dn,sum);5.22 根据用户输入的正整数 n ,求2/1+3/2+5/3+8/5+13/8+.的前n项之和。保留两位小数。输入格式:2输出格式:3.50#i ncludevoidma in( void)in ta=1,b=2,c,i ,n;doubled,sum=0;sca nf(%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);5.23 根据用户输入的正整数 n ,求1-2

20、/3+3/5-4/7+5/9-6/11+.的前n项之和。保留两位小数。 输入格式:2输出格式:0.33#i ncludein tmai n(void)in ti ,n, flag=1;doublesum=0;scan f(%d, &n);for(i=1;i=n ;i+)sum+=flag*1.0*i/(2*i-1);flag=-flag;prin tf(%.2fn,sum);return。;I, a15.24根据用户输入的正整数 n ,求数列! I |1,2,3,5,8,13,21,34,.中第 n 项的值。输入格式:25输出格式:121393#i ncludein tmai n(void)i

21、n ta=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);returnO;5.25输入一行字符,统计其中英文字母、数字字符、空 格和其他字符的个数。输入格式:kf3f5;p08d?迴输出格式:5424#i ncludein tmai n(void)charc;inten 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+;elseif(c=)space+;elseothers+;scan f(%c,

22、&c);prin tf(%d%d%d%dn,e ng,dig,space,others);return。;5.26根据用户输入的正整数n ,输出数列0,1,2,3,6,11,20,37,68,.中第 n 项的值。输入格式:4输出格式:3=#i ncludevoidmai n()i nti,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;prin tf(%dn,d);5.31输入若干整数,以-1结束,去掉最大值和最小值,求平均值,保留一位小数。输入格式:13579-1输出格式:5.0#i ncludevoid

23、mai n()in tscore;doublesum=0,n=0,avg,max, min,b; sca nf(%d, &score);max= min=b=score;while(score!=-1)if(scoremax)max=score;if(score min)min=score; sum+=score; n+;scan f(%d, &score);avg=(sum-max-mi n)/(n-2); prin tf(%.1fn,avg);5.32输入两个正整数,求最大公约数。 输入格式:11 155输出格式:5.I i I#in clude11 I:in tmai n(void)in

24、 ti,m, n, temp,maxgy;sca nf(%d%d, &m,&n);if(mn )temp=m ;m=n;n=temp; for(i=m;i=1;i-)if(m%i=0&n %i=0)maxgy=i;break;prin tf(%dn,maxgy); return0;5.33输入两个正整数,求最小公倍数。 输入格式:515输出格式:15#i ncludein tmai n(void)in ti,m, n, temp,maxgy;sca nf(%d%d, &m,&n); if(mn )temp=m ;m=n;n=temp; for(i=m;i+)if(i%m=0&i%n=0)max

25、gy=i;break; prin tf(%dn,maxgy);return。;5.34输入一个正整数 n,求n是几位数。输入格式:1357输出格式:4#i ncludemai n(void)intn, sum=0,k=0;scan f(%d, &n);while( n)n/=10;k+;prin tf(%dn,k);5.35输入一个正整数n,判断n是否为回文数。所谓回 文数,是从左到右读这个数和从右到左读这个数是一样 的。例如,98789是回文数。如果是,输出yes;如果不 是,则输出no。输入格式:输出格式:Yes#i ncludemai n(void)intn, m,sum=0,k=0;s

26、can f(%d, &n);m=n;while(m)sum=sum*10+m%10;m/=10;if(sum=n)prin tf(yes);elseprin tf( no);5.36根据输入的行数输出图案。 例如,输入的行数为7, 则输出如下图所示的图案(注:星号之间没有空格)。*输入格式:5输出格式:*#i ncludevoidmai n()in ti,j, n;sca nf(%d,&n);for(i=-n/2;i=n/2;i+)for(j=1;j=abs(i);j+)prin tf();for(j=1;j=n-2*abs(i);j+)prin tf(*);prin tf(n);认6.11输

27、入10个数到数组t中,求最小值及最小值在数组 t中的下标。输入格式:9753102468输出格式:05#i ncludevoidmai n()in tx10,i,mi n,j,k;for(i=0;i10;i+)scan f(%d, &xi);min=x0;k=0;for(j=1;j xj)mi n= 刈;k=j; prin tf(%d%dn,mi n,k);6.12输入10个数到数组t中,再输入x,如果有与x相 等的数组元素,输出该数组元素的下标;否则,输出-1。输入格式:97531024685 输出格式:2#i ncludevoidmai n()i ntt1O,i,x,flag=O;for(

28、i=0;i10;i+)scan f(%d, &ti); scan f(%d, &x);for(i=0;i10;i+)if(x=ti)flag=1;prin tf(%d,i);break;if(flag=0)pri ntf(-1);6.13输入10个整数到数组t中,按升序排序,输出下标 为6的数组元素。输入格式:9753102468输出格式:6#i ncludein tmai n(void)in tt10,i,j,temp;for(i=0;i10;i+)scan f(%d, &ti);for(i=1;i10;i+)for(j=0;jtj+1).-Itemp=tj;tj=tj+1;tj+1=tem

29、p;prin tf(%d,t6);return。;6.14输入九个整数到数组t中数组长度为奇数,将数组t中的数组元素倒置,输出倒置以后下标为5的数组元素。例如,数组t中九个数组元素依次为2、4、6、8、9、7、5、3、1,倒置以后九个数组元素依次为1、3、5、7、9、8、6、4、2,下标为5的数组元素为 &已知变 量声明和数组声明为“ inti,tmp,t9; ”,要求不再声明其 他的变量或数组。输入格式:975312468输出格式:3#i ncludein tmai n(void)in ti,tmp,t9;for(i=0;i9;i+)scan f(%d, &ti);for(i=0;i9/2;

30、i+)tmp=ti;ti=t8-i;t8-i=tmp;prin tf(%dn,t5);returnO;6.15求3行5列二维数组中每列数组元素的最小值,并输出列下标为3的这一列的最小值。输入格式:-3-1-5-7-9.I i I-8-642-8-2-3-4-5-6输出格式:-7#i ncludein tmai n(void)in ti,j,t3 5,max;for(i=0;i3;i+)for(j=0;j5;j+)scan f(%d, &tij);max=t03;for(i=1;i=ti3)max=ti3;prin tf(%d,max);returnO;6.16求3行5列二维数组中的最小值,及最

31、小值在数组中的行号和列号,并输出。输入格式:315798642013-131输出格式:-122#i ncludein tmai n(void)i nti,j,t3 5,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;jti j)max=tij m=i; n =j;prin tf(%d%d%d,max,m, n);return。;6.21输入10个数到数组t中,求最大值及最大值在数组 t中的下标。输入格式:9753102468输出格式:90#i ncludevoidmai n(

32、)in ti,a,m,t10,max;for(i=0;i10;i+)scan f(%d, &ti);max=t0;a=0;for(m=1;m10;m+)if(maxtm)max=tm;a=m;prin tf(%d%d,max,a);6.22输入10个整数到数组t中,按降序排序,输出下标 为5的数组元素。输入格式:9753102468输出格式:4voidmai n()in ta,b,k,t10;for(a=0;a10;a+)scan f(%d, &t a);for(a=1;a10;a+)for(b=0;b10-a;b+)if(tbtb+1)k=tb;tb=tb+1;tb+1=k;prin tf(

33、%d,t5);6.23输出数组s中字符串的子串,子串从sbegin开始, 长度为len。chars80;in tbegi n,le n;gets(s);scan f(%d%d,&begi n,&len);输入格式:howdoyoudo?49输出格式:doyoudoLi *,in tmai n(void).I j I I I* 厂、chars80;in ti,begi n,len;gets(s);scan f(%d%d,&begi n,&len);for(i=begi n;ibegi n+le n;i+)prin tf(%c,si);return。;6.24输入6个整数到数组t中,求最小值。输入

34、格式:975310输出格式:0#i ncludein tmai n(void)in ta6,i,mi n;scan f(%d, &a0);min=a0;for(i=1;i6;i+)scan f(%d, &ai);mi n=( mi n ai)?mi n:ai;prin tf(%dn,mi n);return。;6.25输入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的数组元素为 9。已知变量

35、声明和数组声明为“inti,tmp,t10; ”,要求不再声明其他的变量或数组。输入格式:9753102468输出格式:1#i ncludein tmai n(void)in tt10,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。;I6.26 已 知 数 组 声 明 为 inta10=0,10,20,30,40,50,60,70,80,90; ,10 个数组元 素是按升序排列的。输入一个整数n,如果没有与n相等的数组元素

36、,输出-1;否则,删除与n相等的数组元 素,要求剩余的九个数组元素是按升序排列的,输出下 标为6的数组元素。输入格式:100输出格式:-1#i ncludein tmai n(void)in ta10=0,10,20,30,40,50,60,70,80,90;intn ,i,flag=1;scan f(%d, &n);for(i=0;i10;i+)if(n=ai)flag=0;break;if(flag=1)pri ntf(-1 n);elsefor(;i10;i+)ai=ai+1;prin tf(%dn,a 6);return0;6.31求3行5列二维数组中每列数组元素的最大值,并输出列下标

37、为3的这一列的最大值。输入格式:-3-1-5-7-9-8-642-8-2-3-4-5-6输出格式:7宀】|: I-2,jT -|j、r/;#i ncludein tmai n(void)in ti,j,t3 5,max;for(i=0;i3;i+)for(j=0;j5;j+)! I | Iscan f(%d, &tij);I I:max=t03;for(i=1;i3;i+)if(max=ti3)max=ti3;prin tf(%dn,max);return0;6.32判断数组s中的字符串是不是回文。一个字符串从 左向右读和从右向左读是一样的,该字符串是回文。例 如,字符串abcdedcba是回文。如果是,输出 yes;如 果不是,则输出no。cha

温馨提示

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

评论

0/150

提交评论