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

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

1、国家二级( C语言)笔试模拟试卷 167及答案与解析 1 为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为 ( A) PAD图 ( B) N-S图 ( C)结构图 ( D)数据流图 2 结构化程序设计主要强调的是 ( A)程序的规模 ( B)程序的效率 ( C)程序设计语言的先进性 ( D)程序易读性 3 为了使模块尽可能独立,要求 ( A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 ( B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 ( C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱 ( D)模块的内聚程度要尽量低

2、,且各模块间的耦合程度要尽量强 4 需求分析阶段的任务是确定 ( A)软件开发方法 ( B)软件开发工具 ( C)软件开发费用 ( D)软件系统功能 5 算法的有穷性是指 ( A)算法程序的运行时间是有限的 ( B)算法程序所处理的数据量是有限的 ( C)算法程序的长度是有限的 ( D)算法 只能被有限的用户使用 6 如果进栈序列为 e1, e2, e3, e4,则可能的出栈序列是 ( A)快速排序 ( B)冒泡排序 ( C)直接插入排序 ( D)堆排序 7 将 E-R图转换到关系模式时,实体与联系都可以表示成 ( A) e3, e1, e4, e2 ( B) e2, e4, e3, e1 (

3、 C) e3, e4, e1, e2 ( D)任意顺序 8 有三个关系 R、 S和 T如下: 由关系 R和 S通过运算得到关系 T,则所使用的运算为 ( A)并 ( B)自然 连接 ( C)笛卡尔积 ( D)交 9 下列有关数据库的描述,正确的是 ( A)数据处理是将信息转化为数据的过程 ( B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变 ( C)关系中的每一列称为元组,一个元组就是一个字段 ( D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键宇,则称其为本关系的外关键字 10 以下叙述中正确的是 ( A)用 C程序实现的算法必须要有输入和输出操作

4、 ( B)用 C程序实现的算法可以没有输出但必须要有输入 ( C)用 C程序实现的算法可以没有输入但必须要有输出 ( D)用 C程序实现的算法可以既没有输入也没有输出 11 下列可用于 C语言用户标识符的一组是 ( A) void, define, WORD ( B) a3_b3, _123, Car ( C) For, -abc, IF Case ( D) 2a, DO, sizeof 12 以下选项中可作为 C语言合法常量的是 ( A) -80 ( B) -080 ( C) -8e1.0 ( D) -80.0e 13 若有语句: char *line5;,以下叙述中正确的是 ( A)定义

5、line是一个数组,每个数组元素是一个基类型为 char的指针变量 ( B)定义 line是一个指针变量,该变量可以指向一个长度为 5的字符型数组 ( C)定义 line是一个指针数组,语句中的,号称为间址运算符 ( D)定义 line是一个指向字符型函数的指针 14 以下定义语句中正确的是 ( A) int a=b=0; ( B) char A=65+1, b=b; ( C) float a=1, *b= 50; i+) if(!(i%5)i n-1; +) for(j=i+1; j n; j+) if(strlen(si) strlen(sj) t=si; si; sj; sj=t; ma

6、in() char *ss=“bcc ( A) xy, aaaacc ( B) aaaacc, xy ( C) bcc, aabcc ( D) aabcc, bcc 33 有以下程序 #include stdio.h intf(int x) int y; if(x=0|x=1) return(3); y=x*x-f(x-2); return y; main() int z; z=f(3); printf(“%dn“, z); 程序的运行结果是 ( A) 0 ( B) 9 ( C) 6 ( D) 8 34 下面程 序段的运行结果是 char str=“ABC“, *p=str; printf(“

7、%dn“,*(p+3); ( A) 67 ( B) 0 ( C)字符 C的地址 ( D)字符 C 35 若有以下定义 struct link int data; struct link *next; a, b, c, *p, *q; 且变量 a和 b之间已有如下图所示的链表结构: 指针 p指向变量 a, q指向变量 c。则能够把 c插入到 a和 b之间并形成新的链表的语句组是 ( A) a.next=C; c.next=b; ( B) p.next=q; q.next=p next; ( C) p- next=break; casea:printf(“good“);break; caseC:p

8、rintf(“morning“); cased:printf(“class“); 39 写出下列程序的输出结果 _。 main() int n=0; while(n+ =1); printf(“%d,“,n); printf(“%d“,n+); 39 下列程序的功能:对输入的一行字符中的数字字符的字面值累加,输出此累加和,请填空。 #include stdio.h #include ctype.h main() char c; int a,s=0; while(_) if(isdigit(c) a=c-0;s+=a; printf(“s=%d“,s); 39 下列程序输出的结果是 _。 int

9、 m=17; int fun(int x,int y) int m=3; return(x*y-m); main() int a=5,b=7; printf(“%dn“,fun(a,b)/m); 39 设有下列的程序段: char str=“Hello“; char*ptr; ptr=-str; 执行上面的程序段后, *(ptr+5)的值为 _。 39 若有定义 int a44=1,2,3,4,0,4,6,8,10,1,3,5,7,则初始化后, a11得到的初值是 _。 39 设有下列程序: #include stdio.h #include string.h main() int i; ch

10、ars10,t10; gets(t); for(i=0;i 2;i+) gets(s); if(strcmp(t,s) 0)strcpy(t,s); printf(“%sn“,t); 程序运行后,从键盘上输入 ( CR代表回车符 ): CDEF CR BADEF CRQTHRG CR,则程序的输出结果是 _。 39 下列程序的输出结果是 _。 #define P(A) printf(“%d,“,(int)(a) #define PRINT(a)P(a);printf(“the end“) main() int i,a=0; for(i=1;i 5;i+) PRINT(a+i); printf(

11、“n“); 国家二级( C语言)笔试模拟试卷 167答案与解析 1 【正确答案】 B 【试题解析】 N-S图是由 Nassi和 Shneiderman提出的一种符合程序化结构设计原则的图形描述工具。它的提出是为了避免流程图在描述程序逻辑时的随意性上灵活性。 2 【正确答案】 D 【试题解析】 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限制使用 goto语句,总的来说可使程 序结构良好、易读、易理解、易维护。 3 【正确答案】 B 【试题解析】 模块的独立程度可以由两个定性标准度量:耦合性和内聚性。耦合性是衡量不同模块彼此间互相依赖 (连接 )的紧密程度;内聚性是衡量一个

12、模块内部各个元素彼此结合的紧密程度。一般来说,要求模块之间的耦合尽可能地低,而内聚性尽可能地高。 4 【正确答案】 D 【试题解析】 需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象 (组织、部门、企业等 ),充分了解原系统的工作概况,明确用户的各种需求,然后在 此基础上确定新系统的功能。选项 A)软件开发方法是在总体设计阶段需完成的任务;选项 B) 软件开发工具是在实现阶段需完成的任务;选项 C)软件开发费用是在可行性研究阶段需完成的任务。 5 【正确答案】 A 【试题解析】 算法具有 5个特性: 有穷性:一个算法必须 (对任何合法的输入值 )在执行有穷步之

13、后结束,且每一步都可在有限时间内完成,即运行时间是有限的; 确定性:算法中每一条指令必须有确切的含义,读者理解时不会产生歧义; 可行性:一个算法是可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限 次来实现; 输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合; 输出:一个算法有一个或多个输出。 6 【正确答案】 D 【试题解析】 在最坏情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都为 n(n-1)/2,堆排序需要的比较次数为 nlogn2。 7 【正确答案】 B 【试题解析】 由栈 “后进先出 ”的特点可知: A)中 e1不可能比 e2先出, C)中

