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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、二级 C 语言-10-1 及答案解析(总分:74.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:43.00)1.下列语句中,不正确的是 ( ) A.staic char a“China“; B.static char a“Cina“; C.print(“%s”,a0); D.scanf(“%s”,a); (分数:1.00)A.B.C.D.2.以下选项中,能用作数据常量的是 A. o115 B. 0118 C. 1.5e1.5 D. 115L(分数:1.00)A.B.C.D.3.下列选项中不能作为 C 语言合法常量的是U /U。 A.cd B.0.1e+6 C.“/a“ D.

2、/011(分数:1.00)A.B.C.D.4.若有下列说明和语句,已知 int 型数据占 2 个字节,则下列语句的输出结果是U /U。struct st char a15;int b;double c;printf(“%d“,sizeof (struct st); A. 15 B. 8 C. 25 D. 2(分数:1.00)A.B.C.D.5.下列程序的输出结果是_。main() unionint a2;long k;char c4;un,*sp=a=0x3; b=a|0x8; c=b1;printf(“%d%d/n“,b,C);程序运行后的输出结果是( )。 A. -11 12 B. -6

3、-13 C. 12 24 D. 11 22(分数:1.00)A.B.C.D.8.有以下程序main ( ) char str =“xyz“, *ps=str;while (*ps) ps+:for (ps- ;ps-str=0 ;ps-) puts(ps);执行后输出结果是 A. yz xyz B. z yz C. z yz xyz D. x xy xyz(分数:1.00)A.B.C.D.9.以下选项中合法的用户标识符是_。 A. long B. 2Test C. 3Dmax D. A.dat(分数:1.00)A.B.C.D.10.从未排序序列中依次取出元素与已排序序列中的元素作比较,将取出的

4、元素放入已排序序列中的正确位置上,此方法称为_。 A. 归并排序 B. 选择排序 C. 交换排序 D. 插入排序(分数:2.00)A.B.C.D.11.下面不属于软件设计原则的是 A. 抽象 B. 模块化 C. 自底向上 D. 信息隐藏(分数:1.00)A.B.C.D.12.有以下程序#include stdio.h#include string.hvoid fun(char s10,int n) char t; int i j;for (i=0; in-1; i+)for 0-i+l; jn; j+)/*比较字符串的首字符大小,并交换字符串的首字符*/if(si0 sj0) t = si0;

5、 si0 = sj0; sj0 = t;main() char ss510= “bcc“, “bbcc“, “xy“, “aaaacc“, “aabcc“ ;fun(ss, 5); printf(“%s,%s/n“, ss0,ss4);程序的运行结果是 A. xy, aaaacc B. aaaacc,xy C. xcc,aabcc D. acc,xabcc(分数:1.00)A.B.C.D.13.下列叙述中正确的是U /U。 A. 软件就是程序清单 B. 软件就是存放在计算机中的文件 C. 软件应包括程序清单以及运行结果 D. 软件包括程序、数据和文档(分数:1.00)A.B.C.D.14.有如

6、下程序main() char ch25=“6937“,“8254“,*p2;int i,j,s=0;for(i=0;i2;+)pi=chi;for(i=0;i2;i+)for(j=0;pij/0;j+=2)s=10*s+pij-0;printf(“%d/n“,s);该程序的输出结果是 A. 69825 B. 63825 C. 6385 D. 693825(分数:2.00)A.B.C.D.15.设有以下定义:int a=0; double b=1.25; char c=A;#define d 2则下面语句中错误的是( )。 A. a+; B. b+; C. c+; D. d+;(分数:1.00)

7、A.B.C.D.16.下列程序的输出结果是_。#includestdio.hmain()unionint k;char i2;*s,a;s=elsereturn y;main() int a=7,b=8,*p,*q,*r;p= q=r=f(p, q);printf(“%d, %d, %d/n“,*p,*q,*r);执行后输出结果是U /U。 A. 7,8,8 B. 7,8,7 C. 8,7,7 D. 8,7,8(分数:1.00)A.B.C.D.18.若有定义:“double a=22;int i=0,k=18;”,则不符合 C 语言规定的赋值语句是U /U。 A.a=a+,i+; B.i=(a

8、+k)=(i+k); C.i=a%11; D.i=!a;(分数:1.00)A.B.C.D.19.软件(程序)调试的目标是 A. 诊断和改正程序中的错误 B. 尽可能多地发现程序中的错误 C. 发现并改正程序中的所有错误 D. 确定程序中错误的性质(分数:2.00)A.B.C.D.20.现有如下程序段#include“stdio.h“#include“string.h“main() char a=“acfijk“; /*这里是有序的字符序列*/char b=“befijklqswz“; /*这里是有序的字符序列*/char c80,*p;int i=0,j=0,k=0;while(ai!=/0

