国家二级C语言机试(选择题)模拟试卷284
选择题
1.在线性表的链式存储结构中,其存储空间一般是不连续的,并且( )。(C)
A. 前件节点的存储序号小于后件节点的存储序号
B. 前件节点的存储序号大于后件节点的存储序号
C. 前件节点的存储序号可以小于也可以大于后件节点的存储序号
D. 以上三种说法均不正确
解析:在线性表的链式存储结构中,各数据节点的存储序号是不连续的,并且各节点在存储空间中的位置关系与逻辑关系也不一致,因此前件节点的存储序号与后件节点的存储序号之间不存在大小关系。
2.在E—R图中,用来表示实体联系的图形是( )。(C)
A. 椭圆形
B. 矩形
C. 菱形
D. 三角形
解析:在E—R图中,实体集用矩形,属性用椭圆,联系用菱形。
3.一个栈的初始状态为空,现将元素A、B、C、D、E依次入栈,然后依次退栈三次,并将退栈的三个元素依次入队(原队列为空),最后将队列中的元素全部退出。则元素退队的顺序为(C)
A. ABC
B. CBA
C. EDC
D. CDE
解析:栈是根据先进后出的原则组织数据,所以退栈三次的元素依次为E、D、C;队列是根据先进先出的原则组织数据的,所以退队的顺序依次为E、D、C,所以选项C正确。
4.有以下程序:
#include
double fun(double a)
{
double x;
x=a一(int)a;
return x;
}
main()
{
double a=3.1415;
printf(“%f\n”,fun(a));
}
程序的运行结果是( )。(A)
A. 0.141500
B. 3.141500
C. 30000000
D. 0.000000
解析:这里考查了强制转换的概念。在fun函数中,x=a一(int)a,表示x取值为a的小数部分,因此,输入a为3.1415,输出x=0.141500,故A选项正确。
5.以下选项中,当x为大于1的奇数时,值为0的表达式是(B)
A. x/2
B. x%2=0
C. x%21=0
D. x%2=1
解析:因为x的值为大于1的奇数,所以x除以2的余数等于1。所以选项B等于关系表达式的结果为假,即等于0。
6.有以下程序
main() (
int x=1,y=0;
if(!x)y++;
else if(x==0)
if(x)y+=2;
else y+=3;
printf(\\(B)
A. 2
B. 0
C. 1
D. 3
解析:x=1,if和else if的条件都不满足,故y值不改变输出。
7.若有定义语句:char s[10]=“1234567\0\0”;,则strlen(s)的值是( )。(A)
A. 7
B. 8
C. 9
D. 10
解析:strlen()函数是计算字符串长度时,遇到结束标识为止,且长度不包括结束标识。本题中的字符串从第一个字符开始,遇到第一个结束标识’\0’为止,注意’\0’不占字符串长度,所以字符串长度为7,因此A选项正确。
8.数字字符0的ASCII值为48,若有以下程序,程序运行后的输出结果是
main()
{char a=’1’,b=’2’;
printf(\\(C)
A. 3,2
B. 50,2
C. 2,2
D. 2,50
解析:本题主要考查ASCII码和自加运算。第一个printf语句中,是以字符形式输出b++的值,++放在变量的后面是先使用然后自增,因此第一个printf输出值是2,然后b的值变成’3’。在第二个printf语句中,b的值为’3’,a的值为’1’,所以b-a的值为2。
9.某系统总体结构如下图所示
(A)
A. 层次结构
B. 网状结构
C. 分支结构
D. 循环结构
解析:层次结构(hierarchy)是一种操作系统的组织结构,其提供了一种隔离操作系统各层功能的模型。其包括归属层次结构 dissonance-attribution hierarchy维度层次结构 dimension hierarchy层次结构数据库 hierarchical database等。
网状结构这一名词来自早期解剖学家用光学显微镜对脑干中央区网络状外观的描述,在光镜下这部分组织学的特点是神经细胞分散,形态各异,大小不等,神经纤维交错穿行其间,形成一种灰白质交织的结构,称之为网状结构。
分支结构的执
10.以下叙述中错误的是(B)
A. typedef的作用是用一个新的标识符来代表已存在的类型名
B. typedef说明的新类型名必须使用大写字*,否则会出编译错误
C. 可以用typedef说明的新类型名来定义变量
D. 用typedef可以说明一种新的类型名
解析:typedef语句的作用仅仅是用“标识符”来代表已存在的“类型名”,并未产生新的数据类型,原来类型名依然有效。为了便于识别,一般习惯将新的类型名用人写字*表示。
11.下面选项中关于位运算的叙述正确的是(D)
A. 位运算符都需要两个操作数
B. 左移运算的结果总是原操作数据2倍
C. 右移运算时,高位总是补0
D. 位运算的对象只能是整型或字符型数据
解析:位运算则是以位(bit)一级进行的运算,位运算符中除“~”以外,均为二元运算符,即要求两侧各有一个运算量,运算量只能是整型或字符型的数据,不能为实型数据。其中右移时,右端(低位)移出的二进制数舍弃,左端(高位)移入的二进制数分两种情况:对于无符号整数和正整数,高位补0;对于负整数,高位补1。而左移运算在没有溢出的前提下每移动一位,相当于原数据的2倍。
12.有以下程序
main() {
int i=1;
i = i^i;
printf(\\(B)
A. -1
B. 0
C. 1
D. 7
解析:按位异或(^)的运算规则是:参与运算的两个运算数中相对应的二进制位上,若数相同,则该位的结果为0;若数不同,该位的结果为1。本题中表达式i^i的值必为0,因为i的各个位置的二进制值相同。
13.定义学生选修课程的关系模式:SC(S#,Sn,C#,Cn,G)(其属性分别为学号、姓名、课程号、课程名、成绩)该关系的范式最高达到(A)
A. 1NF
B. 2NF
C. 3NF
D. BCNF
解析:第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能
本文档预览:3600字符,共7988字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载