14、e1不可能比 e2先出, D)中栈是先进后出的,所以不可能是任意顺序。 B)中出栈过程如下图所示: 8 【正确答案】 D 【试题解 析】 在关系运算中,交的定义如下:设 R1和 n2为参加运算的两个关系,它们具有相同的度 n,且相对应的属性值取自同一个域,则 R1R2为交运算,结果仍为度等于 n的关系,其中,交运算的结果既属于 R1,又属于 R2。 9 【正确答案】 D 【试题解析】 数据处理是指将数据转换成信息的过程,故选项 A)叙述错误;数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,故选项 B)叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对

15、应存储文件中的字段,故选项 C)叙述错误。 10 【正确答案】 C 【试题解析】 算法具有的 5个特性是:有穷性;确定性;可行性;有 0个或多个输入;有一个或多个输出。所以说,用 C程序实现的算法可以没有输入但必须要有输出。 11 【正确答案】 B 【试题解析】 C语言规定标识符只能由字母、数字和下划线 3种字符组成,且第一个字符必须为字母或下划线,排除选项 C)和 D); C语言中还规定标识符不能为 C语言的关键字,而选项 A)中 void为关键字,故排除选项 A)。 12 【正确答案】 A 【试题解析】 选项 B)中,以 0开头表示是一个八进 制数,而八进制数的取值范围是 0 7,所以 -

