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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、二级 C语言笔试-469 及答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:40,分数:60.00)1.软件是指A) 程序 B) 程序和文档C) 算法加数据结构 D) 程序、数据与相关文档的完整集合(分数:1.00)A.B.C.D.2.下面不属于软件设计原则的是A) 抽象 B) 模块化 C) 白底向上 D) 信息隐蔽(分数:2.00)A.B.C.D.3.树是结点的集合,它的根结点的数目是( )。A) 有且只有 1个 B) 1 或多于 1C) 0或 1 D) 至少有 2个(分数:2.00)A.B.C.D.4.下列叙述中正确的是_。A) 一个算法的空间复杂度大,则其时间复杂度

2、也必定大B) 一个算法的空间复杂度大,则其时间复杂度必定小C) 一个算法的时间复杂度大,则其空间复杂度必定小D) 上述三种说法都不对(分数:2.00)A.B.C.D.5.对长度为 n的线性表进行顺序查找,在最坏的情况下需要比较的次数为( )。A) 125 B) n/2C) n D) n+1(分数:1.00)A.B.C.D.6.对如下二叉树(分数:1.00)A.B.C.D.7.下列叙述中正确的是_。A) 程序的执行效率与数据的存储结构密切相关B) 程序的执行效率只取决于程序的控制结构C) 程序的执行效率只取决于所处理的数据量D) 以上三种说法都不对(分数:2.00)A.B.C.D.8.软件详细设

3、计产生的图如图所示,该图是(分数:2.00)A.B.C.D.9.在 Windows环境下,若资源管理器左窗口中的某文件夹左边标有“+”标记,则表示_。A) 该文件夹为空 B) 该文件夹中含有子文件夹C) 该文件夹中只包含有可执行文件 D) 该文件夹中包含系统文件(分数:1.00)A.B.C.D.10.为了提高软件模块的独立性,模块之间最好是( )。A) 控制耦合 B) 公共耦合 C) 内容耦合 D) 数据耦合(分数:2.00)A.B.C.D.11.结构化程序有 3种基本结构组成,3 种基本结构组成的算法_。A) 可以完成任何复杂的任务 B) 只能完成部分复杂的任务C) 只能完成符合结构化的任务

4、 D) 只能完成一些简单的任务(分数:1.00)A.B.C.D.12.以下选项中,能用作数据常量的是_。A) 0115 B) 0118 C) 1.5e1.5 D) 115L(分数:2.00)A.B.C.D.13.以下选项中,不能作为合法常量的是A) 1.234e04 B) 1.234e0.4 C) 1.234e+4 D) 1.234e0(分数:1.00)A.B.C.D.14.有以下程序:main()int i=10,j=1;printf(“%d,%d/n“,i-,+j);执行后的输出结果是 _。A) 9,2 B) l0,2 C) 9,1 D) 10,1(分数:1.00)A.B.C.D.15.下

5、列表达式中,可以正确表示 或 (分数:1.00)A.B.C.D.16.若有语句:char*line5;,以下叙述中正确的是A) 定义 line是一个数组,每个数组元素是一个基类型为 char的指针变量B) 定义 line是一个指针变量,该变量可以指向一个长度为 5的字符型数组C) 定义 line是一个指针数组,语句中的。号称为间址运算符D) 定义 line是一个指向字符型函数的指针(分数:1.00)A.B.C.D.17.若变量都已正确说明,则以下程序段输出结果为( )。 #includestdio.h main() char a=a; int b=2; printf(ab?”*a=%d“:“#

6、b=%d“,a,b); A) *a=3 B) #b=3 C) *a=3#b=5 D) 全部错误(分数:1.00)A.B.C.D.18.若变量 a,i 已正确定义,且 i已正确赋值,下面合法的语句是( )。A) a=1 B) +i; C) a=a+=5; D) a=int(i);(分数:1.00)A.B.C.D.19.已知字母 A的 ASCII代码值为 65,若变量 kk为 char型,以下不能正确判断出比中的值为大写字母的表达式是A) kk=A scanf(“%d“, B) int *P; scanf(“%d“, p); C) int k, *P= scanf(“%d“, p); D) int

