声明:此答案仅限于参考,有错请指出!
第一章C程序基础和数据类型及运算
1、对于一个正常运行的C程序,以下叙述中确的是(A)
A)程序的执行总是从main 函数开始
B)程序的执行总是从程序的笫一个函数开始,在程序的最后一个函数中结束
C)程序的执行总是从main函数幵始,在程序的最后一个函数中结束
D)程序的执行总是从程序的笫一个函数开始,在main函数结束
2、若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是( D )
A)x+1=y B) x=x+10=x+y C)double (x)/10 D)++x,y=x--
3、以下选项中能表示合法常量的是( D )
A)?\?B)1,200 C)1.5E2.0 D)”\007”
4、C语言源程序名的后缀是( D )
A) . cp B) .obj C) .exe D) .C
5、阅读以下程序
#include
main ()
{ int case ;
float printF;
printf ("请输入2个数:");
scanf ( "%d %f",&case, &printF );
printf("%d %f\n",case,printF );
}
该程序在编译时产生错误,其出错原因是( A)
A.定义语句出错,case是关键字,不能用作用户自定义标识符
B.定义语句无错,printf不能输出case的值
C.定义语句无错,scanf不能作为输入函数使用
D.定义语句出错,printF不能用作用户自定义标识符
6.若有定义语句:
int x=12,y=8, z;
在其后执行语句
z= 0.9+x/y;
则z的值为(B)
A.2.4
B.1
C.2
D.1.9
7. 表达式a+=a-= a=9的值是
A.-9
B.0
C.9
D.18
8. 有以下程序
#include
main ()
{
char cl='A',c2='Y';
printf ("%d,%d\n", cl,c2 );
}
程序的输出结果是( B )
A.输出格式不合法,输出出错信息
B.65,89
C.A,Y
D.65,90
9. 关于C语言的变量,以下叙述中错误的是( A)
A)变量所占的存储单元地址可以随时改变
B)程序中用到的所有变量都必须先定义后才能使用
C)由三条下划线构成的符号名是合法的变量名
D)所谓变量是指在程序运行过程中其值可以被改变的量
10. 以下叙述中正确的是( D )
A)字符变量在定义时不能赋初值
B)同一英文字母的大写和小写形式代表的是同一个字符常量
C)转义字符用@符号开头
D)字符常量可以参与任何整数运算
11. 以下叙述中正确的是(A)
A)由&&构成的逻辑表达式与由||构成的逻辑表达式都有"短路"现象
B)C语言的关系表达式:0 C)逻辑"或"(即运算符||)的运算级别比算术运算要高 D)逻辑"非〃〈即运算符!)的运算级别是最低的 12. 若有以下程序( D ) #include main () { int a=0,b=0,c=0; c= (a+=++b, b+=4); printf ("%d, %d, %d\n", a,b, c); } 则程序的输出结果是 A) -1,4,-1 B)1,5,1 C)-1,4,4 D)1,5,5 13. 若变置己正确定义并赋值.以下不能构成C语句的选项是(D) A) A?a:b; B)B++; C) A=a+b; D) a=a+b 14. 以下选项中不属于C语言程序运算符的是( A ) A) <> B)( ) C) && D) sizeof 第二章基本语句 15、若变量已正确定义为int型,要通过语句 scanf(“%d,%d,%d”,&a,&b,&c); 给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是(注:□代表一个空格符)( D ) A) □□□1,2,3<回车> B)1,2,3<回车> C)1, □□□2, □□□3<回车> D)1□2□3<回车> 16、设有定义: int a; float b; 执行 scanf("%2d%f", &a, &b); 语句时,若从键盘输入 876 543.0〈回车> 则a和b的值分别是( A ) A 87 和6.0 B 76和543.0 C 87和543.0 D 876和543.0 17. 以下叙述中正确的是( D) A.在使用scanf函数输入整数或实数时,输入数锯之间只能用空格来分隔 B.在printf函数中,各个输出项只能是变量 C.使用printf函数无法输出百分号% D.在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上 18. 以下叙述中正确的是( D ) A.复合语句也被称为语句块,它至少要包含两条语句 B.scanf函数中的字符串,是提示程序员的,输入数据时不必管它 C.只能在printf函数中指定输入数据的宽度,而不能在scanf函数中指定输入数据占的宽度 D.在scanf函数的格式串中,必须有与输入项一一对应的格式转换说明符 19. 有以下程序 #include main () { char cl,c2,c3,c4,c5,c6; scanf("%c%c%c%c", &cl, &c2,&c3,&c4); c5=getchar(); c6=getchar(); putchar(cl); putchar(c2); printf ("%c%c\n", c5, c6); } 程序运行后,若从键盘输入(从笫1列开始) 123<回车> 45678< 回车> 则输出结果是( D ) A.1267 B.1256 C.1278 D.1245 20. 有以下程序 #include main () { int al,a2; char cl,c2; scanf("%d%c%d%c",&al,&cl,&a2,&c2); printf ("%d, %c, %d, %c", al, cl,a2, c2}; } 若想通过键盘输入,使得al的值为12, a2的值为34,cl的值为字符a, c2的值为字符b,程序输出结果是: 12,a,34,b则正确的输入格式是(以下口代表空格, A.12口a口34口b B.12口a34口b C.12a34b D.12, a, 34,b 第三章控制语句 21、有以下程序 #include main() { int x=1,y=2,z=3; if(x>y) if(y else printf(“%d”,++y); printf(“%d\n”,x++); } 程序的运行结果是( D ) A) 4 1 B) 2 C)3 3 1 D)1 22、以下叙述中正确的是( A) A) break语句只能用在循环体内和swich语句体内 B)在循环体内使用break语句和continue语句的作用相同 C)break语句只能用于switch语句体中 D)continue语句的作用是:使程序的执行流程跳出包含它的所有循环23、有以下程序 #include main() { int k=5; while (--k) printf(“%d”,k -= 3); printf("\n”); } 执行后的输出结果是( C) A死循环 B 4 C 1 D 2 24. 若有以下程序 #include main () { int s=0, n; for (n=0; n<4; n++) { switch(n) { default: s+=4; case 1: s+=l; case 2: s+=2; case 3: s+=3; } } printf("%d\n", s); } 则程序的输出结果是( B) A.18 B.24 C.10 D.6 25. 若有以下程序 #include main () { int a=6,b=0,c=0; for ( ;a; ) { b += a; a -= ++c; } printf ("%d, %d, %d\n", a,b,c); } 则程序的输出结果是( B ) A.1,14,3 B.0,14,3 C.0,18,3 D.0,14,6 26. 若有以下程序 #include main () { int a=l,b=2,c=3, d=4; if ( (a=2)||(b=l)) c=2; if ((c==3)&&(d=-l)) a=5; printf ( "%d, %d, %d,%d\n", a, b, c, d); } 则程序的输出结果是( D ) A.5.1.2,-1 B.2.1.2,-1 C.1,2,3,4 D.2,2,2,4 27. 以下叙述中正确的是(A) A.我们所写的毎条C语句,经过编译最终都将转换成二进制的机器指令 B.只有简单算法才能在有限的操作步骤之后结束 C.如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确实现; D.程序必须包含所有三种基本结构才能成为一种算法 28. 有以下程序 #include main() { int a=l,b=2,c=3,d=0; if (a==l && b++==2) if (b!=2||c--!=3) printf ("%d, %d, %d\n", a,b, c); else printf ("%d, %d, %d\n", a,b, c); else printf("%d,%d,%d\n",a,b, c); } 程序运行后的输出结果是(D) A.1,2,3 B.3,2,1 C.1,3,2 D1,3,3 29. 有以下程序段 #include int a, b, c; a=10; b=50; c=30; if (a>b) a=b, b=c; c=a; printf("a=%d b=%d c=%d\n", a, b, c); 程序的输出结果是(B) A.a=10 b=50 c=30 B.a=10 b=50 c=10 C.a=10 b=30 c=10 D.a=50 b=30 c=50 30. 有以下程序 #include main () {int x; for( x=3; x<6; x++ ) printf ((x%2 ) ?("*%d"): ("#%d"),x); printf("\n"); } 程序的输出结果是( D ) A.*3*4#5 B.#3*4#5 C.*3#4#5 D.*3#4*5 31. 有以下程序 #include main () { int a, b; for( a=l,b=l; a<=100; a++ ) { if(b>=20) break; if(b % 3==1) { b=b+3; continue; } b=b-5; } printf("%d\n", a); } 程序的输出结果是( D ) A.9 B.7 C.10 D.8 32. 以下叙述中正确的是( A ) A)只要适当地修改代码,就可以将do-while与while相互转换 B)如果根据算法需要使用无限循环(即通常所称的“死循环”),则只能使用while语句 C)对干"for(表达式1;表达式2;表达式3)循环体",只在个别情况下才能转换成while语句 D)对于"for(表达式1;表达式2;表达式3)循环体〃首先要计算表达式2的值,以便决定是否开始循环 33. 以下叙述中正确的是( A ) A)if子句和else子句中可以是任意的合法的c语句 B)不能在else子句中再嵌套if语句C)改变if-else语句的缩进格式,会改变程序的执行流程 D)if语句只能嵌套一层 34 有以下程序 #include main () { int i, j , m=55; for(i=l;i<=3;i++) for(j=3; j<=i; j++) m=m%j ; printf("%d\n ", m); } 程序的运行结果是( A ) A) 1 B) 3 C) 2 D) 0 35. 以下叙述中正确的是( D ) A)for语句的圆括号中的表达式不能都省略掉 B)循环嵌套时,如果不进行缩进形式书写代码,则会有编译错误 C)循环发生嵌套时,最多只能两层 D)三种循环for,while,do-while可以互相嵌套 36. 关于 do 循环体while (条件表达式}; 以下叙述中正确的是( D) A)条件表达式的执行次数与循环体的执行次数一样 B)条件表达式的执行次数与循环体的执行次数无关 C)条件表达式的执行次数总是比循环体的执行次数多一次 D)循环体的执行次数总是比条件表达式的执行次数多一次 37. 若变量己正确定义,在if (W) printf('%d\n" ,k );中,以下不可替代W的是( A ) A. a<>b+c B.a==b+c C.ch=getchar() D.a++ 第四章数组 38、以下叙述中正确的是( D) A.一条语句只能定义一个数组 B.数组说明符的一对方括号中只能使用整型常量,而不能使用表达式 C.在引用数组元素时,下标表达式可以使用浮点数 D.每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元 39.有以下程序 #inlcude main() {int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i; for(i=0;i<12;i++) c[s[i]]++; for(i=1;i<5;i++) printf(“%d”,c[i]); printf(“\n”); } 程序的运行结果是( D) A)1 1 2 3 B)2 3 4 4 C) 1 2 3 4 D) 4 3 3 2 40、有以下程序 #include main() { char s[]="abcde”; s+=2; printf(”%d\n”,s[0]); }执行后的结果是( D ) A输出字符C B输出字符a的ASCII码 C输出字符c的ASCII码 D 程序出错 41、若要求从键盘读入含有空格字符的字符串,应使用函数( D) A.scanf () B.getchar() C.getc() D.gets() 42. 以下叙述中正确的是( C ) A.语句char a [3]; a = "AB";是合法的,因为数组有三个字符空间的容量,可以保存两个字符 B.语句char a [2]={"A", "B"};是合法的,定义了一个包含两个字符的数组 C.语句int a [8] = { 0};是合法的 D.语句int a [] = {0};是不合法的,遗漏了数组的大小 43. 以下叙述中正确的是( B) A.数组下标的下限是1 B.char cl, c2, *c3, c4 [40];是合法的变量定义语句 C.数组下标的下限由数组中笫一个被赋值元素的位置决定 D.数组下标的下限由数组中笫一个非零元素的位置决定 44. 以下错误的定义语句是( A ) A.int x[4] []= {{1,2,3}, {1,2,3}, {1,2,3}, {1,2, 3} }; B.int x[][3]={1,2,3,4}; C.int x[] [3]={{0},{l},{1,2,3}}; D.int x[4][3] = {{l,2,3},{l,2,3},{1, 2,3},{1,2,3}}; 45. 若有以下程序 #include main() { int i,j=0; char a[]="How are you!"; for (i=0; a[i]; i++) if a[i] != ' ') a[j++]=a[i]; a[j] = '\0'; printf("%s\n",a); }则程序的输出结果是( D ) A) Hay! B) How are you! C) Howareyou D) Howareyou! 46. 以下叙述中正确的是( C ) A.字符数组的每个元素可存放一个字符,并且最后一个元素必须是'\0'字符 B.字符串常量"strl"的类型是:字符串数据类型 C.下面的语句用赋初值方式来定义字符串,其中'\0'是必须的 char strl[] = {'s', 't','r','\0'}; D.有定义语句:char strl [] = "strl";数组strl将包含4个元素 47. 以下叙述中正确的是( D) A.两个字符串可以用关系运算符进行大小比较 B.函数调用strlen(s);会返回字符串s实际占用内存的大小(以字节为单位) C.当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和 D.C语言本身没有提供对字符串进行整体操作的运算符 48. 以下选项中,没有编译错误的是( D ) A) char str4[]; str4 = "hello world"; B) char str1[5]="pass", str2 [6]; str2 = str1; C) char name [10]; name = "china"; D) char str3[] = {'d', 'e', 'b','u', 'g', '\0' }; 49. 有以下程序 # include { char a [5] [10]={"one", "two","three", "four", "five"}; int i, j ; char t; for ( i=0; i<2; i++ ) for ( j=i+l; j<5; j++ ) if(a[i][0]>a [j][0]) { t=a[i][0]; a[i][0]=a[j] [0]; a[j][0]=t; } puts (a [1]); } 程序运行后的输出结果是( B ) A) fix B) fwo C) two D) owo 50. 有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数) #include #include main () { char a[10] = "abc", b[10] = "012", c[10] = "xyz"; strcpy( a+1, b+2 ); puts( strcat( a,c+1 )); }程序运行后的输出结栗是( D ) A) 12yz B) bc2yz C) al2xyz D) a2yz 51. 若有以下定义和语句 #include char s1[10]= "abed!", *s2="\nl23\\"; printf("%d %d\n", strlen(sl), strlen(s2)); 则输出结果是(C) A.5 8 B.10 5 C.5 5 D.10 7 52. 有以下程序 #include main () { 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]); printf( "\n"); } 程序的输出结果是( A ) A) 3 5 7 B) 3 6 9 C) 1 4 7 D) 1 5 0 53. 有以下程序 #include main () { int x[3][2]={0},i; for(i=0; i<3; i++) scanf("%d",&x[i]); printf ("%3d%3d%3d\n", x [0][0] ,x[0][1] ,x[l][0]); } 若运行时输入:2 4 6<回车>,则输出结果为( C ) A) 2 4 0 B) 2 4 6 C) 2 0 4 D) 2 0 0 54. 若有以下程序 #include main() {char w[20],a[5][10]={"abcdef","ghijkl", "ranopq","ratuv","wxyz"}; int p[6] [2] = {{0,1},{1,5},{0,0},{0,2},{1,4},{4,4}}, i; for (i=0; i<6; i++) w[i]=a[ p [i] [0]] [ p[i] [1]]; puts (w); } 则程序的输出结果是( A ) A) black B) catis C) ckbdl D) ababj 55. 若有以下程序 #include main() { char a[20], b[ ]="The sky is blue."; int i; for (i=0; i<7; i++) scanf ("%c",&b [i]); gets(a); printf("%s%s\n",a,b); } 执行时若输入:(其中 Fig flower is red. 则输出结果是( A ) A) wer is red.Fig flo is blue. B) Fig flower is red.The sky is blue. C) wer is red.The sky is blue. D) wer is red.Fig flo 第五章函数 56、以下叙述中错误的是( A ) A) 函数形参的值也可以传回给对应的实参 B)函数调用可以作为一个独立的语句存在 C)C程序必须由一个或一个以上函数组成 D)若函数有返回值,必须通过return语句返回 57、以下叙述中正确的是( D ) A函数名允许用数字开头 B 在函数体中只能出现一次return语句 C函数调用时,不必区分函数名称的大小写 D 调用函数时,函数名必须与被调用的函数名完全一致 58. 以下叙述中正确的是( B ) A.在C语言的函数内部,可以定义局部嵌套函数 B.实用的C语言源程序总是由一个或多个函数组成 C.用户自己定义的函数只能调用库函数 D.不同函数的形式参数不能使用相同名称的标识符 59. 有以下程序 #include int fun (int a, int b) { if (b==0) return a; else return (fun(--a,--b)); } main () { printf("%d\n", fun(4,2)) ; } 程序的运行结果是( C ) A.1 B. 4 C. 2 D. 3 60. 以下选项中叙述错误的是(A) A.C程序函数的形参不可以说明为static型变量 B.在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内 C.C程序函数中定义的自动变量,系统不自动赋确定的初值 D.C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值 61. 以下叙述中正确的是( D) A.所有函数均不能接受函数名作为实参传入 B.如果函数带有参数,就不能调用自己 C.函数体中的语句不能出现对自己的调用 D.函数名代表该函数的入口地址 62. 以下叙述中正确的是( D ) A.只有在函数内部定义的变量才是局部变量 B.只有全局变量才有自己的作用域,函数中的局部变量没有作用域 C.局部变量不能被说明为static D.只要是用户定义的标识符,都有一个有效的作用域 63. 以下关子reurn语句的叙述中正确的是( A ) A.一个自定义函数中可以根据不同情况设置多条return语句 B.没有return语句的自定义函数在执行结束时不能返回到调用处 C.定义成void类型的函数中可以有带返回值的return语句 D.一个自定义函数中必须有一条return语句 64. 设有如下函数定义 #include int fun( int k ) { if (k else if (k==l) return 1; else return fun(k-1)+1; } 若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是( C ) A.4 B.5 C.2 D.3 65. C语言主要是借助以下哪种手段来实现程序模块化( A) A.定义函数 B.使用三种基本结构语句 C.定义常量和外部变量 D.使用丰富的数据类型 66. 以下叙述中正确的是( D ) A)程序可以包含多个主函数,但总是从第一个主函数处开始执行 B)书写源程序时,必须注意缩进格式,否则程序会有编译错误 C)程序的主函数名除main外,也可以使用Main或_main D)在C程序中,模块化主要是通过函数来实现的 67. 有以下程序 #include void fun( int a, int b, int c ) { a=b; b=c; c=a; } main () { int a=10 , b=20, c=30; fun( a, b, c ); printf ("%d, %d, %d\n",c, b, a); } 程序运行后的输出结果是( C ) A) 20,30,10 B) 0,0,0 C) 30,20,10 D) 10,20,30 68. 有以下程序 #include int f( int x ); main() { int a, b=0; for ( a=0; a<3;a+=1) { b += f(a);putchar('A'+b);} } int f ( int x ) { return x*x+l;} 程序运行后输出结果是( D ) A) ABE B) BCF C) BCD D) B DI 69. 若有以下程序 #include int a=2; int f(int m) { static int n; n=0; n++; a++; return n+m+a; } main () { int k; for (k=0; k<4; k++) printf("%d,", f(k)); 则程序的输出结果是( D) A) 3,5,7,9, B) 4,5,6,7, C) 4,7,10,13, D) 4,6,8,10, 70. 有以下程序 #include int a=l, b=2; void funl( int a, int b ) { printf( "%d %d " ,a, b ); } void fun2() { a=3; b=4; } main() { fun1(5,6); fun2(); printf( "%d %d\n",a, b ); } 程序运行后的输出结果是( D ) A)3 4 5 6 B)5 6 1 2 C) 1 2 5 6 D)5 6 3 4 71、有以下程序 #include int fun () { static int x=1; x*=2; return x; } main() { int i, s=1; for( i=1; i<=3; i++ ) s*=fun(); printf ("%d\n”, s); } 程序运行后的输出结果是( A ) A 64 B 10 C 30 D 0 第六章编译预处理 72、有以下程序 #include #define SUB( X, Y ) (X+1)*Y main () { int a=3, b=4; printf (" %d\n", SUB (a++ ,b++ )); }程序运行后的输出结果是( D ) A.12 B.25 C.20 D.16 73、下列叙述中错误的是( D ) A.一个c函数可以单独作为一个C程序文件存在 B.C程序可以由多个程序文件组成 C.C程序可以由一个或多个函数组成 D.一个C语言程序只能实现一种算法 74. 若有以下程序 #include #define S(x) x*x #define T (x) S(x)*S(x) main() { int k=5,j=2; printf("%d,%d\n",S(k+j),T(k+j)); }则程序的输出结果是( D) A.49,289 B.17,289 C.49,2401 D.17,37 75. 以下叙述中正确的是(B) A)虽然包含文件被修改了,包含该文件的源程序也可以不重新进行编译和连接 B)在一个程序中,允许使用任意数量的#include命令行 C) #include命令行不能出现在程序文件的中间 D)在包含文件中,不得再包含其他文件 第七章指针 76、以下定义语句中正确的是( D) A) double a=0.0;b=1.1; B) float a=1,*b=&a,*c=&b; C) int a=b=0; D) chart A=65+1,b=?b? 77、若有定义语句 int a[2][3],*p[3]; 则以下语句中正确的是(D) A)p=a; B)p[0]=a; C) p[1]=&a; D) p[0]=&a[1][2] 78、有以下程序 #include main () {int a=1, b=3, c=5; int *pl=&a, *p2=&b,*p=&c; *p =*pl*(*p2); printf("%d\n",c); }执行后的输出结果是( D ) A 4 B 1 C 2 D 3 79、以下叙述中正确的是( A ) A设有指针变量为double *p,则p+1将指针p移动8个字节 B基类型不同的指针变童可以相互混用 C函数的类型不能是指针类型 D 函数的形参类型不能是指针类型 80、以下叙述中正确的是( A) A在对指针进行加、减算术运算时,数字1表示1个存储单元的长度B 如果P是指针变量,则*p表示变量P的地址值 C如果P是指针变量,则&P是不合法的表达式 D如果P是指针变量,则*p+1和* (p+1)的效果是一样的 81、以下语句中存在语法错误的是( A) A char ss[6][20]; ss[l]= "right?"; B char *ss[6]; ss[1]= "right?"; C char *ss[]={ "right? "}; D char ss [ ] [20] = { "right?"}; 82、有以下程序 #include void swap(char *x, char *y) {char t; t=*x; *x=*y;*y=t; } main() { char *sl=”abc”,*s2=”123”; swap(sl, s2); printf ("%s, %s\n”, s1, s2); }程序执行后的输出结果是(A) A 1bc,a23 B 123,ab C C abc,123 D 321,cba 83、有以下函数 int fun(char *x, char *y) {int n=0; while ( (*x==*y)&&*x!= '\0' ) {x++; y++;n++;} return n ; } 函数的功能是(B) A将y所指字符串赋给x所指存储空间 B统计x和y所指字符串中最前面连续相同的字符个数C查找x和y所指字符串中是否有?\0 … D统计x和y所指字符串中相同的字符个数 84、如果定义 float a [10],x; 则以下叙述中正确的是( A ) A语句a = &x;是非法的 B 表达式*&a[l]是非法的,应该写成*(&(a[[1]]) C 三个表达式a[l]、* (a+1)、*&a[1]表示的意思完全不同 D 表达式a+1是非法的 85、有以下程序 #include #include void fun(char *s[], int n) { char *t; int i, j; for (i=0; i for (j=i + l; j if (strlen(s[i]) > strlen(s[j])) { t = s[i];s[i] = s[j]; s[j] = t; } } main () { char * ss[] = {"bcc","bbcc","xy", "aaaacc", "aabcc"}; fun(ss,5); printf("%s,%s\n", ss [0],ss [4]); }程序的运行结果是( B ) A .aabcc,bcc B. xy,aaaacc C .bcc,aabcc D. aaaacc,xy 86、有以下程序 #include main() { char c[2] [5] = {"6938","8254" }, *p[2]; int i, j, s=0; for( i=0; i<2; i++ ) p[i]=c[i]; for( i=0; i<2; i++ ) for ( j=0; p[i][j]>0 ; j+=2 ) s=10*s+p[i][j]-'0'; printf ( "%d\n", s); }程序运行后的输出结果是( D ) A.9824 B.6938 C.4528 D.6385 87. 以下选项中正确的语句组是( B) A.char *s;s= { "BOOK ! "}; B.char *s; s="B00K!"; C.char s[]; s="BOOK!"; D.char s[10]; s=" BOOK!"; 88. 若在定义语句: int a, b, c,*p=&c; 接着执行以下选项中的语句,则能正确执行的语句是( A ) A.scanf("%d",p); B.scanf ("%d%d%d",a,b,c); C.scanf("%d",&p); D.scanf{"%d",a,b,c); 89. 设有定义 double a[10] ,*s=a 以下能够代表数组元素a [3]的是( A ) A.*(s+3) B.*s+3 C.*s[3] D.(*s)[3] 90. 有以下程序 # include void f( int *q) { int i=0; for ( ;i<5; i++) (*q)++; } main () { int a[5] ={1,2,3,4,5}, i; f (a); for (i=0;i<5; i ++) printf("%d,", a[i]); }程序运行后的输出结果是( C) A.2, 2, 3, 4, 5, B.2, 3, 4, 5, 6, C.6, 2, 3, 4, 5, D.1, 2, 3, 4, 5, 91. 有以下程序 #include void fun( int x, int y, int *c,int *d ) { *c = x+y;*d= x-y; } main() { int a=4, b=3, c=0, d=0; fun ( a, b, &c, &d ); printf ( "%d %d\n" , c, d ); }程序的输出结果是( D ) A) 3 4 B) 0 0 C) 4 3 D) 7 1 92. 有以下程序 #include char fun ( char *c ) {if ( *c<='Z' && *c>='A') *c -= 'A'-'a'; return *c; } main () {char s[81], *p=s; gets( s ); while( *p ) { *p =fun ( p ); putchar( *p ); p++;} printf("\n"); }若运行时从键盘上输入open THE DOOR<回车>,程序输出结果是D A)Open The Door B)OPEN tHE dOOR C)OPEN THE DOOR D)open the door 93. 有以下程序 #include #define N 3 void fun(int a [ ] [N], int b []) { int i, j;