9、j=19; j+=4) m+;printf(“%d/n“,m); A. 12 B. 15 C. 20 D. 25(分数:1.00)A.B.C.D.31.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下列属于应用软件的是U /U。 A.编译程序 B.操作系统 C.教务管理系统 D.汇编程序(分数:1.00)A.B.C.D.32.有以下程序:main() int a=1,b;for(b=1:b=10;b+) if(a=8)break;if(a%2=1)a+=5;continue;a-=3:printf(“%d/n“,b);程序运行后的输出结果是_。 A. 3 B. 4 C. 5

10、D. 6(分数:2.00)A.B.C.D.33.以下程序的输出结果是_。int f() static int i=0;int s=1;s+=i;i+;return s;main() int i,a=0;for(i=0;i5;i+)a+=f():printf(“%d/n“,a); A. 20 B. 24 C. 25 D. 15(分数:1.00)A.B.C.D.34.若整型变量 a、b、c、d 中的值依次为 1、4、3、2。则条件表达式 ab?a:cd?c:d 的值是_。 A. 1 B. 2 C. 3 D. 4(分数:1.00)A.B.C.D.35.有以下程序#includestdio.hstru

11、ct Sint a,b;data2=10,100,20,200;main() struct S p=data1;printf(“%d/n“,+(p.a);程序运行后的输出结果是_。 A.21 B.11 C.20 D.10(分数:2.00)A.B.C.D.二、B填空题/B(总题数:15,分数:31.00)36.以下程序的输出结果是U U /U /U。 #include stdio.h #define M 5 #define N M+M main0 int k; k = NN*5; printf(“%d/n“,k); 填空项 1:_37.在一个容量为 32 的循环队列中,若头指针 front=3,

12、尾指针 rear=2,则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_38.下列程序的运行结果是U U /U /U。 #includestdio.h main int k=4,m=3,p; p=func(k,m); printf(“%d“,p); p=func(k,m); printf(“%d/n“,p); func(a,b) int a,b; static int m=0,i=2; i+=m+1; m=i+a+b; return(m);(分数:1.00)填空项 1:_39.若有以下程序 main() int p,a=5; if(p=a!=0) printf(“%d/n“,p)

13、; else pfintf(“%d/n“,p+2); 执行后输出结果是U U /U /U。(分数:1.00)填空项 1:_40.诊断和改正程序中错误的工作通常称为 1。(分数:2.00)填空项 1:_41.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、 1 和选择排序。(分数:2.00)填空项 1:_42.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为 1。(分数:2.00)填空项 1:_43.以下程序的输出结果是_。 #include stdio.h unsigned fun6(unslgned

14、num) unsigned k=1; dok * =mum%10;num/=10; while (num); return k; main() unsigned n=26; printf(“%d/n“,fan6(n); (分数:2.00)填空项 1:_44.设有下列程序: #includestdio.h #includestring.h main() int i; char s10,t10; gets(t); for(i=0;i2;i+) gets(s); if(strcmp(t,s)0) strcpy(t,s); printf(“%s/n“,t); 程序运行后,从键盘上输入(CR代表回车符)

15、:CDEFCRBADEFCRQTHRGCR,则程序的输出结果是_。(分数:2.00)填空项 1:_45.以下程序运行后的输出结果是_。 #includestdio.h main() int x=10, y=20, t=0; if(x=y)t=x; x=y; y=t; printf(“%d%d/n“, x, y); (分数:2.00)填空项 1:_46.下面程序的运行结果是_。 typedef union student char name10; long sno; char sex; float score4; STU; main() STU a5; printf(“%d/n“,sizeof(

16、A) ); (分数:4.00)填空项 1:_47.写出下列程序的输出结果_。 main() int n=0; while(n+= 1); printf(“%d,“,n); printf(“%d“,n+); (分数:2.00)填空项 1:_48.设 Y 是 int 型变量,请写出判断 Y 为奇数的关系表达式U U /U /U。(分数:2.00)填空项 1:_49.以下程序统计从终端输入的字符中大写字母的个数,num0中统计字母 A 的个数,num1中统计字母B 的个数,其他依此类推。用#号结束输入,请填空。 #includestdio.h #includectype.h main() int n

