2007年9月全国计算机等级考试二级C语言试题及答案

合集下载

2007年(秋)江苏二级C语言笔试试卷参考答案及解析

2007年(秋)江苏二级C语言笔试试卷参考答案及解析

2007 年(秋)笔试试卷参考答案及解析第一部分计算机基础知识(1)D)【解析】1 bit 是单个的二进制数值,0 或1。

虽然计算机可以提供指令测试和操作比特,但通常以多个比特的集合——字节来存储数据和执行指令。

在大多数计算机系统中,1B 由8bit 构成。

1bit 数值在存储器中用单个电容器充放电高于或低于某个电平来表示,比特是最小单位,字节是比特的集合也是一个单位。

(2)D)【解析】根据美国半导体协会预测,到2010 年将能达到18 英寸、0.07~0.05 微米的工艺水平。

(3)B)【解析】通信可分为模拟通信和数字通信,计算机网络属于数字通信。

(4)A)【解析】主存储器的基本编址单位是位,也就是它只能存储一个二进制的0 或1。

目前市场上销售的PC 机,其内存容量可达数几百GB。

不是所有PC 的内存条都是通用的,DDR1 和DDR2 是不可以互换的。

(5)D)【解析】现行PC 机中,IDE(或SATA)接口标准主要用于硬盘与主机的连接。

(6)A)【解析】Pentium 系列微机的内存条不相同,比如接口有些都不一样。

主板上芯片组的作用提供存储器控制功能和I/O 控制。

主板上CMOS 芯片用于存储BIOS 设置程序和一些软硬件设置信息。

(7)A)【解析】目前的主流硬盘容量为60~160GB,影响硬盘容量的因素有单碟容量和碟片数量。

(8)C)【解析】在Windows 操作系统(95 以后版本)中文件名最长可以使用255 个字符。

(9)B)【解析】一个算法应该具有以下五个重要的特征。

有穷性:一个算法必须保证执行有限步之后结束;确切性:算法的每一步骤必须有确切的定义;输入:一个算法有0 个或多个输入,以刻画运算对象的初始情况;输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。

没有输出的算法是毫无意义的;可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。

(10)B)【解析】目前IP 地址都是 4 组数,每组都是由二进制换算所得,IP 是0~255 的数字。

2007年9月全国计算机等级考试二级笔试试卷

2007年9月全国计算机等级考试二级笔试试卷

2007年9月全国计算机等级测试二级笔试试卷access测试试题一、选择题(1~35每小题2分,共70分)1.软件是指A)程序B)程序和文档C)算法加数据结构D)程序、数据和相关文档的完整集合答案:D【分析】:软件是程序、数据和相关文档的完整集合,相对于计算机硬件而言,软件是逻辑产品而不是物理产品,是计算机的无形部分。

2.软件调试的目的是A)发现错误B)改正错误C)改善软件的性能D)验证软件的正确性答案:B【分析】:软件测试和软件调试是两个不同的概念:软件测试的目的是发现错误,而软件调试的目的是发现错误或导致程序失误的原因,并修改程序以修正错误,调试是测试之后的活动。

3.在面向对象方法中,实现信息隐蔽是依靠A)对象的继承B)对象的多态C)对象的封装D)对象的分类答案:C【分析】:封装是一种信息屏蔽技术,目的在于将对象的使用者和对象的设计者分开。

用户只能见到对象封装界面上的信息,不必知道实现的细节。

封装一方面通过数据抽象,把相关的信息结合在一起,另一方面也简化了接口。

答案:A【分析】:当今主导的程序设计风格是清晰第一,效率第二的观点。

结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,而实际使用中,人们更重视程序的可理解性。

4.下列叙述中,不符合良好程序设计风格要求的是A)程序的效率第一,清晰第二B)程序的可读性好C)程序中要有必要的注释D)输入数据前要有提示信息答案:A【分析】:当今主导的程序设计风格是清晰第一,效率第二的观点。

结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,而实际使用中,人们更重视程序的可理解性。

5.下列叙述中正确的是A)程序执行的效率和数据的存储结构密切相关B)程序执行的效率只取决于程序的控制结构C)程序执行的效率只取决于所处理的数据量D)以上三种说法都不对答案:A【分析】:程序执行的效率和很多因素有关,如数据的存储结构、程序所处理的数据量、程序所采用的算法等。

07年全国计算机二级C语言真题

07年全国计算机二级C语言真题

2007年4月全国计算机考试二级C语言笔试试卷及参考答案一选择题(1)下列叙述中正确的是A)算法的效率只与问题的规模有关,而与数据的存储结构无关B)算法的时间复杂度是指执行算法所需要的计算工作量C)数据的逻辑结构与存储结构是一一对应的D)算法的时间复杂度与空间复杂度一定相关(2)在结构化程序设计中,模块划分的原则是A)各模块应包括尽量多的功能B)各模块的规模应尽量大C)各模块之间的联系应尽量紧密D)模块内具有高内聚度、模块间具有低耦合度(3)下列叙述中正确的是A)软件测试的主要目的是发现程序中的错误B)软件测试的主要目的是确定程序中错误的位置C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作D)软件测试是证明软件没有错误(4)下面选项中不属于面向对象程序设计特征的是A)继承性 B)多态性 C)类比性 D)封闭性(5)下列对列的叙述正确的是A)队列属于非线性表B)队列按“先进后出”原则组织数据C)队列在队尾删除数据D)队列按“先进先出”原则组织数据(6)对下列二叉树进行前序遍历的结果为A) DYBEAFCZX B) YDEBFZXCAC) ABDYECFXZ D) ABCDEFXYZ(7) 某二叉树中有n个度为2的结点,则该二叉树中的叶子结点为A) n+1 B) n-1 C) 2n D) n/2(8) 在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是A) 并 B)交 C)投影 D)笛卡儿乘积(9) 在E-R图中,用来表示实体之间联系的图形是A) 矩形 B)椭圆形 C)菱形 D)平行四边形(10)下列叙述中错误的是A) 在数据库系统中,数据的物理结构必须与逻辑结构一致B)数据库技术的根本目标是要解决数据的共享问题C)数据库设计是指在已有数据库管理系统的基础上建立数据库D)数据库系统需要操作系统的支持(11)算法中,对需要执行的每一步操作,必须给出清楚、严格的规定,这属于算法的A)正当性 B)可行性 C)确定性 D)有穷性(12)下列叙述中错误的是A)计算机不能直接执行用C语言编写的源程序B)C程序经C编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行(13)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是A)大写字母 B)连接符 C)数字字符 D)下划线(14)以下叙述中错误的是A)C语言是一种结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计提倡模块化的设计方法(15)对于一个正常运行的C程序,以下叙述中正确的是A)程序的执行总是从main函数开始,在main函数结束B)程序的执行总是从程序的第一个函数开始,在main函数结束C)程序的执行总是从main函数开始,在程序的最后一个函数中结束D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束(16)设变量均已正确定义,若要通过scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。

2007年9月全国计算机等级考试真题及答案

2007年9月全国计算机等级考试真题及答案

2007年4月全国计算机等级考试二级C语言笔试试卷(含参考答案)发布日期:2007-06-01 浏览次数:2783一、选择题((1)—(10)每小题2分,(11)—(50)每题1分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上答在试卷上不得分。

(1)下列叙述中正确的是(B)A)算法的效率只与问题的规模有关,而与数据的存储结构无关B)算法的时间复杂度是指执行算法所需要的计算工作量C)数据的逻辑结构与存储结构是一一对应的D)算法的时间复杂度与空间复杂度一定相关(2)在结构化程序设计中,模块划分的原则是(D)A)各模块应包括尽量多的功能B)各模块的规模应尽量大C)各模块之间的联系应尽量紧密D)模块内具有高内聚度、模块间具有低耦合度(3)下列叙述中正确的是(A)A)软件测试的主要目的是发现程序中的错误B)软件测试的主要目的是确定程序中错误的位置C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作D)软件测试是证明软件没有错误(4)下面选项中不属于面向对象程序设计特征的是(C)A)继承性 B)多态性C)类比性D)封装性(5)下列对队列的叙述正确的是(D)A)队列属于非线性表B)队列按“先进后出”原则组织数据C)队列在队尾删除数据D)队列按“先进先出”原则组织数据(6)对下列二叉树AB CD E F XY Z进行前序遍历的结果为(C)A) DYBEAFCZX B) YDEBFZXCAC) ABDYECFXZ D) ABCDEFXYZ(7) 某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为(A)A) n+1 B) n-1 C) 2n D) n/2(8) 在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是(B)A) 并B)交C)投影D)笛卡儿乘积(9) 在E-R图中,用来表示实体之间联系的图形是(C)A) 矩形B)椭圆形C)菱形 D)平行四边形(10)下列叙述中错误的是(A)A) 在数据库系统中,数据的物理结构必须与逻辑结构一致B)数据库技术的根本目标是要解决数据的共享问题C)数据库设计是指在已有数据库管理系统的基础上建立数据库D)数据库系统需要操作系统的支持(11)算法中,对需要执行的每一步操作,必须给出清楚、严格的规定,这属于算法的(C)A)正当性 B)可行性 C)确定性D)有穷性(12)下列叙述中错误的是(D)A)计算机不能直接执行用C语言编写的源程序B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行(13)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(B)A)大写字母 B)连接符C)数字字符 D)下划线(14)以下叙述中错误的是(C)A)C语言是一种结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计提倡模块化的设计方法(15)对于一个正常运行的C程序,以下叙述中正确的是(A)A)程序的执行总是从main函数开始,在main函数结束B)程序的执行总是从程序的第一个函数开始,在main函数结束C)程序的执行总是从main函数开始,在程序的最后一个函数中结束D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束(16)设变量均已正确定义,若要通过scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。

