四川计算机二级c语言考试25次笔试真题
- 格式:doc
- 大小:52.50 KB
- 文档页数:9
四川省普通高等学校计算机应用知识和能力第二十六次等级考试二级(C与C++语言) 笔试试卷时间: 2007年4月14 日( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1. Windows是多用户多任务操作系统。
( 1 )2. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。
( 2 )3. 在面向对象的软件开发方法中,类可以创建对象,类是对象的实例,对象是生成类的模板。
( 3 )4. 在计算机系统中,操作系统是处于裸机之上的第一层软件。
( 4 )5. 数据的存储结构与数据的处理效率无关。
( 5 )6. 提供没有错误的程序是提高软件的可维护性的基本措施。
( 6 )7. 中断控制方式适用于外设同CPU之间进行大量数据交换。
( 7 )8. 在软件工程中,结构化软件开发方法是一种自顶向下分阶段实现的软件开发方法。
( 8 )9. 进程把程序作为它的运行实体,没有程序也就没有进程。
( 9 )10.软件工程的目的是最终解决软件的生产工程化。
( 10 )二、选择题(每小题1分,共5分)1. 以下哪种测试方法不属于白盒测试技术(11 )。
11 (A) 基本路径测试(B) 边界值分析测试(C) 循环覆盖测试(D) 逻辑覆盖测试2. 若进栈序列为1,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是(12 )。
12 (A) 1,4,3,2 (B) 2,3,4,1(C) 3,1,4,2 (D) 3,4,2,13. 在多道程序设计系统中,处于后备状态的作业要经过(13 )调度后才能真正执行。
13 (A) 作业调度(B) 作业调度和设备调度(C) 进程调度(D) 作业调度和进程调度4. 检查软件产品是否符合需求定义的过程称为(14 )。
14 (A) 确认测试(B) 集成测试(C) 验证测试(D) 验收测试5. 数据字典是结构化软件开发方法中用于描述(15 )工作阶段的工具。
15 (A) 需求分析(B) 程序编码(C) 详细设计(D) 可行性分析1. 在下列枚举定义中,(16 )是正确的。
历年全国计算机等级考试二级C语言笔试选择真题一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分)(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-S图B.PAD图C.程序流程图D. E-R图(8)数据库管理系统是A.操作系统的一部分B.在操作系统支持下的系统软件C.一种编译系统D.一种操作系统(9)在E-R图中,用来表示实体联系的图形是A.椭圆图B.矩形C.菱形D.三角形(10)有三个关系R,S和T如下:其中关系T由关系R和S通过某种操作得到,该操作为A.选择B.投影C.交D.并(11)以下叙述中正确的是A.程序设计的任务就是编写程序代码并上机调试B.程序设计的任务就是确定所用数据结构C.程序设计的任务就是确定所用算法D.以上三种说法都不完整(12)以下选项中,能用作用户标识符的是A.voidB.8_8C._0_D.unsigned(13)阅读以下程序#includemain(){ int case; float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&pjrintF);printf(“%d %f ”,case,printF);}该程序编译时产生错误,其出错原因是A.定义语句出错,case是关键字,不能用作用户自定义标识符B.定义语句出错,printF不能用作用户自定义标识符C.定义语句无错,scanf不能作为输入函数使用D.定义语句无错,printf不能输出case的值(14)表达式:(int)((double)9/2)-(9)%2的值是A.0B.3C.4D.5(15)若有定义语句:int x=10;,则表达式x-=x+x的值为A.-20C.0D.10(16)有以下程序#includemain(){ int a=1,b=0;printf(“%d,”,b=a+b);printf(“%d ”,a=2*b);}程序运行后的输出结果是A.0,0B.1,0C.3,2D.1,217)设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A.if(a>B. c=a,a=b,b=c;B.if(a>B. {c=a,a=b,b=c;}C.if(a>B. c=a;a=b;b=c;D.if(a>B. {c=a;a=b;b=c;}(18)有以下程序main(){ int c=0,k;for (k=1;kb?(b>c?1:0):0;功能相同的是A.if((a>b)&&(b>C.) k=1;else k=0;B.if((a>b)||(b>C. k=1;else k=0;C.if(aB. k=1;else if(b>C.k=1;else k=0;20)有以下程序#includemain(){ char s[]={“012xy”};int i,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’a’&&s[i]2);printf(“%d %d ”,k,n);}程序运行后的输出结果是A.0 2B.1 3D.1 2(22)有以下定义语句,编译时会出现编译错误的是A.char a=’a’;B.char a=’’;C.char a=’aa’;D.char a=’x2d’;(23)有以下程序#includemain(){ char c1,c2;c1=’A’+’8’-‘4’;c2=’A’+’8’-‘5’;printf(“%c,%d ”,c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A.E,68B.D,69C.E,DD.输出无定值(24)有以下程序#includevoid fun(int p){ int d=2;p=d++; printf(“%d”,p);}main(){ int a=1;fun(a); printf(“%d ”,a);}程序运行后的输出结果是A.32B.12C.21D.22(25)以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能#define MIN -2147483647int findmax (int x[],int n){ int i,max;for(i=0;i{ max=MIN;if(maxreturn max;}造成错误的原因是A.定义语句int i,max;中max未赋初值B.赋值语句max=MIN;中,不应给max赋MIN值C.语句if(maxD.赋值语句max=MIN;放错了位置(26)有以下程序#includemain(){ int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d ”,m,n,*p,*q);}程序运行后的输出结果是A.1,2,1,2B.1,2,2,1C.2,1,2,1D.2,1,1,2(27)若有定义语句:int a[4][10],*p,*q[4];且0≤i>1);输出结果是A.16B.8C.4D.2(40)下列关于C语言文件的叙述中正确的是A.文件由一系列数据依次排列组成,只能构成二进制文件B.文件由结构序列组成,可以构成二进制文件或文本文件C.文件由数据序列组成,可以构成二进制文件或文本文件D.文件由字符序列组成,其类型只能是文本文件[历年全国计算机等级考试二级C语言笔试选择真题]。
计算机等级考试二级C语言真题计算机等级考试二级C语言真题导语:C语言之所以命名为C,是因为 C语言自Ken Thompson创造的B语言,而 B语言那么自BCPL语言。
下面是计算机二级考试C语言的真题,欢送参考!(1)以下表达中正确的选项是A.栈是“先进先出”的线性表B.队列是“先进先出”的线性表C.循环队列是非线性构造D.有序性表既可以采用顺序存储构造,也可以采用链式存储构造(2)支持子程序调用的数据构造是A.栈B.树C.队列D.二叉树(3)某二叉树有5个度为2的结点,那么该二叉树中的.叶子结点数是A.10B.8C.6D.4(4)以下排序方法中,最坏情况下比拟次数最少的是A.冒泡排序B.简单项选择择排序C.直接插入排序D.堆排序(5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是A.编译软件B.操作系统C.教务管理系统D.汇编程序(6)下面表达中错误的选项是A.软件测试的目的是发现错误并改正错误B.对被调试的程序进展“错误定位”是程序调试的必要步骤C.程序调试通常也称为DebugD.软件测试应严格执行测试方案,排除测试的随意性(7)耦合性和内聚性是对模块独立性度量的两个标准。
以下表达中正确的选项是A.进步耦合性降低内聚性有利于进步模块的独立性B.降低耦合性进步内聚性有利于进步模块的独立性C.耦合性是指一个模块内部各个元素间彼此结合的严密程度D.内聚性是指模块间互相连接的严密程度(8)数据库应用系统中的核心问题是A.数据库设计B.数据库系统设计C.数据库维护D.数据库管理员培训(9)有两个关系R,S如下:RABCa32b01c21SABa3b0c2由关系R通过运算得到关系S,那么所使用的运算为A.选择B.投影C.插入D.连接(10)将E-R图转换为关系形式时,实体和联络都可以表示为A.属性B.键C.关系D.域。
全国计算机等级考试《二级C语言程序设计》历年真题精选及详解一、选择题(请在【答题】菜单上选择【选择题】命令,启动选择题测试程序,按照题目上的内容进行答题。
作答选择题时键盘被封锁,使用键盘无效,考生须使用鼠标答题。
选择题部分只能进入一次,退出后不能再次进入。
选择题部分不单独计时。
)1.下列叙述中正确的是()。
A.所有数据结构必须有根结点B.所有数据结构必须有终端结点(即叶子结点)C.只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构D.没有根结点或没有叶子结点的数据结构一定是非线性结构【答案】D【解析】D项正确,线性结构的特点是:①集合中必存在“第一个元素”且惟一;②集合中必存在“最后一个元素”且惟一;③除最后一个元素外,其他数据元素均有惟一的“后继”;④除第一个元素外,其他数据元素均有惟一的“前驱”。
所以没有根结点或没有叶子结点的数据结构一定是非线性结构。
AB两项错误,不是所有数据结构都必须有根结点和叶子结点;C项错误,数据结构中若有中间结点不满足只有一个前件或者后件的条件,就不是线性结构。
答案选择D选项。
2.以下叙述中错误的是()。
A.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B.C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中D.C语言源程序经编译后生成后缀为.obj的目标程序【答案】A【解析】A项错误,注释语句不会被翻译成二进制的机器指令。
C源程序经过C编译程序编译之后生成后缀为.obj的二进制文件(称为目标文件),然后由“链接程序”(Link)的软件把.obj文件与各种库函数连接起来生成一个后缀为.exe的可执行文件。
答案选择A选项。
3.C语言主要是借助以下()功能来实现程序模块化的。
A.定义函数B.定义常量和外部变量C.三种基本结构语句D.丰富的数据类型【答案】A【解析】C程序的模块化主要通过函数来实现。
计算机二级C语言历年真题及答案计算机二级C语言历年真题及答案练习是巩固知识的有效手段,而考试是检验知识掌握情况的一种方式。
下面是店铺整理的计算机二级C语言试题答案,希望对大家有用。
计算机二级C语言历年真题及答案 1选择题1). 在软件设计中,不属于过程设计工具的是( )A.PDL(过程设计语言)B.PAD图C.N-S图D.DFD图正确答案:D答案解析:DFD(数据流图Data-Flow-Diagram)是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示。
它直接支持系统功能建模。
在软件详细设计的过程阶段,要对每个模块规定的功能以及算法的设计给出适当的算法描述。
常见的过程设计工具有:图形工具:程序流程图,N-S,PAD,HIPO;表格工具:判定表;语言工具:PDL(伪码)。
2). 数据结构中,与所使用的计算机无关的是数据的( )。
A.存储结构B.物理结构C.逻辑结构D.线性结构正确答案:C答案解析:数据的逻辑结构反映的是数据元素之间的逻辑关系,与使用的计算机无关。
3). 设有定义: int x=2; 以下表达式中,值不为6的是( )A.2*x, x+=2B.x++,2*xC.x*=(1+x)D.x*=x+1正确答案:A答案解析:本题考查逗号表达式。
逗号表达式的求解过程是:先求解表达式1,再求解表达式2,整个逗号表达式的值是表达式2的值,因此,选项A中值为4;选项B中,值为6。
选项C中x*=x+1 等价于x=x*(x+1),所以等于6;选项D与选项C等价,结果也为6。
4). 在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为( )A.63B.64C.6D.7正确答案:B答案解析:顺序查找又称顺序搜索。
顺序查找一般是指在线性表中查找指定的元素,其基本方法是:从线性表的第一元素开始,依次将线性表中的元素与被查找的元素进行比较,若相等则表示找到(即查找成功),若线性表中所有元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找的元素(即查找失败)。
计算机二级c语言最新考试真题一、在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. functionD. define(答案)B二、在C语言的循环结构中,下列哪个语句用于结束一次循环并开始下一次循环?A. breakB. continueC. returnD. exit(答案)B三、在C语言中,若需要定义一个指向整数的指针变量p,下列哪个语句是正确的?A. int p;B. int p;C. *int p;D. int * p;(答案)A四、在C语言中,数组名作为函数参数时,实际传递的是数组的哪种属性?A. 数组的首地址B. 数组的长度C. 数组的所有元素D. 数组的类型(答案)A五、下列哪个C语言的关键字用于表示一个结构体类型?A. unionB. enumC. structD. typedef(答案)C六、在C语言中,若一个函数没有返回值,则其返回类型应声明为什么?A. intB. voidC. charD. float(答案)B七、在C语言的条件判断结构中,下列哪个语句用于表示“如果x大于y,则执行某操作”?A. if x > y thenB. if (x > y)C. if x > y doD. if [x > y](答案)B八、在C语言中,字符串是以什么作为结束标志的?A. '\0'B. '\n'C. ' 'D. '.'(答案)A。
全国计算机等级考试二级C语言程序设计真题精选6一、单项选择题1.有以下程序:#includ<stdio.h>#defin4voifun(ina[][N],inb[])ini; for(i=0;i<N;i++)b[i]=a[i][i];}main()inx[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i; fun(x,y); for(i=0;i<N;i++)printf("%d,",y[i]); printf("");}程序运行的结果是()。
A.1,2,3,4,B.1,0,7,0, √C.1,4,5,9D.3,4,8,0解析:数组x有4列。
fun函数中for循环的作用是将二维数组前4行的对角线元素赋给b[0],b[1],b[2],b[3]。
在主函数中,二维数组初始化为{1,2,3},{4},{5,6,7,8},{9,10},所以可以看出对角线元素为1,0,7,0,。
2.有以下程序:#includ<stdio.h>main()chaa=4; printf("%",a=a<<1);}程序运行的结果是()。
A.40B.16C.8 √D.4解析:左移一位相当于原数乘以2,右移一位相当于除以2。
a<<1结果为4*2=8,没有超过char类型的范围。
3.一个栈的初始状态为空。
现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是()。
A.12345ABCDEB.EDCBA54321 √C.ABCDE12345D.54321EDCBA解析:栈是按照“先进后出”的原则组织数据的,入栈的顺序为12345ABCDE,则出栈的顺序应为其逆序,即EDCBA54321。
4.有以下程序:#includ<stdio.h>strucstinx,y;data[2]={1,10,2,20};main ()strucs*p=data; printf("%d,",p->y);printf("%",(++p)->x);}程序运行的结果是()。
2012年3月份全国计算机等级考试二级C语言笔试题库50套第一套一、选择题二、3在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为 BA)PAD图B)N-S图C)结构图D)数据流图(2)结构化程序设计主要强调的是 DA)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(3)为了使模块尽可能独立,要求 BA)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(4)需求分析阶段的任务是确定 DA)软件开发方法B)软件开发工具C)软件开发费用D)软件系统功能(5)算法的有穷性是指 AA)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是DA)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是 BA)e3,e1,e4,e2B)e2,e4,e3,e1C)e3,e4,e1,e2D) 任意顺序(8)将E-R图转换到关系模式时,实体与联系都可以表示成 BA)属性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,则所使用的运算为 DA)并B)自然连接C)笛卡尔积D)交(10)下列有关数据库的描述,正确的是DA)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是 CA)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(12)下列可用于C语言用户标识符的一组是BA)void, define, WORDB)a3_3,_123,CarC)For, -abc, IF CaseD)2a, DO, sizeof(13)以下选项中可作为C语言合法常量的是 AA)-80B)-080C)-8e1.0D)-80.0e(14)若有语句:char *line[5];,以下叙述中正确的是 AA) 定义line是一个数组,每个数组元素是一个基类型为char为指针变量B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C) 定义line是一个指针数组,语句中的*号称为间址运算符D) 定义line是一个指向字符型函数的指针(15)以下定义语句中正确的是 BA)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,则执行上述程序段后输出结果是 DA)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)有以下程序 Dmain(){ int i,s=1;for (i=1;i<50;i++)if(!(i%5)&&!(i%3)) s+=i;printf("%d\n",s);}程序的输出结果是A)409B)277C)1D)91(18)当变量c的值不为2、4、6时,值也为"真"的表达式是 BA)(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)若变量已正确定义,有以下程序段 Bint 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,3C)3,5,5D)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);}程序的运行结果是DA)a=1,b=0B)a=2,b=2C)a=1,b=1D)a=2,b=1(21)下列程序的输出结果是 B#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=4B)a=4,b=5C)a=5,b=4D)a=5,b=5(22)已知#int t=0;while (t=1){...}则以下叙述正确的是 BA)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对(23)下面程序的输出结果是 Amain(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A)3B)4C)1D)2(24)以下错误的定义语句是 CA)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);}程序运行后的输出结果是 BA)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)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);}该程序的输出结果是 CA)69825B)63825C)6385D)693825D(27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是A)gets(&s[0]);B)scanf("%s",s+1);C)gets(s);D)scanf("%s",s[1]);D(28)以下叙述中错误的是A)在程序中凡是以"#"开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#define MAX 是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的B(29)设有以下说明语句typedef struct{ int n;char ch[8];} PER;则下面叙述中正确的是A)PER 是结构体变量名B)PER是结构体类型名C)typedef struct 是结构体类型D)struct 是结构体类型名B(30)以下叙述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件B(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";A(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数组中都没有字符串结束符,故长度都不能确定A(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,aaaaccB)aaaacc,xyC)bcc,aabccD)aabcc,bccC(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)0B)9C)6D)8B(35)下面程序段的运行结果是char str[]="ABC",*p=str;printf("%d\n",*(p+3));A)67B)0C)字符′C′的地址D)字符′C′D(36)若有以下定义:struct link{ int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构: 指针p指向变量a,q指向变量c。
⼀、下列各题A、B、C、D四个选项中,只有⼀个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)下列叙述中正确的是A.栈是“先进先出”的线性表B.队列是“先进先出”的线性表C.循环队列是⾮线性结构D.有序性表既可以采⽤顺序存储结构,也可以采⽤链式存储结构(2)⽀持⼦程序调⽤的数据结构是A.栈B.树C.队列D.⼆叉树(3)某⼆叉树有5个度为2的结点,则该⼆叉树中的叶⼦结点数是A.10B.8C.6D.4(4)下列排序⽅法中,最坏情况下⽐较次数最少的是A.冒泡排序B.简单选择排序C.直接插⼊排序D.堆排序(5)软件按功能可以分为:应⽤软件、系统软件和⽀撑软件(或⼯具软件)。
下⾯属于应⽤软件的是A.编译软件B.操作系统C.教务管理系统D.汇编程序(6)下⾯叙述中错误的是A.软件测试的⽬的是发现错误并改正错误B.对被调试的程序进⾏“错误定位”是程序调试的必要步骤C.程序调试通常也称为DebugD.软件测试应严格执⾏测试计划,排除测试的随意性(7)耦合性和内聚性是对模块独⽴性度量的两个标准。
下列叙述中正确的是A.提⾼耦合性降低内聚性有利于提⾼模块的独⽴性B.降低耦合性提⾼内聚性有利于提⾼模块的独⽴性C.耦合性是指⼀个模块内部各个元素间彼此结合的紧密程度D.内聚性是指模块间互相连接的紧密程度(8)数据库应⽤系统中的核⼼问题是A.数据库设计B.数据库系统设计C.数据库维护D.数据库管理员培训(9)有两个关系R,S如下:RABCa32b01c21SABa3b0c2由关系R通过运算得到关系S,则所使⽤的运算为A.选择B.投影C.插⼊D.连接(10)将E-R图转换为关系模式时,实体和联系都可以表⽰为A.属性B.键C.关系D.域(11)以下选项中合法的标识符是A.1-1B.1—1C.-11D.1--(12)若函数中有定义语句:int k;,则A.系统将⾃动给k赋初值0B.这时k中值⽆定义C.系统将⾃动给k赋初值-1D.这时k中⽆任何值(13)以下选项中,能⽤作数据常量的是A.0115B.0118C.1.5e1.5D.115L(14)设有定义:int x=2;,以下表达式中,值不为6的是A.x*=x+1B.x++,2*xC.x*=(1+x)D.2*x,x+=2(15)程序段:int x=12;double y=3.141593; printf(“%d%8.6f”,x,y);的输出结果是A.123.141593B.123.141593C.12,3.141593D.123.141593(16)若有定义语句:double x,y,*px,*py,执⾏了px=&x, py=&y;之后,正确的输⼊语句是A.scanf(“%f%f”,x,y);B.scanf(“%f%f”,&x,&y);C.scanf(“%lf%le”,px,py);D.scanf(“%lf%lf”,x,y);(17)以下是if语句的基本形式:if(表达式)语句其中“表达式”A.必须是逻辑表达式B.必须是关系表达式C.必须是逻辑表达式或关系表达式D.可以是任意合法的表达式(18)有以下程序#includemain(){int x;scanf(“%d”,&x);if(x<=3); elseif(x!=10)printf(“%d\n”,x);}程序运⾏时,输⼊的值在哪个范围才会有输出结果A.不等于10的整数B.⼤于3且不等于10的整数C.⼤于3或等于10的整数D.⼩于3的整数(19)有以下程序#includeMain(){int a=1,b=2,c=3,d=0;if(a= =1 &&b++= =2)if(b!=2 || c--!=3)printf(“%d,%d,%d\n”,a,b,C.;else printf(“%d,%d,%d\n”,a,b,C.;else printf(“%d,%d,%d\n”,a,b,C.;}程序运⾏后的输出结果是A.1,2,3B.1,3,2C.1,3,3D.3,2,1(20)以下程序中的变量已正确定义for(i=0;i<4;i++,i++for(k=1;k<3;k++);printf(*”);程序段的输出结果是A.********B.****C.**D.*(21)有以下程序#includemain(){char*s=(“ABC.;do{printf(“%d”,*s%10);s++;}while(*s);}注意,字母A的ASCII码值为65。
四川省计算机二级考试第二十五次C与C++语言笔试试卷 第 1 页 共 9 页 四川省普通高等学校计算机应用知识和能力 第二十五次等级考试 二级(C与C++语言) 笔 试 试 卷 时间: 2006年11月 4 日 上午 9:00—11:00 第一部分 软件技术基础 (共15分) 一、是非判断题(每小题1分,共10分) ( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B ) 1. 在操作系统中,作业调度和进程调度没有区别。 ( 1 ) 2. 数据类型是具有共同属性的一类变量的抽象。 ( 2 ) 3. 瀑布模型中需求分析的主要工作是确定要开发的软件做什么。 ( 3 ) 4. 软件设计阶段产生的最重要的文档之一是概要设计说明书。 ( 4 ) 5. 在进行插入排序时,其数据比较次数与数据的初始排列无关。 ( 5 ) 6. 软件测试不是为了证明软件的正确性,而是立足于软件有错误而进行的。 ( 6 ) 7. 线性表若采用链式存储表示时所有结点之间的存储单元地址必须连续。 ( 7 ) 8. 中断处理通常是按中断优先级响应和进行中断的。 ( 8 ) 9. 缓冲池可作为CPU和I/O设备之间信息传输的集散地。 ( 9 ) 10.进程调度根据一定的调度算法,从等待队列中挑选出合适的进程。 ( 10 )
二、选择题(每小题1分,共5分) 1. 把高级语言的源程序翻译成二进制代码的过程称为: ( 11 )。 11 (A) 编译 (B) 连接 (C) 运行 (D) 重定位 2. 把逻辑地址转变为内存的物理地址的过程称作 ( 12 )。 12 (A) 地址分配 (B) 地址连接 (C) 地址调用 (D) 地址变换 3. 白盒法又称为逻辑覆盖法,主要用于 ( 13 )。 13 (A) 功能测试 (B) 系统测试 (C)α测试 (D) 单元测试 4. 在操作系统中,进程最基本的特征是 ( 14 )。 14 (A) 动态性和并发性 (B) 顺序性和可再现性 (C) 与程序的对应性 (D) 执行过程的封闭性 5. 以下哪一项不是软件危机的表现形式 ( 15 )。 15 (A) 成本高 (B) 生产率低 (C) 技术发展快 (D) 质量得不到保证 四川省计算机二级考试第二十五次C与C++语言笔试试卷 第 2 页 共 9 页
第二部分 C与C++语言程序设计 (共85分) 一、单项选择题 ( 每小题1分,共10分 ) 1. 以下程序运行时若输入12,则结果是 ( 16 )。(考点:条件运算表达式) void main() { int x,y; scanf("%d",&x); y=x>12?x+10:x-12; printf("%d\n",y); } 16 (A) 0 (B) 22 (C) 12 (D) 10 2. 下列关于构造函数的描述中,错误的是( 17 )。(*考点:C++) 17 (A) 构造函数可以设置默认参数 (B) 构造函数在定义类对象时自动执行 (C) 构造函数可以是内联函数 (D) 构造函数不可以重载 3. C语言能够处理的文件类型是 ( 18 )。(考点:文件) 18 (A) 文本文件和数据文件 (B) 文本文件和二进制文件 (C) 数据文件和二进制文件 (D) 以上答案都不正确 4. 以下程序段是( 19 )。(考点:循环) x=-1; do { x=x*x; } while(!x); 19 (A) 是死循环 (B) 循环执行二次 (C) 循环执行一次 (D) 有语法错误 5.以下程序的输出结果是 ( 20 )。(考点:带参数的宏定义) # define PT 5.5 # define S(x) PT*x*x main() { int a=1,b=2; printf("%4.1f\n",S(a+b)); } 20 (A) 12.0 (B) 9.5 (C) 12.5 (D) 33.5 6. C语言的语句 char *line[5] ; 的含义是指( 21 )。(考点:指针数组) 21 (A) line 是一个数组,其数组的每一个元素是指向字符的指针 (B) line 是一个指针,指向一个数组,数组的元素是为字符型 (C) A和B均不对,但它是C语言正确的语句 (D) C语言不允许这样的语句 7. C语言中( 22 )是main函数参数的不正确表达形式。(考点:命令行参数) 22 (A) main(int argc,char *argv[]) (B) main(ac,av) int ac;char **av; (C) main(c,v) int c; char *v[]; (D) main(a,b) int a; char b[ ]; 四川省计算机二级考试第二十五次C与C++语言笔试试卷 第 3 页 共 9 页
8. 若变量都已正确定义,则以下程序段的输出为 ( 23 )。(考点:条件语句) a=10;b=30;c=20; if(a>b) a=b;b=c;c=a; printf("a=%d b=%d c=%d\n",a,b,c); 23 (A) a=10 b=30 c=20 (B) a=10 b=20 c=10 (C) a=30 b=20 c=10 (D) a=30 b=20 c=30 9. 在下列描述中,错误的是 ( 24 )。 (*考点:C++) 24 (A) 对象是类的一个实例 (B) 数组下标从0开始 (C) 引用是变量的别名 (D)没有赋地址值的指针就指向0号单元 10. 某程序中对myfun函数有如下说明:(考点:函数) void myfun(); 此说明的含义是 ( 25 ) 。 25 (A) myfun函数无返回值 (B) myfun函数的返回值可以是任意的数据类型 (C) myfun函数的返回值是无值型的指针类型 (D) 指针myfun指向一个函数,该函数无返回值
二、读程序回答问题 ( 每个选择3分,共45分 ) 1. 下列程序运行的结果为( 26 )。(考点:指针、循环、字符处理) # include main() { char *s="121"; int k=0,a=0,b=0; do { k++; if(k%2==0) { a=a+s[k]-'0'; continue; } b=b+s[k]-'0'; a=a+s[k]-'0'; }while(s[k+1]); printf("k=%d a=%d b=%d\n",k,a,b); } 26 (A)k=3 a=2 b=3 (B) k=3 a=3 b=2 (C) k=2 a=3 b=2 (D) k=2 a=2 b=3 2. 下列程序运行的结果为( 27 )。(考点:递归函数) # include bin(int x) { if(x/2>0) bin(x/2); printf("%d",x%2); } main() 四川省计算机二级考试第二十五次C与C++语言笔试试卷 第 4 页 共 9 页
{ bin(12); } 27 (A) 1100 (B) 1000 (C) 12 (D) -12 3. 读程序并回答问题。(考点:结构体数组、结构体指针及运算) struct test { int a; int *b; }num[4],*sp; void main() { int n=1,i; for(i=0;i<4;i++) { num[i].a=n; num[i].b=&num[i].a; n=n+2; } sp=num; sp++; printf("%d\n",(sp++)->a); printf("%d\n",*(sp->b)); } (1)程序中第一条printf的运行结果为( 28 )。 28 (A)1 (B) 3 (C)5 (D)7 (2)程序中第二条printf的运行结果为( 29 )。 29 (A)1 (B) 3 (C)5 (D)7 4. 有下列程序(考点:二维数组处理矩阵转置算法) main() { int array[][3]={1,2,3,4,5,6,7,8,9}; int k,m,n=0; for(k=0;k<3;k++) for(m=k+1;m<3;m++) { n=array[k][m]; array[k][m]=array[m][k]; array[m][k]=n; } for(m=0;m<3;m++) printf("%d",array[m][0]); } (1) 此程序的功能是对数组array表示的3阶方阵进行( 30 )。 30 (A) 转置 (B) 第2行调至第1行、第3行调至第2行、第1行调至第3行 (C) 相邻元素交换 (D) 第1行与第1列对调 (2) 程序运行的输出结果是( 31 )。 四川省计算机二级考试第二十五次C与C++语言笔试试卷 第 5 页 共 9 页
31 (A) 147 (B) 258 (C) 123 (D) 369 5. 有下列程序:(考点:函数、静态存储类型变量) fun(int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return(m); } main() { int k=4,m=3,p; p=fun(k,m); L1: printf("%d",p); p=fun(k,m); L2: printf("%d",p); } (1) L1行输出结果是( 32 )。 32 (A) 7 (B) 8 (C) 9 (D) 10 (2) L2行输出语句输出结果是( 33 )。 33 (A) 9 (B) 11 (C) 20 (D) 21 6. 读程序,回答问题。(考点:指针函数(指针参数)、字符串处理) # include main() { char *strc(char *str1,char *str2); char s1[]="1234567",s2[]="98",*pt; pt=strc(s1,s2); printf("%s\n",pt); } char *strc(char *str1,char *str2) { char *p=str1; do { *p++=*str2++; }while(*str2!='\0'); *p='\0'; return(str1); } (1) 该程序的输出结果为( 34 )。 34 (A) 98 (B) 89 (C) 123456789 (D) 1234567 (2) 若去掉strc函数中的“*p='\0'; ”语句,输出为( 35 )。 35 (A) 98 (B) 89 (C) 9834567 (D) 1234567 7. 读程序,回答问题。(考点:循环应用) void main() { int n;