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

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

1、国家二级( C语言)笔试模拟试卷 108及答案与解析 1 算法的空间复杂度是指 ( )。 ( A)算法程序的长度 ( B)算法程序中的指令条数 ( C)算法程序所占的存储空间 ( D)算法执行过程中所需要的存储空间 2 按照 “先进先出 ”组织数据的数据结构是 ( )。 ( A)队列 ( B)栈 ( C)双向链表 ( D)二叉树 3 下列叙述中正确的是 ( )。 ( A)线性链表的各元素在存储空间中的位置必须是连续的 ( B)线性链表的头元素一定存储在其他元素的前面 ( C)线性链表中的各元 素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面 ( D)线性链表中的各元素在存

2、储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的 4 有下列二叉树,对此二叉树前序遍历的结果为 ( )。 ( A) XZCYAB ( B) XYZABC ( C) XYABCZ ( D) XYAZBC 5 结构化程序设计主要强调的是 ( )。 ( A)程序的规模 ( B)程序的效率 ( C)程序设计语言的先进性 ( D)程序的易读性 6 下列叙述中正确的是 ( )。 ( A)在面向对象的 程序设计中,各个对象之间具有密切的关系 ( B)在面向对象的程序设计中,各个对象都是公用的 ( C)在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小 ( D)上述 3种说法都不对 7 结构

3、化分析方法是面向 ( )的自顶向下逐步求精进行需求分析的方法。 ( A)对象 ( B)数据结构 ( C)数据流 ( D)目标 8 下列所述中,是软件调试技术的是 ( )。 ( A)错误推断 ( B)集成测试 ( C)回溯法 ( D)边界值分析 9 数据库 DB、数据库系统 DBS、数据库管理系统 DBMS之间的关系是 ( )。 ( A) DB包括 DBS和 DBMS ( B) DBMS包括 DB和 DBS ( C) DBS包括 DB和 DBMS ( D)没有任何关系 10 简单的交换排序方法是 ( )。 ( A)快速排序 ( B)选择排序 ( C)堆排序 ( D)冒泡排序 11 下列说法正确的

4、是 ( )。 ( A)一个 C程序可以有多个主函数 ( B)一个 C语言的函数中只允许有一对花括号 ( C) C程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内 ( D)在对 C程序进行编译时,可以发现 注释行中的拼写错误 12 下列程序的输出结果是 ( )。 #include stdio.h main() int a=4 printf(“%dn“, (a+=a-=a*A) ); ( A) -8 ( B) 14 ( C) 0 ( D) -24 13 表示关系 abc的 C语言表达式为 ( )。 ( A) (a =B) int f2(int x,int y)return x y?

