C语言上机题库.docx

上传人:rrsccc 文档编号:10411626 上传时间:2021-05-15 格式:DOCX 页数:24 大小:58.84KB
返回 下载 相关 举报
C语言上机题库.docx_第1页
第1页 / 共24页
C语言上机题库.docx_第2页
第2页 / 共24页
C语言上机题库.docx_第3页
第3页 / 共24页
C语言上机题库.docx_第4页
第4页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言上机题库.docx》由会员分享,可在线阅读,更多相关《C语言上机题库.docx(24页珍藏版)》请在三一文库上搜索。

1、。C 语言习题集3.11 输入 A F 中的一个字母, 代表一个十六进制数,26.67将其转换为十进制数,求该数与15 的和并输出。#includeint main(void)输入格式:Bfloat f,c;scanf(%f,&f);输出格式:c=5.0/9*(f-32);26printf(%.2fn,c);#includereturn 0;int main(void)char ch;3.14 输入一个四位正整数,求其各位数字之和。例如,int sum;1357的各位数字之和为 1+3+5+7=16。ch=getchar();sum=ch-A+10+15;输入格式:printf(%dn,sum

2、);1357return 0;输出格式:163.12 输入三个整数,求其平均值。#includeint main(void)输入格式:3 5 7int num;int a,b,c,d,total;输出格式:5scanf(%d,&num);#include a=num/1000;int main(void)b=(num-a*1000)/100;c=(num-a*1000-b*100)/10;int a,b,c,aver;d=num-a*1000-b*100-c*10;scanf(%d %d %d,&a,&b,&c);total=a+b+c+d;aver=(a+b+c)/3;printf(%dn,

3、total);printf(%dn,aver);return 0;return 0;3.15 输入一大写字母,输出对应的小写字母。3.13 根据 c=5/9*(f-32)公式,输入华氏温度f ,求摄氏温度 c,结果精确到小数点后两位。输入格式:A输入格式:80.0输出格式:输出格式:a精选资料,欢迎下载。3.22 输入任意四位整数, 以反序的方式输出该整数。例#include如:输入 1234,输出 4321int main(void)输入格式:char c1,c2;1357scanf(%c,&c1);输出格式:c2=c1+32;7531printf(%c,c2);#includeint ma

4、in(void)3.16 输入两个整数分别赋值给变量a 和 b,将 a 和 bchar c1,c2,c3,c4;的值互换,输出 a、b 的值。scanf(%c%c%c%c,&c1,&c2,&c3,&c4);printf(%c%c%c%cn,c4,c3,c2,c1);输入格式:3 53.23 输入两个电阻值, 求它们并联和串联的电阻值,结输出格式:果保留两位小数。并联和串联的电阻值的计算公式为:5 3并联电阻: PR=(R1*R2)/(R1+R2)串联电阻:#include RS=R1+R2int main(void)输入格式:int a,b,temp;3 5scanf(%d%d,&a,&b);

5、temp=a;输出格式:a=b;1.88 8.00b=temp;#include printf(%d %d,a,b);return 0;int main(void)double r1, r2, pr, rs;3.21 输入一小写字母,输出对应的大写字母。scanf(%lf%lf, &r1, &r2);输入格式:pr =(r1 * r2)/ (r1 + r2) ;brs = r1 + r2;输出格式:printf(%.2f %.2fn, pr, rs);B#includereturn 0;int main(void)char ch;3.24 使用 getchar 函数分别输入两个字符变量c1 和

6、 c2,ch=getchar();要求 c1、 c2 均是字符 0 到 9 中的一个字符。将c1、putchar(ch-32);c2 中的值转换成相应的数字,如将字符1转换为数字putchar(n);1,并输出这两个数相加的结果。精选资料,欢迎下载。输入格式:#include 26void main() double r,l,s;输出格式:scanf(%lf,&r);8l=2*3.14159*r;s=3.14159*r*r;#includeprintf(%.2f %.2fn,l,s);int main(void)4.1 输入整数a 和 b,如果 a2 + b2大于 100,则输char c1,

7、c2;出 a + b的值;否则,输出a - b的值。c1=getchar();c2=getchar();输入格式:c1=c1-48;3 5c2=c2-48;printf(%dn,c1+c2);输出格式:return 0;-2#includevoid main()3.25 输入梯形的上下底边长度和高,计算梯形的面积,int a,b;保留一位小数。计算梯形面积的公式如下:scanf(%d%d,&a,&b);S=h*(a+b)/2if (a*a+b*b100)printf(%dn,a+b);输入格式:else3 5 4printf(%dn,a-b);输出格式:16.04.2 输入整数n,如果 n 既

