1、练习题6参考答案练习题6 参考答案一、选择题序号12345678910参考答案DDDAADACBC序号11121314参考答案CDAA二、填空题1下面程序的运行结果是:1 1 2 35 8 13 21 34 552以下程序的输出结果是 abc 。3若有定义:int a34=1, 2, 0, 4, 6, 8, 10; ,则初始化后,a12得到的初值是 0 ,a21得到的i初值是 6 。4以下程序可求出所有水仙花数(水仙花数是指一个3位正整数,其各位数字的立方之和等于该正整数。如:407=4*4*4+0*0*0+7*7*7,故407是一个水仙花数)。请填空。#include void main()
2、 int x,y,z,a8,m,i=0;printf(The special numbers are:n);for(m=100;m1000; m+) x=m/100;y= (m/10)%10 ;z=m%10;if(x*100+y*10+z=x*x*x+y*y*y+z*z*z) ai=m ; i+; for(x=0; xi; x+) printf(%6d,ax);5下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空。#include #include void main() char a=c language, t; int i,j,k; k=strlen(a)
3、;for(i=0;i=k-2;i+=2) for(j=i+2;jaj ) t=ai; ai=aj; aj=t; puts(a); printf(n);6下面程序的功能是将二维数组a中每个元素向右移一列,最右一列换到最左一列,移后的数组存到另一个二维数组b中,并按矩阵形式输出a和b,请填空。例如:array a: array b: 4 5 6 6 4 5 1 2 3 3 l 2#include void main() int a23=4,5,6,1,2,3,b23; int i,j; printf(array a: n); for(i=0;i=1;i+) for(j=0;j3;j+) print
4、f(%5d,aij); bij=aij; printf(n); for( i=0;i=1; i+) bi0=ai2; printf(array b:n); for(i=0;i2;i+) for(j=0;j3;j+) printf(%5d,bij); printf(n) ; 7下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行3个元素输出数组b。请填空。#include void main() int a10,b10,i;for(i=0; i10 ;i+) scanf(%d, &ai);for(i=1; i10 ;i+) bi=ai-ai-1; f
5、or(i=1;i10;i+) printf(%3d,bi); if( i%3=0 )printf(n); 8以下程序是求矩阵a,b的和,结果存入矩阵C中,并按矩阵形式输出。请填空。 #include void main() int a34=3,-2,7,5,1,0,4,-3,6,8,0,2; int b34=-2,0,1,4,5,-1,7,6,6,8,0,2; int i,j,c34; for(i=0;i3;i+) for(j=0;j4;j+) cij= aij+bij ; for(i=0;i3;i+) for(j=0;j4;j+)printf(%3d,cij); printf(n) ; 三、
6、程序设计题1.从键盘输入某个班级的30名学生信息(设只含有学号),编写程序用折半查找法通过输入一个学生的学号查找某一学生(注意:查找前要先进行排序)。程序设计如下:#include #define N 30void main() int aN;int i,j,t,x,mid,low=0,high=N-1; printf(请输入%d名学生的学号:n,N);for(i=0;iN;i+) scanf(%d,&ai); for(j=0;jN-1;j+) for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t; printf(请输入需要查找的学生的学号:n);scanf(%d,&x); d
7、o mid=(low+high)/2; if(amid=x)break; else if(amidx) high=mid-1; else low=mid+1; while(low=high);if(low=high) printf(这个学生学号为%dn,x); else printf(查找不到n);2.设有某班级35名学生的一门课程考试成绩,编写程序求超过平均的学生(包括学号和成绩),并将所有学生按成绩降序排列输出。程序设计如下:#include #define NUM 35 void main( ) int aNUM2; float sum=0,ave; int i,j,t; printf(
8、请输入%d位同学的学号和成绩:n,NUM); for(i=0;iNUM;i+) scanf(%d%d,&ai0,&ai1); for(i=0;iNUM;i+) sum=sum+ai1; ave=sum/NUM; for(i=0;iave) printf(超过平均分的学生学号为:%d,成绩为:%dn,ai0,ai1); for(j=0;jNUM-1;j+) for(i=0;iNUM-j-1;i+) if(ai1ai+11) t=ai0;ai0=ai+10;ai+10=t; t=ai1;ai1=ai+11;ai+11=t; printf(所有学生成绩(降序排列):n); for(i=0;iNUM;
9、i+) printf(学号为:%d,成绩为:%dn,ai0,ai1);3.设从3个候选人中选择1个人,10个人参加投票,编写一个统计选票的程序。投票人编号候选人投票人编号候选人1张华6李好2李好7李好3王娟8王娟4李好9李好5张华10王娟程序设计如下:#include #include void main()int i; char name8; char *p1=张华; char *p2=李好; char*p3=王娟; int n1=0,n2=0,n3=0;for(i=0;i10;i+) printf(请输入第%d个投票人选择的候选人:n,i+1); scanf(%s,name); if(st
10、rcmp(name,p1)=0) n1+; else if(strcmp(name,p2)=0) n2+; else if(strcmp(name,p3)=0) n3+;printf(%s的票数为%dn,p1,n1);printf(%s的票数为%dn,p2,n2);printf(%s的票数为%dn,p3,n3);4.输入一行字符串,编写程序分别统计各个英文字母出现的次数(不区分字母大小写)。程序设计如下:#include void main() int let26 = 0; int i; char ch; while(ch=getchar()!=n) if (ch=A & ch=a & ch
11、=z) letch-a+; for (i=0;i26;i+) printf(%c: %dn, i+a, leti); 5.编写程序输出以下杨辉三角形(要求打印出10行)。1 1 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1程序设计如下:#include #define N 10void main() int i,j,k; int aNN; for(i=0;iN;i+) ai0=1; aii=1; for(i=2;iN;i+) for(j=1;ji;j+) aij=ai-1j-1+ai-1j; for(i=0;iN;i+) for(j=0;j=i;j+) printf(%4d ,aij) ; printf(n); 6.编写程序输入并求一个44矩阵的两条对角线元素之和、四周靠边元素之和。程序设计如下:#include #define N 4void main() int aNN; int i,j; int sum1=0; /对角线元素之和 int sum2=0; /四周靠边元素之和 printf(请输入%d*%d矩阵:n,N,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1