2007年9月全国计算机等级考试二级C语言口试试题(含参考答案)

2007年9月全国计算机等级考试二级C语言口试试题(含参考答案)

9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间120分钟,满分100分)一、选择题((1)-(10)每题2分,(11)-(50)每题1分.共60分))下列各题A)、B)、C)、D)四个选项中,只有一个是正确的,请将正确选项涂写在答题卡上,答在试卷上不得分。

(1)软件是指A)程序 B)程序和文档C)算法加数据结构 D)程序、数据和相关文档的集合(2)软件调试的目的是A)发现错误 B)改正错误C)改善软件的性能 D)验证软件的正确性(3)在面向对象方法中,实现信息隐蔽是依靠A)对象的继承 B)对象的多态C)对象的封装 D)对象的分类(4)下列叙述中,不符合良好程序设计风格的是A)程序的效率第一,清晰第二 B)程序的可读性好C)程序中有必要的注释 D)输入数据前要有提示信息(5)下列叙述中正确的是A)程序执行的效率与数据的存储结构密切相关B)程序执行的效率只取决于程序的控制结构C)程序执行的效率只取决于所处理的数据量D)以上三种说法都不对(6)下列叙述中正确的是A)数据的逻辑结构与存储结构必定是一一对应的B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线线结构D)以上三种说法都不对(7)冒泡排序在最坏情况下的比较次数是A)n(n+1)/2 B)nlog2n C)n(n-1)/2 D)n/2(8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A)219 B)221 C)229 D)231(9)下列叙述中正确的是A)数据库系统是一个独立的系统,不需要操作系统的支持B)数据库技术的根本目标是要解决数据的共享问题C)数据库管理系统就是数据库系统D)以上三种说法都不对(10)下列叙述中正确的是A)为了建立一个关系,首先要构造数据的逻辑关系B)表示关系的二维表中各元组的每一个分量还可以分成若干数据项C)一个关系的属性名表称为关系模式D)一个关系可以包括多个二维表(11)C语言源程序名的后缀是A).exe B).C C).obj D).cp(12)可在C程序中用做用户标识符的一组标识符是A)and B)Date C)Hi D)case_2007 y-m-d Dr.Tom Bigl(13)以下选项中,合法的一组C语言数值常量是A)028 B)12. C).177 D)0x8A. 5e-3 OXa23 4c1.5 10,000-0xf 4.5e0 Oabc 3.e5(14)以下叙述中正确的是A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数(15)若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是A)scanf("%d",a,b,c); B)scanf("%d%d%d",a,b,c);C)scanf("%d",p); D)scanf("%d",&p);(16)以下关于long、int和short类型数据占用内存大小的叙述中正确的是A)均占4个字节 B)根据数据的大小来决定所占内存的字节数C)由用户自己定义 D)由C语言编译系统决定(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是A)x=y==5; B)x=n%2.5; C)x+n=I; D)x=5=4+1;(18)有以下程序段int j; float y; char name[50];scanf("%2d%f%s",&j,&y,name);当执行上述程序段,从键盘上输入55566 7777abc后,y的值为A)55566.0 B)566.0 C)7777.0 D)566777.0(19)若变量已正确定义,有以下程序段i=0;do printf("%d,",i);while(i++);printf("%d\n",i)其输出结果是A)0,0 B)0,1 C)1,1 D)程序进入无限循环(20)有以下计算公式y=(x≥0)(x<0)若程序前面已在命令中包含math.h文件,不能够正确计算上述公式的程序段是A)if(x>=0) y=sqrt(x); B)y=sqrt(x)else y=sqrt(-x); if(x<0) y=sqrt(-x);C)if(x>=0)y=sqrt(x); D)y=sqrt(x>=0?x:-x);If(x<0)y=sqrt(-x);(21)设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是A)(EXP= =0) B)(EXP!=0) C)(EXP= =1) D)(EXP!=1)(22)有以下程序#include<stdio.h>main(){int y=9;for( ; y>0;y--)if(y%3= =0) printf("%d",--y);}程序的运行结果是A)741 B)963 C)852 D)875421(23)已有定义:char c; ,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是A)isupper(c) B)’A’<=c<=’Z’C)’A’<=c&&c<=’Z’ D)c<=(‘2’-32)&&(‘a’-32)<=c(24)有以下程序#include<stdio.h>main(){int i,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++) m=m%j;printf("%d\n",m);}程序的运行结果是A)0 B)1 C)2 D)3(25)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元(26)已知字符’A’的ASCⅡ代码值是65,字符变量c1的值是’A’,c2的值是’D’。

2007至2010年计算机国家二级C语言笔试真题及答案[1]

2007至2010年计算机国家二级C语言笔试真题及答案[1]

2010年3月全国计算机二级C语言考试真题一、选择题((1)~(10)、(21)~(40)每题2分,(11)~(20)每题1分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

(1)下列叙述中正确的是A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)(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)维护阶段C)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:R TA B Cc 3 2d 3 2则由关系R得到关系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)_1 B)AaBc C)a_b D)a--b(14)若有定义:doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是A)a=a++,i++; B)i=(a+k)<=(i+k);C)i=a%11; D)i=!a ;(15)有以下程序#include<stdio.h>main(){char a,b,c,d;scanf(“%c%c ”,&a,&b);c=getchar();d=getchar;printf(“%c%c%c%c\n ”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是 一个字符)12<CR>34<CR>则输出结果是A)1234 B)12 C)12 D)123 34(16)以下关于C语言数据类型使用的叙述中错误的是A)若要准确无误差的表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==I)||(a! =1)的值是 A B C a 1 2b2 2 c3 2 d 3 2A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b;else a++;语句功能不同的switch语句是A)switch(a){case1:a=b;break;default:a++;}B)switch(a==1){case0:a=b;break;case1:a++;}C)switch(a){default:a++;break;case1:a=b;}D)switch(a==1){case1:a=b;break;case0:a++;}(19)有如下嵌套的if语句if(a<b)if(a<c) k=a;else k=c;if(b<c) k=b;else k=c;以下选项中与上述if语句等价的语句是A)k=(a<b)?a:b;k=(b<c)?b:c;B)k=(a<b)?((b<c)?a:b)((b>c)?b:c);C)k=(a<b)?((a<c)?a:c)((b<c)?b:c);D)k=(a<b)?a:b;k=(a<c)?a:c;(20)有以下程序#include<stdio.h>main(){int i,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i+j>3) break;m*=i*j;}}printf(“m=%d\n”,m);}程序运行后的输出结果是A)m=6B)m=2C)m=4D)m=5(21)有以下程序#include<stdio.h>main(){int a=1,b=2;for(;a<8;a++) { b+=a;a+=2;}printf(“%d,%d\n”,a,b);}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数#include<stdio.h>main(){int k=011;printf(“%d\n”,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)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返同到调用处(25)下列选项中,能正确定义数组的语句是A)int num[0..2008];B)int num[];C)int N=2008 ;D)#define N 2008int num[N];int num[N];(26)有以下程序#include<stdio.h>void 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(“%c,%c\n”,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]={0,2,1,3,0},i,s=0;for(i=1;i<3;i++) s=s+a[b[i]];printf(“%d\n”,s);}程序运行后的输出结果是A)6B)10C)11D)15(30)有以下程序#include<stdio.h>main(){int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=1;i<3;i++)for(j=1;j<=1;j++) t+=b[i][b[j][i]];printf(“%d\n”,t);}程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句char s1[10]="abcd!", s2="\n123\\";printf("%d%d\n",strlen(s1),strlen(s2));则输出结果是A)55B)105C)107D)58(32)有以下程序#include<stdio.h>#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=1;i<N/2;i++){printf(“%d”,a[i]);}printf(“\n”);}程序运行后的输山结果是A)1313B)2234C)3234D)1234(33)有以下程序#include<stdio.h>int f(int t[],int n);main(){int a[4]={1,2,3,4},s;s=f(a,4);printf(“%d\n”,s);}int f(int t[],int n){if (n>0)return t[n-1]+f(t,n-1);else return 0;}程序运行后的输出结果是A)4B)10C)14D)6(34)有以下程序#include<stdio.h>int fun(){static int x=1;x*=2;return x;}main(){int i,s=1;for(i=1;i<=2;i++) s=fun();printf(“%d\n”,s);}程序运行后的输出结果是A)0B)1C)4D)8(35)有以下程序#include<stdio.h>#define SUB(a) (a)-(a)main(){int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf(“%d\n”,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<stdio.h>#include<string.h>struct A{int a;char b[10];double c;};void f(struct At);main(){struct Aa={1001,“ZhangDa”,1098.0};f(a);printf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}void f(struct At){t.a=1002;strcpy(t.b,“ChangRong”);t.c=1202.0;}输出结果是A)1001,ZhangDa,1098.0B)1002,ChangRong,1202.0C)1001,ChangRong,10980D)1002,ZhangDa,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=1980;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;(39)有以下程序#include<stdio.h>main(){int a=2,b=a,c=2;printf(“%d\n”,a/b&c);}程序运行后的输出结果是A)0B)1C)2D)3(40)有以下程序#include<stdio.h>main(){FILE *fp;char str[10];fp=open(“myfile.dat”,“w”);fputs(“abc”,pf);close(pf);fp=open(“myfile.dat”,“a+”);fprintf(pf,“%d”,28);rewind(pf);fscanf(pf,“%s”,str);puts(str);close(pf);}程序运行后的输出结果是A)abcB)28cC)abc28D)因类型不一致而出错二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。

