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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(二级C语言真题.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

二级C语言真题.docx

1、二级C语言真题 2009年9月全国计算机等级考试二级笔试试卷C语言程序设计 一、选择题 下列各题A)、B),C)、D)四个选项中,只有一个选项是正确的。 (1) 下列数据结构中,属于非线性结构的是 A) 循环队列 B) 带链队列 C) 二叉树 D) 带链栈 (2) 下列数据结构中,能够按照“先进后出”原则取数据的是 A) 循环队列 B) 栈 C) 队列 D) 二叉树 (3) 对于循环队列,下列叙述中正确的是 A) 队头指针是固定不变的 B) 队头指针一定大干队尾指针 C) 队头指针一定小于队尾指针 D) 队头指针可以大干队尾指针,也可以小于队尾指针 (4) 算法的空间复杂度是指 A) 算法在执

2、行过程中所需要的计算机存储空间 B) 算法所处理的数据量 C) 算法程序中的语句或指令条数 D) 算法在执行过程中所需要的临时工作单元数 (5) 软件设计中划分模块的一个准则是 A) 低内聚低耦合 B) 高内聚低耦合 C) 低内聚高耦合 D) 高内聚高耦合 (6) 下列迭项中不属于结构化程序设计原则的是 A) 可封装 B) 自顶向下 C) 模块化 D) 逐步求精 (7) 软件详细设计产生的图如下: (作图) 该图是 A) N-S图 B) PAD图 C) 程序流程图 D) E-R图 (8) 数据库管理系统是 A) 操作系统的一部分 B) 在操作系统支持下的系统软件 C) 一种编译系统 D) 一种

3、操作系统 (9) 在E-R图中,用来表示实休联系的图形是 A) 椭圆形 B) 矩形 C) 菱形 D) 三角形 (10) 有三个关系R,S和T如下: (作图) 其中关系T由关系R和S通过某种操作得到,该操作为 A) 选择 B) 投影 C) 交 D) 并 (11)以下叙述中正确的是 A) 程序设计的任务就是编写程序代码并上机调试 B) 程序设计的任务就是确定所用数据结构 C) 程序设计的任务就是确定所用算法 D) 以上三种说法都不完整 (12) 以下选项中,能用作用户标识符的是 A) void B) 8_8 C) _0_ D) unsigned (13) 阅读以下程序 #include stdio

4、.h main() int case;float printF; printf(请输入2个数:); scanf(%d %f,&case,&printF): printf(%d %fn,case,printF); 该程序在编译时产生错误,其出错原因是 A) 定义语句出错,case是关键字,不能用作用户自定义标识符 B) 定义语句出错,PrintF不能用作用户自定义标识符 C) 定义语句无错,scanf不能作为输入函数使用 D) 定义语句无错,printf不能输出case的值 (14) 表达式:(int)(double)9/2)-(9)%2的值是 A) O B) 3 C) 4 D) 5 (15)

5、若有定义语句:int x=10;则表达式x-=x+x的值为 A) -20 B) -10 C) 0 D) 10 (16) 有以下程序 $include stdio.h main() int a=1,b=0; Printf(%d,b=a+b); printf(%dn,a=2*b); 程序运行后的输出结果是 A) 0,0 B) 1,0 C) 3,2 D) 1,2 (17) 设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是 A) if(ab)c=a,a=b,b=c; B) if(ab)c=a,a=b,b=c; C) if(ab)c=a;a=b;b=c; D) if(ab

6、)c=a;a=b;b=c; (18) 有以下程序 #includestdio.h main() int c=0,k; for(k=1;k3;k+) switch(k) default:c+=k; case 2:c+;break;case 4:c+=2;break; printf(%dn,c); 程序运行后的输出结果是 A) 3 B) 5 a) 7 D) 9 (19) 以下程序段中,与语句:k=ab?(bc?1:0):0;功能相同的是 A) if(ab)&(bc)k=1; else k=0; B) if(ab)(bc)k=1; else k=0; C) if(a=b)k=0; else if(b