17、um26=0,i;char c; while(_)!=#) if(isupper(c)numc-A=_; for(i 一 0;i填空项 1:_50.软件的需求分析阶段的工作,可以概括为四个方面:U U /U /U、需求分析、编写需求规格说明书和需求评审。(分数:2.00)填空项 1:_二级 C 语言-10-1 答案解析(总分:74.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:43.00)1.下列语句中,不正确的是 ( ) A.staic char a“China“; B.static char a“Cina“; C.print(“%s”,a0); D.scanf(“%s”

18、,a); (分数:1.00)A.B.C. D.解析:2.以下选项中,能用作数据常量的是 A. o115 B. 0118 C. 1.5e1.5 D. 115L(分数:1.00)A.B.C.D. 解析:解析 对于选项 A,“o”不符合语法要求;对于选项 B,以 0 开头代表八进制整型常量,但其后面的数字中又出现了非八进制数字 8,出错;对于选项 C,用指数形式表示实型常量,e 后面的指数部分必须为整型数,出错;对于选项 D,整数后面加字母 L 是长整型常量的表示形式。3.下列选项中不能作为 C 语言合法常量的是U /U。 A.cd B.0.1e+6 C.“/a“ D./011(分数:1.00)A.

19、 B.C.D.解析:解析 所谓常量是在程序运行过程中,其值不能被改变的量。包括整型数量、实型常量、字符常量和字符串常量等类型。选项 B 中 0.1e+6 是用指数形式表示的实型常量。C 语言的语法规定,字母 e 之前必须要有数字,后面的指数必须为整数,并且在字母 e 前后以及数字之间不得插入空格,选项 C 中用双引号括起来表示字符串/a。选项 D 中011表示用单引号括起来的转义字符八制进数 011。选项 A 中在用单引号表示的字符常量中,只能包含一介字符。4.若有下列说明和语句,已知 int 型数据占 2 个字节,则下列语句的输出结果是U /U。struct st char a15;int

20、b;double c;printf(“%d“,sizeof (struct st); A. 15 B. 8 C. 25 D. 2(分数:1.00)A.B.C. D.解析:解析 本题主要考查结构体的内存使用:对结构体而言,结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立。题中 int b 占 2 个字节,char a15占 15 个字节,double c 占 8 个字节,所以共 25 个字节。5.下列程序的输出结果是_。main() unionint a2;long k;char c4;un,*sp=a=0x3; b

21、=a|0x8; c=b1;printf(“%d%d/n“,b,C);程序运行后的输出结果是( )。 A. -11 12 B. -6 -13 C. 12 24 D. 11 22(分数:1.00)A.B.C.D. 解析:解析 将 a 的值用二进制表示:00000011。a 与 Ox8(二进制表示为 00001000)按位或,得到结果00001011 赋值给 b,b 的值为 11。再将 b 左移一位得到:00010110,赋值给 c,c 的值为 22。所以最后输出的 b,c 的值为 11,22。8.有以下程序main ( ) char str =“xyz“, *ps=str;while (*ps)

22、ps+:for (ps- ;ps-str=0 ;ps-) puts(ps);执行后输出结果是 A. yz xyz B. z yz C. z yz xyz D. x xy xyz(分数:1.00)A.B.C. D.解析:解析 本题考核的知识点是字符型指针变量的使用执行 while 循环,使指针变量 Ps 指向字符串“xyz”的字符串结束标志,然后执行 for 循环,先执行“ps-”,使 ps 指向字符“z”,故 puts(ps)输出结果为“z”;再次执行“ps-”,使 ps 指向字符“y”,故 puts(ps)输出结果为“y2”;再次执行“ps-”,使 Ps 指向字符xt,故 puts(ps)输

23、出结果为“xyz”, 退出循环所以,C 选项为所选。9.以下选项中合法的用户标识符是_。 A. long B. 2Test C. 3Dmax D. A.dat(分数:1.00)A.B. C.D.解析:10.从未排序序列中依次取出元素与已排序序列中的元素作比较,将取出的元素放入已排序序列中的正确位置上,此方法称为_。 A. 归并排序 B. 选择排序 C. 交换排序 D. 插入排序(分数:2.00)A.B.C.D. 解析:11.下面不属于软件设计原则的是 A. 抽象 B. 模块化 C. 自底向上 D. 信息隐藏(分数:1.00)A.B.C. D.解析:解析 软件设计的原则包括:抽象、模块化,信息隐

24、蔽和模块独立性。所以自底向上不是软件设计原则。答案为 C。12.有以下程序#include stdio.h#include string.hvoid fun(char s10,int n) char t; int i j;for (i=0; in-1; i+)for 0-i+l; jn; j+)/*比较字符串的首字符大小,并交换字符串的首字符*/if(si0 sj0) t = si0; si0 = sj0; sj0 = t;main() char ss510= “bcc“, “bbcc“, “xy“, “aaaacc“, “aabcc“ ;fun(ss, 5); printf(“%s,%s/n

25、“, ss0,ss4);程序的运行结果是 A. xy, aaaacc B. aaaacc,xy C. xcc,aabcc D. acc,xabcc(分数:1.00)A.B.C.D. 解析:解析 本题考查的知识点是:for 循环的简单应用,选择排序算法。在函数 fun()中有一个两层嵌套的 for 循环,外循环变量 i 从 0 递增到 n-2,内循环变量 i 从 i+1 循环递增到 n-1,这是选择排序算法的标准结构。循环体中因为逆序条件为“si0 sj0”,所以实现的是升序排序。由此可见,fun()函数实现的功能是对一个二维字符数组前 n 行的首字符进行升序排序。主函数中定义的二维数组初始化为

