计算机二级C习题册

上传人:痛*** 文档编号:130523279 上传时间:2022-08-05 格式:DOC 页数:67 大小:424KB
收藏 版权申诉 举报 下载
计算机二级C习题册_第1页
第1页 / 共67页
计算机二级C习题册_第2页
第2页 / 共67页
计算机二级C习题册_第3页
第3页 / 共67页
资源描述:

《计算机二级C习题册》由会员分享,可在线阅读,更多相关《计算机二级C习题册(67页珍藏版)》请在装配图网上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流计算机二级C习题册.精品文档.第一部分:选择题(40分,2分/小题)第一章 程序设计概述 第二章 C语言概述1、下面关于C语言的叙述中,正确的是()A. 每行只能写一条语句 B. 程序中必须包含有输入语句C. main函数必须位于文件的开头 D. 每条语句最后必须有一个分号2、下面关于C语言的叙述中,错误的是()A. 若一条语句较长,也可分写在下一行上 B. 构成C语言源程序的基本单位是表达式C. C语言源程序中大、小写字母是有区别的D. 一个C语言源程序可由一个或多个函数组成3、下面叙述错误的是( )A. 所有语句都必须以分号;结束 B.

2、语句是构成C语言源程序的基本单位C. C语言源程序必须包含一个main()函数 D. 注释部分在程序编译和运行时不起作用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. 本程序的第一个函数开始,到最后一个函数结束

3、B. 本程序的main函数开始,到main函数结束C. 本程序的main函数开始,到最后一个函数结束D. 本程序的第一个函数开始,到main函数结束8、结构化程序设计的三种基本结构是()A. 函数结构、分支结构、判断结构 B. 函数结构、嵌套结构、平行结构C. 顺序结构、分支结构、循环结构 D. 分支结构、循环结构、嵌套结构9、调试程序是指对程序进行()A. 编辑 B. 编译 C. 查错和排错 D. 连接10、C语言中,复合语句的构成是将一系列语句置于()A. begin与end之间 B. 一对圆括号“( )”之间C. 一对花括号“ ”之间 D. 一对方括号“ ”之间11、构成C语言源程序的基

4、本单位是()A. 语句 B. 过程 C. 表达式 D. 函数12、以下叙述正确的是( )。A.注释部分可单独占用一行,也可跟在语句的后面 B.函数体定界符也可用一对方括号 C.C语言源程序每一行就是一条语句D.由于C语言源程序都是从main()函数开始执行,所以main()函数必须位于程序文件最前面13、( )是结构化程序设计应遵循的原则。A.选用的控制结构可有多个入口和一个出口B.不可使用嵌套基本控制结构表示复杂程序逻辑C.应使用顺序、选择、循环三种基本控制结构表示程序逻辑D.为提高程序效率,应尽量使用goto语句14、描述一个算法可以有不同的方式,常见的有( )。A.汇编语言、高级语言和低

5、级语言 B.自然语言、流程图和伪代码C.机器语言、汇编语言和高级语言 D.高级语言、自然语言和伪代码15、C源程序的编译是指对源程序( )A.进行录入与编辑 B.生成以二进制代码形式表示的目标程序 C.进行查错与解释 D.进行连接与运行第三章 数据类型、运算符与表达式1、在C语言中,正确的用户标识符是()A. 3f B. _for C. struct D. _f.52、C语言的基本数据类型包括()A. 整型、实型、字符型 B. 整型、实型、字符型、逻辑型C. 整型、字符型、逻辑型 D. 整型、实型、逻辑型3、以下()是正确的常量A. E-5 B. 1E5.1 C. a12 D. 32766L4