2007年9月全国计算机等级考试二级C语言笔试试题(附答案)

2007年9月全国计算机等级考试二级C语言笔试试题(附答案)

2007年9月全国计算机等级考试二级C语言笔试试题(附答案)本卷共分为3大题66小题,作答时间为120分钟,总分100 分,60 分及格。

选择题一:(1)-(10)每题2分1 软件是指()。

A.程序B.程序和文档C.算法加数据结构D.程序,数据和相关文档的完整集合2 软件调试的目的是()。

A.发现错误B.改正错误C.改善软件性能D.验证软件正确性3 在面向对象方法中,实现信息隐蔽是靠()。

A.对象的继承B.对象的多态C.对象的封装D.对象的分类4 下列叙述中,不符合良好程序设计风格的是()。

A.程序的效率第一,清晰第二B.程序的可读性好C.程序中要有必要的注释D.输入数据前要有提示信息5 下列叙述中正确的是()。

A.程序执行效率与数据的存储结构密切相关B.程序执行效率只取决于程序的控制结构C.程序的执行效率只取决于所处理的数据量D.以上三种说法都不对6 下列叙述中正确的是()。

A.数据的逻辑结构与存储结构必定是一一对应的B.由于计算机存储空间是向量式存储结构,因此,数据的存储结构一定是线性结构C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构D.以上三种说法都不对7 冒泡排序在最坏的情况下比较次数是()。

A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/28 一颗二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为()。

A.219B.221C.229D.2319 下列叙述中正确的是()。

A.数据库系统是一个独立的系统,不需要操作系统的支持B.数据库技术的根本目标是要解决数据的共享问题C.数据库管理系统就是数据库系统D.以上三种说法都不对10 下列叙述中正确的是()。

A.为了建立一个关系,首先要构造数据的逻辑关系B.表示关系的二维表中各元组的每一个分量还可以分成若干数据项C.一个关系的属性名表称为关系模式D.一个关系可以包括多个二维表选择题二:(11)-(50)每题1分11 C语言源程序名的后缀是()。

2007年9月全国计算机等级考试二级C语言笔试考试试卷

2007年9月全国计算机等级考试二级C语言笔试考试试卷

2007年9月全国计算机等级考试二级C语言笔试考试试卷2007年9月全国计算机等级考试二级C语言笔试考试试卷2007-12-15 23:58A)GEDHFBCAB)DGEBHFCAC)ABCDEFGHD)ACBFEDHG2.树是结点的集合,它的根结点数目是A)有且只有1B)1或多于1C)0或1D)至少23.如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A)e3,e1,e4,e2B)e2,e4,e3,e1C)e3,e4,e1,e2D)任意顺序4.在设计程序时,应采纳的原则之一是A)不限制goto语句的使用B)减少或取消注解行C)程序越短越好D)程序结构应有助于读者理解5.程序设计语言的基本成分是数据成分、运算成分、控制成分和A)对象成分B)变量成分C)语句成分D)传输成分6.下列叙述中,不属于软件需求规格说明书的作用的是A)便于用户、开发人员进行理解和交流B)反映出用户问题的结构,可以作为软件开发工作的基础和依据C)作为确认测试和验收的依据D)便于开发人员进行需求分析7.下列不属于软件工程的3个要素的是A)工具B)过程C)方法D)环境8.单个用户使用的数据视图的描述称为A)外模式B)概念模式C)内模式D)存储模式9.将E-R图转换到关系模式时,实体与联系都可以表示成A)属性B)关系C)键D)域10.SQL语言又称为A)结构化定义语言B)结构化控制语言C)结构化查询语言D)结构化操纵语言11.下列叙述中正确的是A)C语言编译时不检查语法B)C语言的子程序有过程和函数两种C)C语言的函数可以嵌套定义D)C语言的函数可以嵌套调用12.在C语言中,退格符是A)\nC)\fD)\b13.以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函数C)main()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义14.若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=% d, b=%d,c=%d\n",a,b,c);程序输出的结果是A)***a=25,b=13,c=19B)***a=26,b=14,c=19C)### a=25,b=13,c=19D)### a=26,b=14,c=1915.下列程序段的输出结果是int a=1234;float b=123.456;double c=12345.54321;printf("-,%2.1f,%2.1f",a,b,c);A)无输出B)12,123.5,12345.5C)1234,123.5,12345.5D)1234,123.4,1234.516.若运行以下程序时,从键盘输入ADescriptor(表示回车),则下面程序的运行结果是#includemain()int v0=1,v1=0,v2=0;do{ switch(c=getchar()){ case ′a′:case ′A′:case ′e′:case ′E′:case ′i′:case ′I′:case ′o′:case ′O′:case ′u′:case ′U′:v1+=1;default:v0+=1;v2+=1;}} while(c!=′\n′);printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2); } A)v0=7,v1=4,v2=7B)v0=8,v1=4,v2=8C)v0=11,v1=4,v2=11D)v0=13,v1=4,v2=1217.设有以下程序段int x=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段执行无限次18.执行下面的程序段后,变量k中的值为int k=3, s[2];s[0]=k; k=s[1]*10;A)不定值B)33D)1019.以下程序段的描述,正确的是x=-1;do{x=x*x;} while(!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误20.有如下程序段int a=14,b=15,x;char c=′A′;x=(a&&b)&&(c<′B′);执行该程序段后,x的值为A)tureB)falseC)0D)121.下列程序执行后的输出结果是void func1(int i);void func2(int i);char st[]="hello,friend!"; void func1(int i){ printf("%c",st[i]);if(i<3){i+=2;func2(i);}}void func2(int i){ printf("%c",st[i]);if(i<3){i+=2;func1(i);}}main(){ int i=0; func1(i); printf("\n");}A)helloB)helC)hloD)hlm22.以下函数返回a所指数组中最大值所在的下标值fun(int *a,int n){ int i,j=0,p;p=j;for(i=j;iif(a[i]>a[p]);return(p);}在下划线处应填入的内容是A)i=pB)a[p]=a[i]C)p=jD)p=i23.以下程序的输出结果是#includevoid prt (int *x, int*y, int*z){ printf("%d,%d,%d\n",++*x,++*y,*(z++));} main(){ int a=10,b=40,c=20;prt (&a,&b,&c);prt (&a,&b,&c);}A)11,42, 3112,22,41B)11,41,2012,42,20C)11,21,4011,21,21D)11,41,2112,42,2224.有如下程序main(){ char s[]="ABCD", *p;for(p=s+1; p}该程序的输出结果是A)ABCDBCDCDDB)ABCDC)BCDD)BCDCDD25.下列程序执行后的输出结果是main(){ int a[3][3], *p,i;p=&a[0][0];for(i=1; i<9; i++)p[i]=i+1; printf("%d\n",a[1][2]); }B)6C)9D)随机数31.以下对结构体类型变量的定义中,不正确的是A)typedef struct aa{ int n;float m;} AA;AA tdl;B)#define AA struct aaAA{ int n;float m;} tdl;C)struct{ int n;float m;} aa;struct aa tdl;D)struct{ int n;float m;} tdl;32.在下述程序中,判断i>j共执行的次数是main(){ int i=0, j=10, k=2, s=0;for (;;){ i+=k;if(i>j){ printf("%d",s);break;}}A)4B)7C)5D)633.若有以下程序#includevoid f(int n);main(){ void f(int n);f(5);}void f(int n){ printf("%d\n",n); }则以下叙述中不正确的是A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f B)若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数fC)对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明D)函数f无返回值,所以可用void将其类型定义为无返回值型34.以下程序的输出是struct st{ int x; int *y;} *p;int dt[4]={ 10,20,30,40 };struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt [0],60,&dt[0]}; main(){ p=aa;printf("%d\n",++(p->x));}A)10B)11C)51D)6035.有以下程序#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二、填空题(每空2分,共计30分)1.数据结构分为逻辑结构与存储结构,线性链表属于【1】。

全国计算机等级考试二年级C语言笔试试卷含答案

全国计算机等级考试二年级C语言笔试试卷含答案

全国计算机等级考试二年级C语言笔试试卷含答案文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688]2007年9月全国计算机等级考试二级C语言真题及参考答案一、选择题((1)-(10)每题2分,(11)-(50)每题1分.共60分))下列各题A)、B)、C)、D)四个选项中,只有一个是正确的,请将正确选项涂写在答题卡上,答在试卷上不得分。

