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

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

1、国家二级( C语言)笔试模拟试卷 225 及答案与解析 1 下列数据结构中,能用二分法进行查找的是 ( )。 ( A)顺序存储的有序线性表 ( B)结性链表 ( C)二叉链表 ( D)有序线性链表 2 结构化程序设计的主要特点是 _。 ( A)模块化 ( B)每个控制结构具有封装性 ( C)每个控制结构具有独立性 ( D)每个控制结构只有一个入口和一个出口 3 编制一个好的程序,首先要保证它的正确性和可靠性,还应强调良好的编程风格,在书写功能性注释时应考虑 ( A)仅为整个程序作注释 ( B)仅为每个模块作注释 ( C)为程序段作注释 ( D)为每个语句作注释 4 下面四个选项中,不属于数据库

2、管理系统提供的数据语言的是 ( A)数据定义语言 ( B)数据查询语言 ( C)数据操纵语言 ( D)数据控制语言 5 对以下二叉树 进行中序遍历的结果是 ( )。 ( A) ACBDFEG ( B) ACBDFGE ( C) ABDCGEF ( D) FCADBEG 6 下列叙述中正确的是 ( )。 ( A)线性链表中的各元素在存储空间中的位置必须是连续的 ( B)线性链 表中的表头元素一定存储在其他元素的前面 ( C)线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面 ( D)线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意

3、的 7 串的长度是 ( ) ( A)串中不同字符的个数 ( B)串中不同字母的个数 ( C)串中所含字符的个数且字符个数大于零 ( D)串中所含字符的个数 8 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是 ( ) ( A)多对多 ( B)一对一 ( C)多对一 ( D)一对多 9 下列叙述中正确的是 ( )。 ( A)数据库系统是一个独立的系统,不需要操作系统的支持 ( B)数据库技术的根本目标是要解决数据的共享问题 ( C)数据库管理系统就是数据库系统 ( D)以上三种说法都不对 10 简单的交换排序方法是 ( )。 ( A)快速排序

