34.设整形变量a为5, 使b不为2的表达式是(C)
A、b=(++a)/3 B、b=6-(--a) C、b=a%2 D、b=a/2 35、已知char a=’R’;则正确的赋值表达式是(D);
A、a=(a++)% 4 B、a+2=3 C、c a+=256-- D、a=‘\\078’ 36.下面叙述正确的是(B)
A、2/3与2.0/3.0等价 B、(int)2.0/3与2.3等价 C、++5与6等价 D、‘A’与“A”等价 37、getchar( )函数的功能是从终端输入(D)
A、一个整型量值 B、一个实型变量值 C、多个字符 D、一个字符 38、若有定义:int i=7, j=8; 则表达式 i >j||i 39、若有定义:int i ,j;则表达式(i=2, j=5, i++, i+j++)的值是(B) A、7 B、8 C、9 D、10 40.若希望当a的值为奇数时,表达式的值为”真”,a的值为偶数时,表达式的值为”假”.则不能满足要求的表达式是( C ) A.a%2==1 B.!(a%2==0) C.!(a%2) D.a%2 41.下面叙述正确的是( A ) A.强制类型转换运算的优先级高于算术运算 B.若a和b是整型变量,(a+b)++是合法的 C.'A'*'B'是合法的 D."A"+"B"是合法的 42.以下程序段运行后变量a的值为(D) int x=6,y=5; int a; a=(--x=y++)?x:y+1; A.0 B.1 C.6 D.5 43.下面程序段的运行结果是( D ) int a =5 b=6;printf (“%d”,a/b); A. 5 B. 6 C. 7 D. 0 44.以下程序的运行结果是( D ) void main() { int a=65; char c=’A’; printf(“%x,%d”,a,c); } A.65,a B.41, a C.65,65 D.41,65 (3)选择结构程序设计 1.C语言对于计嵌套语句的规定:else总是与(B)配对 A.第一个if B.之前最近且尚未配对 C.缩进位置相同的if D.之前最近的if 2.以下的语句中,无内嵌的if语句是(D) A.if(x==y)x+=y; B.if(x>y&&x!=y)x+=y; C.if(x!=y)scanf(“%d”,&x);else scanf (“%d”,&y); D.if(x<y) {x++;y++} 3、以下程序运行结果是(D) void main( ) { int n=5; if ( n++7=6 ) printf( “% d\\n” , n); else printf ( “%d\\n” , ++n ); } A、4 B、5 C、6 D、7 4.以下程序段运行后x的值为( B ) int a[]={1,2,3},b[]={4,2,5}; int *p,*q; int i,x; p=a;q=b; for(i=0;i<3;i++) if(*(p+i)==*(q+i)) x=*(p+i)*2; A.2 B.4 C.6 D.不确定 5.若有定义:int a=1,b=2,c=3;则执行以下程序后a,b,c的值分别为( D ) if(a<b) {c=a,a=b,b=c;} A.a=1 b=2, c=3 B.a=2 b=3 c=1 C.a=2 b=3 c=3 D.a=1 b=1,c=1 6.以下程序的运行结果是(C) void main ( ) { int n=‘e’; switch (n- -) {default: printf (“error”); case‘a’: case‘b’: printf(“good”); break; case‘c’: printf(“pass”); case‘d’: printf(“warn”); } A、error B、good C、error good D、warn (4)循环控制 1.对于整型变量x,与while(!x)等价的是(B) A.while(x!=0) B.while(x==0) C.while(x!=1) D.while(~x) 2.以下程序运行后,循环体运行的次数为( B ) int i=10,x; for( ;i<10;i++) x=x+i; A.10 B.0 C.1 D.无限 3.设有整型变量x,下述语句( B )不会出现死循环 A、for( ; ; x+=1); B、for(; (x=gether( ))!=‘1n’; ); C、while (1) {x++;} D、for(x=10; ; x--); 4、在C语言中while循环和do—while循环的主要区别是( B ) A、do—while 循环体内可以使用break语句, while循环体内不能使用break语句 B、do—while的循环至少无条件执行一次,while的循环体不是 C、do—while 循环体内可以使用continue语句,while循环体内不能使用continue语句 D、while的循环体至少无条件执行一次,do—while的循环体不是 5、对于整型变量x和y,语句for (x=0, y=0 ; (y!=123) &&(x<4); x++) y++;中的“y++;”被执行( A ) A、4次 B、0次 C、123次 D、3次 6.以下程序段运行后变量n的值为( D ) int i=1,n=1; for( ; i<3;i++) { continue; n=n+i; } A.4 B.3 C.2 D.1 7.设有如下程序段: int a[3][3]={1,0,2,1,0,2,1,0,1},i,j,s=0; for(i=0;i<3;i++) for(j=0;j 则执行该程序段后,s的值是( C ) A.0 B.1 C.2 D.3 8. 以下程序运行结果(C) void main() { int sum=0,item=0; while(item<5) { item++; sum+=item; if(sum>=6) break; } printf(“%d\\n”,sum) ; } A.10 B.15 C.6 D.7 9.下面程序运行结果是( A ) int i=0,a[] ={1,2,3,4,5}; do{ a[i]+=10; }while(a[++i]>2); for(i=0;i<5;i++) printf(“%d”,a[i]); A.11 2 3 4 5 B.1 2 3 4 5 C.11 12 13 14 15 D.11 12 3 4 5 10.若有定义:int i=0,x=0; int a[3][3]={1,2,3,4,5,6,7,8,9}则以下程序段运行后x的值为( C ) for( ;i<3;i++) x+=a[i][2-i]; A.0 B.12 C.15 D.18 11.以下程序的运行结果是( B ) void main() { int sum=0,item=0; while (item<5) { item++; sum+=item; if(sum==5) break; } printf(“%d\\n”,sum); } A. 10 B.15 C.5 D.6 12.下面程序段的运行结果是( D ) int i=O, a[]={3,4,5,4,3}; do{ a[i]++; }while(a[++i]<5); for(i=0;i<5;i++) printf(“%d”,a[i]) ; A. 45654 B.34543 C.45554 D.45543 13.下面程序段的运行结果是( C ) int i=0,a[]={7,5,7,3,8,3}; do{ a[i]+=2; }while(a[++i]>5); for(i=0;i<6;i++) printf(“%d ”,a[i]); A. 9 7 9 5 10 5 B.9 5 9 3 10 3 C. 9 5 7 3 8 3 D.7 5 7 3 8 3 (5)数组 1、有如下定义 int a[ ][3]={1,2,3,4,5,6,7,8,};则数组a的行数( B ) A、 2 B、 3 C、 4 D、无法确定 2.以下数组定义中,正确的是( B ) A.int a[2] [3]={1,2,3,4,5,6,7}; B.int a[] []={{1,2,3},{4,5,6},{7,8,9}}; C.int a[2] []={1,2,3,4,5,6}; D.int a[] [4]={6}; 3.若有定义:int a=6,b=2;char C1=‘a’,C2=‘b’;则表达式a+b%5+C2-C1的值是( C ) A .7 B.8 C.9 D表达式错误 4.若有定义:char str[6]=“abcdm”,*ps,*str2=“abcdef”;正确的是( B ) A.stycpy(str1,str2); B.表达式strcmp(str1,str2)的值>0 C.str1=str2; D.表达式strlen(str1)的值为6 5.以下能对一维数组a进行正确初始化的语句是( D ) A.int a[5]=(0,0,0,0,0,) B.int a[5]=[0] C.int a[5]={1,2,3,4,5,6,7} D.int a[]={0} 6.以下( A )是不正确的字符串常量 A.‘abc’ B.“12′12” C.“O” D“ ” 7.设有如下定义:char str[8]={“Fujian”};则分配给数组str的存储空间是(C)字节 A.6 B.7 C.8 D.9 8.下列数组定义中,正确的是( A ) A.int a[10] B.int n=10 a[n]; C.int N=10;int a[N]; D.int n; scant(“%d”,&n);int a[n] 9.若有定义int a[2][3];则对数组元素的非法引用是( D ) A.a[0][1/2] B.a[1][1] C.a[4-4][0] D.a[0][3] 10.若有int a=2 则a=strcmp(“miss”,“miss”)运行后a的值为(B) A.1 B.0 C.-1. D.2 11.以下程序结束后屏幕输出(B) char str[]=“ab\\\\cd”;printf(“%d”,strlen(str)); A.4. B.5 C.6 D.7 12.已知int a[10];则对a数组元素引用不正确的是( A ) A.a[10] B.a[3+5] C.a[10-10] D.a[5] 13.设有以下变量定义: char str1[]=”string”,str2[8],*str3,*str4=”string”; 则( A )是正确的 A.strcpy(str1,”china”); B.str2=”china”; C.strcpy(*str3,”china”); D.strcpy(str4[0],”china”); 14、以下能对一维数组a进行正确初始化的语句是( D ) A、int a[5]=(0, 0, 0, 0, 0); B、int a [s]=[0]; C、int a[5]={1, 2, 3, 4, 5, 6, 7 }; D、int a [ ] = {0}; 15. 若有定义int a [ ] [ 3 ]={1,2,3,4,5,6,7,8,9};则表达式sizeof(a)/sizeof(a[0]) 的值为( A ) A、3 B、4 C、5 D、9 16、下列数组定义中,正确的是( A ) A. int a[5]={0}; B、int a[ ]={0 1 2}; C、int a[5]=0 D、int a [ ] 17、以下数组定义中,正确的是( B ) A、int a[2][3]={1,2,3,4,5,6,7}; B、int a[ ][ ]={{1,2,3},{4,5,6}, {7,8,9}}; C、int a[2][ ]={1,2,3,4,5,6};