《C语言-基本选择题及答案.pdf》由会员分享,可在线阅读,更多相关《C语言-基本选择题及答案.pdf(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、学习资料收集于网络,仅供参考计算机程序设计基础(计算机程序设计基础(C 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()函数开
2、始执行,所以这个函数要写在_D_。A) 程序文件的开始 B) 程序文件的最后C) 它所调用的函数的前面 D) 程序文件的任何位置5、以下说法中正确的是(C) 。 A、C 语言程序总是从第一个定义的函数开始执行 B、在 C 语言程序中,要调用的函数必须在 main( )函数中定义 C、C 语言程序总是从 main( )函数开始执行 D、C 语言程序中的 main( )函数必须放在程序的开始部分6. 下列方法中错误的是(D) 。A.主函数可以分为两个部分:主函数说明部分和主函数体。B.主函数可以调用任何非主函数的其它函数。C.任何非主函数可以调用其它任何非主函数。D.程序可以从任何非主函数开始执行
3、。7. 下列说法错误的是: (B )A. C 程序运行步骤是编辑、编译、连接、执行。B. C 语言的变量名必须用小写,常量用大写。C. C 语言的三种基本结构是顺序、选择、循环。D. C 程序一定由函数构成的。8.下列关于 C 语言的说法错误的是( B)。A) C 程序的工作过程是编辑、编译、连接、运行B) C 语言不区分大小写。C) C 程序的三种基本结构是顺序、选择、循环D) C 程序从 main 函数开始执行学习资料学习资料收集于网络,仅供参考9. 系统默认的 C 语言源程序扩展名为.C,需经过C之后,生成.exe 文件,才能运行 A) 编辑编译 B )编辑连接 C) 编译连接 D) 编
4、辑改错*10.下列说法中正确的是(B) 。A.由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入。B.由于 C 源程序是由字符流组成的,因此可以作为文本文件在任何文本编辑的软件中输入。C.由于 C 程序是高级语言程序,因此输入后即可执行。D.由于 C 程序是高级语言程序,因此它是由命令组成的。二、数据类型、运算符与表达式二、数据类型、运算符与表达式1. 不是 C 语言提供的合法关键字是(B) 。A.switchB.cherC.caseD.default*2.C 语言提供的合法关键字是(D) 。A.next B.string C.do case D.struct*3.下列不属于 C
5、语言中关键字的是 BA)long B)print C)default D)typedef4.下列正确的标识符是(C) 。A.-a1 B.ai C.a2_i D.int t5. 下列 C 语言用户标识符中合法的是( B )。 A、*y B、sum C、int D、%5f6. 下面四个选项中,合法的标识符是: ( D ) A. auto B. define C. 6a D. c7下列 C 语言用户标识符中合法的是( B ) 。 A)3ax B)x C)case D)-e2 E)union8. 以下选项中合法的用户标识符是BA) longB) _2TestC) 3DmaxD) A.dat9下列四组选
6、项中,正确的 C 语言标识符是( C) 。A) %x B) a+b C) a123 D) 12310. 请选出可用作 C 语言用户标识符的一组标识符(B )A) voidB) a3_b3C) ForD) 2adefine _123 -abc DOWORD sum Case sizeof11、下列四组字符串中都可以用作 C 语言程序中的标识符的是( A ) 。 A、print _3d db8 aBc B、Iam one_half start$it 3pai学习资料学习资料收集于网络,仅供参考 C、str_1 Cpp pow while D、Pxq My-book line# His.age12.
7、下列 C 语言标识符中合法的变量名是B。 A)2e3 B)you C)*y D)float13.C 语言中的简单数据类型包括(D) 。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型14、下列可以正确表示字符型常量的是( A ) 。 A、t B、”a” C、”n” D、29715.下列表达式中,D是正确的 C 语言字符常量。A)”x” B)e3 C)”COMPUTER” D)#16.在下列表达式中,属于字符型常量的是B。A) A B) a C) A D) b17. 以下选项中合法的字符常量是( B ) A) “B” B) n C) 68
8、 D) E18下面字符常量表示错误的是( D ) A)a B)? C)n D)”n”19. 已定义 c 为字符型变量,则下列语句中正确的是 ( C )A)c=97 B)c=97 C)c=a D)c=a20. 已知 ch 是字符型变量,不正确的赋值语句是(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 类
9、型数据占 2 个字节,则 unsigned int 类型数据的取值范围是(B )A)0255 B)065535 C)-3276832767 D)-256255*24. 若有以下类型说明语句:char a;int b; float c; 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
10、 D)double26 .C 语言中运算对象必须是整型的运算符是(A )A) %= B) / C) = D) =学习资料学习资料收集于网络,仅供参考27.在 C 语言程序中,表达式 8/5 的结果是( B )A)1.6 B)1 C)3 D)0 x=10; x+=x;A) 10 B) 20 C) 40 D) 3031.在 C 语言程序中,表达式 5%2 的结果是C。 A)2.5 B)2 C)1 D)332如果 int a=3,b=4;则条件表达式ab? a:b的值是_A_。A) 3 B) 4 C) 0 D) 133若 int x=2,y=3,z=4 则表达式 xz?y:z 的结果是( B ).
11、A)4 B)3 C)2 D)0 E)134C 语言中,关系表达式和逻辑表达式的值是( B)。A) 0 B) 0 或 1 C) 1 D) T或F表达式是( D)A、a&b B、a=bC、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=5,z=5;执行语句 x%=y+z;后,x 的值是( C )A .0 B. 1 C. 5 D. 640. 已知字母 A 的 ASCII 码为十进制数 65,且 c2 为字符型,则执行语句c
12、2=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 ) m=(wx)?w:x; m=(mx)?w:x; m=(my)?m:y; A. 12 B. 0 C. 3 D. 145.设整型变量 a=2,则执行下列语句后,浮点型变量 b 的值不为 0.5 的是
13、(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.652. 设 x 为 int 型变量,则执行以下语句后,x 的值为(C)x=10; x*=x;A) 10 B) 20 C) 100 D) 053. 若有语句 int a=1,b; double y=2.3; b=(int)y; 则 b 的值为 (B )
14、A) 3 B) 2 C) 1 D) 2.354.已知 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 语言的库函数中,可以输出 char 型变量 x 值的语句是C。 A)getchar(x); B)fputc(x) C)putchar(x) D)puts(x)60. 以下说法正确的是( C )A) x+5 是一个错误的表达式B) C 语言不允许类型的混合运算C)强制类型转换时,类
15、型说明符必须加括号D) (int)x+y 和(int) (x+y)是完全等价的表达式61.设 int x=0, y=1; 表达式(x|y)的值是( B ) A) 0 B) 1 C) 2 D) -1学习资料学习资料收集于网络,仅供参考三、选择结构三、选择结构1. 在 C 语言中,认为(D )为逻辑真A) true B)大于0的数 C)非0整数 D)非0的数A) (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=04、判断 char 型变量 c1 是否为大写字母的表达式为( D ) 。 A、A=c1=A
16、) & (c1=Z) C、 (A=c1) D、 c1=A & c1=Z5. 为表示逻辑表达式 79X79 )&( X79 )!=( X90 )C) 79X79 )|( X0&b&c0”的值是( A)A.1 B.0C.-1 D.出错2.表示关系 x=y=z 的 c 语言表达式为A7. 设 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.09. 若 int i=10; 执行下列程序后
17、,变量 i 的正确结果是( A) 。 switch ( i ) case 9: i+=1; case 10: i+=1; case 11: i+=1; default : i+=1; A、13 B、12 C、11 D、1010. 在下面的条件语句中(其中 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.假定所有变量均已正确定义,则下列程序段运行
18、后 y 的值是(A)学习资料学习资料收集于网络,仅供参考int a=0,y=10; if(a=0) y-; else if(a0) y+; else y+=y;A.20 B.11 C.9 D.012.假定所有变量均已正确定义,则下列程序段运行后 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.313. C 语言对嵌套 if 语句的规定是:else 语句总是与( D)配对。 A) 其之前最近的 if B) 第一个 ifC) 缩进位置相同的 if D) 其之前最近的且尚未配对的 if1
19、4.在 C 语言语句中,用来决定分支流程的表达式是( A) 。A可用任意表达式B.只能用逻辑表达式或关系表达式C只能用逻辑表达式D.只能用关系表达式15.C 语言中用(B)表示逻辑“真” 。A. true B. 整数值 1C. 非零整数值 D. false16、若 k 是 int 型变量,且有下面的程序段:int k;k= -3;if (k=0) printf(“#”);else printf(“&”);上面程序段的输出结果是(A)A、# B、&C、#& D、有语法错误,无输出结果17. main() int x=0,a=0,b=0;switch(x)case 0: b+;case 1: a+
20、;case 2: a+;b+;学习资料学习资料收集于网络,仅供参考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=218. 以下程序的输出结果是: ( C)main() int x=-10,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=10C) a=50 b=30 c=10 D) a=50 b=30 c=50四、循环结构四、循环结构*1
21、.在 C 语言中,下列说法中正确的是( D) 。 A) do-while 语句构成的循环不能用其它语句构成的循环来代替。 B) do-while 语句构成的循环只能用 break 语句退出。 C) do-while 语句构成的循环在 while 后的表达式非零时结束循环。 D) do-while 语句构成的循环,在 while 后的表达式为零时结束循环。2. break 语句不能出现在( D)语句中A. switch B.for C. while D. ifelse*3对于 break 语句和 continue 语句的说法错误的是( B )A) break 语句不能用于循环语句和 switch
22、 语句之外的任何其他语句中。B) break 和 continue 也可以用于 if 语句中C) continue 语句只结束本次循环,而不是终止整个循环的执行。D) break 语句是结束整个循环过程,不再判断执行循环的条件是否成立。4.语句 while(!y) ;中的表达式!y 等价于A学习资料学习资料收集于网络,仅供参考A)y0 B)y!1 C)y!0 D) y=15.若有 “int a=1,x=1;” ,则循环语句 “while(a10) x+; a+;” 的循环执行 (A)A.无限次 B.不确定次C.10 次D.9 次6. 有以下程序段intk=0while(k)k+;则 while
23、 循环体执行的次数是CA) 无限次B) 有语法错,不能执行D) 执行 1 次C) 一次也不执行7. 下列循环语句中有语法错误的是( 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#includemain() while(putchar(getchar()!=$);printf(end);A) abcd$abcde B)abcd$end C)abcdend D) abcd$abcdeend9. 以下程序段 ( A )x=-1;d
24、o x=x*x; while(x0);A. 是死循环 B. 循环执行一次 C. 循环执行二次 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) 114 有如下程序main() int i,sum=2;for(i=1;i=3;i+=2) sum+=i;printf(“%dn”,sum); 该程序的执行结果是AA)
25、 6 B) 3 C) 死循环 D) 4*15、执行语句”for ( i=0; i+3 ; );”后,变量 i 的值为( C A、2 B、3 C、4 D、516.设 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
26、. int a5=(0,1,2,3,4,) B. int a(5)=C. int a3=0,1,2 D. int a5=10*13.在 C 语言中对一维整型数组的正确定义为D。 A)int a(10); B)int n=10,an;C)int n;an; D)#define N 10学习资料。)学习资料收集于网络,仅供参考 int aN;4、已知:int a10; 则对 a 数组元素的正确引用是( D) 。A、a10B、a3.5C、a(5)D、a05. 执行下面的程序段后,变量 k 中的值为C A) 不定值 B) 33 C) 30 D) 10 int k=3, s2; s0=k; k=s0*1
27、0;*6. 下列说法中错误的是CA构成数组的所有元素的数据类型必须是相同的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,128.若有以下数组说明,则 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.59. 假定 int 类型变量占用两个字节,其有
28、定义:int x10=0,2,4;,则数组x 在内存中所占字节数是DA) 311.若有说明:int a3=1,2,3,4,5,6,7; 则数组 a 的第一维的大小为: ( B ) A. 2 B. 3 C. 4 D.无确定值12.以下定义语句中,错误的是 ( D )B) 6C) 10D) 20A) int a=1,2;B) char *a;D) int n=5,an;C) char s10=“test”;int i;13.下面程序段的输出结果是: ( C )int x33=1,2,3,4,5,6,7,8,9;for (i=0;iage D) (*p).age*5. 有如下定义struct per
29、sonchar name9; int age;struct person class10=“Tom”,17,“John”,19,“Susan”,18,“Adam”,16,;根据上述定义,能输出字母 A 的语句是( B )A) printf(“%cn”,class3.name);B) printf(“%cn”,class3.name0);C) printf(“%cn”,class3.name1);D) printf(“%cn”,class2.name3);6.存放 100 个学生的数据、包括学号、姓名、成绩。在如下的定义中,不正确的是(B )。Astruct studentint sno;cha
30、r name20; float score; stu100;B. struct student stu100int sno;char name20;float score;C. struct int sno;char name20;float score; stu100;D. struct studentint sno;char name20;float score;;struct student stu100;学习资料学习资料收集于网络,仅供参考*7. 设 有 定 义语 句 “struct int x; int y; d2=1,3,2,7; ” 则“printf(“%dn”,d0.y/d0.
31、x*d1.x);”输出的是( D )。A.0 B.1 C.3 D.68.已知: struct 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.a9.设有如下定义:struck skint 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 st
32、ruct stu int a; float b; stutype;则下面叙述中错误的是( 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.一个标志学习资料学习资料收集于网络,
33、仅供参考3.若 x 是整型变量,pb 是基类型为整型的指针变量,则正确的赋值表达式是(A )A) pb=&x B) pb=x C) *pb=&xD) *pb=*x4、已知:int a, *p=&a; 则下列函数调用中错误的是( D) 。 A、scanf(“%d”,&a); B、scanf(“%d”,p); C、printf(“%d”,a); D、printf(“%d”,p);5.对于同类型的指针变量,不可能进行的运算是( C) 。A.- B.= C.+ D.=6. 对于基类型相同的两个指针变量之间,不能进行的运算是CA) B) = C) + D) -7下列不正确的定义是(A) 。A. int
34、*p=&i,i; B.int *p,i;Cint 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=n9. int *p,a=10,b=1; p=&a; a=*p+b;执行该程序段后,a 的值为CA) 编译出错 B) 10 C) 11 D) 12A)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
35、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) *P+9 B) *(P+8) C) *P+=9 D) P+814.若有以下定义,则不能表示 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
36、=a;下面的叙述中正确的是A。A) p+1 与 a+1 等价 B) p1与*p 等价学习资料10有语句:int a10,;则B是对指针变量 p 的正确定义和初始化。学习资料收集于网络,仅供参考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+317. 下面程序的输出结果是CA) 0B) 1C) 2D) 输出错误main()inta =1,2,3,4,5,6,7,8,9,0,*p;p=a;printf
37、(“%dn”,*p+1);18. 执行语句 char c10= ”abcd”,*pc=c; 后,*(pc+4)的值是(B)A) “abcd” B)0C) 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 (“%sn”,p); 该程序的输出结果是D
38、A) ABCD B) A C) B D) BCDBCD B C CDCD C D DD D*21.请读程序,输出结果为: ( A )#include学习资料学习资料收集于网络,仅供参考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) 6B) 8C) 4D) 2*22 内存空间被分成不同区域,其中用函数 void* malloc(unsigned int size);申请的内存在C分配。A) 程序区 B)静态存储区 C)动态存储区九、字符串九、字符串1. 在 C 语言中,以D作为字符串
39、结束标志A)n B) C) 0 D)02.下列数据中属于“字符串常量”的是(A ) 。A.“a” B.ABC C.abc0 D.a3.字符串 “ABCD”在内存占用的字节数是( D) 。A4B6C1D54. 下面不正确的字符串常量是: (A) A. PROGRAM B “1212” C “0” D “”5.设有数组定义: char array =abcd; 则数组 array 所占的空间为BA) 4 个字节 B) 5 个字节 C) 6 个字节 D) 7 个字节*6.下述对 C 语言中字符数组的描述错误的是C。A)字符数组可以存放字符串B)字符数组中的字符串可以整体输入和输出C)可在赋值语句中通
40、过赋值运算符“=”对字符数组整体赋值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;学习资料学习资料收集于网络,仅供参考则正确的叙述为CA) 数组 x 和数组 y 等价 B) 数组 x 和数组 y 的长度相同C) 数组 x 的长度大于数组 y 的长度D) 数组 x 的长度小于数组 y 的长度9、若有以下语句,则正确的描述是
41、( 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、已知:char s20= ”programming”, *ps=s; 则不能引用字母 o 的表达式是( C) 。A、ps2B、s2C、ps+2D、ps+=2,*ps*11判断两字符串 s1,s2 是否相等,应使用( D ). A)if(s1=s2) B)if(s1=s2)C)if(strcpy(s1,s2)D)if(strcmp(s1,
42、s2)=0)*12以下 printf 语句的输出结果为:Aprintf(“%dn”,strlen(“school”);A) 7 B) 6 C)存在语法错误 D)不定值13. 对字符数组 s 赋值,不合法的一个是(C )A. 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,
43、h,a,i,0;D. char str8= s,h,a,n,g,h,a,i;15. 合法的数组定义是CA)int a=“string”; B) int a5=0,1,2,3,4,5;C)char a= “string”; 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)学习资料学习资料收集于网络,仅供参
44、考A)charc= 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; B). char *str ;str=”I am a boy!”;st
45、r=”I am a boy!”;C).char *str=”I am a boy!”;D). char str20=” I am a boy!”;十、文件十、文件*1.在 C 语言中,文件由( A )。A字符(字节)序列组成 B.记录组成C数据行组成 D.数据块组成2. 下面各函数中能实现打开文件功能的是AA) fopenB) fgetcC) fputcD) fclose*3若文件型指针 fp 指向某文件的末尾,则函数 feof(fp)的返回值是( B )。A.0 B. 1 C.非 0 值 D.NULL4. 下列语句中,把变量 fp 说明为一个文件型指针的是( A ) 。A) FILE *fp
46、; B) FILE fp;C) file *fp; D) file fp;5、在进行文件操作时,写文件的一般含义是( B) 。 A、将磁盘中的信息存入计算机内存B、将计算机内存中的信息存入磁盘 C、将计算机 CPU 中的信息存入磁盘 D、将磁盘中的信息存入计算机 CPU*6以读写方式打开一个已有的文本文件 file1,并且 FILE *fp,下面 fopen 函数正确的调用方式是( B )。A.fp=fopen(“file1”,“r”)B.fp=fopen(“file1”,“r+”)C.fp=fopen(“file1”,“rb”)D.fp=fopen(“file1”,“w”)学习资料学习资料收
47、集于网络,仅供参考*7.标准库函数 fputs(p1,p2)的功能是( C )。A从 p1 指向的文件中读一个字符串存入 p2 指向的内存B从 p2 指向的文件中读一个字符串存入 p1 指向的内存C从 p1 指向的内存中读一个字符串写到 p2 指向的文件中DE从 p2 指向的内存中读一个字符串写到 p1 指向的文件中十一、编译预处理*1.在 C 语言程序中,以#号带头的行是预编译处理( A )。2.下列正确的预编译命令是( D )。3.下列命令或语句中,正确的是( C )。D. struct int stuint name;A.#define PI 3.14159 B.#include ;B.if(2); D.for(;) if(1) break;*4.下列命令或语句中,错误的是( C )。C. for(i=0;i10;i+);B. #include stdio.hA. #define MYNAME=”ABC”D. #define PI 3.14159;C. #define stdio.hA. define PI 3.14159B. #define P(a,b)=strcpy(a,b)A命令 B.语句 C.函数 D.字符串学习资料