4、 ( B)选择排序 ( C)堆排序 ( D)冒泡排序 11 下列程序的运行结果是 ( )。 main() int x=1,y=3,a=0; while(x+!=(y-=1) a+=1; if(y x)break; printf(“%d,%d,%dn“,x,y,a); ( A) 2,3,2 ( B) 2,3,1 ( C) 1,3,3 ( D) 3,1,2 12 下列程序的运行结果为 ( )。 #include void abc(char*str) int a,b, i, j; for(i=j=0; stri!= 0; i+) if(stri!=a) strj+=stri; strj= 0: vo

5、id main() char str=“abcdef”; abc(str); printf(“str= s”, str); ( A) str=bcdef ( B) str=abcdef ( C) str=a ( D) str=ab 13 数字字符 0的 ASCII值为 48,若有以下程序: main() char a=1,b=2; printf(“%c,“,b+); printf(“%dn“,b-a); 程序运行后的输出结果是 _。 ( A) 3,2 ( B) 50,2 ( C) 2,2 ( D) 2,50 14 下列叙述中,正确的是 ( )。 ( A)软件交付使用后还需要进行维护 ( B)软

6、件一旦交付使用就不需要再进行维护 ( C)软件交付使用后其生 命周期就结束 ( D)软件维护是指修复程序中被破坏的指令 15 关于 C语言中数的表示 ,以下叙述中正确的是 ( A)只要在允许范围内整型数和实型数都能精确的表示 ( B)只有整型数在允许范围内能精确无误的表示 ,实型数会有误差 ( C)只有实型数在允许范围内能精确无误的表示 ,整型数会有误差 ( D)只有用八进制表示的数才不会有误差 16 C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是 ( )。 ( A)预定义标识符 (如库函数中的函数名 )可用做用户标识符,但失去原有含义 ( B)用户标识符可以由字母和数

7、字任意顺序组成 ( C)在标识符中大写字母和小写字母被认为是相同的字符 ( D)关键字可用做用户标识符,但失去原有含义 17 有定义语句: int b;char c10;,则正确的输入语句是 ( )。 ( A) scanf(“%d%s“, ( B) scanf(“%d%s“, ( C) scanf(“%d%s“,b,c); ( D) scanf(“%d%s“,b, 18 下列程序的输出结果是 _。 #include stdio.h #define FUDGE(y) 2.84+y#define PR(a) printf(“%d“, (int)(a)#define PRINTl(a) PR(a);

8、 putchar(n)main () int x=2; PRINT1(FUDGE(5)*x); ( A) 11 ( B) 12 ( C) 13 ( D) 15 19 下列描述中不正确的是 _。 ( A)字符型数组中可以存放字符串 ( B)可以对字符型数组进行整体输入、输出 ( C)可以对整型数组进行整体输入、输出 ( D)不能在赋值语句中通过赋值运算符 “=”对字符型数组进行整体赋值 20 下列可用于 C语言标识符的一组是 _。 ( A) void WORD define ( B) a 6$sys For ( C) 2a sizeof abc ( D) Int define sizeof 21

9、 有以下程序 main( ) int a=1,b=2,m=0,n=0,k; k=(n=ba)|(m=a printf(“%d,%dn“,k,m); 程序运行后的输出结果 是 ( A) 0,0 ( B) 0,1 ( C) 1,0 ( D) 1,1 22 下列程序的输出结果是 ( )。 #include stdio.h #include string.h main() char a=“n123“; printf (“%d,%dn“,strlen(a),sizeof(a); ( A) 5,6 ( B) 5,5 ( C) 6,6 ( D) 6,5 23 以下程序运行后,输出结果是 _。 main()

10、char*d=“ab“, “cde“; printf(“%x“,d1); ( A) cde ( B)字符 c的 ASC 的值 ( C)字符 c的地址 ( D)出错 24 设有定义: char*c;,以下选项中能够使字符型指针 c正确指向一个字符串的是 ( )。 ( A) charstr=“string“; c=str; ( B) scanf(“%s“, C); ( C) c=getchar(); ( D) char str=“string“; strcpy(“C, str“) 25 以下程序的输出结果是 ( )。 #include stdio.h int m=13; int fun(int x

11、,int y) int m=2; return(x*y-m); main() int a=7, b=6; printf(“%d“,fun(a, B)/m); ( A) 1 ( B) 3 ( C) 7 ( D) 10 26 有以下程序 void f(int *q) inti=0; for(; i 5; i+) (*q)+; main() int a5=1, 2, 3, 4, 5, i; f(a); for(i=0; i 5; i+)printf(“%d, “,ai); 程序运行后的输出结果是 ( A) 2, 2, 3, 4, 5, ( B) 6, 2, 3, 4, 5, ( C) 1, 2, 3

12、, 4, 5, ( D) 2, 3, 4, 5, 6, 27 若 a、 b、 c、 d都是血型变量且都已经正确赋初值,则下列不正确的赋值语句是( )。 ( A) a+d; ( B) a+; ( C) a=b=c=d=100; ( D) a=(b=3) +(d=5); 28 定义结构体数组: struct stu int num; charname20; x5 1,“LI“,2,“ZHAO“,3,“WANG“,4,“ZHANG“,5,“LIU“; for(i 1;i 5;i+) printf(“%d%C“,xi num,xiname2); 以上程序段的输出结果为 ( )。 ( A) 2A3N4A

13、5U ( B) 112A3H41 ( C) 1A2N3A4U ( D) 2H3A4H51 29 数据结构中,与所使用的计算机无关的是数据的 _。 ( A)存储结构 ( B)物理结构 ( C)逻辑结构 ( D)物理和存储结构 30 下列程序执行后的输出结果是 _。 #define MA(x) x*(x-1) main()int a=1,b=2; printf(“%dn“,MA(1+a+b); ( A) 6 ( B) 8 ( C) 10 ( D) 12 31 有 以下程序: void fun(int a, int b, int c) a=456, b=567, c=678; main() int

14、x=10, y=20, z=30; fun(x, y, z); printf(“ d, d, dn“, x, y,z); 输出结果是 ( A) 30, 20, 10 ( B) 10, 20, 30 ( C) 456,567,678 ( D) 678,567,456 32 有以下程序: #include stdio.h main() int c; while(c=getchar()!=n) switch(c-2) case 0: case 1:putchar(c+4); case 2: putchar(c+4); break; case 3: putchar(c+3); case 4: putc

15、har(c+3); break; printf(“n“) 从第一列开始输入以下数据 CR代表一个回车符。 2743 CR 程序的输出结果是 ( A) 66877 ( B) 668966 ( C) 6677877 ( D) 6688766 33 若变量已正确定义并赋值,对库函数错误调用的是 ( ) ( A) k=scanf(“%d%d“, ( D) putchar(ch); 34 下面程序输出的结果是 ( )。 #include stdio.h main() char *a=“1234“; fun(a); printf(“n“); fun(char *s) char t; if(*s) t=*S

16、+; fun(s); else return; if(t!=0) putchar(t); ( A) 1234 ( B) 4321 ( C) 1324 ( D) 4231 35 两次运行下面的程序后,如果从键盘上分别输入 7和 3,则输 出结果是_。 main() int x; scanf(“%d“, float fun(int a,int b) ( B) float fun(int a,int b) main( ) x fun(i,j); ( C) float fun(int, int); main( ) x=fun(2,10); float fun(int a, int b) ( D) ma

17、in( ) float fun(int i,int j); x=fun(i,j); float fun(int a, int b) 39 在位运算中,操作数每左移两位,其结果相当于 ( )。 ( A)操作数乘以 2 ( B)操作数除以 2 ( C)操作数除以 4 ( D)操作数乘以 4 40 设有如下说明 typedef struct int n; char c; double x;STD;则以下选项中 ,能正确定义结构体数组并赋初值的语句是 ( A) STD tt2=1,A,62,2,B,75; ( B) STD tt2=1,“A“,62,2,“,75; ( C) struct tt2=1,

18、A,2,B; ( D) struct tt2=1,“A“,62.5,2,“B“,75.0; 41 有以下程序 #include Void Fun(char*c,int d) *c=*c+1;d=d+1; PrintF(“%c,%c,”,*c,d); Main() char B+a,a=A; Fun(printF(“%c,%cn”,B,a); 程序运行后的输出结果是 ( A) B, B, B, A ( B) B, B, B, A ( C) a, B, B, a ( D) a, B, a, B 42 数据库系统的三级模式分别为【 】模式、内部级模式与外部级模式。 43 软件的需求分析阶段的工作,可

19、以概括为四个方面:【 】 、需求分析、编写需求规格说明书和需求评审。 44 软件测试中路径覆盖测试是整个测试的基础,它是对软件【 】进行测试。 45 数据流图有两种典型的结构形式,它们分别是变换型和【 】。 46 数据库系统中实现各种数据管理功能的核心软件称为【 】。 47 已知 a=1, b=2,则表达式 (a int a10=1,2,3,0,0,i; fp=fopen(“d2.dat“,“wb“); fwtite(a,sizeof(int),5,fp); fwrite(a,sizeof(int),5,fp); fclose(fp); fp=fopen(“d2.dat“,“rb“); fre

20、ad(a,sizeof(int),10,fp); fclose(fp); for(i=0;ia为逻辑真 1, 1赋给 n, n为 1再赋给 k, k 值为 1,则 “”左边式子的值为 1,故不再计算其后的式子, m值不发生变化。 22 【正确答案】 A 【试题解析】 转义字符 n表示换行, 表示反斜杠,函数 strlen()是计算字符串的长度,不包括文件结束标志 (0),函数 sizeof()统计字符串所占的字节数。 23 【正确答案】 C 【试题解析】 指针数组中的每 个元素都相当于 个指针变量。 维指针数组的定义形式为: 类型名 *数组名 数组长度 ,在本题 main 函数中定义指针数组

21、d,它有两个元素,其初值分别是 “ab、 “cdc的首地址。 d1的值为 “cde”的首地址。 %x是指以十六进制数形式输出整数。 24 【正确答案】 A 25 【正确答案】 B 26 【正确答案】 B 【试题解析】 调用函数 f()时,将数组 a的地址传递给了指针 q,此时 q指向的就是数组 a的第一个元素 a0。在 5次循环过程中, q 始终指向 a0,因此 a0的值增加了 5。最后的输出结果为 “6, 2, 3, 4, 5”。 27 【 正确答案】 A 【试题解析】 C语言规定,赋值号的右边可以是一个赋值表达式,因此选项C)、选项 D)正确;在选项 B)中, a+是一个自加 1的表达式,

22、 a被重新赋值,因此它是一个合法的赋值表达式;选项 A)中, a+d 是一个算术表达式,虽然最后有一个分号,但这个表达式中没有赋值操作,因此它不是一条赋值语句。 28 【正确答案】 A 【试题解析】 本题主要考查结构体数组的使用。 xi.num为结构体 xi中的 num成员, xi.name2是结构体 xi中 name成员的第 3个元素。程序执行 循环过程时:第 1次循环, i 1,输出 x1.num, x1.name2的值,即 2A:第 2次循环,i 2,输出 x2.num, x2.name2的值,即 3N;第 3次循环, i 3,输出x3.num, x3.name2的值,即 4A:第 4次

23、循环, i 4,输出 x4.num,x4.name2的值,即 5U。 29 【正确答案】 C 30 【正确答案】 B 31 【正确答案】 B 【试题解析】 本题考查函数中变量的作用范围,在主函数中给变量 x, y, z赋值,然后将其作为 实参传递给了函数 fun(),虽然在函数 fun()中改变了这 3个变量的值,但只是同名的局部变量,不影响函数中变量的值,所以在调用函数 fun()结束后,主函数 3个变量的值未改变,即形参值的改变不能影响实参的值。注意:顺序程序结构的执行过程。 32 【正确答案】 A 【试题解析】 本题主要考查了字符输入输出函数 getchar和 putchar的使用。ge

24、tchar函数用来从标准输入设备上读入一个字符, putchar(c)函数是将字符变量 c中的字符输出到标准输出设备上。并且字符可以看作整数参与运算。 33 【正确答案】 C 34 【正确答案】 B 【试题解析】 本题的 fun()函数是用递归法实现逆序输出一个字符串。函数中首先定义一个局部变量 t,然后 s所指的内容是否为字符串结束符,不是的话将 s所指的内容赋给 t,同时使 s后移一位,然后递归调用 fun(s)。到这条语句为止是递归过程,即接下来连续递归调用 fun(s)都只会执行到这一半,直到回朔条件 (s 所指内容是字符串结束符 )出现, fun()函数连续返回,判断 t不等于 0的

25、话,就输出 t,所以输入的字符串被逆序输出,故本题的正确答案应该是 B。 35 【正 确答案】 D 【试题解析】 输入 7,先使 x加 1,条件表达式成立,执行语句printf(“%d“,x);,输出 8;输入 3,先使 x加 1,条件表达式不成立,执行语句printf(“%dn“,x-);,输出 4,再将 x自减。 36 【正确答案】 A 【试题解析】 题目中要求将 q 和 r所指结点的先后位置交换,即要求 p 所指结点的指针域指向 r所指向的结点, r所指向的结点的指针域指向 q所指向的结点, q所指向的结点的指针域指向 r所指向的结点。选项 A首先让 r所指向的指针的指针域指向 q所指向

26、的结点,这样就将 r所指 向的结点的指针域指向的结点丢失了。选项 B首先 q所指向的结点的指针域指向 r所指向的结点的指针域所指向的结点,然后,让 p所指向结点的指针域指向 r所指向的结点,最后让 r所指向的结点的指针域指向 q所指向的结点,满足要求。选项 C首先让 p所指向结点的指针域指向 r所指向的结点,然后让 q所指向的结点的指针域指向 r所指向的结点的指针域所指向的结点,最后让 r所指向的结点的指针域指向 q所指向的结点,满足要求。选项 D首先让 q 所指向的结点的指针域指向 r所指向的结点的指针域所指向的结点,然后,让 r所指向的结点的指针域指向 q所指向的结点 ,最后让 P所指向结

27、点的指针域指向 r所指向的结点,满足要求。 37 【正确答案】 A 【试题解析】 “ ”是 C语言中规定的左移运算符, 是异或运算符,所以, c的二进制值应为 00011011。 38 【正确答案】 A 【试题解析】 C语言规定,函数必须先定义,后调用 (函数的返回值类型为 int或char时除外 )。在选项 A)中,调用的子函数在调用后面定义,所以不正确。在选项B)、 C)中,被调用函数在主调函数之前定义,再在主函数中调用,所以是正确的;在选项 D)中,在主调函数中先对子函数 float fun(int i,int j)进行了定义,然后进行调用。 39 【正确答案】 D 【试题解析】 本题主

