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

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

1、国家二级( C语言)笔试模拟试卷 205及答案与解析 1 算法的时间复杂度是指 ( )。 ( A)算法的长度 ( B)执行算法所需要的时间 ( C)算法中的指令条数 ( D)算法执行过程中所需要的基本运算次数 2 以下数据结构中,属于非线性数据结构的是 ( )。 ( A)栈 ( B)线性表 ( C)队列 ( D)二叉树 3 数据结构中,与所使用的计算机无关的是数据的 ( )。 ( A)存储结构 ( B)物理结构 ( C)逻辑结构 ( D)线性结构 4 内聚性是对模块功能强度的衡量,下 列选项中,内聚性较弱的是 ( )。 ( A)顺序内聚 ( B)偶然内聚 ( C)时间内聚 ( D)逻辑内聚 5

2、 在关系中凡能惟一标识元组的最小属性集称为该表的键或码。二维表中可能有若干个键,它们称为该表的 ( )。 ( A)连接码 ( B)关系码 ( C)外码 ( D)候选码 6 检查软件产品是否符合需求定义的过程称为 ( )。 ( A)确认测试 ( B)需求测试 ( C)验证测试 ( D)路径测试 7 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名 标识的图符不属于数据流图合法图符的是 ( )。 ( A)控制流 ( B)加工 ( C)存储文件 ( D)源和潭 8 待排序的关键码序列为 (15, 20, 9, 30, 67, 65, 45, 90),要按关键码值递增的

3、顺序排序,采取简单选择排序法,第一趟排序后关键码 15被放到第 ( )个位置。 ( A) 2 ( B) 3 ( C) 4 ( D) 5 9 对关系 s和关系 R进行集合运算,结果中既包含关系 S中的所有元组也包含关系R中的所有元组,这样的集合运算称为 ( )。 ( A)并运算 ( B)交运算 ( C)差 运算 ( D)除运算 10 下列选项中,不属于数据管理员 (DBA职责的是 ( )。 ( A)数据库维护 ( B)数据库设计 ( C)改善系统性能,提高系统效率 ( D)数据类型转换 11 对于一个正常运行的 c程序,下列叙述中正确的是 ( )。 ( A)程序的执行总是从 main函数开始,在

4、 main函数结束 ( B)程序的执行总是从程序的第一个函数开始,在 main函数结束 ( C)程序的执行总是从 main函数开始,在程序的最后一个函数中结束 ( D)程序的执行总是从程序中的第一个函数开始,在程序 的最后一个函数中结束 12 以下选项中与 if(a=1)a+; else a=b;语句功能不同的语句是 ( )。 ( A) switch(a) case 0: a=b; break; default: a+; ( B) switch(a=1) case 0:a+; default:a=b; ( C) switch(a) default:a=b; break; case 1:a+;

5、( D) a=(a=1)?(a+):b 13 以下不合法的用户标识符是 ( )。 ( A) 804zhang ( B) _hh ( C) yy614 ( D) If 14 已知 char a; int b; float c; double d;则表达式 a-b+c-d结果为 ( )型。 ( A) double ( B) float ( C) int ( D) char 15 假设有语句 sizeof(double),则它是 ( )。 ( A)一个整型表达式 ( B)一个双精度浮点型表达式 ( C)一种函数调用 ( D)一种函数定义 16 若变量都已正确说明,则以下程序段输出结果为 ( )。 #

6、include main() char a=a; intb=2: printf(ab?“*a= d”: “#b= d”, a, b); ( A) *a=3 ( B) #b=3 ( C) *a=3#b=5 ( D)全部错误 17 若有以下定义 (设 int类型变量占 2个字节 ) int i=8,j=9; 则以下语句: printf(“i= d, j= d n”, i,j); 输出的结果是 ( )。 ( A) i=8,j=9 ( B) i= d,j= 8 ( C) i= d,j= d ( D) 8, 9 18 设 a和 b均为 int型变量,且 a=6, b=11,则能使值为 3的表达式是 (

7、)。 ( A) b (a 4) ( B) b (a-a 5) ( C) b a-a 5 ( D) (b a)-(a 4) 19 有关 return语句说法不正确的是 ( )。 ( A)系统默认的返回值类型为整型,故当函数的返回值为 int型时,在函数 定义时,返回值的类型说明可以省略。 ( B)当函数有返回值时,凡是允许表达式出现的地方,都可以调用该函数。 ( C)当函数没有返回值时,函数的返回值类型可以说明为 void型,它表示 “无类型 ”或 “空类型 ”。 ( D)函数的返回值类型必须与 return语句中的表达式值的类型一致,但 C语言也允许不同;这时,系统以函数定义时的返回值类型说明

8、为准,并自动地将 return语句中表达式的值转换为函数的返回值类型。 20 有以下程序: #include main() int i=0, a=0; while(i10)break; ( B) while(1); ( C) int k=0: do+k; while(k main() int a=1, b=3; if(+a main() int x; scanf(“ d”, &x); if(x127x+10: x-12; printf(“ d n”, y); ( A) 0 ( B) 22 ( C) 12 ( D) 10 27 运行下面程序时,从键盘输入字母 A,则输出结果是 ( )。 #inc

9、lude main() char ch; ch=getchar(); switch(ch) caseA: printf(“AAAA n”); caseB: printf(“BBBB n”); default: printf(“CCCC n”); ( A) AAAA ( B) AAAA BBBB ( C) AAAA BBBB CCCC ( D) AAAA CCCC 28 以下叙述正确的是 ( )。 ( A)只能在循环体内和 switch语句体内使用 break语句 ( B) contiune语句的作用是结束整个循环的执行 ( C)在循环体内使用 break语句或 continue语句的作用相同

10、( D)从多层循环嵌套中退出时,只能使用 goto语句 29 下列叙述中错误的是 ( )。 ( A)在 C语言中,对二进制文件的访问速度比文本文件快 ( B)在 C语言中,随机文件以二进制代码形式存储数据 ( C)语句 FILEfp;定义了一个名为 fp的文件指针 ( D) C语言中的文本文件以 ASCII码形式存储数据 30 若输入 “abcdef”、 “abdef”,以下程序的输出结果为 ( )。 #include #include main() int n; char s120, s220, *p1, *p2; scanf(“ s”, s1); scanf(“ s”, s2); p1=s

11、1; p2=s2; n=strcmp(p1, p2); printf(“ d n”, n); ( A) -1 ( B) 0 ( C) “abcdef” ( D) “abdef” 31 以下语句定义正确的是 ( )。 ( A) int a14=1, 2, 3, 4, 5); ( B) float a3=1), 2, 3); ( C) long a23=1), 1, 2), 1, 2, 3), 0, 0); ( D) double a3=0); 32 下述程序的输出结果是 ( )。 #include void main() int a5: 1 , 2, 3, 4,5; int*p=a, *q=&p

