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

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

1、国家二级( C语言)笔试模拟试卷 114及答案与解析 1 算法的空间复杂度是指 ( )。 ( A)算法程序的长度 ( B)算法程序中的指令条数 ( C)算法程序所占的存储空间 ( D)算法执行过程中所需要的存储空间 2 数据的存储结构是指 ( )。 ( A)数据所占的存储空间 ( B)数据的逻辑结构在计算机中的存放形式 ( C)数据在计算机中的顺序存储方式 ( D)存储在计算机外存中的数据 3 有下列二叉树,对此二叉树前序遍历的结果为 ( )。( A) ACFHIBEDG ( B) ABCDEFGHI ( C) ABDEGCFHI ( D) ABCDEFHGI 4 下列描述中正确的是 ( )。

2、 ( A)程序就是软件 ( B)软件开发不受计算机系统的限制 ( C)软件既是逻辑实体,又是物理实体 ( D)软件是程序、数据和相关文档的集合 5 两个或两个以上模块之间联系的紧密程度称为 ( )。 ( A)耦合性 ( B)内聚性 ( C)复杂性 ( D)数据传输特性 6 数据库技术的根本目标是要解决数据的 ( )。 ( A)存储问题 ( B)共享问题 ( C)安全问题 ( D)保护问题 7 下列不属于软件工程的 3个要素的是 ( )。 ( A)工具 ( B)过程 ( C)方法 ( D)环境 8 关系数据库管理系统能实现的专门关系运算包括 ( )。 ( A)排序、索引、统计 ( B)选择、投影

3、、连接 ( C)关联、更新、排序 ( D)显示、打印、制表 9 将 E-R图转换到关系模式时,实体与实体间的联系可以表示成 ( )。 ( A)属性 ( B)关系 ( C)键 ( D)域 10 设计数据库的存储结构属于 ( )。 ( A)需求分析 ( B)概念设计 ( C)逻辑 设计 ( D)物理设计 11 下列说法不正确的是 ( )。 ( A)一个 C语言源程序可以由一个函数组成也可以由多个函数组成 ( B) main()中的 “()”是函数的参数部分,括号内可为空,但括号不能省略 ( C) C语言程序是以函数为基本单位的 ( D)在 C语言程序中,注释行只能位于一条语句的后面 12 size

4、of(float)是 ( )。 ( A)一种函数调用 ( B)一种函数定义 ( C)一个浮点表达式 ( D)一个整型表达式 13 下列合法的声明语句是 ( )。 ( A) int_abc=50; ( B) double int=3+5e2.5; ( C) long do=1L; ( D) float 3_asd=3e-3: 14 下列叙述中正确的是 ( )。 ( A)在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式 ( B)实型变量中允许存放整型数 ( C)若 a和 b类型相同,在执行了赋值 a=b后, b中的值将放入 a中,但 b中的值不变 ( D)在 C程序中,求余运算符 “%

5、”两边的类型相同时才能进行运算 15 设 x、 y和 z是 int型变量,且 x=4, y=6, z=8,则下列表 达式中值为 0的是( )。 ( A) x printf(“%d, %d, %dn“, b, a, c); else c=b/a;printf(“%d, %d, %dn“, b, a, c); ( A) 4, 5, 12 ( B) 20 ( C) 5,4, 20 ( D) 12 21 定义 int*swap()指的是 _。 ( A)一个返回整型值的函 swap() ( B) 个返回指向整型值指针的 swap() ( C)一个指向函数 swap()的指针,函数返回一个整型值 ( D)

6、以上说法均错 22 以下程序段的输出结果是 _。 main() char s110, s210, s310; scanf(“%s“, s1); gets(s2);gets(s3); puts(s1); puts(s2); puts(s3); 输入数据如下: (此处 CR代表回车符 )aaa CR bbb CR ( A) aaa bbb ( B) aaa bbb ( C) aaa0bbb0 ( D) aaabbb 23 下述函数功能是 _。 int funr(char*x) char*y=x; while(*y+); return y-x-1; ( A)求字符串的长度 ( B)求字符串存放的位置

7、 ( C)比较两个字符串的大小 ( D)将字符串 x连接字符串 y后面 24 若有定义: int a410;,则以下选项中对数组元素 aii引用错 误的是_。 (0 =i 4, 0=i 10) ( A) *( a00十 10*i+j) ( B) *(a+i)+j ( C) *(a+i)+j) ( D) *(ai+j) 25 设有以下语句: char str1 =“string“mstr2 8,*str3,*str4=“string“; 则 _不是对库函数的正确调用。 ( A) strcpy(str1,“HELLO1“); ( B) strcpy(str2,“HELLO2“); ( C) str

