全国计算机等级考试二级C语言真题库之选择题18.docx
- 文档编号:10930136
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:22
- 大小:38.46KB
全国计算机等级考试二级C语言真题库之选择题18.docx
《全国计算机等级考试二级C语言真题库之选择题18.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言真题库之选择题18.docx(22页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试二级C语言真题库之选择题18
全国计算机等级考试等级考试真题库之选择题(18)
1.下列叙述中正确的是
A)算法的效率只与问题的规模有关,而与数据的存储结构无关
B)算法的时间复杂度是指执行算法所需要的计算工作量
C)数据的逻辑结构与存储结构是一一对应的
D)算法的时间复杂度与空间复杂度一定相关
参考答案:
B
【解析】算法的效率与问题的规模和数据的存储结构都有关,A错误。
算法的时间复杂度,是指执行算法所需要的计算工作量,B正确。
由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此数据的逻辑结构和存储结构不是一一对应的,C错误。
算法的时间复杂度和空间复杂度没有直接的联系,D错误。
2.下列叙述中正确的是
A)线性表链式存储结构的存储空间一般要少于顺序存储结构
B)线性表链式存储结构与顺序存储结构的存储空间都是连续的
C)线性表链式存储结构的存储空间可以是连续的,也可以是不连续的
D)以上说法均错误
参考答案:
C
【解析】线性表的顺序存储结构具备如下两个基本特征:
(1)线性表中的所有元素所占的存储空间是连续的;
(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
用一组任意的存储单元来依次存放线性表的结点,这组存储单元既可以是连续的,也可以是不连续的,甚至是零散分布在存中的任意位置上的。
因此C正确。
3.某二叉树共有12个结点,其中叶子结点只有1个。
则该二叉树的深度为(根结点在第1层)
A)3
B)6
C)8
D)12
参考答案:
D
【解析】二叉树中,度为0的节点数等于度为2的节点数加1,即n2=n0-1,叶子节点即度为0,n0=1,则n2=0,总节点数为12=n0+n1+n2=1+n1+0,则度为1的节点数n1=11,故深度为12,选D。
4.对长度为n的线性表作快速排序,在最坏情况下,比较次数为
A)n
B)n-1
C)n(n-1)
D)n(n-1)/2
参考答案:
D
【解析】快速排序最坏情况就是每次选的基准数都和其他数做过比较,共需比较(n-1)+(n-2)+…+1=n(n-1)/2,选D。
5.结构化程序设计中,下面对goto语句使用描述正确的是
A)禁止使用goto语句
B)使用goto语句程序效率高
C)应避免滥用goto语句
D)以上说法均错误
参考答案:
C
【解析】结构化程序设计中,要注意尽量避免goto语句的使用,故选C。
6.下面不属于软件测试实施步骤的是
A)集成测试
B)回归测试
C)确认测试
D)单元测试
参考答案:
B
【解析】软件测试主要包括单元测试、集成测试、确认测试和系统测试。
7.下面不属于软件需求分析阶段主要工作的是
A)需求变更申请
B)需求分析
C)需求评审
D)需求获取
参考答案:
A
【解析】需求分析阶段的工作可概括为4个方面:
①需求获取。
②需求分析。
③编写需求规格说明书。
④需求审评。
8.一般情况下,当对关系R和S进行自然连接时,要求R和S含有一个或者多个共有的
A)记录
B)行
C)属性
D)元组
参考答案:
C
【解析】自然连接是一种特殊的等值连接,它满足下面的条件:
①两关系间有公共域;②通过公共域的等值进行连接,选C。
9.
A)选择
B)差
C)交
D)并
参考答案:
B
【解析】关系T是关系R的一部分,并且是关系R去掉R和S相同的元素,符合差操作。
10.有表示公司和职员及工作的三表,职员可在多家公司兼职。
其中公司C(公司号,公司名,地址,注册资本,法人代表,员工数),职员S(职员号,,性别,年龄,学历),工作W(公司号,职员号,工资),则表W的键(码)为
A)公司号,职员号
B)职员号,工资
C)职员号
D)公司号,职员号,工资
参考答案:
A
【解析】由于职员可以再多加公司兼职,表W的键(码)应为公司关系和职员关系的主码,即公司号和职员号。
11.以下叙述中正确的是
A)每个后缀为.C的C语言源程序都可以单独进行编译
B)每个后缀为.C的C语言源程序都应该包含一个main函数
C)在C语言程序中,main函数必须放在其他函数的最前面
D)在C语言程序中,只有main函数才可单独进行编译
参考答案:
A
【解析】一个普通的C函数可以单独作为一个C的程序文件存在被包含到其他程序中,每个后缀为.C的C语言源程序都可以单独进行编译,所以B、D错误。main函数可以放在程序的开始,中间,最后,所以C错误。
12.C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是
A)关键字可用作用户标识符,但失去原有含义
B)预定义标识符可用作用户标识符,但失去原有含义
C)在标识符写字母和小写字母被认为是相同的字符
D)用户标识符可以由字母和数字任意顺序组成
参考答案:
B
【解析】关键字不可用作C语言的标识符,所以A错误。在标识符写字母与小写字母作为不同字符处理,所以C错误。标识符由下划线、字母、数字组成,且必须以下划线和字母开始,所以D错误。
13.以下选项中合法的常量是
A)999
B)2.7e
C)0Xab
D)123E0.2
参考答案:
C
【解析】A选项中含有非法的空格,所以错误。C语言中十六进制常量以0x开头,所以C正确。实型常量中e的前后必须均有数据,且其后必须为整数,所以B和D错误。
14.C语言主要是借助以下哪种手段来实现程序模块化
A)定义函数
B)定义常量和外部变量
C)使用丰富的数据类型
D)使用三种基本结构语句
参考答案:
A
【解析】C语言程序的模块化通过函数来体现,所以选择A。
15.以下叙述中错误的是
A)数值型常量有正值和负值的区分
B)常量可以用一个符号名来代表
C)定义符号常量必须用类型名来设定常量的类型
D)常量是在程序运行过程中值不能被改变的量
参考答案:
C
【解析】数值型常量有整型常量,实型常量,不论是整型常量还是实型常量都有正值和负值之分,所以A正确。在C语言的预编译处理中,可以用符号名代表一个常量,定义时不必指定常量类型,所以C错误,B正确。常量的定义就是常量是在程序运行过程中值不能被改变的量,所以D正确。
16.若有定义和语句:
inta,b;
scanf("%d,%d,",&a,&b);
以下选项中的输入数据,不能把值3赋给变量a、5赋给变量b的是
A)3,5,4
B)3,5
C)3,5,
D)3,5
参考答案:
D
【解析】scanf()的格式控制串可以使用其他非空白字符,如本题中的逗号,但在输入时必须输入这些字符,以保证匹配。所以在3和5之间必须输入逗号,不能有其他符号,才能保证a和b的正确赋值。所以选择D。
17.C语言中char类型数据占字节数为
A)1
B)2
C)3
D)4
参考答案:
A
【解析】每个字符变量被分配一个字节的存空间。
因此A选项正确。
18.下列关系表达式中,结果为"假"的是
A)3<=4
B)(3<4)==1
C)(3+4)>6
D)(3!
=4)>2
参考答案:
D
【解析】B选项中,关系表达式(3<4)==1即1==1,结果为真;C选项中,(3+4)>6即7>6,结果为真;A选项中,3<=4结果为真。
D选项中,(3!
=4)>2即1>2,结果为假。
因此D选项正确。
19.若以下选项中的变量a,b,y均已正确定义并赋值,则语确的switch语句是
A)switch(a*a+b*b)
{default:
break;
case3:
y=a+b;break;
case2:
y=a-b;break;
}
B)switch(a+b)
{case1:
case3:
y=a+b;break;
case0:
case4:
y=a-b;
}
C)switch(a+9)
{casea:
y=a-b;
caseb:
y=a+b;
}
D)switcha*b
{case10:
y=a+b;
default:
y=a-b;
}
参考答案:
A
【解析】switch语句,其一般形式为:
switch(表达式){
case常量表达式1:
语句1;
case常量表达式2:
语句2;
…
case常量表达式n:
语句n;
default:
语句n+1;
}
B选项中,case1和case2有错误,;C选项中,casea和caseb不正确,case后面应该跟常量表达式;D选项中,switcha*b,有误。
因此A选项正确。
20.有以下程序
#include
main()
{inta=-2,b=0;
while(a++&&++b);
printf("%d,%d\n",a,b);
}
程序运行后输出结果是
A)0,2
B)0,3
C)1,3
D)1,2
参考答案:
D
【解析】本题重点考察while语句,变量a和b分别赋初值为-2和1,while语句的语义是:
计算表达式的值,当值为真(非0)时,执行循环体语句。
a++即a参与运算后,a的值再自增1。
++b即b自增1后再参与其它运算。
当表达式的值为0时,退出循环,最后输出a和b的值为1和2。
因此D选项正确。
21.设有定义:
intx=0,*p;
紧接着的赋值语句正确的是
A)*p=NULL;
B)p=NULL;
C)p=x;
D)*p=x;
参考答案:
B
【解析】题目中定义指针变量p,指针变量的赋值只能赋予地址,决不能赋予任何其它数据,否则将引起错误。
不允许把一个数赋予指针变量,被赋值的指针变量前不能再加"*"说明符,因此B选项正确。
22.下列叙述中正确的是
A)空字符串不占用存,其存空间大小是0
B)两个连续的单引号('')是合法的字符常量
C)可以对字符串进行关系运算
D)两个连续的双引号("")是合法的字符串常量
参考答案:
D
【解析】字符串常量是由一对双引号括起的字符序列。
A选项描述不正确。
B选项描述的不够完善;字符常量占一个字节的存空间。
D选项正确;字符常量是用单引号括起来的一个字符。
C语言字符串比较不能直接用关系运算符进行正确比较。
可以用字符串比较函数strcmp来实现,C选项是错误的;字符串常量占的存字节数等于字符串中字节数加1。
因此D选项正确。
23.有以下程序
#include
main()
{chara='H';
a=(a>='A'&&a<='Z')?
(a+32):
a;
printf("%c\n",a);
}
程序运行后的输出结果是
A)H
B)h
C)A
D)a
参考答案:
B
【解析】条件运算符构成的选择结构的一般形式为:
表达式1?
表达式2:
表达式3。
其求值规则为:
如果表达式1的值为真,则以表达式2的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。
该题目中首先给字符变量a赋值为'H'。
语句a=(a>='A'&&a<='Z')?
(a+32):
a;即将大写字母变为小写字母。
因此B选项正确。
24.有以下程序
#include
intf(intx);
main()
{inta,b=0;
for(a=0;a<3;a+=1)
{b+=f(a);putchar('A'+b);}
}
intf(intx)
{returnx*x+1;}
程序运行后输出结果是
A)ABE
B)BCD
C)BDI
D)BCF
参考答案:
C
【解析】在函数main()中,第一次执行for循环时,b的值等于1,此时输出字母B;第二次执行for循环时,b的值等于3,此时输出字母D;第三次执行for循环时,b的值等于8,此时输出字母I。
因此C选项正确。
25.设有定义:
intx[2][3];
则以下关于二维数组x的叙述错误的是
A)元素x[0]可看作是由3个整型元素组成的一维数组
B)数组x可以看作是由x[0]和x[1]两个元素组成的一维数组
C)可以用x[0]=0;的形式为数组所有元素赋初值0
D)x[0]和x[1]是数组名,分别代表一个地址常量
参考答案:
C
【解析】x[0]可看作是由3个整型元素组成的一维数组,不可以用语句x[0]=0;为数组所有元素赋初值0。
因此C选项正确。
26.设p是指针变量,语句p=NULL;等价于
A)p='0';
B)p='';
C)p="";
D)p=0;
参考答案:
D
【解析】p=NULL;等价p=0;因此D选项正确。
27.有以下程序
#include
main()
{inta[]={10,20,30,40},*p=a,i;
for(i=0;i<=3;i++){a[i]=*p;p++;}
printf("%d\n",a[2]);
}
程序运行后的输出结果是
A)10
B)20
C)30
D)40
参考答案:
C
【解析】因为指针变量p的初始值指向数组a,所以执行for循环语句后,数组a中的元素的值不变。
因此C选项正确。
28.有以下程序
#include
#defineN3
voidfun(inta[][N],intb[])
{inti,j;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 二级 语言 题库 选择题 18