(1)软件是指A)程序 B)程序和文档C)算法加数据结构 D)程序、数据和相关文档的集合(2)软件调试的目的是A)发现错误 B)改正错误C)改善软件的性能 D)验证软件的正确性(3)在面向对象方法中,实现信息隐蔽是依靠A)对象的继承 B)对象的多态C)对象的封装 D)对象的分类(4)下列叙述中,不符合良好程序设计风格的是A)程序的效率第一,清晰第二 B)程序的可读性好C)程序中有必要的注释 D)输入数据前要有提示信息(5)下列叙述中正确的是A)程序执行的效率与数据的存储结构密切相关B)程序执行的效率只取决于程序的控制结构C)程序执行的效率只取决于所处理的数据量D)以上三种说法都不对(6)下列叙述中正确的是A)数据的逻辑结构与存储结构必定是一一对应的B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线线结构D)以上三种说法都不对(7)冒泡排序在最坏情况下的比较次数是A)n(n+1)/2 B)nlog2n C)n(n-1)/2 D)n/2(8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A)219 B)221 C)229 D)231(9)下列叙述中正确的是A)数据库系统是一个独立的系统,不需要操作系统的支持B)数据库技术的根本目标是要解决数据的共享问题C)数据库管理系统就是数据库系统D)以上三种说法都不对(10)下列叙述中正确的是A)为了建立一个关系,首先要构造数据的逻辑关系B)表示关系的二维表中各元组的每一个分量还可以分成若干数据项C)一个关系的属性名表称为关系模式D)一个关系可以包括多个二维表(11)C语言源程序名的后缀是A).exe B).C C).obj D).cp(12)可在C程序中用做用户标识符的一组标识符是A)and B)Date C)Hi D)case_2007 y-m-d Dr.Tom Bigl(13)以下选项中,合法的一组C语言数值常量是A)028 B)12. C).177 D)0x8A. 5e-3 OXa23 4c1.5 10,000-0xf 4.5e0 Oabc 3.e5(14)以下叙述中正确的是A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数(15)若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是A)scanf("%d",a,b,c); B)scanf("%d%d%d",a,b,c);C)scanf("%d",p); D)scanf("%d",&p);(16)以下关于long、int和short类型数据占用内存大小的叙述中正确的是A)均占4个字节 B)根据数据的大小来决定所占内存的字节数C)由用户自己定义 D)由C语言编译系统决定(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是A)x=y==5; B)x=n%2.5; C)x+n=I; D)x=5=4+1;(18)有以下程序段int j; float y; char name[50];scanf("%2d%f%s",&j,&y,name);当执行上述程序段,从键盘上输入55566 7777abc后,y的值为A)55566.0 B)566.0 C)7777.0 D)566777.0(19)若变量已正确定义,有以下程序段i=0;do printf("%d,",i);while(i++);printf("%d\n",i)其输出结果是A)0,0 B)0,1 C)1,1 D)程序进入无限循环(20)有以下计算公式若程序前面已在命令中包含math.h文件,不能够正确计算上述公式的程序段是A)if(x>=0) y=sqrt(x); B)y=sqrt(x)else y=sqrt(-x); if(x<0) y=sqrt(-x);C)if(x>=0)y=sqrt(x); D)y=sqrt(x>=0x:-x);If(x<0)y=sqrt(-x);(21)设有条件表达式:(EXP)i++;j--,则以下表达式中(EXP)完全等价的是A)(EXP= =0) B)(EXP!=0) C)(EXP= =1) D)(EXP!=1)(22)有以下程序#includemain(){int y=9;for( y>0;y--)if(y%3= =0) printf("%d",--y);}程序的运行结果是A)741 B)963 C)852 D)875421(23)已有定义:char c; ,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是A)isupper(c) B)’A’<=c<=’Z’C)’A’<=c&&c<=’Z’ D)c<=(‘2’-32)&&(‘a’-32)<=c(24)有以下程序#includemain(){int i,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++) m=m%j;printf("%d\n",m);}程序的运行结果是A)0 B)1 C)2 D)3(25)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不占用具体存储单元C)同名的实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元(26)已知字符’A’的ASCⅡ代码值是65,字符变量c1的值是’A’,c2的值是’D’。

2007年9月国家二级(VISUALFOXPRO)笔试真题试卷(题后含答案及解析)

2007年9月国家二级(VISUALFOXPRO)笔试真题试卷(题后含答案及解析)