16、080是不合法的;选项 C)和 D)中, e后面的指数必须是整数,所以也不合法。 13 【正确答案】 A 【试题解析】 C语言中 比 *优先级高,因此 line先与 5结合,形成 line5形式,这是数组形式,它有 5个元素,然后再与 line前面的 “*”结合,表示此数组是一个指针数组,每个数组元素都是一个基类型为 char的指针变量。 14 【正确答案】 B 【试题解析】 本题考查变量的定义方法。如果要一次进行多个变量的定义,则在它们之间要用逗号隔开 ,因此选项 A)和 D)错误。在选项 C)中,变量 c是一个浮点型指针,它只能指向一个浮点型数据,不能指向指针变量 b,故选项 C)错误。

17、15 【正确答案】 D 【试题解析】 输出格式控制符 %c表示将变量以字符的形式输出;输出格式控制符 %d表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为 a, 97;第二个输出语句输出的结果为 k=12。 16 【正确答案】 D 【试题解析】 本题是计算 50之内的自然数相加之和,题中 if语句括号中的条件表达式 !(i%5)&!(i%3)表明只有能 同时被 5和 3整除的数才符合相加的条件, 149之间满足这个条件的只有, 15、 30和 45,因为 s的初始值为 1,所以s=1+15+30+45=91。 17 【正确答案】 B 【试题解析】 满足表达式 (c =2&c

18、 =6)的整型变量 c的值是 2, 3, 4, 5,6。当变量 c的值不为 2, 4, 6时,其值只能为 3或 5,所以表达式 c!=3和 c!=5中至少有一个为真,即不论 c为何值,选项 B中的表达式都为 “真 ”。 18 【正确答案】 B 【试题解析】 两个 if语句的判断条件都不满足,程序只执行了 c=a这条 语句,所以变量 c的值等于 3,变量 b的值没能变化,程序输出的结果为 3, 5, 3。所以正确答案为 B)。 19 【正确答案】 D 【试题解析】 本题考查 switch语句,首先, x=1符合条件 casel,执行 switch(y)语句, y=0符合 case 0语句,执行

19、a+并跳出 switch(y)语句,此时 a=1。因为 case 1语句后面没有 break语句,所以向后执行 case2语句,执行 a+, b+,然后跳出 switch(x),得 a=2, b=1。 20 【正确答案】 B 【试题解析】 continue语句的作用是跳过本次循环体中余下尚未执行的语句,接着再一次进行循环条件的判定。当能被 2整除时, a就会增 1,之后执行continue语句,直接执行到 for循环体的结尾,进行 i+,判断循环条件。 21 【正确答案】 B 【试题解析】 t=1是将 t赋值为 1,所以循环控制表达式的值为 1。判断 t是否等于 1时,应用 t=1,注意 “=

20、”与 “=”的用法。 22 【正确答案】 A 【试题解析】 在 C语言中,数组元素是从 0开始的。指针变量 p指向数组的首地址, (p+2)就会指向数组中的第 3个元 素。题目中要求输出的是元素的值。 23 【正确答案】 C 【试题解析】 本题考查的是二维数组的定义和初始化方法。 C语言中,在定义并初始化二维数组时,可以省略数组第一维的长度,但是不能省略第二维的长度。故选项 C)错误。 24 【正确答案】 B 【试题解析】 在内存中,字符数据以 ASCII码存 ()储,它的存储形式与整数的存储形式类似。 C语言中,字符型数据和整型数据之间可以通用,也可以对字符型数据进行算术运算,此时相当于对它