28、要考查左移、右移对数据值的影响,左移 n 位相当于乘以 2的 n 次幂,右移 n位相当于除以 2的 n 次幂。 40 【正确答案】 A 【试题解析】 给结构体数组赋初值时,要将其成员值依次放在一对花括号中。 41 【正确答案】 A 42 【正确答案】 概念 或 概念级 【试题解析】 数据库系统在其内部具有三级模式及二级映射,三级模式分别是概念级模式、内部级模式和外部级模式。概念模式是 数据库系统中全局数据逻辑结构的描述,是全体用户 (应用 )公共数据视图。内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及 hash 等存取方式与存取路径,内模式的物

29、理性主要体现在操作系统及文件级上,它还未深入到设备级上 (如磁盘及磁盘操作 )。外模式也称子模式或用户模式,它是用户的数据视图,也就是用户所见到的数据模式,它由概念模式推导而出。 43 【正确答案】 需求获取 【试题解析】 软件的需求分析阶段的工作,可以概括为四个方面:需求获取、需求分析、编写需求规格 说明书和需求评审。需求获取的目的是确定对目标系统的各方面需求;需求分析是对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型;编写需求规格说明书作为需求分析的阶段成果,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发进度的

30、依据;需求评审是对需求分析阶段的工作进行的复审,验证需求文档的一致性、可行性、完整性和有效性。 44 【正确答案】 结构 【试题解析】 路径测试是白盒测试方法中的 种,它要求对程序中的每条路径最少检查一次, 目的是对软件的结构进行测试。 45 【正确答案】 事务型 【试题解析】 数据流图中有众多的加工,但必有一个加工是起核心作用的,即中心加工。由数据流图导出结构图的关键是找出中心加工。一般来说,中心加工有两种存在形态,即数据流图的两种典型结构形式:变换型和事务型。 46 【正确答案】 数据库管理系统 【试题解析】 数据库系统中实现各种数据管理功能的核心软件称为数据库管理系统,负责数据库中所有数

