ImageVerifierCode 换一换
格式:DOC , 页数:26 ,大小:83KB ,
资源ID:1325982      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1325982.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】二级C语言笔试-148及答案解析.doc)为本站会员(amazingpat195)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

【计算机类职业资格】二级C语言笔试-148及答案解析.doc

1、二级 C 语言笔试-148 及答案解析(总分:66.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.有以下程序#include stdiohmain0int y=9;for( ;y0;y-)if(y%3=0) printf(“%d“,-y);程序的运行结果是(分数:1.00)A.741B.963C.852D.8754212.下面程序的输出结果是#includestdio.hmain()int a=1,2,3,4,5,6,7,8,9,0,*p;p=a;printf(“%d/n“,*p+9);(分数:1.00)A.0B.1C.10D.93.下列叙述中正确的是(分数:1.

2、00)A.程序执行的效率与数据的存储结构密切相关B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对4.有以下程序#include stdiohmain()int i,j,m=55;for(i=1;i=3;i+)for(j=3;j=i;j+)m=m%j;printf(“%d/n“,m);程序的运行结果是(分数:1.00)A.0B.1C.2D.35.在 16 位 IBM-PC 机上使用 C 语言,若有如下定义struct dataint i;char ch;double f;b;则结构变量 b 占用内存的字节数是(分数:1.00)A.1B.2C.

3、7D.116.假定当前盘符下有两个如下文本文件:文件名 a1.txt a2.txt内容 123# 321#则下面程序段执行后的结果为#include “stdio.h“void fc(FILE *p)char c;while(c=fgetc(p)!=#)putchar(c);main()FILE *fp;fp=fopen(“a1.txt“,“r“);fc(fp);fclose(fp);fp=fopen(“a2.txt“,“r“);fc(fp);fclose(fp);putchar(/n);(分数:1.00)A.123321B.123C.321D.以上答案都不正确7.以下选项中不属于字符常量的是

4、(分数:1.00)A.CB.“C“C./xCCD./0728.下列叙述中,不符合良好程序设计风格要求的是(分数:1.00)A.程序的效率第一,清晰第二B.程序的可读性好C.程序中要有必要的注释D.输入数据前要有提示信息9.设有定义:char p=1,2,3,*q=p;,以下不能计算出一个 char 型数据所占字节数的表达式是(分数:1.00)A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p0)10.以下关于 long、int 和 short 类型数据占用内存大小的叙述中正确的是(分数:1.00)A.均占 4 个字节B.根据数据的大小来决定所占内存的

5、字节数C.由用户自己定义D.由 C 语言编译系统决定11.下列程序的运行结果为#includestdiohvoid abc(char * str)int a,b;for(a=b=0;stra!=/0;a+)if(stra!=c)strb+=stra;strb=/0;void main()char str=“abcdef“;abc(str);printf(“str=%s“,str);(分数:1.00)A.str=abdefB.str=abcdefC.str=aD.str=ab12.有以下程序#include stdiohmain()int s12=1,2,3,4,4,3,2,1,1,1,2,3,

6、c5=0,i;for(i=0;i12;i+) csi+;for(i=l;i5;i+) printf(“%d“,ci);printf(“/n“);程序的运行结果是(分数:1.00)A.1 2 3 4B.2 3 44C.4 3 3 2D.1 1 2 313.若变量已正确定义并赋值,以下符合 C 语言语法的表达式是(分数:1.00)A.a:=b+1B.a=b=c+2C.int 18.5%3D.a=a+7=c+b14.有以下程序#include stdiohmain()FILE *fp; int a10=1,2,3,i,n;fp=fopen(“d1dat“,“w“);for(i=0;i3;i+) fp