2007年9月国家二级(VISUALFOXPRO)笔试真题试卷(题后含答案及解析)题型有:1. 选择题 2. 填空题选择题(每小题2分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。

1.软件是指A.程序B.程序和文档C.算法加数据结构D.程序、数据与相关文档的完整集合正确答案:D解析:本题考查软件的定义。

软件是计算机系统中与硬件相互依存的另一部分,它包括程序、相关数据及其说明文档的总和。

因此,本题正确答案是选项D。

2.软件调试的目的是A.发现错误B.改正错误C.改善软件的性能D.验证软件的正确性正确答案:B解析:本题考查软件工程调试。

调试与测试是两个不同的过程,有着根本的区别:调试是一个随机的、不可重复的过程,它用于隔离和确认问题发生的原因,然后修改软件来纠正问题:测试是一个有计划的,可以重复的过程,它的目的是为了发现软件中的问题。

因此,软件调试的目的是为了改正软件中的错误。

本题的正确答案是选项B。

3.在面向对象方法中,实现信息隐蔽是依靠A.对象的继承B.对象的多态C.对象的封装D.对象的分类正确答案:C解析:通常认为,面向对象方法具有封装性、继承性、多态性几大特点。

就是这几大特点,为软件开发提供了一种新的方法学。

封装性:所谓封装就是将相关的信息、操作与处理融合在一个内含的部件中(对象中)。

简单地说,封装就是隐藏信息。

这是面向对象方法的中心,也是面向对象程序设计的基础。

继承性:子类具有派生它的类的全部属性(数据) 和方法,而根据某一类建立的对象也都具有该类的全部,这就是继承性。

继承性自动在类与子类间共享功能与数据,当某个类作了某项修改,其子类会自动改变,子类会继承其父类所有特性与行为模式。

继承有利于提高软件开发效率,容易达到一致性。

多态性:多态性就是多种形式。

不同的对象在接收到相同的消息时,采用不同的动作。

例如,一个应用程序包括许多对象,这些对象也许具有同一类型的工作,但是却以不同的做法来实现。

二级C语言真题2007年09月

二级C语言真题2007年09月

2003年4月全国计算机等级考试二级C语言程序设计笔试真题(考试时间120分钟,满分100分)一、选择题((1)-(40)题每题1分,(41)-(50)题每题2分,共60分)下列各题A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(1) 用8位无符号二进制数能表示的最大十进制数为A) 127 B) 128 C) 255 D) 256(2) 在64位高档微机中,一个字长所占的二进制位数为A) 8 B) 16 C) 32 D) 64(3) 在Windows环境下,为了复制一个对象,在用鼠标拖动该对象时应同时按住A) Alt键B) Esc键C) Shift键D) Ctrl键(4) 在Windows菜单中,暗淡(灰色)的命令项表示该命令A) 暂时不能用B) 正在执行C) 包含下一层菜单D) 包含对话框(5) 在DOS环境下,为了得到TYPE命令的帮助信息,正确的DOS命令为A) TYPE B) TYPE/H C) TYPE/* D) TYPE/?(6) 下列选项中,能作为合法DOS文件名的是A) ANP/A.DAT B) ABCCOM C) ECD.BASIC D) XY+Z.TXT(7) 下列叙述中正确的是A) 在Windows环境下,最大化的窗口是不能移动的B) 在Windows环境下,应用程序窗口最小化后,该应用程序暂停执行C) 在Windows环境下,只有最小化的窗口才能关闭D) 在Windows环境下,不能关闭最小化窗口(8) 在Windows环境下,工具栏中用于完成复制操作的按钮是A) 打印按钮B) 剪切按钮C) 复制按钮D) 粘贴按钮(9) 在Windows环境下,若要将整个屏幕上显示的内容存入剪贴板,可以按A) Ctrl+Printscreen键B) Alt+Printscreen键C) Shift+Printscreen键D) Printscreen键(10) 目前,计算机病毒扩散最快的途径是A) 通过软件复制B) 通过网络传播C) 通过磁盘拷贝D) 运行游戏软件(11) 以下叙述正确的是A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚、具有其他语言的一切优点(12) C语言中用于结构化程序设计的三种基本结构是A) 顺序结构、选择结构、循环结构B) if、switch、breakC) for、while、do-whileD) if、for、continue(13) 在一个C语言程序中A) main函数必须出现在所有函数之前B) main函数可以在任何地方出现C) main函数必须出现在所有函数之后D) main函数必须出现在固定位置(14) 下列叙述中正确的是A) C语言中既有逻辑类型也有集合类型B) C语言中没有逻辑类型但有集合类型C) C语言中有逻辑类型但没有集合类型D) C语言中既没有逻辑类型也没有集合类型(15) 下列关于C语言用户标识符的叙述中正确的是A) 用户标识符中可以出现下划线和中划线(减号)B) 用户标识符中不可以出现中划线,但可以出现下划线C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头(16) 若有以下程序段(n所赋的是八进制数)int m=32767,n=032767;printf("%d,%o\n",m,n);执行后输出结果是A) 32767,32767B) 32767,032767C) 32767,77777D) 32767,077777(17) 下列关于单目运算符++、--的叙述中正确的是A) 它们的运算对象可以是任何变量和常量B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量D) 它们的运算对象可以是char型变量、int型变量和float型变量(18) 若有以下程序段int m=0xabc,n=0xabc;m-=n;printf("%X\n",m);执行后输出结果是A) 0X0 B) 0x0 C) 0 D) 0XABC(19) 有以下程序段int m=0,n=0; char c='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是:A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,0(20) 有以下程序main(){ int i;for(i=0;i<3;i++)switch(i){ case 1: printf("%d",i);case 2: printf("%d",i);default: printf("%d",i);}}执行后输出的结果是A) 011122 B) 012 C) 012020 D) 120(21) 有以下程序main(){ int i=1,j=1,k=2;if((j++||k++)&&i++) printf("%d,%d,%d\n",i,j,k); }执行后输出的结果是A) 1,1,2 B) 2,2,1 C) 2,2,2 D) 2,2,3(22) 有以下程序main(){ int a=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);else if((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}执行后输出的结果是A) 2 B) 3 C) 4 D) 编译时有错,无结果(23) 有以下程序main(){ int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&p[i]%2){k=k+p[i]; i++;}printf("%d\n",k);}执行后输出的结果是A) 58 B) 56 C) 45 D) 24(24) 有以下程序main(){ int i=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;} while(i<7);printf("%d\n",s);}执行后输出的结果是A) 16 B) 12 C) 28 D) 21(25) 有以下程序main(){ int i=10,j=1;printf("%d,%d\n",i--,++j);}执行后输出的结果是A) 9,2 B) 10,2 C) 9,1 D) 10,1(26) 有以下程序main(){ char a,b,c,*d;a='\'; b='\xbc';c='\0xab'; d="\0127";printf("%c%c%c%c\n",a,b,c,*d);}编译时出现错误,以下叙述中正确的是A) 程序中只有a='\';语句不正确B) b='\xbc';语句不正确C) d="\0127";语句不正确D) a='\';和c='\0xab';语句都不正确(27) main(){int a=4,b=3,c=5,d,e,f;d=f1(a,b); d=f1(d,c);e=f2(a,b); e=f2(e,c);f=a+b+c-d-e;printf("%d,%d,%d\n",d,f,e);}执行后输出的结果是A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 3,5,4(28) 有以下程序void f(int x,int y){ int t;if(x<y){ t=x; x=y; y=t; }}main(){ int a=4,b=3,c=5;f(a,b); f(a,c); f(b,c);printf("%d,%d,%d\n",a,b,c);}执行后输出的结果是A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 4,3,5(29) 若有一些定义和语句#include <stdio.h>int a=4,b=3,*p,*q,*w;p=&a; q=&b; w=q; q=NULL;则以下选项中错误的语句是A) *q=0; B) w=p; C) *p=va; D) *p=*w;(30)有以下程序int *f(int *x,int *y){ if(*x<*y)return x;elsereturn y;}main(){ int a=7,b=8,*p,*q,*r;p=&a; q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}执行后输出结果是A) 7,8,8 B) 7,8,7 C) 8,7,7 D) 8,7,8(31)有以下程序main(){ char *s[]={"one","two","three"},*p;p=s[1];printf("%c,%s\n",*(p+1),s[0]);}执行后输出结果是A) n,two B) t,one C) w,one D) o,two(32)有以下程序main(){ int x[8]={8,7,6,5,0,0},*s;s=x+3;printf("%d\n",s[2]);}执行后输出结果是A) 随机值B) 0 C) 5 D) 6(33) 以下能正确定义数组并正确赋初值的语句是A) int N=5,b[N][N];B) int a[1][2]={{1},{3}};C) int c[2][]={{1,2},{3,4}};D) int d[3][2]={{1,2},{3,4}};(34)有以下程序main(){ int m[][3]={1,4,7,2,5,8,3,6,9};int i,j,k=2;for(i=0;i<3;i++){ printf("%d ",m[k][i]); }}执行后输出结果是A) 4 5 6 B) 2 5 8 C) 3 6 9 D) 7 8 9(35) 以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。

2007-2012计算机二级C语言历年笔试题及答案

2007-2012计算机二级C语言历年笔试题及答案

2011年9月---2007年9月历年全国计算机二级C语言考试真题及答案后附二级c语言上机题及答案2011年9月全国计算机等级考试二级笔试试卷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)下列关于二叉树的叙述中,正确的是A)叶子结点总是比度为2的结点少一个B)叶子结点总是比度为2的结点多一个C)叶子结点数是度为的结点数的两倍D)度为2的结点数是度为1的结点数的两倍(4)软件按功能分为应用软件、系统软件和支撑软件(或工具软件)。

下现属于应用软件的是A)学生成绩管理系统B)C语言编译程序C)UNIX操作系统D)数据库管理系统(5)某系统总结构图如下图所示:该系统总体结构图的深度是A)7 B)6 C)3 D)2(6)程序调试的任务是A)设计测试用例B)验证程序的正确性C)发现程序中的错误D)诊断和改正程序中的错误(7)下列关于数据库设计的叙述中,正确是的A)在需求分析阶段建立数据字典B)在概念设计阶段建立数据字典C)在逻辑设计阶段建立数据字典D)在物理设计阶段建立数据字典(8)数据库系统的三级模式不包括A)概念模式B)内模式C)外模式D)数据模式R S TA B C A B C A B Ca 1 2 a 1 2 c 3 1b 2 1 b 2 1c 3 1(9)有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A)自然连接B)差C)交D)并(10)下列选项中属于面向对象设计方法主要特征的是A)继承B)自顶向下C)模块化D)逐步求精(11)以下叙述中错误的是A)C语言编写的函数源程序,其文件名后缀可以是.CB)C语言编写的函数都可以作为一个独立的源程序文件C)C语言编写的每个函数都可以进行独立的编译并执行D)一个C语言程序只有一个主函数(12)以下选项中关于程序模块化的叙述错误的是A)把程序分成若干相对独立的模块,可便于编码和调试B)把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块C)可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序D)可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序(13)以下选项中关于C语言常量的叙述错误的是A)所谓常量,是指在程序运行过程中,其值不能被改变的量B)常量分为整型常量、实型常量、字符常量和字符串常量C)常量可分为数值常量和非数值常量D)经常被使用的变量可以定义成常量(14)若有定义语句: int a=10; double b=3.14; ,则表达式'A'+a+b的值的类型是A)char B)int C)double D)float(15)若有定义语句: int x=12, y=8, z; ,在其后执行语句z=0.9+x/y;,则z的值为A)1.9 B)1 C)2 D)2.4(16)若有定义: int a,b;,通过语scanf("%d;%d",&a,&b);,能把整数3赋给变量a, 5赋给变量b的输入数据是A)3 5 B)3,5 C)3;5 D)35(17)若有定义语句: int k1=10, k2=20;,执行表达式(k1=k1>k2) && (k2=k2>k1)后,k1和k2的值分别为A)0和1 B)0和20 C)10和1 D)10和20(18)有以下程序#include <stdio.h>main( ){ int a=1, b=0;if (--a) b++;else if(a==0) b+=2;else b+=3;printf("%d\n",b);}程序运行后的输出结果是A)0 B)1 C)2 D)3(19)下列条件语句中,输出结果与其他语句不同的是A) if(a) printf("%d\n", x); else printf("%d\n",y);B) if(a==0) printf("%d\n", y); else printf("%d\n",x);C) if(a!=0) printf("%d\n", x); else printf("%d\n",y);D) if(a==0) printf("%d\n", x); else printf("%d\n",y);(20)有以下程序#include <stdio.h>main( ){ int a=7;while (a--);printf("%d\n",a);}程序运行后的输出结果是A)-1 B)0 C)1 D)7(21)以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a 的ASCII码值为97)A)printf("%c\n",'a'-32); B)printf("%d\n",'A')C)printf("%c\n",65); D)printf("%c\n",'B'-1);(22)有以下程序(注:字符a的ASCII码值为97)#include <stdio.h>main( ){ char *s={"abc"};do{ printf("%d",*s%10); ++s; }while (*s);}程序运行后的输入结果是A)abc B)789 C)7890 D)979899(23)若有定义语句: double a,*p=&a; 以下叙述中错误的是A)定义语句中的* 号是一个间址运算符B)定义语句中的* 号只是一个说明符C)定义语句中的p只能存放double类型变量的地址D)定义语句中,*p=&a把变量a的地址作为初值赋给指针变量p(24)有以下程序#include <stdio.h>double f(double x);main( ){ double a=0; int i;for (i=0; i<30; i+=10) a+=f( (double)i);printf("%5.0f\n",a);}double f(double x){ return x*x+1; }程序运行后的输出结果是A)503 B)401 C)500 D)1404(25)若有定义语句: int year=2009, *p=&year;,以下不能使变量year中的值增至2010的语句是A)*p+=1; B)(*p)++; C)++(*p); D)*p++;(26)以下定义数组的语句中错误的是A)int num[]={1,2,3,4,5,6} B)int num[][3]={{1,2},3,4,5,6};C)int num[2][4]={{1,2},{3,4},{5,6}}; D)int num[][4]={1,2,3,4,5,6};(27)有以下下程序#include <stdio.h>void fun(int *p){ printf("%d\n", p[5]); }main( ){ int a[10]={1,2,3,4,5,6,7,8,9,10};fun(&a[3]);}程序运行后的输出结果是A)5 B)6 C)8 D)9(28)有以下程序#include <stdio.h># define N 4void fun(int a[][N], int b[]){ int i;for (i=0; i<N; i++) b[i]=a[i][i]-a[i][N-1-i];}main( ){ int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}, y[N], i;fun(x, y);for (i=0;i<N; i++) printf("%d,",y[i]); printf("\n");}程序运行后的输出结果是A)-12,-3,0,0, B)-3,-1,1,3, C)0,1,2,3, D)-3,-3,-3,-3,(29)有以下函数int fun(char *x, char *y){ int n=0;while ( (*x==*y) && *x!='\0') {x++; y++; n++; }return n;}函数的功能是A)查找x和y所指字符串中是否有'\0'B)统计x和y所指字符串中最前面连续相同的字符个数C)将y所指字符串赋给x所指存储空间D)统计x和y所指字符串中相同的字符个数(30)若有定义语句: char *s1="OK", *s2="ok";,以下选项中,能够输出"OK"的语句是A)if (strcm(s1,s2)==0 puts(s1); B)if (strcm(s1,s2)!=0 puts(s2);C)if (strcm(s1,s2)==1 puts(s1); D)if (strcm(s1,s2)!=0 puts(s1);(31)以下程序的主函数中调用了在其前面定义的fun函数#include <stdio.h>∶main( ){ double a[15],k;k=fun(a)∶}则以下选项中错误的fun函数首部是A)double fun( double a[15]) B)double fun( double *a)C)double fun( double a[]) D)double fun( double a)(32)有以下程序#include <stdio.h>#include <string.h>main( ){ char a[5][10]={"china", "beijing", "you", "tiananmen", "welcome"};int i,j; char t[10];for ( i=0; i<4; i++)for (j=i+1; j<5; j++)if( strcmp(a[i], a[j])>0){ strcpy(t,a[i]); strcpy(a[i],a[j]); strcpy(a[j],t); }puts(a[3]);}程序运行后的输出结果是A)beijing B)china C)welcomeD)tiananmen(33)有以下程序#include <stdio.h>int f(int m){ static int n=0;n+=m;return n;}main( ){ int n=0;printf("%d,", f(++n));printf("%d\n", f(n++));}程序运行后的输出结果是A)1,2 B)1,1 C)2,3 D)3,3(34)有以下程序#include <stdio.h>main( ){ char ch[3][5]={"AAAA","BBB","CC"};printf( "%s\n", ch[1] );}程序运行后的输出结果是A)AAAA B)CC C)BBBCC D)BBB(35)有以下程序#include <stdio.h>#include <string.h>void fun(char *w, int m){ char s,*p1, *p2;p1=w; p2=w+m-1;while (p1<p2) { s=*p1; *p1=*p2; *p2=s; p1++; p2--; }}main( ){ char a[]="123456";fun( a, strlen(a) ); puts(a);}程序运行后的输出结果是A)654321 B)116611 C)161616 D)123456(36)有以下程序#include <stdio.h>#include <string.h>typedef struct {char name[9]; char sex; int score[2]; } STU;STU f(STU a){ STU b={"Zhao",'m',85,90};int i;strcpy(, );a.sex=b.sex;for (i=0; i<2; i++) a.score[i]=b.score[i];return a;}main( ){ STU c={"Qian",'f',95,92}, d;d=f(c);printf("%s,%c,%d,%d,",,d.sex,d.score[0],d.score[1]);printf("%s,%c,%d,%d\n",,c.sex,c.score[0],c.score[1]);}程序运行后的输出结果是A)Zhao,m,85,90,Qian,f,95,92 B)Zhao,m,85,90,Zhao,m,85,90A)Qian,f,95,92,Qian,f,95,92 B)Qian,f,95,92,Zhao,m,85,90(37)有以下程序#include <stdio.h>main( ){ struct node {int n; struct node *next;} *p;struct node x[3]={{2,x+1}, {4,x+2}, {6, NULL}};p=x;printf("%d,", p->n );printf("%d\n",p->next->n );}程序运行后的输出结果是A)2,3 B)2,4 C)3,4 D)4,6(38)有以下程序#include <stdio.h>main( ){ int a=2, b;b=a<<2; printf("%d\n",b);}程序运行后的输出结果是A)2 B)4 C)6 D)8(39)以下选项中叙述错误的是A)C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值B)在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限于本复合语句内C)C程序函数中定义的自动变量,系统不自动赋确定的初值D)C程序函数的形参不可以说明为static型变量(40)有以下程序#include <stdio.h>main( ){ FILE *fp;int k,n,i,a[6]={1,2,3,4,5,6};fp = fopen("d2.dat","w");for (i=0; i<6; i++) fprintf(fp, "%d\n",a[i]);fclose(fp);fp = fopen("d2.dat","r");for (i=0; i<3; i++) fscanf(fp, "%d%d", &k, &n);fclose(fp);printf("%d,%d\n", k, n);}程序运行后的输出结果是A)1,2 B)3,4 C)5,6 D)123,456二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。

全国计算机等级考试二级公共基础知识真题2007年9月_真题(含答案与解析)-交互

全国计算机等级考试二级公共基础知识真题2007年9月_真题(含答案与解析)-交互

全国计算机等级考试二级公共基础知识真题2007年9月(总分30, 做题时间90分钟)一、选择题1.软件是指SSS_SINGLE_SELA 程序B 程序和文档C 算法加数据结构D 程序、数据与相关文档的完整集合该问题分值: 2答案:D[解析] 本题考查软件的定义。

软件是计算机系统中与硬件相互依存的另一部分,它包括程序、相关数据及其说明文档的总和。

因此,本题正确答案是选项D。

2.软件调试的目的是SSS_SINGLE_SELA 发现错误B 改正错误C 改善软件的性能D 验证软件的正确性该问题分值: 2答案:B[解析] 本题考查软件工程调试。

调试与测试是两个不同的过程,有着根本的区别:调试是一个随机的、不可重复的过程,它用于隔离和确认问题发生的原因,然后修改软件来纠正问题:测试是一个有计划的,可以重复的过程,它的目的是为了发现软件中的问题。

因此,软件调试的目的是为了改正软件中的错误。

本题的正确答案是选项 B。

3.在面向对象方法中,实现信息隐蔽是依靠SSS_SINGLE_SELA 对象的继承B 对象的多态C 对象的封装D 对象的分类该问题分值: 2答案:C[解析] 通常认为,面向对象方法具有封装性、继承性、多态性几大特点。

就是这几大特点,为软件开发提供了一种新的方法学。

封装性:所谓封装就是将相关的信息、操作与处理融合在一个内含的部件中(对象中)。

简单地说,封装就是隐藏信息。

这是面向对象方法的中心,也是面向对象程序设计的基础。

继承性:子类具有派生它的类的全部属性 (数据) 和方法,而根据某一类建立的对象也都具有该类的全部,这就是继承性。

继承性自动在类与子类间共享功能与数据,当某个类作了某项修改,其子类会自动改变,子类会继承其父类所有特性与行为模式。

继承有利于提高软件开发效率,容易达到一致性。

多态性:多态性就是多种形式。

不同的对象在接收到相同的消息时,采用不同的动作。

例如,一个应用程序包括许多对象,这些对象也许具有同一类型的工作,但是却以不同的做法来实现。

全国计算机等级考试(二级)---C语言程序设计考试大纲及习题

全国计算机等级考试(二级)---C语言程序设计考试大纲及习题

选择题
⑥ 以下说法中正确的是 A) C语言程序总是从第一个定义的函数开始 执行 B) 在C语言程序中,要调用的函数必须在 main()函数中定义 √C) C语言程序总是从main()函数开始执行 D) C语言程序中的main()函数必须放在程序 的开始部分
选择题
⑦ 有以下程序段: int x=3; do { printf(“%3d”, x- =2 ) ; } while( ! (--x) ) ; 执行后的输出结果是 A) 1 B) 30 √C) 1 -2
2. 3. 4.
考试方式
1.
2.
笔试:90分钟,满分100分,其中含公 共基础知识部分的30分 上机:90分钟,满分100分
上机操作包括:
① 填空 ② 改错 ③ 编程
第二部分 样题及参考答案
第二部分 样题及参考答案 选择题 填空题 上机操作题
① 填空题 ② 改错题 ③ 编程题
选择题
1. 只要求缓冲文件系统(即高级磁盘 I/O系 统),对非缓冲文件系统(即低级磁盘 I/O 系统)不要求 文件类型指针( FILE类型指针) 文件的打开和关闭( fopen,fclose ) 文件的读写 (fputc,fgetc,fgets,fread,fwrite fprintf,fscanf 函数的应用),文件的定位 ( rewind,fseek 函数的应用)
选择题
⑩ 有以下程序: #include “stdio.h” #include “stdlib.h” fut(int **s,int p[2][3]) { **s=p[1][1]; } main() { int a[2][3]={1,3,5,7,9,11},*p; p=(int *)malloc(sizeof(int)); fut(&p,a); printf(“%d\n”,*p); } 程序的运行结果是 A) 1 B) 7 C) 9

全国计算机等级考试二级C语言机试真题2007年9月_真题-无答案

全国计算机等级考试二级C语言机试真题2007年9月_真题-无答案

全国计算机等级考试二级C语言机试真题2007年9月(总分100,考试时间90分钟)1、程序填空题1. 下列给定的程序中,函数fun()的功能是:求输入的两个数中较小的数。

例如:输入5 10,结果为rain is 5。

[注意] 部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

[试题源程序]#include <stdio.h>#include <conio.h>int fun(int x, (1) )int z;z=x<y (2) x:y;return(z);main()int a, b, c;scanf("%d, %d\n", (3) );c=fun(a, b);printf("min is %d", c);2、程序修改1. 下列给定程序中,函数fun()的功能是求出数组中最小数和次最小数,并把最小数和a[0]中的数对调,次最小数和a[1]中的数对调。

请改正程序中的错误,使它能得到正确结果。

[注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。

[试题源程序]#include <stdio.h>#include <conio.h>#define N 20void fun(int *a, intn)int i, m, t, k;/***********************found***********************/for(i=0; i<n; i++)m=i;for(k=i; k<n; k++)if(a[k]<a[m])/**********************found**********************/k=m;t=a[i];a[i]=a[m];a[m]=t;3、编程题1. 下列程序定义了N×N的二维数组,并在主函数中赋值。

