[计算机类试卷]国家二级(C语言)笔试模拟试卷261及答案与解析.doc

上传人:deputyduring120 文档编号:503425 上传时间:2018-11-29 格式:DOC 页数:26 大小:71KB
下载 相关 举报
[计算机类试卷]国家二级(C语言)笔试模拟试卷261及答案与解析.doc_第1页
第1页 / 共26页
[计算机类试卷]国家二级(C语言)笔试模拟试卷261及答案与解析.doc_第2页
第2页 / 共26页
[计算机类试卷]国家二级(C语言)笔试模拟试卷261及答案与解析.doc_第3页
第3页 / 共26页
[计算机类试卷]国家二级(C语言)笔试模拟试卷261及答案与解析.doc_第4页
第4页 / 共26页
[计算机类试卷]国家二级(C语言)笔试模拟试卷261及答案与解析.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、国家二级( C语言)笔试模拟试卷 261 及答案与解析 1 有下列二叉树,对此二叉树中序遍历的结果为 ( )。 ( A) BDYEACFXZ ( B) DYBEAFCZX ( C) ABCDEFXYZ ( D) ABDYECFXZ 2 关系模型允许定义 3类数据约束,下列不属于数据约束的是 ( )。 ( A)实体完整性约束 ( B)参照完整性约束 ( C)属性完整性约束 ( D)用户自定义的完整性约束 3 在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中 数据独立性最高的阶段是 ( )。 ( A)数据库系统 ( B)文件系统 ( C)人工管理 ( D)数据项管

2、理 4 在结构化程序设计中 ,模块划分的原则是 ( A)各模块应包括尽量多的功能 ( B)各模块的规模应尽量大 ( C)各模块之间的联系应尽量紧密 ( D)模块内具有高内聚度、模块间具有低耦合度 5 下面的概念中,不属于面向对象方法的是 ( )。 ( A)对象 ( B)继承 ( C)类 ( D)过程调用 6 在面向对象方法中,如果 “鸡 ”是一类对象, “公鸡 ”、 “母鸡 ”等都继承了 “鸡 ”类的性质,因而是 “鸡 ”的 ( )。 ( A)子类 ( B)实例 ( C)对象 ( D)父类 7 关系数据库的数据及更新操作必须遵循 ( )等完整性规则。 ( A)实体完整性和参照完整性 ( B)参

3、照完整性和用户自定义完整性 ( C)实体完整性和用户自定义完整性 ( D)实体完整性、参照完整性和用户自定义完整性 8 以下数据结构中,属于线性数据结构的是 ( A)集合 ( B)线性表 ( C)二叉树 ( D)图 9 在顺序表 (3, 6, 8, 10, 12, 15, 16, 18, 21, 25, 30)中,用二分法查找关 键码值 11,所需的关键码比较次数为 _。 ( A) 2 ( B) 3 ( C) 4 ( D) 5 10 关掉计算机的电源后,其中存储的数据立即丢失的存储器是 ( ) ( A)软盘 ( B)硬盘 ( C) ROM ( D) RAM 11 若定义函数 int*rune0

4、,则函数 func的返回值为 ( )。 ( A)一个实数 ( B)一个指向整型变量的指针 ( C)一个指向整型函数的指针 ( D)一个整型函数的入口地址 12 若 a、 b、 c、 d都是 int型变量且都已经正确赋初值,则下列不正确的赋值 语句是 ( ) ( A) a+d; ( B) a+; ( C) a=b=c=d=100; ( D) a=(b=3)+(d=5); 13 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是 ( )。 ( A)控制流 ( B)加工 ( C)存储文件 ( D)源和潭 14 有以下程序段 int j

