2011年3月计算机二级考试C语言试题及答案详细解析
2011年计算机等级二级C语言章节习题及答案(13)

2011年计算机等级二级C语言章节习题及答案(13)2011年计算机等级二级C语言章节习题及答案(13)第13章文件一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。
)13.1 fseek函数的正确调用形式是A)fseek(文件指针,起始点,位移量)B)fseek(文件指针,位移量,起始点)C)fseek(位移量,起始点,文件指针)D)fseek(起始点,位移量,文件指针)正确答案: B13.2 若fp是指向某文件的指针,且已读到文件末尾,则函数feof (f p)的返回值是A)EOFB)-1C)1D)NULL正确答案: C13.3 fscanf函数的正确调用形式是A)fscanf(fp,格式字符串,输出表列);B)fscanf(格式字符串,输出表列,fp);C)fscanf(格式字符串,文件指针,输出表列);D)fscanf(文件指针,格式字符串,输入表列);正确答案: D13.4 下列关于C语言数据文件的叙述中正确的是A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件正确答案: D13.5 函数fseek(pf, OL,SEEK_END)中的SEEK_END代表的起始点是A)文件开始B)文件末尾C)文件当前位置D)以上都不对正确答案: B13.6 C语言中,能识别处理的文件为A)文本文件和数据块文件B)文本文件和二进制文件C)流文件和文本文件D)数据文件和二进制文件正确答案: B13.7 若调用fputc函数输出字符成功,则其返回值是A)EOFB)1C)0D)输出的字符正确答案: D13.8 已知函数的调用形式:fread(buf,size,count,fp),参数buf 的含义是A)一个整型变量,代表要读入的数据项总数B)一个文件指针,指向要读的文件C)一个指针,指向要读入数据的存放地址D)一个存储区,存放要读的数据项正确答案: C13.9 当顺利执行了文件关闭操作时,fclose函数的返回值是A)-1B)TRUEC)0D)1正确答案: C13.10 如果需要打开一个已经存在的非空文件“Demo”进行修改下面正确的选项是A)fp=fopen("Demo","r");B)fp=fopen("Demo","ab+");C)fp=fopen("Demo","w+");D)fp=fopen("Demo","r+");正确答案: D13.11 若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是A)fopen("A:\user\abc.txt","r")B)fopen("A:\\user\\abc.txt","rt+")C)fopen("A:\user\abc.txt","rb")D)fopen("A:\user\abc.txt","w")正确答案: B13.12 fwrite函数的一般调用形式是A)fwrite(buffer,count,size,fp);B)fwrite(fp,size,count,buffer);C)fwrite(fp,count,size,buffer);D)fwrite(buffer,size,count,fp);正确答案: D13.13 C语言中,文件组成的基本单位为A)记录B)数据行C)数据块D)字符序列正确答案: D13.14 C 语言中,系统的标准输入文件是指A)键盘B)显示器C)软盘D)硬盘正确答案: A13.15 有以下程序#includemain(){ FILE *fp; int i=20,j=30,k,n;fp=fopen("d1.dat","w");fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n);fclose(fp);}程序运行后的输出结果是A)20 30B)20 50C)30 50D)30 20正确答案: A13.16 阅读以下程序及对程序功能的描述,其中正确的描述是#includemain(){ FILE *in,*out;char ch,infile[10],outfile[10];printf("Enter the infile name:\n");scanf("%s",infile);printf("Enter the outfile name:\n");scanf("%s",outfile);if((in=fopen(infile,"r"))==NULL){ printf("cannot open infile\n");exit(0);}if((out=fopen(outfile,"w"))==NULL){ printf("cannot open outfile\n");exit(0);}while(! feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);}A)程序完成将磁盘文件的信息在屏幕上显示的功能B)程序完成将两个磁盘文件合二为一的功能C)程序完成将一个磁盘文件复制到另一个磁盘文件中D)程序完成将两个磁盘文件合并并在屏幕上输出正确答案: C13.17 下面的程序执行后,文件test中的内容是#includevoid fun(char *fname,char *st){ FILE *myf; int i;myf=fopen(fname,"w" );for(i=0;ifclose(myf);}main(){ fun("test","new world"); fun("test","hello,");} A)hello, B)new worldhello,C)new worldD)hello, rld正确答案: A13.18 假定当前盘符下有两个文本文件,如下文件名a1.txt a2.txt内容123# 321#则下面程序段执行后的结果为#include "stdio.h"void fc(FILE *p){ char c;while((c=fgetc(p))!=′#′)putchar(C);}main(){ FILE *fp;fp=fopen("a1.txt","r");fc(fp);fclose(fp);fp=fopen("a2.txt","r");fc(fp);fclose(fp);putchar(′\n′);}A)123321B)123C)321D)以上答案都不正确正确答案: A13.19 阅读下面程序,程序实现的功能是(a123.txt在当前盘符下已经存在)#include "stdio.h"void main(){ FILE *fp;int a[10],*p=a;fp=fopen("a123.txt","w");while(strlen(gets(p))>0 ){ fputs(a,fp);fputs("\n",fp);}fclose(fp);}A)从键盘输入若干行字符,按行号倒序写入文本文件a123.txt 中B)从键盘输入若干行字符,取前2行写入文本文件a123.txt中C)从键盘输入若干行字符,第一行写入文本文件a123.txt中D)从键盘输入若干行字符,依次写入文本文件a123.txt中正确答案: D13.20 阅读下面程序,此程序的功能为#include "stdio.h"main(int argc,char *argv[]){ FILE *p1,*p2;int c;p1=fopen(argv[1],"r");p2=fopen(argv[2],"a");c=fseek(p2,0L,2);while((c=fgetc(p1))!=EOF)fputc(c,p2);fclose(p1);fclose(p2);}A)实现将p1打开的文件中的内容复制到p2打开的文件B)实现将p2打开的文件中的内容复制到p1打开的文件C)实现将p1打开的文件中的内容追加到p2打开的文件内容之后D)实现将p2打开的文件中的内容追加到p1打开的文件内容之后正确答案: C二、填空题(请将每一个空的正确答案写在答题卡相应序号后。
2011年3月全国计算机等级考试二级Visual Basic语言程序设计笔试真题

