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

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

1、国家二级( C语言)笔试模拟试卷 145及答案与解析 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) C语言程序的一条语句可以写在不同的行上 ( C) C程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写 ( D) C程序的每个语句都以分号结束 12 下列标识符不是关键字的是 ( )。

4、 ( A) break ( B) char ( C) Switch ( D) return 13 下列程序的执行结果是 ( )。 #include stdio.h main() inta,b,c; a=b=2; c=(a+)-1;printf(“%d,%d“,a,c) ; c+=-a+(+b) ;printf(“%d,%d“,a,c) ; ( A) 3,1 4,1 ( B) 3,1 4,2 ( C) 2,04,1 ( D) 2,1 4,1 14 下列选项中不合法的 +六进制数是 ( )。 ( A) Oxff ( B) OXll ( C) Oxlg ( D) OXabc 15 若 w、 x、 y

5、、 z、 m均为 int型变量,则执行下列的语 句后 m的值是 ( )。 w=2,x=3,y=4,z=5; m=(w x)?W:x: m=(m z)?m:Z; m=(m y)?m:y; ( A) 2 ( B) 3 ( C) 5 ( D) 4 16 已知 i、 j、 k为 int型变量,若要从键盘输入 2、 3、 4 CR,使 i、 j、 k的值分别为 2、 3、 4,下列正确的输入语句是 ( )。 ( A) scanf(“%3d,%3d,%3d“, ( B) scanf(“%d,%d,%d“, ( C) scanf(“%d%d%d“, ( D) scanf(“i=%d,j=%d,k=%d“,

6、17 语句 “printf(“abhowareyboun“);”的输出结果是 ( )。 ( A) abhowareybou ( B) abhowareybou ( C) howareyou ( D) ahowareybou 18 下列程序的运行结果是 ( )。 main() int a=-5,b=1,c=1; int x=0,y=2,z=0; if(c 0) x=x+y; if(a =0) if(b 0) if(c =0) y=x-y; else if(c 0) y=x-y; else z=y; printf(“%d,%d,%dn“,x,y,z); ( A) 2,2,0 ( B) 2,2,2

7、( C) 0,2,0 ( D) 2,0,2 19 两次运行下列的程序,如果从键盘上分别输入 3和 1,则输出结果是 ( )。 main() int x; scanf(“%d“, if(x+ 2) printf(“%d“,x); else printf(“%dn“,x-); ( A) 4和 2 ( B) 4和 1 ( C) 4和 0 ( D) 3和 1 20 下列 4个关于 C语言的结论中错误的是 ( )。 ( A)可以用 dowhile 语句实现的循环一定可以用 while语句实现 ( B)可以用 for语句实现的循环一定可以用 while语句实现 ( C)可以用 while语句实现的循环一定

8、可以用 for语句实现 ( D) dowhile 语句与 while语句的区别仅是关键字 “while”出现的位置不同 21 若变量已正确定义,下列正确的程序段是 ( )。 ( A) while(ch=getchar()=N)putchar(ch); ( B) while(ch=getchar()=n)putchar(ch); ( C) while(ch=getchar()!=N)putchar(ch); ( D) while(ch=getchar()!=n)putchar(ch); 22 有下列函数 定义: int fun(double a,double B) return a*b; 若下列

9、选项中所用变量都已正确定义并赋值,错误的函数调用是 ( )。 ( A) if(fun(x,y) ( B) z=fun(fun(x,y),fun(x,y); ( C) z=fun(fun(x,y)x,y); ( D) fun(x,y); 23 下列程序的输出结果是 ( )。 #include stdio.h int fun(int x) int a; if(x=0x=1) return 3; else a=x-fun(x-2) ; return a; void main() printf(“%d“,fun(7) ); ( A) 2 ( B) 8 ( C) 9 ( D) 5 24 下列程序段的运行

10、结果是 ( )。 #include stdio.h void main() char str=“ABC“,*p=str; printf(“%dn“,*(p+3) ); ( A) 67 ( B) 0 ( C)字符 C的地址 ( D)字符 C 25 设有下列定义: struct sk int m; float x; data,*q; 若要使 q指向 data中的 m域,正确的赋值语句是 ( )。 ( A) q= ( B) *q=data.m; ( C) q=(struct sk*) ( D) q=(struct sk*)data.m; 26 若有说明 int a3=0,0;,则不正确的叙述是 (

11、)。 ( A)数组 a的每个元素的初值都是 0 ( B)数组 a的第一维大小为 1 ( C)数组 a的行数为 1 ( D)只有元素 a00和 a01可得到初值 0,其余元素均得不到初值 0 27 下列叙述中正确的是 ( )。 ( A) break语句只能用于 switch语句体中 ( B) continue语句的作用是使程序的执行流程跳出包含它的所有循环 ( C) break语句只能用在循环体内和 switch语句体内 ( D)在循环体内使用 break语句和 continue语句的作用 相同 28 下列合法的字符型常量是 ( )。 ( A) x13 ( B) 081 ( C) 65 ( D)

12、 n 29 在 C语言中,函数返回值的类型最终取决于 ( )。 ( A)函数定义时在函数首部所说明的函数类型 ( B) return语句中表达式值的类型 ( C)调用函数时主调函数所传递的实参类型 ( D)函数定义时形参的类型 30 下列二维数组初始化语句中,不正确的是 ( )。 ( A) int b2=1,2,3,4,5,6,7; ( B) int b35=0,0,0; ( C) int b4=1,2,3,4,5,6; ( D) int b32=(1,2),(3,4) ,(5,6); 31 判断字符串 s1是否大于字符串 s2,应该使用 ( )。 ( A) if(strcmp(s1,s2)

13、0) ( B) if(s1 s2) ( C) if(strcmp(s2,s1) 0) ( D) if(strcmp(s1,s2) 32 下列程序的运行结果是 ( )。 #include stdio.h #include string.h main() char*s1=“abDuj“; char*s2=“ABdUG“; int t; t=strcmp(s1,s2) ; printf(“%d“,t); ( A)正数 ( B)负数 ( C)零 ( D)不确定的值 33 已知大写字母 A的 ASCII码是 65,小写字母 a的 ASCII码是 97。下列不能将变量 c中的大写字母转换为对应小写字母的语

14、句是 ( )。 ( A) c=(c-A)%26+a ( B) c=c+32 ( C) c=c-A+a ( D) c=(A+C) %26-a 34 有下列函数: int fun(char*S) char*t=s; while(*t+ +); return(t-s); 该函数的功能是 ( )。 ( A)比较两个字符串的大小 ( B)计算 s所指字符串占用内存字节的个数 ( C)计算 s所指字符串的长度 ( D)将 s所指字符串复制到字符串 t中 35 下列程序的运行结果是 ( )。 #include stdio.h voidfun(int*s,int*p) static int t=3; *p=s

15、t; t-; void main() int a=2,3,4,5,k; int x; for(k=0;k 4;k+) fun(a, printf(“%d,“,x); ( A) 5,4,3,2 ( B) 2,3,4,5, ( C) 2,2,2,2, ( D) 5,5,5,5, 36 下列程序段 的输出结果为 ( )。 #include stdio.h main() static char a=“language“; char*p; p=a; for(p=a;p a+8;p+=2) putchar(*p); ( A) language ( B) lnug ( C)有语法错误 ( D) lang 3

16、7 #define能作简单的替代,用宏来替代计算多项式 5*x*x+5*x+5的值的函数 f,正确的宏定义语句为 ( )。 ( A) #define f(x)5*x*x+5*x+5 ( B) #define f5*x*x+5*x+5 ( C) #define f(A) (5*a*a+5*a+5) ( D) #define(5*x*x+5*x+5) f(x) 38 下列程序的输出结果是 ( )。 #include stdio.h main() stmct st int y,x,z; ; union long i; int j; char k; un; printf(“%d,%dn“,sizeof

17、(stmct st),sizeof(un); ( A) 6,2 ( B) 6,4 ( C) 8,4 ( D) 8,6 39 下列程序中 c的二进制值是 ( )。 char a=2,b=4,C; c=ab 2; ( A) 00000011 ( B) 00010100 ( C) 00011100 ( D) 00011000 40 标准库函数 fgets(s,n,file)的功能是 ( )。 ( A)从文件 file中读取长度为 n的字符串存入字符数 组 s中 ( B)从文件 file中读取长度不超过 n-1个字符的字符串放到字符数组 s中 ( C)从文件 file中读取 n个字符串存入字符数组 s

18、中 ( D)从文件 file中读取长度为 n-1个字符的字符串存入字符数组 s中 41 数据的独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,这称为 _。 42 在关系模型中,二维表的行称为 _。 43 数据库系统其内部分为三级模式,即概念模式、内模式和外模式。其中,_是用户 的数据视图,也就是用户所见到的数据模式。 44 排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、_和选择排序。 45 栈的 3种基本运算是:入栈、退栈和 _。 46 x和 y都是 double型变量, x的初值为 4.0,y的初值为 2.

19、0,则表达式pow(y,fabs(x)的值为 _。 47 若 x为血类型,请写出与 !x等价的 C语言表达式 _。 48 下列程序的运行结果是 _。 #include stdio.h main() int a,b,C; a=3;b=4;c=5; if(a B) if(a C) printf(“%d“,A) ; elseprintf(“%d“,B) ; printf(“%dn“,C) ; 49 下列语句能循环 _次。 ints=12; while(s); -s; 50 下列程序的运行结果是 _。 main() int a=1,b=10; do b-=a;a+;while(b- 0) ; prin

20、tf(“%d,%dn“,a,B) ; 51 若定义 #define PI 3.14159,则执行完下列程序后输出结果是 _。 #define PI 3.14159;printf(“PI=%P“,PI); 52 下列程序的输出结果是 _。 main() int a=31,27,20,12,6,1,*p=a; p+; printf(“%dn“,*(p+2); 53 若有下列定义和语句: char*s1=“12345“,*s2=“1234“; printf(“%dn“,strlen(strcpy(s1,s2); 则输出结果为 _。 54 下列程序的运行结果是 _。 main() int i,a10;

21、 a0=a1=1; for(i=2;i 5;i+) ai=ai-2+ai-1; for(i=0;i 5;i+) if(i%2=0) printf(“n“); printf(“%d“,ai); 55 下列程序的输出结果是 _。 #include stdio.h int fun(int x) int p; if(x=0x=1) return 3; else p=x-fun(x-2) ; return p; void main() printf(“n%d“,fun(11); 国家二级( C语言)笔试模拟试卷 145答案与解析 1 【正确答案】 D 【试题解析】 一个算法的空间复杂度,一般是指执行这个

22、算法所需的存储空间。一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占用的存储空间及算法执行过程中所需要的额外空间。 2 【正确答案】 B 【试题解析】 数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式。数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。 3 【正确答案】 C 【试题解析】 对二叉树的前序遍历是指先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树。 4 【正确答案】 D 【试题解析】 软件是运行在计算机硬件之上的逻辑实体,包括程序、数据和相关的文档。软件的开发、运行对计

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

24、 【正确答案】 B 【试题解析】 将 E-R图转换成指定 RDBMS中的关系模式是数据库逻辑设计的主要工作。从 E-R图到关系模式的转换是比较直接的,实体和联系都可以表示成关系。 10 【正确答案】 D 【试题解析】 物理设计阶段主要解决选择文件存储结构和确定文件存取方法的问题,包括选择存储结构、确定存取方法、选择存取路径、确定数据的存放位置。 11 【正确答案】 C 【试题解析】 本题涉及 C语言基本的 3个知识点: C语言的源程序是由函数构成的,函数是其基本单位,每一个函数完成相对独立的功能,其中只能包括一个主函数; C语言规定每个语句以分号结束,其书写格式是自由的,一条语句可以写在不 同

25、的行上,或者一行也可以写多条语句; 注释行虽然对程序的运行不起作用,但是它可以方便程序员阅读,提高程序的可读性和可移植性,所以书写注释行还是很有必要的。 12 【正确答案】 C 【试题解析】 break、 char、 return、 switch都是 C语言中的关键字, Switch不是。因为 C语言区分字母的大小写。 13 【正确答案】 A 【试题解析】 本题主要考查自加运算符 (+、 -)的使用。 前缀变量 “+i、 -i”,在使用 i之前,先使 i的值加 1或者减 1,再使用此时的表达式的值参与运算 ; 后缀变量 “i+、 i-”,先使用此时的表达式的值参与运算,在使用 i之后,再使 i

26、的值加 1或者减 1。本题中计算表达式 c=(a+)-1时先使用 a的值进行计算,结果为c=2-1=1,然后将 a的值加 1,即执行完此语句后 a的值是 3;表达式 c+=-a+ (+b)等价于 c=c+(-a+)+(+b), c=1+(-3)+3=1, 此时 a=4, b=3。 14 【正确答案】 C 【试题解析】 +六进制是以 “0x”或 “0X”开头的字符串,字符串中只能含有 0 9这 10个数字和 a、 b、 c、 d、 s、 f这 6个字母。 15 【正确答案】 A 【试题解析】 条件表达式 “a?b:c”的含义是:当 a为真时,其值等于表达式 b的值,当 a为假时,其值等于表达式

27、c的值。表达式运算过程:第 1个表达式: w=2 x=3为真,所以返回 w的值,即 m=w=2;第 2个表达式: m=2 z=5为真,所以返回 m的值,即 m=2;第 3个表达式: w=2 y 4为真,所以返回 m的值,即m=2。 16 【正确答案】 B 【试题解析】 scanf函数的调用形式是: scanf(格式字符串,输入项地址表 )。其中, “格式字符串 ”是要输入的 变量的格式符; “输入项地址表 ”是要输入的变量的地址。若在格式符中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符,其中的逗号也必须输入。 17 【正确答案】 C 【试题解析】 “b”格式符表示退格,功能是

28、将它后面的字母把它前面的字母覆盖,导致 “b 格式符前面的字母不能输出; “”格式符表示输出单引号字符; “”格式符表示输出反斜线字符。 18 【正确答案】 A 【试题解析】 本题考查 if else语句的使用。 先判断第 1个 if语句,因为 c=10,所以 x=x+y=0+2=2。第 1个 if语句,因为 a=-5 0,所以进入下列的复合语句。经判断发现,复合语句中第 2个汀语句的条件均不满足,不执行任何语句退出,在这个过程中 y和 x的值没有发生变化。 19 【正确答案】 A 【试题解析】 本题考查 if else语句。首先 scanf函数通过键盘读入 x的值。,当x=3时,第一个 if

29、语句,先判断条件,取 x的值 3和 2比较,然后将 x的值加 1,发现条件成立,执行下列的 printf语句,输出 x的值 4。当 x=1时,第一个 if语句,先判断条件,取 x的值 1和 2比较,然后将 x的值加 1(x的值变为 2),发现条件不成立,执行下列的 else语句,先输出 x的值 2,再将 x的值减 1。 20 【正确答案】 D 【试题解析】 本题考查几个循环语句的关系。 dowhile 语句、 while语句、for语句所实现的循环可以相互替代; dowhile 语句和 while语句的区别是dowhile 语句至少执行一次。 21 【正确答案】 D 【试题解析】 本题考查两个

30、知识点: C语言用 n这个字符常量表示换行: getchar函数的作用是从终端输入一个字符,当遇到换行时结束输入。 22 【正确答案】 C 【试题解析】 本题考查函数调用时的参数传递。 C项中第一个参数的表达式不正确,因此不能得到正确的结果。 23 【正确答案】 A 【试题解析】 本题考查函数的递归调用。在函数递归调用时, fun(7):a=7-fun(5)fun(5):a=5 -fun(3) fun3:a=3 -fun(1)fun(1):a=3 ,反推回去 fun(3):a=3-3=0 fun(5):a=5 -0=5fun(7):a=7 -5=2,最后的计算结果为 2。 24 【正确答案】

31、B 【试题解 析】 先定义了一个指向字符型数组 str的指针 p,指针 p指向数组 str的首地址, p+3将指针指向 str3,又因为字符型数组在存放字符串时会自动在末尾加上 0,所以 *(p+3)=0。 25 【正确答案】 C 【试题解析】 利用强制类型转换 (street sk*),把整数型地址 b=4;c=5时,判断语句 a b不成立,所以不执行后面的语句,直接执行 “printf(“%dn“, c);”语句,输出 c的值,输出结果为5。 49 【正确答案】 无限 【试题解析】 分析程序 “while(s)”语句后面有一个 “;”不能执行后面的语句,只是执行空语句,所以 s=12保持不

32、变,因此,没有条件限制的能循环无限次 (即死循环 )。 50 【正确答案】 2,8 【试题解析】 dowhile 语句的功能是:首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环。这里程序初始时 a=1, b=10,经过操作 b-=a;a+后 b=9, a=2,判断条件 b- 0不成立,退出循环,但 b的值被减 1,因此结果为: a=2, b=8。 51 【正确答案】 PI=3.14159 【试题解析】 本题先定义了一个宏名 PI,以后在程序中出现 PI都用 3.14159替代,但是 C语言规定:双引号中的宏名是不进行替换的。 52 【正确答案】 1

33、2 【试题解析】 本题考查如何用指针引用数组元素。分析程序,首先定义了一个指向数组 a的指针 p, p指向数组的首地址,通过 p+,将 p指向 a1, p+2是将指针后移 2位指向 a3, *(p+2)即是取 a3的值 12。 53 【正确答案】 4 【试题解析】 strcpy(s1,s2)函数的作用是将字符串 s2中的内容拷贝到字符串 s1中,并将原来 s1中的内容覆盖。 Strlen()函数是求字符串的长度。本题实际上是要求 s2字符串的长度,即是 4。 54 【正确答案】 1 1 CR 2 3 CR 5 ( CR代表换行 ) 【试题解析】 本题通过语句 “for(i=2;i 5;i+)a

34、i=ai-2+ai-1;”将数组中前面两项的和赋值给数组当前元素,得到 a的值应为 (1,1,2,3,5)。语句if(i%2=0)printf(“n“)是要将数组中的元素以每行 2个的形式输出。 55 【正确答案】 4 【试题解析】 本题考查函数的递归调用。在主函数中第 1次调用子函数是调用的fun(11),返回 11-fun(9):第 2次调用子函数是调用的 fun(9),返回 9-tim(7); 第 3次调用子函数是调用的 fun(7),返回 7-fun(5);第 4次调用子函数是调用的fun(5),返回 5-fun(3);第 5次调用子函数是调用的 fun(3),返回 3-fun(1);第 6次调用子函数是调用的 fun(1),返回 3。总的返回值是: 11-(9-(7-(5-(3-3)=4。

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

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

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