ImageVerifierCode 换一换
格式:DOC , 页数:24 ,大小:68KB ,
资源ID:503269      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-503269.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级(C语言)笔试模拟试卷108及答案与解析.doc)为本站会员(Iclinic170)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

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

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