7、rintf(fp,“%d“,ai);fprintf(fp,“/n“);fclose(fp);fp=fopen(“d1.dat“,“r“);fscanf(fp,“%d“,printf(“%d/n“,m);程序的运行结果是(分数:1.00)A.0B.1 C.2D.3解析:解析 本题考查循环语句的嵌套以及条件的判断问题。在程序中,内层循环判断条件为“ji”,而 j 的初值为 3,故当 i 的值为 1 和 2 时,内层循环体都不会被执行。只有当 i 和 j 都等于3 时才会执行一次。m 的值为 55 对 3 取模,计算结果为 1。5.在 16 位 IBM-PC 机上使用 C 语言,若有如下定义stru

8、ct dataint i;char ch;double f;b;则结构变量 b 占用内存的字节数是(分数:1.00)A.1B.2C.7D.11 解析:解析 结构体变量所占用内存的字节数是其所有成员所占用内存字节数之和。本题中整型变量 i所占用的内存是 2 字节,字符型变量 ch 所占用的内存是 1 字节,双精度型变量 f 所占用的内存是 8 字节,三者相加即可。6.假定当前盘符下有两个如下文本文件:文件名 a1.txt a2.txt内容 123# 321#则下面程序段执行后的结果为#include “stdio.h“void fc(FILE *p)char c;while(c=fgetc(p)

9、!=#)putchar(c);main()FILE *fp;fp=fopen(“a1.txt“,“r“);fc(fp);fclose(fp);fp=fopen(“a2.txt“,“r“);fc(fp);fclose(fp);putchar(/n);(分数:1.00)A.123321 B.123C.321D.以上答案都不正确解析:解析 本题的功能是顺序的读两个文本文件;依次输出。当打开文件时出现错误,fopen 函数将返回 NULL。7.以下选项中不属于字符常量的是(分数:1.00)A.CB.“C“ C./xCCD./072解析:解析 在 C 语言程序中,用单引号把一个字符或反斜线后跟一个特定的

10、字符括起来表示一个字符常量。选项 A) 、C) 和 D) 为正确的字符常量,而选项 B) 是用双引号括起来的字符,表示一个字符串常量。8.下列叙述中,不符合良好程序设计风格要求的是(分数:1.00)A.程序的效率第一,清晰第二 B.程序的可读性好C.程序中要有必要的注释D.输入数据前要有提示信息解析:解析 当今主导的程序设计风格是“清晰第一,效率第二”的观点。结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,而在实际应用中,人们更注重程序的可理解性。9.设有定义:char p=1,2,3,*q=p;,以下不能计算出一个 char 型数据所占字节数的表达式是(分数:1.00)A.size

11、of(p) B.sizeof(char)C.sizeof(*q)D.sizeof(p0)解析:解析 在本题中,p 和 q 同为指向字符类型数据的指针。*q 和 p0同为字符型数据。选项 B) 、C) 和 D) 都符合题目的要求;选项 A) 计算得出的是指针类型数据所占的内存字节数。10.以下关于 long、int 和 short 类型数据占用内存大小的叙述中正确的是(分数:1.00)A.均占 4 个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由 C 语言编译系统决定 解析:解析 在 ANSI 标准中,long、int 和 short 分别占用 4、2 和 2 个字节。但实

12、际上对于某些 C 编译系统,int 和 short 都占用 4 个字节,所以说各种类型数据占用内存大小是由选择何种 C 编译系统决定的。11.下列程序的运行结果为#includestdiohvoid abc(char * str)int a,b;for(a=b=0;stra!=/0;a+)if(stra!=c)strb+=stra;strb=/0;void main()char str=“abcdef“;abc(str);printf(“str=%s“,str);(分数:1.00)A.str=abdef B.str=abcdefC.str=aD.str=ab解析:解析 本题考查了用字符指针引用

13、字符数组中的字符及对字符的操作。函数 abc()的 for 语句执行过程是:从字符指针 str 所指向的字符数组的第一个元素开始,逐一判断字符是否为“c”,若不是就执行一次数组元素的赋值过程,若字符为“c”就不执行。12.有以下程序#include stdiohmain()int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i;for(i=0;i12;i+) csi+;for(i=l;i5;i+) printf(“%d“,ci);printf(“/n“);程序的运行结果是(分数:1.00)A.1 2 3 4B.2 3 44C.4 3 3 2 D.1 1 2 3解析:解析