请编写一个函数fun(),函数的功能是:求数组周边元素的平方和并作为函数值返回给主函数。

IT认证-2007年9月计算机二级考试C++语言笔试试题

IT认证-2007年9月计算机二级考试C++语言笔试试题

2007年9月计算机二级考试C++语言笔试试题全国计算机等级考试历年真题2007年9月计算机二级考试C++语言笔试试题一、选择题(每题2分,共计70分)1.(1)软件是指A )程序B )程序和文档C )算法加数据结构D )程序、数据与相关文档的完整集合AB C D2.(2)软件调试的目的是A )发现错误B )改正错误C )改善软件的性能D )验证软件的正确性A BC D3.(3)在面向对象方法中,实现信息隐蔽是依靠A )对象的继承B )对象的多态C )对象的封装D )对象的分类A B C D4.(4)下列叙述中,不符合良好程序设计风格要求的是A )程序的效率第一,清晰第二B )程序的可读性好C )程序中要有必要的注释D )输入数据前要有提示信息A B C D5.Hi,亲爱的朋友,欢迎光临Passtwo !您想做点什么呢?I Want....? 查询等级考试成绩? 下载等级考试模拟题?下载历年计算机二级试题?查找二级考试答案热门软件下载实用电子地图本站隆重推荐自主开发的VFP 上机模拟系统免费下载使用二级vfp 上机模拟系统(5)下列叙述中正确的是A)程序执行的效率与数据的存储结构密切相关B)程序执行的效率只取决于程序的控制结构C)程序执行的效率只取决于所处理的数据量D)以上三种说法都不对A B C D6.(6)下列叙述中正确的是A)数据的逻辑结构与存储结构必定是一一对应的B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构D)以上三种说法都不对A B C D7.(7)冒泡排序在最坏情况下的比较次数是A)n(n+1)/2B)nlog2n C)n(n-1)/2D)n/2A B C D8.(8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A)219B)221C)229D)231A B C D9.(9)下列叙述中正确的是A)数据库系统是一个独立的系统,不需要操作系统的支持B)数据库技术的根本目标是要解决数据的共享问题C)数据库管理系统就是数据库系统D)以上三种说法都不对A B C D10.(10)下列叙述中正确的是A)为了建立一个关系,首先要构造数据的逻辑关系B)表示关系的二维表中各元组的每一个分量还可以分成若干数据项C)一个关系的属性名表称为关系模式D)一个关系可以包括多个二维表A B C D11.(11)在函数中,可以用auto、extern、register和static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是A)auto B)extern C)registerD)staticA B C D12.(12)对于一个类定义,下列叙述中错误的是A)如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数。