6、、以下()是正确的变量名A. a.bee B. p11 C. int D. p_115、以下()是正确的字符常量A. “c” B. /” C. W D. “32a”6、以下()是不正确的字符串常量A. abc B. “1212” C. “0” D. “ “7、C语言的整型数据在内存中的存储形式是()A. 原码 B. 反码 C. 补码 D. ASCII码8、以下()是正确的浮点数A. e3 B. .62 C. 2e4.5 D. 1239、下列不属于C语言关键字的是()A. continue B. integer C. static D. signed10、C语言的字符型数据在内存中的存储形式是(

7、)A. 原码 B. 补码 C. 反码 D. ASCII11、在C语言中,变量所分配的内存空间大小是()A. 由变量的类型决定 B. 由用户自己决定 C. 任意的 D. 均为两个字节12、关于C语言数据类型,叙述正确的是( )A.变量使用前应定义相应的数据类型 B.不允许使用空类型 C.指针类型属于基本类型 D.结构类型并不是构造类型13、Turbo C中,基本数据类型存储空间长度的排列顺序是( )A.charintlong intfloatdouble B.char=intlong intfloatdouble C.charintlong intfloat=double D.char=intl

8、ong int=y=500的C语言表达式为()A. (y=500) B. (y=500)C. 800=y=500 D. (y=500)51、若有定义:int x=3,y=4;则表达式!x|y的值为()A. 1 B. 0 C. 3 D. 452、若有定义:int i=7,j=8;则表达式i=j|ij的值为()A. 1 B. 变量i的值 C. 0 D. 变量j的值53、若希望当a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为”假”。则不能满足要求的表达式是()A. a%2=1 B. !(a%2=0) C. !(a%2) D. a%254、若有定义:int x=3,y=4,z=5;则

9、值为0 的表达式是()A. x&y B. x=yC. x|y+z&y-z D. !(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、以下运算符中优先级最低的是()A. D. |58、已知double a=5.2;则正确的赋值表达式是()A. a+=a-=(a=4)*(a=3) B. a=a*3=2C. a%3 D. a=double(-2)59、已知char a=R;则正确的赋值表

10、达式是()A. a=(a+)%4 B. a+2=3 C. a+=256- D. a=07860、已知int a=R;则正确的表达式是()A. a%10 B. 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-4 B. x*=y C. x=y+4 D. x+=y62、若有定义:float x=3.5,int z=8;则表达式x+z%3/4的值为()A. 3。75 B. 3.5 C. 3 D. 463、若已定义:int x,y; 则下列不能正确表示数学关系式|x-y|5的表达式是( )A.

11、(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.5 B. 3.0 C. 2.5 D. 2.065、若有定义:int b=7;float a=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)%4的值是()A. 2.5 B. 3.5 C. 4.5 D. 5.566、以下程序的运行结果是()#define M(a,b) a*bmain() int x=3,y=2,s1,s2; s1=M(x+y,

12、x-y); s2=M(x-y,x+y);printf(%d,%dn,s1,s2);A. -1,7 B. 5,5 C. 7,-1 D. 5,-567、以下叙述中,正确的是()A. “#define PRICE=30”定义了与30等价的符号常量PRICEB. 预编译处理命令行都必须以“#”开头C. 程序中使用带参的宏时,参数类型要与宏定义时一致D. 宏名只能包含大写字母和数字字符68、以下叙述中,正确的是()A. 宏展开不占用运行空间,只占用编译时间B. 预编译处理命令行必须以分号结束C. 一个源程序只能有一个预编译处理命令行D. 使用带参数的宏定义时,应该说明每个参数的数据类型69、以下的叙述中

13、不正确的是()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. 2 B. 3 C. 4 D. 671、下列#include命令中,正确的是()A. #inclue string.h B. #include string.h C. #include (string.h) D. #include72、下面程序的输出结果是()

14、#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 ADD(x) x+xmain() int m=1,n=2,

15、k; k=ADD(m+n)*3; printf(%d,k);A. 9 B. 10 C. 12 D. 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,10 B. 1000,10 C. 10,1000 D. 1000,100076.在对无符号数的位运算中,操作数左移一位相当于()。A.操作数除以2B.操作数乘以2C.操作数除以4D.操作数乘以477.若有定义:int a=20,