7、=c)k=1; D) if(ab)k=1; else if(bc) k=1; else k=0; (20) 有以下程序 #include stdio.h main() char s=012xy;int i,n=0; for(i=0;si!=0;i+) if(si=a&si=z) n+; printf(%dn,n); 程序运行后的输出结果是 A) 0 B) 2 C) 3 D) 5 (21) 有以下程序 #include stdio.h main() int n=2,k=0; while(k+&n+2); printf(%d %dn,k,n); 程序运行后的输出结果是 A) 0 2 B) 1 3

8、C) 5 7 D) 1 2 (22) 有以下定义语句,编译时会出现编译错误的是 A) char a=a; B) char a=n; C) char a=aa; D) char a=x2d; (23) 有以下程序 #include stdio.h) main() char c1,c2; c1=A+8-4; c2=A+8-5; printf(%c,%dn,c1,c2); 已知字母A的ASCII码为65,程序运行后的输出结果是 A) E,68 B) D,69 C) E,D D) 输出无定值 (24) 有以下程序 #include stdio.h void fun(int p) int d=2; p=

9、d+; printf(%d,p); main() int a=1; fun(a);printf(%dn,a); 程序运行后的输出结果是 A) 32 B) 12 C) 21 D) 22 (25) 以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。 #define MIN -2147483647 int findmax(int x,int n) int i,max; for(i=0;in;i+) max=MIN; if(maxxi)max=xi; return max; 造成错误的原因是 A) 定义语句int i,max;中max未赋初值 B) 赋值

10、语句max=MIN;中,不应给max赋MIN值 C) 语句if(maxxi)max=xi;中判断条件设置错误 D) 赋值语句max=MIN;放错了位置 (26) 有以下程序 #include stdio.h main() int m=1,n=2,*p=&m,*q=&n,*r; r=p;p=q;q=r; printf(%d,%d,%d,%dn,m,n,*p,*q); 程序运行后的输出结果是 A) 1,2,1,2 B) 1,2,2,1 C) 2,1,2,1 D) 2,1,1,2 (27)若有定义语句:int a410,*p,*q4;且0i4,则错误的赋值是 A) p=a B) qi=ai C) p

11、=ai D) p=&a21 (28) 有以下程序 #include stdio.h #include string.h main() char str20=Qne *World,one *Dream!,*p=str1; printf(%d,strlen(p);printf(%sn,p); 程序运行后的输出结果是 A) 9,One*World B) 9,One*Dream! C) 10,One*Dream! D) 10,One*World (29) 有以下程序 #include stdio.h main() int a=2,3,5,4,i; for(i=0;i4;i+) switch(i%2)

12、case 0:switch(ai%2) case 0:ai+;break; case 1:ai-; break; case 1:ai=0; for(i=0;i4;i+) printf(%d,ai);printf(n); 程序运行后的输出结果是 A) 3 3 4 4 B) 2 0 5 0 C) 3 0 4 0 D) 0 3 0 4 (30) 有以下程序 #include stdio.h #include string.h main() char a10=”abcd; printf(%d,%dn,strlen(a),sizeof(a); 程序运行后的输出结果是 A) 7,4 B) 4,10 C)

13、8,8 D) 10,10 (31) 下面是有关C语言字符数组的描述,其中错误的是 A) 不可以用赋值语句给字符数组名赋字符串 B) 可以用输入语句把字符串整体输入给字符数组 C) 字符数组中的内容不一定是字符串 D) 字符数组只能存放字符串 (32) 下列函数的功能是 fun(char *Da,char *b) while(*b=*a)!=0) a+;b+; A) 将a所指字符串赋给b所指空间 B) 使指针b指向a所指字符串 C) 将a所指字符串和b所指字符串进行比较 D) 检查a和b所指字符串中是否有0 (33) 设有以下函数: void fun(int n,char *s) 则下面对函数指

14、针的定义和赋值均正确的是 A) void (*pf)(); pf=fun; B) void *pf(); pf=fun; C) void *pf(); *Pf=fun; D) void(*pf)(int,char); pf=&fun; (34) 有以下程序 #include stdio.h int f(int n); main() int a=3,s; s=f(a);s=s+f(a);printf(%dn,s); int f(int n) static int a=1; n+=a+; return n; 程序运行后的输出结果是 A) 7 B) 8 C) 9 D) 10 (35) 有以下程序 #