全国计算机等级考试二级VISUAL+FOXPRO真题2007年9月

全国计算机等级考试二级VISUAL+FOXPRO真题2007年9月

全国计算机等级考试二级VISUAL FOXPRO真题2007年9月(总分:160.00,做题时间:90分钟)一、{{B}}选择题{{/B}}(总题数:30,分数:130.00)1.软件是指(分数:2.00)A.程序B.程序和文档C.算法加数据结构D.程序、数据与相关文档的完整集合√解析:[解析] 本题考查软件的定义。

软件是计算机系统中与硬件相互依存的另一部分,它包括程序、相关数据及其说明文档的总和。

因此,本题正确答案是选项D。

2.软件调试的目的是(分数:2.00)A.发现错误B.改正错误√C.改善软件的性能D.验证软件的正确性解析:[解析] 本题考查软件工程调试。

调试与测试是两个不同的过程,有着根本的区别:调试是一个随机的、不可重复的过程,它用于隔离和确认问题发生的原因,然后修改软件来纠正问题:测试是一个有计划的,可以重复的过程,它的目的是为了发现软件中的问题。

因此,软件调试的目的是为了改正软件中的错误。

本题的正确答案是选项 B。

3.在面向对象方法中,实现信息隐蔽是依靠(分数:2.00)A.对象的继承B.对象的多态C.对象的封装√D.对象的分类解析:[解析] 通常认为,面向对象方法具有封装性、继承性、多态性几大特点。

就是这几大特点,为软件开发提供了一种新的方法学。

封装性:所谓封装就是将相关的信息、操作与处理融合在一个内含的部件中(对象中)。

简单地说,封装就是隐藏信息。

这是面向对象方法的中心,也是面向对象程序设计的基础。

继承性:子类具有派生它的类的全部属性 (数据) 和方法,而根据某一类建立的对象也都具有该类的全部,这就是继承性。

继承性自动在类与子类间共享功能与数据,当某个类作了某项修改,其子类会自动改变,子类会继承其父类所有特性与行为模式。

继承有利于提高软件开发效率,容易达到一致性。

多态性:多态性就是多种形式。

不同的对象在接收到相同的消息时,采用不同的动作。

例如,一个应用程序包括许多对象,这些对象也许具有同一类型的工作,但是却以不同的做法来实现。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2007年9月全国计算机等级C 语言程序设计一、选择题((1)—(10)每题2分,(11)—(50)每题1分,共60分))下列各题A )、B )、C )、D )四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡上,答在试卷上不得分。

(1)软件是指A )程序B )程序和文档C )算法加数据结构D )程序、数据与相关文档的完整集合(2)软件调试的目的是A )发现错误B )改正错误C )改善软件的性能D )验证软件的正确性(3)在面向对象方法中,实现信息隐蔽是依靠A )对象的继承B )对象的多态C )对象的封装D )对象的分类(4)下列叙述中,不符合良好程序设计风格要求的是A )程序的效率第一,清晰第二B )程序的可读性好C )程序中要有必要的注释D )输入数据前要有提示信息(5)下列叙述中正确的是A )程序执行的效率与数据的存储结构密切相关B )程序执行的效率只取决于程序的控制结构C )程序执行的效率只取决于所处理的数据量D )以上三种说法都不对(6)下列叙述中正确的是A )数据的逻辑结构与存储结构必定是一一对应的B )由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C )程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构D )以上三种说法都不对(7)冒泡排序在最坏情况下的比较次数是A )2/)1(+n nB )n n 2logC )2/)1(-n nD )2/n (8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A )219B )221C )229D )231 (9)下列叙述中正确的是A )数据库系统是一个独立的系统,不需要操作系统的支持B )数据库技术的根本目标是要解决数据的共享问题C )数据库管理系统就是数据库系统D )以上三种说法都不对 (10)下列叙述中正确的是A )为了建立一个关系,首先要构造数据的逻辑关系B )表示关系的二维表中各元组的每一个分量还可以分成若干数据项C)一个关系的属性名表称为关系模式D)一个关系可以包括多个二维表(11)C语言源程序名的后缀是A).exe B).C C).obj D).cp(12)可在C程序中用作用户标识符的一组标识符是A) and B) Date C) Hi D) case_2007 y-m-d Dr.Tom Big1(13)以下选项中,合法的一组C语言数值常量是A) 028 B) 12. C) .177 D) 0x8A.5e-3 0Xa23 4e1.5 10,000-0xf 4.5e0 0abc 3.e5(14)以下叙述中正确的是A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为主函数(15)若在定义语句:int a,b,c,*p=&c; 之后,接着执行以下选项中的语句,则能正确执行的语句是A)scanf("%d",a,b,c); B)scanf("%d%d%d",a,b,c);C)scanf("%d",p); D)scanf("%d",&p);(16)以下关于long、int和short类型数据占用内存大小的叙述中正确的是A)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定(17)若变量均已正确定义并赋值,以下合法的C语言赋值语句是A)x=y==5; B)x=n%2.5; C)x+n=i; D)x=5=4+1;(18)有以下程序段int j; float y; char name[50];scanf("%2d%f%s", &j, &y, name);当执行上述程序段,从键盘上输入55566 7777abc 后,y的值为A)55566.0 B)566.0 C)7777.0 D)566777.0(19)若变量已正确定义,有以下程序段i=0;do printf("%d, ",i); while( i++ );printf("%d\n",i);其输出结果是A)0,0 B)0,1 C)1,1 D)程序进入无限循环(20)有以下计算公式⎩⎨⎧<-≥=)0()0(x xx x y 若程序前面已在命令行中包含math.h 文件,不能够正确计算上述公式的程序段是A ) if(x>=0) y=sqrt(x);B ) y=sqrt(x);else y=sqrt(-x); if(x<0) y=sqrt(-x); C ) if(x>=0) y=sqrt(x); D ) y=sqrt(x>=0?x :-x);if(x<0) y=sqrt(-x);(21)设有条件表达式:(EXP)? i++ :j-- ,则以下表达式中与(EXP)完全等价的是A )(EXP==0)B )(EXP!=0)C )(EXP==1)D )(EXP!=1)(22)有以下程序#include <stdio.h>main(){ int y=9;for( ; y>0; y--)if(y%3==0) printf("%d", --y); }程序的运行结果是A )741B )963C )852D )875421(23)已有定义:char c; ,程序前面已在命令行中包含ctype.h 文件。