14、在 for(i0;i12;i+)csi+中,数组元素 si的值作为数组 c 的下标,当退出循环时,数组 c 的 4 个元素的值分别为 4、3、3、2。13.若变量已正确定义并赋值,以下符合 C 语言语法的表达式是(分数:1.00)A.a:=b+1B.a=b=c+2 C.int 18.5%3D.a=a+7=c+b解析:解析 选项 A) 中包含一个不合法的运算符“:”;选项 C) 应改为(int)18.5%3;选项 D) 可理解为两个表达式:a+7c+b 和 aa+7,其中第一个是错的,因为 C 语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。因此,正确答案是选项 B) ,它实际上相当于

15、 a(bc+2),进而可分解为两个表达式:bc+2 和 ab。14.有以下程序#include stdiohmain()FILE *fp; int a10=1,2,3,i,n;fp=fopen(“d1dat“,“w“);for(i=0;i3;i+) fprintf(fp,“%d“,ai);fprintf(fp,“/n“);fclose(fp);fp=fopen(“d1.dat“,“r“);fscanf(fp,“%d“,&n);fclose(fp);printf(“%d/n“,n);程序的运行结果是(分数:1.00)A.12300B.123 C.1D.321解析:解析 在函数中首先把整型数组 a

16、10中的每个元素写入文件 d1.dat 中,然后再次打开这个文件,把文件 d1 dat 中的内容读入到整型变量 n 中,最后输出变量 n 的值。15.数据处理的最小单位是(分数:1.00)A.数据B.数据元素C.数据项 D.数据结构解析:解析 数据处理的最小单位是数据项;由若干数据项组成数据元素;数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。16.在深度为 5 的满二叉树中,叶子结点的个数为(分数:1.00)A.32B.31C.16 D.15解析:解析 满二叉树是指除最后一层外,每一层上的所有结点都有两个叶子结点。在满二叉树中,层上的结点数都达到

17、最大值,即在满二叉树的第 k 层上有 2k-1个结点且深度为 m 的满二叉树有 2m-1 个结点。17.下面说明不正确的是(分数:1.00)A.char a10=“china“;B.char a10,*p=a;p=“china“C.char*a;a=“china“;D.char a10,*P;p=a=“china“ 解析:解析 C 语言中操作一个字符串常量的方法有:将字符串常量存放在一个字符数组之中;用字符指针指向字符串,然后通过字符指针来访问字符串存储区域。当字符串常量在表达式中出现时,根据数组的类型转换规则,将其转换成字符指针。本题 D) 项中错误的关键是对数组初始化时,可以在变量定义时整

18、体赋初值,但不能在赋值语句中整体赋值。18.可在 C 程序中用作用户标识符的一组标识符是(分数:1.00)A.and2007 B.Datey-m-dC.HiDr.TomD.caseBigl解析:解析 在 C 语言中,合法标识符的命名规则是:标识符可以由字母、数字和下画线 3 种字符组成,且第一个字符必须为字母或下画线。C 语言的标识符可以分为关键字、预定义标识符和用户标识符。选项B) 和 C) 中的横线以及点都不合法,选项 D) 中的 case 为 C 语言关键字。19.若程序执行时的输入数据是“2473”,则下述程序的输出结果是#includestdio.hvoid main()int cs

19、;while(cs=getchar()!=;/n)switch(cs-2)case 0case 1:putchar(cs+4);case 2:putchar(cs+4);break;case 3:putchar(cs+3);default:putchar(cs+2),(分数:1.00)A.668977 B.668966C.6677877D.6688766解析:解析 本题主要考查 switch 语句的使用方法。switch 语句的执行过程为:进入 switch 结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的 case,以此作为入口,执行 switch结构中后面的各语句,直到

20、遇到 break 语句,则跳出 switch 语句,如果各 case 都不匹配时,则执行default 后面的语句。20.有如下程序int a10=1,2,3,4,5,6,7,8,9,10;int *p=&a3,b;b=p5;则 b 的值是(分数:1.00)A.5B.6C.9 D.8解析:解析 p&a3将指针指向数组 a 的第 4 个元素,p5指向数组 a 的第 9 个元素,而 a89,所以 b9。21.一个关系中属性个数为 1 时,称此关系为(分数:1.00)A.对应关系B.单一关系C.一元关系 D.二元关系解析:解析 在关系模型数据库中,基本结构是二维表,这种二维表称为关系。关系的列称为属