8、是 5 的整倍数又是7 的整倍#include数,则输出yes ;否则输出no。int main(void)输入格式:int a,b,h;35float S;scanf(%d%d%d,&a,&b,&h);输出格式:S=h*(a+b)/2.0;Yesprintf(%.1f,S);#include return 0;void main()3.26输入圆的半径,求圆的周长和面积,结果精确int n;到小数点后两位。已知圆周率为3.14159 。scanf(%d,&n);if(n%5 = 0 & n%7 = 0)输入格式:printf(yesn);5.0elseprintf(non);输出格式:31.

9、42 78.54精选资料,欢迎下载。4.3 商场为促销实行打折销售商品,假定商品价格为pelse if(ch=A&ch=a&ch=f)式 sum = p * x * (1 - d)其中, sum 为应付金额, dprintf(%dn,ch-a+10+15);为折扣(x5 时:d=0;5=x10 时:d=1%;10=x21 时:elsed=2%; 21=x30 时: d=4%;30=x 时: d=6%;)。printf(Iaput Error!n);输入格式:9.9 15输出格式:145.5#include4.5 已知一张如下所示的时间表:void main()*Time*1morningint

10、 x;2afternoonfloat p,sum,d;3nightscanf (%f%d,&p,&x);*if(x5)Please input your choice:d=0;else if(x10)根据输入的序号显示相应的问候信息:输入1 时,输出d=0.01;Good morning ;输入 2 时,输出 Good afternoon;输入else if(x21)3 时,输出 Good night ;对于其他的输入, 则输出 error 。d=0.02;else if(x30)输入格式:d=0.04;2else d=0.06;输出格式:sum=p*x*(1-d);Good afternoo

11、nprintf(%.1f,sum);#includeint main(void)4.4 输入 0 9 或 af 或 A F中的一个字符,代表一个十六进制数,将其转换为十进制数,求该数与int choice;15 的和并输出。scanf(%d,&choice);switch(choice)输入格式:6case 1:printf(Good morningn);break;case 2:printf(Good afternoonn);break;输出格式:case 3:printf(Good nightn);break;21default:printf(errorn);#includevoid ma

12、in()char ch;4.6 输入 3 个整数,要求按从小到大的顺序输出。ch=getchar();输入格式:if(ch=0&ch=9)5 3 1printf(%dn,ch-0+15);精选资料,欢迎下载。输出格式:输入格式:1 3 51 3 5#includeint main(void)输出格式:5 3 1int a,b,c,t;#includescanf(%d%d%d,&a,&b,&c);int main(void)if(ab) t=a;a=b;b=t;if(ac) t=a;a=c;c=t;int a,b,c,t;if(bc) t=b;b=c;c=t;scanf(%d%d%d,&a,&b

13、,&c);printf(%d %d %dn,a,b,c);if(ab) t=a;a=b;b=t;return 0;if(ac) t=a;a=c;c=t;if(bc) t=b;b=c;c=t;printf(%d %d %dn,a,b,c);4.7 输入两个实数和一个算术运算符(+,- ,*,/ ),根return 0;据运算符执行相应的运算并输出运算结果,保留一位小数。(提示:运算符先输入,两个实数后输入)输入格式:5.11 编写程序,接收两个整数num1和 num2,找出这两+ 1.5 2.1个数之间所有奇数的和。输出格式:输入格式:3.61 100#includeint main(void)

14、输出格式:2500double a,b;#includechar op;int main(void)scanf(%c %lf%lf,&op,&a,&b);if (op=+) printf(%.1fn,a+b);int num1,num2,t,i,sum=0;scanf(%d%d,&num1,&num2);elseif(op=-)if(num1num2)printf(%.1fn,a-b);t=num1;num1=num2;num2=t; if(num1%2=0)num1+;elseif(op=*)for(i=num1;i=num2;i+=2)printf(%.1fn,a*b);sum+=i;pr

15、intf(%d,sum);else printf(%.1fn,a/b);5.12 输入 10 个分数 ( 浮点型 ) ,去掉最高分和最低分后求平均分,保留一位小数。return 0;输入格式:01234567894.8 输入 3 个整数,要求按从大到小的顺序输出。输出格式:精选资料,欢迎下载。4.5scanf(%d%d,&a,&n);#include t=a;void main()for(i=1;i=n;i+)int i;sum=sum+t;double sum=0,a,max,min;t=t*10+a;scanf(%lf,&a);sum=max=min=a;printf(%d,sum);fo

