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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、二级 C语言笔试-40 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:50,分数:50.00)1.下列对于软件测试的描述中正确的是_。(分数:1.00)A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能地多发现程序中的错误D.软件测试的目的是使程序符合结构化原则2.有以下程序#include stdio.hvoid WriteStr(char *fn,char *str)FILE *fp;fp=fopen(fn,“w“);fputs(str,fp);fclose(fp);main()WriteStr(“t1.dat“,

2、“start“);WriteStr(“t1.dat“,“end“);程序运行后,文件 t1.dat中的内容是_。(分数:1.00)A.startB.endC.startendD.endrt3.以下选项中,不能作为合法常量的是_。(分数:1.00)A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e04.有以下程序main()char s=“159“,*p;p=s;printf(“%c“,*p+);printf(“%c“,*p+);程序运行后的输出结果是_。(分数:1.00)A.15B.16C.12D.595.有以下程序main()int a33,*p,i;p=for(

3、i=0;i9;i+)pi=i;for(i=0;i3;i+)printf(“%d“,a1i);程序运行后的输出结果是_。(分数:1.00)A.0 1 2B.1 2 3C.2 3 4D.3 4 56.有以下程序main()int a=(1,2,3,4,5,6,7,8,9,0),*p;for(p=a;pa+10;p+) printf(“%d,“,*p);程序运行后的输出结果是_。(分数:1.00)A.1,2,3,4,5,6,7,8,9,0,B.2,3,4,5,6,7,8,9,10,1,C.0,1,2,3,4,5,6,7,8,9,D.1,1,1,1,1,1,1,1,1,1,7.数据独立性是数据库技术的

4、重要特点之一。所谓数据独立性,是指_。(分数:1.00)A.数据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对8.设有如下说明typedef struct STlong a; int b;char c2; NEW;则下面叙述中正确的是_。(分数:1.00)A.以上的说明形式非法B.ST是一个结构体类型C.NEW是一个结构体类型D.NEW是一个结构体变量9.有以下程序int f1(int x,int y)return xy?x:y; int f2(int x,int y)return xy?y:x; main()int a=4,b=

5、3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d); f=f1(f2(a,b),f2(c,d);g=a+b+c+d-e-f;printf(“%d,%d,%d/n“,e,f,g);程序运行后的输出结果是_。(分数:1.00)A.4,3,7B.3,4,7C.5,2,7D.2,5,710.以下选项中可作为 C语言合法常量的是_。(分数:1.00)A.-80.B.-080C.-8e1.0D.-80.0e11.已有定义:char a=“xyz“,b=x,y,z;,以下叙述中正确的是_。(分数:1.00)A.数组 a和 b的长度相同B.a数组长度小于 b数组长度C.a数组长度大于 b

6、数组长度D.上述说法都不对12.有以下程序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);程序运行后的输出结果是_。(分数:1.00)A.3B.4C.5D.613.以下叙述中正确的是_。(分数:1.00)A.预处理命令行必须位于源文件的开头B.在源文件的一行上可以有多条预处理命令C.宏名必须用大写字母表示D.宏替换不占用程序的运行时间14.有以下函数fun(char *a,char *b)while(*a!=/0) b+; return(*a-*b);该函数的功

7、能是_。(分数:1.00)A.计算 a和 b所指字符串的长度之差B.将 b所指字符串连接到 a所指字符串中C.将 b所指字符串连接到 a所指字符串后面D.比较 a和 b所指字符串的大小15.以下对结构体类型变量 td的定义中,错误的是_。(分数:1.00)A.typedef struct aaint n;float m;AA;AA td;B.struct aaint n;float m;td;struct aa td;C.structint n;floatm;aa;struct aa td;D.structint n;float m;td;16.以下语句或语句组中,能正确进行字符串赋值的是_。