2011年3月全国计算机等级考试二级Visual Basic语言程序设计笔试真题一、选择题(每小题2分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的。
请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
1. 下列关于栈叙述正确的是A. 栈顶元素最先能被删除B. 栈顶元素最后才能被删除C. 栈底元素永远不能被删除D. 上述三种说法都不对答案:A解析:在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。
栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。
故本题选A。
2. 下列叙述中正确的是A. 有一个以上根结点的数据结构不一定是非线性结构B. 只有一个根结点的数据结构不一定是线性结构C. 循环链表是非线性结构D. 双向链表是非线性结构答案:B解析:如果一个非空的数据结构满足以下两个条件:(1)有且只有一个根结点;(2)每个结点最多有一个前件,也最多有一个后件。
则称该数据结构为线性结构。
如果一个数据结构不是线性结构,则称之为非线性结构,故A项错误。
有一个根结点的数据结构不一定是线性结构,如二叉树,B项说法正确。
循环链表和双向链表都属于线性链表,故C、D项错误。
3. 某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A. 3B. 4C. 6D. 7答案:D解析:根据二叉树的性质:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
所以n2=0,由n=n0+n1+n2可得n1=6,即该二叉树有6个度为1的结点,可推出该二叉树的深度为7。
4. 在软件开发中,需求分析阶段产生的主要文档是A. 软件集成测试计划B. 软件详细设计说明书C. 用户手册D. 软件需求规格说明书答案:D解析:软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。
201103二级c语言全真题05详解

本文由lyyying123贡献 doc文档可能在WAP端浏览体验不佳。
建议您优先选择TXT,或下载源文件到本机查看。
一、选择题 (1)D 【解析】 算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。
所谓算法的时间 复杂度是指执行算法所需要的计算工作量;算法的空间复杂度是指执行这个算法所需要的内存 空间。
(2)D 【解析】 在结构化程序设计中,一般较优秀的软件设计尽量做到高内聚、低耦合,这样有利 于提高软件模块的独立性,也是模块划分的原则。
(3)C 【解析】 软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序 可靠性的鉴定。
它有3个方面的重要特征,即测试的挑剔性、完全测试的不可能性及测试的经济 性。
其中,没有测试的可靠性这一说法。
(4)A 【解析】 对象是由数据和容许的操作组成的封装体,与客观实体有直接的对应关系,对象之 间通过传递消息互相联系,从模拟现实世界中不同事物彼此之间的联系,B)、C)、D)是正确的,对 象的思想广泛应用于C++、Java等语言中,因此A)错误。
(5)C 【解析】 队列是一种操作受限的线性表。
它只允许在线性表的一端进行插入操作,另一端 进行删除操作。
其中,允许插入的一端称为队尾(rear),允许删除的一端称为队首(front)。
队列具有 先进先出的特点,它是按"先进先出"的原则组织数据的。
(6)D 【解析】 依据后序遍历序列可确定根结点为c;再依据中序遍历序列可知其左子树由deba构 成,右子树为空;又由左子树的后序遍历序列可知其根结点为e,由中序遍历序列可知其左子树为d, 右子树由ba构成,如下图所示,求得该二叉树的前序遍历序列为选项D)。
(7)A 【解析】 对于任何一棵二叉树T,如果其终端结点(叶子)数为n1,度为2的结点数为n2,则 n1=n2+1,所以该二叉树的叶子结点数等于n+1。
(8)C 【解析】 对于两个关系的合并操作可以用笛卡尔积表示。
2011年计算机等级二级C语言笔试题及答案