31、据的存储、检索、修改以及安全保护等,数据库内的所有活动都是在其控制下进行。 47 【正确答案】 1 48 【正确答案】 malloc(11*sizeof(shar)。 【试题解析】 本题考查库函数调用的一些方法,要写 11个字节的动态存储空间的库函数是 malloc(11*sizeof(shar)。 49 【正确答案】 1,2,3,0,0,1,2,3,0,0, 【试题解析】 本题考查文件读写函数 fread 和 fwrite的用法。 fwrite函数将数组a的前 5个元素输出到文件 fp中两次 ,共 10个字节 ,再调用 fread 函数从文件 fp中读取这 10个字节的数据到数组 a中 ,此

32、时数组 a的内容就变 为 1,2,3,0,0,1,2,3,0,0,最后的输出结果为 “1,2,3,0,0,1,2,3,0,0,“。 50 【正确答案】 0 【试题解析】 关系运算符 “ ”的结合方式是从左向右的,所以在本题中的表达式 a b c;从左向右开始计算, a b的结果为 “1”,接着 1和 c比较假,该空格处应该填 0。 51 【正确答案】 67G 【试题解析】 字符型变量中保存的是某个字符的 ASCII码值,是一个整数,因此字符型变量的算术运算和整型变量并无区别。所以 a=A+5-3=A+(5-3)=A+2=65+2=67; b=a+6-2= C+(6-2)=C+4=G。最后分别按

33、十进制整数和字符形式输出 a和 b的值为; 67G。 52 【正确答案】 3 【试题解析】 条件表达式的一般形式为:表达式 1?表达式 2:表达式 3 条件运算符的执行顺序:先求解表达式 1,若为非 0(真 )则求解表达式 2,此时表达式 2的值就作为整个条件表达式的值;若表达式 1的值为 0(假 ),则求解表达式3,表达式 3的值就是整个条件表达式的值。 30/3=10 0,所以执行 p/10,结果 为3。 53 【正确答案】 j 【试题解析】 在 C程序中的字符量可参与任何整数运算。 54 【正确答案】 25 21 37 【试题解析】 本题中先定义了整型变量 a、 b 和 c,然后分别给赋

34、值 a为 25, b为八进制的 025 c为十六进制 0x25。然后调用 printf()函数将 a、 b 和 c分别用十进制输出,且中间用空格隔开,八进制 025转换为十进制的值为 21,十六进制的0x25转换为十进制的值为 37,故最后的输出结果为 25 21 37。 55 【正确答案】 5.0,4,c=3 【试题解析 】 scanf(格式控制,地址表列 ),如果在 “格式控制 ”字符串中除了格式说明以外还有其他字符,则在输入数据的应输入与这些字符相同的字符。所以此题中输入数据的形式是 5.0,4, c=3。 56 【正确答案】 *s+ flag=0 或 *(s-1)= num 【试题解析

35、】 在统计字符串单词个数的算法中,本题的 flag 是为了记录一个单词是否结束。第 18空应填 *s+;如果某个字符不是空格,则必需判断它是否是单词,如是,则使得 flag的标志为 1, num的值加 1。本题判断方法是:先判断 s所指向的字符 是否为空格,如果是则使得 flag=0,否则判断前一个字符是否是空格,如果是则说明这个字符是一个单词的开始,将 flag标志为 1, num的值加 1,如果不是,则不必记录。故第 19空应 flag=0 或 *(s-1)=;最后一个空格需填写的是返回的单词的个数,即 num。 57 【正确答案】 918273645 【试题解析】 本题程序的作用是通过 for循环将 0-9这 10个数字从前向后,同时也从后向前依次输出。

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

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

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