水仙花数,因为153=1+5+3。
方法一:三重循环 #include
printf(\for(i=1;i<=9;i++) for(j=0;j<=9;j++) for(k=0;k<=9;k++) { n=i*100+j*10+k; if(n==i*i*i+j*j*j+k*k*k) printf(\}
printf(\return 0; }
方法二:单重循环 #include
printf(\for(n=100;n<1000;n++) {
i=n/100; j=n/10-i*10; k=n; if(n==i*i*i+j*j*j+k*k*k) printf(\}
printf(\return 0; }
7.编写程序找出1000之内的所有“完美数(完全数、完备数)”。“完美数”也称为“完数”,它是指一个数恰好等于它的因子之和。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。
#include
int m,s,i;
for(m=2;m<1000;m++) {
s=0;
for(i=1;i 333 } if((m%i)==0)s=s+i; if(s==m) { printf(\ for(i=2;i if(m%i==0) printf(\ printf(\} } 14.编写程序验证哥德巴赫猜想(任何一个大于等于6的偶数都可以分解为两个素数之和),验证范围限定为6到2000。 #include int i,x,k; int prime(int n); printf(\请输入一个6到2000的偶数:\ scanf(\ for (i=2;i<=(int)(x/2);i++) { k=x-i; if (prime(i)&&prime(k)) { printf(\ break; //验证成立就退出 } } return 0; } int prime(int n) { int i; for(i=2;i<=n/2;i++) { if (n%i==0) return 0; } return 1; } 练习题6 参考答案 一、选择题 序号 1 2 3 4 5 6 7 8 9 10 参考答案 序号 参考答案 D 11 C D 12 D D 13 A A 14 A A D A C B C 二、填空题 1.下面程序的运行结果是 1 1 2 3 5 8 13 21 34 55 2.以下程序的输出结果是 abc 。 3.若有定义:int a[3][4]={{1, 2}, {0}, {4, 6, 8, 10}}; ,则初始化后,a[1][2]得到的初值是 0 ,a[2][1]得到的i初值是 6 。 4.以下程序可求出所有水仙花数(水仙花数是指一个3位正整数,其各位数字的立方之和等于该正整数。如:407=4*4*4+0*0*0+7*7*7,故407是一个水仙花数)。请填空。 #include { int x,y,z,a[8],m,i=0; printf(\The special numbers are:\\n\); for(m=100;m<1000; m++) { x=m/100; y= (m/10) ; z=m; if(x*100+y*10+z==x*x*x+y*y*y+z*z*z) { a[i]=m ; i++;} } for(x=0; x printf(\m\,a[x]); } 5.下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空。 #include { char a[]=\c language\, t; int i,j,k; k=strlen(a); for(i=0;i<=k-2;i+=2) for(j=i+2;j if( a[i]>a[j] ) { t=a[i]; a[i]=a[j]; a[j]=t; } puts(a); printf(\\\n\); } 8.以下程序是求矩阵a,b的和,结果存入矩阵C中,并按矩阵形式输出。请填空。 #include void main() { int a[3][4]={{3,-2,7,5},{1,0,4,-3},{6,8,0,2}}; int b[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}}; int i,j,c[3][4]; for(i=0;i<3;i++) for(j=0;j<4;j++) c[i][j]= a[i][j]+b[i][j] ; for(i=0;i<3;i++) { for(j=0;j<4;j++) printf(\=\,c[i][j]); printf(\ } } 三、程序设计题 1.从键盘输入某个班级的30名学生信息(设只含有学号),编写程序用折半查找法通过输入一个学生的学号查找某一学生(注意:查找前要先进行排序)。 #include printf(\查找不到\\n\} 2.设有某班级35名学生的一门课程考试成绩,编写程序求超过平均的学生(包括学号和成绩),并将所有学生按成绩降序排列输出。 #include printf(\请输入%d位同学的学号和成绩:\\n\ for(i=0;i scanf(\ for(i=0;i for(i=0;i printf(\超过平均分的学生学号为:%d,成绩为:%d\\n\ for(j=0;j 4.输入一行字符串,编写程序分别统计各个英文字母出现的次数(不区分字母大小写)。 #include int let[26] = {0}; int i; char ch; while((ch=getchar())!='\\n') { if (ch>='A' && ch<='Z') let[ch-'A']++; else if (ch >='a' && ch <='z') 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库C语言程序设计教程书后作业参考答案2013(3)在线全文阅读。
相关推荐: