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

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

1、国家二级 C语言机试(选择题)模拟试卷 20 及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)循环队列是队列的一种链式存储结构 ( B)循环队列是队列的一种顺序存储结构 ( C)循环队列是非线性结构 ( D)循环队列是一种逻辑结构 2 下列关于线性链表的叙述中,正确的是 ( )。 ( A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致 ( B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续 ( C)进行插入与删除时,不需要移动表中的元素 ( D)以上说法均不正确 3 一棵二叉树共有 25个结点,其中 5个是叶子结点,则度为 1的结点数

2、为 ( ) ( A) 16 ( B) 10 ( C) 6 ( D) 4 4 在下列模式中,能够给出数据库物理存储结构与物理存取方法的是 ( )。 ( A)外模式 ( B)内模式 ( C)概念模式 ( D)逻辑模式 5 有满足实体完整性约束的条件下 ( )。 ( A)一个关系中应该有一个或多个候选关键字 ( B)一个关系中只能有一个候选关键字 ( C)一个关系中必须有多关键字个候选 ( D)一个关系中可以没有候选关键字 6 有三个关系 R、 S和 T如下: 则由关系 R和 S得到关系 T的操作是 ( )。 ( A)自然连接 ( B)交 ( C)除 ( D)并 7 下面描述中,不属于软件危机表现的

3、是 ( )。 ( A)软件过程不规范 ( B)软件开发生产率低 ( C)软件质量难以控制 ( D)软件成本不断提高 8 下面不属于需求分析阶段任务的是 ( )。 ( A)确定软件系统的功能需求 ( B)确定软件系统的性能需求 ( C)需求规格说明书评审 ( D)制定软件集成测试计划 9 在黑盒测试方法中,设计测试用例的主要根据是 ( )。 ( A)程序内部逻辑 ( B)程序外部功能 ( C)程序数据结构 ( D)程序流程图 10 在软件设计中不使用的工具是 ( )。 ( A)系统结构图 ( B) PAD图 ( C)数据流图 (DFD图 ) ( D)程序流程图 11 以下选项中关于程序模块化的叙

4、述错误的是 ( A)可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序 ( B)把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块 ( C)把程序分成若干相对独立的模块,可便于编码和调试 ( D)可采用自顶向下、 逐步细化的设计方法把若干独立模块组装成所要求的程序 12 以下叙述中正确的是 ( A)用 C语言编写的程序只能放在一个程序文件中 ( B) C程序书写格式严格,要求一行内只能写一个语句 ( C) C程序中的注释只能出现在程序的开始位置和语句的后面 ( D) C程序书写格式自由,一个语句可以写在多行上 13 以下不合法的数值常量是 ( A) 8.0E0.5

5、( B) 1e1 ( C) 011 ( D) 0xabcd 14 以下关于 C语言数据类型使用的叙述中错误的是 ( A)若要处理如 “人员信息 “等含有不同类型的相 关数据,应自定义结构体类型 ( B)若要保存带有多位小数的数据,可使用双精度类型 ( C)若只处理 “真 “和 “假 “两种逻辑值,应使用逻辑类型 ( D)整数类型表示的自然数是准确无误差的 15 设有定义: int k=0; 以下选项的四个表达式中与其他三个表达式的值不相同的是 ( A) +k ( B) k+=1 ( C) k+ ( D) k+1 16 有如下程序段: int x=12; double y=3.141593; p

6、rintf(“%d%8.6f“, x, y); 其输出结果是 ( A) 123.141593 ( B) 12 3.141593 ( C) 12, 3.141593 ( D) 123.1415930 17 已知字符 A的 ASCII代码值是 65,字符变量 c1的值是 A, c2的值是 D。则执行语句 printf(“%d,%d“, c1, c2-2 ); 的输出结果是 ( A) 65,68 ( B) A,68 ( C) A,B ( D) 65,66 18 以下选项中,当 x为大于 1的奇数时,值为 0的表达式是 ( A) x%2=0 ( B) x/2 ( C) x%2!=0 ( D) x%2=

7、1 19 有以下程序 #include main() int x; scanf(“%d“, if(x =3) ; else if(x!=10) printf(“%dn“, x); 程序运行时,输入的值在哪个范围才会有输出结果 ( A)小于 3的整数 ( B)不等于 10的整数 ( C)大于 3或等于 10的整数 ( D)大于 3且不等 10的整数 20 有以下程序 #include main() int a = 7; while ( a- ) ; printf (“%dn“, a); 程序运行后的输出结果是 ( A) 0 ( B) -1 ( C) 1 ( D) 7 21 有以下程序 #incl

8、ude main() char b,c; int i; b= a; c = A; for (i=0; i 6; i+) if (i%2) putchar(i+b); else putchar(i+c); printf(“n“); 程序运行后的输出结果是 ( A) abcdef ( B) ABCDEF ( C) aBcDeF ( D) AbCdEf 22 有以下程序 #include main() int i, j, x=0; for(i=0; i main() int i, t3=9,8,7,6,5,4,3,2,1; for(i=0;i void fun(int *s, int n1, int

9、 n2) int i, j, t; i=n1; j=n2; while( i j ) t=si; si=sj; sj=t; i+; j-; main() int a10=1,2,3,4,5,6,7,8,9,0, k; fun(a,0,3); fun(a,4,9); fun(a,0,9); for(k=0;k 10;k+) printf(“%d“, ak); printf(“n“); 程序的运行结果是 ( A) 4321098765 ( B) 5678901234 ( C) 0987654321 ( D) 0987651234 28 有以下程序 #include main() int a44=

10、1,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1, i, k, t; for (i=0; i 3; i+) for (k=i+1; k 4; k+) if (aii akk) t=aii; aii=akk; akk=t; for (i=0; i 4; i+) printf(“%d,“, a0i); 程序运行后的输出结果是 ( A) 1,1,2,6, ( B) 6,2,1,1, ( C) 6,4,3,2, ( D) 2,3,4,6, 29 以下选项中正确的语句组是 ( A) char *s; s=“BOOK!“; ( B) char *s; s=“BOOK!“; ( C) char

11、 s10; s=“BOOK!“; ( D) char s; s=“BOOK!“; 30 若有以下定义和语句 #include char s110= “abcd!“, *s2=“n123“; printf(“%d %dn“, strlen(s1), strlen(s2); 则输出结果是 ( A) 10 7 ( B) 10 5 ( C) 5 5 ( D) 5 8 31 负责数据库中查询操作的数据库语言是 ( )。 ( A)数据定义语言 ( B)数据管理语言 ( C)数据操纵语言 ( D)数据控制语言 32 以下选项中正确的定义语句是 ( A) double, a, b; ( B) double a

12、=b=7; ( C) double a; b; ( D) double a=7, b=7; 33 有以下程序 #include main() int a=1, b=2; for( ;a 8;a+) b+=a; a+=2; printf(“%d,%dn“,a,b); 程序运行后的输出结果是 ( A) 9,18 ( B) 8,11 ( C) 7,11 ( D) 10,14 34 有以下程序 #include main() int x=8; for( ; x 0; x- ) if(x%3) printf(“%d,“, x-); continue ; printf(“%d,“, -x); 程序的运行结

13、果是 ( A) 7,4,2, ( B) 8,7,5,2, ( C) 9,7,6,4, ( D) 8,5,4,2, 35 有以下程序 #include main() int a=1, b=3, c=5; int *p1= *p =*p1*(*p2); printf(“%dn“,c); 执行后的输出结果是 ( A) 1 ( B) 2 ( C) 3 ( D) 4 36 有以下程序 #include #define SUB (a) (a)- (a)main() int a=2,b=3,c=5,d; d=SUB(a+b)*c; printf(“%dn“,d); 程序运行后的输出结果是 ( A) 0 (

14、B) -12 ( C) -20 ( D) 10 37 有以下程序 #include main() int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i; for(i=0; i main() int a = -2, b = 0; while (a+ printf(“%d,%dn“, a, b ); 程序运行后输出结果是 ( A) 0,2 ( B) 0,3 ( C) 1,3 ( D) 1,2 40 有以下程序 #include main() FILE *fp;int i, a6 = 1,2,3,4,5,6; fp = fopen( “d2.dat“, “w+“ ); for

15、 (i=0; i 6; i+)fprintf( fp, “%dn“, ai ); rewind( fp ); for ( i=0; i 6; i+ ) fscanf( fp, “%d“, fclose(fp); for ( i=0; i 6; i+ ) printf( “%d,“, ai ); 程序运行后输出结果是 ( A) 1,2,3,4,5,6, ( B) 6,5,4,3,2,1, ( C) 4,5,6,1,2,3, ( D) 1,2,3,3,2,1, 国家二级 C语言机试(选择题)模拟试卷 20 答案与解析 一、选择题 1 【正确答案】 B 【试题解析】 在实际应用中,队列的顺序存储结构

16、一般采用循环队列的形式。 2 【正确答案】 C 【试题解析】 一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。线性链表中数据的插入和删除都不需要移动表 中的元素,只需改变结点的指针域即可。 3 【正确答案】 A 【试题解析】 根据二叉树的性质 3:在任意一棵二叉树中,度为 0的叶子结点总是比度为 2的结点多一个,所以本题中度为 2的结点是 5 1 4个,所以度为 1的结点的个数是 25 5 4 16个。 4 【正确答案】 B 【试题解析】 数据库系统的三级模式是概念模式、外模式和内模式。概念模式是数据库系统中全局数据逻辑结

17、构的描述,是全体用户公共数据视图。外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述。内模式又称物理模式 ,它给出了数据库物理存储结构与物理存取方法,所以选择B)。 5 【正确答案】 A 【试题解析】 实体完整性约束要求关系的主键中属性值不能为空值,所以选择A)。 6 【正确答案】 C 【试题解析】 如果 S T/R,则 S称为 T除以 R的商。在除运算中 S 的域由 T中那些不出现在 R中的域所组成,对于 S 中的任一有序组,由它与关系 R中每个有序组所构成的有序组均出现在关系 T 中。所以本题选择 C)。 7 【正确答案】 A 【试题解析】 软件危机主要表现在:软

18、件需求的增长得不到满足;软件开发成本和进度 无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。所以选择 A)。 8 【正确答案】 D 【试题解析】 需求分析阶段的工作有:需求获取;需求分析;编写需求规格说明书;需求评审,所以选择 D)。 9 【正确答案】 B 【试题解析】 黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证,黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明,所以本题选 择 B)。 10 【正确答案】 C 【试题解析】 系统结构

19、图是对软件系统结构的总体设计的图形显示。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。 PAD图是在详细设计阶段用到的。程序流程图是对程序流程的图形表示,在详细设计过程中用到。数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以选择 C)。 11 【正确 答案】 A 【试题解析】 程序模块化思想中 ,可以采用自顶向下,逐步细化的方法,所以选项 A中 “自底向上 ”的说法是错误的。 12 【正确答案】 D

20、【试题解析】 C语言编写的程序可以放置于多个程序文件中 ,所以 A错误, C程序中的一行可以有多条语句 ,所以 B错误, C语言中的注释语句可以与原语句放在一行也可以不放在一行 ,所以 C错误。 13 【正确答案】 A 【试题解析】 A选项中 E 后面的指数必须为整型数据 ,所以 A错误, C选项中011表示的是八进制常量 ,0xabcd 表示的是十六进制常量。 14 【正确答案】 C 【试题解析】 C语言中没有逻辑类型 ,所以 C错误 ?若要保存带有多位小数的数据 ,可以用单精度类型也可以用双精度类型 ?处理包含不同类型的相关数据可以定义为结构体类型 ?整数类型可以无误差的表示自然数。 15

21、 【正确答案】 C 【试题解析】 +k,先使得 k的值自增 1后再使用 ,k+是先取得 k的值再将 k 的值自增 1,所以 C选项中表达式的值为 0,而其他三个表达式的值均为 1,所以选择 C? 16 【正确答案】 A 【试题解析】 printf函数中格式字符 “%8.6“的含义是 :变 量 y的输出宽度为 8(包括小数点 ),小数点后面保留 6位小数 ,且右对齐,所以选择 A。 17 【正确答案】 D 【试题解析】 打印时以 %d整型格式打印输出 ,所以字符标量 c1 的值打印出来就是 65,从 c2-2的值打印出来就是 68-2,即 66,所以选择 D。 18 【正确答案】 A 【试题解析

