国家二级C语言机试(选择题)模拟试卷341
选择题
1.下列叙述中正确的是(B)
A. 有一个以上根结点的数据结构不一定是非线性结构
B. 只有一个根结点的数据结构不一定是线性结构
C. 循环链表是非线性结构
D. 双向链表是非线性结构
解析:在数据结构中,树这类的数据结构只有一个根结点,但它不是线性结构。
2.线性表的链式存储结构与顺序存储结构相比,链式存储结构的优点有( )。(B)
A. 节省存储空间
B. 插入与删除运算效率高
C. 便于查找
D. 排序时减少元素的比较次数
解析:线性表的顺序存储结构称为顺序表,线性表的链式存储结构称为链表,两者的优缺点如下表所示。
3.若二维数组a有m列,则在a[i][j]前的元素个数为( )。(B)
A. j*m+i
B. i*m+j
C. j*m+i+1
D. i*m+j+1
解析:二维数组的元素可以看成是按矩阵形式存放的,总是先存放第一行的元素,再存放第二行的元素。
数组第一维的下标是i,说明它前面还有i行,有i*m个元素,数组第二维的下标是i,说明它前面还有j列,有j个元素,所以共有i*m+j个元素。
4.以下选项中合法的常量是(D)
A. 2.7e
B. 999
C. 123E0.2
D. 0Xab
解析:Oxab是十六进制表示的常量。
5.以下选项中可用作C程序合法实数的是(C)
A. 3.0e0.2
B. E9
C. .1e0
D. 9.12E
解析:C程序的合法实数有两种表示形式,一种是小数形式,另一种是指数形式,对于用指数形式表示的实数来说,需要注意的是字母e或E之前必须要有数字,且字母e或E后而的指数必须为整数。
6.若有以下程序段
double x=5.16894;
printf(\\(B)
A. 5.175000
B. 5.169000
C. 5.170000
D. 5.168000
解析:(int)(x*1000+0.5)/(double)1000表达式功能,保存数据x的后三何小数,把第四四舍五入。
7.以下叙述中正确的是(A)
A. 整型常量和实型常量都是数值型常量
B. 常量的类型不能从字面形式上区分,需要根据类型名来决定
C. 预定义的标识符是C语言关键字的一种,不能另作它用
D. 只能在函数体内定义变量,其他地方不允许定义变量
解析:整型常量和实型常量都是数值型常量,选项A正确;常量的类型可以从字面上区分,比如整型常量不能有小数点,组成字符为0~9等,选项B错误:预定义标识符,即预先定义并具有特定含义的标识符,可以另作他用,不过更改了原有的含义,选项C错误;变量可以定义住程序中任何的地方,属于不同的变量,选项D错误。
8.以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)(B)
A. printf(\\
B. printf(\\
C. printf(\\
D. printf(\\
解析:在选项B)的输出函数中,大写字符’A’以整型数据的形式输出。
9.下列选项中不属于结构化程序设计方法的是(D)
A. 自顶向下
B. 逐步求精
C. 模块化
D. 可复用
解析:结构化程序设计方法的主要原则可以概括为:自顶向下,步求精,模块化,限制使用goto语句。自顶向下是指程序设计时应先考虑总体,后考虑细节:先考虑全局目标,后考虑局部目标。逐步求精是指对复杂问题应设计一些子目标过渡,逐步细化。模块化是把程序要解决的总目标先分解成分目标,再进一步分解成具体的小目标,把每个小目标称为一个模块。可复用性是指软件元素不加修改成稍加修改便可在不同的软件开发过程中重复使用的性质。软件可复用性是软件工程追求的目标之一,是提高软件生产效率的最主要方法,不属于结构化程序设计方法。
10.度为3的一棵树共有30个结点,其中度为3、1的结点个数分别为3、4。则该树中的叶子结点数为(B)
A. 14
B. 15
C. 16
D. 不可能有这样的树
解析:根据题目可知本树中还有度为2的结点。树的总结点=(度1*个数+度2*个数…)+1,这里我们设度为2的结点数为x,那么30=3*3+2*x+1*4+1=2*x+14,由此可计算出x=8。树的叶子结点数等于总结点减去所有度不为0的结点,也就是30-3-8-4=15。
11.在E—R图中,用来表示实体属性的图形是( )。(A)
A. 椭圆形
B. 矩形
C. 菱形
D. 三角形
解析:构成E—R图的基本要素是实体型、属性和联系,其表示方法为:实体型(Entity)用矩形表示;属性(Attribute)用椭圆形表示,联系(Relationship)用菱形表示,菱形框内写明联系名。
12.下列叙述中正确的是( )。(B)
A. 调用printf()函数时,必须要有输出项
B. 使用putchar()函数时,必须在之前包含头文件stdio.h
C. 在C语言中,整数可以以二进制、八进制或十六进制的形式输出
D. 调用getchar()函数读入字符时,可以从键盘上输入字符所对应的ASCII码
解析:选项A,若printf函数没有输出项,且格式字符串中不含格式信息,则输出的是格式字符串本身,若格式字符串含有格式信息,运行时则出现错误提示;选项C,在C语言中,整数可以以十进制、八进制或十六进制的形式输出;选项D,getchar函数是从标准输入设备读取一个字符。
13.构成计算机软件的是(D)
A. 源代码
B. 程序和数据
C. 程序和文档
D. 程序、数据及相关文档
解析:软件由两部分组成:一是机器可执行的程序和数据:二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。
14.设有课程关系模式如下:
R(C#,Cn,T,Ta)(其中C#为课程号,Cn为课程名,T为教师名,Ta为教师地址)并且假定不同课程号可以有相同的课程名,每个课程号下只有一位任课教师,但每位教师可以有多门课程。该关系模式可进一步规范化为( )。(A)
A. R1(C#,Cn,T),R2(T,Ta)
B. R1(C#,Cn),R2(T,Ta)
C. R1(C#,Cn,Ta),R2(T,Ta)
D. Rl(C#,T),R2(T,Ta)
解析:本题的码为课程号,由于每门课程只有一位任课教师,课程号就可以决定教师名、教师地址。课程号可决定教师名,教师名又决定教师地址,这里有对主属性的传递依赖。可将该关系模式拆分为两个关系模式R1和R2,其中R1包含课程号、课程名、教师名,R2包含教师名、教师地址。其中R1的主码是课程号,R2的主码为教师名。这样两个表都不会出现对主属性的传递依赖。
15.以下叙述中正确的是(A)
A. 赋值语句是一种执行语句,必须放在函数的可执行部分
B. scanf和printf是C语言提供的输入和输出语句
本文档预览:3600字符,共10414字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载