2012年3月全国计算机等级考试二级笔试试卷 C语言程序设计.doc_第1页
2012年3月全国计算机等级考试二级笔试试卷 C语言程序设计.doc_第2页
2012年3月全国计算机等级考试二级笔试试卷 C语言程序设计.doc_第3页
2012年3月全国计算机等级考试二级笔试试卷 C语言程序设计.doc_第4页
2012年3月全国计算机等级考试二级笔试试卷 C语言程序设计.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

校园网()2012年3月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、 选择题(1)(10)、(21)(40)每题2分,(11)(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。(1)下列叙述中正确的是A)循环队列是队列的一种顺序存储结构 B)循环队列是队列的一种链式存储结构C)循环队列是非线性结构 D)循环队列是一直逻辑结构(2)下列叙述中正确的是A)栈是一种先进先出的线性表 B)队列是一种后进先出的线性表C)栈和队列都是非线性结构 D)以上三种说法都不对(3)一棵二叉树共有25个节点,其中5个时子节点,那么度为1的节点数为A)4B)6C)10D)16(4)在下列模式中,能够给出数据库物理存储结构与物理存取方法的是A)内模式 B)外模式C)概念模式D)逻辑模式(5)在满足实体完整性约束的条件下A)一个关系中可以没有候选关键词B)一个关系中只能有一个候选关键词C)一个关系中必须有多个候选关键词D)一个关系中应该有一个或者多个候选关键词(6)有三个关系R、S和T如下:RSTABCABCABCa12a12b21b21d21c31c31则由关系R和S得到关系T的操作是A)自然连接 B)并 C)差D)交(7)软件生命周期中的活动不包括A)软件维护 B)市场调研C)软件测试D)需求分析(8)下面不属于需求分析阶段任务的是A)确定软件系统的功能需求 B)确定软件系统的系能需求C)制定软件集成测试计划 D)需求规格说明书审评(9)在黑盒测试方式中,设计测试用例的主要根据是()。A)程序外部功能 B)程序内部逻辑C)程序数据结构 D)程序流程图(10)在软件设计中不使用的工具是()。A)系统结构图 B)程序流程图C)PAD图 D)数据流图(DFD图)(11)针对简单程序设计,以下叙述的实施步骤正确的是()。A)确定算法和数据结构、编码、调试、整理文档B)编码、确定算法和数据结构、调试、整理文档C)整理文档、确定算法和数据结构、编码、调试D)确定算法和数据结构、调试、编码、整理文档(12)关于C语言中数的表示,以下叙述正确的是()。A)只有整型数在允许范围内能精确无误的表示,实型数会有误差B)只要在在允许范围内整型和实型都能精确表示C)只有实型数在允许范围内能精确无误的表示,整型数会有误差D)只有八进制表示的数在不会有误差(13)以下关于算法叙述错误的是()。A)算法可以用伪代码、流程图等多种形式来描述B)一个正确的算法必须有输入C)一个正确的算法必须有输出D)用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码(14)以下叙述错误的是()。A)一个C程序可以包含多个不同名的函数B)一个C程序只能有一个主函数C)C程序在书写时,有严格的缩进要求,否则不能编译通过D)C程序的主函数必须用main作为函数名(15)设有以下语句Char ch1,ch2, scanf(”%c%c”,&ch1,&ch2);若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是()。A)A和B之间用逗号间隔 B)A和B之间不能有任何间隔符C)A和B之间可以用回车间隔 D)A和B之间用空格间隔(16)以下选项中非法的字符常量是()。A)101 B)65 C)xff D)019(17)有以下程序#include Main() int A=0,B=0,C=0; C=(A-=A-5);(A=B,B+=4); Printf(“%d, %d, %dn”,A,B,C)程序运行后输出的结果是()。A)0,4,5 B)4,4,5 C)4,4,4 D)0,0,0(18)设变量均已正确定义并且赋值,以下与其他三组输出结构不同的一组语句是()。A)x+;printf(“%dn”,x); B)n=+x;printf(“%dn”,n);C)+x;printf(“%dn”,x); D)n=x+;printf(“%dn”,n);(19)以下选项中,能表示逻辑值“假”的是()。A)1 B)0.000001 C)0 D)100.0(20)有以下程序#include Main() int a; Scanf(“%d”,&a); If(a+9) printf(“%dn”,a); Else printf(“%dn”,a-);程序运行时键盘输入9,则输出的结构是()。A)10 B)11 C)9 D)8(21)有以下程序#include main() int s=0,n; for (n=0;n3;n+) switch(s) case 0; case 1;s+=1; case 2;s+=2;break; case 3;s+3; case 4;s+=4; printf(“%dn”,s); 程序运行后的结果是()。A)1,2,4 B)1,3,6 C)3,10,14 D)3,6,10(22)若k是int类型变量,且有以下for语句for(k=-1;k0;k+) printf(*n”);下面关于语句执行情况的叙述中正确的是()。A)循环体执行一次 B)循环体执行两次C)循环体一次也不执行 D)构成无限循环(23)有以下程序#include Main() char A,B,C; B=1;C=A for(A=0;A0;m-) scanf(“%dn”, );A)&x+m B)&xm+1 C)x+(m+) D)x+m(26)若有函数Viod fun(double a, int *n)以下叙述中正确的是()。A)调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送B)形参a和n都是指针变量C)形参a是一个数组名,n是指针变量D)调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组(27)有以下程序#include Main() int a,b,k,m,*p1,*p2; k=1,m=8; p1=&k,p2=&m; a=/*p1-m; b=*p1+*p2+6; printf(“%d ”,a); printf(“%dn”,b);编译时编译器提示错误信息,你认为出错的语句是()。A)a=/*p1-m B)b=*p1+*p2+6C)k=1,m=8; D)p1=&k,p2=&m;(28)以下选项中有语法错误的是()。A)char *str =“guest”; B)char str10 =“guest”;C)char *str3 *str1=“guest”; D)char str310;str1=“guest”;(29)avg函数的功能是求整型数组中的前若干个元素的平均值,设数组元素个数最多不超过10,则下列函数说明语句错误的是()。A)int avg(int *a,int n); B)int avg(int a10,int n);C)int avg(int a,int n); D)int avg(int a,int n);(30)有以下函数#include #include main() printf(“%dn”,strren”ATSn0121”) ); 程序运行后的输出结果是()。A)3 B)8 C)4 D)9(31)有以下函数#include main() char a20,b20,c20; scanf(”%s%s”,a,b); get(c); printf(”%s%sn”,a,b,c);程序运行时从第一行开始输入 this is a cat!,则输出结果是()。A)thisisacat! B)this is a C)thisis a cat! D)thisisa cat!(32)有以下函数#include viod fun(char c) if(cx) fun(c-1); printf (“%c”,c);main() fun”z”; 程序运行输出结果是()。A)xyz B)wxyz C)zyxw D)zyx(33)有以下函数#include viod func(int n) int i; for(i=0;i=n;i+) printf(“*”); printf(“#”);main() func(3); printf(“?”); func(4); printf(“n”); 程序运行输出结果是()。A)*#?*# B)*#?*#C)*#?*# D)*#?*#(34)有以下函数#include viod fun(int *s) staic int j=0; do sj=sj+sj+1; wihle(+j2);main() int k,a10=1,2,3,4,5; for(K+1;k3;k+) fun(a); for(K+1;k5;k+) printf(“%d”,ak); printf(“n”);程序运行输出结果是()。A)12345 B)23445 C)34756 D)35745(35)有以下函数#include #define S(x) (x)*x*2main() int k=5,j=2; printf(“%d,”,Sk+j); printf(“%dn”,S(k-j);程序运行输出结果是()。A)98,18 B)39,11 C)39,18 D)98,11(36)有以下函数#include Viod exch(int t ) t0=t5; main() int x10=1,2,3,4,5,6,7,8,9,10,i=0; while(i=4) exch(&xi)i+; for(i=0;i color C)std- color D)(*ptr) .color (38)有以下函数#include struct stu int mun; char name10; int age;viod fun(struct stu *p) printf(“%sn”,p-name); mian() struct stu x3=01,”zhang”,20,02,”wang”,19,03,”zhao”,18; fun(x+2);程序运行输出结果是()。A)zhang B)zhao C)wang D)19(39)有以下函数#include mian() int a=12,c; c=(a2)1; printf(“%dn”,c):程序运行输出结果是()。A)3 B)50 C)2 D)96(40)以下函数不能用于向文件写入数据的是()。A)ftell B)fwrite C)fputc D)fprintf二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。(1)将长度为n的顺序存储在线性表中删除一个元素,最坏情况下需要移动表中的元素个数为 【1】。(2)设循环队列的存储空间为Q(1:3),初始状态为front=rear=30。现经过一系列入队与退队运算后,front=16,rear=15,则循环队列中有 【2】 个元素。(3)数据库管理系统提供的数据语言中,负责数据的增、删、改和查询的是 【3】 。(4)在将E-R图转换到关系模式时,实体和联系都可以表示成 【4】 。(5)常见的软件工程方法有结构化方法和面向对象方法,类、继承以及多态性等概念属于 【5】 。(6)设变量a和b已定义为int类型,若要通过scanf(”a=%d,b=%d”,&a,&b);语句分别给a和b输入1和2,则正确的数据输入内容是 【6】 。(7)以下程序的输出结果是 【7】 。#include mian() int a=37; a+=a%=9; printf(“%dn”,a);(8)设ABc都是整型变量,如果a的值为1,b的值为2,则执行c=a+|b+;语句后,变量b的值是 【8】 。(9)有以下程序段s=1.0;for(k=1,k=n;k+) s=s+1.0(k*(k+1);printf(“%fn”,s);请填空,使以下程序段的功能与上面的程序段完全相同。s=1.0; k=1;while( 【9】 ) s=s+1.0(k*(k+1); k=k+1; printf(“%fn”,s);(10)以下程序段的输出结果是 【10】 。#include mian() char a,b; for(a=0;a20;a+=7) b=a; putchar(b+0); (11)以下程序段的输出结果是 【11】 。#include mian() char *ch4=“red”,”green”,”blue”; int i=0; while(chi); putchar(chi0; i+; (12)有以下程序#include mian() int arr=1,3,5,7,2,4,6,8, i, start; scanf(“%d”, &start); for(i=0,i3,i+) printf(“%d”,arr(start+i)%8);若在程序运行时输入整数10 ,则输出结果为 【12】 。(13)以下程序的功能是输出a数组中的所有字符串,请填空#include mian() char *a=“ABC”,”DEFGH”,”IJ”,”KLMNOP”; int i=0; for(;i4;i+) printf(“%sn”, 【13】 );(14)以下程序的输出结果是 【14】 。#include #include #include mian() char *p, *q, *r; p=q=r=(char *)malloc(sizeof(char)*20); strcpy(p,”attaboy,welcome!”); printf(“%c%c%cn”,p11, q3, r4); free(p);(15)设文件test.txt中原已写入字符串Begin,执行以下程序后,文件中的内容为 【15】 。#include mian() file *fp; fp=fopen(“test.txt”,”w+”); fputs(“test”,fp); fclose(fp);2012年3月全国计算机等级考试二级C参考答案及解析一、选择题(1)A) 【解析】 循环队列是一种顺序存储的线性结构,所以,“循环队列是队列的一种链式存储结构”、“循环队列是非线性结构”和“循环队列是一种逻辑结构”的说法都是错误的。(2)D) 【解析】栈和队列都是线性结构,并且栈是后进先出,队列是先进后出,所以三种说法都不对。(3)D) 【解析】根据公式n0=n2+1,叶子结点个数为5,则度为2的结点数为4,那么度为1的结点数n1=n-n0-n2=25-4-5=16。(4)A) 【解析】数据库系统在其内部具有三级模式;概念模式、内部模式与外部模式,其中,内模式(又称物理模式)给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径,内模式的物理特性主要体现在操作系统及文件级上,它还未深入到设备级(如磁盘及磁盘操作)上。概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户(应用)的公共数据视图,主要描述数据的概念记录类型以及它们之间的关系,它还包括一些数据间的语义约束。外模式(子模式或用户模式)是用户的数据视图,也就是用户所见到的数据模式,它由概念模式推导而出的,在一般的DBMS中都提供相关的外模式描述语言(外模式DDL)。(5)D) 【解析】在关系R中如记录完全函数依赖于属性(组)X,则称X为关系R中的一个候选关键字。候选关键字的性质有:在一个关系中,候选关键字可以有多个;任何两条记录候选关键字值都是不相同的;关键字可能由一个属性构成,也可能由多个属性构成;在任何关系中至少有一个关键字。所以,在满足实体完整性约束的条件下,一个关系中应该有一个或多个候选关键字。(6)C) 【解析】自然连接是二元运算,其结果是得到两个关系中公共属性名字上相等的所有元组的组合;并是指将两个关系中的元素全部合并到一个新的关系之中;交是指将那些同时属于两个关系的元素组成一个新的关系;差是指将属于前一个集合但不属于后一个集合的元素组成新的关系。由图中可以看出,关系T是由属于R但不属于S的元组组成的集合,所以答案为差。(7)B) 【解析】一个软件产品或软件系统通常要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生存周期。通常而言,软件生命周期可以划分为六个阶段:问题的定义及规划、需求分析、软件设计、编码、软件测试、运行维护。所以,软件生命周期中的活动不包括市场调研。(8)C) 【解析】需求分析的基本任务是:问题识别:双方确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求。分析与综合,导出软件的逻辑模型。编写文档:包括编写需求规格说明书,编写初步用户使用手册,确认测试计划,修改完善软件开发计划。制定软件集成测试计划属于概要设计。(9)A) 【解析】通常,软件的测试方法包括白盒测试与黑盒测试。白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序。黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,把程序看作一个不能打开的黑盒子,主要针对软件界面和软件功能进行测试。(10)D) 【解析】软件设计包括概要设计和详细设计,软件概要设计中,面向数据流的设计方法有变换型系统结构图和事务型数据流两种。软件详细设计,程序流程图(PDF)和PAD(问题分析图)是过程设计的常用工具。数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的。(11)A) 【解析】程序设计的实施步骤为确定算法和数据结构、编码、调试、整理文档。(12)B) 【解析】只要在允许范围内,整型数和实型数都可以精确的表示一个数。(13)B) 【解析】一个正确的算法有零个或多个输入,必须要有一个或多个输出。所以选项B)说法错误。(14)C) 【解析】程序在书写时,缩进要求是为了增加程序的可读性,没有严格按照缩进要求,不会影响编译和运行。(15)B) 【解析】在scanf语句里,%c比较特殊,它是输入单个字符,此处输入格式为“%c%c”,所以输入字符A和B时,不能有间隔。(16)D) 【解析】“”后需八进制数据,不能出现数据“9”,所以选项D)错误。(17)A) 【解析】根据优先级,a-=a-5即a=a-(a-5)=5;又c=(a-=a-5)=5;再根据a=b得,a=0;又b+=4得b=b+4=4。经计算,a=0,b=4,c=5。(18)D) 【解析】A、B、C输出的均是x+1,而D选项输出的是x。(19)C) 【解析】在逻辑表示中,“1”可以表示逻辑值“真”,“0”可以表示逻辑值“真”。(20)A) 【解析】a的初始值为9,执行a+9时,为假,a加1,此时,a=10;执行else语句,输出a=,即先输出a的值(此时,a=10),a的值再减1。(21)C) 【解析】第一次循环:s=0,n=0,执行swith语句中的case1和case2语句,输出3;第二次循环:s=3,n=1,执行swith语句中的case3和default语句,输出10;第三次循环:s=10,n=2,执行swith语句中的default语句,输出14。故,输出结果为:3,10,14。(22)A) 【解析】第一次K=-1小于0,执行循环体;第二次执行K+,k=0,此时K”x”,执行fun()函数,参数变为y,满足cx,执行fun()函数,此时,参数为x,不再满足条件,开始逆序输出x,输出y,输出z。(33)D) 【解析】从main函数开始,执行func()函数,连续输出四个“*”和一个“#”,再次调用func(),连续输出五个“*”和一个“#”,故选项D)正确。(34)D) 【解析】从main函数开始,第一个for循环:k=1,k3,运行fun(a),s是指向数组a的指针,得s0=s0+s1=3,s1=s1+s2=5,j=2,退出fun();接着,执行第一个for循环;k=2,k”,其中,左操作数必须是指向结构的指针,右操作数是该结构的成员;结构体变量名.成员名。故答案C)是错误的。(38)B) 【解析】从main函数开始,请用fun()函数,x指向数组第一个元素,x+2指向第三个元素,然后即p指向第三个元素,输出变量name,即Zhao。(39)D) 【解析】考察左移运算符“”,将12转换为二进制为1100,左移2位,再左移1位,为1100000,即96。故选择答案D)。(40)A) 【解析】A)ftell用于返回当前文件指针;B)fwnte用于向文件读入写入一个数据块;C)fputc用于送一个字符到一个流中;D)传送格式化输出到一个文件中。故答案选A)。二、填空题(1)n-1【解析】线性表的存储结构有两种:顺序存储(称为线性表)和链式存储(线性链表)。在长度为n的顺序存储线性表中删除一个元素,最坏情况下需要移动表中n-1个数据。(2)29【解析】通过题干的描述可在此循环队列共30个空间,另外队尾指针rear的值小于队头指针front的值,所以利用公式(rear-front+30)%30=29,可知此循环队列的元素个数为29。(3)数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论