7、 k, *P; *P= scanf(“%d“, p);(分数:2.00)A.B.C.D.25.有以下程序(说明:字母 A的 ASCII码值是 65) #includestdio.hvoid 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(分数:1.00)A.B.C.D.26.以理程序的输出结果_。main()char st20=“he11/O/t/“;printf(“%d%d/n“,st

8、r1en(st),sizeof(st);A) 99 B) 520 C) 1320 D) 2020(分数:2.00)A.B.C.D.27.下列叙述中正确的是A) 定义函数时,形参的类型说明可以放在函数体内B) return后边的值不能为表达式C) 如果函数值的类型与返回值类型不一致,以函数值类型为准D) 如果形参与实参类型不一致,以实参类型为准(分数:2.00)A.B.C.D.28.有以下程序:main()int a44=1,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1,),i,j,k,t;for(i=0;i4;i+)for(j=0;j3;j+)for(k=j+1;k4;k+)if

9、(ajiaki)t=aji;aji=aki;aki=t;/*按列排序*/for(i=0;i4;i+)printf(“%d,“,aii);程序运行后的输出结果是_。A) 1,6,5,7, B) 8,7,3,1, C) 4,7,5,2, D) 1,6,2,1,(分数:2.00)A.B.C.D.29.以下程序运行后的输出结果是#define F(X,Y)(X) * (Y)main( )int a=3,b=4;printf(“%d/n“,F(a+,b+);A) 12 B) 15 C) 16 D) 20(分数:2.00)A.B.C.D.30.有以下程序#includevoid f(char p10,in

10、t n)char t10;int i,j;for(i=0;iN-1;i+)for(j=i+1;jN;j+)if(strcmp(pi,pj)0)strcpy(t,pi);strcpy(pi,pj);strcpy(pj,t);main()char p510=“abc“, “aabdfg“, “abbd“, “dedbe“, “cd“;f(p,5);printf(“%d/n“, strlen(p0);程序运行后的输出结果是_。(A) 2(B) 4(C) 6(D) 3(分数:2.00)A.B.C.D.31.以下程序的输出结果是_。struct HARint x,y;struct HAR*p;h2;ma

11、in()h0.x=1;h0.y=2;h1.x=3;h1.y=4;h0.p=h1.p-y);printf(“%d%d/n“,(h0.p)-x,(h1.p)-y);A) 12 B) 23 C) 14 D) 32(分数:2.00)A.B.C.D.32.分析下列程序:#includestdio.hmain()int*p1,*p2,*p;int a=6,b=9;p1=p2=p1=p2;p2=p;printf(“%d,%d“,*p1,*p2);printf(“%d,%d“,a,b);程序的输出结果为( )。A) 9,6 6,9 B) 6,9 9,6 C) 6,9 6,9 D) 9,6 9,6(分数:2.0

12、0)A.B.C.D.33.判断字符串 s1是否大于字符串 s2,应该使用( )。A) if(strcmp(s1,s2)0)B) if(s1s2)C)if(strcmp(s2,s1)0)D) if(strcmp(s1,s2)(分数:2.00)A.B.C.D.34.若要求定义具有 10个 int型元素的一维数组 a,则以下定义语句中错误的是A) #define N 10int aN;B) #define n 5int a2*n;C) int a5+5;D) int n=10,an;(分数:2.00)A.B.C.D.35.若有说明 int a3=1,2,3,4,5,6,7,8,9,则 a数组第一维的

13、大小是( )。A) 2 B) 3 C) 4 D) 无确定值(分数:1.00)A.B.C.D.36.有下列程序:fun(int x)int p;if(x=0x=1) return(3) ;p=x-fun(x-2) ;return p;main()printf(“%d/n“,fun(7) );执行后的输出结果是( )。A) 7 B) 3 C) 2 D) 0(分数:1.00)A.B.C.D.37.有以下程序:#includestring.hmain()char p20=a,d,c,d,q=“abc“,r=“abcde“strcat(p,r);strcpy(p+strlen(q),q);printf(