8、cpy(str3,“HELLO3“); ( D) strcpy(str 4,“HELLO4“); 26 请读程序: #include stdio.h #include string.hmain() char*s1=“AbCdEf“,“*s2=“aB“; s1+; s2+; printf(“%dn“,strcmp(s1,s2); 上面程序的输出结果是 _。 ( A)正数 ( B)负数 ( C)零 ( D)不确定的值 27 以下程序输出的结果为 _。 main() char*alpha6=“ABCD“, “EFGH“,“IJKL“, “MNOP“, “QRST“, “UVWX“; char*p;

9、int i; p=alpha; for(i=0; i 4; i+) printf(“%s“,pi); ( A) ABCDEFGHIJKL ( B) ABCD ( C) ABCDEFGHIJKLMNOP ( D) AEIM 28 以下程序的输出结果是 _。 #include stdio.h void prt(int*x,int*y,int*z) printf(“%d,%d,%dn“,+*x,+*y,*(z+); int a=10,b=40,c=20;main() prt( ( A)没有错 ( B)第 1行有错 ( C)第 6行有错 ( D)第 7行有错 32 若有以下结构体定义,则是正确的引用或

10、定义。 struct example int x; int y; v1; ( A) example.x=10 ( B) examplev2.x=10 ( C) struct v2; v2.x=10 ( D) struct example v2=10; 33 下列程序的执行结果是 _。 #include stdio.h union un int i; char c2; ; void main() union un x; x.c0=10; x.c1=1; printf(“n%d“,x.i); ( A) 266 ( B) 11 ( C) 265 ( D) 138 34 已知形成链表的存储结构如下图所

11、示,则下述类型描述中 的空白处应填 _。 struct link char data; _; node; ( A) struct link next ( B) link*next ( C) struct next link ( D) struct link*next 35 下述程序向文件输出的结果是 _。 #include stdio.h void main() FILE*fp=fopen(“TEST“,“wb“); fprintf(fp,“%5.0f%c%d“,58,76273.0-,2278); fclose(fp); ( A) 58 76273-2278 ( B) 5876273.000

12、000-2278 ( C) 5876273-2278 ( D)因文件为二进制文件而不可读 36 已知小写字母 a的 ASCII码为 97,大写字母 A的 ASCII码为 65,以下程序的结果是 _。 main()unsigned int a=32,b=66; printf(“%cn“,a B) ; ( A) 66 ( B) 98 ( C) b ( D) B 37 C语言库函数 fgets(str,n,fp)的功能是 _。 ( A)从 fp指向的文件中读取长度 n的字符串存入 str旨向的内存 ( B)从 fp指向的文件中读取长度不超过 n-1的字符串存入 str指向的内存 ( C)从 fb指向

13、的文件中读取 n个字符串存入 str指向的内存 ( D)从 str读取至多 n个字符到文 fp 38 下面是对宏定义的描述,不正确的是 _。 ( A)宏不存在类型问题,宏名无类型,它的参数也无类型 ( B)宏替换不占用运行时间 ( C)宏替换时先求出实参表达式的值,然后代入形参运算求值 ( D)宏替 换只不过是字符替代而已 39 下面程序的输出结果是 _。 #include stdio.hmain() char*p=“BOOL“, “OPK“, “H“, “SP“; int i: for(i=3; i =0; i-,i-) printf(“%c“,*pi); printf(“n“); ( A)