5、;float y;char name50; scanf(“%2d%f%s“, 当执行上述程序段 ,从键盘上 输入 55566 7777abc后 ,y的值为 ( A) 55566.0 ( B) 566.0 ( C) 7777.0 ( D) 566777.0 15 C语言中最简单的数据类型包括 ( )。 ( A)整型、实型、逻辑型 ( B)整型、实型、字符型 ( C)整型、字符型、逻辑型 ( D)字符型、实型、逻辑型 16 表达式 3.6-5/2+1.2+5%2的值是 ( )。 ( A) 4.3 ( B) 4.8 ( C) 3.3 ( D) 3.8 17 以下叙述中,正确的是 _。 ( A) do

6、while 语句构成的循环不能用其他语句构成的循环来代替 ( B) dowhile 语句构成的循环只能用 break语句退出 ( C)用 dowhile 语句构成的循环,在 while后的表达式为非零时结束循环 ( D)用 dowhile 语句构成的循环,在 while后的表达式为零时结束循环 18 若执行下面程序时从键盘上输入 5, main() int x; scanf(“%d“, if(x+ 5)printf(“%dn“,x); else printf(“%dn“,x-); 则输出是 _。 ( A) 7 ( B) 6 ( C) 5 ( D) 4 19 若变量 a、 i已正确定义,且 i已

7、正确赋值,合法的语句是 _。 ( A) a=1 ( B) +i; ( C) a=a+=5; ( D) a=int(i); 20 若有以下程序段 (n所赋的是八进制数 ) int m=32767, n=032767; printf(“%d,%on“,m,n); 执行后输出结果是 ( A) 32767,32767 ( B) 32767,032767 ( C) 32767,77777 ( D) 32767,077777 21 下列叙述中正确的是 _。 ( A) C程序中注释部分可以出现在程序中任何合适的地方 ( B)花括号 “”和 “”只能作为函数体的定界符 ( C)构成 C程疗的基本单位是函数,所

8、有函数名都可以由用户命名 ( D)分号是 C语句之间的分隔符,不是语句的一部分 22 下列程序执行的输出结果是 ( )。 #include stdio.h main() char a24; strcpy(a,“are“);strcpy(a 1,“you“); a03= printf(“%sn“,a); ( A) are p=a; printf(“%dn“,*p+9); ( A) 0 ( B) 1 ( C) 10 ( D) 9 26 说明语句 int*(*p)();的含义是 _。 ( A) p是一个指向 int型数组的指针 ( B) p是指针变量,它构成了指针数组 ( C) p是一个指向函数的指

9、针,该函数的返回值是一个整型 ( D) p是一个指向函数的指针,该函数的返回值是一个指向整型的指针 27 一个源文件 中定义的外部变量的作用域为 _。 ( A)本文件的全部范围 ( B)本程序的全部范围 ( C)本函数的全部范围 ( D)从定义该变量的位置开始至本文件结束 28 在函数调用过程中,如果函数 funA调用了函数 funB,函数 funB又调用了函数funA,则 ( )。 ( A)称为函数的直接递归调用 ( B)称为函数的间接递归调用 ( C)称为函数的循环调用 ( D) C语言中不允许这样的递归调用 29 有以下程序: main() char p=a,b,c,q=“abc“; p

10、rintf(“%d %dn“,sizeof(p),sizeof(q); 程序运行后的输出结果是 ( )。 ( A) 4 4 ( B) 3 3 ( C) 3 4 ( D) 4 3 30 以下程序运行后的输出结果是 _。 int d=1; fun(int p) printf(%d“,d);return d; main() int a=3; printf(“%n“,fun(a+fun(d); ( A) 699 ( B) 669 ( C) 61515 ( D) 6615 31 执行以下语句后的输出结果是 _。 int x=10, y=3, z; printf(“%dn“,z=(x%y, x/y); (

11、 A) 1 ( B) 0 ( C) 4 ( D) 3 32 若变量 c为 char类型,能正确判断出 c为小写字母的表达式是 ( A) a =c =2 ( B) (c =a)|(c =2) ( C) (a =c)and(2 =c) ( D) (c =a)d+=p; printf(“%d“,d);return d; main() int a=3;printf(“%dn“,fun(a+fun(d); ( A) 699 ( B) 669 ( C) 61515 ( D) 6615 40 以下程序输出正确的是 _。 amovep(int *p,int(*a)3,int n) int i,j; for(i

12、=0;i n;i+) for(j=0;j n;j+) *p=aij;p+; main() int *p,a33=1,3,5,2,4,6; p=(int*)malloc(100); amovep(p,a,3); printf(“%d%dn“,p2,p5);free(p); ( A) 56 ( B) 25 ( C) 34 ( D)程序错误 41 下列语句组中,正确的是 ( A) ; s Olympic; ( B) char s 7; s Olympic; ( C) ; s Olympic; ( D) char s 7; s Olympic; 41 一棵二叉树第六层 (根节点为第一层 )的节点数最多

13、为 _。 42 通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为_。 43 数据库的设计通常可以分为这样四个 步骤:需求分析、概念设计、 _ 、和物理设计。 44 数据库系统中实现各种数据管理功能的核心软件称为【 】。 45 一棵二叉树第六层 (根结点为第一层 )的结点数最多为【 】个。 46 设有下列程序: #include stdio.h #include string.h main() int i; char si 10,ti 10; gets(t); for(i=0;i 2;i+) gets(s); if(strcmp(t,s) 0)strcpy(t,s); printf

14、(“%sn“,t); 程序运行后,从键盘上输入 ( CR代表回车符 ): CDEF CR BADEF CRQTHRG CR,则程序的输出结果是 _。 47 下面程序的功能:将字符数组 a中下标值为偶数的元素 从小到大排列,其他元素不变。请填空。 # include stdio. h # include string. h main() char a=“clanquage“, t; int i, j, k; k=strlen(A) ; for(i=0; i =k-2; i+=2) for(j=i+2; j k; j+=2) if(【 】 ) t=ai; ai=aj; aj=t; puts(A)

15、; printf(“n“); 48 若有定义: int a=4, b=5, c=6;然后顺序执行下列语句后,变量 b中的值是( )。 c=(a-=(b-5); c=(a%3)+(b=1); 49 在 E-R图中,矩形表示 ( )。 50 以下程序的输出结果是【 】。 #intclude main() int a=37; a+=a%=9;printf(“%dn”,a); 51 函 数 my_cmp()的功能是比较字符串 s和 t的大小,当 s等于 t时返回 0,否则返回 s和 t的第一个不同字符的 ASCII码差值,即 s t时返回正值,当 s t时返回负值。请填空。 my_cmp(char*s

16、, char*t) while(*s=*t) if(*s=0)return0; +s; +t; return【 】; 52 若有以下程序: main() int a44=l,2,-3,-4,0,-12,-13,14,-21,23,0,-24, -31,32,-33,0; int i,j,s=0; for( i=0; i 4; i+ ) for( j=0; j 4; j+ ) if (aij 0) continue; if (aij=0) break; s+=ai j; printf(“%dn“,s); 执行后输出的结果是 【 】。 53 以下程序的输出结果是【 】。 main() unsign

17、ed short a=65536; int b; printf(“%dn“, b=A) ; 54 下面程序的功能是根据公式 e 1+1 1!+1 2!+1 3!+1 4!+计算 e的近似值,精度要求为 10-5。请填空。 main() int n; double e 1.0, t 1.0; for(n 1;【 】 n+); 【 】 e+=t; printf(“%fn“, e); 55 以下函数 inverse的功能是使一个字符串按逆序存放,请填空。 inverse(char str) char m; int i,j; for(i=0,j=strlen(str);i strlen(str)/2;

18、【 】 ,j-) m=stri; stri=【 】 ; 【 】 ; 56 理解下面的程序,填空完善程序。 main( ) int a, b, c; scanf(“%d%d“, 【 】 ); c= 【 】 (a, b); printf(“a %d b %d max %dn“, a, b, c); int max(x, y) 【 】 ; int z; if(x y) z x; else z y; 【 】 ; 国家二级( C语言)笔试模拟试卷 261 答案与解析 1 【正确答案】 B 【试题解析】 对二叉树的中序遍历是指首先遍 历左子树,然后访问根结点,最后遍历右子树。在遍历左、右子树时,注意依旧按

19、照 “左子树 根结点 右子树 ”的顺序。本题的遍历顺序是这样的: 首先访问左子树: BDEY; 在左子树BDEY中,也按中序遍历,先访问左子树 DY;在左子树 DY中,也按中序遍历,先访问左子树,左子树没有,则访问根结点 D,然后访问右子树 Y; 接着访问根 B,再访问右子树 E; 访问左子树 BDEY后,接着访问根结点 A,接着访问右子树 CFXZ; 右子树 CFXZ的访问顺序同理可得: FCZX。 2 【正确答案】 C 【试题解析】 关系模型允许 3类数据约束,它们是: ?实体完整性约束 该约束要求关系的主键中属性值不能为空值,这是数据库完整性的最基本要求。 ?参照完整性约束 该约束是关系

20、之间相关联的基本约束,它不允许关系引用不存在的元组:即在关系中的外键要么是所关联关系中实际存在的元组,要么就为空值。 ?用户定义的完整性约束 用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。 3 【正确答案】 A 【试题解析】 数据库系统的一个重要目标就是使程序和数据真正分离,数 据独立性包括数据的物理独立性和数据的逻辑独立性。相对文件系统人工管理和数据项管理,数据库系统的数据独立性大大增加。 4 【正确答案】 D 【试题解析】 在结构化程序设计中 ,一般较优秀的软件设计尽量做到高内聚、低耦合 ,这样有利于提高软件模块的独立性 ,也是模块

21、划分的原则。 5 【正确答案】 D 【试题解析】 面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。面向对象方法从对象出发,发展出对象、类、消息、继承等概念。 6 【正确答案】 A 【试 题解析】 面向对象方法中,继承是表示类之间的相似性的机制。如果类 X继承类 Y,则 X为 Y的子类, Y为 X的父类 (超类 )。如果 “鸡 ”是一类对象, “公鸡 ”、 “母鸡 ”等都继承了 “鸡 ”类的性质,因而是 “鸡 ”的子类。 7 【正确答案】 D 【试题解析】 关系模型中包括关系数据结构、关系操作集合和关系完整性。关系完整性即数据完整性,包括实体完整性、参照

22、完整性、用户自定义完整性。 8 【正确答案】 B 【试题解析】 所谓的线性结构:如果一个非空的数据结构满足下列两个条件,即 1)有且只有一个根结点; 2)每一个结点最多有一个前件,也最多有一个后件。同时满足两个条件的只有线性表,而其他三种数据结构的结点可能存在多个前件或后件,所以不是线性结构。 9 【正确答案】 C 【试题解析】 二分法查找是用关键码与线性表的中间元素比较,然后根据比较结果来判断是结束查找,还是在左边或者右边子表按相同的方法继续查找。本题中,与 11比较的关键码分别为 15, 8, 10, 12四个。 10 【正确答案】 D 11 【正确答案】 B 【试题解析】 本题考查的是指

23、针函数。指针函数定义的基本格式为:类型说 明符 .函数名 ()。其中, “类型说明符 ”表示返回的指针值所指向的数据类型。 12 【正确答案】 A 【试题解析】 C语言规定,赋值号的右边可以是一个赋值表达式,因此选项C)、选项 D)正确;在选项 B)中, a+是一个自加 1的表达式, a被重新赋值,因此它是一个合法的赋值表达式:选项 A)中, a+d 是一个算术表达式,虽然最后有一个分号,但这个表达式中没有赋值操作,因此它不是一条赋值语句。 13 【正确答案】 A 【试题解析】 数据流图用于抽象描述一个软件的逻辑模型,它由一些特定的图符构成,包括 4个 方面,即加工、数据流、存储文件、源和潭。

24、 14 【正确答案】 B 【试题解析】 本题考查通过 scanf函数输入数据时的格式控制问题。变量 j的格式控制为 “%2d“,即只接收输入数据的前两位 ,从第三位开始直到空格之间的输入都会被保存到变量 y中 ,因为 y为浮点型数据 ,所以输出结果为选项 B)。 15 【正确答案】 B 【试题解析】 选项 A) 中包含一个不合法的运算符 “:=”;选项 C) 应改为(int)18.5%3;选项 D) 可理解为两个表达式: a+7=c+b 和 a=a+7,因为 C语言规定赋值号的左边 只能是单个变量,不能是表达式或常量等,所以 a+7=c+b 是错的。因此,正确答案是选项 B) ,它相当于 a=