2011年计算机等级二级C语言笔试题及答案(1)计算机等级考试网更新:2011-6-19 编辑:风清云淡一、填空题1、C语言中基本的数据类型有:__________、__________ 、__________ 。
2、C语言中普通整型变量的类型说明符为__________,在内存中占__________字节,有符号普通整型的数据范围是__________。
3、整数-35在机内的补码表示为__________。
4、执行下列语句int a=8; a+=a-=a*a; 后,a的值是__________ 。
5、有如下语句:char A[ ]={”I am a student”}; 该字符串的长度是__________,A[3]=__________ 。
6、符号”a”和’a’的区别是__________。
7、所谓“指针”就是__________ 。
“&”运算符的作用是__________。
“*”运算符的作用是__________ 。
8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是__________。
二、选择题1、设整型变量a为5,使b不为2的表达式是()。
A. b=a/2B. b=6-(--a)C. b=a%2D. b=a>3?2:12、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与()组成配对关系。
A. 缩排位置相同的ifB. 在其之前未配对的ifC. 在其之前未配对的最近的ifD.同一行上的if3、以下程序的输出结果是( )。
int x=10,y=10;printf(“%d %d\n”,x--,--y);A. 10 10B. 9 9C. 9 10D. 10 94、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为()。
2011年3月份全国计算机等级考试二级C语言笔试填空带详解题库

2011年3月份全国计算机等级考试二级C语言笔试填空带详解题库请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。
(1)测试的目的是暴露错误,评价程序的可靠性;而【1】的目的是发现错误的位置并改正错误。
(2)某二叉树中度为2的结点有18个,则该二叉树中有【2】个叶子结点。
(3)当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。
这种情况称为【3】。
(4)在关系模型中,把数据看成一个二维表,每一个二维表称为一个【4】。
(5)在计算机软件系统的体系结构中,数据库管理系统位于用户和【5】之间。
(6)以下程序的输出结果是【6】。
main(){ char c=′z′;printf("%c",c-25); }(7)阅读下面语句,则程序的执行结果是【7】。
#include "stdio.h"main(){ int a=-1,b=1,k;if((++a<0)&&!(b--<=0))printf("%d,%d\",a,b);else printf("%d,%d\n",b,a);}(8)下列程序的输出结果是【8】。
main(){ int i;for(i=1;i+1;i++){ if(i>4){ printf("%d\n",i);break; }printf("%d\n",i++);}}(9)以下程序的定义语句中,x[1]的初值是【9】,程序运行后输出的内容是【10】。
#include <stdio.h>main(){ int x[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}, *p[4],i;for(i=0;i<4;i++){ p[i]=&x[2*i+1];printf("%d",p[i][0]);}printf("\n");)}(10)以下程序的输出结果是【11】。
2011年计算机二级C语言编写程序题及答案解析精选1