21、性,一个具有 N 个属性的关系称为 N 元关系。22.若要求从键盘读入含有空格字符的字符串,应使用函数(分数:1.00)A.getc()B.gets() C.getehar()D.scanf()解析:解析 scanf()语句用“空格”区别不同的字符串;getc()与 getchar()语句不能用于字符串的读入。23.以下不属于对象的基本特点的是(分数:1.00)A.分类性B.多态性C.继承性 D.封装性解析:解析 对象的基本特点:标志唯一性、分类性、多态性、封装性和模块独立性。24.软件是指(分数:1.00)A.程序B.程序和文档C.算法加数据结构D.程序、数据与相关文档的完整集合 解析:解析

22、 软件是程序、数据与相关文档的集合,相对于计算机硬件而言,软件是逻辑产品而不是物理产品,是计算机的无形部分。25.以下程序的输出结果是int f()static int i=0;int s=1s+=i;i+;return s;main()int i,a=0;for(i=0;i5;i+)a+=f();printf(“%d/n“,(分数:1.00)A.;A) 20B) 24C) 25D)解析:解析 函数的静态局部变量在编译时就赋初值,即只赋初值一次,在程序运行时它已有初值;以后每次调用函数时不再重新赋值,而只是保留上次函数调用结束时的值。26.当用户要求输入的字符串中含有空格时,应使用的输入函数是

23、(分数:1.00)A.scanf()B.getchar()C.gets() D.Setc()解析:解析 本题综合考查了输入函数的使用。scanf 函数会将空格视为分隔符,getchar 函数只能输入单个字符, getc 函数是文件操作函数,显然都不符合题意。通过 gets 函数输入字符串时,输入的空格被认为是字符串的一个字符。27.线性表的顺序存储结构和线性表的链式存储结构分别是(分数:1.00)A.顺序存取的存储结构、顺序存取的存储结构B.随机存取的存储结构、顺序存取的存储结构 C.随机存取的存储结构、随机存取的存储结构D.任意存取的存储结构、任意存取的存储结构解析:解析 顺序存储结构中,数

24、据元素存放在一组地址连续的存储单元中,每个数据元素地址可通过公式 LOC (ai)LOC(a1)+(i-1)L 计算得到,从而实现了随机存取。对于链式存储结构,要对某结点进行存取,都得从链的头指针指向的结点开始,这是一种顺序存取的存储结构。28.以下 4 个选项中,不能看成一条语句的是(分数:1.00)A.;B.a=5,b=25,c=3.6;C.if(a5);D.if(b!=5)x=2;y=6; 解析:解析 选项 D) 为两条语句。29.若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(ab)a=b; c=a;if(c! =(分数:1.00)A.c=b;printf(“%解析

25、:解析 两个 if 语句的判断条件都不满足,程序只执行了 ca 这条语句,所以变量 c 的值等于3,变量 b 的值没有变化,程序输出的结果为 3,5,3。30.有以下程序#include stdiohmain()int a=1,2,3,4,y,*p=&a3;-p; y=*p;printf(“y=%d/n“,y);程序的运行结果是(分数:1.00)A.y=0B.y=1C.y=2D.y=3 解析:解析 在程序中指针变量 p 初始指向 a3,执行 p 减 1 后,p 指向 a2,语句 y*p 的作用是把a2的值赋给变量 y,所以输出为 y3。31.为了提高测试的效率,应该(分数:1.00)A.随机选

26、取测试数据B.取一切可能的输入数据作为测试数据C.在完成编码以后制定软件的测试计划D.集中对付那些错误群集的程序 解析:解析 测试的目的是发现软件中的错误;经验表明,程序中存在错误的概率与该程序中已发现的错误成正比。这一现象说明,为了提高测试效率,测试人员应该集中对待那些错误群集的程序。32.若变量已正确定义,有以下程序段i=0;do printf(“%d,“,i);while(i+);printf(“%d/n“,i);其输出结果是(分数:1.00)A.0,0B.0,1 C.1,1D.程序进入无限循环解析:解析 对于 dowhile 循环,程序先执行一次循环体,再判断循环是否继续。本题先输出一

27、次 i的值“0,”,再接着判断表达式 i+的值,其值为 0,所以循环结束。此时变量 i 的值经过自加已经变为1,程序再次输出 i 的值“1”。33.阅读下列程序,则运行结果为#include “stdio.h“fun()staic int x=5;x+;return x;main()int i,x;for(i=0;i3;i+)x=fun();printf(“%d/n“,x);(分数:1.00)A.5B.6C.7D.8 解析:解析 在整个程序运行期间,静态局部变量在内存的静态存储区中占据着永久的存储单元,即使退出函数以后,下次再进入该函数时,静态局部变量仍使用原来的存储单元,静态局部变量的初值是

28、在编译的时候赋予的,在程序执行期间不再赋予初值。本题由于连续三次调用函数 fun(),三次对静态变量 x进行操作,x 的值应依次为 6,7,8。34.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是(分数:1.00)A.函数的实参和其对应的形参共占同一存储单元B.形参只是形式上的存在,不占用具体存储单元C.同名的实参和形参占同一存储单元D.函数的形参和实参分别占用不同的存储单元 解析:解析 在内存中,实参单元与形参单元是不同的单元。在 C 语言中,仅在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。35.已有定

29、义:char c;,程序前面已在命令行中包含 ctypeh 文件,不能用于判断 c 中的字符是否为大写字母的表达式是(分数:1.00)A.isupper(c)B.A=c=Z C.A=c&c=ZD.c=(z-32)&(a-32)=c解析:解析 在本题中,选项 B) 实际是先计算关系表达式“Ac”的值是 0 还是 1,再比较该值与字符“Z”之间的大小关系,显然不能实现题目所要求的功能,而选项 A) 、C) 、D) 都可以。36.现有如下程序段#include “stdio.h“main()int k30=12,324,45,6,768,98,21,34,453,456;int count=0,i=