14、“%d/n“,sizeof(p);程序运行后的输出结果是_。A) 9 B) 6C) 11 D) 7(分数:2.00)A.B.C.D.38.下列的程序用来输出两个字符串前 7个字符中对应相等的字符及其位置号,程序空白处应该填写的是( )。#includestdio.hmain()char s1=“chinese“,s2=“japnese“;int i;for(i=0;sl1i!=/0i+)if(s1i=s2iputchar(i) B) puts(s1i,i)C) printf(“%c%d/n“,s2i,i) D) printf(“%c“,s1i);printf(“%d/n“,i)(分数:1.00

15、)A.B.C.D.39.下列程序的输出结果是( )。point(char*pt);main()char b4= a,c,s,f ,*pt=b;pt=point(pt);printf(“%c/n“,*pt);point(char*p)p+=3;return p;A) s B) c C) f D) a(分数:2.00)A.B.C.D.40.若运行时给变量 x赋值 12,则以下程序的运行结果是( )。#includestdiohmain()int x,y;scanf(“%d“,int a,s=0;while(_)if(isdigit(C) )a=c-0;s+=a;printf(“s=%d“,s);(

16、分数:2.00)填空项 1:_49.有以下程序,程序执行后,输出结果是U /U#includestdio.hvoid fun(int*A) a0=a1;main()int a10=10,9,8,7,6,5,4,3,2,1,i;for(i=2;i1=0;i-) fun(for(i=0;i10;i+) printf(“%d,ai);printf(“/n“);(分数:2.00)填空项 1:_50.以下程序的输出结果是U /U。float fun(int x,int y)return(x+y);main()int a=2,b=5,c=8;printf(“%3.0f/n“,fun(int)fun(a+c

17、,b),a-c);(分数:2.00)填空项 1:_51.以下程序运行后的输出结果是_。#includechar*ss(char*s)char*p,t;P=s+1;t=*s;while(*p) *(p-1)=*p;p+;*(p-1)=t;return s;main()char*p,str10=“abcdefgh“;p=ss(str);printf(“%s/n“,p);(分数:2.00)填空项 1:_52.以下程序运行后的输出结果是U /U。# includestring.hvoid fun(char *s,int p,int k)int i;for(i=p;ik-1;i+)si=si+2;mai

18、n()char s=“abcdefg“;fun(s,3,strlen(s);puts(s);(分数:2.00)填空项 1:_53.设有下列程序:#includestdio.h#includestring.hmain()int i;chars10,t10;gets(t);for(i=0;i2;i+)gets(s);if(strcmp(t,s)0)strcpy(t,s);printf(“%s/n“,t);程序运行后,从键盘上输入(CR代表回车符):CDEFCRBADEFCRQTHRGCR,则程序的输出结果是_。(分数:2.00)填空项 1:_54.设有下列程序:#includestdio.h#in

19、cludestring.hmain()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代表回车符):DEFCRBADEFCRQTHRGCR,则程序的输出结果是_。(分数:2.00)填空项 1:_55.常见的软件开发方法有结构化方法和面向对象方法。对某应用系统经过需求分析建立数据流图(DFD),则应采用 1 方法。(分数:2.00)填空项 1:_二级 C语言笔试-469 答案解析(总分:98.00,做题时间:90 分钟)一、选择

20、题(总题数:40,分数:60.00)1.软件是指A) 程序 B) 程序和文档C) 算法加数据结构 D) 程序、数据与相关文档的完整集合(分数:1.00)A.B.C.D. 解析:解析 软件是程序、数据与相关文档的集合,相对于计算机硬件而言,软件是逻辑产品而不是物理产品,是计算机的无形部分。2.下面不属于软件设计原则的是A) 抽象 B) 模块化 C) 白底向上 D) 信息隐蔽(分数:2.00)A.B.C. D.解析:解析 软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念,它们具有抽象、模块化、信息隐蔽和数据独立性。自底向上是集成测试中增量测试的

21、一种。3.树是结点的集合,它的根结点的数目是( )。A) 有且只有 1个 B) 1 或多于 1C) 0或 1 D) 至少有 2个(分数:2.00)A.B.C. D.解析:解析 树具有明显的层次关系,即树是一种层次结构。在树结构中,根结点在第一层上。当树为非空时,树中有且只有一个根结点,当树为空时,树中根结点的数目为 0。4.下列叙述中正确的是_。A) 一个算法的空间复杂度大,则其时间复杂度也必定大B) 一个算法的空间复杂度大,则其时间复杂度必定小C) 一个算法的时间复杂度大,则其空间复杂度必定小D) 上述三种说法都不对(分数:2.00)A.B.C.D. 解析:解析 算法的复杂度主要包括算法的时

