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

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

1、国家二级( C语言)笔试模拟试卷 40及答案与解析 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)软件开发过程 6 检查软件产品是否符合需求定义的过程称为 ( A)确认测试 ( B)集成测试 ( C)验证测试 ( D)验收测试 7 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数 据流图合法图符的是 ( A)控制流 ( B)加工 ( C)数据存储 ( D)源和潭 8 应用数据库的主要目的是 ( A)解决数据保密问题 ( B)解决数据完整性问题 ( C)解决数据共享问题 (

3、D)解决数据量大的问题 9 在数据库设计中,将 E-R图转换成关系数据模型的过程属于 ( A)需求分析阶段 ( B)逻辑设计阶段 ( C)概念设计阶段 ( D)物理设计阶段 10 在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是 ( A)数据库系统 ( B)文件系统 ( C)人工管理 ( D)数据项管理 11 下面各选项中,均是 C语言合法标识符的选项组是 ( A) 33 we auto ( B) _23 me _3ew ( C) _43 3e_ else ( D) ER-DF 32 12 下列关于复合语句和空语句的说法错误的是 ( A)

4、复合语句是由 “”开头,由 “”结尾的 ( B)复合语句在语法上视为一条语句 ( C)复合语句内,可以有执行语句,不可以有定义语句部分 ( D) C程序中的所有语句都必须由一个分号作为结束 13 关于 printf()函数的返回值叙述正确的是 ( A)通常是本次调用中输出字符的个数 ( B)通常是输出的第一个数值 ( C)通常返回布尔值真 ( D)通常返回非零值 14 以下对 C语言函数的有关描述中,正确的是 ( A)在 C语言中调用函数时,只能把实参的值传给形参,形参的值不能传送给实参 ( B) C函数既可以嵌套定义又可以递归调用 ( C)函数必须有返回值,否则不能使用函数 ( D)函数必须

5、有返回值,返回值类型不定 15 假定 int类型变量占用两个字节,有定义: int x10=0, 2, 4;,则数组 x在内存 中占字节数是 ( A) 3 ( B) 6 ( C) 10 ( D) 20 16 以下对结构体类型变量的定义中,不正确的是 ( A) typedef struct aa int n; float m; AA; AA tdl; ( B) #define AA struct aa AA int n; float m; tdl; ( C) struct int n; float m; aa; struct aa tdl; ( D) struct int n; float m;

