复习题二
- 格式:doc
- 大小:66.50 KB
- 文档页数:6
复习题二一.填空题1.若有以下定义,则执行表达式y+=y-=m*=y后y的值是____ __。
int m=5,y=2;2.若有说明:int a[3][4]={{1,2},{0},{4,6,8,10}},则a[1][2]= ;3. 能表达“20<x<30或x<-100”的C语言表达式是。
4.表达整型变量a能被3整除但不被5整除的表达式是____ __。
5.定义a为共有16个元素的一维字符数组、同时定义p为指向a数组首地址的指针变量的语句为。
6.C语言中唯一的三元运算符是。
7.设有:int a=3,b=4,c=5,则!(a>b)&&!c||1的值为。
8.设i,j均为int型变量,则执行完下面的for循环后,k的值为。
for(i=1,j=10; i<=j; i++,j--) k=i+j;9.访问结构体数组元素a[k]的成员b,写作。
10.a、b都是结构体变量,语句“a=b;”能够执行的条件是。
二.选择1.要使以下程序的输出结果的第一行都是1,第二行都是2,第三行都是3,正确的数据输入格式可以是。
main( ){ int i,j,a[3][3];for(j=0;j<3;j++)for(i=0;i<3;i++)scanf(“%1d”,&a[i][j]);for(i=0;i<3;i++){ printf(“\n”);for(j=0;j<3;j++)printf(“%1d”,a[i][j]);}}A.111222333B.123123123C.333222111D.3213213212.C语言程序的三种基本结构是顺序结构、选择结构和结构。
A.递归B.嵌套C.转移D. 循环3. 判断char形变量ch是否是大写字母的正确表达式是。
A. ‘A’<=ch<=’Z’B. (ch>=’A’)&(ch<=’Z’)C. (ch>=’A’)&&(ch<=’Z’)D. (‘A’<=ch)AND(‘Z’>=ch)4. 已知int x=10,y=20,z=30;以下语句执行后,x、y、z的结果是。
if(x>y)z=x; x=y; y=z;A. x=10,y=20,z=30B. x=20,y=30,z=30C. x=20,y=30,z=10D. x=20,y=30,z=205. 定义函数时,缺省函数的类型声明,则函数类型取缺省类型。
A. voidB.charC.float D.int6. 以下程序段的运行结果是。
x=0; y=0;while(x<15) y++,x+=++y;printf(“%d,%d”,y,x);A.20,7 B.6,20 C.20,8 D.8,207. 若用数组名作为函数调用的实参,传递给形参的是。
A. 数组的首地址B. 数组第一个元素的值C. 数组全部元素的值D. 数组元素的个数8. 以下程序的运行结果是。
main(){ int a[5]={1,2,3,4,5},i,j,t;for(j=1;j<=2;j++){ t=a[4];for(i=0;i<4;i++) a[i+1]=a[i];a[0]=t;}for(i=0;i<5;i++) printf("%d",a[i]);}A. 45123B. 34512C. 51111D.155559. 若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是。
A. &t[3][2] B. t[3] C. t[1] D. t[2][0]10. 以下程序的运行结果是。
int a=3, b=5;f( int a ) { a++; b+=a;}main(){ int a=6;f(a-1);printf("\n %d,%d",a,b);}A. 3,8B. 3,11C. 6,8D. 6,1111. 不是无限循环的语句有A.for(i=0;i=10;i++);B.for(i=10;i--;);C.for(i=-10; ;i++);D.for(;i=1;);12. 若int a=10; 执行下列程序后,变量a 的正确结果是switch( a ) {case 9: a+=1;case 10: a+=1;case 11: a+=1;default : a+=1;}A.10B.11C.12D.1313.以下程序的运行结果是。
main(){ char a[20]="xyz",*p=a,*p1;for( ; *p; p++);for(p1=p-1; p1>=a; p++,p1--) *p=*p1;*p=0;printf("\n %s",a);}A. xyzB. zyxC. xyzxyzD. xyzzyx14.以下程序的运行结果是。
void f(char *p){ if(*P= =0)return;if(*p!=’d’)f(p+1);printf(“%c”,*p);}main( ){ char c[]=“abcdef”;f(c);}A.abcdefB.fedcbaC.abcdD.dcba15. 以下程序的正确的运行结果是。
sub (int x,int y,int *z){ *z=y-x;}main( ){ int a,b,c;sub (10,5,&a);sub (7,a,&b);sub (a,b,&c);printf(“%d,%d,%d\n”,a,b,c);}A. 5,2,3B. -5,-12,-7C. -5,-12,-17D. 5,-2,-716.以下程序中,不符合C语法规则的语句有。
main( ){ int *p1,a[10];float *p2;A. p1=a+1;B. p2=p1;C. p2=(float *)p1;D. p1=a++;}17.以下程序中不符合C语法规则的语句是。
main(){A. int a[‘a’*2],*p=a,i;B. for(i=0;i<10;i++) scanf(“%d”,a);C. for(i=0;i<10;i++) scanf(“%d”,p++);D. for(i=0;i<10;i++) scanf(“%d”,a++);}18. 设有int a[ ]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是。
A.10,11,12B.11,12,12C.10,12,12D.11,11,1219. 以下对结构体变量的操作中,不能正确执行的语句是。
struct{ int num;char name[10];float score;}a,b;A.a=b;B.a.num=b.num;=;D.a.score=b.num20. 若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是。
A. EOF B. 0 C.非零值 D. NULL三.程序阅读题(1)main( ){ int j,F[5]={0,1};for(j=2;j<5;j++) F[j]= F[j-1]+ F[j-2]; for(j=0;j<5;j++) printf(“%5d”, F[j]); printf(“\n”);}(2)main( ){ int a=0,b=5,c=0,d=10;if(a)d+=10;else if(!b)if(!c) d=15;else d=25;printf(“d=%d \n”,d);}(3)int func(int n){ if(n==0)return 0;else if(n==1) return 1;else return n*n+func(n-2);}main( ){printf(“%5d%5d \n”, func(4), func(5)); }(4)main( ){ char s[]=”ABCDE” *p=S;while(*p){printf(“%s\n”,p++);if(*p) p++;}}(5)struct{ int a;char b;}M[2]={1,2,3,4},*p=M;main( ){ printf (″%5d″, M[0].a+ M[1].b);printf (″%5d″,(*p).a);printf (″%5d″,p->b++));printf (″%5d″,(*p).b);printf (″%5d\n″,++p->a));}(6)main( ){ char a=2,b=7;printf (″%5d″, a/b);printf (″%5d″,!a!=b);printf (″%5d″,a&=b);printf (″%5d″, a&&b);printf (″%5d\n″,b<a);}四.程序设计1.写出满足不等式1+1/2+1/3+1/4+…1/N>15最小的N值并输出。
2.为二维数组int a[10][10];输入数据后,计算并输出周边元素的和。
答案一、填空1.-162.03.x>20&&x>30||x<-1004. a%3==0&&a%55. int a[16] ,*p=a;6. 问号7.18.509. a[b].b10.结构体类型相同二.选择BDCBADADCDBDDDBBDCCA三、程序阅读题01( 0 1 1 2 3 )02( d=10 )03( 20 35 )04( ABCDECDEE )05( 5 1 2 3 2 )06( 0 1 2 1 28 )四.程序设计1. main(){ float sum=0;int n=0;do{n++;sum+=1.0/n;} While(sum<=15);printf("n=%d\n",n-1); }2. main(){int i,j,sum=0, a[10][10];for(i=0;i<10;i++)for(j=0;j<10;j++)scanf(“%d”,&a[i][j]);for(i=0;i<10;i++)sum+= a[i][0]+ a[9][i];for(i=0;i<10;i++)sum+= a[i][0]+ a[i][9];printf("sum==%d\n", sum); }。