22、间复杂度和算法的空间复杂度。所渭算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。算法的时间复杂度和空间复杂度没有直接关系。5.对长度为 n的线性表进行顺序查找,在最坏的情况下需要比较的次数为( )。A) 125 B) n/2C) n D) n+1(分数:1.00)A.B.C. D.解析:解析对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。在最坏的情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为

23、n。6.对如下二叉树(分数:1.00)A.B.C.D. 解析:解析 所谓的后序遍历是指,首先遍历左子树,然后遍历右子树,最后访问根结点,并且在遍历左、右树时,仍然先遍历左子树,然后遍历右子树,最后访问根点。因此,后序遍历二叉树的过程也是一个递归过程。7.下列叙述中正确的是_。A) 程序的执行效率与数据的存储结构密切相关B) 程序的执行效率只取决于程序的控制结构C) 程序的执行效率只取决于所处理的数据量D) 以上三种说法都不对(分数:2.00)A. B.C.D.解析:解析 程序的执行效率是与数据的存储结构密切联系的。8.软件详细设计产生的图如图所示,该图是(分数:2.00)A.B.C. D.解析

24、:解析 N-S 图是由若干基本框图构成的流程图,其特点是没有流程线;PAD(问题分析图,Problem Analysis Diagram)是一种由左往右展开的二维树状结构;程序流程图用于描述问题解决的过程和步骤,其中方框表示处理步骤,菱形框表示逻辑判断,箭头表示控制流向;E-R 图即实体一联系图(Entity Relationship Diagram),用来描述现实世界的概念模型,构成元素有实体、属性和联系,分别用矩形、椭圆形和菱形表示。9.在 Windows环境下,若资源管理器左窗口中的某文件夹左边标有“+”标记,则表示_。A) 该文件夹为空 B) 该文件夹中含有子文件夹C) 该文件夹中只包

25、含有可执行文件 D) 该文件夹中包含系统文件(分数:1.00)A.B. C.D.解析:解析 在资源管理器左窗口中,若某个文件夹的左边有“+”字符,则代表了该文件夹中包含有子文件夹,并且没有显示出来,我们在此时单击一下,那么“+”会变成“-”,此时可以显示该文件夹下面的子文件夹。10.为了提高软件模块的独立性,模块之间最好是( )。A) 控制耦合 B) 公共耦合 C) 内容耦合 D) 数据耦合(分数:2.00)A.B.C.D. 解析:解析 耦合性与内聚性是模块独立性的两个定性标准,是互相关联的。在程序设计中,各模块间的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚、低耦合,有利

26、于提高模块的独立性。11.结构化程序有 3种基本结构组成,3 种基本结构组成的算法_。A) 可以完成任何复杂的任务 B) 只能完成部分复杂的任务C) 只能完成符合结构化的任务 D) 只能完成一些简单的任务(分数:1.00)A. B.C.D.解析:解析 结构化程序的 3种基本结构是顺序、循环、选择,任何复杂的任务都可以通过这 3种结构来实现。12.以下选项中,能用作数据常量的是_。A) 0115 B) 0118 C) 1.5e1.5 D) 115L(分数:2.00)A.B.C.D. 解析:评析 在 C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。整型常量和实型常量又称数值型常量。基本

27、整型常量只能用数字表示,不带小数点,例如 12、-1 和 0等,在 VC6.0中可以在整型常量的后面加个字母 l(L的小写)或 L;实型常量必须用带小数点的数表示,例如 3.14159、-2.71828、0.0 等;选项 A中字母 o不符合要求,选顶 B中超出八进制的范围,选项 C中 e后面的不为整数,因此选顶 D是正确的。13.以下选项中,不能作为合法常量的是A) 1.234e04 B) 1.234e0.4 C) 1.234e+4 D) 1.234e0(分数:1.00)A.B. C.D.解析:解析 C 语言的语法规定,字母 e(E)之前必须有数字,且 e(E)后面的指数必须是整数,而选项 B

