




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机程序设计基础(C语言)单项选择练习题一、基本概念1. c语言程序是由c构成的。A)一些可执行语言 B)main函数C)函数D)包含文件中的第一个函数2. ( A )是构成C语言程序的基本单位。A、函数B 、过程 C 、子程序 D、子例程3. C语言程序从C 开始执行。A)程序中第一条可执行语句 B)程序中第一个函数C)程序中的main函数D)包含文件中的第一个函数4. C语言程序从main()函数开始执行,所以这个函数要写在 _D_。A)程序文件的开始B)程序文件的最后C)它所调用的函数的前面D)程序文件的任何位置5. 以下说法中正确的是(C )。A、C语言程序总是从第一个定义的函数开始
2、执行B、 在C语言程序中,要调用的函数必须在 main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分6. 下列方法中错误的是(D )。A. 主函数可以分为两个部分:主函数说明部分和主函数体。B. 主函数可以调用任何非主函数的其它函数。C. 任何非主函数可以调用其它任何非主函数。D. 程序可以从任何非主函数开始执行。7. 下列说法错误的是:(B )A. C程序运行步骤是编辑、编译、连接、执行。B. C语言的变量名必须用小写,常量用大写。C. C语言的三种基本结构是顺序、选择、循环。D. C程序一定由函数构成的。8. 下列关于C语
3、言的说法错误的是(B )。A)C程序的工作过程是编辑、编译、连接、运行B)C语言不区分大小写。C)C程序的三种基本结构是顺序、选择、循环D)C程序从main函数开始执行9. 系统默认的C语言源程序扩展名为.C,需经过_C 之后,生成.exe文件, 才能运行A)编辑编译B )编辑连接 C) 编译连接 D)编辑改错*10.下列说法中正确的是(B )。A. 由于C源程序是高级语言程序,因此一定要在 TC软件中输入。B. 由于C源程序是由字符流组成的,因此可以作为文本文件在任何文本编辑 的软件中输入。C. 由于C程序是高级语言程序,因此输入后即可执行。D. 由于C程序是高级语言程序,因此它是由命令组成
4、的。二、数据类型、运算符与表达式1. 不是C语言提供的合法关键字是(B)语言提供的合法关键字是(D)case*3.下列不属于C语言中关键字的是BA)lo ng B)pri nt C)default D)typedef4. 下列正确的标识符是(C )。it5. 下列C语言用户标识符中合法的是(B )。A、*y B 、sum C、int D 、%5f6. 下面四个选项中,合法的标识符是:(D)A. auto B. defi neC. 6a D. c7下列C语言用户标识符中合法的是(B )。A)3ax B)x C)case D)-e2 E)u nion8. 以下选项中合法的用户标识符是BA) lon
5、gB) _2Test C) 3Dmax D)9. 下列四组选项中,正确的 C语言标识符是(C )。A) %x B ) a+b C )a123 DA) voidB) a3_b3C) Fordefi ne_123-abcDOWORDsumCasesizeof)123D) 2a11、下列四组字符串中都可以用作C语言程序中的标识符的是(A )。A、print _3d db8 aBc B、lam one_half start$it 3paiC、str_1 Cpp pow while D、Pxq My-book line#10. 请选出可用作C语言用户标识符的一组标识符(B )12.下列C语言标识符中合法
6、的变量名是BA)2e3 B)you C)*y D)float语言中的简单数据类型包括(D )A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型C、整型、字符型、逻辑型 D、整型、实型、字符型14. 下列可以正确表示字符型常量的是(A )。A、 t B 、” a”C 、” n ” D 、29715. 下列表达式中,_ _是正确的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 D) E18 下面字符常量表示
7、错误的是(D )A) a B) C) n D) ” n ”19. 已定义c为字符型变量,则下列语句中正确的是(C )A) c=97 B ) c=97 C ) c= aD ) c=a20. 已知ch是字符型变量,不正确的赋值语句是(A )A) ch=a+b ;B) ch= 0 ;C) ch= 7 ;D) ch=;21. C语言中字符型(char)数据在内存中的存储的是(D )A)原码B)补码C)反码D) ASCII码22. 在C语言中,字符型数据所占的内存空间是(C )A)2 个字节 B) 4 字节 C) 1 字节 D)由用户自定义*23 .若int类型数据占2个字节,则unsigned int
8、类型数据的取值范围是(B )A)0 255B)065535C)-3276832767D)-25625526 .C语言中运算对象必须是整型的运算符是( A )A) %=B) /C) =D)二27. 在C语言程序中,表达式8/5的结果是(B )A) B)1C)3D)028. 设x为int型变量,则执行以下语句后,x的值为B_x=10; x+=x;A) 10 B) 20 C) 40 D) 3031. 在C语言程序中,表达式5%2的结果是匚。A) B)2C)1D)332. 如果int a=3,b=4 ;则条件表达式ab a:b的值是 A。A) 3 B) 4 C) 0 D) 133. 若int x=2,
9、y=3,z=4则表达式xzy:z的结果是(B ).A)4 B)3 C)2 D)0 E)134. C语言中,关系表达式和逻辑表达式的值是( B ) o37. 下面( D ) 表达式的值为 4.A) 11/3 B) 3C) (float)11/3 D) (int)3+*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 为字符型,则执行语句c2=A+6-3; 后, c2 中的值为 ( B )A) 68 B)DC) 错误 D)d41. 下列关于 C 语言的叙述错误
10、的是(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 的值不为的是( B ) =a =(float)(1/a)=1/(float)a =1/(a*48. 以下运算符中优先级最高的运算符是( B )A)
11、& B)+C)+= D)!=49. 若“ int n; float f=;” ,则执行 “ n=(int)f%3 ”后,n 的值是(A).4C设x为int型变量,则执行以下语句后 ,x 的值为( C )x=10; x*=x;A) 10 B) 20 C) 100 D) 053. 若有语句 int a=1,b; double y=; b=(int)y;则 b 的值为 ( B )A) 3 B) 2 C) 1 D)54. 已知 int x;char y; 则下面错误的 scanf 函数调用语句为 (B )A)scanf( “d,%d,&x,&y); B) seanf(“d,%C ,x,y)C) sea
12、nf( “%d%d,&x,&y)D) seanf( “%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) 强制类型转换时,类型说明符必须加括号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
13、) 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或a=10 or a=0|a=10 &a=10 II a=04. 判断char型变量c1是否为大写字母的表达式为(D )。A、 A=c1=A) & (c1= Z)C、( A=c1)D、c1= A& c1= Z5. 为表示逻辑表达式79X79 )&( X79 )!=( X90 )C) 79X79 )|( X0&b&c0的值是(A )B. 0D.出错7. 设a为整型变量,则不能正确表达数
14、学关系10v av 15的C语言表达式是 (A )。a10&a15D.!(a=15)8. 设x,t均为int型变量,则执行语句“x=10;t=x&x10; ”后,t的值为(D )A.不定值.10C9.若int i=10;执行下列程序后,变量i的正确结果是(A )switch ( i) case9:i+=1;case10:i+=1;case11:i+=1;default :i+=1; A 、13B、12C 、11 D、1010. 在下面的条件语句中(其中 s1 和 s2 表示是 C 语言的语句),只有一个在功 能上与其它三个语句不等价,它是( D )。A 、if (a) s1 ; else s2
15、; B、if (a= =0) s2; else s1;C、if (a!=0) s1; else s2; D、if (a= =0) s1; else s2;11. 假定所有变量均已正确定义,则下列程序段运行后 y 的值是( A ) int a=0,y=10;if(a=0) y-;else if(a0) y+;else y+=y;.11 C12. 假定所有变量均已正确定义,则下列程序段运行后 x 的值是( B )。a=b=c=0; x=35;if(!a) x-; else if(b);if(c) x=3; else x=4;.4 C13. C 语言对嵌套 if 语句的规定是: else 语句总是与
16、( D )配对。A) 其之前最近的 if B) 第一个 ifC) 缩进位置相同的 if D) 其之前最近的且尚未配对的 if14.在C语言语句中,用来决定分支流程的表达式是( A )。A. 可用任意表达式B.只能用逻辑表达式或关系表达式C只能用逻辑表达式D.只能用关系表达式语言中用( 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、,无输出结果17. mai n() int x=O,a=O,b=O;switch(x)case 0: b+;case 1: a+;case 2: a+;b+;printf( “a=%d,n” ,a,b);该程序的输出结果是_DC) a=1,b=0 D) a=2,b=2C )A) a=2,b=1 B) a=1,b=118. 以下程序的输出结果是:(mai n()int x=-10,y= 1,z=1; if(xy) if(yb)a=b;b=c;c=a;prin tf(a=%2d b=%2d c=%2dn,a,b,c);A) a=10 b=50 c=10B) a=10 b=30 c=10C) a=5
18、0 b=30 c=10D) a=50 b=30 c=50四、循环结构*1.在C语言中,下列说法中正确的是(D )。A) do-while语句构成的循环不能用其它语句构成的循环来代替B) do-while语句构成的循环只能用 break语句退出。C) do-while 语句构成的循环在while后的表达式非零时结束循环。D) do-while语句构成的循环,在while后的表达式为零时结束循环。2. break语句不能出现在(D )语句中A. switchC. while D. ifelse*3 .对于break语句和continue语句的说法错误的是(B )A) break语句不能用于循环语句
19、和 switch语句之外的任何其他语句中。B) break和continue也可以用于if语句中C) con ti nue 语句只结束本次循环,而不是终止整个循环的执行。D) break语句是结束整个循环过程,不再判断执行循环的条件是否成立。4. 语句while (! y);中的表达式! y等价于A一A)y = = 0 B)y != 1 C)y = !0 D) y=15. 若有“ int a=1,x=1; ”,则循环语句 “ while(a0);A. 是死循环B.循环执行一次C.循环执行二次D.有语法错误10. 下面程序段执行后的结果为:(B )int sum=0, n=10;do sum=s
20、um+n;n+; while( n0;i+);A.无限次B.不确定次13. 执行语句for(j=0;jv=3;j+) a=1;A)0 B) 3C)4 D) 114. 有如下程序mai n() int i,sum=2; for(i=1;i=3;i+=2) sum+=i;printf( “d n” ,sum); 该程序的执行结果是AA) 6B) 3C)五数组1.以下对一维数组a的正确说明是: _D_A) char a (10);B) int a;C)int k = 5, ak ; D ) char a3=2. 以下能对一维数组a进行初始化的语句是:(A. int a5=(0,1,2,3,4,) B
21、. int a(5)=C. i nt a3=0,1,2D. i nt a5=10*13. 在C语言中对一维整型数组的正确定义为_DA)int a(10);B)i nt n=10,a n;C)i nt n ;a n; D)#defi ne N 10 int aN;4、已知:int a10; 则对a数组元素的正确引用是(D )A、a10 B、a C、a(5) D、a05. 执行下面的程序段后,变量k中的值为_CA) 不定值 B) 33 C) 30 D) 10 int k=3, s2;s0=k; k=s0*10;*6.下列说法中错误的是C A构成数组的所有元素的数据类型必须是相同的B用指针法引用数组
22、元素允许数组元素的下标越界C 一维数组元素的下标依次是1、2、3D定义数组时的长度可以是整型常量表达式7. 若有以下数组说明,则数值最大的和最小的元素下标分别是( B ) int a12=1,2,3,4,5,6,7,8,9,10,11,12;,12 ,11 ,11 ,128. 若有以下数组说明,则i=10;aai元素数值是(B )。int a12=1,4,7,10,2,5,8,11,3,6,9,12;9假定int类型变量占用两个字节,其有定义: x在内存中所占字节数是DA) 311. 若有说明:为:(B )A. 2 B. 3B) 6C) 10int a3=1,2,3,4,5,6,7;C. 4
23、D.无确定值intx10=0,2,4;,则数组D) 20则数组a的第一维的大小D )B) char *a;D) int n=5,a n;C )12. 以下定义语句中,错误的是A) int a=1,2;C) char s 10=“ test ” ;13. 下面程序段的输出结果是:(int i;int x33=1,2,3,4,5,6,7,8,9;for (i=0;i3;i+)prin tf(%d ,xi2-i);A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 914. 对二维数组的正确定义是(C )a =1,2,3,4,5,6;a2 =1,2,3,4,5,6;a 3=1,2,3
24、,4,5,6;a2,3=1,2,3,4,5,6;15. 已知int a34;则对数组元素引用正确的是CA)a24 B)a1,3 C)a20D)a (2)(1)六、函数语言中函数返回值的类型是由 A 决定的.A)函数定义时指定的类型B) retur n语句中的表达式类型C)调用该函数时的实参的数据类型D)形参的数据类型2.在C语言中,函数的数据类型是指(A )A函数返回值的数据类型B.函数形参的数据类型C调用该函数时的实参的数据类型D.任意指定的数据类型A.由系统选择B.单向值传递 C.由用户指定传递方式 D.地址传递5. 在函数调用时,以下说法正确的是( B )A. 函数调用后必须带回返回值B
25、. 实际参数和形式参数可以同名C. 函数间的数据传递不可以使用全局变量D. 主调函数和被调函数总是在同一个文件里9. 以下叙述中正确的是_ A) 构成C程序的基本单位是函数B) 可以在一个函数中定义另一个函数C) main()函数必须放在其它函数之前D) 所有被调用的函数一定要在调用之前进行定义10. 用数组名作为函数调用时的实参时,传递给形参的是 A。A)数组首地址B)数组第一个元素的值C) 数组全部元素的值D)数组元素的个数*16.下列说法中正确的是:(A )A. 局部变量在一定范围内有效,且可与该范围外的变量同名。B. 如果一个源文件中,全局变量与局部变量同名,则在局部变量范围内, 局部
26、变量不起作用。C. 局部变量缺省情况下都是静态变量。D. 函数体内的局部静态变量,在函数体外也有效。17.在C语言中,表示静态存储类别的关键字是:(C )A) autoB) register C) staticD) extern18 未指定存储类别的变量,其隐含的存储类别为(A )。A)auto B)static C)exter n D)register 八.指针1. 语句 int *p;说明了C 。A) p是指向一维数组的指针B) p是指向函数的指针,该函数返回一 int型数据C) p是指向int型数据的指针D) p是函数名,该函数返回一指向int型数据的指针2. 变量的指针,其含义是指该变
27、量的:(B )A. 值 B. 地址 C. 名 D.一个标志3. 若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是(A )A) pb=&x B) pb=x C) *pb=&xD) *pb=*x4、 已知:int a, *p=&a;则下列函数调用中错误的是( D )。A、seanf( “ %d ,&a);B、seanf( “%d ,p);C、printf( “%d ,a);D、printf(“ %d ,p);5. 对于同类型的指针变量,不可能进行的运算是(C )。B. =C.+D.=6. 对于基类型相同的两个指针变量之间,不能进行的运算是_匚A) B) = C) +D)-7. 下
28、列不正确的定义是(A )。A. int *p=&i,i;*p,i;C. int i,*p=&i;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) 11D) 1210. 有语句:int a10,;则_B是对指针变量p的正确定义和初始化。A)in t p=*a; B)i nt *p=a; C)i nt p=&a; D)i nt *p=&a;11. 若有说明语句“ i
29、nt a5,*p=a;” ,则对数组元素的正确引用是(C)。paC.*(p+2)+212. 若指针变量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+816.若有以下说明:int a10=1,2,3,4,5,6,7,8,9,10,*p=a;则数值为4的表达式是(C )A) *p+4B) *(p+4
30、) C) *(p+3) D) p+319.下列函数的功能是 A void fun(int *p1,i nt *p2) in t p;p=*p1;*p1=*p2;*p2=p;A)交换*p1和*p2的值 B)语法正确,但无法交换*p1和*p2的值C)交换*p1和*p2的地址 D)有语法错误九、字符串1. 在C语言中,以A) n B) C) 02. 下列数据中属于“字符串常量”的是(A. “a”B.ABCC.3. 字符串 “A. 4B. 64. 下面不正确的字符串常量是:A. PROGRAM B_D_作为字符串结束标志D)A 0abc0 DABCD在内存占用的字节数是(C. 1(A“12)12”0 D.)0D.“0”5.设有数组定义:char array =abcd;A) 4个字节 B) 5 个字节7. 已知 char x=hello, y=h,e,a,b,e;,度的正确描述是B .A)相同 B)x 大于y C)x8. 给出以下定义:char x =abcdefg;char y =a,b,c,d,e,f,g;则正确的叙述为_C_A)数组x和数组y等价B)C)数组x的长度大于数组y的长度9. 若有以下语句,则正确的描述是(static char x= static char y =、x数组长度大于、x数组长度小于已知:char
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论