C语言程序设计上机题目与参考答案.doc
《C语言程序设计上机题目与参考答案.doc》由会员分享,可在线阅读,更多相关《C语言程序设计上机题目与参考答案.doc(18页珍藏版)》请在三一文库上搜索。
1、C语言程序设计题目与参考答案(19章)1.(课本第84页第7题)设圆半径r=1.5,圆柱的高h=3,求圆周长.圆面积.圆球表面积.圆球体积.圆柱体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。请编程序:#include int main()#define p 3.1416int main()double r,h,l,s,S,v,V;scanf(%lf %lf,&r,&h);l=2*p*r;s=p*r*r;S=4*p*r*r;v=4/3*p*r*r*r;V=p*r*r*h;printf(l=%7.2fns=%7.2fnS=%7.2fnv=%7.2fnV=%7.
2、2fn,l,s,S,v,V);return 0;2.把560分钟化成小时和分钟。#includemain()int t,h,m;t=560;h=t/60;m=t%60;printf(560分钟等于%d小时%d分钟n,h,m);3.第112页第6题)有一个函数y=x(x1),y=2x-1(1=x=1写程序,输入x的值,输出y相应的值。#includeint main()float x,y;scanf(%f,&x);if(x1) y=x;else if(x10) y=2*x-1; else y=3*x-11;printf(%fn,y);4.(第113页第11题)输出4个整数,要求按由小到大的顺序输
3、出。#includeint main()float a,b,c,d,t;scanf(%f,%f,%f,%f,&a,&b,&c,&d);if(ab) t=a;a=b;b=t;if(ac) t=a;a=c;c=t;if(ad) t=a;a=d;d=t;if(bc) t=b;b=c;c=t;if(bd) t=b;b=d;d=t;if(cd) t=c;c=d;d=t;printf(%f,%f,%f,%f,a,b,c,d);5.(第113页第12题)有4个圆塔,圆心分别为(2,2),(-2,2),(-2,-2),(2,-2),圆半径为1,这四个塔的高度为10米,塔以外无建筑物。今输入任 一点的坐标,求该
4、点的建筑高度(塔外的高度为零)。# includemain()float x,y,t;scanf(%f,%f,&x,&y);if(x-2)*(x-2)+(y-2)*(y-2)=1) t=10.0;else if(x+2)*(x+2)+(y-2)*(y-2)=1) t=10.0; else if(x-2)*(x-2)+(y+2)*(y+2)=1) t=10.0; else if(x+2)*(x+2)+(y+2)*(y+2)=1) t=10.0; else t=0.0; printf(%fn,t);6.第140页第5题)求Sn=a+aa+aaa+aaa之值,其中a是一个数字,n表示a的位数,例如:
5、2+22+222+2222+22222(此时n=5)n由键盘输入。#includemain()int n,i;long int a=2,sum=0;scanf(%d,&n);for(i=1;i=n;i+)sum=sum+a; a=10*a+2;printf(sum=%dn,sum);7.(第140页第8题)输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=1*1*1+5*5*5+3*3*3.#includemain() int n,a,b,c; for(n=100;n=999;n+) a=n/100; b=n/10-10
6、*a; c=n%10; if(n=a*a*a+b*b*b+c*c*c)&(n=100*a+10*b+c) printf(%6d,n); printf(n);8. 有2个同学3门课的成绩,求平均值。#includemain()int i,j,score;float sum,average;for(i=1;i=2;i+) sum=0; for(j=1;j=3;j+) scanf(%d,&score);sum=sum+score; average=sum/3; printf(%d:average is %7.2fn,i,average);9. 将一个数组中的10个数据从大到小顺序排列好,并从键盘输入
7、一个数,要求按原来的排序规律将此数插入原数据中。 方法1:#includemain() int i,j,t;int a11;for(i=0;i10;i+)scanf(%d,&ai);printf(n);for(j=0;j10;j+)for(i=0;i10-j;i+)if(aiai+1)t=ai;ai=ai+1;ai+1=t;for(i=0;i=0;i-)if(aia10)t=ai;ai=a10;a10=t; break;for(i=0;i11;i+)printf(%dt,ai);printf(n); 方法2:#includemain() int a11,i,j,t,m; for(i=0;i10
8、;i+) scanf(“%d”,&ai); for(j=0;j9;j+) for(i=0;i9-j;i+) if(aiai+1)t=ai;ai=ai+1;ai+1=t; scanf(“%d”,%m); a10=m; for(i=0;iai) t=ai;ai=a10;a10=t; for(i=0;i11;i+) printf(“%3d”,ai);10. 已知五个半径求面积。#include#include#define PI 3.1416main() int a; float r,s;for(a=1;a=11;a=a+2)r=a+0.5;s=PI*pow(r,2);printf(r=%7.1f,
9、ts=%7.3fn,r,s);11.找出10个数中的最大值和最小值。#includemain() int i,max,min; int a10=;max=a0; min=a0;for(i=0;imax) max=ai; if(aimin) min=ai;printf(“max=%dn,min=%d”,max,min);12. 求一个数组(10个数)中所有元素的和的平均值。#includemain()int a10,i,sum=0;float aver;for(i=0;i10;i+)scanf(%d,&ai);sum+=ai;aver=sum/10.0;printf(%7.2fn,aver);1
10、3. 统计20个数中正数.负数及零的个数。#includemain()int a20,i,x=0,y=0,z=0;for(i=0;i20;i+)scanf(%d,ai);for(i=0;i0) x=x+1; else if(ai0) y=y+1;else z=z+1;printf(“x=%dny=%dnz=%dn”,x,y,z);14.找出3*3矩阵中每行的最大元素。 方法1:#includeMain() int a33=0,1,2,3,4,5,6,7,8; int max1,max2,max3,j; max1=a00; max2=a10; max3=a20; for(j=0;jmax1) m
11、ax1=a0j; if(a1jmax2) max2=a1j; if(a2jmax3) max3=a2j;printf(“max1=%d,max2=%d,max3=%d”,max1,max2,max3); 方法2:#includemain() int a33=, int I,j,max; for(i=0;i3;i+) max=ai0; for(j=0;j3;j+) if(maxaij) max=aij; printf(“max=%dn”,i+1,max);15.A为【3】【4】矩阵B为【4】【5】矩阵,求矩阵C=AB。#includemain()int a34,b45,c35,i,j;for(i
12、=0;i3;i+)for(j=0;j4;j+) scanf(%d,&aij); printf(n);for(i=0;i4;i+)for(j=0;j5;j+) scanf(%d,&bij); printf(n);for(i=0;i3;i+)for(j=0;j5;j+) cij=ai0*b0j+ai1*b1j+ai2*b2j+ai3*b3j; printf(%dt,cij);printf(n);16.(第169页第12题)有一行电文,已按下面规律译成密码:A-Z,a-z,B-Y,b-y,C-X,c-x,即第一个字母变成第26个字母,第i个字母变成(26-i+1)个字母,非字母字符不变。要求编程序将
13、密码译回原文,并输出密码和原文。#includemain()char c; while(c=getchar()!=n) if(c=a&c=A&c=Z) c=155-c; printf(%c,c); printf(n);17.输入6名学生5门课程的成绩,分别统计出每个学生的平均分和每门课程的平均分。#includemain()int a65,i,j,sum16=0,sum25=0;float aver1,aver2;for(i=0;i6;i+)for(j=0;j5;j+) scanf(%d,&aij);for(i=0;i6;i+)for(j=0;j5;j+) sum1i=sum1i+aij;av
14、er1=sum1i/5.0;printf(aver1=%fn,aver1);for(i=0;i5;i+)for(j=0;j6;j+)sum2i=sum2i+aji;aver2=sum2i/6.0;printf(aver2=%ft,aver2);printf(n);18.从键盘输入两个字符串,进行比较,结果为两字符第一个不同字母的ASCII码之差。#includemain()char str110=erhrgdftrb,str210=vbgfghdhfm;printf(%dn,strcmp(str1,str2);19.(第168页第6题)输出以下的杨辉三角形(要求输出10行)。11 11 2 1
15、1 3 3 11 4 6 4 11 5 10 10 5 1#includemain() int i,j,a10,t,b11;for(i=0;i10;i+)scanf(%d,&ai);printf(n);for(j=0;j10;j+)for(i=0;i10-j;i+)if(aiai+1)t=ai;ai=ai+1;ai+1=t;for(i=0;i10;i+)printf(%d ,ai);printf(n);scanf(%d,&t);for(i=0;i10;i+)bi=ai;b10=t;for(j=0;j11;j+)for(i=0;i11-j;i+)if(bibi+1)t=bi;bi=bi+1;bi
16、+1=t;for(i=0;i11;i+)printf(%d ,bi);printf(n);20.编写函数(float a)#include,用来求a的小数部分。#includefloat mydecical (float a)int b;float c;b=a;c=a-b;return c;main()float mydecical (float a);float a,b;scanf(%f,&a);b=mydecical (a);printf(%fn,b);21.显示1至10的平方#include main()int i,t;i=1;t=1;while(i=10)t=i*i;printf(%d
17、,%dn,i,i,t);i+;22.数组的转置#includevoid fun (int a33)int i,j,b33; for(i=0;i3;i+) for(j=0;j3;j+) bij=aji; printf(%d ,bij); printf(n);main()int a33,i,j;for(i=0;i3;i+)for(j=0;j3;j+)scanf(%d,&aij);printf(n);fun(a);printf(n);23.用冒泡法对十个字符按由小到大的顺序排列。#includevoid fun (char a10)int i,j,t;for(i=0;i9;i+)for(j=0;ja
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 上机 题目 参考答案
链接地址:https://www.31doc.com/p-8851358.html