30、0;while(Li)if(ki%2=0|ki%5=0)count+;i+; printf(“%d,%d/n“,count,i);则程序段的输出结果为(分数:1.00)A.7,8B.8,8C.7,10D.8,10 解析:解析 在 C 语言中,定义一维数组的语句一般形式如下:类型名 数组名常量表达式;一维数组的引用形式为:数组名下标表达式。count 表示能被 2 整除或被 5 整除的个数,i 则计算有多少个数组元素。37.若有定义:char *st=“how are you“;,下列程序段中正确的是(分数:1.00)A.chara11;*p;strcpy(p=a+1,&st4); B.char

31、a11;strcpy(+a,st);C.chara11;strcpy(a,st);D.chara,*p;strcpy(p=&a1,st+2);解析:解析 本题综合考查字符数组的赋值和 strcpy 函数的用法。C 语言不允许用赋值表达式对字符数组赋值,如下面的语句就是非法的:strl“China”,如果想把“China”这 5 个字符放到数组 strl 中,除了逐个输入外,还能使用 strcpy 函数,该函数的功能是将一个字符串复制到一字符数组中。例如:strcpy(strl,“China”)或 strcpy(str1,str2);注意,不能企图用以下语句来实行赋值(将 str2 的值传给 s

32、tr1):str1str2;不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。strcpy 函数的结构是:strcpy(字符数组 1,字符串 2)其中,需要注意的是,字符数组 1 的长度不应小于字符串 2 的长度,“字符数组 1”必须写成数组名形式,如(str1),“字符串 2”可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。38.下列有关数据库的描述,正确的是(分数:1.00)A.数据库是一个 DBF 文件B.数据库是一个关系C.数据库是一个结构化的数据集合 D.数据库是一组文件解析:解析 数据库(DataBase,简称 DB) 是

33、数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,可被各个应用程序所共享。数据库中的数据具有“集成”、“共享”的特点。39.下面程序的输出结果是#includestdioh#includestringhmain()char*p1=“abc“,*p2=“ABC“,str50=“xyz“;strcpy(str+2,streat(p1,p2);printf(“%s/n“,str);(分数:1.00)A.xyzabcABCB.zabcABCC.xyabcABC D.yzabcABC解析:解析 本题考查的重点是拷贝字符串使用 strcpy()函数,该函数的调用方式是:str