6、 tdl; 17 C语言中,能识别处理的文件为 ( A)文本文件和数据块文件 ( B)文本文件和二进制文件 ( C)流文件和文本文件 ( D)数据文件和二进制文件 18 现在有以下定义, int a; double b; float c; char k;则下面的表达式 a/b+c-k值的类型为: ( A) int ( B) double ( C) float ( D) char 19 若有定义: char*st=“how are you“;下列程序段中正确的是 ( A) char a11, *p; strcpy(p=a+1, y=y+z;x=x+y; printf(“%d“, x y?y:x)

7、; printf(“%d“, x y?x+:y+); printf(“%d“, x); printf(“%d“, y); 运行结果是【 】 57 若有以下函数定义,函数返回值的类型是【 】。 fun(double A) return a*a*a; 58 要使以下程序段输出 10个整数,请填入一个整数; for(i=0; i =【 】; printf(“%dn“, i+=2); 59 下面程序的功能是【 】。 double sub(double x, int y) int n; double z; for(n 1, z x; n y; n+) z z* x; return z; main() d

8、ouble a=2.0, b 4.0, c; c sub(a, b) ; printf(“%f“, c) ; 60 若想通过以下输入语句给 a赋值 1,给 b赋值 2则输入数据的形式应该是【 】。 int a, b; scanf(“a %d, b %d“, struct node * next; ; void creatlist(【 】 ) char ch; struct node * s, * r; * phd= malloc( sizeof (struct node); r= * phd; ch=getchar(); while(ch != ) s malloc(sizeof(struct

9、 node); s- data=ch; r- next=s; r=s; ch= getchar(); ; r- next=【 】; main ( ) struct node * head; head= NULL; creatlist(【 】 ) 国家二级( C语言)笔试模拟试卷 40答案与解析 1 【正确答案】 D 【试题解析】 算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。 2 【正确答案】 C 【 试题解析】 链式存储结构克服了顺序存储结构的缺点:它的结点空间可以动态申请和释

10、放;它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。故链式存储结构下的线性表便于插入和删除操作。 3 【正确答案】 C 【试题解析】 数据结构概念一般包括 3个方面的内容,数据的逻辑结构、存储结构及数据上的运算集合。数据的逻辑结构只抽象的反映数据元素之间的逻辑关系,而不管它在计算机中的存储表示形式。 4 【正确答案】 D 【试题解析】 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化 及限制使用 go to语句,总的来说可使程序结构良好、易读、易理解、易维护。 5 【正确答案】 B 【试题解析】 软件设计包括软件结构设计、数据设计、接口设计和过程设计。其中结构设计

11、是定义软件系统各主要部件之间的关系;数据设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部、软件和操作系统之间及软件与人之间如何通信;过程设计则是把系统结构部件转换成软件的过程性描述。 6 【正确答案】 A 【试题解析】 确认测试的任务是验证软件的功能和性能,以及其他特性是否满足需求规格说明中 确定的各种需求;集成测试的主要目的是发现与接口有关的错误。 7 【正确答案】 A 【试题解析】 数据流图包括 4个方面,即加工 (转换 )(输入数据经加工变换产生输出 )、数据流 (沿箭头方向传送数据的通道,一般在旁边标注数据流名 )、存储文件 (数据源 )(表示处理过程中存放各种数据

12、的文件 )、源和潭 (表示系统和环境的接口,属系统之外的实体 )。不包括选项中的控制流。 8 【正确答案】 C 【试题解析】 数据库中的数据具有 “集成 ”与 “共享 ”的特点,亦即是数据库集中了各种应用的数据,进行统一构造与存储,而 使它们可以被不同应用程序所使用,故选项 C)正确。 9 【正确答案】 B 【试题解析】 E-R模型即实体 联系模型,是将现实世界的要求转化成实体、联系、属性等几个基本概念,以及它们之间的两种联接关系。数据库逻辑设计阶段包括以下几个过程:从 E-R图向关系模式转换,逻辑模式规范化及调整、实现规范化和 RDBMS,以及关系视图设计。 10 【正确答案】 A 【试题解

13、析】 人工管理阶段是在 20世纪 50年代中期以前出现的,数据不独立,完全依赖于程序;文件系统是数据库系统发展的初级阶段,数据独立性差;数 据库系统具有高度的物理独立性和一定的逻辑独立性。 11 【正确答案】 B 【试题解析】 合法的标识符是由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,用户定义的标识符不能与关键字相同。选项 A),数字不能为第一个字母, auto为关键字;选项 C)中,也是数字不能为第一个字母, else为关键字;选项 D)中负号不合法。 12 【正确答案】 C 【试题解析】 复合语句内,不仅可以有执行语句,而且还可以有定义语句部分。定义语句应该出现在可执行语句

14、前面。 13 【正确答案】 A 【试题解析】 printf函数的返回值通常是本次调用中输出字符的个数。 scanf函数在调用结束后将返回一个函数值,其值等于得到输入项的个数。 14 【正确答案】 A 【试题解析】 C语言中的函数可以进行递归调用,但是不能在函数中定义函数,函数不必要有返回值,若有返回值,则返回值类型必确定。 15 【正确答案】 D 【试题解析】 x数组共有 10个元素,在花括弧内只提供 3个初值,这表示只给前面的 3个成员赋值,后 7个元素的值为 0,所以,一共有 20个字节。 16 【正确答案】 C 【试 题解析】 定义结构体类型的变量有几种的方法如下: 定义结构体类型的同时

15、,定义结构体类型的变量,如下面的定义中在定义结构体类型 aa的同时定义了该类型的变量 tdl。上述 B)项中将宏名 AA用宏体 struct aa替换进去后,与该定义形式一样,因此是正确的。这一定义形式中,结构体类型名明是可以省略的,因此, D)项也是正确的。 struct aa tdl; 先定义结构体类型,然后再定义结构体类型的变量,形式如下: struct aa ; struct aa tdl; 这种定义形式也可演变为,先用类型定义语句 typedef将该结构体类型定义成一个类型名 AA,然后直接用该类型名 AA去定义一个变量 (这时不再需要使用关键字 struct了 )。这就是 A)项的