2011年计算机二级C语言编写程序题及答案解析精选【4.1】已知银行整存整取存款不同期限的月息利率分别为:0.315%期限一年0.330%期限二年月息利率=0.345%期限三年0.375%期限五年0.420%期限八年要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。
【4.2】输入年份year和月month,求该月有多少天。
判断是否为闰年,可用如下C语言表达式:year%4==0&&year0!=0||year@0==0。
若表达式成立(即表达式值为1),则year 为闰年;否则,表达式不成立(即值为0),year为平年。
【4.3】编写一个简单计算器程序,输入格式为:data1op data2。
其中data1和data2是参加运算的两个数,op为运算符,它的取值只能是+、-、*、/。
【4.4】输入n值,输出如图所示矩形。
【4.5】输入n值,输出如图所示平行四边形。
【4.6】输入n值,输出如图所示高为n的等腰三角形。
【4.7】输入n值,输出如图所示高为n的等腰三角形。
【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。
【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。
【4.10】输入n值,输出如图所示边长为n的空心正六边型。
【4.11】输入n值,输出如图所示图形。
【4.12】输入n值,输出如图所示图形。
【4.13】输入n值,输出如图所示图形。
【4.14】输入n值,输出如图所示图形。
【4.15】输入n值,输出如图所示图形。
【4.16】输入n值,输出如图所示图形。
(例为n=6时)【4.17】编写程序,输出如图所示sin(x)函数0到2π的图形。
【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆。
【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。
若屏幕的横向为x轴,纵向为y 轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。
2011年3月计算机二级考试c语言试题及答案详细解析
2011年3月计算机二级考试c 语言试题及答案详细解析2011年3月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题(1-10,21-40每题2分,11-20每题1分,共70分)(1)下列关于栈叙述正确的是A)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对(2)下列叙述中正确的是A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A)3 B)4 C)6 D)7(4)在软件开发中,需求分析阶段产生的主要文档是A)软件集成测试计划 B)软件详细设计说明书C)用户手册 D)软件需求规格说明书(5)结构化程序所要求的基本结构不包括A)顺序结构 B)GOTO跳转C)选择(分支)结构 D)重复(循环)结构(6)下面描述中错误的是A)系统总体结构图支持软件系统的详细设计B)软件设计是将软件需求转换为软件表示的过程C)数据结构与数据库设计是软件设计的任务之一D)PAD图是软件详细设计的表示工具(7)负责数据库中查询操作的数据库语言是A)数据定义语言B)数据管理语言C)数据操纵语言A)a=(b=4)=3; B)a=b=c+1;C)a=(b=4)+c; D)a=1+(b=c=4);(16)有以下程序段char name[20];int num;scanf("name=%s num=%d",name;&num);当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name 的值为A)Lili B)name=Lili C)Lili num= D)name=Lili num=1001(17)if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A)必须是逻辑值 B)必须是整数值C)必须是正数 D)可以是任意合法的数值(18)有以下程序#includemain(){ int x=011;printf("%d\n",++x);}程序运行后的输出结果是A)12 B)11 C)10 D)9(19)有以下程序#includemain(){ int s;scanf("%d",&s);while(s>0){ switch(s){ case1:printf("%d",s+5);case2:printf("%d",s+4); break;case3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}运行时,若输入1 2 3 4 5 0<回车>,则输出结果是A)6566456 B)66656 C)66666 D)6666656(20)有以下程序段int i,n;for(i=0;i<8;i++){ n=rand()%5;switch (n){ case 1:case 3:printf("%d\n",n); break;case 2:case 4:printf("%d\n",n); continue;case 0:exit(0);}printf("%d\n",n);}以下关于程序段执行情况的叙述,正确的是A)for循环语句固定执行8次 B)当产生的随机数n为4时结束循环操作C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行(21)有以下程序#includemain(){ char s[]="012xy\08s34f4w2";int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9') n++;printf("%d\n",n);}程序运行后的输出结果是A)0 B)3 C)7 D)8(22)若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k++) printf("*****\n");下面关于语句执行情况的叙述中正确的是A)循环体执行两次B)循环体执行一次C)循环体一次也不执行D)构成无限循环(23)有以下程序#includemain(){ char b,c; int i;b='a'; c='A';for(i=0;i<6;i++){ if(i%2) putchar(i+b);else putchar(i+c);} printf("\n");}程序运行后的输出结果是A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef(24)设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是A)scanf("%f",&x[6]); B)scanf("%lf",*(x+6));C)scanf("%lf",p+6); D)scanf("%lf",p[6]);(25)有以下程序(说明:字母A的ASCII码值是65)#includevoid fun(char *s){ while(*s){ if(*s%2) printf("%c",*s);s++;}}main(){ char a[]="BYTE";fun(a); printf("\n");}程序运行后的输出结果是A) BY B) BT C) YT D) YE(26)有以下程序段#includemain(){ …while( getchar()!='\n');…}以下叙述中正确的是A)此while语句将无限循环B) getchar()不可以出现在while语句的条件表达式中C)当执行此while语句时,只有按回车键程序才能继续执行D)当执行此while语句时,按任意键程序就能继续执行(27)有以下程序#includemain(){ int x=1,y=0;if(!x) y++;else if(x==0)if (x) y+=2;else y+=3;printf("%d\n",y);}程序运行后的输出结果是A)3 B)2 C)1 D) 0(28)若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是A)p=s; B)p=k; C)p=s[0]; D)k=s;(29)有以下程序#includevoid fun(char *c){ while(*c){ if(*c>='a'&&*c<='z') *c=*c-('a'-'A');c++;}}main(){ char s[81];gets(s); fun(s); puts(s):}当执行程序时从键盘上输入Hello Beijing<回车>,则程序的输出结果是A)hello beijing B)Hello Beijing C)HELLO BEIJING D)hELLO Beijing(30)以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
2011年3月份计算机二级c语言考试题及答案
2011年3月份计算机二级c语言考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的叙述中,错误的是()。
A. C语言是一种高级语言B. C语言是一种面向对象的程序设计语言C. C语言具有结构化的特点D. C语言可以用于编写操作系统答案:B2. 在C语言中,下列选项中不是合法的整型常量是()。
A. 012B. 0x1AC. 0LD. 1.2答案:D3. 下列关于数组的描述,正确的是()。
A. 数组必须初始化B. 数组的下标从0开始C. 数组的下标可以是小数D. 数组的元素类型必须相同答案:D4. C语言中,下列关于函数的描述,错误的是()。
A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以嵌套定义D. 函数可以递归调用答案:C5. 下列关于指针的描述,正确的是()。
A. 指针变量可以赋值给普通变量B. 指针变量可以指向不同类型的数据C. 指针变量可以作为函数的参数D. 指针变量本身没有地址答案:C6. 下列关于结构体的描述,错误的是()。
A. 结构体可以包含其他结构体B. 结构体的成员可以是函数C. 结构体的成员可以是数组D. 结构体的成员可以是指针答案:B7. 在C语言中,下列关于文件操作的描述,错误的是()。
A. 文件操作需要包含头文件stdio.hB. 文件指针是指向文件的指针C. 文件操作只能用于文本文件D. 文件操作可以使用fopen函数打开文件答案:C8. 下列关于预处理命令的描述,错误的是()。
A. #define可以定义宏B. #include可以包含头文件C. #ifdef可以进行条件编译D. #error可以产生编译错误答案:D9. 下列关于C语言中变量的作用域和生命周期的描述,错误的是()。
A. 局部变量在函数内部定义B. 全局变量在函数外部定义C. 局部变量的生命周期是函数调用期间D. 全局变量的生命周期是程序运行期间答案:B10. 下列关于C语言中循环结构的描述,错误的是()。
2011年3月份全国计算机等级考试二级C语言选择题带详解题库
2011年3月份全国计算机等级考试二级C语言选择题带详解题库一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(1)D 【解析】数据处理是指将数据转换成信息的过程,故选项A)叙述错误;数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,故选项B)叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故选项C)叙述错误。
(2)结构化程序设计主要强调的是A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(2)D 【解析】结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限制使用goto 语句,总的来说可使程序结构良好、易读、易理解、易维护。
(3)为了使模块尽可能独立,要求A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(3)B【解析】模块的独立程度可以由两个定性标准度量:耦合性和内聚性。
耦合性是衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚性是衡量一个模块内部各个元素彼此结合的紧密程度。
一般来说,要求模块之间的耦合尽可能地低,而内聚性尽可能地高。
(4)需求分析阶段的任务是确定A)软件开发方法B)软件开发工具C)软件开发费用D)软件系统功能(4)D 【解析】需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。
计算机二级c语言历年真题及答案》08——11年
2011年3月计算机等级考试二级C语言笔试(总分100, 考试时间90分钟)选择题((1)-(10)、(21)-(40)每题2分,(11)-(20)每题1分,共70分)1. 下列关于栈叙述正确的是A 栈顶元素最先能被删除B 栈顶元素最后才能被删除C 栈底元素永远不能被删除D 以上三种说法都不对2. 下列叙述中正确的是A 有一个以上根结点的数据结构不一定是非线性结构B 只有一个根结点的数据结构不一定是线性结构C 循环链表是非线性结构D 双向链表是非线性结构3. 某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A 3B 4C 6D 74. 在软件开发中,需求分析阶段产生的主要文档是A 软件集成测试计划B 软件详细设计说明书C 用户手册D 软件需求规格说明书5. 结构化程序所要求的基本结构不包括A 顺序结构B GOTO跳转C 选择(分支)结构D 重复(循环)结构6. 下面描述中错误的是A 系统总体结构图支持软件系统的详细设计B 软件设计是将软件需求转换为软件表示的过程C 数据结构与数据库设计是软件设计的任务之一D PAD图是软件详细设计的表示工具7. 负责数据库中查询操作的数据库语言是A 数据定义语言B 数据管理语言C 数据操纵语言D 数据控制语言8. 一个教师可讲授多门课程,一门课程可由多个教师讲授。
则实体教师和课程间的联系是A 1:1联系B 1:m联系C m:1联系D m:n联系9. 有三个关系R、S和T如下:则由关系R 和S得到关系T的操作是A 自然连接B 交C 除D 并10. 定义无符号整数类为UInt,下面可以作为类UInt实例化值的是A -369B 369 C0.369 D 整数集合{1,2,3,4,5} 11. 计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是A C语言程序仅可以编译执行B C语言程序仅可以解释执行C C语言程序既可以编译执行又可以解释执行D 以上说法都不对12. 以下叙述中错误的是A C语言的可执行程序是由一系列机器指令构成的B 用C语言编写的源程序不能直接在计算机上运行C 通过编译得到的二进制目标程序需要连接才可以运行D 在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件13. 以下选项中不能用作C程序合法常量的是A 1,234B '123'C 123D "\x7G"14. 以下选项中可用作C程序合法实数的是A .1e0B 3.0e0.2C E9D 9.12E15. 若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A a=(b=4)=3;B a=b=c+1;C a=(b=4)+c;D a=1+(b=c=4);16. 有以下程序段char name[20];int num;scanf("name=%s num=%d",name;&num);当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为A LiliB name=LiliC Lili num=D name=Lili num=1001 17. if语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是A 必须是逻辑值B 必须是整数值C 必须是正数D 可以是任意合法的数值18. 有以下程序#includemain(){ int x=011;printf("%d\n",++x);}程序运行后的输出结果是A 12B 11C 10D 919. 有以下程序#includemain(){ int s;scanf("%d",&s);while(s>0){ switch(s){ case1:printf("%d",s+5);case2:printf("%d",s+4); break;case3:printf("%d",s+3);default:printf("%d",s+1);break;}scanf("%d",&s);}}运行时,若输入1 2 3 4 5 0<回车>,则输出结果是A 6566456B 66656C 66666D 666665620. 有以下程序段int i,n;for(i=0;i<8;i++){ n=rand()%5;switch (n){ case 1:case 3:printf("%d\n",n); break;case 2:case 4:printf("%d\n",n); continue;case 0:exit(0);}printf("%d\n",n);}以下关于程序段执行情况的叙述,正确的是A for循环语句固定执行8次B 当产生的随机数n为4时结束循环操作C 当产生的随机数n为1和2时不做任何操作D 当产生的随机数n为0时结束程序运行21. 有以下程序#includemain(){ char s[]="012xy\08s34f4w2";int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>='0'&&s[i]<='9') n++;printf("%d\n",n);}程序运行后的输出结果是A 0B 3C 7D 822. 若i和k都是int类型变量,有以下for 语句: for(i=0,k=-1;k=1;k++) printf("*****\n");下面关于语句执行情况的叙述中正确的是A 循环体执行两次B 循环体执行一次C 循环体一次也不执行D 构成无限循环23. 有以下程序#includemain(){ char b,c; int i;b='a'; c='A';for(i=0;i<6;i++){ if(i%2) putchar(i+b);else putchar(i+c);} printf("\n");}程序运行后的输出结果是A ABCDEFB AbCdEfC aBcDeFD abcdef24. 设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是A scanf("%f",&x[6]);B scanf("%lf",*(x+6));C scanf("%lf",p+6);D scanf("%lf",p[6]);25. 有以下程序(说明:字母A的ASCII码值是65)#includevoid fun(char *s){ while(*s){ if(*s%2) printf("%c",*s);s++;}}main(){ char a[]="BYTE";fun(a); printf("\n");}程序运行后的输出结果是A BYB BTC YTD YE26. 有以下程序段#includemain(){ …while( getchar()!='\n');…}以下叙述中正确的是A 此while语句将无限循环B getchar()不可以出现在while语句的条件表达式中C 当执行此while语句时,只有按回车键程序才能继续执行D 当执行此while语句时,按任意键程序就能继续执行27. 有以下程序#includemain(){ int x=1,y=0;if(!x) y++;else if(x==0)if (x) y+=2;else y+=3;printf("%d\n",y);}程序运行后的输出结果是A 3B 2C 1D 028. 若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是A p=s;B p=k;C p=s[0];D k=s;29. 有以下程序#includevoid fun(char *c){ while(*c){ if(*c>='a'&&*c<='z') *c=*c-('a'-'A');c++;}}main(){ char s[81];gets(s); fun(s); puts(s):}当执行程序时从键盘上输入Hello Beijing<回车>,则程序的输出结果是A hello beijingB Hello BeijingC HELLO BEIJINGD hELLO Beijing30. 以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(25)有以下程序(说明:字母 A 的 ASCII 码值是 65)
#include
void fun(char *s)
{ while(*s)
文件
(13)以下选项中不能用作 C 程序合法常量的是 A)1,234 B)'123' C)123 D)"\x7G"
(14)以下选项中可用作 C 程序合法实数的是 A).1e0 B)3.0e0.2 C)E9 D)9.12E
(15)若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是 A)a=(b=4)=3; B)a=b=c+1; C)a=(b=4)+c; D)a=1+(b=c=4);
2011 年 3 月全国计算机等级考试二级笔试试卷 C 语言程序设计
(考试时间 90 分钟,满分 100 分)
一、 选择题(1-10,21-40 每题 2 分,11-20 每题 1 分,共 70 分)
(1)下列关于栈叙述正确的是 A)栈顶元素最先能被删除 B)栈顶元素最后才能被删除 C)栈底元素永远不能被删除 D)以上三种说法都不对
A)t1=t2; B)t2.num1=t1.num1; C)t2.mark=t1.mark; D)t2.num2=t1.num2;
(37)有以下程序 #include struct ord { int x,y;}dt[2]={1,2,3,4}; main() { struct ord *p=dt; printf("%d,",++(p->x)); printf("%d\n",++(p->y)); } 程序运行后的输出结果是 A)1,2 B)4,1 C)3,4 D)2,3
(22)若 i 和 k 都是 int 类型变量,有以下 for 语句 for(i=0,k=-1;k=1;k++) printf("*****\n"); 下面关于语句执行情况的叙述中正确的是 A)循环体执行两次 B)循环体执行一次 C)循环体一次也不执行 D)构成无限循环
(23)有以下程序 #include main() { char b,c; int i; b='a'; c='A'; for(i=0;i<6;i++)
(4)在软件开发中,需求分析阶段产生的主要文档是 A)软件集成测试计划 B)软件详细设计说明书 C)用户手册 D)软件需求规格说明书
(5)结构化程序所要求的基本结构不包括 A)顺序结构 B)GOTO 跳转 C)选择(分支)结构 D)重复(循环)结构
(6)下面描述中错误的是 A)系统总体结构图支持软件系统的详细设计 B)软件设计是将软件需求转换为软件表示的过程 C)数据结构与数据库设计是软件设计的任务之一 D)PAD 图是软件详细设计的表示工具
(33)有以下程序 #include int fun (int x,int y) { if (x!=y) return ((x+y);2); else return (x); } main() { int a=4,b=5,c=6; printf("%d\n",fun(2*a,fun(b,c))); } 程序运行后的输出结果是 A)3 B)6 C)8 D)12
(20)有以下程序段
3
星空 8538 提供
int i,n; for(i=0;i<8;i++) { n=rand()%5; switch (n) { case 1: case 3:printf("%d\n",n); break; case 2: case 4:printf("%d\n",n); continue; case 0:exit(0); } printf("%d\n",n); } 以下关于程序段执行情况的叙述,正确的是 A)for 循环语句固定执行 8 次 B)当产生的随机数 n 为 4 时结束循环操作 C)当产生的随机数 n 为 1 和 2 时不做任何操作 D)当产生的随机数 n 为 0 时结束程序运行
(35)有以下程序 #include #define S(x) 4*(x)*x+1 main() { int k=5,j=2; printf("%d\n",S(k+j)); } 程序运行后的输出结果是 A)197 B)143 C)33 D)28
(36)设有定义:struct {char mark[12];int num1;double num2;} t1,t2;,若变量均已正 确赋初值,则以下语句中错误的是
{ if(*s%2) printf("%c",*s);
s++;
}
}
main()
{ char a[]="BYTE";
fun(a); printf("\n");
}
程序运行后的输出结果是
A BY
B BT
C)
YT
D)
YE
(26)有以下程序段 #include main() {… while( getchar()!='\n'); … } 以下叙述中正确的是
A)C 语言程序仅可以编译执行 B)C 语言程序仅可以解释执行 C)C 语言程序既可以编译执行又可以解释执行 D)以上说法都不对
(12)以下叙述中错误的是 A)C 语言的可执行程序是由一系列机器指令构成的 B)用 C 语言编写的源程序不能直接在计算机上运行 C)通过编译得到的二进制目标程序需要连接才可以运行 D)在没有安装 C 语言集成开发环境的机器上不能运行 C 源程序生成的.exe
(19)有以下程序 #include main() { int s; scanf("%d",&s); while(s>0) { switch(s) { case1:printf("%d",s+5); case2:printf("%d",s+4); break; case3:printf("%d",s+3); default:printf("%d",s+1);break; } scanf("%d",&s); } } 运行时,若输入 1 2 3 4 5 0<回车>,则输出结果是 A)6566456 B)66656 C)66666 D)6666656
(21)有以下程序 #include main() { char s[]="012xy\08s34f4w2"; int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]>='0'&&s[i]<='9') n++; printf("%d\n",n); } 程序运行后的输出结果是 A)0 B)3 C)7 D)8
(7)负责数据库中查询操作的数据库语言是 A)数据定义语言 B)数据管理语言 C)数据操纵语言 D)数据控制语言
(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程
1
星空 8538 提供
间的联系是 A)1:1 联系 B)1:m 联系 C)m:1 联系 D)m:n 联系
(9)有三个关系 R、S 和 T 如下:
(32)设有如下函数定义 int fun(int k) { if (k<1) return 0; else if(k==1) return 1; else return fun(k-1)+1; } 若执行调用语句:n=fun(3);,则函数 fun 总共被调用的次数是 A)2 B)3 C)4 D)5
6
星空 8538 提供
{ char a[30],b[30]; scanf("%s",a); gets(b); printf("%s\n %s\n",a,b); } 程序运行时若输入: how are you? I am fine<回车> 则输出结果是 A)how are you? B)how I am fine are you? I am fine C)how are you? I am fine D)row are you?
2
星空 8538 提供
(16)有以下程序段 char name[20]; int num; scanf("name=%s num=%d",name;&num); 当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name
的值为 A)Lili B)name=Lili C)Lili num= D)name=Lili num=1001
(34)有以下程序 #include int fun() { static int x=1; x*=2; return x; } main() { int i,s=1; for(i=1;i<=3;i++) s*=fun();
7
星空 8538 提供
printf("%d\n",s); } 程序运行后的输出结果是 A)0 B)10 C)30 D)64
(2)下列叙述中正确的是 A)有一个以上根结点的数据结构不一定是非线性结构 B)只有一个根结点的数据结构不一定是线性结构 C)循环链表是非线性结构 D)双向链表是非线性结构