《高级语言程序设计》北大上机试题汇总及答案.docx
- 文档编号:10493733
- 上传时间:2023-02-14
- 格式:DOCX
- 页数:33
- 大小:72.45KB
《高级语言程序设计》北大上机试题汇总及答案.docx
《《高级语言程序设计》北大上机试题汇总及答案.docx》由会员分享,可在线阅读,更多相关《《高级语言程序设计》北大上机试题汇总及答案.docx(33页珍藏版)》请在冰豆网上搜索。
《高级语言程序设计》北大上机试题汇总及答案
《高级语言程序设计》北大上机试题汇总
作者名:
不详出自:
网友提供05年7月20日
C语言上机试题:
1
1.题目:
编一C程序,它能读入一个正整数n(n<20),再逐行读入一个n*n的矩阵的元素(矩阵元素为整数,输入时相邻的整数用空格隔开),找出这个矩阵的最大的元素,再输出该元素的行号和列号(行号和列号均从1开始)。
(注:
程序命名为e1_1.exe)
程序设计:
main()
{intn,i,j,a[20][20],max,max_i,max_j;
printf("Pleaseintern=");
scanf("%d",&n);
printf("\n");
printf("Pleaseintera[][]:
\n");
for(i=0;i for(j=0;j scanf("%d",&a[i][j]); max=a[0][0],max_i=0,max_j=0; for(i=0;i for(j=0;j if(max {max=a[i][j]; max_i=i; max_j=j; } printf("max_i=%d,max_j=%d\n",max_i+1,max_j+1); } 2.题目: 设y(n)=1n<=1时 y(n)=-y(n-2)+2*y(n-1)n>1时 编一C程序,它能对读入的任意n(n>=0且n<50),能计算并输出y(n)的值。 (注: 程序命名为e1_2.exe) 程序设计: inty(n) intn; {if(n<=1)return (1); elsereturn(-y(n-2)+2*y(n-1)); } main() {intn; printf("Pleaseintern="); scanf("%d",&n); printf("\n"); printf("y(%d)=%d\n",n,y(n)); } 3.题目: 编一C程序,它能读入一个字符串(串长<100,串中可能有空格符),计算并输出该字符串中十进制数字的个数。 (注: 程序命名为e1_3.exe) 程序设计: #include"stdio.h" #include"string.h" main() {chara[100]; inti,l,num=0; printf("Pleaseinterastring: \n"); gets(a); l=strlen(a); for(i=0;i if(a[i]>='0'&&a[i]<='9') num++; printf("Numberis%d\n",num); } C语言上机试题: 2 1.题目: 编一C程序,它能读入一正整数n,(n<10),并输出如下图形: (可执行文件名为e2_1.exe) 程序设计: main() {staticinta[20][20]; intn,i,j,k; printf("Pleaseintern="); scanf("%d",&n); printf("\n"); for(i=0;i {k=1; for(j=0;j<2*n-1;j++) {if(j>n-i-2)a[i][j]=i+1; if(k<=2*i+1+n-i-2)k++; elsebreak; } } for(i=0;i for(j=0;j<2*n-1;j++) {if(a[i][j]==0)a[i][j]=''; elsea[i][j]+=48; } for(i=0;i {printf("\n"); for(j=0;j<2*n-1;j++) printf("%c",a[i][j]); } for(i=n-2;i>=0;i--) {printf("\n"); for(j=0;j<2*n-1;j++) printf("%c",a[i][j]); } printf("\n"); } 2.题目: 编一C程序,它能读入矩阵A的行数L,列数M,矩阵B的列数N,矩阵B的行数是M。 L,M,N值都小于20),以及按行读入矩阵A的L*M个元素(整数)及矩阵B的M*N个元素(整数),计算并输出A与B的矩阵乘积(按行,列输出)。 (输入时,相邻的两个整数用空格隔开)。 (可执行文件名为e2_2.exe) 程序设计: main() {inta[20][20],b[20][20],c[20][20],l,m,n,i,j,k; printf("Pleaseintera[l][m]andb[m][n]ofl,m,n: "); scanf("%d,%d,%d",&l,&m,&n); printf("\n"); printf("Pleaseintera[l][m]: \n"); for(i=0;i for(j=0;j scanf("%d",&a[i][j]); printf("Pleaseinterb[m][n]: \n"); for(i=0;i for(j=0;j scanf("%d",&b[i][j]); for(i=0;i for(j=0;j {c[i][j]=0; for(k=0;k c[i][j]+=a[i][k]*b[k][j]; } printf("c[l][n]=a[l][m]*b[m][n]: "); for(i=0;i {printf("\n"); for(j=0;j printf("%-5d",c[i][j]); } printf("\n"); } 3.题目: 编一C程序,它能读入n(n<200)个整数(以-9999为结束标记,-9999不算在内,相邻的两个整数用空格隔开),找出第1到第n-1个数中第一个与第n个数相等的那个数,并输出该数读入时的序号(序号从1开始记)。 (可执行文件名为e2_3.exe) 程序设计: main() {inta[200],n,i; scanf("%d",&a[0]); if(a[0]! =-9999) {for(i=1,n=0;a[i-1]! =-9999;i++,n++) scanf("%d",&a[i]); } printf("%d,%d\n",n,a[n-1]); for(i=0;i if(a[i]==a[n-1]) {printf("%d\n",i+1); break; } } C语言上机试题: 3 1.题目: 编一C程序,它能读入一正整数n(n<40),并输出如下图形: 共n行,每行n个A,下一行比上一行右移一列.(注: 可执行文件名为e3_1.exe) 程序设计: main() {intn,i,j,k; charch='A',space=''; printf("Pleaseintern="); scanf("%d",&n); printf("\n"); for(i=0;i {for(j=0;j for(k=0;k printf("\n"); } } 2.题目: 编一C程序,它能读入一个正整数,并输出该正整数的17进制形式,依次用A、B、C、D、E、F、G表示10、11、12、13、14、15、16。 (注: 可执行文件名为e3_2.exe) 程序设计: main() {charb[18]={"0123456789ABCDEFG"}; intc[64],d,i=0,base=17; longn; printf("Pleaseentern="); scanf("%ld",&n); printf("\n"); do {c[i]=n%base; i++; n=n/base; } while(n! =0); printf("Transmitenewbase=17: \n"); for(--i;i>=0;--i) {d=c[i]; printf("%c",b[d]); } printf("%c",'\n'); } 3.题目: 编一C程序,它能读入两个整数m与n,计算并输出m与n的绝对值的最大公约数及最小公倍数。 (注: 可执行文件名为e3_3.exe) 程序设计: main() {intm,n,d,r; printf("Pleaseentermandn: \n"); scanf("%d%d",&m,&n); if(m<0)m=-m; if(n<0)n=-n; if(m {r=m;m=n;n=r;} d=m; while(d%n! =0) d+=m; printf("%d\n",d); do{r=m%n; if(r! =0) {m=n;n=r;} } while(r! =0); printf("%d\n",n); } C语言上机试题: 4 1.题目: 编一C程序,它能读入一个13进制数(用字符串表示,用A、B、C分别表示10、11和12),输出该数的值(按十进制数输出)。 如输入为3B时,输出为50。 (注: 可执行文件名为e4_1.exe) 程序设计: main() {chara[40]; intn=0,i=0,j,k,s=0; printf("Pleaseentera13basenumber: \n"); scanf("%s",a); while(a[i++]! ='\0')n++; for(i=n-1;i>=0;i--) {if((a[i]>='0')&&(a[i]<='9'))k=a[i]-'0'; elseif((a[i]>='A')&&(a[i]<='C'))k=a[i]-55; elseprintf("error! \n"); for(j=1;j s+=k; } printf("To10basenumberis: \n"); printf("%d\n",s); } 2.题目: 编一C程序,它能依次读入三组d1、r1、d2、r2、d3、r3共18个非负整数(其中0<=r1 (输入整数时,相邻的两个用空格隔开)。 (注: 可执行文件名为e4_2.exe) 程序设计: main() {intl,i,n,d1,r1,d2,r2,d3,r3; for(i=0;i<=2;i++) {l=1; n=1; printf("Pleaseenterd1>=r1>=0,d2>=r2>=0,d3>=r3>=0: \n"); scanf("%d%d%d%d%d%d",&d1,&r1,&d2,&r2,&d3,&r3); while((l! =0)&&(n<=d1*d2*d3)) {if((n%d1==r1)&&(n%d2==r2)&&(n%d3==r3)) {printf("%d\n",n);l=0;} elsen++; } if(l! =0)printf("no! \n"); } } 3.题目: 编一C程序,它能读如若干浮点数f1、f2、...fn(以-9999.0为结束标记,-9999.0不算在内)并输出在f2、f3、...fn这n-1个数中大于f1的数的个数、等于f1的数的个数和小于f1的数的个数。 (注: 可执行文件名为e4_3.exe) 程序设计: #include"math.h" main() {floatf[100],f1; intn=0,i,i1=0,i2=0,i3=0; printf("Pleaseenterfloat: \n"); scanf("%f",&f1); f[0]=f1; while(abs(f[n]+9999.0)>=1e-4) scanf("%f",&f[++n]); for(i=1;i<=n-1;i++) if(f[i]>f1)i1++; elseif(abs(f[i]-f1)<1e-4)i2++; elsei3++; printf(">f1: %d\n",i1); printf("=f1: %d\n",i2); printf(" %d\n",i3); } C语言上机试题: 5 1.题目: 编一C程序,它能读入若干个非零浮点数(相邻的两个数用空格隔开,以0.0为输入结束标记,0.0不算在内),计算并输出这些数的平均值。 (注: 可执行文件名为e5_1.exe) 程序设计: #include"math.h" main() {floatf,s=0.0; intn=0; printf("Pleaseenterfloatnumber: \n"); scanf("%f",&f); if(fabs(f-0.0)<1e-4) printf("Nonumber! \n"); elsewhile(fabs(f-0.0)>1e-4) {n++; s+=f; scanf("%f",&f); } if(n! =0) printf("%dnumberofaverageis: %f\n",n,s/n); } 2.题目: 编一C程序,它能反复读入正整数(相邻的用空格隔开),并判断它是否为素数(质数),若是,则输出"yes",否则,输出"no",直到读入1时,程序终止执行。 (注: 可执行文件名为e5_2.exe) 程序设计: main() {intn,m,f; printf("Pleaseenteranumber: \n"); scanf("%d",&n); while(n! =1) {f=1; if(n==2) printf("%dyes\n",n); elsefor(m=2;m if(n%m==0) {printf("%dno\n",n); f=0; break; } if(n! =2&&f==1) printf("%dyes\n",n); scanf("%d",&n); } } 3.题目: 编一C程序,它能读入21个整数(相邻的两个数用空格隔开),并输出值为中间的整数的值(即恰有10个值小于它,恰有10个值大于它)。 (注: 可执行文件名为e5_3.exe) 程序设计: main() {inta[21],i,j,k,t; printf("Pleaseenter21numbers: \n"); for(i=0;i<21;i++) scanf("%d",&a[i]); for(k=1;k<21;k++) for(j=20,i=0;i<21-k;i++,j--)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级语言程序设计 高级 语言程序设计 北大 上机 试题 汇总 答案