《计算机二级C习题册.doc》由会员分享,可在线阅读,更多相关《计算机二级C习题册.doc(99页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、. .第一局部:选择题40分,2分/小题第一章 程序设计概述 第二章 C语言概述1、下面关于C语言的表达中,正确的选项是A.每行只能写一条语句B. 程序中必须包含有输入语句C. main函数必须位于文件的开头D. 每条语句最后必须有一个分号2、下面关于C语言的表达中,错误的选项是A.假设一条语句较长,也可分写在下一行上B. 构成C语言源程序的根本单位是表达式C. C语言源程序中大、小写字母是有区别的D. 一个C语言源程序可由一个或多个函数组成3、下面表达错误的选项是 A.所有语句都必须以分号;完毕B. 语句是构成C语言源程序的根本单位C. C语言源程序必须包含一个main()函数D. 注释局部
2、在程序编译和运行时不起作用4、C程序中main函数的位置A.必须位于程序文件的最前面B. 必须在系统库函数后面C. 可以在自定义函数后面D. 必须位于程序文件的最后面5、C语言的函数体由括起来A. ( )B. C. D. /* */6、关于C语言的表达中,不正确的选项是A. C程序可由一个或多个函数组成B. C程序必须包含一个main()函数C. C程序的根本组成单位是函数D. 注释说明只能位于一条语句的后面7、一个程序的执行是从A.本程序的第一个函数开场,到最后一个函数完毕B. 本程序的main函数开场,到main函数完毕C. 本程序的main函数开场,到最后一个函数完毕D. 本程序的第一个
3、函数开场,到main函数完毕8、构造化程序设计的三种根本构造是A.函数构造、分支构造、判断构造B. 函数构造、嵌套构造、平行构造C. 顺序构造、分支构造、循环构造D. 分支构造、循环构造、嵌套构造9、调试程序是指对程序进展A.编辑B. 编译C. 查错和排错D. 连接10、C语言中,复合语句的构成是将一系列语句置于A. begin与end之间B. 一对圆括号“ 之间C. 一对花括号“ 之间D. 一对方括号“ 之间11、构成C语言源程序的根本单位是A.语句B. 过程C. 表达式D. 函数12、以下表达正确的选项是 。A.注释局部可单独占用一行,也可跟在语句的后面B.函数体定界符也可用一对方括号 C
4、.C语言源程序每一行就是一条语句D.由于C语言源程序都是从main()函数开场执行,所以main()函数必须位于程序文件最前面13、 是构造化程序设计应遵循的原那么。A.选用的控制构造可有多个入口和一个出口B.不可使用嵌套根本控制构造表示复杂程序逻辑C.应使用顺序、选择、循环三种根本控制构造表示程序逻辑D.为提高程序效率,应尽量使用goto语句14、描述一个算法可以有不同的方式,常见的有 。A.汇编语言、高级语言和低级语言 B.自然语言、流程图和伪代码C.机器语言、汇编语言和高级语言 D.高级语言、自然语言和伪代码15、C源程序的编译是指对源程序A.进展录入与编辑 B.生成以二进制代码形式表示
5、的目标程序 C.进展查错与解释 D.进展连接与运行第三章 数据类型、运算符与表达式1、在C语言中,正确的用户标识符是A.3fB. _forC. structD. _f.52、C语言的根本数据类型包括A.整型、实型、字符型B. 整型、实型、字符型、逻辑型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型3、以下是正确的常量A. E-5B. 1E5.1C. a12D. 32766L4、以下是正确的变量名A. a.beeB. p11C. intD. p_115、以下是正确的字符常量A. “cB. /C. WD. “32a6、以下是不正确的字符串常量A. abcB. “1212”C. “0”D. “
6、“7、C语言的整型数据在内存中的存储形式是A.原码B. 反码C. 补码D. ASCII码8、以下是正确的浮点数A. e3B. .62C. 2e4.5D. 1239、以下不属于C语言关键字的是A. continueB. integerC. staticD. signed10、C语言的字符型数据在内存中的存储形式是A. 原码B. 补码C. 反码D.ASCII11、在C语言中,变量所分配的内存空间大小是A. 由变量的类型决定B. 由用户自己决定C. 任意的D. 均为两个字节12、关于C语言数据类型,表达正确的选项是 A.变量使用前应定义相应的数据类型 B.不允许使用空类型 C.指针类型属于根本类型
7、D.构造类型并不是构造类型13、Turbo C中,根本数据类型存储空间长度的排列顺序是 A.charintlong intfloatdouble B.char=intlong intfloatdouble C.charintlong intfloat=double D.char=intlong int=y=500的C语言表达式为A. y=500)B. y=500)C. 800=y=500D. y=500)51、假设有定义:int x=3,y=4;那么表达式!x|y的值为A. 1B.0C. 3D. 452、假设有定义:int i=7,j=8;那么表达式i=j|ij的值为A. 1B. 变量i的值C
8、. 0D. 变量j的值53、假设希望当a的值为奇数时,表达式的值为“真,a的值为偶数时,表达式的值为假。那么不能满足要求的表达式是A. a%2=1B.!(a%2=0)C.!(a%2)D.a%254、假设有定义:int x=3,y=4,z=5;那么值为0 的表达式是A. x&yB.x=yC.x|y+z&y-zD.!(xy)&!z|1)55、假设已定义:int a=1,b=2,c=2; 那么表达式 (a+b)/1.0/c的值是 。A.1.5 B.1 C.0.0 D.1.056、C语言中,能正确表示条件10x20的逻辑表达式是A. 10x10|x10&10)&(x20)57、以下运算符中优先级最低的
9、是A. D.|58、double a=5.2;那么正确的赋值表达式是A. a+=a-=(a=4)*(a=3)B.a=a*3=2C.a%3D.a=double(-2)59、char a=R;那么正确的赋值表达式是A. a=(a+)%4B.a+2=3C.a+=256-D.a=07860、inta=R;那么正确的表达式是A. a%10B.a=int(3e2)C.2*a=a+D.a=a+a=a+361、设有语句float x=3.0,y=3.0;使x值为6.0的表达式是A. x*=y-4B.x*=yC.x=y+4D.x+=y62、假设有定义:float x=3.5,int z=8;那么表达式x+z%3
10、/4的值为A. 3。75B.3.5C. 3D. 463、假设已定义:int x,y; 那么以下不能正确表示数学关系式|x-y|5的表达式是 A.(x-y)5|(x-y)5 C.(x-y)5 D.(x-y)*(x-y)2564、假设有定义:int a=2,b=3;float x=3.5,y=2.5;那么表达式(float)(a+b)/2+(int)x%(int)y的值是A. 3.5B.3.0C.2.5D.2.065、假设有定义:int b=7;float a=2.5,c=4.7;那么表达式a+(b/2*(int)(a+c)/2)%4的值是A. 2.5B.3.5C.4.5D.5.566、以下程序的
11、运行结果是#define M(a,b) a*bmain() int x=3,y=2,s1,s2; s1=M(x+y,x-y); s2=M(x-y,x+y);printf(%d,%dn,s1,s2);A. -1,7B.5,5C.7,-1D.5,-567、以下表达中,正确的选项是A. “#define PRICE=30”定义了与30等价的符号常量PRICEB.预编译处理命令行都必须以“#开头C. 程序中使用带参的宏时,参数类型要与宏定义时一致D. 宏名只能包含大写字母和数字字符68、以下表达中,正确的选项是A. 宏展开不占用运行空间,只占用编译时间B. 预编译处理命令行必须以分号完毕C. 一个源程
12、序只能有一个预编译处理命令行D. 使用带参数的宏定义时,应该说明每个参数的数据类型69、以下的表达中不正确的选项是A. 宏展开不占用运行时间,只占用编译时间 B. 宏名无类型C. 宏名必须用大写字母表示 D. 预处理命令行都必须以#号开场70、以下程序运行后,屏幕输出为#define MIN(a,b) (a)(b)?(a):(b)main() int x=2,y=3,z; z=2*MIN(x,y);printf(%d,z);A. 2B.3C.4D.671、以下#include命令中,正确的选项是A. #inclue string.hB.#include string.hC.#include (
13、string.h)D.#include72、下面程序的输出结果是 #include #define ONE 1 #define TWO ONE+1 #define THREE TWO+1void main () printf(%dn,THREE-ONE);A. 产生错误 B.1 C. 2 D. 373、以下表达错误的选项是 。A.预处理命令行都必须以#号开场B.#define PER 1.5的作用是用标识符PER代表1.5C.C语言源程序中参加一些预处理命令是为了改良程序设计环境,提高编程效率D.宏定义可出现在源程序中任意适宜的位置,且必须在行末加分号74、以下程序的运行结果是 #define
14、 ADD(x) x+xmain() int m=1,n=2,k; k=ADD(m+n)*3;printf(%d,k);A. 9B.10C.12D.1875、下面程序的运行结果是#define M 10#define S(x) x*x#define F(x) (x*x)main() int n1,n2; n1=1000/S(M); n2=1000/F(M); printf(%d,%dn,n1,n2);A. 10,10B.1000,10C.10,1000D.1000,100076.在对无符号数的位运算中,操作数左移一位相当于。A.操作数除以2B.操作数乘以2C.操作数除以4D.操作数乘以477.假
15、设有定义:int a=20,b=28,c;那么执行语句c=(ab)=a|b;A.00000001 B.00000010 C.00101000 D.01010000第四章 程序控制构造1、以下程序段的运行结果是 。 int a=6,b=5;if (ab+) printf(True: %dn,+a); else printf(False: %dn,b+);A.True: 7 B.False: 6 C.False: 5 D.True: 62、假设已定义 int a,b,c,k; 以下程序段与语句k=(ab?(ac?1:0):0); 功能等价的是。A.if(ab) & (ac) k=1; else k
16、=0; B.if(ab) | (ac) k=1; else k=0; C.if(ab) k=0; else if(ac) k=1; else k=0; D.if(ac) k=1; else if(ab) k=0; else k=0;3、以下程序段的运行结果是 。int x;if(x=3) printf(%dn,x+);else if(x3) printf(%dn,x+2);else printf(%dn,x+3);A.4 B.5 C.6 D.34、以下 不能当作一条语句。A.if(k0) m=1; else n=2; B.m=1,n=2,k=3; C.if(k0); D.if(k=0) m=1
17、; n=2;5、以下程序段运行时,假设从键盘输入10,那么输出结果是int a;scanf(“%d,&a);if(a+10)printf(“%dn,a);elseprintf(“%dn,+a);A. 2B.11C.3D.126、以下程序的运行结果是void main() int x,y=1,z; z=-1; if(z=0) z=-z; else x=y0?3:5;printf(“%dn,x);A. -1B.3C.1D.57、对于整型变量x,下属if语句与赋值语句:x=x%2=0?1:0;不等价。A. if(x%2!=0) x=0;else x=1;B.if(x%2) x=1;else x=0;
18、C.if(x%2=0) x=1;else x=0;D.if(x%2=1) x=0;else x=1;8、以下程序段运行的结果是int a,b,c,x;a=b=c=0;x=15;if(!a) x-;else if(b);if(c) x=3;else x+=4;printf(%dn,x);A. 15B.17C.18D.199、假设有定义:int a=1,b=2,c=3;那么执行以下程序段后a,b,c的值分别为if(a6)printf(“%dn,n);elseprintf(“%dn,+n);A. 4B.5C.6D.716、下面关于switch语句的表达中,错误的选项是A. case后面的表达式可以是
19、关系表达式B.switch语句是多分支选择语句C. 每一个case后面的值必须互不一样,否那么会出现矛盾的现象D. 在执行一个case分支后,可用一个break语句使流程跳出switch语句17、假设有定义:int a=1,b=2,c=3;那么以下程序段运行后c的值为if(ab)c=a*b;elsec=a-b;A. 2B.0C.1D.-118、假设有定义:int x;以下不会产生死循环的是A. for(;(x=getchar()!=n;);B.while(1)x+;C.for(i=10;i+);D.for(;x+=1);19、在循环语句的循环体中,break语句的作用是A. 暂停程序的运行B.
20、 完毕本次循环C. 继续执行break语句之后的循环体各语句D. 提前完毕循环,接着执行该循环后续的语句20、循环语句的循环体中,continue语句的作用是 。A.继续执行continue语句之后的循环体各语句 B.完毕本次循环,并跳出循环C.完毕本次循环 D.立即终止程序运行21、以下程序段运行后,循环体中的“count+=2;语句运行的次数为int i,j,cuont=0;for(i=1;i=4;i+) count+=2;printf(“%d,count);A. 4次B. 10次C. 16次D. 20次22、在c语言中while循环和do-while循环的主要区别是A. do-while
21、循环体内可以使用break语句,while循环体内不能使用break语句B.do-while的循环体至少无条件执行一次,while的循环体不是C.do-while循环体可以使用continue语句,while循环体内不能使用continue语句D.while的循环体至少无条件执行一次,do-while的循环体不是23、以下程序段运行后,循环体运行的次数为int i=0,x;for(;i10;i+) x=x+i;A. 10B.0C.1D. 无限24、以下程序段运行后变量n的值为int i=1,n=1;for(;i3;i+)continue;n=n+i;A. 4B.3C.2D.125、有以下程序:
22、void main() int i; for(i=0;i3;i+) switch(i) case 1:printf(“%d,i); case 2:printf(“%d,i); case 3:printf(“%d,i);执行后输出的结果是A. 11122B.01222C. 013020D. 12026、以下程序的运行结果是void main() int sum=0,item=0; while(item=6) break;printf(“%dn,sum);A. 10B.15C.6D.727、以下程序的运行结果是voin main() int sum=0,item=0; while(item5) i
23、tem+;if(item=2)continue; sum+=item;printf(“%dn,sum);A. 10B.13C.15D.128、以下程序段执行后变量sum的值为int i,j=1,sum=0;for(i=1,i=3,i+) sum+=j; j+;A. 5B.3C.6D.429、以下程序的运行结果是#includemain() int y=10; do y-;while(-y);printf(%dn,y-);A. 1B.2C.-1D.030、以下程序段运行时,语句k+=2; 执行的次数是 。 int i,k=0; for(i=7;i3;i-,i-) k+=2;A.3 B.2 C.1
24、 D.431、以下程序段运行后m的值为 。int i,j,m=0;for(i=1;i=3;i+) for(j=2;j=5) sum+=2; A.10 B.8 C.6 D.433、以下程序段执行时,循环体的执行次数是 。int i=7,a=0;for (i+;i=1; i-) switch(i) case 1: printf(%d, i); break; case 2: printf(%d, i); default : printf(%d, i); A.3221 B.321 C.32211 D.332135、以下程序段的运行结果是 。int a=0, i=1;while(i5);for(i=0;i2);for(i=0;i5;i+)printf(%d,ai);A. 11 2 3 4 5B.1 2 3 4 5C.11 12 13 14 15D.11 12 3 4 510、下面关于数组的表达中,正确的选项是A. 数组必须先定义,然后使用B. 定义数组时,可不加类型说明符C. 定义数组后,可通过赋值运算符“=对该数组名直接赋值D. 在数据类型中,数组属于根本类型11、以下程序段的运行结果是int i=0,a=6,5,3,7;