34、cpy(字符数组,字符串),其中“字符串”可以是字符串常量,也可以是字符数组。函数的功能是:将“字符串”完整地复制到“字符数组”中,字符数组中原有的内容被覆盖。使用该函数时注意:字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,连同结束标志“/0”一起复制;不能用赋值运算符“”将一个字符串直接赋值给一个字符数组,只能用 strcpy()函数处理。另外,本题还考查连接字符串的 strcat()函数,其调用方式是:strcat(字符数组,字符串)。功能是把“字符串”连接到“字符数组”中的字符串尾端,并存储于“字符数组”中。“字符数组”中原来的结束标志,被“字符串”的第一个字符覆盖,而“字

35、符串”在操作中未被修改。使用该函数时注意:由于没有边界检查,编程者要注意保证“字符数组”定义得足够大,以便容纳连接后的目标字符串;否则,会因长度不够而产生问题;连接前两个字符串都有结束标志“/0”,连接后“字符数组”中存储的字符串的结束标志“/0”被舍弃,只在目标串的最后保留一个“/0”。40.下列程序是用来判断数组中特定元素的位置所在的。#includeconic.h#includestdio.hint fun(int *s,int t,int *k)int i;*k=0;for(i=0;it;i+)if(s*ksi)*k=i;returns*k;main()int a10=876,675,

36、896,101,301,401,980,431,451,777,k;fun(a,10,&k);printf(“%d,%d/n“,k,ak);如果输入如下整数:876 675 896 101 301 401 980431 451 777则输出结果为(分数:1.00)A.7,431B.6C.980D.6,980 解析:解析 本题中直接使用指针变量 k,但在使用时要注意对 k 的指针运算。此外,一开始应知道*k的值为数组中的某一下标值,即。k0,本函数的功能是找出数组中的最大元素的位置及最大元素的值。二、填空题(总题数:13,分数:26.00)41.需求分析的最终结果是产生 【1】 。(分数:2.0

37、0)填空项 1:_ (正确答案:需求规格说明书)解析:解析 软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。需求规格说明书包括正确性、无歧义性、完整性、可验证性、一致性、可理解性、可修改性和可追踪性等。42.软件维护活动包括以下几类:改正性维护、适应性维护、 【2】 维护和预防性维护。(分数:2.00)填空项 1:_ (正确答案:完善性)解析:解析 软件维护活动包括以下几类:改正性维护、适应性维护、完善性维护和预防性维护。改正性维护是指在软件交付使用后,为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程;适应性维护是指为了使

38、软件适应变化,而去修改软件的过程;完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再次开发软件,以扩充软件功能、增强软件性能、改进加丁效率、提高软件的可维护性;预防性维护是为了提高软件的可维护性、可靠性等,为以后的进一步改进软件打下良好基础。43.数据结构分为逻辑结构与存储结构,线性链表属于 【3】 。(分数:2.00)填空项 1:_ (正确答案:存储结构)解析:解析 数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构;数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。4

39、4.某二叉树中度为 2 的结点有 n 个,则该二叉树中有 【4】 个叶子结点。(分数:2.00)填空项 1:_ (正确答案:n+1)解析:解析 在任意一棵二叉树中,度为 0 的结点(即叶子结点)总是比度为 0 的结点多一个。45. 【5】 是数据库设计的核心。(分数:2.00)填空项 1:_ (正确答案:数据模型)解析:解析 数据模型是对客观事物及联系的数据描述,它反映了实体内部及实体与实体之间的联系。因此,数据模型是数据库设计的核心。46.阅读下面程序,则执行后的输出结果是 【6】 。#include “stdio.h“main()int x,y,z;x=1;y=2;z=3;if(xy)if

40、(xz)printf(“%d“,x);else printf(“%d“,y);printf(“%d/n“,z);(分数:2.00)填空项 1:_ (正确答案:3)解析:解析 C 语言的语法规定:else 子句总是与前面最近的不带 else 的 if 相结合。因为 x 不大于y,所以执行 printf(“%d/n“, z);语句。47.设变量已正确定义为整型,则表达式 n=i=2,+i,i+的值为 【7】 。(分数:2.00)填空项 1:_ (正确答案:3)解析:解析 本题考查的是 C 语言逗号表达式的相关知识。程序在计算逗号表达式时,从左到右计算由逗号分隔各表达式的值,整个逗号表达式的值等于其