16、r(i=1;i=9;i+)scanf(%lf,&a);if(maxa)min=a;输入10 个分数 ( 浮点型 ) ,去掉最高分和最低分,求平sum=sum+a;均分,保留一位小数。编写main 函数并调用函数avg 。sum=sum-max-min;输入格式:printf(%.1f,sum/8);0123456789输出格式:5.13 输入 n,求 1 * 2 * 3 * . * n的值。4.5输入格式:10输出格式:#include 3628800void avg(void)#includeint i;int main(void)float sum,n,max,min,aver;scanf

17、(%f,&n);int i,n,k=1;max=min=n;scanf(%d,&n);sum=n;for(i=1;i=n;i+)for(i=2;in)?max:n;min=(minn)?min:n;5.14 根据用户输入的正整数a(19) 和正整数n,求 a +sum+=n;aa + . + aa.a(n个 a) 的值。例如,当用户输入a为 6, n 为 5 时,结果为74070。aver=(sum-max-min)/8;printf(%.1fn,aver);输入格式:6 55.16 根据用户输入的正整数n,求 1- 1/2 + 1/3 - 1/4输出格式:+.+ (-1)(n+1)/n的值。

18、保留两位小数。74070#include 输入格式:void main()2int a,n,i,t;long int sum=0;输出格式:精选资料,欢迎下载0.50#include void main()int i,flag=1,n;double sum = 0;scanf(%d,&n);for ( i=1;i=n;i+ )sum +=1.0/i*flag ;flag=-flag;printf(%.2fn,sum);5.21 输入 n,求 1! + 2! + 3! +. + n!的值。输入格式:10输出格式:4037913#includeint main(void)int sum=0,i,n

19、,s=1;scanf(%d,&n);for(i=1;i=n;i+)s*=i;sum+=s;printf(%dn,sum);5.22 根据用户输入的正整数n,求 2/1 + 3/2 + 5/3 +8/5 + 13/8 + .的前 n 项之和。保留两位小数。输入格式:2输出格式:3.50#include void main(void)。int a = 1, b = 2, c, i, n;double d,sum=0;scanf(%d,&n);for(i = 1; i = n; i+) d=1.*b/a; sum+=d; c = a + b; a = b;b = c;printf(%.2f,sum)

20、;5.23根据用户输入的正整数n,求 1 - 2/3 + 3/5 - 4/7+ 5/9- 6/11 + .的前 n 项之和。保留两位小数。输入格式:2输出格式:0.33#includeint main(void)int i, n,flag=1;double sum=0;scanf(%d,&n);for(i=1;i=n;i+)sum+=flag*1.0*i/(2*i-1);flag=-flag;printf(%.2fn,sum);return 0;5.24 根据用户输入的正整数n,求数列1, 2, 3, 5, 8,13, 21, 34, .中第 n 项的值。输入格式:25输出格式:121393#

21、include int main(void)精选资料,欢迎下载。int a = 1, b = 2, c,n, i;输出格式:scanf(%d,&n);3for(i = 3; i=n; i+)#includevoid main()c = a + b; int i,a=0,b=1,c=2,d,n;a = b;scanf(%d,&n);b = c;for(i=4;i=n;i+) d=a+b+c;printf(%dn, c);a=b;return 0;b=c;c=d;printf (%dn,d);5.25 输入一行字符,统计其中英文字母、数字字符、空格和其他字符的个数。5.31 输入若干整数, 以 -

22、1 结束,去掉最大值和最小值,输入格式:求平均值,保留一位小数。kf 3f5;p0 8d?输入格式:输出格式:13579-15424#include 输出格式:int main(void)5.0#include char c;void main ()int eng=0,dig=0,space=0,others=0;scanf(%c,&c);int score;while (c!=n)double sum=0,n=0,avg,max,min,b; if(c=a&c=A&c=0&cmax)elsemax=score;others+;if(scoremin)scanf(%c,&c);min=scor

