计算机二级考试C语言考前特训习题.docx
- 文档编号:3362230
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:38
- 大小:1.41MB
计算机二级考试C语言考前特训习题.docx
《计算机二级考试C语言考前特训习题.docx》由会员分享,可在线阅读,更多相关《计算机二级考试C语言考前特训习题.docx(38页珍藏版)》请在冰点文库上搜索。
计算机二级考试C语言考前特训习题
计算机二级考试C语言考前特训习题
一
1、有以下程序:
程序运行后的输出结果是(?
)。
A.127
B.1212
C.1111
D.117
参考答案:
D
参考解析:
本题考查宏定义的用法,宏定义只是做个简单的替换,所以本题中执行f
(2)=(2*N+1)=11,执行f(1+1)=(1+1*N+1)=7。
选项D正确。
2、设栈的存储空间为S(1:
50),初始状态为top=51。
现经过一系列正常的人栈与退栈操作后,top=50,则栈中的元素个数为(?
?
)
A.1
B.0
C.50
D.49
答案:
A
答案解析:
栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。
入栈运算即在栈顶位置插人一个新元素,退栈运算即取出栈顶元素赋予指定变量。
栈为空时,栈顶指针top=0,经过入栈和退栈运算,指针始终指向栈顶元素。
初始状态为top=51,当top=50时,则栈中S(50:
51)存储着元素,51-50=1.元素个数为l。
故本题答案为A选项。
3、以下选项中,当X为大于1的奇数时,值为0的表达式是( ):
A.x%2==0
B.x/2
C.x%2!
=0
D.x%2==1
答案:
D
参考解析:
算术运算符的优先级高于关系运算符的优先级,所以当X为大于1的奇数时,A选项的值为假,即0。
B选项的值为不定值,但绝对不是0。
C选项的值为真,即1。
D选项的值为真,即1。
4、若有定义语句:
inta[2][3],*p[3];
则以下语句中正确的是( )。
A.p=a;
B.p[0]=8;
C.p[0]=&a[1][2];
D.p[1]=&a;
参考答案:
C
参考解析:
A选项错误,因为p是指向一个指针数组,作为数组名,不能指向别的地方。
B选项错误,因为p[0]是一个int指针,也就是int*;而a是一个指向指针的指针int**。
C选项正确,因为p[0]是一个int*a[1][2]是int,&a[1][2]是int*,类型吻合。
D选项错误,因为a作为数组名,不能取地址。
即使能取,P[1]是int*,&a是int***,类型不对。
因此C选项正确。
5、以下不合法的字符常量是( )。
A.'\\'
B.'\"'
C.'\018'
D.'\xcc'
参考答案:
C
参考解析:
转义字符中,八进制的表示形式为\ddd,但是八进制中不能包含数字8,所以C选项不合法。
6、以下选项中能正确定义二维数组的选项是( )。
A.doublea[][3]={2*3};
B.doublea[][3];
C.doublea[][3]={};
D.doublea[2][3]={{1.0},{2.0},{3.0,4.0}};
参考答案:
A
参考解析:
如果第一维的长度没有指定.则定义的同时需要完成初始化,否则不知道分配多大的内存空间给它,所以选项B、C错误;二维数组a[2][3]中只有两个元素,都是一维数组,一维下标最大只能是a[1],所以选项D错误;若完成初始化的二维数组,第一维的长度没有指定,则第一维的大小按如下规则确定:
若初值个数能被第二维大小整除,所得的商就是第一维的大小;若不能整除,则所得的商加l作为第一维的大小,所以选项A相当于:
doublea[1][3]={6};其中a[0][0]=6,其他元素赋值0,故选项A正确,答案为A。
7、以下叙述中正确的是( )。
A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
B)打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
B.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
C.C语言中的文件是流式文件,因此只能顺序存取数据
参考答案:
A
参考解析:
文件一旦使用完毕,应该使用关闭文件函数把文件关闭,以避免出现文件数据丢失等错误,所以选项A正确;若使用fopen打开文件函数打开文件时,指定打开方式为‘a’,则可以向文件追加信息,而不是覆盖原文件内容,故B选项错误;在文件被打开后,使用文件定位函数rewind或fseek函数,可以将文件指针移到文件的任何位置,所以在写操作完成后,可以直接将文件指针定位到文件首,接着读数据,而不需要先关闭文件,再打开读取,故C选项错误;使用文件定位函数可以随机读写文件,故D选项错误。
所以本题答案为A。
8、关于程序模块化,以下叙述错误的是( )。
A.程序模块化可以提高程序运行的效率
B.程序模块化可以提高程序编制的效率
C.程序模块化可以提高程序代码复用率
D.程序模块化可以提高调试程序的效率
参考答案:
A
参考解析:
程序模块化的目的是为了降低程序的复杂度,使程序设计、调试和维护等操作简单化,降低程序的复杂度可以提高程序的编制效率和调试效率,每个模块可以复用,提高了程序代码的复用率,故选项B、C、D正确;程序的运行效率与程序的算法、实现有关,与程序模块化无关,故答案选A。
9、若要通过位运算使整型变量a中的各位数字全部清零,以下选项正确的是( )。
A.a=a&0;
B.a=a10;
C.a=a^0;
D.a=!
a;
参考答案:
A
参考解析:
本题考查位运算符和位运算。
“I”运算符,l|0=1,0|0=0,所以选项B中a变量的各位数字保持不变,故B错误;“”’运算符,l^0=1,O^0=1,所以选项C中a变量的各位数字中,1保持不变,0变成1,故C错误;“!
”运算符,!
1=0,!
0=1,所以选项D中a变量的个位数字中,1变成0,0变成1,故D错误;“&”运算符,l&0=0,0&0=0,所以选项A中各位数字全部清零,故答案为A。
10、程序调试的任务是( ),
A.设计测试用例
B.验证程序的正确性
C.发现程序中的错误
D.诊断和改正程序中的错误
参考答案:
D
参考解析:
程序调试的任务是诊断和改正程序中的错误。
二
1、有以下程序:
程序运行后的输出结果是( )。
A.2
B.4
C.6
D.8
参考答案:
D
参考解析:
本题考查位运算符,题目中将a向左移两位,左移两位表示乘以4,所以答案为8,选项D正确。
2、以下选项中,不合法的C语言用户标识符是( )。
A.a_b
B.AaBc
C.a—b
D.1
参考答案:
C
参考解析:
C语言规定,变量命名必须符合标识符的命名规则,C选项中包含了非法字符"一",所以错误。
标识符由字母、数字或下划线组成,且第一个字符必须是大小写英文字母或者下划线,而不能是数字。
3、结构化程序所要求的基本结构不包括( )。
A.顺序结构
B.GOT0跳转
C.选择(分支)结构
D.重复(循环)结构
参考答案:
B
参考解析:
l966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。
4、有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是( )。
A.自然连接
B.并
C.交
D.差
参考答案:
D
参考解析:
关系T中的元组是关系R中有而关系S中没有的元组的集合,即从关系R中除去与关系S中相同元组后得到的关系T。
所以做的是差运算。
5、软件生命周期中的活动不包括( )。
A.市场调研
B.需求分析
C.软件测试
D.软件维护
参考答案:
A
参考解析:
软件生命周期可以分为软件定义、软件开发与软件运行维护三个阶段。
主要活动阶段是:
可行性研究与计划阶段、需求分析、软件设计、软件实现、软件测试、运行和维护.所以选择A。
6、设文件指针fp已定义,执行语句fp=fopen(“file”,“w”);后,以下针对文本文件file操作叙述的选项中正确的是( )。
A.只能写不能读
B.写操作结束后可以从头开始读
C.可以在原有内容后追加写
D.可以随意渎和写
参考答案:
A
参考解析:
考查文件操作函数fopen的基础知识,以”w”方式打开文件,只能写不能读。
选项A正确。
7、定义学生、教师和课程的关系模式S(S#,Sn,Sd,De,SA)(其属性分别为学号、姓名、所在系、所在系的系主任、年龄);C(C#,Cn,P#)(其属性分别为课程号、课程名、先修课);SC(S#,C#,G)(其属性分别为学号、课程号和成绩),则该关系为( )。
A.第二范式
B.第一范式
C.第三范式
D.BCNF范式
参考答案:
A
参考解析:
范式是符合某一种级别的关系模式的集合。
关系数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式。
目前关系数据库有六种范式:
第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、Boyce—Codd范式(BCNF)、第四范式(4NF)和第五范式(5NF)。
满足最低要求的范式是第一范式(1NF)。
在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。
一般说来,数据库只需满足第三范式(3NF)就行了。
第一范式:
主属性(主键)不为空且不重复,字段不可再分(存在非主属性对主属性的部分依赖)。
第二范式:
如果关系模式是第一范式,每个非主属性都没有对主键的部分依赖。
第三范式:
如果关系模式是第二范式,没有非主属性对主键的传递依赖和部分依赖。
BCNF范式:
所有属性都不传递依赖于关系的任何候选键。
题目中关系模式满足第二范式,但在关系模式s中,学生所在系依赖于学号(S#→Sd),但系本身确定了系主任(Sd→Dc),存在传递依赖,不满足第三范式。
故本题答案为A选项。
8、在数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是( )。
A.人工管理阶段
B.文件系统阶段
C.文件系统阶段和数据库阶段
D.人工管理阶段和文件系统阶段
参考答案:
A
三
1、以下选项中不能在c语言程序中用作用户标识符的是( )。
A.auto
B.scanf
C.Float
D._3_14
参考答案:
A
参考解析:
c语言的标识符是由字母、数字和下划线组成,第一个字符不能是数字,只能是字母或下划线;A、B、C、D都是合法的标识符;auto是C语言的关键字,不能用作用户标识符,故选项A错误;scanf是标准库函数名,可以用作用户标识符,只是在使用标识符的地方不能包含stdio.h头文件,故选项B正确;C语言的标识符区分大小写,F1oat与关键字f1oat不同,可以用作用户标识符,故选项C正确;j-14是合法的用户标识符,故选项D正确;因此答案选A。
2、下列数据结构中,不能采用顺序存储结构的是( )。
A.非完全二叉树
B.堆
C.队列
D.栈
参考答案:
A
参考解析:
根据完全二叉树的性质6,满二叉树和完全二叉树可以按层序进行顺序存储,但一般的二叉树不适用。
堆可以用一维数组来存储也可以用完全二叉树来直观地表示堆的结构。
队列、栈本身就是顺序存储的。
故本题答案为A选项。
4、定义无符号整数类为UInt,下面可以作为类UInt实例化值的是( )。
A.-369
B.369
C.0.369
D.整数集合{1,2,3,4,5}
参考答案:
B
参考解析:
只有B选项369可以用无符号整数来表示和存储。
A选项-369有负号,选项C0.369是小数都不能用无符号整数类存储。
选项D是一个整数集合得用数组来存储。
5、设有语句:
printf(“%2d\n”,2010);,则以下叙述正确的是( )。
A.程序运行时输出2010
B.程序运行时输出20
C.程序运行时输出10
D.指定的输出宽度不够,编译出错
参考答案:
A
参考解析:
printf()函数格式化字符串的一般形式为:
[标志][输出最小宽度][精度][长度]类型。
对于”%2d\n”表示结果以十进制形式输出带符号的整数,数字2表示输出的最小宽度为2,若实际位数多于2,则按实际位数输出,所以程序输出2010,故答案选A。
6、以下选项中,与k=n++完全等价的表达式是( )。
A.k=n,n=n+1
B.n=n+1,k=n
C.k=++n
D.k+=n+1
参考答案:
A
参考解析:
本题考查后缀自增++运算符,n++表示n的当前值参与运算后,再自增1,所以表达式k=n++等价于k=n,n=n+1,故答案选A。
7、有以下程序:
程序运行时,输入的值在哪个范围才会有输出结果( )。
A.小于3的整数
B.不等于10的整数
C.大于3或等于10的整数
D.大于3且不等10的整数
参考答案:
D
参考解析:
根据代码可知如果x的值小于等于3,执行空语句,不进行打印操作。
如果x的值大于3,再判断x的值是否不等于10,如果不等于10就打印x的值,所以选择D选项。
8、有以下部分程序:
以下叙述中错误的是( )。
A.f函数中不可以出现return语句
B.在主函数中,f(5);可以正确调用f函数
C.在主函数后的其他函数可以正确调用f函数
D.f函数无返回值,应当定义成void类型
参考答案:
A
参考解析:
函数说明可以放在调用函数内,如在main函数内部进行说明,则只能在main函数内部才能识别此函数。
所以在main函数中,f(5)可以被正确调用,故选项B正确;由于在main()函数之前也说明了f()函数,所以在main函数后的其他函数也可以正确调用f()函数,故选项C正确;f()函数没有返回值,应该定义成void类型,故选项D正确;虽然f()函数没有返回值,为了在函数体的任意地方退出,可以使用return语句,只是return后不用加返回值,故选项A错误,因此答案为A。
四
(1)下列叙述中正确的是( )。
A.循环队列是队列的一种链式存储结构
B.循环队列是队列的一种顺序存储结构
C.循环队列是非线性结构
D.循环队列是一种逻辑结构
(2)下列关于线性链表的叙述中,正确的是( )。
A.各数据结点的存储空问可以不连续,但它们的存储顺序与逻辑顺序必须一致
B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
C.进行插入与删除时,不需要移动表中的元素
D.以上说法均不正确
(3)一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为( )。
A.16
B.10
C.6
D.4
(4)在下列模式中,能够给出数据库物理存储结构与物理存取方法的是( )。
A.外模式
B.内模式
C.概念模式
D.逻辑模式
(5)在满足实体完整性约束的条件下( )。
A.一个关系中应该有一个或多个候选关键字
B.一个关系中只能有一个候选关键字
C.一个关系中必须有多个候选关键字
D.一个关系中可以没有候选关键字
(6)有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是()。
A.自然连接
B.交
C.除
D.并
(7)下面描述中,不属于软件危机表现的是( )。
A.软件过程不规范
B.软件开发生产率低
C.软件质量难以控制
D.软件成本不断提高
(8)下面不属于需求分析阶段任务的是( )。
A.确定软件系统的功能需求
B.确定软件系统的性能需求
C.需求规格说明书评审
D.制定软件集成测试计划
(9)在黑盒测试方法中,设计测试用例的主要根据是( )。
A.程序内部逻辑
B.程序外部功能
C.程序数据结构
D.程序流程图
(10)在软件设计中不使用的工具是( )。
A.系统结构图
B.PAD图
C.数据流图(DFD图)
D.程序流程图
(1)B【解析】在实际应用中,队列的顺序存储结构一般采用循环队列的形式。
(2)C【解析】一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。
线性链表中数据的插入和删除都不需要移动表中的元素,只需改变结点的指针域即可。
(3)A【解析】根据二叉树的性质3:
在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以本题中度为2的结点是5-1=4个,所以度为l的结点的个数是25-5-4=16个。
(4)B【解析】数据库系统的三级模式是概念模式、外模式和内模式。
概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。
外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述。
内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,所以选择B。
(5)A【解析】实体完整性约束要求关系的主键中属性值不能为空值,所以选择A。
(6)C【解析】如果S=T/R,则S称为T除以R的商。
在除运算中s的域由T中那些不出现在R中的域所组成,对于s中的任一有序组,由它与关系R中每个有序组所构成的有序组均出现在关系T中。
所以本题选择C。
(7)A【解析】软件危机主要表现在:
软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。
所以选择A。
(8)D【解析】需求分析阶段的工作有:
需求获取;需求分析;编写需求规格说明书;需求评审,所以选择D。
(9)B【解析】黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证,黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明,所以本题选择B。
(10)C【解析】系统结构图是对软件系统结构的总体设计的图形显示。
在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。
PAD图是在详细设计阶段用到的。
程序流程图是对程序流程的图形表示,在详细设计过程中用到。
数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以选择C。
五
(1)以下选项中关于程序模块化的叙述错误的是( )。
A.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序
B.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块
C.把程序分成若干相对独立的模块,可便于编码和调试
D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序
(2)以下叙述中正确的是( )。
A.用c语言编写的程序只能放在一个程序文件中
B.c程序书写格式严格,要求一行内只能写一个语句
C.C程序中的注释只能出现在程序的开始位置和语句的后面.
D.C程序书写格式自由,一个语句可以写在多行上
(3)以下不合法的数值常量是( )。
A.8.0E0.5
B.1e1
C.011
D.Oxabcd
(4)以下关于C语言数据类型使用的叙述中错误的是( )。
A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
B.若要保存带有多位小数的数据,可使用双精度类型
C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型
D.整数类型表示的自然数是准确无误差的
(5)设有定义:
intk=0;以下选项的四个表达式中与其他三个表达式的值不相同的是( )。
A.++k
B.k+=1
C.k++
D.k+1
(6)有如下程序段:
intx=12;
doubley=3.141593;
prinff("%d%8.6f",x,y);其输出结果是()。
A.123.141593
B.123.141593
C.12,3.141593
D.123.1415930
(7)已知字符‘A’的ASCII代码值是65,字符变量el的值是‘A’,c2的值是‘D’。
则执行语句printf("%d,%d",cl,c2-2);的输出结果是( )。
A.65,68
B.A.68
C.A,B
D.65,66
(8)以下选项中,当x为大于1的奇数时,值为0的表达式是( )。
A.x%2==0
B.x/2
C.x%2!
=0
D.x%2==1
(9)有以下程序:
程序运行时,输入的值在哪个范围才会有输出结果( )。
A.小于3的整数
B.不等于10的整数
C.大于3或等于10的整数
D.大于3且不等10的整数
(10)有以下程序:
程序运行后的输出结果是( )。
A.0
B.-1
C.1
D.7
六
(1)有以下程序:
程序运行后的输出结果是( )。
A.abcdef
B.ABCDEF
C.aBeDeF
D.AbCdEf
(2)有以下程序:
程序执行后的输出结果是( )。
A.x=4
B.x=8
C.x=6
D.x=12
(3)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是( )。
A.函数的形参和实参分别占用不同的存储单元
B.形参只是形式上的存在,不占用具体存储单元
C.同名的实参和形参占同一存储单元
D.函数的实参和其对应的形参共占同一存储单元
(4)设有以下函数:
(5)若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是( )。
(6)有以下程序:
程序执行后的输出结果是( )。
A.357
B.753
C.369
D.751
(7)有以下程序:
程序运行后的输出结果是( )。
A.4321098765
B.5678901234
C.0987654321
D.0987651234
(8)有以下程序:
程序运行后的输出结果是( )。
A.1,1,2,6,
B.6,2,1,1,
C.6,4,3,2,
D.2,3,4,6,
(9)以下选项中正确的语句组是( )。
(10)若有以下定义和语句:
(1)D【解析】函数的含义是如果i的值能被2整除,以字符格式打印输出i+c的值,如果i的值不能被2整除,打印i+b的值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 考试 语言 考前 习题