二级C语言真题 1.docx
《二级C语言真题 1.docx》由会员分享,可在线阅读,更多相关《二级C语言真题 1.docx(28页珍藏版)》请在冰豆网上搜索。
![二级C语言真题 1.docx](https://file1.bdocx.com/fileroot1/2022-10/13/0bdbddfb-ca2c-4e2e-b6f0-0e0b1a1b8b42/0bdbddfb-ca2c-4e2e-b6f0-0e0b1a1b8b421.gif)
二级C语言真题1
二级C语言真题2017年09月-
(1)
(总分:
100.00,做题时间:
90分钟)
一、选择题(总题数:
40,分数:
40.00)
1.设有一个栈与一个队列的初始状态均为空。
现有一个序列的元素为A,B,C,D,E,F,G,H,先分别将序列中的前4个元素依次入栈,后4个元素依次入队;然后分别将栈中的元素依次退栈,再将队列中的元素依次退队。
最后得到的序列为______。
(分数:
1.00)
A.A,B,C,D,H,G,F,E
B.D,C,B,A,H,G,F,E
C.A,B,C,D,E,F,G,H
D.D,C,B,A,E,F,G,H√
解析:
[解析]栈的特点是先进后出,而队列的特点是先进先出。
前4个元素依次进栈为ABCD,出栈后为DCBA,后4个元素入队列为EFGH,出队列也是EFGH,最后得到的序列为DCBAEFGH。
故D选项正确。
2.设某棵树的度为3,其中度为2,1,0的节点个数分别为3,4,15,则该树中总节点数为______。
(分数:
1.00)
A.30
B.22
C.35
D.不可能有这样的树√
解析:
[解析]在树结构中,一个节点所拥有的后件个数称为该节点的度,所有节点中最大的度称为树的度,树中的节点数即为树中所有节点的度数之和再加1。
假设度为3的节点数为n,总节点数为m,m=3×n+2×3+1×4+1,叶子节点数15=m-(3+4+n)。
得m=3n+11,2n=11,n无法得到整数,说明不可能存在这样的树。
故答案为D选项。
3.设二叉树的前序序列为ABDEGHCFIJ,中序序列为DBGEHACIFJ。
则按层次输出(从上到下,同一层从左到右)的序列为______。
(分数:
1.00)
A.ABCDEFGHIJ√
B.DCHEBIJFCA
C.JIHGFEDCBA
D.GHIJDEFBCA
解析:
[解析]二叉树遍历可以分为3种:
前序遍历(访问根节点在访问左子树和访问右子树之前)、中序遍历(访问根节点在访问左子树和访问右子树两者之间)、后序遍历(访问根节点在访问左子树和访问右子树之后)。
二叉树的前序遍历序列为ABDEGHCFIJ,中序序列为DBGEHACIFJ,可知该树A为根节点,右子树节点为CFIJ,左子树节点为BDEGH。
从顶向下从左向右依次为ABCDEFGHIJ,A选项正确。
4.设顺序表的长度为16,对该表进行简单插入排序。
在最坏情况下需要的比较次数为______。
(分数:
1.00)
A.15
B.60
C.30
D.120√
解析:
[解析]简单插入排序在最坏情况下,即初始排序序列是逆序的情况下,比较次数为n(n-1)/2,移动次数为n(n-1)/2。
本题中即16×(16-1)÷2=8×15=120。
故答案为D选项。
5.软件系统总体结构图的作用是______。
(分数:
1.00)
A.描述软件系统结构的图形工具√
B.描述软件系统的控制流
描述软件系统的数据流C.
D.描述软件系统的数据结构
解析:
[解析]软件系统总体结构图是描述软件系统结构的图形工具,它包括软件系统的控制流、软件系统的数据流、软件系统的数据结构等。
故答案为A选项。
6.不属于对象构成成份的是______。
(分数:
1.00)
A.属性
B.规则√
C.方法(或操作)
D.标识
解析:
[解析]一个对象通常可由对象名、属性和操作3部分组成,对象名唯一标识一个对象。
故答案为B选项。
7.十进制整数设为整数类Ⅰ,则下面属于类Ⅰ的实例的是______。
(分数:
1.00)
A.-518√
B.0.518
C.518E-2
D..518
解析:
[解析]类是具有共同属性、共同方法的对象的集合。
-518是整数,0.518是浮点数,518E-2是指数。
故答案为A选项。
8.结构化程序设计原则强调的是______。
(分数:
1.00)
A.自顶向下√
B.可封装性
C.可复用性
D.可恢复性
解析:
[解析]结构化程序设计的原则强调自顶向下、逐步求精、模块化、限制使用goto语句。
故答案为A选项。
9.违背数据流图(DFD)构造规则的是______。
(分数:
1.00)
A.“加工”应既有输入又有输出
B.“数据存储”间有数据流√
C.“数据流”应标识数据流名
D.父图子图是指相邻上下两层的数据流图
解析:
[解析]数据流图(DFD)应遵循以下构造规则。
①对加工处理建立唯一、层次性的编号,且每个加工处理通常要求既有输入又有输出。
②数据存储之间不应有数据流。
③“数据流”应标识数据流名,数据流图的一致性,即输入输出、读写的对应。
④父图、子图关系与平衡规则。
相邻两层DFD之间具有父子关系,子图代表父图中某个加工的详细描述,父图代表子图间的接口。
子图个数不大于父图中的处理个数。
所有子图的输入输出数据流和父图中相应处理的输入输出数据流必须一致。
故本题答案为B选项。
10.关系数据库规范化主要为克服数据库逻辑结构中的插入异常、删除异常以及______。
(分数:
1.00)
A.数据丢失的问题
B.结构不合理的问题
C.数据不一致的问题
D.冗余度大的问题√
解析:
[解析]规范化主要为克服数据库逻辑结构中的插入异常、删除异常、数据冗余以及修改异常。
故本选项。
D题答案为
______。
11.以下叙述中正确的是1.00)(分数:
√A.C语言既可以用来编写系统软件,又可以用来编写应用软件C源程序进行编译B.机器中只要安装有任一种编译程序,就能对C语言提供的库函数,则可以不运行连接程序C.若程序中不使用D.调试程序时若发现语法错误,改正后即可直接运行,无需再次编译
正确;机器中必须安装语言既可以用来编写系统软件,又可以用来编写应用软件,选项A[解析]C解析:
语言源程序中函数的定义和调用不在同一个错误;C源程序进行编译,选项BC语言的编译程序,才能对C错误;调试程序时若发现语法错误,改正后需要重新再次编译,选源文件,就需要使用链接程序,选项CA选项。
项D错误。
本题答案为。
12.以下说法正确的是______)(分数:
1.00种基本结构组成的结构化程序只能解决一些简单的问题A.由3
√3种基本结构组成的结构化程序可以解决任何复杂的问题B.由种基本结构组成的结构化程序只能解决那些可以结构化的问题C.由3
种基本结构组成的结构化程序只能解决一些数学上有解析解的问题D.由3
种基本结构所构成的算法称为结33种基本结构组成的算法可以解决任何复杂的问题,由解析:
[解析]由选项。
种基本结构所构成的程序称为结构化程序,故本题答案为B构化算法,由3。
以下说法正确的是______13.)(分数:
1.00语言标识符中字母、数字和下划线字符必须同时出现A.CB.C语言标识符中仅出现下划线字符是不允许的√C.C语言标识符中可以出现多个字母、数字和下划线字符D.C语言标识符中字母、数字和下划线字符不能同时出现
语言中合法的标识符命名规则是:
标识符可以由字母、数字和下划线组成,并且第一个字解析]C解析:
[C选项。
、D错误。
故本题答案为符必须是字母或下划线,选项A、B。
______以下属于C语言标识符的是14._6_.A#6#.B@6@.CD.
)(分数:
1.00√A.
B.
C.
D.
语言中合法的标识符命名规则是:
标识符可以由字母、数字和下划线组成,并且第一个字解析]C解析:
[中的“$”不合法。
故中的“@”不合法;选项D符必须是字母或下划线,选项B中的“#”不合法;选项CA选项。
本题答案为。
15.以下不能作为合法常量的是______)(分数:
1.00A.1.234e0
B.1.234e04
C.1.234e+4
D.1.234e0.4√后面的eE或eE(e)解析]实数的指数形式为:
尾数整型指数,其中字母E或之前必须要有数字,[解析:
选项。
D后面的指数是小数,不合法。
故本题答案为e中D都正确;选项C、B、A指数必须是整数。
选项.
16.设有如下语句:
intk=0;
k=printf(OK/n);
则以下叙述中正确的是______。
(分数:
1.00)
A.printf必须作为独立语句出现
B.变量k得到的是输出的可见字符个数2
C.变量k得到的是输出字符的总个数3√
D.变量k仍保持初值0
解析:
[解析]printf()函数的原型如下:
externintprintf(constchar*format,...);
它是有返回值的,返回值是打印出来的字符个数,题意中的字符串“OK/n”输出3个字符,所以k的值为3。
故本题答案为C选项。
17.以下说法正确的是______。
(分数:
1.00)
A.赋值语句是一种可执行语句,应当出现在函数的可执行部分√
B.赋值语句可以出现在函数中的任意位置
C.赋值语句可以出现在函数外单独执行
D.赋值语句可以出现在源程序中的任意位置
解析:
[解析]在赋值表达式的尾部加上分号就构成了赋值语句,赋值语句是一种可执行语句,应当出现在函数的可执行部分。
故本题答案为A选项。
18.有以下程序:
#include<stdio.h>
main()
{char*s=
34;
while(*(++s)!
=\/0)
{switch(*s-
{case0:
case1:
putchar(*s+1);break;
case2:
putchar(*s+1);break;
case3:
putchar(*s+1);
default:
putchar(*s+1);break;
}
}
}
程序执行后的输出结果是______。
(分数:
1.00)
A.22345
B.2345
C.12345
D.23445√
解析:
[解析]程序首先定义一个字符指针s,指向一个常量字符串“01234”;接着while循环的循环条件每次将s指向下一个字符,然后判断s指向的字符是否为空字符屜?
,若不是,则执行循环体,将当前字符与ぜ的ASCII码差值作为switch语句的常量表达式,执行对应的case语句;若是则终止循环,程序结束。
所以对于常量字符串“01234”可知:
循环过程中s指向的各个字符分别是:
?
、?
、?
、?
,当*s是?
时,猪尭尰的值为1,执行case1语句,输出*s+1即字符?
;当*s是?
时,猪尭尰的值为2,执行case2语句,输出*s+1即字符?
;当*s是?
时,猪尭尰的值为3,执行case3和default语句,两次输出*s+1级字符?
;当*s是?
时,猪尭尰的值为4,执行default语句,输出*s+1即字符?
;综选项。
D。
故本题答案为23445上所述程序输出结果为:
19.有如下程序:
#include<stdio.h>
main()
{
inti;
for(i=0;i<5;i++)
putchar(9-i%2);
}
程序运行后的输出结果是______。
(分数:
1.00)
A.98989√
B.98765
C.9\8\7\6\5
D.98989
解析:
[解析]main()函数中,for循环遍历i的值为0、1、2、3、4,每次遍历调用putchar()函数输出表达式9-i%2的结果,由运算符优先级可知表达式9-i%