5、y:x; main( ) int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1 (a,b),f1 (c,d); f=f1 (f2(a,b),f2(c,d); g=a+b+c+d-e-f; printf(“%d,%d,%dn,e, f,g); ( A) 4,3,7 ( B) 3,4,7 ( C) 5,2,7 ( D) 2,5,7 22 设有程序段: int k=12; while(k=1)k=k-1; 则下列描述中正确的是 ( )。 ( A) while循环执行 10次 ( B)循环是无限循环 ( C)循环体语句一次也不执行 ( D)循环体语句执行一次 23 在执行完下列的 C语

6、句段之后,则 B的值是 ( )。 char a=A; int b; B=(34 该函数的类型是( )。 ( A) int类型 ( B) float类型 ( C) void类型 ( D)函数无类型说明,定义有错 25 下列程序中函数 reverse()的功能是将 a所指数组中的内容进行逆置。 #include stdio.h void reverse(int a, int n) int i,t; for(i=0;i n/2;i+) t=ai;ai=aa-1-i;an-1-i=t; main() int b10=1,2,3,4,5,6,7,8,9,10;int i,s=0; reverse(b,1

7、0); for(i=0;i 3 ;i+) s+=bi; printf(“%dn“,s); 程序运行后的输出结果是 ( )。 ( A) 27 ( B) 6 ( C) 25 ( D) 30 26 语句 int(*ptr)()的含义是 ( )。 ( A) ptr是一个返回值是 int的函数 ( B) ptr是指向 int型数据的指针变量 ( C) ptr是指向函数的指针,该函数返回一个 int型数据 ( D) ptr是一个函数名,该函数的返回值是指向血型数据的指针 27 设有定义: int a=2,b=3,c=4; ,则下列选项中值为 0的表达式是 ( )。 ( A) (! a= =1) scanf

8、(“%d“, dos=s+t;t=t-2;while(t!=n); 为使此程序段不陷入死循环,从键盘输入的数据应该是 ( )。 ( A)任意正奇数 ( B)任意负偶数 ( C)任意正偶数 ( D)任意负奇数 29 下列程序的输出结果是 ( )。 #include stdio.h void main() int b6=2,4,6,8,10,12; int*p=b, *q= printf(“%d“, *(p+); printf(“%d,“,*q); ( A) 4,4 ( B) 2,2 ( C) 4,5 ( D) 2,4 30 若有说明语句: double*p, a,则能通过 scanf语句正确给输

9、入项读入数据的程序段是 ( )。 ( A) *p= ( B) *p= scanf(“%f“,p); ( C) p= scanf(“%1f“,*p); ( D) p= scanf(“%1f“,p); 31 下列程序的输出结果是 ( )。 #include stdio.h main() char ch25=“1234“,“5678“,*p2; int i,j,s=0; for(i=0;i 2;i+) pi=chi; for(i=0;i 2;i+) for(j=0;pij 0;j+=2) s=pij-0; printf(“%d“,s); ( A) 6357 ( B) 6135 ( C) 1357 (

10、 D) 691357 32 下列程序的输出结果是 ( )。 #include stdio.h main() int a23=1,2,3,4,5,6,(*p)3,i; p=a; for(i=0;i 3;i+) if(i 2) p1i=p1i-1; else p1i=1; printf(“%dn“,a01+a11+a12); ( A) 8 ( B) 7 ( C) 12 ( D) 9 33 字符串 “ABCDEF“的长度是 ( )。 ( A) 15 ( B) 10 ( C) 7 ( D) 8 34 若有下列说明,则 ( )不是对 strcpy库函数的正确的调用。 strcpy库函数用于复制一个字符串

11、: char*str1=“abcd“,str210,*str3=“hijklmn“,*str42,*str5=“aaaa“ ( A) strcpy(str2,str1) ( B) strcpy(str3,str1) ( C) strcpy(str4,str1) ( D) strcpy(str5,str1) 35 下列程序段的输出结果为 ( )。 #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)有

12、语法错误 ( D) lang 36 执行下列程序后,输出的结果是 ( )。 #include stdio.h #define S(X) X*X void main() int a=9,k=3,m=2; a/=S(k+m)/S(k+m); printf(“%d“,a); ( A) 1 ( B) 4 ( C) 9 ( D) 0 37 已知有结构体: struct sk int a; float b; data,*p; 若有p= float y; char z;st; 则下列的叙述中不正确的是 ( )。 ( A) struct是结构体类型的关键字 ( B) st是结构体类型名 ( C) x、 y、

13、x都是结构体成员名 ( D) struct str是结构体类型名 39 设 x=015,则 x=x017的值是 ( )。 ( A) 1111 ( B) 11111101 ( C) 10 ( D) 11000000 40 若 fp是指向某文件的指针,且尚未读到文件末尾,则函数 feof(fp)的返回值是( ) ( A) EOF ( B) -1 ( C)非零值 ( D) 0 41 在算法的 4个特性中,算法必须能在执行有限个步骤之后终止指的是算法的_特性。 42 按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于 _。 43 栈中允许进行插入和删除的一端叫做 _。 44 在面向对象程序设计

14、中,从外面看只能看到对象有外部特征,而不知道也无须知道数据的具体结构以及实现操作的算法,这称为对象的 _。 45 软件工程研究的内容主要包括: _技术和软件工程管理。 46 表示 “整数 x的绝对值 大于 5”时值为 “假 ”的 C语言表达式是 _。 47 设 y为血型变量,请写出描述 “y是偶数 ”的表达式 _。 48 下列程序的运行结果是 _。 main() int x=1, y=2, z=3; printf(“%d, “, x y?y: x); printf(“%d, “, z y?x+: y+); printf(“%d, %d“, x, y); 49 下列程序段中循环体的执行次数是 _

15、; a=15; b=0; dob+=2; a-=2+b; while(a =0); 50 语句 “int(*ptr)(); ”的含义是 _是指向函数的指针,该函数返回一个 int型数据。 51 下列程序的输出结果是 _。 #include stdio h int(int x,int y,int cp,int dp) cp=x*x+y*y; dp=x*x-y*y; main() int a=1, b=8, c=7, d=9; t(a,b,c,d); printf(“%d%dn“,c,d); 52 13在内存中占 1个字节, “12“在内存中占 _个字节。 53 #define命令出现在程序中函数

16、的外面,宏名的有效范围为 _。 54 下列程序段的运行结果是 _。 char str=“ABCD“, *p=str; printf(“%dn“, *(p+3); 55 下列程序中的数组 a包括 10个整数元素,分别将前项和后项之和存入数组 b,并按每行 4个 元素输出数组 b。请填空。 #include stdio h main() int a10, b10, i; for(i=0; i 10; i+) scanf(“%d“, 的定义可知,如果 x y成立,则函数 n返回 x的值,函数 f2返回 y的值。所以 f1(a,b)=4,f1(c,d)=5,f2(a,b)=3,f3(c,d)=2故e=

17、f2(4,5)=4,f=f1(3,2)3,g=4+3+5+2-4-3=7。 22 【正确答案】 C 【试题解析】 本题考查 while循环。 while循环的控制表达式 k=1是个赋值表达式而不是逻辑表达式,所以循环体一次也不执行。 23 【正确答案】 B 【试题解析】 本题考查 C语言 3个知识点: 将一个字符赋给一 个字符变量时,并不是将该字符本身存储到内存中,而是将该字符对应的 ASCII码存储到内存单元中: 大写字母的 ASCII码值小于其对应小写字母的 ASCII码值: 只要逻辑与运算符 &的两个运算对象都为非零,返回值就是 1。 24 【正确答案】 A 【试题解析】 本题考查默认函

18、数的函数值的类型在函数定义时,由于函数没有说明其类型,系统默认一律自动按整型处理,因此,函数的类型为 int类型。 25 【正确答案】 A 【试题解析】 本题考查函数调用时的参数传递函数 reverse将数组 b进行了 逆置,此时的 b10=(10,9,8,7,6,5,4,3,2,1,后面 for语句的功能是将 b中的前 3个数累加,将结果放在 s中,最后将 s输出,结果 s=10+9+8=27。 26 【正确答案】 C 【试题解析】 本题考查的是指向函数的指针函数指针定义的基本格式为:类型标识符 (*指针变量名 )( )。 “类型标识符 ”为函数返回值的类型。 27 【正确答案】 A 【试题

19、解析】 在选项 A)中,因为 !a=0,所以关系表达式 !a=1的值为 0,又因为逻辑与运算符 “&” 两边的表达式 只要一个等于零,则整个表达式为零,所以选项 A)正确。在选项 B)中,关系表达式 a b为真,表达式 (a b)&!c为假,而表达式 (a b)&!c1为真,所以整个表达式的值为真。选项 C)中, a&b的结果为真。在选项 D)中, a(b+b)&(c-a)的结果为真。 28 【正确答案】 D 【试题解析】 因为变量 t的初始值等于 1,经过第一次 do while循环中,执行t=t-2这条语句一次,所以变量 t的值为 -1,判断关系表达式 t!=n是否成立,如果关系表达式成立