12、; printf(“ d”, *(p+); printf(“ d”, *q); ( A) 22 ( B) 11 ( C) 34 ( D) 12 33 字符串 “ ”ABCDEF “ ”的长度是 ( )。 ( A) 11 ( B) 10 ( C) 5 ( D) 3 34 若二维数组 a有 m列,则在 aij前的元素个数为 ( )。 ( A) j*m+i ( B) i*m+j ( C) j*m+i+1 ( D) i*m+j+1 35 下列程序的运行结果是 ( )。 #include void fun(int*s, int*p) static int t=3; *p=st; t-; void mai

13、n() int a=2, 3, 4, 5, k, x; for(k=0; k #include struct A int a; char b10; double c; ; void f(struct A*t); main() struct A a=1001,“ZhangDa”, 1098 0; f(&a); printf(“ d, s, 6 1f n”, a a, a b, a c); voidf(struct A*t) t-a=1002; strcpy(t-b, “ChangRong”); t-c=1202 0; 程序运行后的输出结果是 ( )。 ( A) 1001 zhangDa,1098

14、 0 ( B) 1002, ChangRong, 1202.0 ( C) 1001, ChangRong, 1098 0 ( D) 1002, zhangDa, 1202.0 39 下述程序的输出结果是 ( )。 #include void main() char a=1, b=2; char c=abC后, m的值为_。 47 若变量 x、 y已定义为 int类型且 x的值为 33, y的值为 3,请将输出语句printf(_, x y1;补充完整,使其输出的计算结果形式为: x y=11。 48 若运行输入: 3:则以下程序的输出结果是 _。 main() int a, b; scanf(

15、“ d”, &a); b=(a=0)?a: -a; printf(“b= d”, b); 49 以下程序的运行结果是 _。 #define MAX(a, b)(ab?a: b)+1 main() int i=6,j=8, k; printf(“ d n” MAX(ij); 50 下面程序的运行结果是 _。 #include main() int a,b, c, n; a=2; b=0; c=1; n=1; while(n main() inti=10,j=0; do j=j+i; i-; while(i5); printf(“ d n”j); 52 下列程序的功能是:求出 ss所指字符串中指定

16、字符的个数,并返回此值。 例如,若输入字符串 123412132,输入字符 1,则输出 3,请填空 。 #include #include #define M 81 int tim(char*ss, char C int i=0; if(; _; ss+) if(*ss=Ci+; return i; main() char aM, ch; printf(“hlPlease enter a string: ”); gets(a); printf(“knPlease enter a char: ”); ch=getchar(); printf(“baThe number ofthe char is

17、: d n”, fun(a, ch); 53 以下程序是求矩阵 a、 b的和,结果存入矩阵 c中,请填空。 #include main() int a44=1,2, 6, 7), 0, 4, 2, -8), 1,4, 5, 2, 2, 4, 6, 8); int b44=-4,0, 7, 9), 2, -7, 7, 4), 6,9, 0, 1), 8, 8, 6, 5; int i,j, c44; for(i=0; i=0; i-, i-) printf(“ c”, *pi); 55 以下程序的功能是:从低位开始取出长整型变量 S中奇数位上的数,依次构成一个新数放在 t中。高位仍在高位,低位仍

18、在低位。请填空。 #include main() long s, t, s1=10; printf(“ nPlease enter s: ”); scanf(“ ld”, s); t=s 10; while(s0) s=s 100; t=_; s1=s1*10; printf(“The result is: ldkn”,t); 国家二级( C语言)笔试模拟试卷 205答案与解析 1 【正确答案】 D 【试题解析】 算法的时间复杂度,是指执行算法所需要的工作量,可以用算法在执行过 程中所需基本运算的执行次数来度量算法的工作量。 2 【正确答案】 D 【试题解析】 二叉树属于非线性结构。栈是一种特

19、殊的线性表,这种线性表只能在固定的一端进行插入和删除操作;队列可看作是插入在一端进行,删除在另一端进行的线性表。 3 【正确答案】 C 【试题解析】 数据的逻辑结构反映的是数据元素之间的逻辑关系,与使用的计算机无关。 4 【正确答案】 B 【试题解析】 内聚是从功能角度来衡量模块的联系,它描述的是模块内的功能联系。内聚有如下种类,它们之间的内聚度由弱到强排列: 偶然内聚 模块中的代码无法定义其不同功能的调用。但它使该模块能执行不同的功能,这种模块为巧合强度模块。 逻辑内聚 这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块的参数来确定该模块应完成哪一种功能。 时间内聚 这种模块顺序

20、完成一类相关功能,比如初始化模块,它顺序地为变量置初值。 过程内聚 如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚。 通信内聚 这种模块除了具有过程内聚的特点外,还有另外一种关系,即它的所有功能都通过使 用公用数据而发生关系。 顺序内聚 如果一个模块内各个处理元素和同一个功能密切相关,而且这些处理必须顺序执行,处理元素的输出数据作为下一个处理元素的输入数据,则称为顺序内聚。 功能内聚 如果一个模块包括为完成某一具体任务所必需的所有成分,或者说模块中所有成分结合起来是为了完成一个具体的任务,此模块则为功能内聚模块。 5 【正确答案】 D 【试题解析】 在关系中凡能惟一标

21、识元组的最小属性集称为该表的键或码。二维表中可能有若干个键,它们称为该表的候选码或候选键。从二维表的所有候选键中 选取一个作为用户使用的键称为主键或主码。 6 【正确答案】 A 【试题解析】 确认测试的任务是验证软件的功能和性能,以及其他特性是否满足需求规格说明中确定的各种需求。 7 【正确答案】 A 【试题解析】 数据流图用于抽象描述一个软件的逻辑模型,它由一些特定的图符构成,包括 4个方面,即加工、数据流、存储文件、源和潭。 8 【正确答案】 A 【试题解析】 选择排序的基本思想是扫描整个线性表,从中选出最小的元素,将它交换到表的最前面,然后对剩下的子表采用同样的方法,直到子表为空。所以第

22、一趟排序后,将选出最小的元素 9放在第一个位置,元素 15则放在第二个位置。 9 【正确答案】 A 【试题解析】 关系的并运算是指,由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。 10 【正确答案】 D 【试题解析】 数据库管理员 (DataBascAdministrator, DBA)是指对数据库的规划、设计、维护、监视等的人员,其主要工作如下: ?数据库设计。 DBA的主要任务之一是数据库设计,具体地说是进行数据模式的设计。 ?数据库维护。 DBA必 须对数据库中的数据安全性、完整性、并发控制及系统恢复、数据定期转储等进行实施与维护。 ?改善系统性能,提高系统效

23、率。 DBA必须随时监视数据库的运行状态,不断调整内部结构,使系统保持最佳状态与效率。 11 【正确答案】 A 【试题解析】 一个 C语言源程序无论包括了多少函数,总是从 main函数开始执行,从 main函数结束。 12 【正确答案】 B 【试题解析】 ifelse语句的含义是,如果变量 a的值等于 1,变量 a的值加 1,否则,则把变量 b的值赋给变量 a。在本题的 4个选项中,与其含义 不同的是选项B,因为没有 break语句,当 a=1的时候,会顺序执行两条语句,最终结果是将 b的值赋给 a。 13 【正确答案】 A 【试题解析】 C语言规定,标识符是由字母、数字或下划线组成,并且它的

24、第一个字符必须是字母或下划线。 14 【正确答案】 A 【试题解析】 C语言中允许进行不同数据类型的混合运算,但在实际运算时,要先将不同类型的数据转化成同一类型再进行运算。类型转换的一般规则是: 运算中将所有 char型转换成 int型, float型转换成 double型; 低级类型服从高级类型,并进 行相应的转换,数据类型由低到高的顺序为: char-int-unsigned-long-float-double; 赋值运算中最终结果的类型,以赋值运算符左边变量的类型为准,即赋值运算符右端值的类型向左边变量的类型看齐,并进行相应转换。 15 【正确答案】 A 【试题解析】 sizeof(do

25、uble)是 C语言内部规定的一个计算参数 (double)在计算机的内存中所占用的字节数量的函数,它返回一个整数值。 16 【正确答案】 D 【试题解析】 本题考查 printf函数的格式和三日 运算符 “?: ”的使用。 printf函数中格式说明符之前插入的任何字符都原样输出。本题中 ab为真,所以返回“*a=97”。 17 【正确答案】 B 【试题解析】 本题考查 printf函数的格式。 printf函数中格式说明符之前插入的任何字符都按原样输出。对于 printf函数,有两个说明,第一个后面的内容要按原样输出。 18 【正确答案】 D 【试题解析】 表达式 “a b”表示的是求 a

26、除以 b的余数。因此,选项 A: (64)=2, 11 2=1;选项 B: (6-6 5)5, 11 5=1; 选项 C: 11 6-6 5=4;选项 D:(11 6)-(6 4)=3。 19 【正确答案】 D 【试题解析】 函数的返回值类型一般与 return语句中的表达式值的类型一致,但 C语言也允许不同;这时,系统以函数定义时的返回值类型说明为准,并自动地将 return语句中表达式的值转换为函数的返回值类型。 20 【正确答案】 D 【试题解析】 本题考查 while循环。当 i20,循环结束。 21 【正确答案】 C 【试题解析】 本题考查死循环的知识。选项 A中, for循环没有任

27、何控制语句就会一直执行下去,所以不可能通过控制表达式的值结束循环。循环体内, i=i10+1这个表达式的值永远小于 10,所以永远不会跳出循环,是死循环;选项 B中, while中表达式永远是非 0,不会结束循环;选项 C中,当 k10时,结束循环;选项 D中, while(s);后面没有任何表达式而是直接加了一个分号,会一直执行,形成死循环。 22 【正确答案】 D 【试题解析】 本题考查函数调用的有关知识点。函数调用 可以出现在表达式中: 可以作为独立的语句存在; 可以作为一个函数的实参。 23 【正确答案】 C 【试题解析】 解答本题的关键在于 if语句条件中的表达式。初始时 a=1,

28、b=3,所以 +a=20,因此 +a127x+10: x-12”即,如果x12成立,则 x+10的值即为此表达式的值,否则 x-12即为此表达式的值。因为x=12,所以 x12不成立,所以执行 v=x-12=0。 27 【正确答案】 C 【试题解析】 本题考查 switch语句。因为 ch=A,所以第一个 switch语句,执行caseA面的语句,输出 AAAA,没有遇到 break语句,所以接着再执行 caseB和default,分别输出 BBBB和 CCCC。 28 【正确答案】 A 【试题解析】 本题考查循环的 4个知识点: break语句可以出现在循环体内及switch语句体内,不能用

29、于其他的语句; continue语句的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,而接着转去判定循环条件是否成立,从而确定下一次循环是否继续执行,也就是说执行 contiune语句不会使整个循环终止; 在循环体内使用 break语句会使循环提前终止; 从多层循环嵌套中退出时,可以使用 goto语句或者 break语句。 29 【正确答案】 C 【试题解析】 在 C语言中,文件指针实际上是指向一个结构体类型的指 针,一般称这个结构体类型名为 FILE,可以用此类型名来定义文件指针。定义文件类型指针变量的一般形式为: FILE*指针变量名;选项 C中少了 “*”,所以选项 C错误。 30

30、 【正确答案】 A 【试题解析】 本题考查两个知识点: 字符串比较函数 strcmp(s1, s2),若s1s2,则返回 1;若 s1=s2,则返回 0;若 s1n。 “左移 ()”运算的规则是将 x的二进制位全部向右移动 n位,将右边移动的高位舍弃,左边高位空出要根据原来符号位的情况进行补充,对无符号数则补 0,对有符号数,若 为正数则补 0,若为负数则补 1。 “异或 ”运算是当两个运算量的相应位相同时结果为 0,不相同时结果为 1。 b=2的二进制为 (00000010)b”、 “”“”“ ”“” 。 (b=2)(c=4)不成立,逻辑为假,所以 n=0; (a=3)!=(b=2)成立,逻

31、辑为真,所以 m=1。 47 【正确答案】 ”x y= d” 【试题解析】 本题考查 printf语句的输出格式。 printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。 printf()函数的调用格式为: printf(“”, )其中,格式化字符串包括两部分内容。一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以 “ ”开始,后跟一个或几个规定字符,用来确定输出内容格式。 参量表是需要输出的一系列参数,其个数必须与格式 化字符串所说明的输出参数个数一样多,各参数之间用 “, ”分开,且顺序一一对应,否则将会出现不可意料

32、的错误。 48 【正确答案】 b=3 【试题解析】 条件表达式的基本格式为: “表达式 1 7表达式 2:表达式 3”;其功能是:表达式 1的值若非 0,则计算表达式 2的值,且为最终结果;若表达式 1的值为 0,则计算表达式 3的值,且为最终结果。因为 a=3,则 a=0成立,所以b=a=3。 49 【正确答案】 9 【试题解析】 本题考查的是条件运算符的应用。带参数的宏定义中定义的 MAX函数的功能是选出 a和 b中较大的数然后加 1; min()函数中显然 j比 i大,所以输出的是 j加 1后的值 9。 50 【正确答案】 b=14 【试题解析】 分析程序可知, n的初始值为 1,因此,

33、 while(n5,继续循环,j=j+i=27+7=34, i-后 i=6,继续循环, j=j+i=34+6=40, i-后 i=5,此时不能满足条件 i5,退出循环,因此最后 i的值为 40。 52 【正确答案】 *ss!= 0 【试题解析】 本题考查的是指针的应用。题目要求求出字符串 ss中指定字符的个数,分析整个程序,空缺处是检验指针 ss是 否指向了字符串的末尾,如没有,即执行下面语句,判断指针 ss指向的字符是否字符 c,若是, i自加 1;所以空缺处填入 *ss!= 0,作为循环终止的条件。 53 【正确答案】 aij+bij 【试题解析】 求两个矩阵的和只要将对应元素相加即可。

34、54 【正确答案】 JD 【试题解析】 第一次循环, i=3, *p3=“JKL”,但因为是以 “ c”格式输出,只能输出一个字符,所以只能输出 J。第二次循环, i=1, *p1=“DEF”,同样也只能输出 D。 55 【正确答案】 s 10*s1+t 【试题解析】 题日要求从低位开始取出长整型变量 s中奇数位上的数,设 s为7654321,所要去除的为 7531。 s在每次循环均除以 100,因此它的作用是将本次循环所需要得到的奇数位数放到最末一位,而要获得该数仅需在此后将 s对 10取余, sl初始值为 10,且在每次循环后均乘以 10,因此可想到是为了将本次循环所获得的奇数位数放到已有数的 “前面 ”,即将上一步所得之数乘以 s1,由于是逐次获得奇次位数,所以每次还要加上 t的原值。

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

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

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