41、中最后一个表达式的值。本题中,首先 i 被赋值为2,再自加 1,最后 i+的值计算为 3。48.有以下程序段,且变量已正确定义和赋值for(s=1.0,k=1;k=n;k+)s=s+1.0/(k*(k+1);printf(“s=%f/n/n“,s);请填空,使下面程序段的功能与之完全相同s=1.0;k=1;while( 【8】 )s=s+1.0/(k*(k+1); 【9】 ;printf(“s%f/n/n“,s);(分数:2.00)填空项 1:_ (正确答案:8 kn9 k+)解析:解析 本题要求将一个 for 循环改成 while 循环。首先要保证循环条件相同,在 for 循环中,每次执行循

42、环之后,循环控制变量 k 都会加 1,而 while 循环则没有,故需在循环体中增加改变 k 数值的语句“k+;”。49.以下函数 rotate 的功能是:将 a 所指 N 行 N 列的二维数组中的最后一行放到 b 所指二维数组的第 0 列中,把 a 所指二维数组中的第 0 行放到 b 所指二维数组的最后一列中,b 所指二维数组中其他数据不变。#define N 4void rotade (int aN,int bN)int i,j;for(i=0;iN;i+)biN-1 【10】 ; 【11】 aN-1i;(分数:2.00)填空项 1:_ (正确答案:10 a0i11 bi0)解析:解析 b

43、iN-1a0i实现把 a 所指二维数组中的第 0 行放到 b 所指二维数组的最后一列中,bi0 aN-1i实现将 a 所指 N 行 N 列的二维数组中的最后一行放到 b 所指二维数组中的第 0 列。50.以下程序的输出结果是 【12】 。#include stdiohmain()int i;for(i=a;if;i+,i+)printf(“%c“,i-a+A);printf(“/n“);(分数:2.00)填空项 1:_ (正确答案:ACE)解析:解析 在本题中,for 循环体每执行完一次,变量 i 的值自加两次。i 的初值为“a”,执行一次循环后变为“c”,之后再变成“e”,当其变为“g”时,

44、循环条件若不满足,循环终止,故本题共输出3 个字符。表达式“i-a+A”即表示输出 i 对应的大写字母,结果为 ACE。51.下面程序的运行结果是 【13】 。#includestdioh#define SIZE 12main()char sSIZE;int i;for(i=0;iSIZE;i+) si=A+i+321;sub(s,7,SIZE-1);for(i=0;iSIZE;i+) printf(“%c“,si);printf(“/n“);sub(char *a,int t1,int t2)char ch;while(t1t1)ch=*(a+t1);*(a+t1)*(a+t2);*(a+t

45、2)ch;t1+;t2-; (分数:2.00)填空项 1:_ (正确答案:a b c d e f g l k j i h)解析:解析 本题主要考查了字符变量可参与的运算。因为字符在计算机中是以 ASCII 码的形式存放的,所以字符变量可看作整型变量来处理,如参与算术运算等,某字符的大写字母的 ASCII 码值比它对应的小写字母 ASCII 码值小 32。52.mystrlen 函数的功能是计算 str 所指字符串的长度,并作为函数值返回。请填空。int mystrlen(char *str)int i;for(i=0; 【14】 !/0;i+);return(i);(分数:2.00)填空项 1

46、:_ (正确答案:*(str+i) 或 stri)解析:解析 str 是指针变量,它指向字符型数据,在循环过程中,可以用。(str+i)来访问字符串中的第 i 个元素,判断是否为结束标志,如果不是,ii+1,继续取下一个元素进行判断,直到*(str+i)的值为/0为止,也可以用下标的方式引用字符,如*(str +i)相当于 stri。53.设有定义“struct int a;float b;char c;abc,*p_abc=&abc;”,则对结构体成员 a 的引用方法可以是 abc.a 和 p_abc 【15】 a。(分数:2.00)填空项 1:_ (正确答案:-)解析:解析 若结构体变量 abc 有成员 a,并有指针 p_abc 指向结构变量 abc,则引用变量 abc 成员 a 的标记形式有 abc.a 和 p_abc-a。

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1