北理工C语言超全上机答案(非信息类).doc_第1页
北理工C语言超全上机答案(非信息类).doc_第2页
北理工C语言超全上机答案(非信息类).doc_第3页
北理工C语言超全上机答案(非信息类).doc_第4页
北理工C语言超全上机答案(非信息类).doc_第5页
已阅读5页,还剩107页未读 继续免费阅读

下载本文档

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

文档简介

上机考试时间为60分钟,上机考题为3道。第一题为简单的图形打印;第二题为简单数值计算(一般用穷举法就可以解决),第三题为相对复杂的数组/字符串处理。上机考题选自以下题目。#include int main()int i,j,n; scanf(%d,&n);外层i对行循环,i=n时先输出空格的行循环为for(i=1;i=1;i-)如:上下三角形,对称梯形,对称平行四边形。内层 jk对列循环。先打印空格或者先打印星号,找规律换行在内层循环中【1.1】编程,输入n,输出如下例(n=6)所示的图形: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *程序:#include int main()int i,j,n; scanf(%d,&n); for(i=1;i=n;i+) for(j=1;j=n;j+) printf(*); printf(n); system(pause);【1.2】编程,输入n,输出如下例(n=6)所示的图形: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 程序:#include int main() int i,j,n; scanf(%d,&n); for(i=1;i=n;i+) for(j=1;j=n-i;j+) printf( ); for(j=1;j=n;j+) printf(*); printf(n); system(pause);【1.3】编程,输入n,输出如下例(n=6)所示的高为n的等腰三角形。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *程序:#include int main()int i,j,n; scanf(%d,&n); for(i=1;i=n;i+) for(j=1;j=n-i;j+) printf( ); for(j=1;j=2*i-1;j+) printf(*); printf(n); system(pause);【1.4】编程,输入n,输出如下例(n=6)所示的高为n的等腰三角形。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *程序:#include int main()int i,j,n; scanf(%d,&n); for(i=n;i=1;i-) for(j=1;j=n-i;j+) printf( ); for(j=1;j=2*i-1;j+) printf(*); printf(n);system(pause);【1.5】编程,输入n,输出如下例(n=5)所示的高和上底均为n的等腰梯形。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * n=5时的等腰梯形程序:#include int main()int i,j,n; scanf(%d,&n); for(i=1;i=n;i+) for(j=1;j=n-i;j+) printf( ); for(j=1;j=n+2*i-2;j+) printf(*); printf(n); system(pause);【1.6】编程,输入n,输出如下例(n=5)所示的高和上底均为n的等腰空心梯形。 * * * * * * * * * * * * * * * * * * * * * * * *程序:#include main()int i,j,n;scanf(%d,&n);for (i=1;i=n-1;i+) printf( ); for (i=1;i=n;i+) printf(*); printf(n); for(i=1;i=n-2;i+) for(j=1;j=n-i-1;j+) printf( ); for(j=1;j=n+2*i;j+) if(j=1|j=n+2*i) printf(*); else printf( ); printf(n); for (i=1;i=3*n-2;i+) printf(*); printf(n);system(pause);【1.7】编程,输入n,输出如下例(n=5)所示的边长为n的空心正六边型。 * * * * * * * * * * * * * * * * * * * * * * * * 程序:#include main()int i,j,k,g,n;scanf(%d,&n);g=n;for(i=0;in;i+)for(k=0;kn-i;k+) printf( );for(j=0;j0;i-)for(k=0;kn-i+1;k+) printf( );for(j=0;jg;j+)if(i=1) printf(*);else if(j=0|j=g-1) printf(*);else printf( );g=g-2;printf(n);system(pause); 【1.8】编程,输入n,输出如下例(n=5)所示的图形: * * * * * * * * * * * * * * * * * 程序:#includemain() int i,j,n,m,k; scanf(%d,&n); for(i=1;i=2*n-1;i+) if(i=n) m=i;k=2*n-i; else m=2*n-i;k=i; for(j=1;j=k;j+) if(j=m|j=k) printf(*); else printf( ); printf(n);system(pause);【1.9】编程,输入n,输出如下例(n=5)所示的图形: * * * * * * * * * * * * *程序#includeint main() int i,k,n; scanf(%d,&n); for(i=1;i=n;i+) printf(*); printf(n); for(i=1;i=n-2;i+) for(k=1;k=n-i-1;k+) printf( );printf(*n); for(i=1;i=n;i+) printf(*); printf(n); system(pause); 【1.10】编程,输入n,输出如下例(n=5)所示的图形: * * * * * * * * * * * * * 程序:#include stdio.hmain() int i,j,n; scanf(%d,&n); for(i=1;i=n;i+) for(j=1;j=n;j+) if(j=1|j=i|j=n ) printf(*); else printf( ); printf(n); system(pause);【1.11】编程,输入n,输出如下例(n=3)所示的图形: * * * * * * * * * * * * *程序:#include stdio.h main() int i,j,n; scanf(%d,&n); for(i=0;i=n-1;i+) for(j=1;j=n-1-i;j+) printf( ); for(j=0;j=2*i;j+) printf(*); printf(n); for(i=1;i=n-1;i+) for(j=1;j=i;j+) printf( ); for(j=0;j=2*(n-1-i);j+) printf(*); printf(n); system(pause);【1.12】编程,输入n,输出如下例(n=5)所示的图形: * * * * * * * * *程序:#include main()int i,j,k,n;scanf(%d,&n);for(i=0;in;i+)for(j=0;jn-i;j+) printf( );for(k=0;k2*i+1;k+)if(k=0|k=2*i) printf(*);else printf( );printf(n);【1.13】编程,输入n,输出如下例(n=6)所示的高度为n的图形。1 2 3 4 5 67 8 9 10 11 1213 14 15 16 17 1819 20 21 22 23 2425 26 27 28 29 3031 32 33 34 35 36程序:#include main()int i,n;scanf(%d,&n);for(i=1;i=n*n;i+)printf(%2d ,i);if(i%n=0) printf(n);system(pause);【1.14】编程,输入n,输出如下例(n=5)所示的图形。 1 2 3 4 5 1 1 2 3 4 1 1 1 2 3 1 1 1 1 2 1 1 1 1 1程序:#include main()int i,j,n,k;scanf(%d,&n);for(i=0;in;i+)k=1;for(j=0;jn;j+)if(ji+1) printf( 1);else printf(%2d,+k);printf(n);system(pause);【1.15】编程,输入n,输出如下例(n=5)所示的的数字金字塔。 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1程序:#include main() int i,j,k,n,f;scanf(%d,&n);for(i=0;in;i+)f=0;for(j=0;jn-i;j+) printf( );for(k=0;k2*i+1;k+)if(ki+1) printf(%d,+f);else printf(%d,-f);printf(n);system(pause);【1.16】编程,输入n,输出如下例(n=5)所示的图形。 z y x w v u t s r q p o n m l k程序:#include main()int i,j,k,g=1,n;char a=z;scanf(%d,&n);for(i=0;in;i+)for(j=0;jn-i;j+) printf( );for(k=0;k0;i-)for(j=0;jn-i+1;j+) printf( );for(k=0;kg;k+)if(k=0|k=g-1) printf(%c,a-);else printf( ); g=g-2;printf(n);【1.17】编程,输入顶行字符c和高n,输出如下例(c=a,n=5)所示的图形。 a b b c c d d e e d d c c b b a程序:#include stdio.h #include math.h int main() char c; int n,i,j; scanf(%d,%c,&n,&c); for(c=c+n-1,i=1-n;i=n-1;i+) for(j=1;j=2*n-1-abs(i);j+) if(j=abs(i)+1|j=2*n-1-abs(i) printf(%c,c-abs(i); else printf( ); printf(n); system(pause);return 0; 【1.18】编程,输出如图所示上三角形式的乘法九九表。 1 2 3 4 5 6 7 8 9 -1 2 3 4 5 6 7 8 94 6 8 10 12 14 16 18 9 12 15 18 21 24 27 16 20 24 28 32 36 25 30 35 40 45 36 42 48 54 49 56 63 64 72 81程序:#include stdio.hmain()int i,j;for(i=1;i=9;i+) printf(%2d ,i);printf(n);for(i=0;i30;i+) printf(-);printf(n);for(i=1;i=9;i+)for(j=1;j=9;j+)if(i=j) printf(%2d ,i*j);else printf( );printf(n);printf(n);system(pause);【1.19】编程,输出如图所示下三角乘法九九表。1 2 3 4 5 6 7 8 9- 8164 7249 56 6336 42 48 5425 30 35 40 4516 20 24 28 32 369 12 15 18 21 24 27 4 6 8 10 12 14 16 18 1 2 3 4 5 6 7 8 9程序:#include stdio.hmain()int i,j;for(i=1;i=9;i+)printf(%2d ,i);printf(n);for(i=0;i=1;i-)for(j=1;j=9;j+)if(ji)printf( );else printf(%2d ,i*j);printf(n);printf(n); getchar();system(pause);【1.20】编程,输入n,输出如下例(n=5)所示的数字菱形 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1 1 2 3 4 3 2 1 1 2 3 2 1 1 2 1 1 程序:#include main()int i,j,k,n,f;scanf(%d,&n);for(i=0;in;i+)f=0;for(j=0;jn-i;j+) printf( );for(k=0;k2*i+1;k+)if(k0;i-)f=0;for(j=0;jn-i+1;j+) printf( );for(k=0;k2*i-1;k+)if(ki) printf(%d,+f);else printf(%d,-f);printf(n);system(pause);【2.1】编程,输出所有由数字0至9组成且各位数字不重复的三位数的个数。程序:#include stdio.hmain()int i,j,k,sum=0; for(i=0;i10;i+) for(j=0;j10;j+)for(k=0;k=9;k+)if (i=j|i=k|j=k) continue;else printf(%d%d%dn,i,j,k);getchar();【2.2】小明有五本新书,要借给a、b、c三位小朋友,每人每次只能借一本,编程,输出所有不同的借法。程序:#includemain()int i,j,k,sum=0;for(i=0;i5;i+) for(j=0;j5;j+) for(k=0;k a; book %d = b; book %d = c;n,i,j,k);printf(%dn,sum);getchar();【2.3】 编程,输入一个正整数,以相反的顺序输出该数的各位数字。例如输入12437,输出73421。程序:#include stdio.hmain()unsigned int n;printf(please input data:);scanf(%d,&n);while(n0)printf(%d,n%10);n=n/10;if(n=0) printf(n);getchar();【2.4】编程,输出100以内个位数为6、且能被3整除的所有数,并统计个数。程序:#include stdio.hmain()int n,sum=0;for(n=0;n100;n+)if(n%3!=0|n%10!=6) continue;sum=sum+1;printf(%6dn,n);printf(the number is : %6d,sum);getchar();【2.5】一个口袋中放有12个球,其中有3个红的,3个白的和6个黑的,每次从中任取8个球,编程,输出所有不同的取法。程序:#include main()int i,j,count=0;printf(num red white blackn);printf(-n);for(i=0;i=3;i+) for(j=0;j=3;j+) if(8-i-j)=6) printf(%2d: %4d %5d %5dn,+count,i,j,8-i-j);getchar(); 【2.6】100匹马驮100担货,大马一匹驮担,中马一匹驮担,小马两匹驮担。编程,输出大、中、小马的数目。程序:#include main()int x,y,z,j=0; for(x=0;x=33;x+) for(y=0;y=(100-3*x)/2;y+) z=100-x-y; if(z%2=0&3*x+2*y+z/2=100) printf(%2d:large=%2d middle=%2d small=%2dn,+j,x,y,z); getchar(); 【2.7】编程,输出用一元人民币兑换成1分、2分和5分硬币的所有不同兑换方法。程序: #includemain()int f1,f2,f5,count=0; for(f5=0;f5=20;f5+) for(f2=0;f25: %4d 2: %4d 1: %2dn,+count,f5,f2,f1);getchar();【2.8】一辆卡车违犯交通规则,撞人逃跑。现场三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学家,他说:四位的车号刚好是一个整数的平方。根据以上线索编程,输出车号。程序:#include math.h#include main()int i,j,k,c; for(i=1;i=9;i+) for(j=0;j=9;j+) if(i!=j) k=i*1000+i*100+j*10+j; for(c=31;c*c0)printf(%d,n%10);n=n/10;if(n=0) printf(n);getchar();【2.10】编程,输出满足下列算式的各字母所代表的数字。 程序:#include main()int p,e,a,r;for(p=1;p=9;p+)for(e=0;e=9;e+) if(p!=e) for(a=1;a=9;a+) if(a!=p&a!=e) for(r=0;r=9;r+) if(r!=p&r!=e&r!=a&p*1000+e*100+a*10+r-(a*100+r*10+a)=p*100+e*10+a) printf(pear %d%d%d%dn,p,e,a,r); printf(-ara -%d%d%dn,a,r,e); printf(-n); printf(pea %d%d%dn,p,e,a); getchar(); 【2.11】如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋性数)。如407=43+03+73就是一个阿姆斯特朗数。编程,输出1000以内的所有阿姆斯特朗数。程序:#include stdio.hmain()int i,t,k,a4=0;printf(there are following armstrong number smaller than 1000:n);for(i=2;i=10;t+)at=(i%k)/(k/10);k/=10; if(a0*a0*a0+a1*a1*a1+a2*a2*a2+a3*a3*a3=i)printf(%dn,i); getchar(); 【2.12】编程,计算并输出下式的值: 100 50 10 1 k + k2 + k=1 k=1 k=1 k程序:#include main()int i;float s=0; for (i=1;i=100;i+) s=s+i; for (i=1;i=50;i+) s=s+i*i; for(i=1;i=10;i+) s=s+1.0/i;printf(result=%fn,s);getchar();【2.13】用40元买苹果、西瓜和梨共100个,3种水果都要。已知苹果0.4元一个,西瓜4元一个,梨0.2元一个。问可以各买多少个?编程,输出全部购买方案。程序:#includemain()int a,b,c,n,sum=0;for(a=1;a=98;a+) for(b=1;b=98;b+) for(c=1;capple:%d,watermelon:%d,pear:%dn,n,a,b,c); sum+=1;printf(there are %d kinds of cases.,sum);getchar();【2.14】编程,输出这样一个三位数,该三位数等于其每位数字的阶乘之和。即:abc = a! + b! + c!程序:#include stdio.hmain()int n,a,b,c,i,j,k,m;for(n=100;n1000;n+)i=j=k=1;a=n/100;b=n/10%10; c=n%10;for(m=1;ma;m+) i*=(m+1);for(m=1;mb;m+) j*=(m+1);for(m=1;mc;m+) k*=(m+1); if(n=(i+j+k) printf(%d=%d!+%d!+%d!n,n,a,b,c);break;getchar();【2.15】编程,任意输入一个偶数n,请将它分解为两个素数之和。输出形式为:*=*+*程序:#include main()int n,i,j,k,a=0,b=0;printf(please input a even number:); scanf(%d,&n);if(n%2=0) printf(%d is indeed an even number!n,n);for(i=1;in;i+=2)for(j=1;ji;j+=2)a=b=0;if(n=i+j) for(k=3;ki;k+=2) if(i%k=0) a=1;for(k=3;k=100;i-)if (n%i=0)printf(the max factor with 3 digits in %ld is: %dn,n,i);break;【2.17】编程,输出所有满足下列条件的四位数n:n的9倍恰好是其反序数(例如:1234的反序数是4321)。程序:#include main()int i; for(i=1000;i1111;i+) if(i%10*1000+i/10%10*100+i/100%10*10+i/1000=i*9) printf(%dn,i);getchar();【2.18】 一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码顺序正好相反,编程,输出这个三位数。程序:#include main()int i,n,k,a3,b3; for(i=81;i0;n/=7) ak+=n%7; for(n=i,k=0;n0;n/=9) bk+=n%9; if(k=3) for(n=0;nk;n+) if(an!=bk-n-1) break; if(n=k) printf(nthis result is; %d,i);printf(nthe 7 based number is:);for(k=0;k3;k+) printf(%d,ak);printf(nthe 9 based number is:);for(k=0;k3;k+) printf(%d,bk);getchar();【2.19】编程,任意输入一个偶数,将它分解为两个素数之和并输出该偶数及其对应的两个素数。(与2。15重复)程序:#include main()int n,i,j,k,a=0,b=0;printf(please input a even number:); scanf(%d,&n);if(n%2=0) printf(%d is indeed an even number!n,n);for(i=1;in;i+=2)for(j=1;ji;j+=2)a=b=0;if(n=i+j) for(k=3;ki;k+=2) if(i%k=0) a=1;for(k=3;kj;k+=2) if(j%k=0) b=1;if(!a&!b) printf(%4d=%4d+%4dn,n,i,j);else printf(%d is an odd number!n,n);getchar();【2.20】如果整数的全部因子(包括,不包括本身)之和等于;且整数的全部因子(包括,不包括本身)之和等于,则将整数和称为亲密数。编程,输出3000以内的全部亲密数。程序:#include main()int a,i,b,n;for(a=1;a3000;a+)for(b=0,i=1;i=a/2;i+)if(!(a%i)b+=i;for(n=0,i=1;i=b/2;i+) if(!(b%i) n+=i; if(n=a&ab)printf(%4d-%4dn,a,b);getchar();【3.1】编程,输入若干个0 到 9之间的整数,输入-1时停止,输出

温馨提示

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

评论

0/150

提交评论