28、)中,e(E)后面的指数是小数,所以不合法。14.有以下程序:main()int i=10,j=1;printf(“%d,%d/n“,i-,+j);执行后的输出结果是 _。A) 9,2 B) l0,2 C) 9,1 D) 10,1(分数:1.00)A.B. C.D.解析:解析 本题中-运算符位于运算变量 i右侧,+运算符位于变量 j的左侧,所以先输出 i的当前值 10,然后 i再加 1;j 先加 1得 2,然后输出。15.下列表达式中,可以正确表示 或 (分数:1.00)A. B.C.D.解析:解析 题中要求 x的取值是小于等于 0或者大于等于 1,这说明表达式是或的关系,所以在写成C语言表达

29、式应是逻辑或的关系,逻辑或运算符是“。16.若有语句:char*line5;,以下叙述中正确的是A) 定义 line是一个数组,每个数组元素是一个基类型为 char的指针变量B) 定义 line是一个指针变量,该变量可以指向一个长度为 5的字符型数组C) 定义 line是一个指针数组,语句中的。号称为间址运算符D) 定义 line是一个指向字符型函数的指针(分数:1.00)A. B.C.D.解析:解析 C 语言中比*优先级高,因此 line先与5结合,形成 line5形式,这是数组形式,它有 5个元素,然后再与 line前面的“*”结合,表示此数组是一个指针数组,每个数组元素都是一个基类型为

30、char的指针变量。17.若变量都已正确说明,则以下程序段输出结果为( )。 #includestdio.h main() char a=a; int b=2; printf(ab?”*a=%d“:“#b=%d“,a,b); A) *a=3 B) #b=3 C) *a=3#b=5 D) 全部错误(分数:1.00)A.B.C.D. 解析:解析 本题考查 printf函数的格式和三日运算符“?:”的使用。printf 函数中格式说明符之前插入的任何字符都原样输出。本题中 ab 为真,所以返回“*a=97”。18.若变量 a,i 已正确定义,且 i已正确赋值,下面合法的语句是( )。A) a=1 B

31、) +i; C) a=a+=5; D) a=int(i);(分数:1.00)A.B. C.D.解析:解析 选项 A) 缺少分号,是一个表达式,而不是语句;选项 C) 包含一个不合法的运算符“+=”;选项 D) 应改为 a=(int)i;。19.已知字母 A的 ASCII代码值为 65,若变量 kk为 char型,以下不能正确判断出比中的值为大写字母的表达式是A) kk=A scanf(“%d“, B) int *P; scanf(“%d“, p); C) int k, *P= scanf(“%d“, p); D) int k, *P; *P= scanf(“%d“, p);(分数:2.00)A

32、.B.C. D.解析:解析 选项 A、B 中,指针 p是一个变量,但是没有赋值,即 p没有指向一个具体的存储空间,所以不能在 scanf语句中使用指针 p。选项 D中,“*p=“表示错误,“s+;main()char a=“BYTE“;fun(a); printf(“/n“);程序运行后的输出结果是_。A) BY B) BT C) YT D) YE(分数:1.00)A.B.C.D. 解析:解析 阅读程序可知,函数只会输出 ASCII码值为奇数的字母,执行 fun(a)时,依次取出 a中的字母,当取第一个字母 B时,因为 B的 ASCII码值为 66,所以不会输出 B,字母 Y的 ASCII码为

33、 89,字母 T的 ASCII码值为 84,字母 E的 ASCII码值为 69,所以最后输出字母 YE。正确答案为 D。26.以理程序的输出结果_。main()char st20=“he11/O/t/“;printf(“%d%d/n“,str1en(st),sizeof(st);A) 99 B) 520 C) 1320 D) 2020(分数:2.00)A.B. C.D.解析:评析 C 语言中字符串是以/O字符结束的,且 strlen()函数计算的是/O字符前的所有字符的个数。本题中 strlen(st)应为 5。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。sizeof(

34、)函数是计算变量或数组的所分配到的内存空间的大小。所以本题的 sizeof(st)为 20。27.下列叙述中正确的是A) 定义函数时,形参的类型说明可以放在函数体内B) return后边的值不能为表达式C) 如果函数值的类型与返回值类型不一致,以函数值类型为准D) 如果形参与实参类型不一致,以实参类型为准(分数:2.00)A.B.C. D.解析:解析 定义函数时,形参的类型说明放在形参表列内说明,或放在函数定义的第二行,函数体花括号“”之前,所以选项 A错。recurn 后面的值可以是一个表达式,故选项 B错误。实参与形参的类型应相同或赋值兼容。如果实参为整型而形参为实型,或者相反,则按不同类