16、形式。 17 【正确答案】 B 【试题解析】 在计算机中,对于输入输出均采用数据流的形式。文件按照存取方式分为顺序存取文件和随机存取文件。按照存储形式分为二进制文件和文本文件。文本文件存储的是一个 ASCII码,文件的内容可以直接进行输入输出。二进制文件直接将字符存储, 不能将二进制文件的内容直接输出到屏幕上。所以, C语言所能够处理文件是按照存放形式分为文本文件和二进制文件。 18 【正确答案】 B 【试题解析】 双目运算中两边运算量类型转换规律: 运算数 1 运算数 2 转换结果类型 短整型 长整型 短整型 -长整型 整型 长整型 整型 -长整型 字符型 整型 字符型 -整型 有符号整型无

17、符号整型有符号整型 -无符号整型 整型 浮点型 整型 -浮点型 在 a/b的时候, a, b的类型不一致,根据类型转换规则,把整型转换成 double类型,之后的加,减类似。转化规则为 char,shortintunsignedlongdoublefloat 19 【正确答案】 A 【试题解析】 本题综合考查字符数组的赋值和 strcpy函数的用法。 C语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的: strl=“China”,如果想把 “China”这 5个字符放到数组 strl中,除了逐个地输入外,还能使用 strcpy函数,该函数的功能是将一个字符串复制到一字符数组中。例如

18、: strcpy(strl,“China”);或 strcpy(strl, str2);注意,不能企图用以下语句来实行赋值 (将 str2的值传给 strl): strl=str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。 strcpy函数的结构是: strcpy(字符数组 1,字符串 2) 其中,需要注意的是,字符数组 1的长度不应小于字符串 2的长度, “字符数组1”必须写成数组名形式,如 (strl), “字符串 2”可以是字符数组名,也可以是 字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。 20 【正确答案】 B 【试题解析】 选项 A)中

19、的赋值方法为 Pascal语言赋值格式; C语言中赋值直接为 “=”,无冒号;选项 D)中 “x+5=y+2”赋值格式错误,赋值号左边不可以出现常量,也不可以同时出现两个变量。选项 C)应改为 (float)8%3 21 【正确答案】 D 【试题解析】 本题是计算 50之内的自然数相加之和,题中 if语句括号中的条件表达式 !(i%5)&! (i%3)表明只有能同时被 5和 3整除的数才符 合相加的条件, 149之间满足这个条件的只有 3个数, 15, 30, 45,因为 s的初始值为 1,所以s=1+15+30+45= 91。故正确答案为 D)。 22 【正确答案】 A 【试题解析】 本题考

20、查的是三目运算符的用法,三目运算符的形式为 (表达式1)?(表达式 2): (表达式 3)。当 (表达式 1)的值为真时,求 (表达式 2)的值为整个表达式的值;如果 (表达式 1)的值为假,则求 (表达式 3)的值为整个表达式的值。题中,表达式 x 12的结果为假,所以执行的语句是 x-12,最终 y的值应该是 0。 23 【正 确答案】 B 【试题解析】 t=1是将 t赋值为 1,所以循环控制表达式的值为 1。而判断 t是否等于 1时应用 t= 1,注意 “=”与 “=”的用法。 24 【正确答案】 D 【试题解析】 本题考查了求数据类型长度的运算符 sizeof和求字符串长度的函数str

21、len的区别。 strlen计算的是一个字符串的实际字符个数,如果字符串放在字符数组中,则函数 strlen的值为 0之前的全部字符个数。而 sizeof求出的是数据占据存储空间的字节数,当然也要包括字符串的结束标志符 0。 25 【正确 答案】 B 【试题解析】 选项 A)中,定义的初值个数大于数组的长度;选项 C)中,数组名后少了中括号;选项 D)中,整型数组不能赋予字符串。 26 【正确答案】 B 【试题解析】 本题考查函数的综合知识。首先,我们可以利用强制转换类型转换运算符将一个表达式转换成所需类型。如: (double)a是将 a转换成 double类型;(int)(x+y)是将 x

22、+y的值转换成整型。 本题可按部就班地逐步运算: fun(int)fun(a+c, b), a-c) fun(int)fun(10, 5), 2-8) fun(int)15.000000, -6) fun(15, -6) 9 27 【正确答案】 D 【试题解析】 字符型指针变量 p中存放的是 “china“的首地址,所以选项 A)和 B)错误。 e数组长度为 6,而 p所指向的字符串长度为 5,二者不相等,排除选项C)。 28 【正确答案】 C 【试题解析】 本题考查了通过数组首地址引用数组元素的方法。第一次执行fun(a)后, a0=3, a 1=5。第二次执行 fun(a)时,因为 sta