不能用于判断c 中的字符是否为大写字母的表达式是A )isupper(c)B )'A'<=c<='Z'C )'A'<=c&& c <='Z'D )c <=('z'-32)&&('a'-32)<= c(24)有以下程序#include <stdio.h>main(){ int i,j, m=55;for(i=1;i<=3;i++)for(j=3; j<=i; j++) m=m%j;printf("%d\n ", m);} 程序的运行结果是 A )0 B )1 C )2 D )3(25)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是A )函数的实参和其对应的形参共占同一存储单元B )形参只是形式上的存在,不占用具体存储单元C )同名的实参和形参占同一存储单元D )函数的形参和实参分别占用不同的存储单元(26)已知字符'A'的ASCII代码值是65,字符变量c1的值是'A',c2的值是'D'。

执行语句printf("%d, %d", c1, c2-2 ); 后,输出结果是A)A,B B)A,68 C)65,66 D)65,68(27)以下叙述中错误的是A)改变函数形参的值,不会改变对应实参的值B)函数可以返回地址值C)可以给指针变量赋一个整数作为地址值D)当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL(28)以下正确的字符串常量是A)"\\\" B)'abc' C)Olympic Games D)""(29)设有定义:char p[]={'1', '2', '3'},*q=p; ,以下不能计算出一个char型数据所占字节数的表达式是A)sizeof(p) B)sizeof(char) C)sizeof(*q) D)sizeof(p[0])(30)有以下函数int aaa(char *s){ char *t=s;while(*t++);t--; return(t-s);}以下关于aaa函数的功能的叙述正确的是A)求字符串s的长度B)比较两个串的大小C)将串s复制到串t D)求字符串s所占字节数(31)若有定义语句:int a[3][6]; ,按在内存中的存放顺序,a数组的第10个元素是A)a[0][4] B)a[1][3] C)a[0][3] D)a[1][4](32)有以下程序#include <stdio.h>void fun(char **p){ ++p; printf("%s\n",*p); }main(){ char *a[]={"Morning", "Afternoon", "Evening","Night"}; fun(a);}程序的运行结果是A)Afternoon B)fternoon C)Morning D)orning(33)若有定义语句:int a[2][3],*p[3]; ,则以下语句中正确的是A)p=a; B)p[0]=a; C)p[0]=&a[1][2]; D)p[1]=&a;(34)有以下程序#include <stdio.h>void fun(int *a, int n) /* fun函数的功能是将a所指数组元素从大到小排序*/{ int t, i, j;for (i=0; i<n-1;i++)for (j=i+1; j<n; j++)if (a[i]<a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; }}main(){ int c[10]={1,2,3,4,5,6,7,8,9,0},i;fun(c+4, 6);for (i=0;i<10; i++) printf("%d,", c[i]);printf("\n");}程序的运行结果是A)1,2,3,4,5,6,7,8,9,0, B)0,9,8,7,6,5,1,2,3,4,C)0,9,8,7,6,5,4,3,2,1, D)1,2,3,4,9,8,7,6,5,0, (35)有以下程序#include <stdio.h>int fun( char s[]){ int n=0;while(*s <= '9'&&*s >='0') { n=10*n+*s-'0' ; s++; }return (n);}main(){ char s[10]={ '6', '1', '*', '4', '*', '9', '*', '0', '*'};printf("%d\n",fun(s));}程序的运行结果是A)9 B)61490 C)61 D)5 (36)当用户要求输入的字符串中含有空格时,应使用的输入函数是A)scanf() B)getchar() C)gets() D)getc() (37)以下关于字符串的叙述中正确的是A)C语言中有字符串类型的常量和变量B)两个字符串中的字符个数相同时才能进行字符串大小的比较C)可以用关系运算符对字符串的大小进行比较D)空串一定比空格打头的字符串小(38)有以下程序#include <stdio.h>void fun(char *t , char *s){ while(*t!=0) t++;while( (*t++ = *s++ )!=0 ) ;}main(){ char ss[10]="acc",aa[10]="bbxxyy";fun(ss, aa); printf("%s,%s\n", ss,aa);}程序的运行结果是A)accxyy, bbxxyy B)acc, bbxxyyC)accxxyy, bbxxyy D)accbbxxyy, bbxxyy(39)有以下程序#include <stdio.h>#include <string.h>void fun(char s[][10], int n){ char t; int i,j;for (i=0; i<n-1; i++)for (j=i+1; j<n; j++)/* 比较字符串的首字符大小,并交换字符串的首字符*/if (s[i][0] > s[j][0]) { t = s[i][0]; s[i][0] = s[j][0]; s[j][0] = t;} }main(){ char ss[5][10]={"bcc", "bbcc", "xy", "aaaacc", "aabcc"};fun(ss, 5); printf("%s,%s\n", ss[0],ss[4]);}程序的运行结果是A)xy,aaaacc B)aaaacc,xy C)xcc,aabcc D)acc,xabcc(40)在一个C源程序文件中所定义的全局变量,其作用域为A)所在文件的全部范围B)所在程序的全部范围C)所在函数的全部范围D)由具体定义位置和extern说明来决定范围(41)有以下程序#include <stdio.h>int a=1;int f(int c){ static int a=2;c = c+1;return (a++) + c;}main(){ int i, k=0;for(i=0;i<2;i++) { int a=3; k += f(a); }k +=a;printf("%d\n",k);}程序的运行结果是A)14 B)15 C)16 D)17(42)有以下程序#include <stdio.h>void fun(int n, int *p){ int f1,f2;if(n==1||n==2) *p=1;else{ fun(n-1,&f1); fun(n-2,&f2);*p=f1+f2;}}main(){ int s;fun(3,&s); printf("%d\n", s );}程序的运行结果是A)2 B)3 C)4 D)5(43)若程序中有宏定义行:#define N 100 则以下叙述中正确的是A)宏定义行中定义了标识符N的值为整数100B)在编译程序对C源程序进行预处理时用100替换标识符NC)对C源程序进行编译时用100替换标识符ND)在运行时用100替换标识符N(44)以下关于typedef的叙述错误的是A)用typedef可以增加新类型B)typedef只是将已存在的类型用一个新的名字来代表C)用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名D)用typedef为类型说明一个新名,通常可以增加程序的可读性(45)有以下程序#include <stdio.h>struct tt{ int x; struct tt *y; } *p;struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a};main(){ int i; p=a;for(i=1; i<=2; i++) { printf("%d,", p->x ); p=p->y; }}程序的运行结果是A)20,30, B)30,17 C)15,30, D)20,15,(46)有以下程序#include <stdio.h>#include <string.h>typedef struct { char name[9]; char sex; float score[2]; } STU;STU f(STU a){ STU b={"Zhao", 'm', 85.0, 90.0}; int i;strcpy(, );a.sex =b.sex;for (i=0; i<2; i++) a.score[i] = b.score[i];return a;}main(){ STU c={"Qian", 'f', 95.0, 92.0}, d;d=f(c); printf("%s,%c,%2.0f,%2.0f\n", , d.sex, d.score[0], d.score[1]);}程序的运行结果是A)Qian,f,95,92 B)Qian,m,85,90 C)Zhao,m,85,90 D)Zhao,f,95,92(47)设有以下定义union data{ int d1; float d2; } demo;则下面叙述中错误的是A)变量demo与成员d2所占的内存字节数相同B)变量demo中各成员的地址相同C)变量demo和各成员的地址相同D)若给demo.d1赋99后,demo.d2中的值是99.0(48)有以下程序#include <stdio.h>main(){ int a=1, b=2, c=3, x;x=(a^b)&c; printf("%d\n",x);}程序的运行结果是A)0 B)1 C)2 D)3(49)读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中buffer代表的是A)一个文件指针,指向待读取的文件B)一个整型变量,代表待读取的数据的字节数C)一个内存块的首地址,代表读入数据存放的地址D)一个内存块的字节数(50)有以下程序#include <stdio.h>main(){ FILE *fp; int a[10]={1,2,3,0,0}, i;fp = fopen("d2.dat", "wb");fwrite(a, sizeof(int), 5, fp);fwrite(a, sizeof(int), 5, fp);fclose(fp);fp = fopen("d2.dat", "rb");fread(a, sizeof(int), 10, fp);fclose(fp);for (i=0; i<10; i++) printf("%d,", a[i]);}程序的运行结果是A)1,2,3,0,0,0,0,0,0,0, B)1,2,3,1,2,3,0,0,0,0,C)123,0,0,0,0,123,0,0,0,0, D)1,2,3,0,0,1,2,3,0,0,二、填空题(每空2分,共40分)请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分。

相关文档
最新文档