21、们的 ASCII码进行算术运算,在本题中,s+相当于 s=s+1,即 让 s指向数组中的下一个元素。 25 【正确答案】 C 【试题解析】 该题稍微难一点。主要要搞清楚以下几点: 定义了一个指针数组 char*p2后,程序中第一个循环 for(i=0; i 2; i+)pi=chi;的作用,是使指针数组的 p0元素 (它本身是一个指针 )指向了二维数组 ch的第一行字符串,并使指针数组的 p1元素指向二维数组 ch的第二行字符串,这样,就使指针数组 p和二维数组 ch建立起了一种对应关系,以后对二维数组 ch的某个元素的引用就有两种等价的形式: chij或 pij。 对二维数组 ch的初始化,

22、使其第一行ch0中存入了字符串 “693 26 【正确答案】 D 【试题解析】 在格式输入中,要求给出的是变量的地址,而 D)答案中给出的 s1是一个值的表达式。 27 【正确答案】 D 【试题解析】 C语言中的预处理命令以符号 #开头,这些命令是在程序编译之前进行处理的,选项 D)的描述错误。 28 【正确答案】 B 【试题解析】 本题中, typedef声明新的类型名 PER来代替已有的类型名, PER代表上面指定的一个结构体类型,此时,也可 以用 PER来定义变量。 29 【正确答案】 B 【试题解析】 getchar函数的作用是从终端读入一个字符。 30 【正确答案】 B 【试题解析】

23、 选项 A)中,定义的初值个数大于数组的长度;选项 C)中,数组名后少了中括号;选项 D)中,整型数组不能赋予字符串。 31 【正确答案】 A 【试题解析】 在给 p和 q数组赋初值时,系统会自动添加字符串结束符,从题目中可以看出数组 p和 q都有 3个字符,所以长度均为 3。 32 【正确答案】 A 【试题解析】 函数 fun(char*s, int n)的功能是对字符串数组的元素按照字符串的长度从小到大排序。在主函数中执行 fun(ss, 5)语句后, *ss=“xy“, “bcc“, “ bbcc“, “aabcc“, “aaaacc“, ss0, ss4的输出结果为 xy, aaaac

24、c。 33 【正确答案】 C 【试题解析】 函数 int f(int x)是一个递归函数调用,当 x的值等于 0或 1时,函数值等于 3,其他情况下 y=x2-f(x-2),所以在主函数中执行语句 z=f(3)时, y=3*3-f(3-2)=9=f(1)=9-3=6。 34 【正确答案】 B 【试题解析】 考查指向字符串的指针变量。在该题中,指针变量 p指向的应该是该字符串中的首地址, p+3指向的是字符串结束标志 0的地址,因而 *(p+3)的值为 0。 35 【正确答案】 D 【试题解析】 本题考查链表的数据结构,必须利用指针变量才能实现,即一个结点中应包含一个指针变量,用它存放下一结点的

25、地址。 36 【正确答案】 B 【试题解析】 以 “wt”方式写入的是字符文件,转义字符 n被看做两个字符来处理。而 “wb”方式写入的是 二进制文件,转义字符 n是一个字符。 37 【正确答案】 A 【试题解析】 本题考查的是位运算的知识,对于任何二进制数,和 1进行异或运算会让其取反,而和 0进行异或运算不会产生任何变化。 38 【正确答案】 C 【试题解析】 本题主要考查的是用二维数组首地址和下标来引用二维数组元素的方法。通过分析可知,程序中的双重循环定义了一个如下的二维数组:由于数组的下标是从 0开始的,所以二维数组元素 aij表示的是二维数组 a的第 i+1行、第 j+1列对应位置的

26、元素。 39 【正确答案】 A 【试题解析】 函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针型。它的作用是将一个变量的地址传递到另一个函数中。当数组名作参数时,如果形参数组中的各元素的值发生变化,实参数组元素的值也将随之发生变化。 39 【试题解析】 在数据存储结构中,除了要存储数据,还要存储数据的前后件关系,对于顺序存储的数据结构,前后件之间的关系,是通过存储空间的位置来实现的,而对于链式存储来说,数据元素之间的前后件关系是通过指针来实现的。 39 【试题解析】 队列是一种特殊的线性表,只允许在表的一端插 入元素,在表的另一端删除元素,插入元素的一端叫做 “队尾 ”,删除元素的一

