欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:1326066       资源大小:88KB        全文页数:28页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、二级 C 语言笔试-265 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.x、y、z 被定义为 int 型变量,若从键盘给 x、y、z 输入数据,正确的输入语句是 _。(分数:2.00)A.INPUT x、y、z;B.scanf(“%d %d %d“,B.a=0,b=0,c=0;C.if(aO);D.if(b=0)m=1;n=2;7.有以下程序:# includestdio.hmain()char c1=1,c2=2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);当运行时输入:a回车后

    2、,以下叙述正确的是 _。(分数:2.00)A.变量 c1 被赋予字符 a,c2 被赋予回车符B.程序将等待用户输入 2 个字符C.变量 c1 被赋予字符 a,c2 中仍是原有字符 2D.变量 c1 被赋予字符 a,c2 中将无确定值8.数字字符 0 的 ASCII 值为 48,若有以下程序:main()char a=1,b=2;printf(“%c,“,b+);printf(“%d/n“,b-(分数:2.00)A.;9.对长度为 n 的线性表进行顺序查找,在最坏的情况下所需要的比较次数为 _。(分数:2.00)A.log2nB.n/2C.nD.n+l10.设有定义:int k=1,m=2; f

    3、loat f=7;则以下选项中错误的表达式是 _。(分数:2.00)A.k=k=kB.-k+C.k% int(f)D.k=f=m11.以下程序的输出结果是 _。# defineSQR(X) X*Xmain()int a=10,k=2,m=1;a/SQR(k+m)/SQR(k+m);printf(“d/n“,(分数:1.00)A.;以下叙述中正确的是 _。(分数:1.00)A.程序输出大写字母 MB.程序输出小写字母 mC.格式说明符不足,编译出错D.程序运行时产生出错信息13.有以下程序:main()int a=3,b=4,c=5,d=2;if(ab)if(bc)printf(“%d“,d+

    4、1);elseprintf(“d“,+d+1);printf(“%d/n“,d);程序运行后的输出结果是 _。(分数:1.00)A.2B.3C.43D.4414.有以下程序:main()int a=2,4,6,8,10,y=0,x,*p;p=x3;x+)y+=px;printf(“%d/n“,y);程序运行后的输出,结果是 _。(分数:1.00)A.10B.11C.14D.1515.有以下程序:main()char k: int i;for(i=1:i3;i+)scanf(“%c“, 该函数的返回值是 _。(分数:1.00)A.不确定的值B.形参 p 中存放的值C.形参 p 所指存储单元中的值

    5、D.形参 p 的地址值21.有以下程序:main()int i=10,j=1;printf(“%d,%d/n“,i-,+j);执行后的输出结果是 _。(分数:2.00)A.9,2B.l0,2C.9,1D.10,122.有以下程序:main()int a33,*p,i;p=i9;i+)pi=i;for(i=0;i3;i+)printf(“%d“,a1i);程序运行后的输出结果是 _。(分数:2.00)A.0 1 2B.1 2 3C.2 3 4D.3 4 523.有以下程序:main()int x=0,y=5,z=31while(z-0,以下 C 语言表达式中与代数式 (分数:2.00)A.(a

    6、十B.*h/2B) (1/2)*(a+B) *hC.(a+B)D.h/2*(a+32.有以下程序:main()int i=1,j=1,k=2;if(j+k+)i6;i+)printf(“%2d“,*(p+);B.for(i=0;i6;i+)printf(“%2d“,*(p+i);C.for(i=0;i6;i+)printf(“%2d“,*p+);D.for(i=0;i6;i+)printf(“%2d“,(*p)+);34.若有定义:int x=0,*p=,则合法的赋值语句是 _。(分数:2.00)A.p=100;B.p=a5;C.p=a2+2;D.p=a+2;36.设有定义:int A,*pA

    7、=,以下 scanf 语句中能正确为变量 A 读入数据的是 _。(分数:2.00)A.scanf (“%d“,pA) ;B.sC.sD.s37.设有定义:int n=0,*p=,则以下选项中,正确的赋值语句是 _。(分数:2.00)A.p=1;B.*q=2C.q=pD.*p=538.以下程序运行后的输出结果是 _。main()int a=1,b=2,c=3;if(c=(分数:2.00)A.printf(“%d/n“,c);else printf(“%d/n“,B.;i5;i+)doif(i%3) continue;n+;while(! i);n+;printf(“n=%d/n“,n);程序执行

    8、后输出结果是 【1】 。(分数:2.00)填空项 1:_42.有以下程序:void f(int v,int w)int t;t=v;v=w;w=t;main()int x=1,y=3,z=2if(xy) f(x,y);else if(yz) f(y,z);else f (x,z);printf(“%d,%d,%d/n“,x,y,z);执行后的输出结果是 【2】 。(分数:2.00)填空项 1:_43.函数 YangHui 的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下:11 11 2 11 3 3 11 4 6 4 1其构成规律是:第 0 列元素和主对角线元素均为 1;其余元素为其

    9、左上方和正上方元素之和;数据的个数每行递增 1。请将程序补充完整。#define N 6void YangHui(int xNN)inti,j;x00=1;for(i=1;iN;i+)xi0=xii=1;for(j=1;ji;j+)xij= 【3】 ;(分数:2.00)填空项 1:_44.以下程序运行后的输出结果是 【4】 。main()char c; int n=100;float f=10; double x; x=f* =n/=(c=50);printf(“%d %f/n“,n,x);(分数:2.00)填空项 1:_45.有以下程序:main()int a=7,b=8,*p,*q,*r;

    10、p= q=r=p; p=q; q=r;printf(“%d,%d,%d,%d/n“,*p,*q,a,b);程序运行后的输出结果是 【5】 。(分数:2.00)填空项 1:_46.以下程序运行后的输出结果是 【6】 。# includestring.hmain()char ch=“abc“,x34;int ifor(i=0;i3;i+) strcpy(xi,ch);for(i=0;i3;i+)printf(“%s“,printf(“/n“);(分数:2.00)填空项 1:_47.有以下程序:fun(int a,int b)if(ab)return(a);else return(b);main()

    11、int x=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf(“%/d/n“,r);程序运行后的输出的结果是 【7】 。(分数:2.00)填空项 1:_48.有以下程序:# includestring.hstruct STUchar name10;int num;void f(char *name, int num)struct STU s2=“SunDan“,20044,“Penghua“,20045;num=s0.num;strcpy(name,s0.name);main()struct STU s2=“YangSan“,20041,“LiSiGuo“,2004

    12、2,*p;p=f(p-name,p-num);printf(“%s %d/n“,p-name,p-num);程序运行后的输出结果是 【8】 。(分数:2.00)填空项 1:_49.有以下程序:main()int a33,*p,i;p=for(i=0;i9;i+)pi=i+1;printf(“%d/n“,a12);程序运行后的输出结果是 【9】 。(分数:2.00)填空项 1:_50.有以下程序:# includestdio.hmain()int a=1,2,3,4,5,6,7,8,9,10,11,12, *p=a+5, *q=NULL;*q=*(p+5);printf(“%d%d/n“,*p,

    13、*q);程序运行后的输出结果是 【10】 。(分数:2.00)填空项 1:_51.有以下程序:void f(int*x,iht * 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(p)f(p,q);p+;q-;for(i=0;i8;i+)printf(“%d,“,ai);程序运行后的输出结果是 【11】 。(分数:2.00)填空项 1:_52.有以下程序:prt(int *m,int n)int i;for(i=0;in;i+)mi+;main()int a=1,2,3,4,5,i;prt(a,

    14、5);for(i=0;i5;i+)printf(“%d,“,ai;程序运行后的输出结果是 【12】 。(分数:2.00)填空项 1:_53.有以下程序:float f1(float n)return n*n; float f2(float n)return 2*n; main()float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;p1=f1;p2=f2;y1=p2(p1(2.0);t=P1;p1=p2;p2=t;y2=p2(p1(2.0);printf(“%3.0f,%3.0f/n“,y1,y2);程序运行后的输出结果是 【13】 。(分数:2.0

    15、0)填空项 1:_54.设有以下定义和语句:int a32=1,2,3,4,5,*p3;p0=a1;则*(p0+1)所代表的数组元素是 【14】 。(分数:2.00)填空项 1:_55.设函数 findbig 已定义为求 3 个数中的最大值,以下程序将利用函数指针调用 findbig 函数。请填空。main()int findbig(int,int,int);int(*f)(),x,y,z,big;f= 【15】 。scanf(“%d %d %d“,big=(*f)(x,y,z);printf(“big=%d/n“,big);(分数:2.00)填空项 1:_二级 C 语言笔试-265 答案解析

    16、(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.x、y、z 被定义为 int 型变量,若从键盘给 x、y、z 输入数据,正确的输入语句是 _。(分数:2.00)A.INPUT x、y、z;B.scanf(“%d %d %d“,B.a=0,b=0,c=0;C.if(aO);D.if(b=0)m=1;n=2; 解析:解析 选项 D 中有两条语句。7.有以下程序:# includestdio.hmain()char c1=1,c2=2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);当运行时输入:a回车后

    17、,以下叙述正确的是 _。(分数:2.00)A.变量 c1 被赋予字符 a,c2 被赋予回车符 B.程序将等待用户输入 2 个字符C.变量 c1 被赋予字符 a,c2 中仍是原有字符 2D.变量 c1 被赋予字符 a,c2 中将无确定值解析:解析 getchar 函数读入字符时,空格、回车符都作为字符读入,因此 A 正确。8.数字字符 0 的 ASCII 值为 48,若有以下程序:main()char a=1,b=2;printf(“%c,“,b+);printf(“%d/n“,b-(分数:2.00)A.;解析:解析 b+是先使用 b 再给 b 赋值 1,因此是先输出 2,再将 b 加 1,b=

    18、3,则第一条语句输出2,第二条语句输出 2。9.对长度为 n 的线性表进行顺序查找,在最坏的情况下所需要的比较次数为 _。(分数:2.00)A.log2nB.n/2C.n D.n+l解析:解析 顺序查找的最坏情况是所找的元素在线性表的最后,因此查找的比较次数是线性表的长度,即 n。10.设有定义:int k=1,m=2; float f=7;则以下选项中错误的表达式是 _。(分数:2.00)A.k=k=kB.-k+C.k% int(f) D.k=f=m解析:解析 A、D 选项是关系运算表达式,在 C 语言中,只要关系运算符两边是合法的表达式就可以了。C 选项中,%只能对整型进行运算,其中对 f

    19、 进行了强制类型转换,但是转换的表达式错了,应为:(int)(f)。11.以下程序的输出结果是 _。# defineSQR(X) X*Xmain()int a=10,k=2,m=1;a/SQR(k+m)/SQR(k+m);printf(“d/n“,(分数:1.00)A.;以下叙述中正确的是 _。(分数:1.00)A.程序输出大写字母 MB.程序输出小写字母 m C.格式说明符不足,编译出错D.程序运行时产生出错信息解析:解析 输出项表是一个逗号表达式,它的值为 a2,因此输出的是 a2 的值。13.有以下程序:main()int a=3,b=4,c=5,d=2;if(ab)if(bc)prin

    20、tf(“%d“,d+ 1);elseprintf(“d“,+d+1);printf(“%d/n“,d);程序运行后的输出结果是 _。(分数:1.00)A.2 B.3C.43D.44解析:解析 本题考查嵌套 if 语句中 else 的配对。本题中 else 和第二个 if 即 if(bc)配对。由于ab 不成立,因此整个程序只输出 printf(“%d/n“,d),即输出 2。14.有以下程序:main()int a=2,4,6,8,10,y=0,x,*p;p=x3;x+)y+=px;printf(“%d/n“,y);程序运行后的输出,结果是 _。(分数:1.00)A.10B.11C.14 D.

    21、15解析:解析 因为 pi+)scanf(“%c“, 该函数的返回值是 _。(分数:1.00)A.不确定的值B.形参 p 中存放的值C.形参 p 所指存储单元中的值 D.形参 p 的地址值解析:解析 函数 fun 的形参是指针变量,*p 的含义是指针变量 p 所指存储单元的内容,因此正确答案为 C。21.有以下程序:main()int i=10,j=1;printf(“%d,%d/n“,i-,+j);执行后的输出结果是 _。(分数:2.00)A.9,2B.l0,2 C.9,1D.10,1解析:解析 本题中-运算符位于运算变量 i 右侧,+运算符位于变量 j 的左侧,所以先输出 i 的当前值 1

    22、0,然后 i 再加 1;j 先加 1 得 2,然后输出。22.有以下程序:main()int a33,*p,i;p=i9;i+)pi=i;for(i=0;i3;i+)printf(“%d“,a1i);程序运行后的输出结果是 _。(分数:2.00)A.0 1 2B.1 2 3C.2 3 4D.3 4 5 解析:解析 p 指向的 a 的首地址,由于 C 语言是行优先存储的,一维数组 p 就依次存放了 a 中从第 0行到第 2 行的所有元素,因此 a1i就对应了 p3p5。23.有以下程序:main()int x=0,y=5,z=31while(z-0第三次执行 while 语句时,z=10,然后执

    23、行 z-得 x0,执行+x 得 x=35,条件成立,执行 y=y-1=3-1= 2;第四次执行 while 语句时因 z=0,z0 条件不成立,同时执行 c-得 z=-1。即执行完 while 循环后 x3、y2、z-1。24.在软件设计中,不属于过程设计工具的是 _。(分数:2.00)A.PDL(过程设计语言)B.PAD 图C.N-S 图 D.DFD 图解析:解析 DFD(Data Flow Diagram)是数据流图结构化分析的常用工具。软件设计中,常见的过程设计工具如下。(1)图形工具:程序流程图,N-S,PAD,HIPO(2)表格工具:判定表(3)语言工具:PDL(过程设计语言)25.

    24、以下能正确定义且赋初值的语句是 _。(分数:2.00)A.iht=n1=n2=10; B.char c=32;C.float f=f+1.1;D.double x=12.3E2.5解析:解析 B 选项中 32 应加单引号,C 选项中 f=f+1.1 两边都是不定值,不正确;D 中 E 后要用整型数,且 E 后必须要有数字。26.在 16 位 C 编译系统上,若定义 long a;,则能给变量 a 赋值 40000 的正确语句是 _。(分数:2.00)A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*1OL; 解析:解析 本题中 a 是长

    25、整型变量,故应将一个长整型常量赋值给 a,选项 A、B、C 中的数值的末尾都没有加 L 或 1,所以不正确。27.下列叙述中正确的是 _。(分数:2.00)A.程序设计就是编制程序B.程序测试必须由程序员自己去做C.程序经调试改错后还应进行再测试 D.程序经调度改错后不必进行再测试解析:解析 软件测试包括需求分析、结构功能模块设计、编制程序等阶段。程序的测试可以由专门的测试人员来完成。程序经调试改错后还应进行再测试。28.若有以下说明和语句:int c45,(*p)5;p=C;能够正确引用 c 数组元素的是 _。(分数:2.00)A.p+1B.*(p+1)C.*(p+1)+3D.*(p0+2)

    26、 解析:解析 p 是指向一个一维数组的指针,选项 A、B 和 C 中都是地址,而非数组元素。选项 D 正确。29.有以下程序中若有如下说明和定义语句;char fun(char*);main()char * s=“one“,a5=0,(*f1)()=fun,ch;以下选项中对函数 fun 的正确调用语句是 _。(分数:2.00)A.(*f1)(a); B.*f1(*s);C.fun(,以下 C 语言表达式中与代数式 (分数:2.00)A.(a 十B.*h/2B) (1/2)*(a+B) *h C.(a+B)D.h/2*(a+解析:解析 选项 B 错误,不符合题意。32.有以下程序:main()

    27、int i=1,j=1,k=2;if(j+k+)i6;i+)printf(“%2d“,*(p+);B.for(i=0;i6;i+)printf(“%2d“,*(p+i);C.for(i=0;i6;i+)printf(“%2d“,*p+);D.for(i=0;i6;i+)printf(“%2d“,(*p)+); 解析:解析 选项 D 中(*p)+的意思是将 p 所指向的存储单元的值加 1,与题意不符,错误。34.若有定义:int x=0,*p=,则合法的赋值语句是 _。(分数:2.00)A.p=100;B.p=a5;C.p=a2+2;D.p=a+2; 解析:解析 因 p 是指针变量,故选项 D

    28、正确。36.设有定义:int A,*pA=,以下 scanf 语句中能正确为变量 A 读入数据的是 _。(分数:2.00)A.scanf (“%d“,pA) ; B.sC.sD.s解析:解析 选项 B 中不是变量 A 的地址,错误;选项 C 是指针 pA 的地址,错误;选项 D 中*pA 表示变量 A 的值,错误。37.设有定义:int n=0,*p=,则以下选项中,正确的赋值语句是 _。(分数:2.00)A.p=1;B.*q=2C.q=pD.*p=5 解析:解析 本题中 n 是 int 型变量,p 是指向 int 型的指针变量,q 是指向指针的指针变量,故正确答案为 D。38.以下程序运行后

    29、的输出结果是 _。main()int a=1,b=2,c=3;if(c=(分数:2.00)A.printf(“%d/n“,c);else printf(“%d/n“,B.;i5;i+)doif(i%3) continue;n+;while(! i);n+;printf(“n=%d/n“,n);程序执行后输出结果是 【1】 。(分数:2.00)填空项 1:_ (正确答案:n=4)解析:解析 continue 语句是结束本次循环。i=2 时因 i%3 条件为真,故不执行 do-while 语句中的n+,只执行一次 n+得 n=1;i=3 时,i%3 条件为假,执行两次 n+得 n=3;i=4 时,

    30、i%3 条件为真,执行一次 n+得 n=4。42.有以下程序:void f(int v,int w)int t;t=v;v=w;w=t;main()int x=1,y=3,z=2if(xy) f(x,y);else if(yz) f(y,z);else f (x,z);printf(“%d,%d,%d/n“,x,y,z);执行后的输出结果是 【2】 。(分数:2.00)填空项 1:_ (正确答案:1,3,2)解析:解析 函数 f 的形参是简单变量,形参的改变不能影响实参,所以正确答案为 1,3,2。43.函数 YangHui 的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下:11 1

    31、1 2 11 3 3 11 4 6 4 1其构成规律是:第 0 列元素和主对角线元素均为 1;其余元素为其左上方和正上方元素之和;数据的个数每行递增 1。请将程序补充完整。#define N 6void YangHui(int xNN)inti,j;x00=1;for(i=1;iN;i+)xi0=xii=1;for(j=1;ji;j+)xij= 【3】 ;(分数:2.00)填空项 1:_ (正确答案:xi-1j-1+xi-1j)解析:解析 在程序外层 i 循环中先将数组的第 0 列元素和主对角线元素置 1,内层 j 循环的功能是给其余元素赋值,根据题意,空格内应填入 xi-1j-1)+xi-1

    32、j。44.以下程序运行后的输出结果是 【4】 。main()char c; int n=100;float f=10; double x; x=f* =n/=(c=50);printf(“%d %f/n“,n,x);(分数:2.00)填空项 1:_ (正确答案:2 20.000000)解析:解析 注意区分运算符的优先级。先是给 c 赋值,然后计算 xf*=n/=50,得 x=f*=2,最后有x=20。x 输出是按浮点数的形式输出的,小数点后的 0 不能少。45.有以下程序:main()int a=7,b=8,*p,*q,*r;p= q=r=p; p=q; q=r;printf(“%d,%d,%

    33、d,%d/n“,*p,*q,a,b);程序运行后的输出结果是 【5】 。(分数:2.00)填空项 1:_ (正确答案:8,7,7,8)解析:解析 本题中执行语句 p=int ifor(i=0;i3;i+) strcpy(xi,ch);for(i=0;i3;i+)printf(“%s“,printf(“/n“);(分数:2.00)填空项 1:_ (正确答案:abebcc)解析:解析 strcpy(xi,ch),使得 x 数组的第 i 行存放“abc“,第一个循环就使数组 x 的每一行都存放了“abc“,printf(“%s“,else return(b);main()int x=3,y=8,z=

    34、6,r;r=fun(fun(x,y),2*z);printf(“%/d/n“,r);程序运行后的输出的结果是 【7】 。(分数:2.00)填空项 1:_ (正确答案:12)解析:解析 函数 fun 的功能是求两个数当中的最大值。语句 rfun(fun(x,y),2*z)的执行过程为:首先计算 fun(x,y),因 x=3、y=8,所以结果为 8;然后计算 fun(8,2,*z),即计算 fun(8,12),所以 r=12。48.有以下程序:# includestring.hstruct STUchar name10;int num;void f(char *name, int num)stru

    35、ct STU s2=“SunDan“,20044,“Penghua“,20045;num=s0.num;strcpy(name,s0.name);main()struct STU s2=“YangSan“,20041,“LiSiGuo“,20042,*p;p=f(p-name,p-num);printf(“%s %d/n“,p-name,p-num);程序运行后的输出结果是 【8】 。(分数:2.00)填空项 1:_ (正确答案:SunDan 20042)解析:解析 f 函数中形参 1 用的是显式传地址的方式,因此 p-name 的值发生改变,而形参 2 用的传值的方式,在调用时不改变实参的值

    36、,因此 p-num 的值不发生变化。49.有以下程序:main()int a33,*p,i;p=for(i=0;i9;i+)pi=i+1;printf(“%d/n“,a12);程序运行后的输出结果是 【9】 。(分数:2.00)填空项 1:_ (正确答案:6)解析:解析 本题定义了二维数组 a 和指针变量 p,p 指向数组的首地址,for 循环语句的功能是给数组元素赋值,结果为 a 00=1、a01=2、a02=3、a10=4、a11=5、a12=6、a20=7、a21=8、a22=9。故 print函数的输出结果为 6。50.有以下程序:# includestdio.hmain()int a

    37、=1,2,3,4,5,6,7,8,9,10,11,12, *p=a+5, *q=NULL;*q=*(p+5);printf(“%d%d/n“,*p,*q);程序运行后的输出结果是 【10】 。(分数:2.00)填空项 1:_ (正确答案:运行后报错)解析:解析 指针 q 没有指向确定的存储单元,故不能赋值。51.有以下程序:void f(int*x,iht * 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(p)f(p,q);p+;q-;for(i=0;i8;i+)printf(“%d,“,ai

    38、);程序运行后的输出结果是 【11】 。(分数:2.00)填空项 1:_ (正确答案:8,7,6,5,4,3,2,1)解析:解析 函数 f 是将 x、y 指针的内容互换,整个 while 循环是将 a0与 a7互换,a2与 a5互换,a3与 a4互换。52.有以下程序: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;程序运行后的输出结果是 【12】 。(分数:2.00)填空项 1:_ (正确答案:2,3,4,5,6)解析:解析 函数 p

    39、rt(a,5)的功能是使得 a 数组中,从 a0a4中元素均增 1。53.有以下程序:float f1(float n)return n*n; float f2(float n)return 2*n; main()float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;p1=f1;p2=f2;y1=p2(p1(2.0);t=P1;p1=p2;p2=t;y2=p2(p1(2.0);printf(“%3.0f,%3.0f/n“,y1,y2);程序运行后的输出结果是 【13】 。(分数:2.00)填空项 1:_ (正确答案:8,16)解析:解析 float(

    40、*p1)(float)是定义 p1 为指向函数的 float 型的指针变量。因此 p1=f1;p2=f2;表示 p1 指向函数 f1,p2 指向函数 f2,故所有 y1=p2(p1(2.0)=f2(f1(2.0)=8;后面将 p1 与 p2 互换,y2=f1(f2(2.0)=16。54.设有以下定义和语句:int a32=1,2,3,4,5,*p3;p0=a1;则*(p0+1)所代表的数组元素是 【14】 。(分数:2.00)填空项 1:_ (正确答案:a11)解析:解析 p 是一个指针数组,p0指向数组 a10。*(p0+1)代表数组 a11。55.设函数 findbig 已定义为求 3 个

    41、数中的最大值,以下程序将利用函数指针调用 findbig 函数。请填空。main()int findbig(int,int,int);int(*f)(),x,y,z,big;f= 【15】 。scanf(“%d %d %d“,big=(*f)(x,y,z);printf(“big=%d/n“,big);(分数:2.00)填空项 1:_ (正确答案:findbig)解析:解析 f 是指向函数的指针变量,根据题意要求,空格处应填入 findbig。本题目考查:C 语言中指向函数的指针变量定义的一般形式为;数据类型标识符(*指针变量名)();“数据类型标识符”表示函数返回值的类型。函数的调用可以通过函数名调用,也可以通过函数指针调用。在给函数指针变量赋值时,只需给出函数名而不必给出参数。(*p)()表示定义一个指向函数的指针变量,专门用来存放函数的入口地址,可以先后指向不同的指针变量。用函数指针调用函数时,只需要将(*p)代替函数名即可,在(*p)之后的括号中,根据需要写上参数。


    注意事项

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开