14、 SO ( B) SP ( C) SPOPK ( D) SHOB 40 请读程序段: char str=“ABCD“,*p=str;printf(“%dn“,*(p+4);程序段的输出结果是 _。 ( A) 68 ( B) 0 ( C)字符 D的地址 ( D)不确定的值 41 实现算法所需的存储单元多少和算法的工作量大小分别称为算法的【 】。 42 数据结构包括数据的逻辑结构、数据的【 】以及列数据的操作运算。 43 一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【 】。 44 面向对象的模型中,最基本的概念是对象和【 】。 45 软件维护活动包括以下几类:改正性维

15、护、适应性维护、【 】维护和预防性维护。 46 下面程序的输出是【 】。 main() int arr10, i, k=0; for(i=0; i 10; i+) arri=i; for(i=1; i 4; i+) k+=arri+i; printf(“%dn“,k); 47 若 a=10, b=20,则表达式 !(a b)的值是【 】。 48 有以下程序 int fa(int x)return x*x; int fb(int x)return x*x*x; int f(int(*fl)(),int(*f2)(),int x return f2(x)-f1(x); main() int i;

16、i=f(fa,fb,2); printf(“%dn“, i); 程序运行后,输出结果是【 】。 49 下面程序的输出是【 】。 main() enum emem1=3, em2=l,em3; char*aa=“AA“, “BB“, “CC“, “DD“; printf(“%s%sn“,aaeml,aaem2,aaem3); 50 下列程序的输出结果是【 】。 int t(int x,int y,nt cp,int dp) cp=x*x+y*y; dp=x*x-y*y; main() int a=4, b=3, c=5, d=6; t(a,b,c,d); printf(“%d%dn“,c,d);

17、 51 有以下定义和语句,则 sizeof(a)的值是【 】,而 sizeof(a.share)的值是【 】。 struct date int day; int mouth; int year; unionint share1; float share2; share; a; 52 下述函数用于统计一行字符中的单词个数,单词之问用空格分隔。 word_num(str) char str; int i,num=0,word=0; fot(i=0;stri!=【 】 ;i+) if 【 】 =)word=0; else if(word=0) word=1; 【 】; return(num); 国家

18、二级( C语言)笔试模拟试卷 114答案与解析 1 【正确答案】 D 【试题解析】 一个算法的空间复杂度,一般是指执行这个算法所需的存储空间。一个算法所占用的存储空间包括算法程序所占 用的空间、输入的初始数据所占用的存储空间及算法执行过程中所需要的额外空间。 2 【正确答案】 B 【试题解析】 数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式。数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。 3 【正确答案】 C 【试题解析】 对二叉树的前序遍历是指:先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树

19、。 4 【正确答案】 D 【试题解析】 软件是运行在计算机硬 件之上的逻辑实体,包括程序、数据和相关的文档。软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制。 5 【正确答案】 A 【试题解析】 耦合性是模块间互相连接的紧密程度的度量,取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。 6 【正确答案】 B 【试题解析】 在数据库系统中,需要对数据进行集中、统一的管理,以达到被多个应用程序共享的目标。 7 【正确答案】 D 【试题解析】 软件工程包括 3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段 ;工具支持软件的开发、管理和文档生成;过程支持软件开发的各

20、个环节的控制、管理。 8 【正确答案】 B 【试题解析】 关系数据库管理系统的专门关系运算包括选择运算、投影运算和连接运算。 9 【正确答案】 B 【试题解析】 将 E-R图转换成指定 RDBMS中的关系模式是数据库逻辑设计的主要工作。从 E-R图到关系模式的转换是比较直接的,实体和联系都可以表示成关系。 10 【正确答案】 D 【试题解析】 物理设计阶段主要解决选择文件存储结构和确定文件存取方法的问题,包括选择存储结构 、确定存取方法、选择存取路径、确定数据的存放位置。 11 【正确答案】 D 【试题解析】 本题涉及 C语言基本的 3个知识点: C语言是以函数为基本单位的,每一个函数完成相对

21、独立的功能,一个程序可以包括多个函数,但有且仅有一个主函数; 主函数 main()的圆括号内是填写参数的,可以没有参数,但括号不可以省略; 程序的注释部分应该在 “/* ”之间,它允许出现在程序的任何位置。 12 【正确答案】 D 【试题解析】 sizeof (float)是 c语言内部规定的用于计算单精度型变量 (float)在计算机的内存中所占用的字节数量的函数,返回一个整数值。 13 【正确答案】 A 【试题解析】 C语言规定,标识符是由字母、数字或下画线组成,并且它的第一个字符必须是字母或者下画线。另外 C语言规定了一些专用的标识符,它们有着固定的含义,不能更改。 int就是表达变量类

22、型的标识符,它不能再用做变量名和函数名。 do是 c语言的一个关键字,出不能再用做变量名和函数名。 14 【正确答案】 B 【试题解析】 选项 A),在赋值表达式中,赋值号的左边只能是变量或者是代表某个存储单元的表 达式,不能是任意表达式。 在判断选项 B)时首先应该建立这杆的概念,整型变量中只能存放整型数,实型变量中能存放实型数,也能存放整型数。 选项 C),执行表达式 a=b后,将把变量 b存储单元中的值赋给变量 a,从而覆盖 a中原有的值,但 b中原有的值并不改变。 选项 D),在 C程序中,求余运算符 “%”两边的类型均为整型数据。 15 【正确答案】 D 【试题解析】 本题考查逻辑运

23、算符的使用。当 “”,其返回值等8。所以变量 sum的值等于 8。 20 【正确答案】 C 【试题解析】 本题考查 if else语句。第一个 if语句,先判断条件,发现 a b成立,执行下列的复合语句,得 c=a*b=20, b、 a的值不变。 21 【正确答案】 B 【试题解析】 一个函数可以带回一个整型值、字符值、实型值等,但也可以带回指针型数据,即地址 。本题的定义中,包括括号和 *号,由于 ()优先级高于 *。故它是 个返回整型指针的函数。 22 【正确答案】 B 【试题解析】 scanf是标准输入函数,在输入字符串 aaa时,实际的内容为“aaa0”, “0”是由系统自动加入的;

24、gets的功能是从终端读入一行字符,即一直读到换行符为止,并由系统自动以 “0”代替换行符。 23 【正确答案】 A 【试题解析】 在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到 NULL,最后返回字符串首尾地址的差值,即字符串的长度。 24 【正确答案】 B 【试题解析】 本题中选项 B是错误的引用, *(a+i)+j只代表了 aij的地址。 25 【正确答案】 C 【试题解析】 C语言中: strcpy(st1,st2);,其两个参数均为字符指针或字符数组,选项 C中的目的串指针 str3没有指向具体有效的存储单元,故是错误的调用。 26 【正确答案】 A 【试题解析】 函数

25、 strcmp的功能是比较字符串 s1和 s2,如果 s1 s2,则返回个正数:如果 s1 s2,则返回负数,否则返回零。由于本题中小写字母 b的 ASCII码值大于大写字母 B,故 s1 s2,所以函数的值为正数。 27 【正确答案】 C 【试题解析】 alpha0指向 “ABCD”的首地址; alpha1指向 “EFGH”的首地址;alpha2指向 “IJKL”的首地址,依此类推。当执行 p=alpha后, p指向指针数组alpha的首地址。 for循环中输出了 4个字符串。 28 【正确答案】 B 【试题解析】 由于实参传送的是变量的地址,所以对形参指针所指向的单元内容的改变,即对实参内

26、容的改变。 29 【正确答案】 C 【试 题解析】 事实上,无论有无 static修饰,外部变量都具有 A、 B和 C三科特性。作为 种修饰, static仅是限制此类型外部变量的引用范围:只能在定义它的文件范围内使用。 30 【正确答案】 B 【试题解析】 本题宏替换中遇到形参 x以实参 k+1代替,其他字符不变。SQR(k+1)展开后应为字符串 k+1*k+1。 31 【正确答案】 B 【试题解析】 字符串复制函数 strcpy包含在头文件 string.h中,因此,程序中的第 1行文件包含命令是错误的。 32 【正确答案】 D 【试题解析】 在定义结构体变量时,不能只用结构体名 exam

27、ple或关键字 struct进行定义,必需要用结构体类型名 struct example定义,在引用结构体成员变量时,需要用结构体变量名进行引用,所以选 D。 33 【正确答案】 A 【试题解析】 由于本题定义的是共用体,所以成员表列中的整型变景 x与字符数组 c共占用同 个存储单元,且此存储单元为 2个字节,通常 c0位于低字节,c1位于高字节,所以 x.i的值为 266。 34 【正确答案】 D 【试题解析】 在单向链表中,由于每 个结点需要存储下 个结点的地址,且下一个结点的数据类型与前 个结点的数据类型完全相同,故应为 struct link *next。 35 【正确答案】 C 【试

28、题解析】 fprintf函数工作时,多个数据间不会自动加分隔符,选项 A错误;浮点数的输出格式是 “%5.0f”表明其小数部分输出 0位,即没有输出,所以选项 B也是错误的。 36 【正确答案】 C 【试题解析】 位运算符 “|”的作用是按位或,即两个二进制数的相应位中只要有一个为 1,该位的结果值为 1。最后以字符型输出, 98对应的字符 “b”。 37 【正确答案】 B 【试题解析】 fgets函数的作用是从指定的文件读入 个字符串。 fgets(str,n,fp);中的 n为要求得到的字符的个数,但只从中指向的文件输入 n-1个字符,然后在最后加 个 0字符,因此得到的字符串共有 n个字

29、符。 38 【正确答案】 C 【试题解析】 宏替换实质上就是字符替代,它不可能进行计算,故 C错误。带参数的宏与函数相比,宏在程序编译之前已经将代码替换到程序内,执行时不会产生类似于函数调用的问题,可以说不占用运行时间。 39 【正确答 案】 A 【试题解析】 p0存放的是 “BOOL0”的首地址: p1存放的是 “OPK0”的首址等。在 printf语句中输出的 *pi表示 pi字符串的第 个字符。在 for循环中, i的初值为 3,那么输出的第 个字符为 “S”,接着两次 i-,则输出的值为 *p1,即字符 “O”,所以本题的输出为 SO。 40 【正确答案】 B 【试题解析】 在对字符数

30、组赋字符串值时,系统会自动在字符串的末尾加上一个字符串结束标志 0,故指向字符数组的指针 p的 *(p+4)的值为 0。由于 0的编码值就是 0,所以本题输出为 0。 41 【正确答案】 空间复杂度和时间复杂度 【试题解析】 算法的复杂性是指对一个在有限步骤内终止算法和所需存储空间大小的估计。算法所需存储空间大小是算法的空间复杂性,算法的计算量是算法的时间复杂性。 42 【正确答案】 存储结构 【试题解析】 数据结构包括 3个方面,即数据的逻辑结构、数据的存储结构及对数据的操作运算。 43 【正确答案】 可重用性 【试题解析】 继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程

31、序中的冗 余,提高软件的可重用性。 44 【正确答案】 类 【试题解析】 面向对象模型中,最基本的概念是对象和类。对象是现实世界中实体的模型化;将属性集和方法集相同的所有对象组合在一起,可以构成一个类。 45 【正确答案】 完善性 【试题解析】 软件维护活动包括以下几类:改正性维护、适应性维护、完善胜维护和预防性维护。完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。 46 【正确答案】 12 【试题解析】 本题通过第一个 for循环将数组 arr0-arr9分别赋值为 0-9,通过第二个 for循环的

32、三次循环累加,求出结果为 12,具体分析如下: i=1: k=0+arr1+1即 k=2; i=2: k=2+arr2+2即 k=6: i=3: k=6+arr3+3即 k=12: 47 【正确答案】 0 【试题解析】 已知 a=10, b=20,所以逻辑表达式 a b的值为 true,即为 1,在这个表达式前面有一个逻辑运算符 !,表示反操作,所以整个语句的值应当为false,即为 0。 48 【正确答案】 4 【试题解析】 在主函数中调用函数 f,函数 f有三个参数,形参 f1与 f2分别是两个指向函数的指针。在 f中执行 f2(x)-f1(x),实际上是执行了 fb(2)-fa(2),故

33、执行i=(fa,fb,2)后 i的龇 23-22=4。 49 【正确答案】 DDBBCC 【试题解析】 C语言对枚举的定义规定:在枚举中声明的各个枚举元素,如果没有明确指出某个枚举元素的值,它的上一个元素存在并有明确值的情况下,这个枚举元素的值为其上一个元素的值 +1。在本题中,没有明确说明枚举元素 em3的值,则 em3=em2+1=1+1=2,进而可知,在 printf()打印函数中,要打印的数组元素是 aa3, aa1、 aa2,因此最后的打印结果应当为 “DDBBCC”。 50 【正确答案】 56 【试题解析】 本题中 a, b, c, d是实参, x, y, cp, dp是形参。 C

34、语言规定,实参变量对形参变量的数据传递是 “值传递 ”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释 放,实参单元仍保留并维持原值。因此,程序的输出结果是56。 51 【正确答案】 10 4 【试题解析】 结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。 int占 2个字节, float占 4个字节,共用体变量所占的内存长度等于最长的成员的长度。所以, sizeof(a.share)的值是 4, sizeof(a)的值是 2+2+2+4=10。 52 【正确答案】 0或 0或 NULL stri num+或 num=num+1或 num+=1 【试题解析】 观察 题目要求,可以知道以下几点: for循环的结束条件应当是: stri已是字符串的最后一个字符; stri代表字符串 str中的第 i+1个字符; 整型变量 num的值是要记录的单词的个数。 C语言中规定字符串的最后一个字符是一个隐含的字符串结束符 “0”,所以在题中第一个空中应填写 “0”;题中第二个空应填写 “stri”,以判断当前位置的字符是否为空格;题中第三个空中应当填写 “num+”,通过变量 num的加 1累加得到字符串中的单词个数。

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

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

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