35、型数值的赋值规则进行转换,以形参类型为准,故选项 D错误。28.有以下程序:main()int a44=1,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1,),i,j,k,t;for(i=0;i4;i+)for(j=0;j3;j+)for(k=j+1;k4;k+)if(ajiaki)t=aji;aji=aki;aki=t;/*按列排序*/for(i=0;i4;i+)printf(“%d,“,aii);程序运行后的输出结果是_。A) 1,6,5,7, B) 8,7,3,1, C) 4,7,5,2, D) 1,6,2,1,(分数:2.00)A. B.C.D.解析:解析 本题首先定义了一

36、个 4行 4列的二维数组,并用了三层 for循环来进行由小到大的排序。外层循环变量 i表示数组的列第二层循环变量 j表示数组的行,第三层循环用于求第 i列第 j行的最小值,其中通过 if语句对相关数值进行比较和交换。最后通过 for循环对排序后数组对角线上的元素输出。29.以下程序运行后的输出结果是#define F(X,Y)(X) * (Y)main( )int a=3,b=4;printf(“%d/n“,F(a+,b+);A) 12 B) 15 C) 16 D) 20(分数:2.00)A. B.C.D.解析:解析 本题考查带参数的宏定义,参数只是简单的字符替换,而不是参数的传递。本题中用

37、a+替换 X,用 b+替换 Y,再计算(a+)*(b+)的值,即 3*4的值,其结果为 12。30.有以下程序#includevoid f(char p10,int n)char t10;int i,j;for(i=0;iN-1;i+)for(j=i+1;jN;j+)if(strcmp(pi,pj)0)strcpy(t,pi);strcpy(pi,pj);strcpy(pj,t);main()char p510=“abc“, “aabdfg“, “abbd“, “dedbe“, “cd“;f(p,5);printf(“%d/n“, strlen(p0);程序运行后的输出结果是_。(A) 2(B

38、) 4(C) 6(D) 3(分数:2.00)A.B.C. D.解析:31.以下程序的输出结果是_。struct HARint x,y;struct HAR*p;h2;main()h0.x=1;h0.y=2;h1.x=3;h1.y=4;h0.p=h1.p-y);printf(“%d%d/n“,(h0.p)-x,(h1.p)-y);A) 12 B) 23 C) 14 D) 32(分数:2.00)A.B.C.D. 解析:评析 本题中是一个结点的循环链表。C 语言中结构体的定义为:struet 结构体类型名成员项表;32.分析下列程序:#includestdio.hmain()int*p1,*p2,*

