C语言试题题库.pdf
《C语言试题题库.pdf》由会员分享,可在线阅读,更多相关《C语言试题题库.pdf(78页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、选 择 题(每 题1分,共40分)1.以下叙述中正确的是(c x(A)用C程序实现的算法必须要有输入和输出操作(B)用C程序实现的算法可以没有输出但必须要有输入(C)用C程序实现的算法可以没有输入但必须要有输出(D)用C程序实现的算法可以既没有输入也没有输出2.以下叙述中错误的是(C 1(A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出(B)数组名代表的是数组所占存储区的首地址,其值不可改变(C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出 下标越界”的出错信息(D)可以通过赋初值的方式确定数组元素的个数3.以下叙述中错误的是(A(A)用户所定义的
2、标识符允许使用关键字(B)用户所定义的标识符应尽量做到 见名知意(C)用户所定义的标识符必须以字母或下划线开头(D)用户定义的标识符中,大、小写字母代表不同标识4.若有语句:char*line5;,以下叙述中正确的是(A(A)定 义 line是一个数组,每个数组元素是一个基类型为char的指针变量(B)定 义 line是一个指针变量,该变量可以指向一个长度为5 的字符型数组(C)定 义 line是一个指针数组,语句中的*号称为间址运算符(D)定 义 line是一个指向字符型函数的指针5.以 下 不 能 正 确 计 算 代 数 式 值 的 C 语言表达式是(A 1(A)l/3*sin(l/2)*
3、sin(l/2)(B)sin(0.5)*sin(0.5)/3(C)pow(sin(0.5),2)/3(D)l/3.0*pow(sin(1.0/2),2)6.以下叙述中错误的是(C 1(A)C语言中对二进制文件的访问速度比文本文件快(B)C 语言中,随机文件以二进制代码形式存储数据(C)语 句 FILE fp;定义了一个名为fp 的文件指针(D)C 语言中的文本文件以ASCII码形式存储数据7.以下叙述中正确的是(D 1(A)C语言中的文件是流式文件,因此只能顺序存取数据(B)打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖(C)在一个程序中当对文件进行了写操作后,必须先关闭
4、该文件然后再打开,才能读到第1个数据(D)当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失8.若有定义:in tw 3 5;,则以下不能正确表示该数组元素的表达式是(B)(A)*(*w+3)(B)*(w+l)4(C)*(*(w+l)(D)*(&wOO+l)9.若有定义语句:int k23,*pk3;,则以下语句中正确的是(B(A)pk=k;(B)pk0=&kl2;(C)pk=kO;(D)pkl=k;10.若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是(D(A)#define N 10int aN;(B)#define n 5int a 2*n;(C)i
5、nta5+5;(D)int n=10,an;11.有以下程序main()(char s=aeiou,*ps;ps=s;printf(%cn,*ps+4);)程序运行后的输出结果是(B(A)a(B)e(C)u(D)元素s4的地址1 2.要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是(A 1(A)while(ch=getchar()!=N)printf(%c,ch);(B)while(ch=getchar()!=N)printf(%c/ch);(C)while(ch=getchar()=N,)printf%c,ch);(D)while(ch=get
6、char()=N)printf(%c,ch);1 3.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为(B(A)EOF(B)非0值(C)0(D)NULL1 4.有以下程序main()(int y=10;while(y-);printf(y=%dn,y);)程序执行后的输出结果是(B X(A)y=0(B)y=-l(C)y=l(D)whHe构成无限循环15.以下叙述中错误的是(A I(A)可以通过typedef增加新的类型(B)可以用typedef将己存在的类型用一个新的名字来代表(C)用typedef定义新的类型名后,原有类型名仍有效(D)用typede何以为
7、各种类型起别名,但不能为变量起别名16.以下关于简单程序设计的步骤和顺序的说法中正确的是(B I(A)确定算法后,整理并写出文档,最后进行编码和上机调试(B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档(C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档(D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构17.下列叙述中正确的是(D X(A)软件测试应该由程序开发者来完成(B)程序经调试后一般不需要再测试(C)软件维护只包括对程序代码的维护(D)以上三种说法都不对18.下列选项中不属于结构化程序设计方法的是(D X(A)自顶向下(B)逐步求
8、精(C)模块化(D)可复用19.设有以下语句int a=l,b=2,c;c=aA(b 2!l3 4.以下叙述中错误的是(B(A)g e ts 函数用于从终端读入字符串(B)getchar函数用于从磁盘文件读入字符(C)fp u ts 函数用于把字符串输出到文件(D)fw rite 函数用于以二进制形式输出数据到文件35.有以下程序#includemain()int x=l,y=2,z=3;if(xy)if(y=k(B)-k+(C)k%int(f)(D)k=f=m8.有以下程序段int n,t=l,s=0;scanf(%d,&n);do s=s+t;t=t-2;Jwhile(t!=n);为使此程
9、序段不陷入死循环,从键盘输入的数据应该是(D 1(A)任意正奇数(B)任 意 负 偶 数(C)任 意 正 偶 数(D)任意负奇数9.按 照C语言规定的用户标识符命名规则,不能出现在标识符中的是(B X(A)大 写 字 母(B)连 接 符(C)数 字 字 符(D)下划线10.以下不合法的用户标识符是(C X(A)j2_KEY(B)Double(C)4d(D)811.设变量X和y均已正确定义并赋值,以 下if语句中,在编译时将产生错误信息的是(C 1(A)if(x+);(B)if(xy&y!=O);(C)if(xy)x-else y+;(D)if(y0);else x+;12.在C语言中,函数返回
10、值的类型最终取决于(A I(A)函数定义时在函数首部所说明的函数类型(B)return语句中表达式值的类型(C)调用函数时主函数所传递的实参类型(D)函数定义时形参的类型13.有以下函数int fun(char*s)(char*t=s;while(*t+);return(t-s);)该函数的功能是(c x(A)比较两个字符的大小(B)计 算 s 所指字符串占用内存字节的个数(C)计 算 s 所指字符串的长度(D)将 s 所指字符串复制到字符串t 中14.C 语 言 源 程 序 名 的 后 缀 是(B 1(A).exe(B).C(C).obj(D).cp15.以下选项中,合法的一组C 语言数值常
11、量是(B(A)028(B)12.(C).177(D)0 x8A,5e-3 OXa234cl.5 10,000-Oxf 4.5e0Oabc 3.e516.设有条件表达式:(EXP)?i+;j-,则以下表达式中(EXP)完全等价的是(B X(A)(EXP=0)(B)(EXP!=0)(C)(E X P=1)(D)(EXP!=1)17.已有定义:char c;,程序前面已在命令行中包含ctype.h文 件,不能用于判断c 中的字符是否为大写字母的表达式是(B工(A)isupper(c)(B)A=c=,Z,(C)A=c&c=Z(D)c=(2 -32)&(a-32)=2&c=2&c=2&c=6)&(c%2
12、!=l)20.数字字符。的ASCII值为48,若有以下程序main()(char a=l,b=2;printf(%c,b+);printf(%dn,b-a);)程序运行后的输出结果是(C 1(A)3,2(B)50,2(C)2,2(D)2,5021.有以下程序main()(inta=l,2,3,4,5,6,7,8,9,0),*p;for(p=a;pa+10;p+)printf(%d,*p);)程序运行后的输出结果是(A X(A)l,2,3,4,5,6,7,8,9,0,(B)2,3,4,5,6,7,8,9,10,1,(00,1,234,5,6,7,8,9,(D)l,1,1,1,1,1,1,1,1,
13、1,22.有以下程序main()int c=35;printf(%dn,c&c);程序运行后的输出结果是(C X(A)0(B)70(C)350)123.有以下程序#include main()inta=l,2,3,4,y,*p=&a3;-P;y=*p;printf(y=%dn,y);)程序的运行结果是(D X(A)y=0(B)y=l(C)y=2(D)y=324.设有如下程序段char s20=Beijing,*p;p=s;则 执 行p=s;语句后,以下叙述正确的是(A 1(A)可以用*p表 示s0(B)s数组中元素的个数和p所指字符串长度相等(C)s和p都是指针变量(D)数 组s中的内容和指针
14、变量p中的内容相同25.以下叙述中错误的是(C 1(A)在程序中凡是以 铲开始的语句行都是预处理命令行(B)预处理命令行的最后不能以分号表示结束(C)#define MAX是合法的宏定义命令行(D)C程序对预处理命令行的处理是在程序执行之前进行的26.以下选项中不能作为C语言合法常量的是(A X(A)cd(B)O,le+6(C)a(D)01127.若有表达式(w)?(-x):(+y),则其中与w等价的表达式是(D工(A)w=l(B)w=0(C)w!=l(D)w!=028.若有定义语句:double x5=1.0,2.0,3.0,4.0,5.0,*p=x;则错误引用x数组元素的是(B(A)*p(
15、B)乂(C)*(p+1)(D)*x29.以下叙述中错误的是(B 1(A)用户定义的函数中可以没有return语句(B)用户定义的函数中可以有多个return语 句,以便可以调用一次返回多个函数值(C)用户定义的函数中若没有return语 句,则应当定义函数为void类型(D)函 数 的return语句中可以没有表达式30.以下选项中,能用作数据常量的是(D X(A)0115(B)0118(C)1.5el.5(D)115L31.若有定义语句:double x,y,*px,*py,执行了 px=&x,py=&y;之 后,正确的输入语句是(C(A)scanf(%f%f,x,y);(B)scanf(%
16、f%f,&x,&y);(C)scanf(%lf%le,px,py);(D)scanf(%lf%lf,x,y);32.有以下程序#include main()(int x;scanf(%d,&x);if(x=3);else if(x!=10)printf(%dn,x);)程序运行时,输入的值在哪个范围才会有输出结果(B X(A)不等于10的整数(B)大 于3且不等于10的整数(C)大 于3或等于10的整数(D)小 于3的整数33.设有定义:char s81;int i=10;,以下不能将一行(不超过80个字符)带有空格的字符串真确读入的语句或语句鸣(C I(A)gets(s)(B)while(s
17、i+=getchar()!=n);s=0;(C)scant(%s,s);(D)doscanf(%c,&s);while(si+!=n);s=0;34.有以下程序#include int funint x,int y(if(x=y)return(x);else returen(x+y)/2)main()(int a=4,b=5,c=6;printf(%dn,fun(2*a,fun(b,c);)程序运行后的输出结果是(B I(A)3(B)6(C)80)1 235.下列函数的功能是(A 1fun(char*a,char*b)while(*b=*a)!=0)a+,b+;(A)将a所指字符串赋给b所指空
18、间(B)使指针b指 向a所指字符串(C)将a所指字符串和b所指字符串进行比较(D)检查a和b所指字符串中是否有036.下面结构体的定义语句中,错误的是(B入(A)struct ord int x;int y;int z;struct ord a;(B)struct ord int x;int y;int z;struct ord a;(C)struct ord int x;int y;int z;a;(D)struct int x;int y;int z;a;37.下列关于C语言文件的叙述中正确的是(C(A)文件由一系列数据依次排列组成,只能构成二进制文件(B)文件由结构序列组成,可以构成二进
19、制文件或文本文件(C)文件由数据序列组成,可以构成二进制文件或文本文件(D)文件由字符序列组成,其类型只能是文本文件38.下列定义数组的语句中,正确的是(B X(A)int N=10;intxN;(B)#define N 10 int xN;(C)int x0.10;(D)int x;39.下列选项中,能够正确定义数组的语句是(D X(A)int num0.2008;(B)int num;(C)int N=2008;int numN;(D)#define N 2008int numN40.设有定义double a10,*s=a;,一下能够代表数组元素a3的 是(B(A)(*s)3(B)*(s+
20、3)(C)*s3(D)*s+31.对于一个正常运行的C程 序,以下叙述中正确的是(A 1(A)程序的执行总是从main函数开始,在main函数结束(B)程序的执行总是从程序的第一个函数开始,在main函数结束(C)程序的执行总是从main函数开始,在程序的最后一个函数中结束(D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束2.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(D(A)均占4个字节(B)根据数据的大小来决定所占内存的字节数(C)由用户自己定义(D)由 C 语言编译系统决定3.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确
21、的是(D(A)函数的实参和其对应的形参共占同一存储单元(B)形参只是形式上的存在,不占用具体存储单元(C)同名的实参和形参占同一存储单元(D)函数的形参和实参分别占用不同的存储单元4.以下叙述中错误的是(C X(A)改变函数形参的值,不会改变对应实参的值(B)函数可以返回地址值(C)可以给指针变量赋一个整数作为地址值(D)当在程序的开头包含文件stdio.h时,可以给指针变量赋NULL5.设有定义:char 2,3,*q=p;以下不能计算出一个char型数据所占字节数的表达式是(A(A)sizeof(p)(B)sizeof(char)(C)sizeof(*q)(D)sizeof(p 0)6.当
22、用户要求输入的字符串中含有空格时,应使用的输入函数是(C X(A)scanf()(B)getchar()(C)gets()(D)getc()7.若函数中有定义语句:int k;,则(B X(A)系统将自动给k赋初值0(B)这 时k中值无定义(C)系统将自动给k赋初值-1(D)这 时k中无任何值8.设有定义:int x=2;,以下表达式中,值不为6的 是(D(A)x*=x+l(B)x+,2*x(C)x*=(1+x)(D)2*x,x+=29.表 达 式:(int)(double)9/2)-2 的值是(B(A)0(B)3(C)4(D)510.设有定义:int a=l,b=2,c=3;,以下语句中执行
23、效果与其它三个不同的是(C(A)if(ab)c=a,a=b,b=c;(B)if(ab)c=a,a=b,b=c;(C)if(ab)c=a;a=b;b=c;(D)if(ab)c=a;a=b;b=c;11.以下选项中,能用作用户标识符的是(C x(A)void(B)8_8(C)_0_(D)unsigned12.有以下定义语句,编译时会出现编译错误的是(C X(A)char a=a;(B)char a=n;(C)char a=aa;(D)char a=x2d;13.)若有定义语句:int a410,*p,*q4;fi 0i4,则错误的赋值是(A 1(A)p=a(B)qi=ai(C)p=ai(D)p=8
24、4a2l14.以下叙述中正确的是(A)C程序中的注释只能出现在程序的开始位置和语句的后面(C 1(B)C程序书写格式严格,要求一行内只能写一个语句(C)程序书写格式自由,一个语句可以写在多行上(D)用C语言编写的程序只能放在一个程序文件中15.设变量已正确定义并赋值,以下正确的表达式是(C X(A)x=y*5=x+z(B)int(15.8%5)(C)x=y+z+5,+y(D)x=25%5.016.有以下程序段char ch;int k;ch=a;k=12;printf(%c,%d,ch,ch,k);printf(k=%dn,k);已知字符a的ASCII十进制代码为97,则执行上述程序段后输出结
25、果是(D 1(A)因变量类型与格式描述符的类型不匹配输出无定值(B)输出项与格式描述符个数不符,输出为零值或不定值(C)a,97,12k=12(D)a,97,k=1217.计算机能直接执行的程序是(D X(A)源程序(B)目标程序(C)汇编程序(D)可执行程序18.以下选项中正确的定义语句是(C)。(A)double a;b;(B)double a=b=7;(C)double a=7,b=7;(D)double,a,b;19.C源程序中不能表示的数制是(A X(A)二进制(B)八进制(C)十进制(D)十六进制20.若有定义语句:int m=5,4,3,2,l,i=4;,则下面对m数组元素的弓|
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 试题 题库
限制150内