8、(分数:1.00)A.char *sp;*sp=“right!“;B.char s10;s=“right!“;C.char s10;*s=“right!“;D.char sp=“right!“;17.为了使模块尽可能独立,要求_。(分数:1.00)A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强18.有以下程序main()char a7=“a0/0a0/0“; int i,j;i=sizeof((分数:1.00)A.;

9、j-strlen(a);b19.若有以下说明和定义union dtint a;char b; double c;data;以下叙述中错误的是_。(分数:1.00)A.data的每个成员起始地址都相同B.变量 data所占的内存字节数与成员 c所占字节数相等C.程序段:data.a=5;printf(“%f/n“,data.c);的输出结果为 5.000000D.data可以作为函数的实参20.对长度为 n的线性表进行顺序查找,在最坏的情况下所需要的比较次数为_。(分数:1.00)A.log2nB.n/2C.nD.n+121.以下叙述中正确的是_。(分数:1.00)A.用 C语言实现的算法必须要

10、有输入和输出操作B.用 C语言实现的算法可以没有输出,但必须要有输入C.用 C程序实现的算法可以没有输入,但必须要有输出D.用 C程序实现的算法可以既没有输入,也没有输出22.有以下程序point(char *p) p+=3; main()char b4=a,b,c,d,*p=b;point(p); printf(“%c/n“,*p);程序运行后的输出结果是_。(分数:1.00)A.aB.bC.cD.d23.下列对于线性链表的描述中正确的是_。(分数:1.00)A.存储空间不一定连续,且各元素的存储顺序是任意的B.存储空间不一定连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且各

11、前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的24.下列关于栈的描述中错误的是_。(分数:1.00)A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入和删除操作中,不需要改变栈底指针25.有以下程序#defihe P 3void F(int x) return(P*x*x); main()printf(“%d/n“,F(3+5); 程序运行后的输出结果是_。(分数:1.00)A.192B.29C.25D.编译出错26.以下不能定义为用户标识符的是_。(分数:1.00)A.mainB._0C._intD.sizeof27.数字字符 0的

12、ASCII值为 48,若有以下程序main()char a=1,b=2;printf(“%c,“,b+);printf(“%d/n“,b-(分数:1.00)A.;28.有以下语句:int b;char c10;,则正确的输入语句是_。(分数:1.00)A.scanf(“%d%s“,B.scanf(“%d%s“,C.scanf(“%d%s“,b,c);D.scanf(“%d%s“,b,29.以下叙述中错误的是_。(分数:1.00)A.对于 double类型数组,不可以直接用数组名对数组进行整体输入或输出B.数组名代表的是数组所占存储区的首地址,其值不可改变C.当程序执行时,若数组元素的下标超出所

13、定义的下标范围,系统将给出“下标越界”的出错信息D.可以通过赋初值的方式确定数组元素的个数30.有以下程序prt(int *m,int n)int i;for(i=0;in;i+)mi+;main()int a=(1,2,3,4,5),i;prt(a,5);for(i=0;i5;i+) printf(“%d,“,ai);程序运行后的输出结果是_。(分数:1.00)A.1,2,3,4,5,B.2,3,4,5,6,C.3,4,5,6,7,D.2,3,4,5,1,31.有以下程序main()int p8=(11,12,13,14,15,16,17,18),i=0,j=0;while(i+7)if(p

14、i%2) j+=pi;printf(“%d/n“,j);程序运行后的输出结果是_。(分数:1.00)A.42B.45C.56D.6032.有以下程序main()int m=12,n=34;printf(“%d%d“,m+,+n);printf(“%d%d/n“,n+,+m);程序运行后的输出结果是_。(分数:1.00)A.12353514B.12353513C.12343514D.1234351333.有以下程序main()int c=35; printf(“%d/n“,c 程序运行后的输出结果是_。(分数:1.00)A.0B.70C.35D.134.算法具有五个特性,以下选项中不属于算法特性

15、的是_。(分数:1.00)A.有穷性B.简洁性C.可行性D.确定性35.用树形结构表示实体之间联系的模型是_。(分数:1.00)A.关系模型B.网状模型C.层次模型D.以上三个都是36.以下能正确定义一维数组的选项是_。(分数:1.00)_37.有以下程序main()int m,n,p;scanf(“m=%dn=%dp=%d“,printf(“%d%d%d/n“,m,n,p);若想从键盘上输入数据,使变量 m中的值为 123,n 中的值为 456,p 中的值为 789,则正确的输入是_。(分数:1.00)A.m=123n=456p=789B.m=123 n=456 p=789C.m=123,n

16、=456,p=789D.123 456 78938.程序中若有如下说明和定义语句char fun(char *);main()char *s=“one“,a5=0,*f1)()=fun,ch;以下选项中对函数 fun的正确调用语句是_。(分数:1.00)A.(*f1)(a);B.*f1(*s);C.fun(D.ch=*f1(s);39.下列描述中正确的是_。(分数:1.00)A.程序就是软件B.软件开发不受计算机系统的限制C.软件既是逻辑实体,又是物理实体D.软件是程序、数据与相关文档的集合40.数据的存储结构是指_。(分数:1.00)A.存储在外存中的数据B.数据所占的存储空间量C.数据在计

17、算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示41.有以下程序main()int a,b,d=25;a=d/10%9;b=aprintf(“%d,%d/n“,a,b);程序运行后的输出结果是_。(分数:1.00)A.6,1B.2,1C.6,0D.2,042.有以下结构体说明和变量定义,如图所示,指针 p、q、r 分别指向此链表中的三个连续结点。struCt nodeint data; struct node *next;*p,*q,*r;现要将 q所指结点从链表中删除,同时要保持链表的连续,以下不能完成指定操作的语句是_。(分数:1.00)A.B.C.D.43.有以下程序void f(

18、int *x,int *y)int t;t=*x;*x=*y;*y=t;main()int a8=(1,2,3,4,5,6,7,8),i,*p,*q;p=a,q=while(pf(p,q); p+; q-; for(i=0;i8;i+)printf(“%d,“,ai);程序运行后的输出结果是_。(分数:1.00)A.8,2,3,4,5,6,7,1,B.5,6,7,8,1,2,3,4,C.1,2,3,4,5,6,7,8,D.8,7,6,5,4,3,2,1,44.若整型变量 a、b、c、d 中的值依次为:1、4、3、2。则条件表达式 ab?a:cd?c:d 的值是_。(分数:1.00)A.1B.2

19、C.3D.445.有以下程序main()int num44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,i,j;for(i=0;i4;i+)for(j=0;ji;j+)printf(“%4c“, );for(j= (分数:1.00)A.B.C.D.46.以下与函数 fseek(fp,0L,SEEK_SET)有相同作用的是_。(分数:1.00)A.feof(fp)B.ften(fp)C.fgetc(fp)D.rewind(fp)47.有以下程序#define N 20fun(int a,int n,int m)int i,j;for(i=m;i=n;i-)ai+

20、1=ai;main()int i,aN=(1,2,3,4,5,6,7,8,9,10);fun(a,2,9);for(i=0,i5;i+)printf(“%d“,ai);程序运行后的输出结果是_。(分数:1.00)_48.对于长度为 n的线性表,在最坏的情况下,下列各排序法所对应的比较次数中正确的是_。(分数:1.00)A.冒泡排序为 n/2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n-1)/249.有以下程序main()int i=1,j=2,k=3;if(i+=1程序运行后的输出结果是_。(分数:1.00)A.1 2 3B.2 3 4C.2 2 3D.2 3 350.有以下程序

21、main()int a32=(0),(*ptr)2,i,j;for(i=0;i2;i+)ptr=a+i; scanf(“%d“,ptr); ptr+; for(i=0;i3;i+)for(j=0;j2;j+) printf(“%2d“,aij);printf(“/n“);若运行时输入:1 2 3回车,则输出结果是_。(分数:1.00)_二、填空题(总题数:18,分数:36.00)51.某二叉树中度为 2的结点有 18个,则该二叉树中有 1 个叶子结点。(分数:2.00)填空项 1:_52.在面向对象方法中,类的实例称为 1。(分数:2.00)填空项 1:_53.诊断和改正程序中错误的工作通常称

22、为 1。(分数:2.00)填空项 1:_54.在关系数据库中,把数据表示成二维表,每一个二维表称为 1。(分数:2.00)填空项 1:_55.问题处理方案的正确而完整的描述称为 1。(分数:2.00)填空项 1:_56.以下程序运行时,若从键盘输入:10 20 30回车。输出结果是_。#include stdio.hmain()int i=0,j=0,k=0;acanf(“%d%*d%d“,printf(“%d%d%d/n“,I,j,k);(分数:2.00)填空项 1:_57.以下程序运行后的输出结果是_。#defihe S(x) 4*x*x+1main()int i=6,j=8;printf

23、(“%d/n“,S(i+j);(分数:2.00)填空项 1:_58.以下程序运行后的输出结果是_。main()int a=3,b=4,c=5,t=99;if(baa=c;c=t;if(acb=a;a=tprintf(“%d%d%d/n“,a,b,c);(分数:2.00)填空项 1:_59.以下程序运行后的输出结果是_。main()int a,b,c;a=10;b=20;c=(a%b1)|(a/b1);printf(“%d %d %d/n“,a,b,c);(分数:2.00)填空项 1:_60.以下程序运行后的输出结果是_。main()char c1,c2;for(c1=0,c2=9;c1c2;c

24、1+,c2-) printf(“%c%c“,c1,c2);printf(“/n“);(分数:2.00)填空项 1:_61.已知字符 A的 ASCII码值为 65,以下程序运行时,若从键盘输入:B33回车,则输出结果是_。#includemain()char a,b;a=getchar();scanf(“%d“,a=a-A+0;b=b*2;printf(“%c %c/n“,a,b);(分数:2.00)填空项 1:_62.以下程序中,fun 函数的功能是求 3行 4列二维数组每行元素中的最大值,请填空。void fun(int,int,int(*)4,int *);main()int a34=12

25、,41,36,28,19,33,15,27,3,27,19,11,b3,j;fun(3,4,a,b);for(i=0;i3;i+)printf(“%4d“,bi);printf(“/n“);void fun(int m,int n,n tar4,int *bar)int i,j,x;for(i=0;im;i+)x=ari0;for(j=0;jn;j+) if(xarij)x=arij;_=x;(分数:2.00)填空项 1:_63.以下程序运行后的输出结果是_。void swap(int x,int y)int t;t=x;x=y;y=t; printf(“%d %d “,x,y);main()

26、int a=3,b=4;swap(a,b); printf(“%d %d/n“,a,b);(分数:2.00)填空项 1:_64.以下程序运行后的输出结果是_。#include string.hvoid fun(char *s,int p,int k)int i;for(i=p;ik-1;i+) si=si+2;main()char s=“abcdefg“;fun(s,3,strlerl(s); puts(s);(分数:2.00)填空项 1:_65.以下程序运行后的输出结果是_。#include string.hmain()char ch=“abc“,x34;int i;for(i=0;i3;i

27、+) strcpy(xi,ch);for(i=0;i3;i+)printf(“%s“,printf(“/n“);(分数:2.00)填空项 1:_66.以下程序运行后的输出结果是_。fun(int a)int b=0; static int c=3;b+;c+;return(a+b+c);main()int i,a=5;for(i=0;j3;i+)printf(“%d %d“,i,fun(a);printf(“/n“);(分数:2.00)填空项 1:_67.以下程序运行后的输出结果是_。struct NODEint k;struct NODE *link;main()struct NODE m5

28、,*pm,*q=m+4;int i=0;while(P!=q)p-k=+i;p+;q-k=i+;q-;q-k=i;for(i=0;i5;i+)printf(“%d“,mi.k);printf(“/n“);(分数:2.00)填空项 1:_68.以下程序中函数 huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出。所谓回文,即正向与反向的拼写都一样,例如:adgda。请填空。#include string.hchar *huiwen(char *str)char *p1,*p2;int i,t=0;p1=str; p

29、2= (18) ;for(i=0;i=strlen(str)/2;i+)if(*p1+!=*p2-)t=1;break;if( (19) )return(“yes!“);else return(“no!“);main()char str50;printf(“Input:“);scanf(“%s“,str);printf(“%s/n“, (20) );(分数:2.00)填空项 1:_二级 C语言笔试-40 答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:50,分数:50.00)1.下列对于软件测试的描述中正确的是_。(分数:1.00)A.软件测试的目的是证明程序是否正确B.

30、软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能地多发现程序中的错误 D.软件测试的目的是使程序符合结构化原则解析:解析 软件测试是为了发现错误而执行程序的过程,一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例,一个成功的测试是发现了至今尚未发现的错误的测试。软件测试是以查找错误为中心,而不是演示软件的正确功能。所以软件测试的目的是尽可能多地发现程序中的错误。2.有以下程序#include stdio.hvoid WriteStr(char *fn,char *str)FILE *fp;fp=fopen(fn,“w“);fputs(str,fp);fclose(fp);m

31、ain()WriteStr(“t1.dat“,“start“);WriteStr(“t1.dat“,“end“);程序运行后,文件 t1.dat中的内容是_。(分数:1.00)A.startB.end C.startendD.endrt解析:解析 本题考查打开文件函数 fopen()。本题中,fopen(fn,“w“)的第一个参数是需要打开的文件名,第二个参数指定文件打开的方式。“w“表示为写而打开一个文本文件,如果文件不存在,则新建一个文件,否则将清空原文件。fputs(str,fp)是将 str的内容写入文件。fclose()是关闭文件。在主函数中两次调用写文件函数,但因为写入的是同一个文

32、件,所以只有最后一次的写入才有效。所以选项 B正确。3.以下选项中,不能作为合法常量的是_。(分数:1.00)A.1.234e04B.1.234e0.4 C.1.234e+4D.1.234e0解析:解析 实型常量的指数表示法是用字母 e(或 E)将实数的小数部分和指数部分分开,字母 e(或 E)之前的是小数部分,之后的是指数部分,这两部分都不能省略,且指数部分必须是整数。所以选项 B不能作为合法常量。4.有以下程序main()char s=“159“,*p;p=s;printf(“%c“,*p+);printf(“%c“,*p+);程序运行后的输出结果是_。(分数:1.00)A.15 B.16

33、C.12D.59解析:解析 本题考查运算符的优先级以及结合性。本题关键在于求解表达式*p+的值。*和+的优先级相同,但结合性是“从右至左”,即*p+等价于*(p+),由于 p+返回的是 p自加之前的值,所以此处输出的是数组的第一个元素的值“1”,而此时 p已指向数组的第二个元素,所以第二次输出的是“5”。所以选项 A正确。5.有以下程序main()int a33,*p,i;p=for(i=0;i9;i+)pi=i;for(i=0;i3;i+)printf(“%d“,a1i);程序运行后的输出结果是_。(分数:1.00)A.0 1 2B.1 2 3C.2 3 4D.3 4 5 解析:解析 本题考

34、查二维数组在内存中的排列形式。在 C语言中,二维数组或多维数组在内存中的排列是连续线性存放的。它们的排列规则是:第一维下标变化最慢,最右边的下标变化最快。如题中的二维数组 a33,其 9个元素在内存中的排列顺序是:a00,a01,a02,a10,a11,a12,a20,a21,a22。在主函数中,定义了一个整型指针 p指向二维数组 a的第一个元素 a00。然后在第一个 for循环中利用 p将数组 a的元素按顺序初始化为 08 共 9个值,然后在第二个 for循环中将 a10、a11、a12三个元素的值依次输出。所以选项 D正确。6.有以下程序main()int a=(1,2,3,4,5,6,7

35、,8,9,0),*p;for(p=a;pa+10;p+) printf(“%d,“,*p);程序运行后的输出结果是_。(分数:1.00)A.1,2,3,4,5,6,7,8,9,0, B.2,3,4,5,6,7,8,9,10,1,C.0,1,2,3,4,5,6,7,8,9,D.1,1,1,1,1,1,1,1,1,1,解析:解析 在 for循环中,指针 p从数组 a的首地址开始递增遍历到 a+9,即数组 a的最后一个元素,在循环体中输出当前 p所指数据的内容和字符,。所以选项 A正确。7.数据独立性是数据库技术的重要特点之一。所谓数据独立性,是指_。(分数:1.00)A.数据与程序独立存放B.不同

36、的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对 解析:解析 数据独立性是数据与程序的互不依赖性,即数据库中数据独立于应用程序,而不依赖于应用程序。8.设有如下说明typedef struct STlong a; int b;char c2; NEW;则下面叙述中正确的是_。(分数:1.00)A.以上的说明形式非法B.ST是一个结构体类型C.NEW是一个结构体类型 D.NEW是一个结构体变量解析:解析 本题考查结构体的定义。将题中的定义语句去掉前面的 typedef和后面的 NEW,就是一条完整的结构体定义语句。此时要声明该结构体变量时需用 struct

37、加结构体名一起来声明,即 struct ST一起构成一个结构体类型。若保留 NEW,就是一条结构体定义的同时声明一个结构体变量 NEW的语句。C语言中允许用 typedef说明一种新类型名,语法格式为:typedef 类型名 标识符;以后就可以用该标识符代替被说明的类型了。所以当前面存在 typedef时,NEW 就成了 struct ST的新名称,即 NEW成了一个结构体类型,而 sT只是一个结构体名。所以,选项 C正确。9.有以下程序int f1(int x,int y)return xy?x:y; int f2(int x,int y)return xy?y:x; main()int a

38、=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d); f=f1(f2(a,b),f2(c,d);g=a+b+c+d-e-f;printf(“%d,%d,%d/n“,e,f,g);程序运行后的输出结果是_。(分数:1.00)A.4,3,7 B.3,4,7C.5,2,7D.2,5,7解析:解析 本题考查函数的综合应用。函数 f1和 f2都只有一条语句。函数 f1的作用是返回两个数中的较大值,而函数 f2的作用是返回两个数中的较小值。语句 e=f2(f1(a,b),f1(c,d);使用两次调用f1()函数的返回值作为 f2()函数的参数,并将 f2()的返回值赋给 e

39、。可知 e的最终结果为 4,同样,f 的值为 3,所以 g=a+b+c+d-e-f=7。所以 A正确。10.以下选项中可作为 C语言合法常量的是_。(分数:1.00)A.-80. B.-080C.-8e1.0D.-80.0e解析:解析 选项 A是整型常量的十进制表示法,正确。八进制数表示法以 0或-0 开头,且“逢八进一”,所以选项 B错误。实型常量的指数表示法是用字母 e(或 E)将实数的小数部分和指数部分分开,字母e(或 E)之前的是小数部分,之后的是指数部分,这两部分都不能省略,且指数部分必须是整数,所以选项 C和 D错误,选 A。11.已有定义:char a=“xyz“,b=x,y,z

40、;,以下叙述中正确的是_。(分数:1.00)A.数组 a和 b的长度相同B.a数组长度小于 b数组长度C.a数组长度大于 b数组长度 D.上述说法都不对解析:解析 本题考查字符型一维数组的初始化。字符型一维数组在定义并初始化时,可以使用初始化列表或者字符串常量。因为字符串常量会自动在结尾添加/0字符作为字符串结束标志,所以用字符串常量的初始化列表项个数是字符串的长度加 1。题中的 chat a=“xyz“可以改写为 char a=x,y,z,/0)所以 a数组的长度大于 b数组的长度,选项 C正确。12.有以下程序main()int a=1,b;for(b=1;b=10;b+)if(a=8)b

41、reak;if(a%2=1)(a+=5;continue;a-=3;printf(“%d/n“,b);程序运行后的输出结果是_。(分数:1.00)A.3B.4 C.5D.6解析:解析 本题考查 break与 continue语句。在一个循环体中,若执行到 break,则跳出循环;若执行到 continue,则开始执行下一次的循环体。在本题的 for循环中,先判断 a是否大于等于 8,若是,则跳出循环。然后判断 a是否为奇数,若是则 a加上 5,且马上执行下一次的循环。若 a小于 8且是偶数,则减去 3。第一次循环开始时,a 为 1,所以 a加 5,并开始下一次循环。第二次循环开始时,a 为 6

42、,所以执行 a-=3;。第三次循环开始时,a 为 3,所以 a加 5且开始下一次循环。第四次循环开始时,a 为 8,所以跳出循环。而第一次循环时,b 为 1,以后每进行一次循环就累加 1,所以最后输出为 4。选项 B正确。13.以下叙述中正确的是_。(分数:1.00)A.预处理命令行必须位于源文件的开头B.在源文件的一行上可以有多条预处理命令C.宏名必须用大写字母表示D.宏替换不占用程序的运行时间 解析:解析 在 C语言中,凡是以“#”开头的行,都称为“编译预处理”命令行。可以出现在程序的任何一行的开始部位,每条预处理命令至少占一行,所以选项 A、B 错误。宏名可以是任何合法的 C语言标识符,

43、通常习惯用大写字母,所以 C错误。宏替换的过程在编译时期就已经完成了,因此,不会占用程序的运行时间,所以选项 D正确。14.有以下函数fun(char *a,char *b)while(*a!=/0) b+; return(*a-*b);该函数的功能是_。(分数:1.00)A.计算 a和 b所指字符串的长度之差B.将 b所指字符串连接到 a所指字符串中C.将 b所指字符串连接到 a所指字符串后面D.比较 a和 b所指字符串的大小 解析:解析 本题函数有两个字符指针的参数,且没有定义返回类型,C 语言规定函数的返回类型为 int时可以省略,所以本题函数返回的是 int型。该函数中先是一个 whi

44、le循环,循环条件是(*a!=/0)b+;,即 a、b 各向后移一位。当 a或 b中有一个结束或者所指的内容不一样时,就退出循环,执行返回语句,返回 a所指内容减去 b所指内容的差。若两个字符串相同,则最后返回/0-/0=0,否则返回这两个字符串的第一对不同的字符之差。由此可以看出,该函数实现的是对两个字符串的比较。所以选项 D正确。15.以下对结构体类型变量 td的定义中,错误的是_。(分数:1.00)A.typedef struct aaint n;float m;AA;AA td;B.struct aaint n;float m;td;struct aa td;C.structint n

45、;floatm;aa;struct aa td; D.structint n;float m;td;解析:解析 本题考查结构体变量的声明。选项 A使用 typedef语句给结构体 aa定义了一个新的名称AA,所以可用 AA直接声明结构体变量 td。选项 B中,前一句是定义结构体的同时声明结构体变量 td,后一句是使用结构体名 aa声明结构体变量 td,都正确。选项 C的第一条语句和选项 D都是使用无名结构体直接声明变量,是正确的,但选项 C的第二条语句使用结构体变量声明 td是错误的。所以选项 C符合题意。16.以下语句或语句组中,能正确进行字符串赋值的是_。(分数:1.00)A.char *sp;*sp=“right!“;B.char s10;s=“right!“;C.char s10;*s=“right!“;D.char sp=“right!“; 解析:解析 本题考查字符串常量的概念。字符串常量是

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