中国农业大学C程序设计(部分样题) 二、分析程序,完成填空 1.分析程序。下面程序运行结果是【】 main() {intij.m.n i-8j8 m=++i n=j-: printf(%d.%d.%d.%".ij.m.n). 2.分析以下程序段,while循环执行的次数是【】次。 int k=0 while(k=1)k++: 3.分析下面程序的运行结果是sum=【】 #define ADD(x)x+x main( {intm=l,=2.,k=3, int sum=ADD(m+n)*k printf("sum=%d"sum): 4.下面循环嵌套程序打印结果为图形 请完成程序填空 #include <stdio.h #define N 3 main ( (int for (i=1;i<=N:i++) {forG=0,jK=N【】;jt+)printf("*"方 printf ("In): 5.以下程序的输出结果是【】 main() inti.n[4]=(0.0.0.0) for(i=1i<4:i++) if(==3)break nlil=nli-1+1 printf"%d.%dn"n[-) 3 6.以下程序的输出结果是【】 main()
1 中国农业大学 C 程序设计(部分样题) 二、分析程序,完成填空 1. 分析程序。下面程序运行结果是【】 main() {int i,j,m,n; i=8,j=8; m=++i; n=j-; printf(“%d,%d,%d,%d”,i,j,m,n); } 2. 分析以下程序段,while 循环执行的次数是【】次。 int k=0 while(k=1) k++; 3. 分析下面程序的运行结果是 sum=【】 #define ADD(x) x+x main() { int m=1,n=2,k=3; int sum=ADD(m+n)*k; printf(“sum=%d”,sum); } 4.下面循环嵌套程序打印结果为图形 *** ** * 请完成程序填空。 #include <stdio.h> #define N 3 main ( ) {int i,j; for (i=1; i<=N; i++) { for (j=0; j<=N【】; j++) printf("*"); printf ("\n"); } } 5.以下程序的输出结果是【】 main() { int i,n[4]={0,0,0,0}; for(i=1;i<4;i++) { if(i==3) break; n[i]=n[i-1]+1;} printf("%d,%d\n",n[i-1],n[i]); } 6. 以下程序的输出结果是【】 main()
iti.x31[3=1.2.34.5.6.7.8.9 for(i=0.i<3.i++)printf("%d".xfi][2-i) 7以下程序的输出结果是【】 main() void inc0). inc(). inc() inc). void inc() static int x=0: X+=2: printf(%d”,x 8.写出下面程序的执行结果为=【】 设程序为mainO( int iin for (i =1,i=5,i+)月 for (j=l:i<=3:++) nn+i printf"n=%dn",ny,】 9.写出下面程序的执行结果【】 main (int i,a[10]; for(G=9,i>=0,i-) alil=i: for(i=0is=9t+) main() char al10]=(123456789: char *p.inti= printf(%sn"p-3): 1l.若运行以下程序时,从键盘输入25,13,10三个数后回车,则输出结果是al+a2+a3=【】 main() int al.a2.a3 scanf"%d.%d.%d".al.&a.&a) 1+a2+a3-%dn,al+a2+a3), 12.执行下面程序,输出结果是【】 main() int a=2,b-6.c=4; ifasb)a=b:
2 { int i, x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf("%d",x[i][2-i]); } 7.以下程序的输出结果是【】 main() { void inc(); inc(); inc(); inc();} void inc() { static int x=0; x+=2; printf(“%d ”,x); } 8. 写出下面程序的执行结果为 n=【】 设程序为 main(){ int i,j,n; for (i=1;i<=5;i++){ n=0; for (j=1;j<=3;j++) n=n+j; } printf(“n=%d\n”,n); } 9.写出下面程序的执行结果【】 main () { int i,a[10]; for(i=9;i>=0;i-) a[i]=i; for(i=0;i<=9;i++) printf("%d",a[i]);} 10.写出下面程序的执行结果【】 main( ){ char a[10]={“123456789”}; char *p; int i=8; p=a+i; printf(“%s\n”,p-3);} 11.若运行以下程序时,从键盘输入 25,13,10 三个数后回车,则输出结果是 a1+a2+a3=【】 main(){ int a1,a2,a3; scanf(“%d,%d,%d”,&a1,&a2,&a3); printf(“a1+a2+a3=%d\n”,a1+a2+a3);} 12. 执行下面程序,输出结果是【】 main( ){ int a=2,b=6,c=4; if(a<b) a=b;
if(a<c)a=c: 13.执行下面程序,屏幕输出的值是【】 main() int x. printf(%d小n”,(x=3*5,x+5)} 14.以下程序的输出结果是【】 {aFa+1,b-b+2,c-c+3} main() {inta=1,b=2.c=3; fun(ab.c): #include <stdio.h main() char c=v iff-i&)ct-5. else if(c> &&c-z)c=22 putchar(c); } 16.从键盘输入一个字符,如果为小写字母则将其转换为大写字母,否则原样输出。 main() char ch printf("please input a character:\n"). scanf("o%c".【】: ch=(ch>=a&&ch<=z)(ch-32):ch用条件运算符实现判断赋值/ 17.下面程序完成把100-120之间的不能被3整除的数输出,并求其和,请填空。 main() int n.sum=0: forn=100,<120,n+) (if(【】=0) continue sum=sum+n: printf(%d"n); printf(n sum-%dr”,sum) 18.以下程序的功能是计算5个学生一门功课的平均分 #define N 5 average(arrav)
3 if(a<c) a=c; printf(“%d,%d,%d\n”,a,b,c);} 13. 执行下面程序,屏幕输出的值是【】 main(){ int x; printf(“%d\n”,(x=3*5,x+5));} 14. 以下程序的输出结果是【】 void fun(int a,int b,int c) {a=a+1,b=b+2,c=c+3;} main() {int a=1,b=2,c=3; fun(a,b,c); printf("%d,%d,%d\n",a,b,c);} 15.以下程序的运行结果是小写字母【】。 #include <stdio.h> main() { char c='y'; if(c>='a'&&c<='u') c+=5; else if(c>='v'&&c<='z') c-=22; putchar(c); } 杨 16. 从键盘输入一个字符,如果为小写字母则将其转换为大写字母,否则原样输出。 main ( ) {char ch; printf("please input a character:\n"); scanf ("%c",【】); ch=(ch>='a' && ch<='z')?(ch-32):ch; /*用条件运算符实现判断赋值*/ printf("ch=%c\n",ch)); } 17. 下面程序完成把 100~120 之间的不能被 3 整除的数输出,并求其和,请填空。 main( ) { int n,sum=0; for(n=100;n<120;n++) { if (【】==0) continue ; sum=sum+n; printf(“%d”, n); } printf(“\n sum=%d”, sum); } 18.以下程序的功能是计算 5 个学生一门功课的平均分。 #define N 5 average(array)
int array [N]; (,sum- for(i=0;i<N:i++) sum-=sum +array[]; aver=sum/N return(aver): main() {static int score5]=60.70.80,90.80) int i,aver; aver=average(【】): printf("nAverage score is:%d"aver): 程序运行结果: 个是利用动态指针米作数,序输出数组元素。筑 7 main() intal]=1,3,5,7,9,1l,p: for(p=at【】p>=ap-) 长度的程序,请填空。 main() int len=0: char strl201.◆p tastring:") p=str; while(*p++!=10) len++: printf("nThe length is:%) 21.下面是一个利用选择法,对数组数据从小到大进行排序的程序,请完善程序 #define N 10 main( (intij.min,temp,a[N]: 0number:n") scanf("%d",&al可店 printf("n"方 for(i=0:i<N-1:i++) min=i for(j-i+l:j<Nj++) if(min)min=j temp=a: a0-【】;a[min]=tcmp, printf"n result:n"); for(i=0:i<N:i++)
4 int array[N]; {int i, aver,sum=0; for (i=0;i<N;i++) sum=sum +array[i]; aver=sum/N ; return(aver);} main() { static int score[5]={60,70,80,90,80}; int i, aver; aver=average(【】); printf("\nAverage score is: %d",aver);} 程序运行结果: Average score is: 76 19.以下程序是利用动态指针来操作数组,逆序输出该数组元素,请填空。 main(){ int a[ ]={1,3,5,7,9,11},*p; for(p= a+【】;p>=a;p-) printf(“%d ”, *p); } 20.下面是一个测试字符串长度的程序,请填空。 main() { int len=0; char str[20], *p; printf("\nInput a string:"); scanf("%s",【】); p=str; while (*p++!='\0') { len++; } printf("\nThe length is:%d", len); } 21.下面是一个利用选择法,对数组数据从小到大进行排序的程序,请完善程序。 #define N 10 main() {int i,j, min,temp, a[N]; printf("Please input 10 number:\n"); for(i=0;i<N;i++) scanf ("%d", &a[i]); printf("\n"); for(i=0;i<N-1;i++) {min=i; for(j=i+1;j<N;j++) if(a[j]< a[min]) min=j; temp=a[i]; a[i]=【】; a[min]=temp;} printf("\n result:\n"); for(i=0;i<N;i++)
printf"%5d°.aj)3 22下面的程序是输入二维数组的行、列值,输出该位置的元素值,请完善程序。 main() {static int a3][4]={1,3,5,7,9,11,13,15,17,19,2123: int(*p训4,ij: p=a: scanf("%d.%d"&): printf"al%d,%d-%dn",i,【】)g 23.运行下列带有指针数组的程序,输出结果为【】,完成程序。 main( {char *s[门=("one”,"two",“three",*p: printf("%,%s\n",*(p+2),s[1]) 24.以下程序的输出结果是【】 main() int a=1,b=2; b,a-a-b printf("%d,%dn".a,b) 25.以下程序运行后的输出结果是【】 main() int m=3.n=4,x; x=-m十+, x=x+8/++n printf("%dn",x). 26若有以下程序段(n所赋的是八进制数),执行后输出结果是【】 intm=32767.n=032767 printf?"%d.%on"m.n): 27.以下程序段执行后输出结果是【】 int m=0xabc,n=0xab m-=n; printf("%Xn".m): 28.以下程序执行后输出结果是【】 main() int i=10.j=1 printf("%d,%d\n")
5 printf("%5d",a[i]);} 22.下面的程序是输入二维数组的行、列值,输出该位置的元素值,请完善程序。 main() { static int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int (*p)[4],i,j; p=a; scanf("%d, %d", &i,&j); printf("a[%d,%d]=%d\n",i,j, 【】); } 23.运行下列带有指针数组的程序,输出结果为【】,完成程序。 main() {char *s[]={"one","two","three"},*p; p=s[2]; printf("%c,%s\n",*(p+2),s[1]); } 24.以下程序的输出结果是【】 main() { int a=1, b=2; a=a+b; b=a-b; a=a-b; printf("%d,%d\n", a, b ); } 25.以下程序运行后的输出结果是【】 main() { int m=3,n=4,x; x=-m++; x=x+8/++n; printf("%d\n",x); } 26.若有以下程序段(n 所赋的是八进制数),执行后输出结果是【】 int m=32767, n=032767; printf("%d,%o\n", m, n); 27.以下程序段执行后输出结果是【】 int m=0xabc,n=0xabc; m -= n; printf("%X\n", m); 28.以下程序执行后输出结果是【】 main() { int i=10,j=1; printf("%d,%d\n",i- ,++j); }