26、“bcc“,”bbcc“, “xy“,“aaaacc“,“aabcc“,通过 fun()函数的排序后,结果将为acc“,“abcc“,“by“, “baaacc“,“xabcc“。故最终输出字符串 ss0和 ss4的结果为 acc,xabcc,应该选择 D。13.下列叙述中正确的是U /U。 A. 软件就是程序清单 B. 软件就是存放在计算机中的文件 C. 软件应包括程序清单以及运行结果 D. 软件包括程序、数据和文档(分数:1.00)A.B.C.D. 解析:解析 计算机软件是计算机系统中与硬件相互依存的另一部分,包括程序、数据及相关文档的完整集合。用一个等式表示,则为:软件=程序文档数据。选

27、项 A、选项 B 和选项 C 错误,正确答案是D。14.有如下程序main() char ch25=“6937“,“8254“,*p2;int i,j,s=0;for(i=0;i2;+)pi=chi;for(i=0;i2;i+)for(j=0;pij/0;j+=2)s=10*s+pij-0;printf(“%d/n“,s);该程序的输出结果是 A. 69825 B. 63825 C. 6385 D. 693825(分数:2.00)A.B.C. D.解析:解析 该题稍微难一点。主要要搞清楚以下几点:定义了一个指针数组 char*p2后,程序中第一个循环 for(i=0;i2;i+)pi=chi;

28、的作用,是使指针数组的 p0元素(它本身是一个指针)指向了二维数组 ch 的第一行字符串,并使指针数组的 p1元素指向二维数组 ch 的第二行字符串,这样,就使指针数组 p 和二维数组 ch 建立起了一种对应关系,以后对二维数组 ch 的某个元素的引用就有两种等价的形式:chij或 pij。对二维数组 ch 的初始化,使其第一行 ch0中存入了字符串“6937”,第二行 ch1中的内容为字符串“8254”。程序中第二个循环中的循环体 s=s*10+Pij-0;的功能是这样的,每执行一次,将 s 中的值乘以 10(也即,将 s 中的数值整体向左移动一位,并在空出来的个位上添一个 0),再将当前

29、pij中的字符量转换为相应的数字,然后把这个数字加到 s 的个位上。注意到内层循环的循环条件 Pij/0是指 pij中的字符只要不是字符串结束标志/0就继续循环,语句 j+=2;是使下标 j 每次增加 2,也即一个隔一个地从 Pi所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从 p0所指向的字符串“6937”中一个隔一个地取出字符,分别是6和3,然后从 p1所指向的字符串“8254”中一个隔一个地取出字符,分别是8和 5,同时经过转换和相加运算后,结果 s 中的值应该是 6385。15.设有以下定义:int a=0; double b=1.25; char c=A;#defin

30、e d 2则下面语句中错误的是( )。 A. a+; B. b+; C. c+; D. d+;(分数:1.00)A.B.C.D. 解析:解析 自加运算对象可以是整型变量也可以是实型变量,但不能是表达式和常量。本题中,#defined2 定义了 d 为常数 2,d 是符号常量不能进行自加运算。故选项 D 是个不正确的语句。16.下列程序的输出结果是_。#includestdio.hmain()unionint k;char i2;*s,a;s=elsereturn y;main() int a=7,b=8,*p,*q,*r;p= q=r=f(p, q);printf(“%d, %d, %d/n“