20、,则执行第二次循环,再执行 t=t-2这条语句一次,所以变量 t的值为 -3,接着再判断关系表达式 t!=n是否成立,如果关系表达式成立,执行第三次循环,否则退出循环。由此可知,所以只要输入变量 n的值为负奇数,则一定会使 t=n成立,则退出 do while循环。 29 【正确答案】 D 【试题解析】 首先定义了一个指向一维数组 b的指针 P,一个指向指针 p的指针变量 q,输出 *(p+)是先输出 *p即 b0的值,再将指针 p指向数组的下一个元素b1,输出 *q是输出针 p所指单元的内容,即 b1的值。 30 【正确答案】 D 【试题解析】 double*p,a;语句表示定义了一个指向双

21、精度型的指针变量 p和双精度型变量 a,而语句 p=&a表示将变量 a的地址赋给指针变量 p; scanf(“%1f“,p)表示用键盘输入的数赋给指针变量 p所指向的地址单元中。 scanf()函数要求在输入 double型数据,格式控制符必须用 %1f(或 %le)否则,数据不能正确输入。所以选项 D)为正确答案。 31 【正确答案】 C 【试题解析】 本题先将指针 P指向二维数组 ch25,相当于 p0=“1234“,p1=“5678“,通过双重 for循环,是要将 p中的字符隔一个输出一个,通过s=pij-0这条语句是将所要输出的字符转换成相应的十进制数。 32 【正确答案】 B 【试题