15、include stdio.h #define f(x)x*x*x main() int a=3,s,t; s=f(a+1);t=f(a+1); printf(%d,%dn,s,t); 程序运行后的输出结果是 A) 10,64 B) 10,10 C) 64,10 D) 64,64 (36) 下面结构体的定义语句中,错误的是 A) struct ord int x;int y;int z;struct ord a; B) struct ord int x;int y;int z;struct ord a; C) struct ord int x;int y;int z;a; D) struct

16、int x;int y;int z;)a; (37) 设有定义:char *c;,以下选项中能够使字符型指针c正确指向一个字符串的是 A) char str=string;c=str; B) scarf(%s,c); C) c=getchar(); D) *c=string; (38) 有以下程序 #include stdio.h #include string.h struct A int a;char b10;double c; struct A f(stmct A t); main() struct A a=1001,ZhangDa,10980); a=f(a);printf(%d,%s

17、,%61fn,aa,ab,ac); stmct A f(struct A t) ta=1002;strepy(tb,changRong);tc=12020;return t; 程序运行后的输出结果是 A) 1001,ZhangDa,10980 B) 1002,ZhangDa,12020 C) 1001,ChangRong,10980 D) 1002,ChangRong,12020 (39)若有以下程序段 int r=8; printf(%dn,r1); 输出结果是 A) 16 B) 8 C) 4 D) 2 (40) 下列关于C语言文件的叙述中正确的是 A) 文件由一系列数据依次排列组成,只能构

18、成二进制文件 B) 文件由结构序列组成,可以构成二进制文件或文本文件 C) 文件由数据序列组成,可以构成二进制文件或文本文件 D) 文件由字符序列组成,其类型只能是文本文件 二、填空题 (1) 某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有_个结点。 (2) 程序流程图中的菱形框表示的是_。 (3) 软件开发过程主要分为需求分析、设计、编码与测试四个阶段,其中_阶段产生“软件需求规格说明书”。 (4) 在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么“学生”和“可选课程”的联系为_。 (5) 人员基本信息一般包括:身份证号,姓名,性别,年龄等。其中可以作为

19、主关键字是 _。 (6) 若有定义语句:int a=5;,则表达式:a+的值是_。 (7) 若有语句double x=17;int y;,当执行y=(int)(x/5)%2;之后y的值为_。 (8) 以下程序运行后的输出结果是_。 #include stdio.h main() int x=20; printf(%d,0x20); printf(%dn,0x&x20); (9) 以下程序运行后的输出结果是_。 #include stdio.h main() int a=1,b=7; do b=b/2;a+=b; while (b1); printf(%dn,a);) (10) 有以下程序 #i

20、nclude stdio.h main() intf,f1,f2,i; f1=0;f2=1; printf(%d %d ,f1,f2); for (i=3;i=5;i+) f=f1+f2;printf(%d,f); f1=f2;f2=f; printf(n); 程序运行后的输出结果是_。 (11) 有以下程序 #include stdio.h int a=5; void fun(int b) int a=10; a+=b;printf(%d,a); main() int c=20; fun(c);a+=c;printf(%dn,a); 程序运行后的输出结果是_。 (12) 设有定义: stru

21、ct person int ID;char name12;p; 请将scanf(%d,_);语句补充完整,使其能够为结构体变量p的成员ID正确读入数据。 (13) 有以下程序 #include stdio.h main() char a20= How are you? ,b20; scanf(%s,b);printf(%s%sn,a,b); 程序运行时从键盘输入:How are you?回车 则输出结果为_。 (14) 有以下程序 #include stdio.h typedef struct int num;double s;REC; void funl(REC x) xnum=23;xs=

22、88.5; main() REC a=16,900); funl(a); printf(”%dn“,anum); 程序运行后的输出结果是_。 (15) 有以下程序 #include stdio.h fun(int x) if(x/20) fun(x/2); printf(%d .,x); main() fun(6),Printf(n); 程序运行后的输出结果是_。2009年9月笔试试卷 一、选择题 (1) C) 解析 根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。线性结构表示数据元素之间为一对一的关系,非线性结构表示数据元素之间为一对多或者多