23、tic变量 j保存着上次执行 时的值为 2,所以 a2=7,最后数组 a= 3, 5, 7, 4, 5。故正确答案为选项C)。 29 【正确答案】 C 【试题解析】 本题主要考查的用二维数组首地址和下标来引用二维数组元素的方法。通过分析可知,程序中的双重循环定义了一个如下的二维数组:由于数组的下标是从 0开始的,所以二维数组元素 aij表示的是二维数组 a的第i+1行、第 j+1列对应位置的元素。 30 【正确答案】 A 【试题解析】 C语言中 比:优先级高,因此 line先与 5结合,形成 line5形式,这是数组 形式,它有 5个元素,然后再与 line前面的 “*”结合,表示此数组是一个

24、指针数组,每个数组元素都是一个基类型为 char的指针变量。 31 【正确答案】 A 【试题解析】 函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传递到另一个函数中。当数组名作参数时,如果形参数组中的各元素的值发生变化,实参数组元素的值随之发生变化。 32 【正确答案】 C 【试题解析】 该题稍微难一点。主要要搞清楚以下几点: 定义了一个指针数组 char p2后,程序中 第一个循环 for(i=0; i 2; i+)pi=chi;的作用,是使指针数组的 p0元素 (它本身是一个指针 )指向了二维数组 ch的第一行字符串,并使指针数组的 p11)元素

25、指向了二维数组 ch的第二行字符串,这样,就使指针数组p和二维数组 ch建立起了一种对应关系,以后对二维数组 ch的某个元素的引用就有两种等价的形式: chij或 pij。 对二维数组 ch的初始化,使其第一行ch0中存入了字符串 “6937“,第二行 ch1中的内容为字符串 “8254“。 程序中第二个循环中的循环体 s=e*10+pij-0;的功能是这样的,每执行一次,将 s中的值乘以 10(也即,将 s中的数值整体向左移动一位,并在空出来的个位上添一个0),再将当前 pij中的字符量转换为相应的数字,然后把这个数字加到 s的个位上。 注意到内层循环的循环条件 pij, 0,是指 pij中

26、的字符只要不是字符串结束标志, 0,就继续循环,语句 j+=2;是使下标 j每次增加 2,也即一个隔一个地从 pi所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从 p 0所指向的字符串 “6937“中一 个隔一个地取出字符,分别是 6和 3,然后从 p1所指向的字符串 “8254“中一个隔一个地取出字符,分别是 8和 5,同时经过转换和相加运算后,结果 s中的值应该是 6385,所以,正确答案是 C)。 33 【正确答案】 B 【试题解析】 在内存中,字符数据以 ASCII码存储,它的存储形式就与整数的存储形式相类似。 C语言使字符型数据和整型数据之间可以通用。也可以对字符数据

27、进行算术运算,此时相当于对它们的 ASCII码进行算术运算,在本题中, s+相当于 s=s+1,即让 s指向数组中的下一个元素。 34 【正确答案】 A 【试题解析】 在 C语言中,数组元素是从 0开始的。指针变量 p指向数组的首地址, (p+2)就会指向数组中的第 3个元素。题目中要求输出的是元素的值。 35 【正确答案】 A 【试题解析】 本题考查了带参数的宏定义,参数只是简单的替换而不是把其值求出后替换形式参数。本题中用 a抖替换 X,用 b+替换 Y,再求 (a+)*(b+)的值。 36 【正确答案】 A 【试题解析】 运算符 表示为两数的按位异或运算,异或运算的规则是参与运算的两个运

28、算数中相对应的二进制位上, 若数相同,则该位的结果为 0;数不同,则该位的结果为 1。 37 【正确答案】 B 【试题解析】 该题目测试考生对宏替换的理解。这是一种简单的情况:不带参数的宏。关键要注意在对 2*M+1进行宏替换时,要将宏名 M原封不动地代进去,得到 NUM的形式为 2*N+1+1(千万不要随意给 N+1加上小括号,使 NUM变为2。 (N+1)+ 1,这就是宏名和变量名之间的区别 ),在将 N代进去,得到 NUM的值为 6。 38 【正确答案】 A 【试题解析】 本题中,首先定义了一个共用体 pw,其中有两个域:整型变量 i和字 符数组 ch,因为共用体中的域是共享内存空间的,