27、端叫做 “队头 ”,先插入的元素先被删除,是按先进先出的原则组织数据的。 39 【试题解析】 满二叉树的叶子结点都在最后一层,即第 4层,且第 4层的结点达到最大数,即 25-1(上标 )=16。 39 【试题解析】 在面向对象的方法中,把具有相同属性和方法的对象称为类,类是对象的抽象,对象是类的实例。 39 【试题解析】 Jackson方法是一种结构化分析方法,它是一种面向数据结构的结构化方法。 39 【试题解析】 本题考查 逗号表达式的运算规则。逗号表达式的基本格式为:“表达式 1,表达式 2, ” ,其整个表达式的结果取最后一个子表达式的值。 本题中首先计算逗号表达式中的第 1个表达式

28、a=2*3=6,然后计算第 2个表达式a*2,这时整个表达式的值为 12,但要注意,因为第 2个表达式并没有给 a赋值,因此 a的值不变;接下来执行最后一个表达式 a+6=12,所以整个表达式最后的值为 12。 39 【试题解析】 上面的表达式中,通过强制类型转换把最后参与运算的数据都转换成了 int型,所以最后得到的结果也是 int类型。 39 【试题解析 】 本题考查了两个知识点: “+、 -”运算后缀形式是先使用变量原来的值,使用完后再使其增 1或减 1; 在 switch语句中,当 n=c时,执行“casec:”,输出 morning;因为此句中没有 break语句,因此接着执行 “c

29、ased:”,输出 class,最终输出结果为 morningclass。 39 【试题解析】 本题在 while(n+ =1)语句后,直接加了分号,说明如果 while()的条件为真时,该循环什么都不做; n+是先取 n的当前值和 1做比较,然后再将n加 1。第一次循环, n=0时,循环条件 n+=0 =1成立,执行循环,然后得到n=1。第二次循环, n=1时,循环条件 n+=1 =1成立,执行循环,然后得到n=2。第三次循环, n=2时,循环条件 n+=2 =1不成立,不执行循环,但在判断循环条件时仍将 n加 1,得到 n=3。退出循环后执行 printf语句,第二个 printf语句输出

30、 n+,是先输出 n的当前值 3 39 【试题解析】 分析题目可知,程序中运用函数 c=getchar()从标准输入设备读取下一个字符,而且是一行的字符 (即没有换行 ),所以条件为 (c=getchar()!=n。 39 【试题解析】 本题考查局部变量和全局变量的区别:局部变量是指作用域在函数级和块级的变量,全局变量是指作用域在程序级和文件级的变量。 本程序首先定义了一个全局变量 m=17, m=17的作用域在整个程序内。在 fun函数内部定义了一个局部变量 m=3, m=3的作用域仅在 fun函数内部,通过 fun函数返回两个形参的积再减 m。在主函数中,输出 fun(a,b)/m=(5*

31、7-3)/17=1。 39 【试题解析】 本题涉及字符数组和指针的两个知识点: 在 C语言中,字符型数组在存放字符串时会自 动在末尾加上字符串结束标识符 0,所以题中数组 str有 6个元素。 ptr指向数组 str的首地址, ptr+5是指向 str5, *(ptr+5)是引用str5的值,即 0。 39 【试题解析】 二维数组可以看成是按矩阵形式排列的,题目中给二维数组赋初值是按行分段赋值的, a44可以分解为 4个一维数组,其数组名分别为 aO、a1、 a2、 a3,这 4个一维数组都有 4个元素, a0的元素为 a00、 a01、a02、 a03。 39 【试题解析】 strcmp(t

32、,s)函数用来比较 t和 s所指字符串的大小,若 t s,则函数值大于 0;若 t=s,则函数值等于 0;若 t s,则函数值小于 0。 strcpy(t,s)函数的功能是把字符数组 s所指字符串的内容复制到字符数组 t所指的存储空间中。 本题中, t10=“CDEF“。第一次循环, s10=“BADEF“, if语句的控制条件strcmp(t,s) 0不成立,接着执行第二次循环, s=“QTHRG“, if语句的控制条件strcmp(t,s) 0成立,执行下列的语句,将字符数组 s所指字符串的内容复制到字符数 39 【试题解析】 本题考查带参数的宏的定义。第 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。

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

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

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