16、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=0; B.if(ab)

17、 | (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; n=2;5、

18、以下程序段运行时,若从键盘输入10,则输出结果是()int a;scanf(“%d”,&a);if(a+10) printf(“%dn”,a);else printf(“%dn”,+a);A. 2 B. 11 C. 3 D. 126、以下程序的运行结果是()void main() int x,y=1,z; z=-1; if(z=0) z=-z; else x=y0?3:5; printf(“%dn”,x);A. -1 B. 3 C. 1 D. 57、对于整型变量x,下属if语句()与赋值语句:x=x%2=0?1:0;不等价。A. if(x%2!=0) x=0;else x=1; B. if(x

19、%2) x=1;else x=0;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. 15 B. 17 C. 18 D. 199、若有定义:int a=1,b=2,c=3;则执行以下程序段后a,b,c的值分别为()if(a6) printf(“%dn”,n); else printf(“%dn”,+n);A. 4 B. 5 C. 6

20、D. 716、下面关于switch语句的叙述中,错误的是()A. case后面的表达式可以是关系表达式B. switch语句是多分支选择语句C. 每一个case后面的值必须互不相同,否则会出现矛盾的现象D. 在执行一个case分支后,可用一个break语句使流程跳出switch语句17、若有定义:int a=1,b=2,c=3;则以下程序段运行后c的值为()if(ab) c=a*b;else c=a-b;A. 2 B. 0 C. 1 D. -118、若有定义:int x;以下不会产生死循环的是()A. for(;(x=getchar()!=n;); B. while(1)x+;C. for(i

21、=10;i+); D. for(;x+=1);19、在循环语句的循环体中,break语句的作用是()A. 暂停程序的运行 B. 结束本次循环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”,cou

22、nt);A. 4次 B. 10次 C. 16次 D. 20次22、在c语言中while循环和do-while循环的主要区别是()A. do-while循环体内可以使用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. 10 B. 0 C.

23、 1 D. 无限24、以下程序段运行后变量n的值为()int i=1,n=1;for(;i3;i+)continue;n=n+i;A. 4 B. 3 C. 2 D. 125、有以下程序: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. 11122 B. 01222 C. 013020 D. 12026、以下程序的运行结果是()void main() int sum=0,item=0; while

24、(item=6) break;printf(“%dn”,sum);A. 10 B. 15 C. 6 D. 727、以下程序的运行结果是()voin main() int sum=0,item=0; while(item5) item+;if(item=2) continue; sum+=item;printf(“%dn”,sum);A. 10 B. 13 C. 15 D. 128、以下程序段执行后变量sum的值为()int i,j=1,sum=0;for(i=1,i=3,i+) sum+=j; j+;A. 5 B. 3 C. 6 D. 429、以下程序的运行结果是()#includemain(

25、) int y=10; do y-; while(-y); printf(%dn,y-);A. 1 B. 2 C. -1 D. 030、下列程序段运行时,语句k+=2; 执行的次数是( )。 int i,k=0; for(i=7;i3;i-,i-) k+=2;A.3 B.2 C.1 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:

26、 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 5 B. 1 2 3 4 5 C. 11 12 13 14 15 D. 11 12 3 4 510、下面关于数组的叙述中,正确的是()A. 数组必须先定义,然后使用 B. 定义数组时,可不加类型说明符C. 定义数组后

27、,可通过赋值运算符“=”对该数组名直接赋值D. 在数据类型中,数组属于基本类型11、以下程序段的运行结果是()int i=0,a=6,5,3,7;do ai+;while(ai4);for(i=0;i4;i+) printf(%d,ai);A. 6537 B. 7563 C. 7537 D. 567312、有如下程序段:int t3=1,2,3,4,5,6,7,8,9,10,11,12;printf(%dn,t21);则执行该程序段后输出结果是()A. 8 B. 7 C. 4 D. 213、以下程序段运行后s的值是()int a33=1,2,3,1,2,3,1,2,3;int i,j,s=1;