31、,*p,*q,*r);执行后输出结果是U /U。 A. 7,8,8 B. 7,8,7 C. 8,7,7 D. 8,7,8(分数:1.00)A.B. C.D.解析:解析 本题定义了一个返回值为指针的函数 f(),此函数有两个指针型的形参 x 和 y,该函数的功能,是返回 x 和 y 指向的变量中值较小的那个指针变量。主函数中定义了两个指针变量 p 和 q,并让它们指向了变量 a 和 b,调用函数 f(),返回指向的变量值较小的指针变量,r 的值为指针变量 p 的值(变量 a的地址),因此最后输出的*p、*q 和*r 的值是 7,8 和 7。所以,B 选项为所选。18.若有定义:“double a

32、=22;int i=0,k=18;”,则不符合 C 语言规定的赋值语句是U /U。 A.a=a+,i+; B.i=(a+k)=(i+k); C.i=a%11; D.i=!a;(分数:1.00)A.B.C. D.解析:解析 运算符%要求两个运算对象都为整型。选项 C 中 a 为 double 型,不符合要求。19.软件(程序)调试的目标是 A. 诊断和改正程序中的错误 B. 尽可能多地发现程序中的错误 C. 发现并改正程序中的所有错误 D. 确定程序中错误的性质(分数:2.00)A. B.C.D.解析:解析 软件测试与软件调试是两个不同的概念:软件测试的目的是发现错误,而软件调试的目的是发现错误

33、或导致程序失效的原因,并修改程序以修正错误,调试是测试之后的活动。20.现有如下程序段#include“stdio.h“#include“string.h“main() char a=“acfijk“; /*这里是有序的字符序列*/char b=“befijklqswz“; /*这里是有序的字符序列*/char c80,*p;int i=0,j=0,k=0;while(ai!=/0 j=19; j+=4) m+;printf(“%d/n“,m); A. 12 B. 15 C. 20 D. 25(分数:1.00)A.B.C. D.解析:31.软件按功能可以分为:应用软件、系统软件和支撑软件(或工

34、具软件)。下列属于应用软件的是U /U。 A.编译程序 B.操作系统 C.教务管理系统 D.汇编程序(分数:1.00)A.B.C. D.解析:解析 编译程序和汇编程序属于开发工具,操作系统属于系统软件,而教务管理系统属于应用软件。32.有以下程序:main() int a=1,b;for(b=1:b=10;b+) if(a=8)break;if(a%2=1)a+=5;continue;a-=3:printf(“%d/n“,b);程序运行后的输出结果是_。 A. 3 B. 4 C. 5 D. 6(分数:2.00)A.B. C.D.解析:解析 本题是考查手工模拟执行程序的能力。a 初值是 1,循环

35、开始时 b 值为 1,由于 a=8 为假,不执行 break,但 a%2=1 为真,执行 a+=5,a 值变为 6,再执行 continue 跳过不执行 a-=3 语句,而立即开始下一次循环。这时 b 值为 2,由于 a 值为 6,a=8 仍为假,不执行 break,但 a%2=1 为假,不执行复合语句“a+=5;continue;”而执行 a-=3,a 值变为 3。再开始下一次循环,这时 b 值为 3。由于 a 值为3,a=8 仍为假,不执行 break,但 a%2=1 为真,执行 a+=5,a 值变为 8,再执行 continue 跳过不执行a-=3 语句,而立即开始下一次循环。这时 b

36、值为 4。由于 a 值为 8,a=8 为真,执行 break,停止 for循环。此时输出的 b 值应为 4。33.以下程序的输出结果是_。int f() static int i=0;int s=1;s+=i;i+;return s;main() int i,a=0;for(i=0;i5;i+)a+=f():printf(“%d/n“,a); A. 20 B. 24 C. 25 D. 15(分数:1.00)A.B.C.D. 解析:34.若整型变量 a、b、c、d 中的值依次为 1、4、3、2。则条件表达式 ab?a:cd?c:d 的值是_。 A. 1 B. 2 C. 3 D. 4(分数:1.0

37、0)A. B.C.D.解析:解析 本题的考点是 C 语言的三目运算符“:”。由于 a、b、c、d 的初值依次为 1、4、3、2,对于“ab?a:cd?c:d”表达式,可以看成“(ab)?a:(cd?c:d)”,ab 为真执行紧随 ab 后的?的表达式,也就是 a。条件表达式的值为 1。35.有以下程序#includestdio.hstruct Sint a,b;data2=10,100,20,200;main() struct S p=data1;printf(“%d/n“,+(p.a);程序运行后的输出结果是_。 A.21 B.11 C.20 D.10(分数:2.00)A. B.C.D.解析