22、解析】 第 1次执行 for循环, p10=p10-1=3;第 2次执行 for循环,p11=P11-1=4;第 3次执行 for循环, p12=1,最后输出的是a01)+a11+a12=2+4+1=7。 33 【正确答案】 B 【试题解析】 本题涉及字符串最基本的 2个概念: 字符串的长 度是指字符串中字符的个数,但不包括字符串结束符; 以反斜杠 “”开头的特殊字符序列,意思是把反斜杠后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内, “”连同后面的字符为一个长度。 34 【正确答案】 C 【试题解析】 strcpy(s1,s2)函数的功能是将字符串 s2复制到字符串

23、 s1中 (注意:要保证 s1存储区能容纳下 s2字符串 )。 35 【正确答案】 B 【试题解析】 本程序首先定义了静态字符数组 a,然后将指针 p指向数组 a的首地址。第 1次 for循环, p=a, p指向数组的第 1个元素, *p是取指针 p所指地址的内容,输出 1;第 2次 for循环, p=p+2,则 p指向数组的第 3个元素, *p是取指针 P所指地址的内容,输出 n;第 3次 for循环, p=p+2,则 p指向数组的第 5个元素, *p是取指针 p所指地址的内容,输出 u;第 4次 for循环, p=p+2,则 p指向数组的第 7个元素, *P是取指针 p所指地址的内容,输出

