2011年3月等级考试二级C语言真题(完整版,含参考答案)
- 格式:doc
- 大小:830.00 KB
- 文档页数:13
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月全国计算机等级考试二级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解析:软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。
本文由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语言编写程序题及答案解析精选【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年计算机等级二级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 个元素的地址为()。
2010年3月计算机等级考试二级C语言笔试真题一、选择题(1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2)算法的时问复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语司或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。
详细设计属于A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计一阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:则由关系K得到关系T的操作是A)选择B)投影C)交D)并(11)以下叙述正确的是A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是A)_1B)AaBcC)a_bD)a—b(14)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(15)有以下程序#includemain(){ char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar(); d=getchar();printf(“%c%c%c%cn”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)1234则输出结果是A)1234B)12C)123D)1234(16)以i关于C语言数据类型使用的叙述中错误的是A)若要准确无误差的表示自然数,应本资.料来源于贵-州-学-习-网使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是A)switch(a){case:a=b;break;default:a++;}B)switch(a==1){case 0:a=b;break;case 1:a++;}C)switch(a){default:a++;break;case 1:a=b;}D)switch(a==1){case 1:a=b;break;case 0:a++;}(19)有如下嵌套的if语句if (aif(aelse k=c;elseif(belse k=c;以下选项中与上述if语句等价的语句是A)k=(aB)k=(aC)k=(aD)k=(a(20)有以下程序#includemain(){in i,j,m=1;for(i=1;i<3;i++){for(j=3;j>O;j--){if(i*j)>3)break;m=i*j;}}printf("m=%dn",m);}程序运行后的输出结果是A)m=6B)m=2C)m=4D)m=5(21)有以下程序#include(stdio.h>main(){int a=l;b=2;for(;a<8;a++) {b+=a;a+=2;}printf("%d,%dn",a,b);}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数#includemain(){int k=011;printf("%dn",k++);}程序运行后的输出结果是A)12B)11C)10D)9(23)下列语句组中,正确的是A)char *s;s="Olympic";B)char s[7];s="Olympic";C)char *s;s={"Olympic"};D)char s[7];s={"Olympic"};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有本文来源于贵州学习网WWW.GZU521.COM一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能正确定义数组的语句是A)int num[0..2008];B)int num[];C)int N=2008;int num[N];D)#define N 2008int num[N];(26)有以下程序#includevoid fun(char *c,int d){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);main(){char b='a',a='A';fun(&b,a);printf("%e,%en",b,a);}程序运行后的输出结果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定义int(*Pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义double a[10],*s=a;,以下能够代表数组元素a[3]的是A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3(29)有以下程序#include(stdio.h)main(){int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0;for(i=0;i<5;i++) s=s+a[b[i]]);printf("%dn", s);}程序运行后的输出结果是A)6B)10C)11D)15(30)有以下程序#includemain(){int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=ij<=1;j++) t+=b[i][b[j][i]];printf("%dn",t);}程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句char s1[10]="abcd!",*s2="n123\";printf("%d %dn", strlen(s1),strlen(s2));则输出结果是A)5 5B)10 5C)10 7D)5 8(32)有以下程序#include#define N 8void fun(int *x,int i){*x=*(x+i);}main(){int a[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=O;i{printf("%d",a[i]);}printf("n");}程序运行后的输出结果是A)1313B)2234C)3234D)1234(33)有以下程序#includeint f(int t[],int n);main{ int a[4]={1,2,3,4},s;s=f(a,4); printf("%dn",s);}int f(int t[],int n){ if(n>0) return t[n-1]+f(t,n-1);else return 0;}程序运行后的输出结果是A)4B)1OC)14D)6(34)有以下程此资料转贴于贵州学习网序#includeint fun(){ static int x=1;x*2; return x;}main(){int i,s=1,for(i=1;i<=2;i++) s=fun();printf("%dn",s);}程序运行后的输出结果是A)OB)1C)4D)8(35)有以下程序#include#define SUB(a) (a)-(a)main(){ int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%dn",d);}程序运行后的输出结果是A)0B)-12C)-20D)10(36)设有定义:struct complex{ int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是A)data2=data1;B)data2=(2,6);C)data2.real=data1.real;D)data2.real=data1.unreal;(37)有以下程序#include#includestruct A{ int a; char b[10]; double c;};void f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};f(a); printf("%d,%s,%6.1fn",a.a,a.b,a.c);}void f(struct A t){ t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;} 程序运行后的输出结果是(38)有以下定义和语句struct workers{ int num;char name[20];char c;struct{int day; int month; int year;}s;};struct workers w,*pw;pw=&w;能给w中year成员赋1980的语句是A)*pw.year=198O;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;(39)有以下程序#includemain(){ int a=2,b=2,c=2;printf("%dn",a/b&c);}程序运行后的输出结果是A)OB)1C)2D)3(40)有以下程序#includemain(){ FILE *fp;char str[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fpfopen("myfile.data","a++");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str); puts(str);fclose(fp);}程序运行后的输出结果是A)abcB) 28cC) abc28D)因类型不一致而出错二、填空题(1)一个队列的初始状态为空。
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年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语言考试题及答案一、选择题(每题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 语言程序设计(考试时间 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)某二叉树共有7 个结点,其中叶子结点只有1 个,则该二叉树的深度为(假设根结点在第1 层)()。
A)3B)4C)6D)7(4)在软件开发中,需求分析阶段产生的主要文档是()。
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 实例化值的是()。
全国计算机等级考试二级C++真题2011年3月(总分:100.00,做题时间:90分钟)一、选择题(总题数:35,分数:70.00)1.下列关于栈叙正确的是( )。
(分数:2.00)A.栈顶元素最先能被删除√B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.以上三种说法都不对解析:[解析] 栈是先进后出的线性表,栈顶的元素最先被删除,栈底的元素最后被删除。
2.下列叙述中正确的是( )。
(分数:2.00)A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构√C.循环链表是非线性结构D.双向链表是非线性结构解析:[解析] 在数据结构中,树这类的数据结构只有一个根结点,但它不是线性结构。
3.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )。
(分数:2.00)A.3B.4C.6D.7 √解析:[解析] 根据二叉树的性质,度为0的结点(即叶子结点)总是比度为2的结点多一个。
题目中的二叉树的叶子结点为1,因此度为2的结点的数目为0,因而这个二叉树的深度为7。
4.在软件开发中,需求分析阶段产生的主要文档是( )。
(分数:2.00)A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书√解析:[解析] 在软件开发过程中,需求分析阶段产生的要文档是软件需求规格说明书。
5.结构化程序所要求的基本结构不包括( )。
(分数:2.00)A.顺序结构B.GOTO跳转√C.选择(分支)结构D.重复(循环)结构解析:[解析] 结构化程序的基本结构有:顺序结构、选择结构和循环结构,没有GOTO跳转结构。
6.下面描述中错误的是( )。
(分数:2.00)A.系统总体结构图支持软件系统的详细设计√B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD图是软件详细设计的表示工具解析:[解析] 软件设计是将软件需求转换为软件表示的过程;数据结构与数据库设计是软件设计的任务之一;PAD图,即问题分析图,是一种主要用于描述软件详细设计的图形工具。
二级VISUAL BASIC机试真题2011年03月1 基本操作题请根据以下各个小题的要求设计Visual Basic应用程序(包括界面和代码)。
1. 在名称为Form1的窗体上画两个标签(名称分别为Label1和Label2,标题分别为“书名”和“作者”)、两个文本框(名称分别为Text1和Text2,Text属性均为空白)和一个命令按钮(名称为Command1,标题为“显示”),如图1所示。
然后编写命令按钮的Click事件过程。
程序运行后,在两个文本框中分别输入书名和作者,然后单击命令按钮,则在窗体的标题栏上先后显示两个文本框中的内容,如图2所示。
要求程序中不得使用任何变量。
注意:存盘时必须存放在考生文件夹下,工程文件名为sjt1.vbp,窗体文件名为sjt1.frm。
答案:第一步:建立工程和添加窗体单击考试界面的“功能”选项,从弹出的菜单中选择“启动应用程序”选项。
启动Visual Basic后,在“新建工程”对话框中选择“新建”项目中的“标准EXE”,然后单击“打开”按钮,建立一个新的工程文件,里面会同时自动建立一个名为Form1的窗体文件。
第二步:设计窗体在窗体上画出两个文本框、两个标签和一个命令按钮,并分别将它们的Caption 属性按照试题要求的内容进行设置。
第三步:编写代码1 Private Sub Command1_Click( )2 Form1.Caption= Form1.Text1.Text &",作者" & Text2 Text3 End Sub第四步:保存对程序进行调试,确定无误后,把程序存放在考生文件夹下。
[解答] 首先按试题要求在窗体上画出两个文本框、两个标签和一个命令按钮,并分别将它们的Caption属性按照试题要求的内容进行设置。
由于试题中要求不能使用任何变量,那么可以将“Text1.Text”和“Text2.Text”视为变量来处理,将其与其他字符串用“&”或者“+”连接起来。
2011年3月電腦等級考試二級C語言筆試一、選擇題(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)數據操縱語言D)數據控制語言(8)一個教師可講授多門課程,一門課程可由多個教師講授。
則實體教師和課程間的聯繫是A)1:1聯繫B)1:m聯繫C)m:1聯繫D)m:n聯繫(9)有三個關係R、S和T如下:RA B C a 1 2B 2 1C 3 1SA BC 3TC1則由關係R和S得到關係T的操作是A)自然連接B)交C)除D)並(10)定義無符號整數類為UInt,下麵可以作為類UInt實例化值的是A)-369 B)369 C)0.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,234 B)'123'C)123 D)"\x7G"(14)以下選項中可用作C程式合法實數的是A).1e0 B)3.0e0.2C)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);(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)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++;}。
2011年3月计算机品级考试二级C++口试真题之阿布一、选择题(1)下列关于栈叙述正确的是A)栈顶元素最先能被删除B)栈顶元素最后才华被删除C)栈底元素永远不能被删除D)以上三种说法都分歧毛病(2)下列叙述中正确的是A)有一个以上根结点的数据结构纷歧定是非线性结构B)只有一个根结点的数据结构纷歧定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A)3B)4C)6D)7(4)在软件开发中,需求分析阶段发生的主要文档是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)369C)0.369D)整数集合{1,2,3,4,5}(11)为了提高函数调用的实际运行速度,可以将较简单的函数界说为A)内联函数B)重载函数C)递归函数D)函数模板(12)若AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数界说中访问a时,其书写格式为A)aB)AA.aC)a()D)AA::a()(13)当派生类从一个基类呵护继承时,基类中的一些成员在派生类中成为呵护成员,这些成员在基类中原有的访问属性是A)任何B)公有或呵护C)呵护或私有D)私有(14)若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是A)Data+(Data);B)Data operator+(Data);C)Data+operator(Data);D)operator+(Data,Data);(15)下列关于函数模板的描述中,正确的是A)函数模板是一个实例函数B)使用函数模板界说的函数没有返回类型C)函数模板的类型参数与函数的参数相同D)通过使用分歧的类型参数,可以从函数模板获得分歧的实例函数(16) C++系统预界说了4个用于标准数据流的对象,下列选项中不属于此类对象的是A)coutB)cinC)cerrD)cset(17)Windows环境下,由C++源法式文件编译而成的目标文件的扩展名是A)cppB)exeC)objD)lik(18)字符串“a+b=12\n\t”的长度为A)12B)10C)8D)6(19)有如下法式:#include using namespace std;int main(){int f,f1=0,f2=1;for(int i=3;i<=6;i++){f=f1+f2;f1=f2;f2=f;}cout< return 0;}运行时的输出结果是A)2B)3C)5D)8(20)有如下法式:#include using namespace std; int main(){int a[6]={23,15,64,33,40,58};int s1,s2;s1=s2=a[0];for(int* p=a+1;pif(s1>*p) s1=*p;if(s2<*p) s2=*p;}cout<<<ENDL;return 0;}运行时的输出结果是A)23B)58C)64D)79(21)有如下法式:#include using namespace std;void f1(int& x,int& y) {int z=x; x=y; y=z;} void f2(int x;int y) {int z=x; x=y; y=z;} int main(){int x=10,y=26;f1(x,y);f2(x,y);cout< return 0;}运行时的输出结果是A)10B)16C)26D)36(22)有如下法式:#include using namespace std; class XA{int a;public:static int b;XA(int aa):a(aa) {b++;}~XA(){}int get(){return a;}};int XA::b=0;int main(){XA d1(2),d2(3);cout< return 0;}运行时的输出结果是A)5B)6C)7D)8(23)有如下法式:#include using namespace std; class Point{int x,y;public:Point(int x1=0,int y1=0):x(x1),y(y1){}int get(){return x+y;}};class Circle{Point center;int radius;public:Circle(int cx,int cy,int r):center(cx,cy),raaius(r){} int get(){return center.get()+radius;}};int main(){Circle c(3,4,5);cout<<<ENDL;return 0;}运行时的输出结果是A)5B)7C)9D)12(24)若要对类BigNumber中重载的类型转换运算符long进行声明,下列选项中正确的是A)operator long() const;B)operator long(BigNumber);C)long operator long() const;D)long operator long(BigNumber);(25)有如下函数模板界说:template T1 FUN(T2 n){return n*5.0;}若要求以int型数据9作为函数实参调用该模板,并返回一个double型数据,则该调用应暗示为A)FUN(9)B)FUN<9>C)FUN(9)D)FUN<9>(double)(26)下列语句都是法式运行时的第1条输出语句,其中一条语句的输出效果与其他三条语句分歧,该语句是A)cout<<12345;B)cout<<12345;C)cout<<12345;D)cout< (27)下列关于析构函数的描述中,毛病的是A)析构函数可以重载B)析构函数由系统自动调用C)每个对象的析构函数只被调用一次D)每个类都有析构函数(28)下列关于构造函数的描述中,毛病的是A)构造函数名与类名相同B)构造函数可以有返回值C)构造函数可以重载D)每个类都有构造函数(29)若PAT是一个类,则法式运行时,语句“PAT(*ad)[3];”调用PAT的构造函数的次数是A)0B)1C)2D)3(30)下列描述中,毛病的是A)公有继承时基类中的公有成员在派生类中仍是公有成员B)公有继承时基类中的呵护成员在派生类中仍是呵护成员C)呵护继承时基类中的公有成员在派生类中仍是公有成员D)呵护继承时基类中的呵护成员在派生类中仍是呵护成员(31)生成派生类对象时,派生类构造函数调用基类构造函数的条件是A)无需任何条件B)基类中显式界说了构造函数C)派生类中显式界说了构造函数D)派生类构造函数明确调用了基类构造函数(32)下列关于派生类和基类的描述中,正确的是A)派生类成员函数只能访问基类的公有成员B)派生类成员函数只能访问基类的公有和呵护成员C)派生类成员函数可以访问基类的所有成员D)派生类对基类的默认继承方式是公有继承(33)有如下类模板界说:template class BigNumber{long n;public:BigNumber(T i):n(i){}BigNumber operator+(BigNumber b){return BigNumber(n+b.n);}};己知b1、b2是BigNumber的两个对象,则下列表达式中毛病的是A)bl+b2B)b1+3C)3+b1D)3+3(34)下列关于文件流的描述中,正确的是A)文件流只能完成针对磁盘文件的输入输出B)建立一个文件流对象时,必需同时翻开一个文件C)若输入流要翻开的文件不存在,将建立一个新文件D)若输出流要翻开的文件不存在,将建立一个新文件(35)有如下法式:#include using namespace std;class Pair{int m,n;public:Pair(int j,int k):m(j),n(k){}int get() {return m;}int get() const {return m+n;}};int main(){Pair a(3,5);const Pair b(3,5);cout+a.get()< return 0;}运行时的输出结果是A)33B)38C)83D)88二、填空题(1)有序线性表能进行二分查找的前提是该线性表必需是【1】存储的.(2)一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF.则后序遍历结果为【2】 .(3)对软件设计的最小单位(模块或法式单位)进行的测试通常称为【3】测试.(4)实体完整性约束要求关系数据库中元组的【4】属性值不能为空.(5)在关系A(S,SN,D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则称【5】是关系A的外码.(6)若有界说语句“int x=10,y=20,z=20;”,则表达式x>z&&y==z的值为【6】 .(7)有如下语句序列:int x=-10;while(++x){ }运行时while循环体的执行次数为【7】 .(8)有如下语句序列:int arr[2][2]={{9,8},{7,6}};int *p=arr[0]+1; cout<<*p< 运行时的输出结果是【8】 .(9)函数fun的功能是将一个数字字符串转换为一个整数,请将函数弥补完整.int fun(char *str){int num=0;while(*str){num*=10;num+= 【9】 ;str++;}return num;}(10)若要将函数“void FriFun();”声明为类MyClass的友元函数,则应在类MyClass的界说中加入语句【10】 .(11)下列法式的输出结果为012,请根据注释将横线处的缺失部份弥补完整.#include using namespace std;class Test{public:Test(int a) {data=a;}~Test() {}void print(){cout< private:int data;};int main(){Test t[3]={ 【11】 };//对有3个元素的Test类对象数组t 初始化t[i].print();for(int i=0;i<3;i++)return 0;}(12)请在横线处填写派生类Derived的继承方式,使得法式的输出结果为Base.#include using namespace std;class Base{public:void print(){cout<<"Base";}};class Derived: 【12】 Base{};int main(){Derived d;d.print();return 0;}(13)下列法式的输出结果为1 2.3 2 4.6,请将横线处的缺失部份弥补完整.#include using namespace std;class Base{public:Base(int a):idata(a){}void print(){cout<<'';}private:int idata;};class Derived:public Base{public:Derived(int a;double b): 【13】 ,ddata(b){}void print(){Base::print();cout<<'';}private:double ddata;};int main(){Derived dl(1,2.3),d2(2,4.6);d1.print();d2.print();return 0;}(14)下列法式的输出结果为-5/8 -3/4,请将横线处的缺失部份弥补完整.#include using namespace std;class Fraction{ //“分数”类public:Fraction(double a,double b):num(a),den(b){}~Fraction(){}//重载取负运算符“-”,返回一个分数对象,其分子是原来分子的相反数.Fraction operator-(){【14】return f;}void print(){ cout<<'<<den<<??;> private:double num; //分子double den; //分母};int main(){Fraction f1(5;8),f2(3,4);(-f1).print();(-f2).print();return 0;}(15)函数Min的功能是返回具有n个元素的数组array中的最小值.请将横线处的缺失部份弥补完整,使得法式的输出结果为1.24.#include using namespace std;template T Min(T* array,int n){T min=array[0];for(int i=1;i if(array[i] return min;}int main(){doublearr[8]={5.2,48.45,41.01,42,51.2,1.24,14.12,42};cout<< 【15】 ;return 0;}时间:二O二一年七月二十九日。
2011年3月全国计算机二级C语言笔试题库&&答案一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为A)PAD图B)N-S图C)结构图D)数据流图(2)结构化程序设计主要强调的是A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(3)为了使模块尽可能独立,要求A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(4)需求分析阶段的任务是确定A)软件开发方法B)软件开发工具C)软件开发费用D)软件系统功能(5)算法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是A)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A)e3,e1,e4,e2 B)e2,e4,e3,e1 C)e3,e4,e1,e2 D) 任意顺序(8)将E-R图转换到关系模式时,实体与联系都可以表示成A)属性B)关系C)键D)域(9)有三个关系R、S和T如下:RB C Da 0 k1b 1 n1SB C Df 3 h2a 0 k1n 2 x1TB C Da 0 k1由关系R和S通过运算得到关系T,则所使用的运算为A)并B)自然连接C)笛卡尔积D)交(10)下列有关数据库的描述,正确的是A)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是A)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(12)下列可用于C语言用户标识符的一组是A)void, define, WORD B)a3_3,_123,Car C)For, -abc, IF Case D)2a, DO, sizeof(13)以下选项中可作为C语言合法常量的是A)-80 B)-080 C)-8e1.0 D)-80.0e(14)若有语句:char *line[5];,以下叙述中正确的是A) 定义line是一个数组,每个数组元素是一个基类型为char为指针变量B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C) 定义line是一个指针数组,语句中的*号称为间址运算符D) 定义line是一个指向字符型函数的指针(15)以下定义语句中正确的是A)int a=b=0; B)char A=65+1,b=′b′; C)float a=1,*b=&a,*c=&b;D)double a=0 0;b=1.1;(16)有以下程序段char ch; int k;ch=′a′;k=12;printf("%c,%d,",ch,ch,k); printf("k=%d \n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12 D)a,97,k=12(17)有以下程序main(){ int i,s=1;for (i=1;i<50;i++)if(!(i%5)&&!(i%3)) s+=i;printf("%d\n",s);}程序的输出结果是A)409 B)277 C)1 D)91(18)当变量c的值不为2、4、6时,值也为"真"的表达式是A)(c==2)||(c==4)||(c==6) B)(c>=2&& c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&& c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是A)程序段有语法错B)3,5,3 C)3,5,5 D)3,5,7(20)有以下程序#include <stdio.h>main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0:a++; break;case 1:b++; break;}case 2:a++; b++; break;case 3:a++; b++;}printf("a=%d,b=%d\n",a,b);}程序的运行结果是A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1(21)下列程序的输出结果是#include "stdio.h"main(){ int i,a=0,b=0;for(i=1;i<10;i++){ if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b); }A)a=4,b=4 B)a=4,b=5 C)a=5,b=4 D)a=5,b=5(22)已知#int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法D)以上说法都不对(23)下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A)3 B)4 C)1 D)2(24)以下错误的定义语句是A)int x[][3]={{0},{1},{1,2,3}}; B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D)int x[][3]={1,2,3,4};(25)有以下程序void ss(char *s,char t){ while(*s){ if(*s==t)*s=t-′a′+′A′;s++; } }main(){ char str1[100]="abcddfefdbd",c=′d′;ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd(26)有如下程序main(){ char ch[2][5]={"6937","8254"},*p[2];int i,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>′\0′;j+=2)s=10*s+p[i][j]-′0′;printf("%d\n",s);}该程序的输出结果是A)69825 B)63825 C)6385 D)693825(27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是A)gets(&s[0]); B)scanf("%s",s+1); C)gets(s); D)scanf("%s",s[1]);(28)以下叙述中错误的是A)在程序中凡是以"#"开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#define MAX 是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)设有以下说明语句typedef struct{ int n;char ch[8];} PER;则下面叙述中正确的是A)PER 是结构体变量名B)PER是结构体类型名C)typedef struct 是结构体类型D)struct 是结构体类型名(30)以下叙述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)以下能正确定义一维数组的选项是A)int a[5]={0,1,2,3,4,5}; B)char a[]={′0′,′1′,′2′,′3′,′4′,′5′,′\0′}; C)char a={′A′,′B′,′C′}; D)int a[5]="0123";(32)有以下程序#include<string.h>main(){ char p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′};printf("%d%d\n",strlen(p),strlen(q));}以下叙述中正确的是A) 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B) 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C) 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D) 由于p和q数组中都没有字符串结束符,故长度都不能确定(33)有以下程序#include <stdio.h>#include <string.h>void fun(char *s[],int n){ char *t; int i,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]:s[j];s[j]=t;}}main(){ char *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5); printf("%s,%s\n",ss[0],ss[4]);}程序的运行结果是A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc(34)有以下程序#include <stdio.h>int f(int x){ int y;if(x==0||x==1) return(3);y=x *x-f(x-2);return y;}main(){ int z;z=f(3); printf("%d\n",z);}程序的运行结果是A)0 B)9 C)6 D)8(35)下面程序段的运行结果是char str[]="ABC",*p=str;printf("%d\n",*(p+3));A)67 B)0 C)字符′C′的地址D)字符′C′(36)若有以下定义:struct link{ int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。
认识实习报告9月初,我们先前往了山东威海滨田印刷机械有限公司进行认识实习。
此后我们又去了一家大型零件加工厂进行了参观。
通过这次的实习,我们了解到机械行业第一线的一些具体情况,了解了工业生产实施的具体过程,同时也对一些工厂的技术实施,管理方法有了一定的认识。
前往滨田印刷机械有限公司以后,我们在指导老师和工程师的带领下,分批开始了对该厂的参观。
这一切对我们而言陌生有新鲜。
开始,我们在一位严谨的工程师的带领下,去了零件加工厂了解了各类零件的加工。
其中参观了各种自动化得机床,我们还从一部分机床中看到了上学期我们金工实习那些机床的影子。
但给我最大的感触是整个车间里,国产的机床并不是很多。
整个过程纪律严明,一边参观零件的加工,一边聆听了工程师给予我们的讲解了解了整个工厂的第一道程序。
此后,我们前往了三间组装车间,参观了52系列,66系列和47系列三种印刷机的组装。
这次给我们介绍的是一位年轻的工程师,他详细的向我们介绍了这三种印刷机的一些知识。
我们也了解了刚知道这几个型号产生的疑惑,原来,47,52和66的意思是最大用纸尺寸的长。
其中47系列是单色印刷机,可用于印号码,打孔线和树脂凸版印刷。
使用的集中供油系统可以有效的防止因局部遗忘加油造成的零件磨损,延长零件的精度和使用寿命,杜绝润滑油浪费,保护环境卫生。
52系列性能较高,大都是以高级胶印机所具有的高耐久性、高精度的部件为基础,生产的高性能印刷机。
同时也是可适合文字、线条印刷,实地印刷等各种印刷需要。
另外通过添加多种备选装置,使机器升级到更高效率的印刷机。
到66系列时,工程师大哥向我们介绍的较为详细,它分为两款:WEIHAI HAMADA66-NP 实现精美平版印刷及号码印刷的高品质重型印刷机和WEIHAI HAMADA66 真正高品质的重型印刷机。
WEIHAI HAMADA66系列是以真正高质量印刷为目标而生产的大四开重型胶印机。
这款先进的机械拥有按扭式与触摸式键盘,所需操作全部集中在3处操作盘上。
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解析:软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。
或者你才在上一个洞吞了柏忌,下一个洞你就为抓了老鹰而兴奋不已。
2011年3月计算机等级考试二级C++笔试真题一、选择题(1)下列关于栈叙述正确的是A)栈顶元素最先能被删除B)栈顶元素最后才能被删除C)栈底元素永远不能被删除D)以上三种说法都不对(2)下列叙述中正确的是A)有一个以上根结点的数据结构不一定是非线性结构B)只有一个根结点的数据结构不一定是线性结构C)循环链表是非线性结构D)双向链表是非线性结构(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A)3B)4C)6D)7(4)在软件开发中,需求分析阶段产生的主要文档是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)369C)0.369D)整数集合{1,2,3,4,5}(11)为了提高函数调用的实际运行速度,可以将较简单的函数定义为A)内联函数B)重载函数C)递归函数D)函数模板(12)若AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数定义中访问a时,其书写格式为A)aB)AA.a只有凭借毅力,坚持到底,才有可能成为最后的赢家。