22、】 算术运算符的优先级高于关系运算符的优先级 ,所以当 x为大于 1的奇数时 ,A选项的值为假 ,即 0, B 选项的值为不定值 ,但绝对不是 0, C选项的值为真 ,即 1, D选项的值为真 ,即 1。 19 【正确答案】 D 【试 题解析】 根据代码可知如果 x的值小于 3,执行空语句 ,不进行打印操作,如果 x的值大于 3,再判断 x的值是否不等于 10,如果不等于 10就打印 x的值 ,所以选择 D选项。 20 【正确答案】 B 【试题解析】 a- -的含义是先用后减 1,所以当 a的值为 0时 ,跳出循环 ,但是仍要执行 a- ,a的值变为 -1。 21 【正确答案】 D 【试题解析

23、】 函数的含义是如果 i的值能被 2整除 ,以字符格式打印输出 i+c的值 ,如果 i的值不能被 2整除打印 i+b的值 ?第一次 i值为 0,执行 else语句打印字符 A,第二次 i值为 1,打印 1+b 的值即字符 b,第三次 i值为 2,打印字符 C,依此类推选择D选项。 22 【正确答案】 B 【试题解析】 coutinue的作用是跳出循环体中剩余的语句而进行下一次循环 ?第一次执行外循环 i的值为 0,执行 x+,x的值变为 1,第一次执行内层循环 j的值为 0,不满足 if条件 ,执行 x+,x的值变为 2,第二次内循环 j的值为 1,if条件成立 ,跳出本次循环 ,第三次执行内

24、循环 j的值为 2,不满足 if 条件 ,x的值变为 3,第四次执行内循环 j的值为 3满足条件跳出本次内循环 ,x的值加 1,即为 4,第一 次外循环结束,第二次执行外循环时 ,同理 ,i的值被加了 ,4次 ,变为 8,所以选择 B选项。 23 【正确答案】 A 【试题解析】 本题重点考察的是函数的形参和实参。在定义函数时函数名后面括弧中的变量名称为 “形式参数 “(简称形参 ),在主调函数中调用一个函数时,函数名后面括弧中的参数 (可以是一个表达式 )称为 “实际参数 “ (简称实参 )。 C语言规定,实参变量对形参变量的数据传递是 “值传递 “,即单向传递,只由实参传给形参,而不能由形参

25、传回来给实参。在内存中,实参单元与形参单元是不同的单元。因此 A选项正确。 24 【正确答案】 D 【试题解析】 函数的参数可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。函数名代表函数的入口地址,指向函数的指针应该定义为 void (*pf)()。如果定义为 void *pf(),则表示函数 pf 返回值为一个基类型为 void 的指针。因此 D选项正确。 25 【正确答案】 B 【试题解析】 一维数组的定义方式为:类型说明符 数组名 常量表达式 ;注意定义数组时,元素个数不能是变量。因此应该选 B 选项。 26 【正确答案】 A 【试题解析】 二维数组 t3实际上指 t33=

26、 9,8,7,6,5,4,3,2,1,通过循环语句 for语句可以得到 i=0,t20=3、 i=1,t11=5、 i=2,t02=7、 i=3时循环结束即 t20=3、 t11=5、 t02=7。因此 A选项正确。 27 【正确答案】 B 【试题解析】 该程序首先给一维数组赋值,然后三次调用 fun 函数,其中fun(a,0,3);功能是将一维数组中第 1个元素和第 4个元素互换,第 2个元素和第 3个元素互换;其中 fun(a,4,9);功能是将一维数组中第 5个元素和第 10 个元素互换,第 6个和第 9个元素互换,第 7个元素和第 8个元素互换;其中 fun(a,0,9);功能是将将一

27、维数组中第 1个元素和第 10个元素互换,第 2个元素和第 9个元素互换 依次类推。因此 B 选项正确。 28 【正确答案】 C 【试题解析】 首先对二维数组进行赋值操作, a00、 a01、 、 a32、a33的值为 1、 4、 、 6、 1。通过 for嵌套循环语句和 if条件语句,对二维数组对角线元素进行由大到小的排序操作,程序最后通过 for语 句输出二维数组第 1行的 4个元素。因此 C选项正确。 29 【正确答案】 B 【试题解析】 A选项去掉大括号就正确了; C选项和 D选项应在定义时赋初值。因此 B选项正确。 30 【正确答案】 C 【试题解析】 strlen 函数返回字符串的

