北理工C语言超全上机答案非信息类.docx
- 文档编号:27740950
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:159
- 大小:65.79KB
北理工C语言超全上机答案非信息类.docx
《北理工C语言超全上机答案非信息类.docx》由会员分享,可在线阅读,更多相关《北理工C语言超全上机答案非信息类.docx(159页珍藏版)》请在冰豆网上搜索。
北理工C语言超全上机答案非信息类
上机考试时间为60分钟,上机考题为3道。
第一题为简单的图形打印;第二题为简单数值计算(一般用穷举法就可以解决),第三题为相对复杂的数组/字符串处理。
上机考题选自以下题目。
#include
intmain()
{inti,j,n;
scanf("%d",&n);
外层i对行循环,i=n时先输出空格的行循环为for(i=1;i<=n;i++)
若垂直反转则是for(i=n;i>=1;i--)如:
上下三角形,对称梯形,对称平行四边形。
内层jk…对列循环。
先打印空格或者先打印星号,找规律
换行在内层循环中
【1.1】编程,输入n,输出如下例(n=6)所示的图形:
******
******
******
******
******
******
程序:
#include
intmain()
{inti,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
intmain()
{
inti,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
intmain()
{inti,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
intmain()
{inti,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
intmain()
{inti,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()
{
inti,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("*");
elseprintf("");
printf("\n");
}
for(i=1;i<=3*n-2;i++)
printf("*");
printf("\n");
system("pause");
}
【1.7】编程,输入n,输出如下例(n=5)所示的边长为n的空心正六边型。
*****
**
**
**
**
**
**
**
*****
程序:
#include
main()
{
inti,j,k,g,n;
scanf("%d",&n);
g=n;
for(i=0;i { for(k=0;k for(j=0;j { if(i==0)printf("*"); elseif(j==0||j==g-1)printf("*"); elseprintf(""); } g=g+2; printf("\n"); } g=g-4; for(i=n-1;i>0;i--) { for(k=0;k for(j=0;j { if(i==1)printf("*"); elseif(j==0||j==g-1)printf("*"); elseprintf(""); } g=g-2; printf("\n"); } system("pause"); } 【1.8】编程,输入n,输出如下例(n=5)所示的图形: ** ** ** ** * ** ** ** ** 程序: #include main() { inti,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)所示的图形: ***** * * * ***** 程序 #include intmain() {inti,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.h" main() {inti,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("*"); elseprintf(""); printf("\n"); } system("pause"); } 【1.11】编程,输入n,输出如下例(n=3)所示的图形: * *** ***** *** * 程序: #include"stdio.h" main() {inti,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() { inti,j,k,n; scanf("%d",&n); for(i=0;i { for(j=0;j printf(""); for(k=0;k<2*i+1;k++) { if(k==0||k==2*i) printf("*"); elseprintf(""); } printf("\n"); } } 【1.13】编程,输入n,输出如下例(n=6)所示的高度为n的图形。 123456 789101112 131415161718 192021222324 252627282930 313233343536 程序: #include main() {inti,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)所示的图形。 12345 11234 11123 11112 11111 程序: #include main() { inti,j,n,k; scanf("%d",&n); for(i=0;i { k=1; for(j=0;j { if(j elseprintf("%2d",++k); } printf("\n"); } system("pause"); } 【1.15】编程,输入n,输出如下例(n=5)所示的的数字金字塔。 1 121 12321 1234321 123454321 程序: #include main() {inti,j,k,n,f; scanf("%d",&n); for(i=0;i { f=0; for(j=0;j printf(""); for(k=0;k<2*i+1;k++) { if(k elseprintf("%d",--f); } printf("\n"); } system("pause"); } 【1.16】编程,输入n,输出如下例(n=5)所示的图形。 Z YX WV UT SR QP ON ML K 程序: #include main() { inti,j,k,g=1,n; chara='Z'; scanf("%d",&n); for(i=0;i { for(j=0;j printf(""); for(k=0;k { if(k==0||k==g-1) printf("%c",a--); elseprintf(""); } g=g+2; printf("\n"); } g=g-4; for(i=n-1;i>0;i--) { for(j=0;j printf(""); for(k=0;k { if(k==0||k==g-1)printf("%c",a--); elseprintf(""); } g=g-2; printf("\n"); } } 【1.17】编程,输入顶行字符c和高n,输出如下例(c=’A’,n=5)所示的图形。 A BB CC DD EE DD CC BB A 程序: #include"stdio.h" #include"math.h" intmain() {charc; intn,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"); return0; } 【1.18】编程,输出如图所示上三角形式的乘法九九表。 123456789 ----------------------------------- 123456789 4681012141618 9121518212427 162024283236 2530354045 36424854 495663 6472 81 程序: #include"stdio.h" main() { inti,j; for(i=1;i<=9;i++)printf("%2d",i); printf("\n"); for(i=0;i<30;i++)printf("-"); printf("\n"); for(i=1;i<=9;i++) { for(j=1;j<=9;j++) { if(i<=j)printf("%2d",i*j); elseprintf(""); } printf("\n"); } printf("\n"); system("pause"); } 【1.19】编程,输出如图所示下三角乘法九九表。 123456789 ----------------------------------- 81 6472 495663 36424854 2530354045 162024283236 9121518212427 4681012141618 123456789 程序: #include"stdio.h" main() { inti,j; for(i=1;i<=9;i++)printf("%2d",i); printf("\n"); for(i=0;i<30;i++)printf("-"); printf("\n"); for(i=9;i>=1;i--) { for(j=1;j<=9;j++) { if(j elseprintf("%2d",i*j); } printf("\n"); } printf("\n"); getchar(); system("pause"); } 【1.20】编程,输入n,输出如下例(n=5)所示的数字菱形 1 121 12321 1234321 123454321 1234321 12321 121 1 程序: #include main() { inti,j,k,n,f; scanf("%d",&n); for(i=0;i { f=0; for(j=0;j for(k=0;k<2*i+1;k++) { if(k elseprintf("%d",--f); } printf("\n"); } for(i=n-1;i>0;i--) { f=0; for(j=0;j for(k=0;k<2*i-1;k++) { if(k elseprintf("%d",--f); } printf("\n"); } system("pause");} 【2.1】编程,输出所有由数字0至9组成且各位数字不重复的三位数的个数。 程序: #include"stdio.h" main() { inti,j,k,sum=0; for(i=0;i<10;i++) { for(j=0;j<10;j++) { for(k=0;k<=9;k++) { if(i==j||i==k||j==k)continue; elseprintf("%d%d%d\n",i,j,k); } } }getchar(); } 【2.2】小明有五本新书,要借给A、B、C三位小朋友,每人每次只能借一本,编程,输出所有不同的借法。 程序: #include main() { inti,j,k,sum=0; for(i=0;i<5;i++) { for(j=0;j<5;j++) { for(k=0;k<5;k++) { if(i==j||j==k||k==i)continue; elsesum=sum+1; printf("book%d=>A;book%d=>B;book%d=>C;\n",i,j,k); } } } printf("%d\n",sum); getchar(); } 【2.3】编程,输入一个正整数,以相反的顺序输出该数的各位数字。 例如输入12437,输出73421。 程序: #include"stdio.h" main() { unsignedintn; printf("pleaseinputdata: "); scanf("%d",&n); while(n>0) { printf("%d",n%10); n=n/10; } if(n==0)printf("\n"); getchar(); } 【2.4】编程,输出100以内个位数为6、且能被3整除的所有数,并统计个数。 程序: #include"stdio.h" main() { intn,sum=0; for(n=0;n<100;n++) { if(n%3! =0||n%10! =6)continue; sum=sum+1; printf("%6d\n",n); } printf("thenumberis: %6d",sum); getchar(); } 【2.5】一个口袋中放有12个球,其中有3个红的,3个白的和6个黑的,每次从中任取8个球,编程,输出所有不同的取法。 程序: #include main() { inti,j,count=0; printf("NUMREDWHITEBLACK\n"); printf("------------------------\n"); for(i=0;i<=3;i++) for(j=0;j<=3;j++) if((8-i-j)<=6) printf("%2d: %4d%5d%5d\n",++count,i,j,8-i-j); getchar(); } 【2.6】100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。 编程,输出大、中、小马的数目。 程序: #include main() { intx,y,z,j=0; for(x=0;x<=33;x++) for(y=0;y<=(100-3*x)/2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北理工 语言 上机 答案 信息