25、(b =c+2),可分解为两个表达式: b=c+2和 a=b。 16 【正确答案】 D 【试题解析】 *、 /和 %的优先级要高于 +和 ,同级别的运算符从左至右运算。所以本题首先计算 5/2和 5%2,虽然我们都知道 5/2的结果应该是 2.5,但 C语言中规定了两个整数相除的结果为整数,而且是截尾取整,所以 5/2的结果是 2;5%2表示的是 5除以 2所得的余数,其结果为 1。计算完后,表达式变为 3.6-2+1.2+1,从左至右计算不难得出结果为 3.8,故应该选择 D。 17 【正确答案】 D 18 【正确答案】 B 【试题解析】 根据 C语言的语法, X+是在使用 x之后,再将 x

26、的值加 1,在 if语句中, x的值为 5,条件不成立,执行 else后面的语句,因为 x的值已经加 1,为 6,所以打印结果为 6。 19 【正确答案】 B 【试题解析】 选项 D显然是错的,而选项 A没有分号结束,不是 C语句;a+=5违反了赋值表达式左侧必须为一个变量 (不能是常量或表达式 )的规定。 20 【正确答案】 A 【试题解析 】 程序在定义时,以十进制形式为 m赋初值,以八进制的形式为 n赋初值。输出的时候 m以十进制形式输出, n 以八进制形式输出,因此输出的结果为 32767和 32767。 21 【正确答案】 A 【试题解析】 C程序中注释部分用 “/*”和 “*/”括