24、 g,结束循环。 36 【正确答案】 D 【试题解析】 本题主要是考查带参数的宏定义及其相关运算。本题中宏运算过程如下: a=a/S(k+m)/S(k+m)=a/(k+m*k+m/k+m*k+m= 9/(3+2*3+2/3+2*3+2)=0。 37 【正确答案】 B 【试题解析】 本题主要考查结构指针: p=&data,访问结构体的成员,可以通过结构变量访问,即 data.a也可以用等价的指针形式: (*p).a和 p- a来访问结构体变量中的成员。 38 【正确答案】 B 【试题解析】 本题主要考查结构类型的定义: struct是结构体类型的关键字:struct str是结构体类型名; x、

25、 y、 z都是结构体成员名: st是结构变量名。 39 【正确 答案】 C 【试题解析】 本题主要考查按位异或运算, x=015(二进制 00001101), 017的二进制为 000001111,两者异或结果为 00000010。 40 【正确答案】 D 【试题解析】 文件状态检测函数 feof(fp)的功能是:测试所指的文件的位置指针是否已达到文件尾,如果已到达文件尾,则函数返回非。值;否则返回 0,表示文件尚未结束。 41 【正确答案】 有穷性 【试题解析】 算法的 4个基本特性包括:可靠性、确定性、有穷性和拥有足够的情报,其中,算法的有穷性指的是算 法必须在有限的时间内完成,即算法必须

26、在执行有限个步骤之后终止。 42 【正确答案】 线性结构 【试题解析】 数据的逻辑结构,是指数据元素之间的逻辑关系,分为线性结构和非线性结构,常见的线性结构有线性表、栈和队列等,常见的非线性结构有树、二叉树等。 43 【正确答案】 栈顶 【试题解析】 栈是限定在表的一端进行插入和删除操作的线性表。在表中,允许插入和删除的一端叫做 “栈顶 ”,不允许插入和删除的一端叫做 “栈底 ”。 44 【正确答案】 封装性 【试题解析】 对象具有下列 5个基本 特点: 标识惟一性; 分类性; 多态性; 封装性; 模块独立性好。其中,封装性是指从外面看只能看到对象的外部特征,对象的内部特征即处理能力的实行和内

27、部状态,对外是不可见的,对象的内部状态只能由其自身改变。 45 【正确答案】 软件开发 【试题解析】 软件工程包括软件开发技术和软件工程管理。其中软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工具环境,其主体内容是软件开发方法学;软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。 46 【正确答案】 (x -5)&(x 5) 【试题解析】 本题考查基本逻辑表达, “整数 x的绝对值大于 5”时值为 “假 ”,即整数 x的绝对值小于等于 5,也就是整数 x要大于等于 -5且要小于等于 5。这里“且 ”用 “与 (&)”表示,所以 C语言表达式为: (x -5)&(x 5

28、)。 47 【正确答案】 (y%2)=0 【试题解析】 因符合偶数的条件是对 2取余为 0,所以要描述 y是偶数的表达式是 (y%2)=0。 48 【正确答案】 2,2, 1, 3 【试题解析】 本题考查 +, -运算符和条件运算符的使用。 “表达式 17表达式 2:表达式 3”的功能是:表达式 1的值若非 0,则计算表达式2的值,且表达式 2的值为最终结果;若表达式 1的值为 0,则计算表达式 3的值,且为最终结果。 本题中, x=1, y=2时, x y成立,输出 y的值 2: y=2, z=3时, z y不成立,执行 y+,输出 2后 y值增 1,所以最后一个输出 x的值不变为 1, y

29、的值为增加后的 3。 49 【正确答案】 3 【试题解析】 本题考查 dowhile 语句形式: do循环体 while表达式 首先执行循环体语句,然后检测循环控制条件表达式的值,若 为真,则重复执行循环体语句,否则退出循环。第 1次循环: b+=2, b=2, a-=2+b, a=11;第 2次循环: b=4, a=5;第 3次循环: b=6, a=-3,此时再判断循环条件不满足,退出循环。 50 【正确答案】 ptr 【试题解析】 本题考查函数指针的概念。函数指针的定义格式是:类型标识符(叶旨针变量名 )()。注: “类型标识符 ”为函数返回值的类型。 51 【正确答案】 7 9 【试题解

30、析】 因为在调用子函数时进行的是数值传递,调用于函数并不能改变实参的值,所以经过调用子函数, c、 d的值并没有发生变化还是原来的值。 52 【正确答案】 2 【试题解析】 13:表示八进制数 13表示的 ASCII字符,是一个字符, 占一个字节;而 “12“是个字符串,除了八进制数 12表示的 ASCII字符占一个字节外,还有在字符串的末尾加上串结束标志 “0“,所以共有 2个字节。 53 【正确答案】 从定义到本源文件结束 【试题解析】 C语言规定,宏名的有效范围为从定义宏到本源程序结束。 54 【正确答案】 68 【试题解析】 本题考查如何用指针引用数组元素。本题先 定义了一个指向字符型数组 str的指针 p,指针 p指向数组 str的首地址, p+3将指针指向 str3, *(p+3)指的是字符 “D”,输出时是以 “%d”格式输出的,即输出其相应 ASCII码值 68。 55 【正确答案】 bi=ai+ai+1 【试题解析】 将数组 a中元素 ai与 ai+1值相加后的值赋予数组 b中元素bi,即可实现将一个数组的前项和后项之和存入另一数组。

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

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

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