28、for(i=0;i3;i+)for(j=i;j3;j+) s*=aij;A. 18 B. 108 C. 2 D. 1214、以下不能对二维数组arr进行正确初始化的语句是()A. int arr23=0; B. int arr3=1,2,3,4,5;C. int arr23=1,2,3,4,5,6; D. int arr23=1,3,4,5;15、若有定义:int a34=1,2,0,1,2,3;则a11的值为()A. 0 B. 1,2 C. 1 D. 316、若有定义:int a33;则表达式&a21-a的值为()A. 7 B. 8 C. 6 D. 917、若有定义:int i=0,x=0;

29、int a33=1,2,3,4,5,6,7,8,9;则以下程序段运行后x的值为()for(;i3;i+) x+=ai2-i;A. 0 B. 12 C. 15 D. 1818、若有定义int a23;则对数组元素的非法引用的是()A. a01/2 B. a11 C. a4-40 D. a0319、以下数组定义中,正确的是()A. int a2=1,2,3,4,5; B. int a2=0,;C. int a22=1,2,3; D. int a=1,2,3,4;20、若有定义int a3=1,2,3,4,5,6,7,8,9;则表达式sizeof(a)/sizeof(a0)的值为()A. 3 B.

30、4 C. 5 D. 921、以下程序段运行后s的值是()int a33=1,2,3,4,5,1,2,3,4;int i,j,s=1;for(i=0;i3;i+)for(j=i+1;j3;j+) s*=aij;A. 6 B. 120 C. 24 D. 48022、设已定义:int a4=0,0;则下列描述错误的是()A. 数组a的每个元素都可得到初值0 B. 二维数组a的第一维大小为1C. 数组a的行数为1 D. 只有元素a00和a01可得到初值0,其余元素均得不到初值023、下列程序段的运行结果是( )。int a=1,3,4,6,9,i,x=1; for(i=0;i3;i+) x+=ai+1

31、; printf(%dn,x);A.9 B.14 C.15 D.1024、下列程序段的运行结果是( )。 int a =8,7,6,5,4,3,2,1,i,sum=0;for(i=0;i8;i+)if(i=3) sum+=ai;else sum-=ai;printf(%dn,sum);A.0 B.16 C.10 D.1525、下列程序段的运行结果是( )。 int a =0,1,2,3,4,5,6,7,8,9,i=0,t;while(i=7) t=ai; ai=ai+2; ai+2=t; i+=2; for(i=0;i10;i+) printf(%d,ai);A.0123456789 B.21

32、43658709 C.2468013579 D.135792468026、下列程序段的运行结果是( )。 int a=2,4,6,8,10,i; for(i=0;i4;i+) ai=ai+1+2; for(i=0;i5;i+) printf(%d ,ai);A.4 6 8 10 10 B.4 6 8 10 12 C.6 8 10 12 10 D.6 8 10 12 1427、下列程序段的运行结果是( )。 int a=6,5,4,3,2,1,i; for(i=0;i6;i+) if(i%2) ai+=2; for(i=0;i6;i+) printf(%d ,ai);A.6 7 4 5 2 3

33、B.8 5 6 3 4 1 C.8 7 6 5 4 3 D.6 7 6 5 4 528、以下程序段运行的结果是( )。int a3=1,2,3,4,5,6,7,8,9;printf(%dn,a12);A.2 B.5 C.6 D.829、若有定义: int a22;则表达式sizeof(a)的值为( )。A.0 B.1 C.4 D.830、若有定义: int a3=1,2,3,4,5; 则以下描述中正确的是( )。A.数组a包含5个元素 B.数组a的第一维大小可以取任意值 C.数组a的行数为5 D.元素a02的初值为3第六章 指针1、设有以下语句,则()是对a数组元素的不正确引用,其中0=i10。 int a10=0,1,2,3,4,5,6,7,8,9

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!