23、对一的关系。根据各种结构的定义知二叉树是一种非线性结构。 (2) B) 解析 栈是限定只在一端进行插入与删除的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。栈顶元素总是后被插入的元素,也是最先被删除的元素;栈底元素总是最先被插人的元素,也是最后才能被删除的元素。栈是按照“先进后出”或“后进先出”的原则组织数据的。 (3) D) 解析 循环队列是将顺序队列首尾相连形成的,随着插入元素或删除元素的进行,其队头指针及队尾指针是在不断变化的,有时可能会出现队头指针大于队尾指针的情况,也可能是队尾指针大于队头指针,故答案为D)。 (4) A) 解析 算法的空间复杂度是指:算法执行过程中所需的存储

24、空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。 (5) B) 解析 模块划分应考虑的因素包括模块之间的耦合和内聚。一般来说,要求模块之间的耦合尽可能地低,即模块尽可能独立,要求模块的内聚程度尽可能地高,即遵循高内聚、低耦合的原则。 (6) A) 解析 模块化、自顶向下、逐步求精都是结构化程序设计的原则;可封装是面向对象程序设计原则。 (7) C) 解析 N-S图是由若干基本框图构成的流程图,其特点是没有流程线;PAD图即问题分析图(Problem Analysis Diagram),它是一种由左往右展开的二维树型结构;程序

25、流程图用于描述问题解决的过程和步骤,其中方框表示处理步骤,菱形框表示逻辑判断,箭头表示控制流向;E-R图即实体 -联系图(Entity Relationship Diagram),用来描述现实世界的概念模型,构成元素有实体、属性和联系,分别用矩形、椭圆形和菱形表示。本题答案为C)。 (8) B) 解析 数据库管理系统是指位于用户与操作系统之间的数据管理软件。数据库管理系统是为数据库建立、使用和维护而配置的软件。 (9) C) 解析 E-R图中用矩形表示实体(等同于表),用椭圆形表示实体的属性(等同于表中字段),用菱形表示实体关系(等同于外键)。 (10) D) 解析 两个相同结构关系的并是由属

26、于这两个关系的元组组成的集合。 (11) D) 解析 程序设计通常分为问题建模、算法设计、编写代码和编译调试四个阶段。所以选项A)、B)、C)说法都不完整。 (12) C) 解析 C语言的标识符命名规则为:只能由字母、数值和下划线3种字符组成;第一个字符必须是字母或下划线;不能与C语言中的关键字或保留字相同。 (13) A) 解析 标识符不能与C编译系统已经预定义的、具有特殊用途的保留标识符(即关键字)同名,否则程序在编译时会出现错误。题目源程序中使用了已经预定义的关键字case,所以将出现错误。 (14) B) 解析 (itn)(double)9/2)的值为4,(9)%2的值为1,因此(in

27、t)(double)9/2)-(9)%2的值为3。 (15) B) 解析 x-=x+x可化为:x=x-(x+x),由于 x初始值为10,所以计算后,x=10-20=-10,因此选B)。 (16) D) 解析 执行第一个printf语句时,b=a+b=1,所以输出1,执行第二个printf语句时,a=2*b=2,所以输出结果为2。 (17) C) 解析 逗号表达式的求解过程是:按表达式顺序从左往右依次求解。本题中由于判断条件ab的值为假,所以选项A)、B)、D)中if语句后面的语句均未被执行,而C)中的后两条语句a=b和b=c被执行,因此选项C)的执行效果与其他三个不同。 (18) A) 解析

28、第一次循环时,k=1,在switch语句中,先执行default后面的语句,即c=c+k=1,因为没有break语句,所以不会跳出switch结构,会接着执行ease2后面的语句,即c=c+1=2,然后跳出switch;第二次循环时,k=2,直接执行case2后面的语句,即c=c+1=3,然后跳出switch语句,结束循环,执行输出语句。 (19) A) 解析 表达式k=ab?(bc?1:0):0表示:如果(ab)条件为真,则k取值(bc?1:0),否则k取值0;当ab的情况下,如果bc,则k值为1,否则为0。所以该表达式与选项A)功能相同。 (20) B) 解析 在字符串数组si中,只有当下标i=3和i=4时,才满足订条件,所以n的值从0增加两次,结果为 2。 (21) D) 解析 本题考查逻辑运算符的“短路”现象,由于k的值为0,表达式首先去求k+的值,因为表达式k+的值为0,系统完全可以确定逻辑表达式的运算结果总是为0,因此将跳过n+2,不再对它进行求值,即k的值加1,n的值不变。 (22) C) 解析

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2