28、长度,求字符串长度时,遇到结束标志 0为止,但是长度不包括结束标识。字符数组 s1 的后 5个元素没有赋值,都为 0,即 “abcd!“后为 0。所以 strlen(s1)的值为 5。字符指针 s2所指向的字符串中, n为转义字符换行符,表示 1个字符, 也为转义 字符,代表 ,也是 1个字符,其后为字符串结束标识 0; 所以 strlen(s2)的值也为 5。因此 C选项正确。 31 【正确答案】 C 【试题解析】 数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增、删、改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障

29、恢复等功能。 32 【正确答案】 D 【试题解析】 A选项中变量类型符 double后面不能有逗号, B 选项中变量 b不能先使用再定义 ,应该写成选项 D中的格式, C选项中 变量 a后面应该是逗号而不是分号。 33 【正确答案】 D 【试题解析】 第一次循环 a的值为 1,满足条件 ,执行 b+=a,与 a+=2,则 b 的值变为3,a的值变为 3?执行 a+,a的值为 4,满足条件进入第二次循环 ,执行完循环体后 b的值为 7,a的值为 6,执行 a+,a的值为 7,满足条件进入第三次循环 ,执行完循环体后b 的值为 14,a的值为 9,执行 a+,a的值变为 10,所以选择 D选项。

30、34 【正确答案】 D 【试题解析】 coutinue的作用是跳出循环体中剩余的语句而进行下一次循环,第一次循环 x的值为 8,循环体中 if条件成立 ,打印 x的值 8后将 x减 1,再执行continue语句 ,跳出本次循环 ?第二次判断循环条件时 ,x的值变为 6,不满足循环体内if 条件 ,执行打印 - -x的操作 ,即打印 5后跳出循环,第三次判断循环条件时 x的值为 4,满足循环体中 if 条件 ,执行打印 x- -的操作 ,即打印 4,后将 x 值减一 ,执行continue 语句 ,跳出本次循环 ?第四次判断循环条件时 x 的为 2,满足循环体中 if 条件 ,打印 x- -,

31、即打印 2后将 x减一 ,执行 continue语句 ,跳出本次循环 ?在进行 for条件表达式中第三个表达式 x- -的操作后 x的值为 0,不满足条件结束循环,所以打印结果为 8,5,4,2。 35 【正确答案】 C 【试题解析】 该程序中 int *p1=指定义三个指针变量,并赋值,即使 p1指向 a;p2指向 b;p指向 c。 *p=*p1*(*p2);该条语句是给 p 所指的存储单元 c赋值,就是 p1所指的存储单元的值,即 a的值,与 p2所指的存储单元 b的值相乘,也就是 c=a*b,等价于 c=1*3=3;因此 C选项正确。 36 【正确答案】 C 【试题解析】 本题考查宏定义

32、,宏定义只 是做简单的替换,所以本题中SUB(a+b)*c=(a+b)-(a+b)*c=-20,所以答案为 C选项。 37 【正确答案】 B 【试题解析】 在 for(i 0; i 12; i+) csi+中,数组元素 si的值作为数组 c的下标,当退出循环时,数组 c的 4个元素的值分别为 4、 3、 3、 2。因此 B 选项正确。 38 【正确答案】 B 【试题解析】 本题考查字符串处理函数 strlen, strlen计算一个字符串的长度,包含结尾符,所以本题中 j的初始化应该是从最后一个字符开始,所以应该将 得到的字符串长度减 1,选项 B 正确。 39 【正确答案】 D 【试题解析】

33、 本题重点考察 while语句,变量 a和 b 分别赋初值为 -2和 1, while语句的语义是:计算表达式的值,当值为真 (非 0)时, 执行循环体语句。 a+即 a参与运算后, a的值再自增 1。 +b 即 b自增 1后再参与其它运算。当表达式的值为 0时,退出循环,最后输出 a和 b的值为 1和 2。因此 D选项正确。 40 【正确答案】 B 【试题解析】 本题考查文件操作函数, fprintf 和 rewind函数, rewind 函数将文件内部的位置指针 重新指向一个流(数据流 /文件)的开头,程序首先是将数组 a的六个数写入 d2文件中,然后又将 a数组从后往前覆盖到 d2中的内容,所以结果为 6,5,4,3,2,1,选项 B正确。

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

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

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