38、:解析 声明 data 是结构体型 S 的数组。初始化时 data0.a=10; data0.b=100;data1.a=20;data1.b=200。主函数中 p=data1 ; 即 p.a=data1.a;p.b=data1.b;执行语句printf(“%dn“,+(p.a); 打印输出时 p.a 先增 1 再打印。即 p.a = data1.a=20,先增 1 等于 21,因此程序运行结果是 21。二、B填空题/B(总题数:15,分数:31.00)36.以下程序的输出结果是U U /U /U。 #include stdio.h #define M 5 #define N M+M main

39、0 int k; k = NN*5; printf(“%d/n“,k); 填空项 1:_ (正确答案:55)解析:解析 本题考查的知识点是:宏替换。宏替换不是函数调用,所以不能因为 M 被定义为 5,而 N被定义为 M+M 而武断地认为 N 的值就是 5+5=10。宏替换就是简单的字符串替换,以本题为例;因为 N 被定义为 M+M,所以 k=N*N*5;语句展开后为 k=M+M*M+M*5;。又因为 M 被定义为 5,所以再展开后为K=5+5*5+5*5;。现在不难计算出,这个表达式的结果为 k=55。故最终输出结果是 55。37.在一个容量为 32 的循环队列中,若头指针 front=3,尾

40、指针 rear=2,则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_ (正确答案:31)解析:解析 设队列容量为 m,如果:rearfront,则队列中元素个数为 rear-front:如果rearfront,则队列中元素个数为 m+(rear-front)。本题 rearfront,则 m=32+(2-3)=31。38.下列程序的运行结果是U U /U /U。 #includestdio.h main int k=4,m=3,p; p=func(k,m); printf(“%d“,p); p=func(k,m); printf(“%d/n“,p); func(a,b) int

41、 a,b; static int m=0,i=2; i+=m+1; m=i+a+b; return(m);(分数:1.00)填空项 1:_ (正确答案:1021)解析:解析 此题主要考查了变量和函数的存储类别。函数的存储范围是从定义它的位置到文件结束为止,如果想在函数定义之前使用函数,需要先对函数进行声明。静态局部变量的生存期为整个程序的运行期间,作用域却为定义它的函数或局部范围内。39.若有以下程序 main() int p,a=5; if(p=a!=0) printf(“%d/n“,p); else pfintf(“%d/n“,p+2); 执行后输出结果是U U /U /U。(分数:1.0

42、0)填空项 1:_ (正确答案:1)解析:解析 首先计算 if 语句后面的表达式,根据运算符的优先级可知,先算“a!=o”,该值为 1,再把 1 赋值给 p,结果为 1(真),执行其后的 printf 语句,输出的值为 1。40.诊断和改正程序中错误的工作通常称为 1。(分数:2.00)填空项 1:_ (正确答案:程序调试)解析:41.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、 1 和选择排序。(分数:2.00)填空项 1:_ (正确答案:交换排序)解析:解析 所谓排序是指将一个无序序列整理成按值非递减顺序排列成的有序序列,常用的排序方法有:交换排序、插入排序和选择排序。

43、其中交换排序包括冒泡排序和快速排序,插入排序包括简单插入排序和希尔排序,选择排序包括直接选择排序和堆排序。42.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为 1。(分数:2.00)填空项 1:_ (正确答案:物理独立性)解析:数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为物理独立性。43.以下程序的输出结果是_。 #include stdio.h unsigned fun6(unslgned num) unsigned k=1; dok * =mum%10;num/=10; while (num); return k; main() unsigned n=26; printf(“%d/n“,fan6(n); (分数:2.00)填空项 1:_ (正确答案:12)解析:解析 循环语句中,表达式 num%10 是取 num 的个位。循环直至 num 为 0 结束,这是逐一求出num+进制表示的各位数字,并累乘于变量 k 中。函数最后返回 k,所以程序输出 12。44.设有下列程序: #includestdio.h #includestring.h main(

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