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

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

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

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

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

    1、二级 C 语言笔试 311 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:70.00)1.在软件设计中,不属于过程设计工具的是 _。(分数:2.00)A.PDL(过程设计语言)B.PAD 图C.N-S 图D.DFD 图2.下列选项中,合法的 C 语言关键字是 _。(分数:2.00)A.VARB.cherC.integerD.default3.以下程序的输出结果是 _。 # defineSQR(X) X*X main() int a=10,k=2,m=1; a/SQR(k+m)/SQR(k+m); printf(“d/n“,a); (分数:2.00)

    2、A.16B.2C.9D.14.若有以下说明和语句: int c45,(*p)5; p=C; 能够正确引用 c 数组元素的是 _。(分数:2.00)A.p+1B.*(p+1)C.*(p+1)+3D.*(p0+2)5.x、y、z 被定义为 int 型变量,若从键盘给 x、y、z 输入数据,正确的输入语句是 _。(分数:2.00)A.INPUT x、y、z;B.scanf(“%d %d %d“,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 59.已有定义:in

    3、t i,a10,*p;,则合法的赋值语句是 _。(分数:2.00)A.p=100;B.p=a5;C.p=a2+2;D.p=a+2;10.下列描述中正确的是 _。(分数:2.00)A.程序就是软件B.软件开发不受计算机系统的限制C.软件既是逻辑实体,又是物理实体D.软件是程序、数据与相关文档的集合11.以下程序运行后的输出结果是 _。 main() int a=1,b=2,c=3; if(c=a) printf(“%d/n“,c); else printf(“%d/n“,b); (分数:1.00)A.2B.3C.5D.112.数字字符 0 的 ASCII 值为 48,若有以下程序: main()

    4、 char a=1,b=2; printf(“%c,“,b+); printf(“%d/n“,b-a); 程序运行后的输出结果是 _。(分数:1.00)A.3,2B.50,2C.2,2D.2,5013.下列叙述中正确的是 _。(分数:1.00)A.程序设计就是编制程序B.程序测试必须由程序员自己去做C.程序经调试改错后还应进行再测试D.程序经调度改错后不必进行再测试14.以下能正确定义且赋初值的语句是 _。(分数:1.00)A.iht=n1=n2=10;B.char c=32;C.float f=f+1.1;D.double x=12.3E2.515.对长度为 n 的线性表进行顺序查找,在最坏

    5、的情况下所需要的比较次数为 _。(分数:1.00)A.log2nB.n/2C.nD.n+l16.有以下程序: main() int i=10,j=1; printf(“%d,%d/n“,i-,+j); 执行后的输出结果是 _。(分数:1.00)A.9,2B.l0,2C.9,1D.10,117.有以下程序: main() char al=Ma2=m; printf(“%c/n“,(al,a2); 以下叙述中正确的是 _。(分数:1.00)A.程序输出大写字母 MB.程序输出小写字母 mC.格式说明符不足,编译出错D.程序运行时产生出错信息18.已定义以下函数: fun(int*p) return

    6、 *p; 该函数的返回值是 _。(分数:1.00)A.不确定的值B.形参 p 中存放的值C.形参 p 所指存储单元中的值D.形参 p 的地址值19.以下程序运行后的输出结果是 _。 main() char m; m=B+32;printf(“%c/n“,m); (分数:1.00)A.aB.bC.cD.d20.设有定义: int k=1,m=2; float f=7; 则以下选项中错误的表达式是 _。(分数:1.00)A.k=k=kB.-k+C.k% int(D.k=f=m21.有以下程序: # includestdio.h main() char c1=1,c2=2; c1=getchar()

    7、;c2=getchar();putchar(c1);putchar(c2); 当运行时输入:a回车后,以下叙述正确的是 _。(分数:2.00)A.变量 c1 被赋予字符 a,c2 被赋予回车符B.程序将等待用户输入 2 个字符C.变量 c1 被赋予字符 a,c2 中仍是原有字符 2D.变量 c1 被赋予字符 a,c2 中将无确定值22.有以下程序: main() int i=1,j=1,k=2; if(j+k+)i+) scanf(“%c“, main() int s8=1,3,5,2,4,6,i,d=0; for(i=0;f(si);i+)d+=si; printf(“%d/n“,d); 程

    8、序运行后的输出结果是 _。(分数:2.00)A.9B.11C.19D.2129.有以下定义: # includestdio.h char al0,*b=a; 不能给 a 数组输入字符串的语句是 _。(分数:2.00)A.gets()B.gets(a0);C.gets(i6;i+)printf(“%2d“,*(p+);B.for(i=0;i6;i+)printf(“%2d“,*(p+);C.for(i=0;i6;i+)printf(“%2d“,*p+);D.for(i=0;i6;i+)printf(“%2d“,(*+);31.以下能正确定义二维数组的是 _。(分数:2.00)A.int a3;B

    9、.int a3=2*3;C.int a3=;D.int a23=1,2,3,4;32.以下叙述中正确的是 _。(分数:2.00)A.用 C 语言实现的算法必须要有输入和输出操作B.用 C 语言实现的算法可以没有输出但必须要有输入C.用 C 程序实现的算法可以没有输入但必须要有输出D.用 C 程序实现的算法可以既没有输入也没有输出33.设有定义:int n=0,*p=,则以下选项中,正确的赋值语句是 _。(分数:2.00)A.p=1;B.*q=2C.q=pD.*p=534.以下 4 个选项中,不能被看作是一条语句的是 _。(分数:2.00)A.;B.a=0,b=0,c=0;C.if(a;D.if

    10、(b=0)m=1;n=2;35.有以下定义语句: double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是 _。(分数:2.00)A.a=a+b=b+B.w%(ina+C.(c+%(inaD.w=a=b;36.有以下程序: main() int x=0,y=5,z=31 while(z-0x3;x+)y+=px; printf(“%d/n“,y); 程序运行后的输出,结果是 _。(分数:2.00)A.10B.11C.14D.1538.有以下程序中若有如下说明和定义语句; char fun(char*); main() char * s=“one“,a

    11、5=0,(*f1)()=fun,ch; 以下选项中对函数 fun 的正确调用语句是 _。(分数:2.00)A.(*f1)(;B.*f1(*;C.fun(i5;i+) do if(i%3) continue; n+; while(! i); n+; printf(“n=%d/n“,n); 程序执行后输出结果是U 【1】 /U。(分数: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=2 if(xy) f(x,y); else if(yz) f(y,z); else f (x,z);

    12、 printf(“%d,%d,%d/n“,x,y,z); 执行后的输出结果是U 【2】 /U。(分数:2.00)填空项 1:_43.函数 YangHui 的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 其构成规律是: 第 0 列元素和主对角线元素均为 1; 其余元素为其左上方和正上方元素之和; 数据的个数每行递增 1。 请将程序补充完整。 #define N 6 void YangHui(int xNN) inti,j;x00=1; for(i=1;iN;i+) xi0=xii=1; for(j=1;ji;j+) xij

    13、=U 【3】 /U; (分数:2.00)填空项 1:_44.以下程序运行后的输出结果是U 【4】 /U。 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; p= q= r=p; p=q; q=r; printf(“%d,%d,%d,%d/n“,*p,*q,a,b); 程序运行后的输出结果是U 【5】 /U。(分数:2.00)填空项 1:_46.以下程序运行后的输

    14、出结果是U 【6】 /U。 # includestring.h main() char ch=“abc“,x34;int i for(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() int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf(“%/d/n“,r); 程序运行后的输出的结果是U 【7】 /U。(分数:

    15、2.00)填空项 1:_48.有以下程序: # includestring.h struct STU char 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“,20042,*p; p=f(p-name,p-num); printf(“%s %d/n“,p-name,p-num); 程序运行后的输出结果是

    16、U 【8】 /U。(分数:2.00)填空项 1:_49.有以下程序: main() int a33,*p,i; p= for(i=0;i9;i+)pi=i+1; printf(“%d/n“,a12); 程序运行后的输出结果是U 【9】 /U。(分数:2.00)填空项 1:_50.有以下程序: # includestdio.h main() 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,*q); 程序运行后的输出结果是U 【10】 /U。(分数:2.00)填空项 1:_51.有以下

    17、程序: 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); 程序运行后的输出结果是U 【11】 /U。(分数: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,5); for(i=0;i5;i+)printf(

    18、“%d,“,ai; 程序运行后的输出结果是U 【12】 /U。(分数: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); 程序运行后的输出结果是U【13】 /U。(分数:2.00)填空项 1:

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

    20、311 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:70.00)1.在软件设计中,不属于过程设计工具的是 _。(分数:2.00)A.PDL(过程设计语言)B.PAD 图C.N-S 图 D.DFD 图解析:解析 DFD(Data Flow Diagram)是数据流图结构化分析的常用工具。 软件设计中,常见的过程设计工具如下。 (1)图形工具:程序流程图,N-S,PAD,HIPO (2)表格工具:判定表 (3)语言工具:PDL(过程设计语言)2.下列选项中,合法的 C 语言关键字是 _。(分数:2.00)A.VARB.cherC.integerD.de

    21、fault 解析:解析 本题考查 C 语言基本知识。本题中 default 是 C 语言的关键字。3.以下程序的输出结果是 _。 # defineSQR(X) X*X main() int a=10,k=2,m=1; a/SQR(k+m)/SQR(k+m); printf(“d/n“,a); (分数:2.00)A.16B.2C.9D.1 解析:解析 本题考查带参数的宏调用。a/=SQR(k+m)/SQR(k+m)进行宏替换后得: a=a/(SQR(k+m)/SQR(k+m)=a/(k+m*k+m/k+m*k+m)=10/(2+1*2+1/2+1*2+1) =10/(2+2+0+2+1)=10/

    22、7/1。4.若有以下说明和语句: int c45,(*p)5; p=C; 能够正确引用 c 数组元素的是 _。(分数:2.00)A.p+1B.*(p+1)C.*(p+1)+3D.*(p0+2) 解析:解析 p 是指向一个一维数组的指针,选项 A、B 和 C 中都是地址,而非数组元素。选项 D 正确。5.x、y、z 被定义为 int 型变量,若从键盘给 x、y、z 输入数据,正确的输入语句是 _。(分数:2.00)A.INPUT x、y、z;B.scanf(“%d %d %d“,i9;i+)pi=i; for(i=0;i3;i+)printf(“%d“,a1i); 程序运行后的输出结果是 _。(

    23、分数:2.00)A.0 1 2B.1 2 3C.2 3 4D.3 4 5 解析:解析 p 指向的 a 的首地址,由于 C 语言是行优先存储的,一维数组 p 就依次存放了 a 中从第 0行到第 2 行的所有元素,因此 a1i就对应了 p3p5。9.已有定义:int i,a10,*p;,则合法的赋值语句是 _。(分数:2.00)A.p=100;B.p=a5;C.p=a2+2;D.p=a+2; 解析:解析 因 p 是指针变量,故选项 D 正确。10.下列描述中正确的是 _。(分数:2.00)A.程序就是软件B.软件开发不受计算机系统的限制C.软件既是逻辑实体,又是物理实体D.软件是程序、数据与相关文

    24、档的集合 解析:解析 程序是软件的一部分,软件是一种逻辑实体,它的开发、运行都依赖计算机系统,因此出现了软件的移植问题。11.以下程序运行后的输出结果是 _。 main() int a=1,b=2,c=3; if(c=a) printf(“%d/n“,c); else printf(“%d/n“,b); (分数:1.00)A.2B.3 C.5D.1解析:解析 根据 if 条件,语句 c=a 的值为 1,因此输出 c 值为 3。12.数字字符 0 的 ASCII 值为 48,若有以下程序: main() char a=1,b=2; printf(“%c,“,b+); printf(“%d/n“,

    25、b-a); 程序运行后的输出结果是 _。(分数:1.00)A.3,2B.50,2C.2,2 D.2,50解析:解析 b+是先使用 b 再给 b 赋值 1,因此是先输出 2,再将 b 加 1,b=3,则第一条语句输出2,第二条语句输出 2。13.下列叙述中正确的是 _。(分数:1.00)A.程序设计就是编制程序B.程序测试必须由程序员自己去做C.程序经调试改错后还应进行再测试 D.程序经调度改错后不必进行再测试解析:解析 软件测试包括需求分析、结构功能模块设计、编制程序等阶段。程序的测试可以由专门的测试人员来完成。程序经调试改错后还应进行再测试。14.以下能正确定义且赋初值的语句是 _。(分数:

    26、1.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 后必须要有数字。15.对长度为 n 的线性表进行顺序查找,在最坏的情况下所需要的比较次数为 _。(分数:1.00)A.log2nB.n/2C.n D.n+l解析:解析 顺序查找的最坏情况是所找的元素在线性表的最后,因此查找的比较次数是线性表的长度,即 n。16.有以下程序: main() int i=10,j=1; printf(“%

    27、d,%d/n“,i-,+j); 执行后的输出结果是 _。(分数:1.00)A.9,2B.l0,2 C.9,1D.10,1解析:解析 本题中-运算符位于运算变量 i 右侧,+运算符位于变量 j 的左侧,所以先输出 i 的当前值 10,然后 i 再加 1;j 先加 1 得 2,然后输出。17.有以下程序: main() char al=Ma2=m; printf(“%c/n“,(al,a2); 以下叙述中正确的是 _。(分数:1.00)A.程序输出大写字母 MB.程序输出小写字母 m C.格式说明符不足,编译出错D.程序运行时产生出错信息解析:解析 输出项表是一个逗号表达式,它的值为 a2,因此输

    28、出的是 a2 的值。18.已定义以下函数: fun(int*p) return *p; 该函数的返回值是 _。(分数:1.00)A.不确定的值B.形参 p 中存放的值C.形参 p 所指存储单元中的值 D.形参 p 的地址值解析:解析 函数 fun 的形参是指针变量,*p 的含义是指针变量 p 所指存储单元的内容,因此正确答案为 C。19.以下程序运行后的输出结果是 _。 main() char m; m=B+32;printf(“%c/n“,m); (分数:1.00)A.aB.b C.cD.d解析:解析 字符参与运算的值是其对应的 ASCII 码,小写英文字符的 ASCII 值比大写英文字符的

    29、ASCII 值大 32,执行语句 m=B+32;得出结果 m=66+32=98,以“%c”的格式输出结果为 b。20.设有定义: int k=1,m=2; float f=7; 则以下选项中错误的表达式是 _。(分数:1.00)A.k=k=kB.-k+C.k% int( D.k=f=m解析:解析 A、D 选项是关系运算表达式,在 C 语言中,只要关系运算符两边是合法的表达式就可以了。C 选项中,%只能对整型进行运算,其中对 f 进行了强制类型转换,但是转换的表达式错了,应为:(int)(f)。21.有以下程序: # includestdio.h main() char c1=1,c2=2; c

    30、1=getchar();c2=getchar();putchar(c1);putchar(c2); 当运行时输入:a回车后,以下叙述正确的是 _。(分数:2.00)A.变量 c1 被赋予字符 a,c2 被赋予回车符 B.程序将等待用户输入 2 个字符C.变量 c1 被赋予字符 a,c2 中仍是原有字符 2D.变量 c1 被赋予字符 a,c2 中将无确定值解析:解析 getchar 函数读入字符时,空格、回车符都作为字符读入,因此 A 正确。22.有以下程序: main() int i=1,j=1,k=2; if(j+k+)i+) scanf(“%c“, main() int s8=1,3,5,

    31、2,4,6,i,d=0; for(i=0;f(si);i+)d+=si; printf(“%d/n“,d); 程序运行后的输出结果是 _。(分数:2.00)A.9 B.11C.19D.21解析:解析 本题中 d=s0+s1+s2=1+3+5=9。29.有以下定义: # includestdio.h char al0,*b=a; 不能给 a 数组输入字符串的语句是 _。(分数:2.00)A.gets()B.gets(a0); C.gets(i6;i+)printf(“%2d“,*(p+);B.for(i=0;i6;i+)printf(“%2d“,*(p+);C.for(i=0;i6;i+)pri

    32、ntf(“%2d“,*p+);D.for(i=0;i6;i+)printf(“%2d“,(*+); 解析:解析 选项 D 中(*p)+的意思是将 p 所指向的存储单元的值加 1,与题意不符,错误。31.以下能正确定义二维数组的是 _。(分数:2.00)A.int a3;B.int a3=2*3; C.int a3=;D.int a23=1,2,3,4;解析:解析 (1)二维数组的定义 二维数组的定义方式为:类型说明符数组名常量表达式常量表达式。二维数组在内存中是按行优先的顺序存放的,即先存放第一行的元素,再存放第二行的元素,依次类推。(2)二维数组元素的引用 二维数组元素的表示形式为:数组名下

    33、标下标,下标可以是整型常量或整型表达式其范围为:0(常量表达式 -1)。 (3)二维数组的初始化 可以用以下方法对二维数组元素初始化: 分行给二维数组赋初值 例如:int a22=1,2,3,4; 这种赋值方式比较直观,把第 1 个大括号内的数据赋给第 1 行的元素,第 2 个大括号内的数据赋给第 2 行的元素,即按行赋值。 可以将所有数据写在一个大括号内,按数组排列的顺序对各个元素赋初值。 可以对部分元素赋初值,没有初始化的元素值为 0。 如果对全部数组元素赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省略。32.以下叙述中正确的是 _。(分数:2.00)A.用 C 语言实

    34、现的算法必须要有输入和输出操作B.用 C 语言实现的算法可以没有输出但必须要有输入C.用 C 程序实现的算法可以没有输入但必须要有输出 D.用 C 程序实现的算法可以既没有输入也没有输出解析:解析 根据算法的特性,算法必须有。个或多个输入,和 1 个或多个输出。33.设有定义:int n=0,*p=,则以下选项中,正确的赋值语句是 _。(分数:2.00)A.p=1;B.*q=2C.q=pD.*p=5 解析:解析 本题中 n 是 int 型变量,p 是指向 int 型的指针变量,q 是指向指针的指针变量,故正确答案为 D。34.以下 4 个选项中,不能被看作是一条语句的是 _。(分数:2.00)

    35、A.;B.a=0,b=0,c=0;C.if(a;D.if(b=0)m=1;n=2; 解析:解析 选项 D 中有两条语句。35.有以下定义语句: double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是 _。(分数:2.00)A.a=a+b=b+B.w%(ina+C.(c+%(ina D.w=a=b;解析:解析 取模运算的操作数必须是整型或长整数类型,因此 C 正确。36.有以下程序: main() int x=0,y=5,z=31 while(z-0第三次执行 while 语句时,z=10,然后执行 z-得 x0,执行+x 得x=35,条件成立,执行

    36、 y=y-1=3-1= 2;第四次执行 while 语句时因 z=0,z0 条件不成立,同时执行c-得 z=-1。即执行完 while 循环后 x3、y2、z-1。37.有以下程序: main() int a=2,4,6,8,10,y=0,x,*p; p=x3;x+)y+=px; printf(“%d/n“,y); 程序运行后的输出,结果是 _。(分数:2.00)A.10B.11C.14 D.15解析:解析 因为 pi5;i+) do if(i%3) continue; n+; while(! i); n+; printf(“n=%d/n“,n); 程序执行后输出结果是U 【1】 /U。(分数

    37、: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 时,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=2 if(xy) f(x,y); else if(yz) f(y,z); else f (x,z); printf(“%d,%d,%d/n“,x,

    38、y,z); 执行后的输出结果是U 【2】 /U。(分数:2.00)填空项 1:_ (正确答案:1,3,2)解析:解析 函数 f 的形参是简单变量,形参的改变不能影响实参,所以正确答案为 1,3,2。43.函数 YangHui 的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 其构成规律是: 第 0 列元素和主对角线元素均为 1; 其余元素为其左上方和正上方元素之和; 数据的个数每行递增 1。 请将程序补充完整。 #define N 6 void YangHui(int xNN) inti,j;x00=1; for(i=1;

    39、iN;i+) xi0=xii=1; for(j=1;ji;j+) xij=U 【3】 /U; (分数:2.00)填空项 1:_ (正确答案:xi-1j-1+xi-1j)解析:解析 在程序外层 i 循环中先将数组的第 0 列元素和主对角线元素置 1,内层 j 循环的功能是给其余元素赋值,根据题意,空格内应填入 xi-1j-1)+xi-1j。44.以下程序运行后的输出结果是U 【4】 /U。 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:_

    40、 (正确答案: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,%d,%d/n“,*p,*q,a,b); 程序运行后的输出结果是U 【5】 /U。(分数:2.00)填空项 1:_ (正确答案:8,7,7,8)解析:解析 本题中执行语句 p=int i for(i=0;i3;i+) strcpy(xi,c

    41、h); 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=6,r; r=fun(fun(x,y),2*z); printf(“%/d/n“,r); 程序运行后的输出的结果是U 【7】 /U。(分数:2.00)填空项 1:_ (正确答案:12)解析:解析 函数 fun 的功能是

    42、求两个数当中的最大值。语句 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.h struct STU char 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=

    43、“YangSan“,20041,“LiSiGuo“,20042,*p; p=f(p-name,p-num); printf(“%s %d/n“,p-name,p-num); 程序运行后的输出结果是U 【8】 /U。(分数:2.00)填空项 1:_ (正确答案:SunDan 20042)解析:解析 f 函数中形参 1 用的是显式传地址的方式,因此 p-name 的值发生改变,而形参 2 用的传值的方式,在调用时不改变实参的值,因此 p-num 的值不发生变化。49.有以下程序: main() int a33,*p,i; p= for(i=0;i9;i+)pi=i+1; printf(“%d/n“,a12); 程序运行后的输出结果是U 【9】 /U。(分数: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.h main() int a=1,2,3,4,5,6,7,8,9,10,11,12, *p=a+5, *q=NULL; *q=*(p+5); printf(“%


    注意事项

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




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

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

    收起
    展开