29、又数组的元素有低到高存储: ch 0在低字节, ch1在高字节。整型变量 i占两个字节,高位与 ch1共用存储空间,低位与 ch0共用存储空间,而高位 ch1的值为 0,所以输出的成员变量i的值就是 ch 0的值 13。 39 【正确答案】 A 【试题解析】 在给 p和 q数组赋初值时,系统会自动添加字符串结束符,从题目中可以看出数组 p和 q都有 3个字符,所以长度均为 3。 40 【正确答案】 B 【试题解析】 本题中, typedef声明新的类 型名 PER来代替已有的类型名, PER代表上面指定的一个结构体类型,此时,也可以用 PER来定义变量。 41 【正确答案】 B 【试题解析】

30、continue语句的作用是跳过本次循环体中余下尚未执行的语句,接着再一次进行循环条件的判定。当能被 2整除时, a就会增 1,之后执行 continue语句,直接执行到 for循环体的结尾,进行 i+,判断循环条件。 42 【正确答案】 A 【试题解析】 在本题中, while(*p2=*p1) !=0)有两个作用,一个是判断条件是否成立以决定是否 再次进入循环,另一个作用是判定前先完成 *p2 =*p1,该处的作用是把 p1所指存储单元的字符逐一送 p2所指存储单元中,直到 p1所指单元内容为 0为止。 43 【正确答案】 D 【试题解析】 本题考查指向字符串的指针的运算方法。指针变量 p

31、首先指向字符串中的第一个字符 A,执行 p=s+1后, p指向字符串中的第二个字符 B,然后输出值 “BCD“并换行。依次执行循环语句。 44 【正确答案】 B 【试题解析】 本题中的二维数组的每个元素就是一个由 3个元素构成的一维数组,根据条件 for(k=0; k 3; +)和要求的 akk可以得出本题的答案应该是 9 5 1。 45 【正确答案】 B 【试题解析】 考查指向字符串的指针变量。在该题中,指针变量 p指向的应该是该字符串中的首地址, p +3指向的是字符串结束标志 0的地址,因而。 (p+3)的值为 0。 46 【正确答案】 B 【试题解析】 此题考查了函数指针的概念,函数指

32、针是定义一个指针指向函数的入口地址,可用这个指针来调用函数。 47 【正确答案】 D 【试题解析】 本题考查链表的数据结构,必须利用指针变量才能实 现,即一个结点中应包含一个指针变量,用它存放下一结点的地址。 48 【正确答案】 C 【试题解析】 定义一个结构的一般形式为: struct结构名 成员列表 ; 本题中, stutype是在声明类型的同时定义的 struct stu类型的变量。而不是用户定义的结构体类型名。我们需要注意以下几点: 类型与变量是不同的概念; 对结构体中的成员,可以单独使用,它的作用与地位相当于普通变量; 成员也可以是一个结构体变量; 成员名可以与程序中的变量名相同,二

33、者不代表同一对象。 49 【正确答案】 B 【试题解析】 本题考查函数 fseek的用法。 fseek函数的调用形式为: fseek(文件指针,位移量,起始点 ) “起始点 ”用 0, 1或 2代替, 0代表 “文件开始 ”, 1为 “当前位置 ”, 2为 “文件末尾 ”。 “位移量 ”指以 “起始点 ”为基点,向前移动的字节数。 ANSIC和大多数 C版本要求位移量是 long型数据。这样当文件的长度大于 64k时不致出现问题。 ANSI C标准规定在数字的末尾加一个字母 L,就表示 long型。 50 【正确答案】 B 【试题解析】 以 “wt”方式写入的是字符文件,转义字符 n被看作两个

34、字符来处理。而 “wb“方式写入的是二进制文件,转义字符 n是一个字符。故正确答案为选项 B)。 51 【正确答案】 交换排序 52 【正确答案】 概要 53 【正确答案】 可重用性 54 【正确答案】 输出结果 55 【正确答案】 数据模型 56 【正确答案】 3, 2, 3, 3 57 【正确答案】 int类型 58 【正确答案】 18或 19 59 【正确答案】 本程序的功能是求 a的 b次方 60 【正确答案】 a 1, b 2 61 【正确答案】 0 n+ 62 【正确答案】 (*B) dat .b- day 63 【正确答案】 p=j xip LineMax(x) 64 【正确答案】 struct node * *phd NULL &head

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

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

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