《2022年C语言-基本选择题及答案.pdf》由会员分享,可在线阅读,更多相关《2022年C语言-基本选择题及答案.pdf(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、学习资料收集于网络,仅供参考学习资料计算机程序设计基础(C语言)单项选择练习题说明:带 *号的对非信息学院的同学不作要求。一、基本概念1. C 语言程序是由C 构成的。A)一些可执行语言 B)main函数 C)函数 D) 包含文件中的第一个函数2 ( A)是构成 C语言程序的基本单位。A、函数 B、过程 C、子程序 D、子例程3C语言程序从 C开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数C) 程序中的 main 函数 D) 包含文件中的第一个函数4C语言程序从 main() 函数开始执行,所以这个函数要写在_D _。A) 程序文件的开始 B) 程序文件的最后C) 它所调用的
2、函数的前面 D) 程序文件的任何位置5、以下说法中正确的是(C) 。 A 、C语言程序总是从第一个定义的函数开始执行 B 、在 C语言程序中,要调用的函数必须在main( ) 函数中定义 C 、C语言程序总是从main( ) 函数开始执行 D 、C语言程序中的 main( ) 函数必须放在程序的开始部分6. 下列方法中错误的是( D) 。A.主函数可以分为两个部分:主函数说明部分和主函数体。B.主函数可以调用任何非主函数的其它函数。C.任何非主函数可以调用其它任何非主函数。D.程序可以从任何非主函数开始执行。7. 下列说法错误的是:(B )A. C程序运行步骤是编辑、编译、连接、执行。B. C
3、语言的变量名必须用小写,常量用大写。C. C语言的三种基本结构是顺序、选择、循环。D. C 程序一定由函数构成的。8. 下列关于 C语言的说法错误的是(B )。A) C 程序的工作过程是编辑、编译、连接、运行B) C 语言不区分大小写。C) C 程序的三种基本结构是顺序、选择、循环D) C 程序从 main 函数开始执行精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 23 页 - - - - - - - - - - 学习资料收集于网络,仅供参考学习资料9. 系统默认的 C 语言源程序扩展名为
4、.C, 需经过C 之后, 生成.exe 文件,才能运行 ? A) 编辑?编译 B )编辑?连接 C) 编译?连接 D) 编辑?改错*10. 下列说法中正确的是( B) 。A.由于 C源程序是高级语言程序,因此一定要在TC软件中输入。B.由于 C源程序是由字符流组成的,因此可以作为文本文件在任何文本编辑的软件中输入。C.由于 C程序是高级语言程序,因此输入后即可执行。D.由于 C程序是高级语言程序,因此它是由命令组成的。二、数据类型、运算符与表达式1. 不是 C语言提供的合法关键字是(B) 。A.switch B.cher C.case D.default *2.C 语言提供的合法关键字是(D)
5、 。A.next B.string C.do case D.struct *3. 下列不属于 C语言中关键字的是 BA)long B)print C)default D)typedef 4. 下列正确的标识符是( C) 。A.-a1 B.ai C.a2_i D.int t 5. 下列 C语言用户标识符中合法的是( B ) 。 A 、*y B、sum C、int D、%5f 6. 下面四个选项中,合法的标识符是: ( D ) A. auto B. define C. 6a D. c 7下列 C语言用户标识符中合法的是( B ) 。 A)3ax B)x C)case D)-e2 E)union 8
6、. 以下选项中合法的用户标识符是BA) long B) _2Test C) 3Dmax D) A.dat 9下列四组选项中,正确的C语言标识符是(C) 。A) %x B) a+b C) a123 D) 123 10. 请选出可用作 C语言用户标识符的一组标识符( B ) A) void B) a3_b3 C) For D) 2a define _123 -abc DO WORD sum Case sizeof 11、下列四组字符串中都可以用作C语言程序中的标识符的是(A ) 。 A 、print _3d db8 aBc B、Iam one_half start$it 3pai 精品资料 - -
7、 - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 23 页 - - - - - - - - - - 学习资料收集于网络,仅供参考学习资料 C 、str_1 Cpp pow while D、Pxq My-book line# His.age 12. 下列 C语言标识符中合法的变量名是B。 A)2e3 B)you C)*y D)float 13.C 语言中的简单数据类型包括(D) 。 A 、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C 、整型、字符型、逻辑型 D、整型、实型、字符型14、下列可以正确表示字
8、符型常量的是(A ) 。 A 、t B、”a” C、”n ” D、297 15. 下列表达式中,D是正确的 C语言字符常量。A)”x” B)e3 C)”COMPUTER” D) #16. 在下列表达式中,属于字符型常量的是B。A) A B) a C) A D) b 17. 以下选项中合法的字符常量是( B ) A) “B” B) n C) 68 D) E 18下面字符常量表示错误的是(D ) A)a B)? C)n D) ”n ”19. 已定义 c 为字符型变量,则下列语句中正确的是( C )A)c=97 B)c=97 C)c=a D)c=a 20. 已知 ch 是字符型变量,不正确的赋值语句
9、是( A ) A) ch=a+b ; B) ch= 0 ; C) ch= 7 ; D) ch=; ; 21语言中字符型 (char) 数据在内存中的存储的是 ( D ) A) 原码 B) 补码 C) 反码 D) ASCII码22在 C语言中,字符型数据所占的内存空间是( C ) A)2个字节 B) 4字节 C) 1字节 D)由用户自定义*23若 int类型数据占2 个字节 , 则 unsigned int类型数据的取值范围是( B ) A)0255 B)065535 C)-3276832767 D)-256255 *24. 若有以下类型说明语句: char a ;int b; float c;
10、 double d; 则表达式a*b+d-c 的结果类型为 ( D ) A)float B) char C) int D)double *25若有以下类型说明语句: char w;int x;float y;double z;则表达式 w-x*y/z 的结果为( D ) 类型, 表达式 (int)(x+y-z*w)的结果为 ( C ) 类型。 A)float B)char C)int D)double 26 .C 语言中运算对象必须是整型的运算符是( A ) A) %= B) / C) = D) = 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳
11、 - - - - - - - - - -第 3 页,共 23 页 - - - - - - - - - - 学习资料收集于网络,仅供参考学习资料27. 在 C语言程序中,表达式8/5 的结果是 ( B ) A)1.6 B)1 C)3 D)0 28. 设 x 为 int型变量 , 则执行以下语句后 ,x 的值为Bx=10; x+=x; A) 10 B) 20 C) 40 D) 30 31. 在 C语言程序中,表达式5%2的结果是C。 A)2.5 B)2 C)1 D)3 32如果 int a=3,b=4;则条件表达式 ab? a:b 的值是 _A_。A) 3 B) 4 C) 0 D) 1 33若 i
12、nt x=2,y=3,z=4 则表达式 xz?y:z 的结果是 ( B ). A)4 B)3 C)2 D)0 E)1 34C语言中,关系表达式和逻辑表达式的值是(B)。A) 0 B) 0或 1 C) 1 D) T或 F35设 a,b 和 c 都是 int型变量,且 a=3,b=4,c=5, 则下面表达式中,值为0 的表达式是(D)A、a& b B、 a=b C 、a|b+c&b-c D、!(ab)&!c|1) 37. 下面( D )表达式的值为 4. A) 11/3 B) 11.0/3 C) (float)11/3 D) (int)(11.0/3+0.5) *39. 已知 int x=5,y=
13、5,z=5;执行语句 x%=y+z ;后, x 的值是 ( C ) A .0 B. 1 C. 5 D. 6 40. 已知字母A 的 ASCII 码为十进制数65,且 c2 为字符型,则执行语句c2=A+6-3;后,c2 中的值为 ( B ) A) 68 B) D C) 错误 D) d41下列关于 C语言的叙述错误的是(A)A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号 (=) 左边的变量和右边的值可以是不同类型D) 同一个运算符号在不同的场合可以有不同的含义42. 有:int w=11,x=12,y=3,m; 执行下面语句后 m的结果是 ( C
14、 ) m=(wx)?w:x; m=(mx)?w:x; m=(my)?m:y; A. 12 B. 0 C. 3 D. 1 45. 设整型变量 a=2 ,则执行下列语句后,浮点型变量b 的值不为0.5 的是(B)A.b=1.0/a B.b=(float)(1/a) C.b=1/(float)a D.b=1/(a*1.0) 48. 以下运算符中优先级最高的运算符是(B)A)& B)+ C)+= D)!= 49. 若“int n; float f=13.8;”, 则执行“ n=(int)f%3”后, n 的值是( A)A.1 B.4 C.4.333333 D.4.6 52. 设 x 为 int型变量,
15、 则执行以下语句后 ,x 的值为(C)x=10; x*=x; A) 10 B) 20 C) 100 D) 0 53. 若有语句 int a=1,b; double y=2.3; b=(int)y; 则 b 的值为 ( B ) ?A) 3 B) 2 C) 1 D) 2.3 54. 已知 int x;char y;则下面错误的 scanf 函数调用语句为 (B ) A)scanf( “%d,%d ”,&x,&y); B) scanf(“%d,%c ”,x,y)C) scanf( “%d%d ”,&x,&y) D) scanf( “%d,%c ”,&x,&y)57在 C语言的库函数中 , 可以输出
16、char 型变量 x 值的语句是C。 A)getchar(x); B)fputc(x) C)putchar(x) D)puts(x) 60. 以下说法正确的是(C )A) x+5是一个错误的表达式B) C 语言不允许类型的混合运算C) 强制类型转换时,类型说明符必须加括号D) (int )x+y 和(int ) (x+y)是完全等价的表达式61. 设 int x=0, y=1; 表达式 (x|y)的值是( B ) A) 0 B) 1 C) 2 D) -1 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5
17、 页,共 23 页 - - - - - - - - - - 学习资料收集于网络,仅供参考学习资料三、选择结构1. 在 C语言中,认为 ( D )为逻辑 真 A) true B)大于 0的数 C)非0整数 D)非0的数2. 表示关系 x=y=z 的 c 语言表达式为AA) (x=y)&(y=z) B) (x=y)AND(y=z) C) (x=y=z) D) (x=y)&(y=10 or a=0|a=10 &a=10a=0 4、判断 char 型变量 c1 是否为大写字母的表达式为(D ) 。 A 、A=c1=A) & (c1= Z) C、 (A=c1) D 、 c1=A & c1=Z5. 为表示
18、逻辑表达式79X79 )&( X79 )!=( X90 ) C) 79X79 )|( X0&b&c0”的值是( A)A.1 B.0 C.-1 D.出错7. 设 a 为整型变量,则不能正确表达数学关系10a15 的 C 语言表达式是(A) 。A.10a10&a15 D.!(a=15) 8. 设 x,t均为 int型变量,则执行语句“x=10;t=x&x10; ”后,t 的值为(D)A.不定值B.10 C.1 D.0 9. 若 int i=10; 执行下列程序后,变量i 的正确结果是( A ) 。 switch ( i ) case 9: i+=1; case 10: i+=1; case 11:
19、 i+=1; default : i+=1; A 、13 B、12 C、11 D、10 10. 在下面的条件语句中(其中s1 和 s2 表示是 C语言的语句),只有一个在功能上与其它三个语句不等价,它是(D ) 。 A 、if (a) s1 ; else s2; B、if (a= =0) s2; else s1; C、if (a!=0) s1; else s2; D、if (a= =0) s1; else s2; 11. 假定所有变量均已正确定义,则下列程序段运行后y 的值是( A)精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - -
20、- - - - - -第 6 页,共 23 页 - - - - - - - - - - 学习资料收集于网络,仅供参考学习资料int a=0,y=10; if(a=0) y-; else if(a0) y+; else y+=y; A.20 B.11 C.9 D.0 12. 假定所有变量均已正确定义,则下列程序段运行后x 的值是( B) 。a=b=c=0; x=35; if(!a) x-; else if(b); if(c) x=3; else x=4; A.34 B.4 C.35 D.3 13. C 语言对嵌套 if 语句的规定是: else 语句总是与(D )配对。 A) 其之前最近的 if
21、 B) 第一个 if C) 缩进位置相同的if D) 其之前最近的且尚未配对的if 14. 在 C语言语句中,用来决定分支流程的表达式是(A) 。A可用任意表达式B.只能用逻辑表达式或关系表达式C只能用逻辑表达式D.只能用关系表达式15.C 语言中用(B)表示逻辑“真”。A. true B. 整数值 1 C. 非零整数值 D. false 16、若 k 是 int型变量,且有下面的程序段:int k; k= -3; if (k=0) printf(“#”);else printf(“& ”);上面程序段的输出结果是(A)A、# B、& C 、#& D、有语法错误,无输出结果17. main()
22、 int x=0,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 23 页 - - - - - - - - - - 学习资料收集于网络,仅供参考学习资料printf(“a=%d,b=%dn”,a,b); 该程序的输出结果是DA) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 18. 以下程序的输出结果是: ( C)main() int x=-1
23、0,y= 1,z=1; if(xy) if(yb) a=b;b=c;c=a;printf(a=%2d b=%2d c=%2dn,a,b,c);A) a=10 b=50 c=10 B) a=10 b=30 c=10 C) a=50 b=30 c=10 D) a=50 b=30 c=50 四、循环结构*1. 在 C语言中,下列说法中正确的是(D) 。 A) do-while语句构成的循环不能用其它语句构成的循环来代替。 B) do-while语句构成的循环只能用break 语句退出。 C) do-while语句构成的循环在while 后的表达式非零时结束循环。 D) do-while语句构成的循环
24、 , 在 while 后的表达式为零时结束循环。2. break语句不能出现在(D)语句中A. switch B.for C. while D. ifelse *3对于 break 语句和 continue 语句的说法错误的是(B )A) break 语句不能用于循环语句和switch 语句之外的任何其他语句中。B) break 和 continue也可以用于 if语句中C) continue语句只结束本次循环,而不是终止整个循环的执行。D) break语句是结束整个循环过程,不再判断执行循环的条件是否成立。4. 语句 while (!y) ;中的表达式! y 等价于A精品资料 - - - 欢
25、迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 23 页 - - - - - - - - - - 学习资料收集于网络,仅供参考学习资料A)y0 B)y!1 C)y!0 D) y=1 5. 若有 “int a=1,x=1; ” , 则循环语句“while(a10) x+; a+;” 的循环执行(A)A.无限次 B. 不确定次C.10 次D.9 次6. 有以下程序段int k=0 while(k)k+; 则 while 循环体执行的次数是CA) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行 1 次7. 下列
26、循环语句中有语法错误的是( D ) A while(x=y) 5; B while(0) ;C do 2 ;while(x= =b); D do x+ while(x= =10);*8. 当运行时输入: abcd$abcde , 下面程序的运行结果是B#include main() while(putchar(getchar()!=$); printf(end); A) abcd$abcde B)abcd$end C )abcdend D ) abcd$abcdeend 9. 以下程序段 ( A ) x=-1; do x=x*x; while(x0); A. 是死循环 B. 循环执行一次 C.
27、 循环执行二次 D. 有语法错误10. 下面程序段执行后的结果为: ( B ) int sum=0, n=10; do sum=sum+n; n+; while(n0;i+);”的循环执行(A) 。A.无限次B.不确定次C.10 次D.9 次13. 执行语句 for(j=0;j=3;j+) a=1;后变量 j 的值是C . A)0 B) 3 C)4 D) 1 14 有如下程序main() int i,sum=2; for(i=1;i=3;i+=2) sum+=i; printf(“%n”,sum); 该程序的执行结果是AA) 6 B) 3 C) 死循环 D) 4 *15、执行语句” for (
28、 i=0; i+3 ; ) ;”后,变量 i 的值为( C ) 。 A 、2 B、3 C、4 D、5 16. 设 x 和 y 均为 int型变量,则执行以下的循环后,y 的值为(D) 。for(y=1,x=1;y=0) break; if(x%2=1) x+=5;continue; x-=3; A.2 B.4 C.6 D.1 五 数组1. 以下对一维数组 a 的正确说明是:DA) char a (10) ;B) int a;C)int k5,ak ; D)char a3=a, b, c; 2. 以下能对一维数组 a 进行初始化的语句是 : ( C ) A. int a5=(0,1,2,3,4,
29、) B. int a(5)= C. int a3=0,1,2 D. int a5=10*1 3. 在 C语言中对一维整型数组的正确定义为D。 A)int a(10); B)int n=10,an; C)int n;an; D)#define N 10 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 23 页 - - - - - - - - - - 学习资料收集于网络,仅供参考学习资料 int aN; 4、已知: int a10; 则对 a 数组元素的正确引用是( D ) 。A、a10 B、a
30、3.5 C、a(5) D、a0 5. 执行下面的程序段后 , 变量 k 中的值为C A) 不定值 B) 33 C) 30 D) 10 int k=3, s2; s0=k; k=s0*10; *6. 下列说法中错误的是C A 构成数组的所有元素的数据类型必须是相同的B 用指针法引用数组元素允许数组元素的下标越界C 一维数组元素的下标依次是1、2、3D 定义数组时的长度可以是整型常量表达式7. 若有以下数组说明,则数值最大的和最小的元素下标分别是(B) 。int a12=1,2,3,4,5,6,7,8,9,10,11,12; A.1,12 B.0,11 C.1,11 D.0,12 8. 若有以下数
31、组说明,则i=10;aai元素数值是(B) 。int a12=1,4,7,10,2,5,8,11,3,6,9,12; A.10 B.9 C.6 D.5 9. 假定 int类型变量占用两个字节, 其有定义: int x10=0,2,4;,则数组x 在内存中所占字节数是DA) 3 B) 6 C) 10 D) 20 11. 若有说明: int a3=1,2,3,4,5,6,7; 则数组 a 的第一维的大小为: ( B ) A. 2 B. 3 C. 4 D.无确定值12. 以下定义语句中,错误的是 ( D ) A) int a=1,2; B) char *a; C) char s 10= “test
32、”; D) int n=5,an; 13. 下面程序段的输出结果是: ( C ) int i; int x33=1,2,3,4,5,6,7,8,9; for (i=0;iage D) (*p).age *5. 有如下定义struct personchar name9; int age; struct person class10=“Tom ”,17, “John”,19,“Susan”,18, “Adam ”,16,;根据上述定义,能输出字母A的语句是 ( B ) A) printf(“%c n”,class3.name); B) printf(“%c n”,class3.name0);C)
33、printf(“%c n”,class3.name1);D) printf(“%c n”,class2.name3);6. 存放 100 个学生的数据、包括学号、姓名、成绩。在如下的定义中,不正确的是( B ) 。Astruct student int sno; char name20; float score; stu100; B. struct student stu100 int sno; char name20; float score; C. struct int sno; char name20; float score; stu100; D. struct student int
34、 sno; char name20; float score;; struct student stu100; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 16 页,共 23 页 - - - - - - - - - - 学习资料收集于网络,仅供参考学习资料*7. 设 有 定 义 语 句 “ struct int x; int y; d2=1,3,2,7;” 则“printf(“%dn”,d0.y/d0.x*d1.x);”输出的是 ( D ) 。A.0 B.1 C.3 D.6 8. 已知: struct
35、 sk int a; float b; data, *p; 若有 p=&data,则对 data 中的成员 a 的正确引用是( C ) 。 A、(*p).data.a B、p-data.a C、(*p).a D、p.data.a 9. 设有如下定义:struck sk int a; float b; data; int *p; 若要使 P 指向 data中的 a域,正确的赋值语句是CA) p=&a; B) p=data.a; C) p=&data.a; D)*p=data.a; 10. 设有以下说明语句: typedef struct stu int a; float b; stutype;
36、则下面叙述中错误的是(D) 。 A、struct是结构类型的关键字B、struct stu是用户定义的结构类型 C、a 和 b都是结构成员名D、stutype 是用户定义的结构体变量名八指针1 语句 int *p;说明了C 。A)p 是指向一维数组的指针B)p 是指向函数的指针 , 该函数返回一 int 型数据C)p 是指向 int 型数据的指针D)p 是函数名 , 该函数返回一指向int型数据的指针2. 变量的指针,其含义是指该变量的:( B ) A. 值 B. 地址 C. 名 D.一个标志精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - -
37、 - - - - - - - -第 17 页,共 23 页 - - - - - - - - - - 学习资料收集于网络,仅供参考学习资料3. 若 x 是整型变量, pb 是基类型为整型的指针变量,则正确的赋值表达式是( A )A) pb=&x B) pb=x C) *pb=&x D) *pb=*x 4、已知: int a, *p=&a; 则下列函数调用中错误的是( D ) 。 A 、scanf( “%d ”,&a); B、scanf( “%d ”,p); C 、printf(“%d ”,a); D、printf(“%d ”,p); 5. 对于同类型的指针变量,不可能进行的运算是(C) 。A.-
38、 B.= C.+ D.= 6. 对于基类型相同的两个指针变量之间,不能进行的运算是CA) B) = C) + D) - 7下列不正确的定义是(A) 。A. int *p=&i,i; B.int *p,i; C int i,*p=&i; D.int i,*p; 8. 若有说明: int n=2,*p=&n,*q=p,则以下非法的赋值语句是: (D)A)p=q B)*p=*q C)n=*q D)p=n 9. int *p,a=10,b=1; p=&a; a=*p+b; 执行该程序段后, a 的值为CA) 编译出错 B) 10 C) 11 D) 12 10有语句: int a10,;则B是对指针变量
39、 p 的正确定义和初始化。A)int p=*a; B)int *p=a; C)int p=&a; D)int *p=&a; 11. 若有说明语句“ int a5,*p=a;”, 则对数组元素的正确引用是( C ) 。A.ap B.pa C.*(p+2) D.p+2 12. 若指针变量p 指向整型数组a10 的首地址 , 即 p=a ; 则下列数组元素ai(0i10)的表示方法中正确的是: (C )A. p+i B.&( a+i) C. *(a+i) D. *(p+i*2) 13. 有如下程序int a10=1,2,3,4,5,6,7,8,9,10,*P=a; 则数值为 9 的表达式是BA) *
40、P+9 B) *(P+8) C) *P+=9 D) P+8 14. 若有以下定义,则不能表示a 数组元素的表达式是 ( B ) 。 int a10=1,2,3,4,5,6,7,8,9,10,*p=a; A.*p B.a10 C.*a D.ap-a *15. 已知 int a5,*p=a;下面的叙述中正确的是A。A) p+1 与 a+1等价 B) p1与*p 等价精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 18 页,共 23 页 - - - - - - - - - - 学习资料收集于网络,仅供参考学习资
41、料C) *(p+1) 与 a+1 等价 D) p1与 a+等价16. 若有以下说明 : int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 4 的表达式是 ( C ) A) *p+4 B) *(p+4) C) *(p+3) D) p+3 17. 下面程序的输出结果是CA) 0 B) 1 C) 2 D) 输出错误main() int a =1,2,3,4,5,6,7,8,9,0,*p; p=a; printf(“%dn”,*p+ 1); 18. 执行语句 char c10= ”abcd”,*pc=c; 后,*(pc+4) 的值是(B)A) “abcd” B)0 C)
42、d D) 不确定19下列函数的功能是A。 void fun(int *p1,int *p2) int p; p=*p1;*p1=*p2;*p2=p; A) 交换*p1 和*p2 的值 B) 语法正确,但无法交换 *p1 和*p2 的值C) 交换*p1 和*p2 的地址 D)有语法错误*20. 有如下程序main() char s=“ABCD ”, *P;for(p=s+1 ; ps+4; p+) printf (“%s n”,p); 该程序的输出结果是DA) ABCD B) A C) B D) BCD BCD B C CD CD C D D D D *21. 请读程序 , 输出结果为 : (
43、A ) #include 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 19 页,共 23 页 - - - - - - - - - - 学习资料收集于网络,仅供参考学习资料int a=2,4,6,8; main() int i,b4; int *p=a; for(i=0;i4;i+) bi=*p;p+; printf(%dn,b2); A) 6 B) 8 C) 4 D) 2 *22内存空间被分成不同区域, 其中用函数 void* malloc(unsigned int size); 申请的内存在C分配。
44、A) 程序区 B )静态存储区 C )动态存储区九、字符串1. 在 C语言中,以D作为字符串结束标志A)n B) C) 0 D)0 2. 下列数据中属于“字符串常量”的是(A ) 。A.“a” B.ABC C.abc0 D.a3. 字符串 “ABCD ”在内存占用的字节数是( D) 。A4 B6 C1 D 5 4. 下面不正确的字符串常量是: (A) A. PROGRAM B “1212” C “0” D “”5. 设有数组定义 : char array =abcd; 则数组 array 所占的空间为BA) 4 个字节 B) 5个字节 C) 6个字节 D) 7个字节*6. 下述对 C语言中字符
45、数组的描述错误的是C。A)字符数组可以存放字符串B)字符数组中的字符串可以整体输入和输出C)可在赋值语句中通过赋值运算符“=”对字符数组整体赋值D)可在对字符数组定义时通过赋值运算符“=”对字符数组整体初始化7. 已知 char x=hello, y=h,e,a,b,e;, 则关于两个数组长度的正确描述是B . A)相同 B)x大于 y C)x小于 y D)以上答案都不对8. 给出以下定义 : char x =abcdefg; char y =a,b,c,d,e,f,g; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - -
46、 - - -第 20 页,共 23 页 - - - - - - - - - - 学习资料收集于网络,仅供参考学习资料则正确的叙述为CA) 数组 x 和数组 y 等价 B) 数组 x 和数组 y 的长度相同C) 数组 x 的长度大于数组 y 的长度D) 数组 x 的长度小于数组 y 的长度9、若有以下语句,则正确的描述是( D ) 。 static char x =”12345” ; static char y =1, 2, 3, 4, 5 , 0 ; A 、x 数组长度大于 y 数组长度 B 、x 数组和 y 数组不相同 C 、x 数组长度小于 y 数组长度 D 、x 数组等价于 y 数组10
47、、已知: char s20= ”programming”, *ps=s; 则不能引用字母 o 的表达式是( C ) 。A、ps2 B、s2 C、ps+2 D、ps+=2, *ps *11判断两字符串 s1,s2 是否相等 , 应使用 ( D ). A)if(s1=s2) B)if(s1=s2) C)if(strcpy(s1,s2) D)if(strcmp(s1,s2)=0) *12以下 printf语句的输出结果为:Aprintf(“%dn”,strlen(“school ”); A) 7 B) 6 C)存在语法错误 D)不定值13. 对字符数组 s 赋值, 不合法的一个是 ( C ) A.
48、char s=Beijing;B. char s20=beijing;C. char s20;s=Beijing;D. char s20=B,e,i,j,i,n,g;14. 对字符数组 str 赋初值, str 不能作为字符串使用的一个是( D ) A. char str=shanghai;B. char str=shanghai;C. char str9=s,h,a,n,g,h,a,i,0 ;D. char str8= s,h,a,n,g,h,a,i;15. 合法的数组定义是C A)int a=“string ”; B) int a5=0,1,2,3,4,5; C)char a= “stri
49、ng ”; D) char a5=0,1,2,3,4,5; 16. 对字符数组 s 赋值, 不合法的是 : ( C ) A) char s=china;B) char s20= china ;C) char s20;s= china;D) char s20=c,h,i,n,a;17. 下面初始化与此初始化charc =“I am happy ”; 等价的是(A )精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 21 页,共 23 页 - - - - - - - - - - 学习资料收集于网络,仅供参考学习
50、资料A) char c =I , ,a,m , h,a,p, p, y,0;B) char c =I , am , happy; C) char c = I, ,a,m ,h,a,p,p,y; D)char c =I , am , happy, 0 ; 18. 下面各语句中,能正确进行赋字符串操作的语句是( C ) 。A. char s5=“ABCDE ”; B. char s5=A , B , C , D , E, 0 ; C. char *s;s=“ABCDE ”; D. char *s;scanf(“%s ”,&s); 19下列字符串赋值方式不正确的是( A ) A)char str20