《2023年C语言基本选择题及答案.pdf》由会员分享,可在线阅读,更多相关《2023年C语言基本选择题及答案.pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机程序设计基础(C语言)单项选择练习题、基本概念I.c语 言 程 序 是 由(构成的。A)一些可执行语言B)m ain函数 C)函数 D)包含文献中的第一个函数2.(A)是构成C语言程序的基本单位。A、函数 B、过程 C、子程序 D、子例程3.C语言程序从 C 开始执行。A)程序中第一条可执行语句0程序中的m ain函数函数4.C语言程序从main。函数开始执行,A)程序文献的开始0它所调用的函数的前面5、以下说法中对的的是(C)。B)程序中第一个函数D)包含文献中的第一个所以这个函数要写在 oB)程序文献的最后D)程序文献的任何位置A、C语言程序总是从第一个定义的函数开始执行B、在C语言
2、程序中,要调用的函数必须在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 语言的说法错误的是(B )oA)C 程序
3、的工作过程是编辑、编译、连接、运营B)C 语言不区分大小写。0 C 程序的三种基本结构是顺序、选择、循环D)C 程序从mai n 函数开始执行9 .系统默认的C语言源程序扩展名为.C,需通过之后,生成.e x e 文献,才干运营。A)编辑、编译 B )编辑、连接 C)编译、连接 D)编辑、改错*1 0.下列说法中对的的是(B )。A.由于C 源程序是高级语言程序,因此一定要在T C 软件中输入。B.由于C源程序是由字符流组成的,因此可以作为文本文献在任何文本编辑的软件中输入。C.由于C 程序是高级语言程序,因此输入后即可执行。D.由于C 程序是高级语言程序,因此它是由命令组成的。二、数据类型、
4、运算符与表达式1 .不是C 语言提供的合法关键字是(B )。A.s w i t ch B.ch e r C.cas e D.d e f au l t*2.C 语言提供的合法关键字是(D )oA.n e x t B.s t r i n g C.d o cas e D.s t r u ct*3.下列不属于C 语言中关键字的是 A)l o n g B)p r i n t C)d e f au l t D)t yp e d e f4 .下列对的的标记符是(C )0A.-al B.a i C.a2 _ i D.i n t t5 .下列C 语言用户标记符中合法的是(B )。A、*y B、s u m C、i
5、 n t D、%5 f6.下面四个选项中,合法的标记符是:(D )A.au t o B.d e f i n e C.6a D.c7 .下列C 语言用户标记符中合法的是(B )oA)3 ax B)x C)cas e D)-e 2 E)u n i o n8 .以下选项中合法的用户标记符是 A)long B)_2Test C)3Dmax D)A.dat9 .下列四组选项中,对的的C 语言标记符是(CA)%x B)a+b C)al 2 3 D)1 2 31 0 .请选出可用作C 语言用户标记符的一组标记符(B )A)void B)a3_b3C)For D)2ad e f i n e _ 1 2 3 -
6、abc D OW O R Ds u mC as e s i ze o f1 1、下列四组字符串中都可以用作C 语言程序中的标记符的是(A )0A、p r i n t _ 3 d d b8 aB cB、I am o n e _ h al f s t ar t$i t 3 p aiC、s t r _ l C p p p o w w h i l e D、P x q M y-bo o k l i n e#H i s.ag e1 2 .下列C 语言标记符中合法的变量名是3 oA)2e3 B)you C)*y D)float1 3 .C 语言中的简朴数据类型涉及(D )oA、整型、实型、逻辑型 B、整型、
7、实型、逻辑型、字符型C、整型、字符型、逻辑型 D、整型、实型、字符型1 4、下列可以对的表达字符型常量的是(A )oA、t B、a C、“n”D、2 9 71 5 .下列表达式中,D 是对的的C 语言字符常量。A)x”B)e 3 C)”C O M P U T E R D)1 6.在下列表达式中,属于字符型常量的是 B 。A)A B)a C)A D)b1 7 .以下选项中合法的字符常量是(B )A)B B)n C)68 D)E1 8 .下面字符常量表达错误的是(D )A)a B)?,C)n D)n 1 9 .已定义c 为字符型变量,则下列语句中对的的是(C )A)c=9 7 B)c=97 C)c
8、=a D)c=a2 0 .已知ch 是字符型变量,不对的的赋值语句是(A )A)c h=a+b ;B)c h=,0 ;C)c h=,7 ;D)c h=;;2 1 .C 语言中字符型(c ha r)数据在内存中的存储的是(D)A)原 码 B)补 码 C)反 码 D)A S CI I 码2 2 .在 C 语言中,字符型数据所占的内存空间是(C)A)2 个字节 B)4 字节 C)1 字节 D)由用户自定义*2 3.若 i n t 类型数据占2个字节,则 u n s i g n e d i n t 类型数据的取值范围是(B )A)0 2 5 5 B)0-6 5 5 3 5 C)-3 2 7 6 8 3
9、 2 7 6 7 0)-2 5 6 2 5 52 6 .C语言中运算对象必须是整型的运算符是(A )A)%=B)/C)=D)=2 7 .在C 语言程序中,表达式8/5 的结果是(B )A)1.6 B)1 C)3 D)02 8 .设x 为 i n t 型变量,则执行以下语句后,x的值为3x=1 0;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;则条件表达式 a b?a:b的 值 是A。A)3 B)4 C)0 D)133.若 int x=2,y=3,z=4 则表达式
10、 x z?y:z 的结果是(B).A)4 B)3 C)2 D)0 E)134.C语言中,关系表达式和逻辑表达式的值是(B)。37.下面(D)表达式的值为4.A)11/3 B)11.0/3C)(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 的 ASC II码为十进制数65,且 c 2 为字符型,则执行语句c2=A+6-3;后,c2 中 的 值 为(B)A)68 B)D C)错误 D)d41.下列关于C 语言的叙述错误的是(A)A)大写字母和小写
11、字母的意义相同B)不同类型的变量可以在一个表达式中0在赋值表达式中档号(=)左边的变量和右边的值可以是不同类型D)同一个运算符号在不同的场合可以有不同的含义42.有:int w=ll,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的是(B)A.b=l.0/a B.b=(float)(1/a)C.b=l/(float)a D.b=l/(a*l.0)48.以下运算符中优先级最高的运算符是(B)A)&B)+C)+=D)!=4
12、9.若“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=l,b;double y=2.3;b=(int)y;则 b 的值为(B)0A)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(u%d%dw,&
13、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)6 0.以下说法对的的是(C)A)x +5 是一个错误的表达式B)C 语言不允许类型的混合运算0强制类型转换时,类型说明符必须加括号D)(i n t)x+y 和(i n t)(x+y)是完全等价的表达式6 1.设 i n t x=0,y=l;表达式(x|y)的值是(B )A)0 B)1 C)2 D)-1三、选择结构1 .在C 语言中,认为(D)为逻辑 真A)t r u e B)大于0
14、的数 C)非0 整数 D)非0 的数2 .表达关系x=y=z 的c 语言表达式为 八A)(x=y)&(y =z)B)(x=y)A ND(y=z)C)(x=y=z)D)(x=y)&(y=1 0 o r a=0|a=1 0&a=1 0 II a=04、判断c ha r 型变量c l 是否为大写字母的表达式为(D)。A、A,=c l=A,)&(c l=,T )C、(A=c l)D、c l=A&c l=,Z5 .为表达逻辑表达式7 9 X 7 9 )&(X 7 9 )!=(X 9 0 )C)7 9 X 7 9 )|(X O&b&c O&d O”的值 是(A )A.1B.0C.-1D.犯错7.设a为整型
15、变量,则不能对的表达数学关系1 0 a 1 5的C语言表达式是(A)oA.10a10&a15 D.!(a=15)8.设x,t均为int型变量,则执行语句“x=10;廿x&x10;”后,t的值为(D)A.不定值 B.10 C.1 D.09.若int i=10;执行下列程序后,变量i的对的结果是(A)。switch(i)case 9:i+=l;case 10:i+=l;case 11:i+=l;default:i+=l;A、13 B、12 C、11 D、1010.在下面的条件语句中(其中si和s2表达是C语言的语句),只有一个在功能上与其它三个语句不等价,它 是(D)。A、if(a)si;else
16、 s2;B if(a=0)s2;else si;C、if(a!=0)si;else s2;D if(a=0)si;else s2;I L假定所有变量均已对的定义,则下列程序段运营后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;i f(!a)x-;e l s e i f(b);i f(c)x=3;e l s e x=4;A.3 4 B.4 C.3 5 D.31 3.C 语言对嵌套i f 语句的规定是:e l s
17、 e 语句总是与(D)配对。A)其之前最近的i f B)第一个i f0 缩进位置相同的i f D)其之前最近的且尚未配对的i f1 4.在 C 语言语句中,用来决定分支流程的表达式是(A )oA.可用任意表达式 B.只能用逻辑表达式或关系表达式C.只能用逻辑表达式 D.只能用关系表达式1 5.C 语言中用(B )表达逻辑“真二A.t r u e B.整数值1C.非零整数值 D.f a l s e1 6、若 k 是 i nt 型变量,且有下面的程序段:i nt k;k=-3;i f (k=0)p r i nt f(#);e l s e p r i nt f(&);上面程序段的输出结果是(A)A、
18、#B、&C、#&D、有语法错误,无输出结果1 7.m a i n()i nt x=0,a=0,b=0;s w i t c h(x)c a s e 0:b+;c a s e 1:a+;case 2:a+;b+;printf(aa=%d,b=%dnw,a,b);该程序的输出结果是 A)a=2,b=l B)a=l,b=l C)a=l,b=0 D)a=2,b=218.以下程序的输出结果是:(C )main()int x=-10,y=1,z=l;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=
19、10 b=30 c=10C)a=50 b=30 c=10 D)a=50 b=30 c=50四、循环结构*1.在C 语言中,下列说法中对的的是(D)。A)do-while语句构成的循环不能用其它语句构成的循环来代替。B)d o-w hi l e 语句构成的循环只能用b r e a k语句退出。C)d o-w hi l e 语句构成的循环在w hi l e 后的表达式非零时结束循环。D)d o-w hi l e 语句构成的循环,在w hi l e 后的表达式为零时结束循环。2.b r e a k语句不能出现在(D)语句中A.s w i t c h B.f o r C.w hi l e D.i f
20、e l s e*3.对于b r e a k语句和c o nt i nu e 语句的说法错误的是(B )A)b r e a k语句不能用于循环语句和s w i t c h语句之外的任何其他语句中。B)b r e a k和 c o nt i nu e 也可以用于i f 语句中0 c o nt i nu e 语句只结束本次循环,而不是终止整个循环的执行。D)b r e a k语句是结束整个循环过程,不再判断执行循环的条件是否成立。4.语句w hi l e (!y);中的表达式!y 等价于 AA)y=0 B)y !=1 C)y=!0 D)y=l5.若有“i nt a=l,x=l;,则循环语句“w hi
21、 l e(a G O)x+;a+;”的循环执行(A)A.无限次 B.不拟定次 C.1 0 次 D.9次6.有以下程序段i nt k=0w hi l e(k)k+;则 w hi l e 循环体执行的次数是A)无限次 B)有语法错,不能执行0 一次也不执行 D)执行1 次7.下列循环语句中有语法错误的是(D)A w hi l e(x=y)5;B w hi l e(0);C d o 2;w hi l e(x=b);D d o x+w hi l e(x=1 0);9.以下程序段(A)x=-l;d o x=x*x;w hi l e(x 0);A.是 死 循 环 B.循环执行一次C.循环执行二次D.有语法
22、错误1 0 .下面程序段执行后的结果为:(B )i nt s u m=0,n=1 0;d o s u m=s u m+n;n+;w hi l e(n0;i+);”的循环执行(A)。A.无限次 B.不拟定次 C.1 0 次 D.9次1 3 .执行语句 f o r (j=0;j=3 ;j+)a=l;后变量j 的值是 C .A)0 B)3 C)4 D)11 4.有如下程序m a i n()i nt i,s u m=2;f o r(i=l;i=3;i+=2)s u m+=i;p r i nt f(%d n,s u m);该程序的执行结果是 A)6B)3C)死循环D)4五数组1.以下对一维数组a 的对的
23、说明是:DA)char a(10);B)int a;C)int k=5,ak;D)char a3=,a,b,c;2.以下能对一维数组a 进行初始化的语句是:(C )A.int a5=(0,1,2,3,4,)B.int a(5)=C.int a3=0,1,2 D.int a5=10*l3.在C 语言中对一维整型数组的对的定义为 I)A)int a(10);B)int n=10,an;C)int n;an;D)#define N 10int aN;4、已知:int a10;则对a 数组元素的对的引用是(D)。A、a10 B、a3.5 C、a(5)D、aO5.执行下面的程序段后,变量k 中的值为A)
24、不定值 B)33 C)30 D)10int k=3,s2;s0=k;k=s0*10;*6.下列说法中错误的是 CA构成数组的所有元素的数据类型必须是相同的B用指针法引用数组元素允许数组元素的下标越界C 一维数组元素的下标依次是1、2、3D定义数组时的长度可以是整型常量表达式7.若有以下数组说明,则数值最大的和最小的元素下标分别是(B)。int a12=l,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)。i nt a 1 2 =l,4,7,1 0,2,5,8,1 1,3,6,9,
25、1 2);A.1 0 B.9 C.6 D.59.假定i nt 类型变量占用两个字节,其有定义:i nt x 1 0 =0,2,4;,则数组x 在内存中所占字节数是 A)3 B)6 C)10 D)201 1 .若有说明:i nt a 3 拄 1,2,3 ,4,5,6,7 ;则数组a的第一维的大小为:(B )A.2 B.3 C.4 D.无拟定值1 2 .以下定义语句中,错误的是(D)A)i nt =2 ;B)c ha r *a;C)c ha r s 1 0 =t e s t ;D)i nt n=5,a n;1 3 .下面程序段的输出结果是:(C )i nt i;i nt x 3 3 =1,2,3,
26、4,5,6,7,8,9:f o r (i=0;i 1,2,3,4,5,6 ;B.i nt a 2 =1,2,3,4,5,6);C.i nt a 3 =1,2,3,4,5,6 ;D.i nt a 2,3 =1,2,3,4,5,6);1 5.已知i nt a 3 4;则对数组元素引用对的的是A)a 2 4 B)a l,3 C)a 2 0 D)a(2)(1)六、函数LC语言中函数 返 回 值 的 类 型 是 由 决 定 的.A)函数定义时指定的类型 B)r e t u r n语句中的表达式类型C)调用该函数时的实参的数据类型D)形参的数据类型2.在C语言中,函数的数据类型是指(A )A函数返回值的数
27、据类型 B.函数形参的数据类型C调用该函数时的实参的数据类型 D.任意指定的数据类型A.由系统选择B.单向值传递 C.由用户指定传递方式D.地址传递5.在函数调用时,以下说法对的的是(B)A.函数调用后必须带回返回值B.实际参数和形式参数可以同名C.函数间的数据传递不可以使用全局变量D.主调函数和被调函数总是在同一个文献里9.以下叙述中对的的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函数C)main()函数必须放在其它函数之前D)所有被调用的函数一定要在调用之前进行定义10.用数组名作为函数调用时的实参时,传递给形参的是 AA)数组首地址 B)数组第一个元素的值C)数组所有
28、元素的值 D)数组元素的个数*1 6.下列说法中对的的是:(A)A.局部变量在一定范围内有效,且可与该范围外的变量同名。B.假如一个源文献中,全局变量与局部变量同名,则在局部变量范围内,局部变量不起作用。C.局部变量缺省情况下都是静态变量。D.函数体内的局部静态变量,在函数体外也有效。1 7.在C语言中,表达静态存储类别的关键字是:(C)A)autoB)registerC)staticD)extern1 8.未指定存储类别的变量,其隐含的存储类别为(A )。A)a u t o B)s t a t i c C)e xt e rn D)re g i s t e r八.指针1 .语句i n t *p
29、;说明了 C 。A)p是指向一维数组的指针B)p是指向函数的指针,该函数返回一 i n t 型数据C)p是指向i n t 型数据的指针D)p是函数名,该函数返回一指向i n t 型数据的指针2 .变量的指针,其含义是指该变量的:(B )A.值 B.地址 C.名 D.一个标志3 .若 x 是整型变量,p b 是基类型为整型的指针变量,则对的的赋值表达式是(A )A)pb=&x B)pb=x C)*pb=&x D)*pb=*x4、已知:i n t a,*p=&a;则下列函数调用中错误的是(D )。A、s c a n f (/d ,&a);B、s c a n f (/d”,p);C、pri n t
30、f (%d”,a);D、pri n t f (%d”,p);5 .对于同类型的指针变量,不也许进行的运算是(C )。A.-B.=C.+D.=6 .对于基类型相同的两个指针变量之间,不能进行的运算是_ C A)B)=C)+D)-7.下列不对的的定义是(A )。A.i n t *p=&i,i ;B.i n t *p,i ;C.i n t i,*p=&i;D.i n t 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=l;p=&a;a=*p+b;执行该程序段后,a 的值为 A
31、)编译犯错 B)10 C)11 D)1210.有语句:int a10,;则是对指针变量p 的对的定义和初始化。A)int p=*a;B)int*p=a;C)int p=&a;D)int*p=&a;I L 若有说明语句“int a5,*p=a;,则对数组元素的对的引用是(C )。A.ap B.pa C.*(p+2)D.p+212.若指针变量p 指向整型数组a10的首地址,即 p=a;则下列数组元素的表达方法中对的的是:(C )A.p+i B.&(a+i)C.*(a+i)D.*(p+i*2)13.有如下程序int a10-l,2,3,4,5,6,7,8,9,10,*P=a;则数值为9 的表达式是A
32、)*P+9 B)*(P+8)C)*P+=9 D)P+816.若有以下说明:int a10=l,2,3,4,5,6,7,8,9,10),*p=a;则数值为4 的表达式是(C )A)*p+4 B)*(p+4)C)*(p+3)D)p+319.下列函数的功能是 A。void fun(int*pl,int*p2)int p;p=*pl;*pl=*p2;*p2=p;A)互换*pl 和*p2 的值B)语法对的,但无法互换*pl 和*p2 的值0互换*p l和*p 2的地址 D)有语法错误九、字符串1 .在 C 语言中,以 D 作为字符串结束标志A),n,B)C)O D)O 2 .下列数据中属于“字符串常量”
33、的 是(A )oA.“a”B.A B C C.a b c O,D.a 3 .字 符 串“A B C D”在内存占用的字节数是(D )oA.4 B.6 C.1 D.54 .下面不对的的字符串常量是:(A )A.P R O G R A M B 1 2 1 2 C “0”D ”5 .设有数组定义:c h a r a rra y =a b c d”;则数组a rra y所占的空间为BA)4 个字节 B)5 个字节 C)6 个字节 D)7 个字节7.已知 c h a r x =h e l l o”,y口品 h ,e ,a ,b ,e ;,则关于两个数组长度的对的描述是 B .A)相同 B)x 大于y C
34、)x 小于y D)以上答案都不对8.给出以下定义:c h a r x =a b c d e f g”;c h a r yL J =t a ,b ,c ,d ,e ,f ,g );则对的的叙述为A)数组x 和数组y 等价 B)数组x 和数组y 的长度相同C)数组x的长度大于数组y的长度 D)数组x的长度小于数组y的长度9、若有以下语句,则对的的描述是(D )。static char x =”12345”;static char y =T ,,2,已知:char s20=programming,*ps二s;则不能引用字母o的表达式是(C )。A、ps2 B、s2 C、ps+2 D、ps+=2,*p
35、s13.对字符数组s赋值,不合法的一个是(C )A.char s口 二 Beijing”;B.char s20=beijing;C.char s20;s=Beijing;D.char=14.对字符数组str赋初值,str不能作为字符串使用的一个是(D)A.char str口 二 shanghai”;B.char str口=“shanghai”;C.char str9=s,,,h,,,a,,,n,,,g,,,h,,,a,,,0,;D.char str 8=,s,,,h,,,a,,,n,,,g,,,h,,,a,,,i,;15.合法的数组定义是 CA)int a=string;B)int a5=0,
36、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.下面初始化与此初始化chare=I am happy;等价的是(A)A)charc=T a m h a p p y 0 ;B)char c =T am happy ;C)char c T ,a ,n i ,h ,a ,p ,p ,y ;D)char c =am,happy ,0 ;1 9.下列字符串赋值方式不对的的是(A)A).char str20;B).char*str;str=I am a boy!”;str二 I am a boy!”;C).char*str=I am a boy!”;D).char str20=I am a boy!;