23、e;printf(%d %d %d %dn,eng,dig,space,others);sum+=score;return 0;n+;scanf(%d,&score);5.26 根据用户输入的正整数n,输出数列0, 1, 2, 3, 6,11, 20, 37, 68,.中第 n 项的值。avg=(sum-max-min)/(n-2);printf(%.1fn,avg);输入格式:4精选资料,欢迎下载。5.32 输入两个正整数,求最大公约数。int n, sum = 0,k=0;scanf(%d, &n);输入格式:while (n)15 5n /= 10;k+;输出格式:5printf(%dn

24、, k);#include int main (void )int i,m, n, temp,maxgy;scanf (%d%d, &m, &n);5.35 输入一个正整数 n,判断 n 是否为回文数。所谓回if(mn) temp=m;m=n;n=temp;文数,是从左到右读这个数和从右到左读这个数是一样for(i=m;i=1;i-)的。例如, 98789 是回文数。如果是,输出 yes;如果if(m%i=0&n%i=0)不是,则输出 no 。 maxgy=i;break;printf(%dn,maxgy);输入格式:return 0;135797531输出格式:5.33 输入两个正整数,求最

25、小公倍数。Yes#include 输入格式:main(void)5 15 int n,m, sum = 0,k=0;输出格式:scanf(%d, &n);15m=n;#include while (m)int main (void ) sum = sum*10 + m%10;int i,m, n, temp,maxgy;m /= 10;scanf (%d%d, &m, &n);if (sum=n)if(mn) temp=m;m=n;n=temp;printf(yes);for(i=m;i+)elseif(i%m=0&i%n=0)printf(no); maxgy=i;break;printf(

26、%dn,maxgy);return 0;5.36 根据输入的行数输出图案。 例如,输入的行数为7,则输出如下图所示的图案(注:星号之间没有空格)。5.34 输入一个正整数 n,求 n 是几位数。* * *输入格式:*1357*输出格式:* * *4*#include main(void)输入格式:5精选资料,欢迎下载。9753102468输出格式:5*输出格式:*2*#include *void main()#include int t10,i,x,flag=0;void main()for(i=0;i 10;i+)scanf(%d,&ti);int i,j,n;scanf(%d,&x);sc

27、anf(%d,&n);for (i=0;i10;i+)for(i=-n/2;i=n/2;i+)if (x=ti)flag=1;for(j=1;j=abs(i);j+)printf(%d, i);break;printf( );for(j=1;j=n-2*abs(i);j+)printf(*);if(flag=0) printf(-1);printf(n);6.13 输入 10 个整数到数组t 中,按升序排序,输出下标为 6 的数组元素。6.11 输入 10 个数到数组t 中,求最小值及最小值在数输入格式:组 t 中的下标。9 7 5 3 1 0 2 4 6 8输入格式:输出格式:9753102

28、4686#include输出格式:int main(void)0 5#include int t10,i,j,temp;void main()for(i=0;i10;i+) int x10,i,min,j,k;scanf(%d,&ti);for(i=0;i 10;i+)for(i=1;i10;i+)scanf(%d,&xi);for(j=0;jtj+1)for(j=1;jxj) min=xj;k=j;temp=tj;printf(%d %dn,min,k);tj=tj+1;tj+1=temp;6.12 输入 10 个数到数组t 中,再输入x,如果有与x相等的数组元素,输出该数组元素的下标;否则

29、,输出printf(%d,t6);-1 。return 0;输入格式:6.14输入九个整数到数组t 中数组长度为奇精选资料,欢迎下载。数,将数组 t 中的数组元素倒置,输出倒置以后下标为for(i=1;i=ti3)4、 6、 8、 9、7、 5、3、 1,倒置以后九个数组元素依次max=ti3;为 1、 3、5、 7、 9、 8、 6、4、 2,下标为5 的数组元素printf(%d,max);为 8。已知变量声明和数组声明为 “ int i,tmp, t9;”,return 0;要求不再声明其他的变量或数组。输入格式:6.16求 3 行 5 列二维数组中的最小值,及最小值在数组9753124

30、68中的行号和列号,并输出。输出格式:输入格式:331579#include86420int main(void)13-131int i,tmp,t9;输出格式:for(i=0;i9;i+)-122scanf(%d,&ti);#includefor(i=0;i9/2;i+)int main(void) int i,j,t35,max,m,n;tmp=ti;for(i=0;i3;i+)ti=t8-i;for(j=0;j5;j+)t8-i=tmp;scanf(%d,&tij);max=t00;printf(%dn,t5);for(i=0;i3;i+)return 0;for(j=0;jtij)max=tij;m=i;n=j; 6.15 求 3行 5列二维数组中每列数组元素的最小值,并printf(%d %d %d,max,m,n);输出列下标为3 的这一列的最小值。return 0;输入格式:6.21输入 10个数到数组 t 中,求最大值及最大值在数-3 -1 -5 -7 -9组 t中的下标。-8 -6 -4 -2 -8-2 -3 -4 -5 -6输入格式:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1