C 语言复习资料(2)
51. 下面程序的输出是( )
int aa[3][3] = {{2},{4},{6}};
main()
{ int i, *p = &aa[0][0];
for (i = 0; i< 2; i++)
{if(i == 0)
aa[i][i+1] = *p + 1;
else
++p;
printf("%d", *p);}
}
A)23 B)26 C)33
D)36
52. 该程序的执行结果是( )
#include
#include
main()
{ int fun(char*,int);
char *p;
p="1234567";
fun(p,strlen(p));
puts(p);
}
int fun(char *w,int n)
{ char t,*s1,*s2;
s1=w; s2=w+n-1;
while (s1 { t=*s1++; *s1=*s2--; *s2=t; } } A )1234567 B )7654321 C)1711717 D )7177171 53. 试写出下列数学表达式的C 语言表达式 ) (2y x y x ++ 54. 下面程序的输出结果是( ) #include main() { char *a="1234"; fun(a); printf("\n"); } fun(char *s) { char t; if (*s) {t=*++s; putchar(t); fun(s); } } 56. 如果用八位二进制补码表示带符号的定点整数, 则能表示的十进制数的范围是( ) A) -127到+127 B) -128到+128 C) -127到+128 D) -128到+127 57. 若有定义及赋值: int y,*p,*p1; p=&y;p1=p;*p1=4; 则可以输出变量y的地址的语句是( ) A)printf("%u\n",y);B)printf("%u\n",*p1); C)printf("%u\n",*p);D)printf("%u\n",&y); 58. 设有int y,u=0,x=15,下列各项中不能使y值为0的是() A) y=x∧x;B、y=x∣u;C、y=x>>4;D、y=x&u; 59.二进制数1111111.101B转换成十六进制数是( ) A) FF.AH B) FF.5H C)7F.AH D)7F.5H 60.字符串”123”在计算机内所占用的字节数是( ) 个。 A) 1 B) 2 C) 3 D) 4 61. C语言中最基本的数据类型包括( ) A)整型、实型、逻辑型B)整型、实型、字符型 C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型 62. C语言中有关do—while循环的说法,正确的是( ) A)在if语句内不能再使用do-while语句构成的循环 B)do-while语句构成的循环必须用break语句才能退出 C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环63.在C语言中,不正确的int类型的常数是( ) A) 32768 B) 0 C) 037 D) Xaf 64. 设有如下定义: int a=2,b=1,c=3,d=4,m=2,n=2; 则执行表达式:(m=a>b)&&(n=c>d)后,n的值为( ) A) 1 B) 2 C) 3 D) 0 65.设a,b类型正确,语句:printf("%d",(a=2)&&(b= -2));的执行结果是( ) A) 2 B) –2 C) 1 D) 0 70. 不能进行++和--运算的数据类型是( ) A)指针变量 B)整型变量 C)整型常量 D)字符变量 71. 已知:int a,b; 用语句 scanf("%d%d",&a,&b); 输入a、b的值时,不能作为输入数据分隔符的是( ) A) , B)空格 C)回车 D)[Tab]键 72. 为表示关系x>=y>=z,应使用C语言表达式( ) A)(x>=y)&&(y>=z) B)(x>=y)AND(y>=z) C)(x>=y>=z) D)(x>=y)&(y>=z) 73. 以下不能对二维数组a进行正确初始化的语句是( ) A) int a[2][3] = {0}; B) int a[ ][3] = {{1,2},{0}}; C) int a[2][3] = {{1,2},{3,4},{5,6}}; D) int a[ ][3] = {1,2,3,4,5,6}; 74.以下不正确的描述是( ) A)break语句不能用于循环语句和switch语句外的任何其它语句 B)在switch语句中使用break语句或continue语句的作用相同 C)在循环语句中使用continue语句结束本次循环,但不会终止整个循环 D)在循环语句中使用break语句是,会跳出循环体,提前结束循环 75. 若有以下定义和语句 char s[12]="a book!"; printf("%d",strlen(s)); 则输出结果是( ) A)12 B)8 C)7 D)6 76. 以下程序的输出结果是( ) main() { int a=2,i; for(i=0;i<3;i++) printf("%d",func(a)); } func(a) int a; { int b=0; static int c=3; b++;c++; return(a+b+c); } A)777 B)7 7 7 C)789 D)7 8 9 77. 执行下面的程序后, y 的值是( ) main() { int a[]={2,4,6,8,10}; int y=1, x, *p=a+1; for( x=0; x<3; x++ ) y+=*(p+x); printf( "%d\n", y ); } A)17 B)18 C)19 D)20 80. 设有如下的程序段: char str[]="Hello"; char *ptr; ptr=str; 执行完上面的程序段后,*(ptr+5)的值为( ) A)'o' B)'\0' C)不确定的值 D)'o'的地址 81. 假设已定义 char a[10] 和 char *p=a,下面的赋值语句中,正确的是 ( ) A)a[10]="Turbo C" B)a="Turbo C" C)*p="Turbo C" D)p="Turbo C" 83. 下列程序的输出结果是( ) main() { int a[5]={2,4,6,8,10},*p,**k; p=a; k=&p; printf("%d ",*(p++)); printf("%d\n",**k); } A)4 4 B)2 2 C)2 4 D)4 6 84. 如有 struct student { int no; char name[20]; char sex; struct { int year; int month; int day; } birth; }; struct student s; 对变量s赋值"1984年11月11日"正确方式是( ) A)year=1984; month=11; day=11; B)birth.year=1984; birth.month=11; birth.day=11; C)s.year=1984; s.month=11; s.day=11; D)s.birth.year=1984; s.birth.month=11; s.birth.day=11; 85. 以下程序的输出结果是( ) main() { union {char i[2]; int k; }r; r.i[0]=0; r.i[1]=2; printf("%d \n", r.k); } A)2 B)512 C)0 D)不确定 86. C语言中,文件由__________ A)记录组成 B)由数据行组成 C)由数据块组成 D)由字符(字节)序列组成 87. 要判断char型变量m是否是数字字符,可以使用表达式( ) A) 0<=m && m<=9 B) '0'<=m && m<='9' C) "0"<=m && m<="9" D) 0<=m & m<=9 88.以下正确的语句是( ) A) int a[1][4] = {1,2,3,4,5}; B) float x[3][ ] = {{1},{2},{3}}; C) long b[2][3] = {{1},{1,2},{1,2,3}}; D) double y[ ][3] = {0}; 89. 执行下面的程序后,a的值为( ) main() { int a,b; for(a=1,b=1;a<=100;a++) {if(b>=20) break; if(b%3==1) {b+=3;continue; } b-=5; } } A)7 B)8 C)9 D)10 51. A 52. C 53. (Sqrt( x)+ sqrt( y))/2/( x+ y) or similar 54. The "234" is namely the string234 55. B 56.D 57.D 58. B 59. C 60.D 61.B 62. D 63.A 64.D 65.C 66.B 67.C 68. D 69. C 70.C 71.A 72.A 73.B 74.B 75.C 76. C 77.C 78.A 79.D 80.B 81.D 82.D 83.C 84.D 85.B 86.D 87.B 88.D 89.B 90.C