1、国家二级( C语言)笔试模拟试卷 264 及答案与解析 1 数据库设计包括两个方面的设计内容,它们是 ( A)概念设计和逻辑设计 ( B)模式设计和内模式设计 ( C)内模式设计和物理设计 ( D)结构特性设计和行为特性设计 2 在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是 ( )。 ( A)并 ( B)交 ( C)投影 ( D)除 3 需求分析阶段的任务是确定 ( A)软件开发方法 ( B)软件开发工具 ( C)软件开发费用 ( D)软件系统功能 4 下列数据结构中,能用二分法进行查找的是 ( )。 ( A)顺序存储的有序线性表 ( B)线性链表 ( C)二叉链表 ( D)
2、有序线性链表 5 下列叙述中正确的是 ( )。 ( A)接口复杂的模块,其耦合程度一定低 ( B)耦合程度弱的模块,其内聚程度一定低 ( C)耦合程度弱的模块,其内聚程度一定高 ( D)上述 3种说法都不对 6 设有下列二叉树: 对此二叉树中序遍历的结果为 _。 ( A) ABCDEF ( B) DBEAFC ( C) ABDECF ( D) DEBFCA 7 数据库 设计包括两个方面的设计内容,它们是 ( A)概念设计和逻辑设计 ( B)模式设计和内模式设计 ( C)内模式设计和物理设计 ( D)结构特性设计和行为特性设计 8 在数据库设计中,将 E-R图转换成关系数据模型的过程属于 ( A
3、)需求分析阶段 ( B)逻辑设计阶段 ( C)概念设计阶段 ( D)物理设计阶段 9 数字字符 “2”的 ASCII码为十进制数 50,数字字符 “5”的 ASCII码为十进制数 ( ) ( A) 52 ( B) 55 ( C) 54 ( D) 53 10 设有如下关系表 _。则下列 操作中,正确的是 _。 ( A) T=RS ( B) T=R S ( C) T=RS ( D) T=R/S 11 对关系 S和关系 R进行集合运算,结果中既包含关系 S中的所有元组也包含关系 R中的所有元组,这样的集合运算称为 ( )。 ( A)并运算 ( B)交运算 ( C)差运算 ( D)除运算 12 有以下
4、程序段 char ch; int k; ch=a; k=12; printf(“%c,%d,“,ch,ch,k); printf(“k=%dn“,k); 已知字符 a的 ASCII码值为 97,则执行上述程序段后输出结果是 ( A)因变量类型与格式描述符的类型不匹配 ,输出无定值 ( B)输出项与格式描述符个数不符 ,输出为零值或不定值 ( C) a,97,12k=12 ( D) a,97,k=12 13 以下叙述中错误的是 ( )。 ( A) C程序在运行过程中所有计算都以二进制方式进行 ( B) C程序在运行过程中所有计算都以十进制方式进行 ( C)所有 C程序都需要编译链接无误后才能运行
5、 ( D) C程序中整型变量只能存放整数,实型变量只能存放浮点数 14 设变量 a、 b、 c、 d和 y都已正确定义并赋值。若有以下 if语句 if(a=b ( B) 0 a=b且 cd ( C) 0 a fun(int x) if(x 2O)fun(x 2); prinff(“ d ”, x); main( ) fun(6), printf(“ n”); 程序运行后的输出结果是【 】。 国家二级( C语言)笔试模拟试卷 264 答 案与解析 1 【正确答案】 A 【试题解析】 数据库设计包括数据库概念设计和数据库逻辑设计两个方面的内容。 2 【正确答案】 B 【试题解析】 关系 R与 S
6、经交运算后所得到的关系是由那些既在 R内又在 s内的有序组所组成,记为 RS,交运算不改变关系表中的属性个数但能减少元组个数。 3 【正确答案】 D 【试题解析】 需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象 (组织、部门、企业等 ),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确 定新系统的功能。选项 A) 软件开发方法是在总体设计阶段需完成的任务;选项 B) 软件开发工具是在实现阶段需完成的任务;选项 C) 软件开发费用是在可行性研究阶段需完成的任务。 4 【正确答案】 A 【试题解析】 二分法查找只适用于顺序存储的有序表。 5 【正确
7、答案】 C 【试题解析】 影响模块之间耦合的主要因素有两个:模块之间的连接形式,模块接口的复杂性。一般来说,接口复杂的模块,其耦合程度要比接口简单的的模块强,所以选项 A的说法错误:耦合程度弱的模块,其内聚程度一定高,选项 B 错误:选项 C正 确。 6 【正确答案】 B 【试题解析】 中序遍历是指首先遍历左子树,然后访问根结点,最后遍历右子树;并且在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树的一种二叉树遍历算法。 7 【正确答案】 A 【试题解析】 数据库设计包括数据库概念设计和数据库逻辑设计两个方面的设计内容。 8 【正确答案】 B 【试题解析】 E-R模型即实体
8、联系模型,是将现实世界的要求转化成实体、联系、属性等几个基本概念,以及它们之间的两种联接关系。数据库逻辑设计阶段包括以下几个过程 :从 E-R图向关系模式转换,逻辑模式规范化及调整、实现规范化和 RDBMS,以及关系视图设计。 9 【正确答案】 D 10 【正确答案】 B 【试题解析】 从图中可以看出,关系 T是关系 R和关系 S 的简单合并,而合并的符号为 u,所以答案为 T=RUS。 11 【正确答案】 A 【试题解析】 关系的并运算是指,由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。 12 【正确答案】 D 【试题解析】 考查 printf 函数的相关知识。如
9、果要一次进行多个变量的定义 ,则在它们之间要用逗号隔开 ,因此选项 A)和 C)错误。在选项 C)中 ,变量 c是一个浮点型指针 ,它只能指向一个浮点型数据 ,不能指向指针变量 b ,所以正确答案为 B)。输出格式控制符 %c表示将变量以字符的形式输出 ;输出格式控制符 %d表示将变量以带符号的十进制整型数输出 ,所以第一个输出语句输出的结果为 a,97;第二个输出语句输出的结果为 k=12。所以选项 D)为正确答案。 13 【正确答案】 B 【试题解析】 C语言中,参与运算的数可以以 2进制、 8进制、 10进制、 16进制等多种形式表示。 14 【正确答案】 C 【试题解析】 考查 if语
10、句的使用。整个语句都是以 ab 为假设的 ,在 ab 的情况下 ,如果 c=d,则 y=0;否则 y=1。所以答案为选项 C)。 15 【正确答案】 C 16 【正确答案】 B 17 【正确答案】 C 18 【正确答案】 A 【试题解析】 长整型常数可用十进制、八进制、十六进制表示,要求在数后边加上 1或 L 作为后缀 (必须加上后缀,否则无法判断该常量是短整型、整型、无符号整型还是长整型 )。选项 B、 c、 D中都无后缀 1或 L,故选项 B、 c、 D都不足合法的长整型常数,只有选现 A中有后缀 L,是合法的长整型常数。 19 【正确答案】 D 【试题解析】 数组 a的存储空间占 4个字
11、节 (结束符 0占一字节 ),数组 a的存储空间占 3个字节。 20 【正确答案】 D 【试题解析】 C语言是一种表达式语言,所有的操作运算都通过表达式来实现,由表达式组成的语句称为表达式语句,它由一个表达式后接一个分号组成。本题中,选项 D中 if(b=0)m=1; n=2;是两个表达式语句。 21 【正确答案】 C 【试题解析】 执行语句 “printf(“%c,“, b+); ”后, b 的值 变成字符 3,执行“printf(“%dn“,b-a); “,即 3-1。 22 【正确答案】 B 【试题解析】 数组名作函数实参时,所传递的是数组第一个元素的地址。 23 【正确答案】 A 【试
12、题解析】 在主函数中调用 fun时,形参 n=3,所以 fun中变量 s=n-fun(n-1)=3-fun(2)=3-2=1,即 fun(3)=1。 24 【正确答案】 C 【试题解析】 “b”格式符表示退格,功能是将它后面的字母把它前面的字母覆盖,导致 “b”格式符前面的字母不能输出; “”,格式符表示输出单引号字符: “”格式符表示输出反斜线字符。 25 【正确答案】 A 【试题解析】 本题考查的重点是 typedef的理解运用。 C语言允许通过 typedef为数据类型定义新名字,但是,它并非是生成新的数据类型,因此选项 A是错误的。 26 【正确答案】 A 【试题解析】 如果是 sta
13、tic修饰的静态变量,不是每次调用赋初值。 27 【正确答案】 C 【试题解析】 在 for循环语句中自变量 i从 0开始,每次自加 2,执行 s+=*(t+i)语匈,因为 C语言规定数组名 做表达式相当于数组的首地址,也就是第一个元素的地址。因此, *(t+i)代表数组的第 i+1 个元素。所以程序运行的结果是1+3+5+7+9=25,即变量 s的值等于 25。 28 【正确答案】 C 29 【正确答案】 B 30 【正确答案】 C 【试题解析】 本题的选项 A)和 B)犯了同样的错误 ,即指针变量在定义后并没有指向具体的变量。也就是说 ,指针变量中没有确定的地址值 ,它的值是不可预见的 ,
14、所指的单元也是不可预见的 ,因此不能进行赋值操作。另外 ,在选项 D)中 ,s 是 int型指针变量 ,p是 char型指针 变量 ,所指向的内存单元所占用的字节数是不同的 ,因而不能将字符指针变量 p的值赋给整型指针变量 s。 31 【正确答案】 D 【试题解析】 本题中 A) 和 C) 选项显然是正确的。通过函数调用形参和实参的特点,可以知道函数调用可以作为一个函数的实参,而不能作为形参,所以 B) 正确, D) 错误。 32 【正确答案】 C 【试题解析】 本题首先令 y为 9,然后通过一个 for循环,当 y还大于 0则循环,每次循环让 y递减 1。循环体中是一条 if 语句,通过 %
15、运算符计算每当 y能被3整除的时候,输出 -y的值,即先 将 y减 1,然后输出 y的值。故当 y等于 9、6、 3时会输出,输出值分别为 8、 5、 20所以应该选择 C。 33 【正确答案】 A 34 【正确答案】 C 35 【正确答案】 C 36 【正确答案】 B 【试题解析】 执行 p=后, p 指向整数 a, *p 即 p 的目标变量,也就是 a;所以 a=*p+b等价于 a=a+b,可知 a的值最终为 11。 37 【正确答案】 C 【试题解析】 本题中 char*p=a+5;即相当于 p=调试也称排错 ,它是一个与测试既有联系又有区别的概念。具体来说 ,测试的目的是暴露错误 ,评
16、价程序的可靠性 ,而调试的目的是发现错误的位置 ,并改正错误。 43 【正确答案】 32 【试题解析】 二叉树第 k 层上,最多有 2k-1(k1)个结点。第 6层的结点数最多是 26-1=32。注意区别 “二叉树的结点最多数 ”和 “某一层的结点最多数 ”。前者的计算是深度为 m的二叉树最多有 2m-1个结点。 44 【正确答案】 存储结构 【试题解析】 数据的逻辑结构是指反映数据元素之间逻 辑关系的数据结构;数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。 45 【正确答案】 空间 【
17、试题解析】 算法的复杂度主要包括时间复杂度和空间复杂度。所谓算法的时间复杂度,是指执行算法所需要的计算工作量。一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。 46 【正确答案】 广域网 【试题解析】 注意局域网与广域网的区别。 47 【正确答案】 2 【试题解析】 考查基本表达式的计算, “%”运算符的功能是取余。题中条件s=8,则 s%3=2, (s+1)%3=9%3=0,所以表达式 s%3+(s+1)%3=2+0=2。 48 【正确答案】 40 【试题解析】 分析程序,初始时 i=10, j=0,这时 do循环中的 “i=j+i” 49 【正确答案】 根结点 50 【正确答案
18、】 1,2,3, 4,the end 【试题解析】 本题考查带参数的宏的定义。第 1次循环, i=1 时,调用PRINT(1), P(1)输出 1;第 2次循环, i=2时,调用 PRINT(2), P(2)输出 2;第 3次循环, i=3时,调用 PRINT(3), P(3)输出 3;第 4次循环, i=4时,调用 PRINT(4), P(4)输出 4, the end。 51 【正确答案】 3。 【试题解析】 本题考查 while循环,第 1次循环: s=s+i*i=0+1*1=1, i=2;第 2次循环: s=s+i*i=25, i=3;第 3次循环: s=s+i*j=5+3*3=14,
19、 i=4;循环条件不成立输出 i, -i使 i 的值减 1,输出结果为 3。 52 【正确答案】 6 【试题解析】 本题中, i, j分别为外循环和内 循环的循环控制变量,外层循环共执行了四次当 i=1时,由于内层循环判断条件 (2 =1)为假不执行内层循环当i=2时,执行内层循环,输出一个 #当 i=3 时,内层循环循环两次,输出两个 #,当i=4时,内层循环循环三次,输出三 #。当 i=5时,循环判断条件不成立,退出外层循环。所以一共输出 6个 #。 53 【正确答案】 10 【试题解析】 p 是指向整型数组 arr的整型指针, p+使 p 指向了 arr的第 2个单元 “25”, p+3
20、是 arr的第 5个单元的地址,那么 *(p+3)就是第 5个单元的内容:“10”。 54 【正确答案】 32 【试题解析】 b+是先使用 b 的值参加运算,再对 b 加 1。 +c是先对 c加 1,再使用 c的值参加运算。 a*=18+(b+)-(+c)等价于 a=a*(18+(b+)-(+c)则a=2*(18+3-5)=32。 55 【正确答案】 6 【试题解析】 经过分析将递归函数写成其数学表达式如下: f(&a,n)=a0+f(&a1,n-1) n 1 f(&a,n)=a0 n=1 本题中定义了一个长度为 3的数组 aa并初始化。接着调用递归 函数 f(),由上面的数学表达式以计算其返
21、回值 s=1+2+3=6,所以空白处应该填 6。 56 【正确答案】 morningclass 【试题解析】 本题考查了两个知识点: “+、 -”运算后缀形式是先使用变量原来的值,使用完后再使其增 1或减 1; 在 switch 语句中,当 n=c时,执行“casec: ”,输出 morning;因为此句中没有 break 语句,因此接着执行“cased:”,输出 class,最终输出结果为 morningclass。 57 【正确答案】 1 3 6 【试 题解析】 依次执行 fun(6), fun(3), fun(1),当执行 fun(6)时要调用 fun(3),执行 fun(3)时要调用 fun(1),所以输出的结果为 1 3 6。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1