39、p;int a=6,b=9;p1=p2=p1=p2;p2=p;printf(“%d,%d“,*p1,*p2);printf(“%d,%d“,a,b);程序的输出结果为( )。A) 9,6 6,9 B) 6,9 9,6 C) 6,9 6,9 D) 9,6 9,6(分数:2.00)A. B.C.D.解析:解析 通过 p1=if(x=0x=1) return(3) ;p=x-fun(x-2) ;return p;main()printf(“%d/n“,fun(7) );执行后的输出结果是( )。A) 7 B) 3 C) 2 D) 0(分数:1.00)A.B.C. D.解析:解析 因为在函数 fun(

40、int x)中,如果参数 x等于 0或 1时,返回值 3。否则 p=x-fun(x-2)这是一个递归函数,所以在主函数调用 fun(7)时,其过程为:“fun(7)=7-fun(5)=7-(5-fun(3)=7-(5-(3-fun(1)=7-(5- (3-3)=7-5=2”,所以最后的输出结果为2。37.有以下程序:#includestring.hmain()char p20=a,d,c,d,q=“abc“,r=“abcde“strcat(p,r);strcpy(p+strlen(q),q);printf(“%d/n“,sizeof(p);程序运行后的输出结果是_。A) 9 B) 6C) 11

41、 D) 7(分数:2.00)A.B. C.D.解析:解析 题目中首先通过 strcat(p,r)函数将 r所指字符串内容连接到 p所指的字符串后面,p20=av,b,c,d,a,b,c,d,e,然后通过 strcpy(p+strlen(q),q),首先在 p0地址的基础上向后移动三位,然后将 q所指字符串的内容复制到 p所指的存储空间中,从字符 d往后全部覆盖,p20=a,b,c,a,b,c)。在输出语句中 strlen(p)是求字符串的长度。38.下列的程序用来输出两个字符串前 7个字符中对应相等的字符及其位置号,程序空白处应该填写的是( )。#includestdio.hmain()cha

42、r s1=“chinese“,s2=“japnese“;int i;for(i=0;sl1i!=/0i+)if(s1i=s2iputchar(i) B) puts(s1i,i)C) printf(“%c%d/n“,s2i,i) D) printf(“%c“,s1i);printf(“%d/n“,i)(分数:1.00)A.B.C. D.解析:解析 putchar(s)的功能是把字符 s输出到标准输出设备:puts(s1)是把 s1指向的字符串输出到标准输出设备。39.下列程序的输出结果是( )。point(char*pt);main()char b4= a,c,s,f ,*pt=b;pt=poi

43、nt(pt);printf(“%c/n“,*pt);point(char*p)p+=3;return p;A) s B) c C) f D) a(分数:2.00)A.B.C. D.解析:解析 本题考查函数调用时的参数传递。函数 point的参数为字符指针,当执行函数 point时,刚开始指针 p指向“a”,经过+3 操作后,指针 p指向“f”所以最后的输出结果是 f。40.若运行时给变量 x赋值 12,则以下程序的运行结果是( )。#includestdiohmain()int x,y;scanf(“%d“,int a,s=0;while(_)if(isdigit(C) )a=c-0;s+=a

44、;printf(“s=%d“,s);(分数:2.00)填空项 1:_ (正确答案:(c=getchar()!=/n)解析:解析 分析题目可知,程序中运用函数 c=getchar()从标准输入设备读取下一个字符,而且是一行的字符(即没有换行),所以条件为(c=getchar()!=/n。49.有以下程序,程序执行后,输出结果是U /U#includestdio.hvoid fun(int*A) a0=a1;main()int a10=10,9,8,7,6,5,4,3,2,1,i;for(i=2;i1=0;i-) fun(for(i=0;i10;i+) printf(“%d,ai);printf(

45、“/n“);(分数:2.00)填空项 1:_ (正确答案:7777654321)解析:评析 本题主要考查函数的调用,第次调用把数组元素 a2的地址赋给 a,此时 a1即是原数组的 a3等于 7,再执行赋值语句 a0=a1,则 a0和 a1中的值都是 7,然后再把这个值返回给 a2同样地第二次调用的时候函数返回值也是 7,第三次调用返回值也是 7,因此数组的前 4个元素,即对 a0、a1、a2和 a3的值都为 7,当执行第二个 for循环时输出数组中所有元素的值 7777654321。50.以下程序的输出结果是U /U。float fun(int x,int y)return(x+y);main

46、()int a=2,b=5,c=8;printf(“%3.0f/n“,fun(int)fun(a+c,b),a-c);(分数:2.00)填空项 1:_ (正确答案:9)解析:解析 本题考查函数的综合知识。首先,我们可以利用强制转换类型转换运算符,将一个表达式转换成所需类型。如: (double)a 是将 a转换成 double类型;(int)(x+y)是将 x+y的值转换成整型。本题可按部就班地逐步运算:fun(int)fun(a+c,b),a-c)fun(int)fun(10,5),2-8)fun(int)15.000000,-6)fun(15,-6)951.以下程序运行后的输出结果是_。#includechar*ss(char*s)char*p,t;P=s+1;t=*s;while(*p) *(p-1)=*p;p+;*(p-1)=t;return s;main()char*p,str10=“abcdefgh“;p=ss(str);printf(“%s/n“

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