27、起来,可以出现在程序中任何合适的地方;花括号 “”和 “”不仅可作为函数体的定界符,也可作为复合语句的定界符;构成 C程序的基本单位是函数;一个语句必须在最后出现分号,分号是 C语句中不可缺少的部分。 22 【正确答案】 A 【试题解析】 strcpy(a,“are“)中数组名 a代表数组首地址的地址常量,该操作把are复制到 a中, a03=,计算结果 a为2。 51 【正确答案】 *s-*t 【试题解析】 两字符串大小比较必须从它们的首字符开始,在对应字符相等情况下循环,直至不相等结束。相等时,若字符串已到了字符串的结束标记符,则两字符串相同,函数返回 0值;如还有后继字符,则准备比较下一

28、对字符。对应字符不相同,循环结束。循环结束时,就以两个当前字符的差返回。所以在空框处应填入 *s-*t,保 证在 e t时返回正值,当 s t时返回负值。 52 【正确答案】 58 【试题解析】 本题中处理二维数组元素用了两重循环,外循环变量 i表示数组的行,内层循环变量 j表示数组的列。在第二重循环中首先判断数组元素的值是否小于 0,若是则处理该行的下一个元素;若不是则判断 a刚的值是否等于 0,若等于 0则退出内层循环开始处理下一行;其他情况下,把 aij的值加到变量 s中。所以本程序段的功能是把每行值为 0的元素前面的所有大于 0的元素值加到变量 s中。 53 【正确答案】 0 【试题解

29、析】 对于一个 unsigned short 来说,它能取的最大值是 65535。这里给a赋值 65536,已经超出了它的取值范围,这样它的高位将被截掉,只把低位赋给它 (全零 )。所以 a的值实际为 0。 54 【正确答案】 t le-5; t=t/n; 55 【正确答案】 i+或 +i strj-1 strj-1=m 【试题解析】 字符中逆序存放的算法是:将字符串中的第 i个字符和第strlen(str)-i个字符交换。然后交换字符串中第 i+1个字符和第 (strlen(str)-i)-1个字符,故循环 变量 i的值应改变,且步长为 1,所以 18处应填 i+;读程序可知,循环中通过中间变量 m交换字符串中的第 i个字符和第 strlen(str)-i 个字符,所以题中第一、二处应分别填写 strj-1、 strj-1=m。 56 【正确答案】 a, b max int x, y return(z)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1