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

    【计算机类职业资格】二级C语言模拟652及答案解析.doc

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

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

    【计算机类职业资格】二级C语言模拟652及答案解析.doc

    1、二级 C 语言模拟 652 及答案解析(总分:136.00,做题时间:90 分钟)一、选择题(总题数:40,分数:58.00)1.设变量 x 为 long int 型并已正确赋值,以下表达式中能将 x 的百位上的数字提取出的是_。(分数:1.00)A.x/10%100B.x%10/100C.x%100/10D.x/100%102.有以下程序: #includestdio.h main() unsigned char a=2, b=4, c=5, d; d=a | b;d printf(“%d/n“,d); 程序运行后的输出结果是_。(分数:1.00)A.3B.4C.5D.63.有以下程序: #

    2、includestdio.h main() struct STU char name9; char sex; double score2; ; struct STU a=“Zhao“,“m“,85.0,90.0,b=“Qian“,“f“,95.0,92.0; b=a; printf(“%s,%c,%2.0f,%2.0f/n“,b.name,b.sex,b.score0,b.score1); 程序的运行结果是_。(分数:2.00)A.Qian,m,85,90B.Zhao,m,85,90C.Zhao,f,95,92D.Qian,f,95,924.有以下程序: #includestdio.h mai

    3、n() int i=0,a=0; while(i20) for(;) if(i%10)=0)break; else i-; i+=11;a+=i; pfintf(“%d/n“,a); 程序的输出结果是_。(分数:2.50)A.62B.63C.33D.325.有以下程序: # include stdio.h main() int b33=0,1,2,0,1,2,0,1,2,i,j,t=1; for(i=0;i3;i+) for(j=1;j=i;j+)t+=bibji; printf(“%d/n“,t); 程序运行后的输出结果是_。(分数:1.00)A.1B.3C.4D.06.以下关于 C 语言的

    4、叙述中正确的是_。(分数:1.00)A.C 语言的数值常量中夹带空格不影响常量值的正确表示B.C 语言中的变量可以在使用之前的任何位置进行定义C.在 C 语言算术表达式的书写中、运算符两侧的运算数类型必须一致D.C 语言中的注释不可以夹在变量名或关键字的中间7.在软件设计中不使用的工具是_。(分数:1.00)A.系统结构图B.PAD 图C.数据流图(DFD 图)D.程序流程图8.有以下程序: #includestdio.h main() int k=5; while(-k)printf(“%d“,k-=3); printf(“/n“); 程序执行后的输出结果是_。(分数:1.00)A.1B.2

    5、C.4D.死循环9.下列叙述中正确的是_。(分数:1.00)A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间10.若要求在 if 后一对圆括号中表示 a 不等于 0 的关系,则能正确表示这一关系的表达式为 _(分数:1.00)A.a0B.!aC.a=0Da11.以下叙述中,正确的是_。(分数:1.00)A.局部变量说明为 static 的存储类,其生存期将得到延长B.全局变量说明为 static 的存储类,其作用域

    6、将被扩大C.任何存储类的变量在未赋初值时,其值都是不确定的D.形参可以使用的存储类说明符与局部变量完全相同12.以下结构体说明和变量定义中,正确的是_。(分数:1.00)A.typedef struct abcint n;double m;ABC;ABC x,y;B.struct abcint n;double m;struct abc x,y;C.struct ABCint n;double m;struct ABC x,y;D.struct abcint n;double m;abc x,y;13.在软件开发过程中,软件结构设计是描述_。A.数据存储结构B.软件体系结构C.软件结构测试D.

    7、软件控制过程14.设有定义: char *c; 以下选项中能够使 c 正确指向一个字符串的是_。(分数:1.00)A.char str=“string“;c=str;B.scanf(“%s“,c);C.c=getchar();D.*c=“string“;15.以下四个程序中不能对两个整型值进行交换的是_。(分数:2.50)A.#includestdio.hvoid swap(int *p, int *q) int*t, a;t= *t=*p; *p=*q; *q=*t;main() int a=10, b=20;swap( printf(“%d%d/n“, a, b);B.#includest

    8、dio.hvoid swap(int *p, int *q) int t;t=*p; *p=*q; *q=t;main() int a=10, b=20;swap( printf(“%d%d/n“, a, b);C.#includestdio.hvoid swap(int*p, int*q) int t;t=*p; *p=*q; *q=t;main() int*a, *b;*a=10, *b=20;swap(a, b); printf(“%d%d/n“, *a, *b);D.#includestdio.hvoid swap(int*p, int*q) int t;t=*p; *p=*q; *q

    9、=t;main()int a=10, b=20, *x=swap(x,y); printf(“%d%d/n“, a, b);16.若有以下程序: #include stdio.h main( ) int a=0,b=0,c=0 c= (a+ = + +b, b+ =4); printf(“%d,%d,% d/n“,a,b,c); 则程序的输出结果是_。(分数:2.00)A.1,5,1B.1,5,5C.-1,4,4D.-1,4,-117.以下有 4 组用户标识符,其中合法的一组是 _。(分数:2.00)A.For-subCaseB.4dDOSizeC.f2_G3IFabcD.WORDvoidde

    10、fine18.以下选项中,不能对主函数中变量 i 和 j 的值进行交换的程序是_。(分数:1.00)A.#include stdio.hvoid swap(int*p,int*q) int *t;*t=*p; *p=*q; *q=*t;main()int i=10,j=20,*a=swap(a,b); printf(“i=%d j=%d/n“,i,j);B.#include stdio.hvoid swap(int *p,int *q)int t;t=*p; *p=*q; *q=t;main()int i=10,j=20,*a=swap(a,b); printf(“i=%d j=%d/n“,i

    11、,j);C.#include stdio.h#include stdlib.hvoid swap(int*p,int*q)int *t;t=(int*)malloc(sizeof(int);*t=*p; *p=*q;*q=*t;free(t);main()int i=10,j=20;swap(printf(“i=%d j=%d/n“,i,j);D.#include stdio.hvoid swap( int*p,int*q) int t;t=*p;*p=*q;*q=t;main()int i=10,j=20,*x=swap(x,y); printf(“i=%d j=%d/n“,i,j);19.

    12、有以下程序: #includestdio.h struct Sint a;int b; main() struct S a,*p=a; a.a=99; printf(“%d/n“,_); 程序要求输出结构体中成员 a 的数据,以下不能填入横线处的内容是_。(分数:1.00)A.aB.*p.aC.p-aD.(*p).a20.以下叙述中正确的是_。(分数:2.50)A.a 是实型变量,C 允许进行赋值 a=10,但不可以这样说:实型变量中允许存放整型值B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式C.执行表达式 a=b 后,在内存中 a 和 b 存储单元中的原有值都将被改变,a 的值

    13、已由原值改变为 b 的值,b 的值由原值变为 0D.已有 a=3,b=5,当执行了表达式 a=b,b=a 之后,使 a 中的值为 5,b 中的值为 321.有以下程序: #includestdio.h main() char s1=“programe“,s2=“Language“; char*p1=s1,*p2=s2; int k; for(k=0;k8;k+) if(*(p1+k)=*(p2+k) printf(“%s/n“,*(p1+k); 程序的运行结果是_。(分数:1.00)A.grame ame eB.g a eC.programeD.无输出字符22.循环队列的存储空间为 Q(1:5

    14、0),初始状态为 front=rear=50。经过一系列正常的入队与退队操作后,front=rear=25,此后又正常地插入了一个元素,则循环队列中的元素个数为_。(分数:1.00)A.51B.50C.49D.123.有以下程序 #include stdio.h main() int a=1,b=2,c=3,x; x=(ab) printf(“%d/n“,x); 程序的运行结果是_。(分数:1.00)A.2B.1C.3D.024.在软件开发中,需求分析阶段产生的主要文档是_。(分数:1.50)A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书25.设 a、b 和 c

    15、都是 int 型变量,且 a=3,b=4,c=5,则以下的表达式中值为 0 的表达式是(分数:2.00)A.a while(-y); printf(“%d/n“, -y); 当执行程序时,输 m 的结果是_。(分数:2.50)A.-1B.1C.4D.028.若有以下定义和语句: char s 10=“abcd!“, *s2=“/n123/“; printf(“%d %d/n“, strlen(s1), strlen(s2); 则输出结果是_。(分数:1.00)A.5 5B.10 5C.10 7D.5 829.在软件开发中,需求分析阶段产生的主要文档是_。(分数:1.00)A.软件集成测试计划B

    16、.软件详细设计说明书C.用户手册D.软件需求规格说明书30.有如下嵌套的 if 语句 if(ab) if(ac)k=a; else k=c; else if(bc)k=b; else k=c; 以下选项中与上述 if 语句等价的语句是_。(分数:2.50)A.k=(ab)?(ac)?a:c):(bc)?h:c);B.k=(ab)?(bc)?a:b):(hc)?b:c);C.k=(ab)?a:b;k=(bc)?b:c;D.k=(ab)?a:h:k=(ac)?a:c;31.有以下程序 #includestdio.h main() int i; for(i=1; i=40; i+) if(i+%5=

    17、0) if(+i%8=0)printf(“%d“, i); printf(“/n“); 执行后的输出结果是_。(分数:2.00)A.32B.24C.5D.4032.下列程序的运行结果是_。 main() int x=1, y=3, a=0; while(x+!=(y-=1) a+=1; if(yx) break; printf(“%d, %d, %d/n“, x, y, a); (分数:2.50)A.2,3,2B.2,3,1C.1,3,3D.3,1,233.数据库系统的三级模式不包括_。(分数:1.00)A.概念模式B.内模式C.外模式D.数据模式34.下面不能作为结构化方法软件需求分析工具的

    18、是_。(分数:1.00)A.系统结构图B.数据字典(DD)C.数据流程图(DFD 图)D.判定表35.有以下程序段: int k=0; while(k=)k+; while 循环执行的次数是_。(分数:2.50)A.无限次B.有语法错,不能执行C.一次也不执行D.执行一次36.有以下程序 #includestdio.h main() int a=1,b=0; printf(“%d,“,b=a+b); printf(“%d/n“,a=2*b); 程序运行后的输出结果是_。(分数:1.00)A.1,2B.1,0C.3,2D.0,037.若有定义语句: char s10=“1234567/0/0“;

    19、 则 strlen(s)的值是_。(分数:1.00)A.7B.8C.9D.1038.若变量已正确定义为 float 型,要通过输入语句:scanf(“%f %f% %f, p-next=s;B.s-next=“/0“;p=p-next;p-next=s;C.p=p-next;s-next=p-next;p-next=s;D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;40.设有定义: int a=1, b=2, c=3; 以下语句中执行效果与其它三个不同的是_。(分数:2.00)A.if(ab)c=a; a=b; b=c;B.if(ab)c=a, a

    20、=b, b=c;C.if(ab)c=a, a=b, b=c;D.if(ab)c=a; a=b; b=c;二、程序填空题(总题数:1,分数:18.00)41.下列给定程序中,函数 fun 的功能是:将 S 所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的次序。 例如,s 所指的字符串为“def35adh3kjsdf7”,执行后结果为“defadhkjsdf3537”。 请在程序的下划线处填入正确的内容,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h void fun(ch

    21、ar *s) int i,j=0,k=0; char t180,t280; for(i=0;si!=“/0“;i+) if(si=“0“ 1; else t1k+=si; t2j=0; t1k=0; for(i=0;ik;i+) 2; for(i=0;i 3;i+) sk+i=t2i; main() char s80=“ba3a54j7sd567sdffs“; pfintf(“/nThe original string is:%s/n“,s); fun(s); pfintf(“/nThe result is:%s/n“,s); (分数:18.00)三、程序修改题(总题数:1,分数:20.00)

    22、42.给定程序 MODI1.C 中函数 fun 的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在 t 中。高位仍在高位,低位仍在低位。 例如,当 s 中的数为 87653142 时,t 中的数为 7531。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include stdio.h void fun(long s,long *t) int d; long sl=1; /*found*/ t=0; while(s0) d=s%10; /*found*/ if(d%2=0) *t=d*sl+*

    23、t; sl*=10; s/=10; main() long s,t; printf(“/nPlease enter s:“);scanf(“%ld“, fun(s, printf(“The result is:%ld/n“,t); (分数:20.00)_四、程序设计题(总题数:1,分数:40.00)43.m 个人的成绩存放在 score 数组中,请编写函数 fun,它的功能是将低于平均分的人数作为函数值返回,将低于平均分的分数放在 below 所指的数组中。 例如,当 score 数组中的数据为 10、20、30、40、50、60、70、80、90 时,函数返回的人数应该是4,below 所指

    24、的数组中的数据应为 10、20、30、40。 注意:部分源程序存在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。 给定源程序如下。 #includestdio.h #includestring.h int fun(int score,int m,int below) main() int i,n,below9; int score9=10,20,30,40,50,60,70,80,90); n=fun(score,9,below); printf(“/nBelow the average score are:“);

    25、 for(i=0;in;i+)printf(“%d“,belowi); (分数:40.00)_二级 C 语言模拟 652 答案解析(总分:136.00,做题时间:90 分钟)一、选择题(总题数:40,分数:58.00)1.设变量 x 为 long int 型并已正确赋值,以下表达式中能将 x 的百位上的数字提取出的是_。(分数:1.00)A.x/10%100B.x%10/100C.x%100/10D.x/100%10 解析:解析 x/100 的个位数是 x 的百位数上的数字,所以再进行除 10 取余运算即可得到该数字。2.有以下程序: #includestdio.h main() unsign

    26、ed char a=2, b=4, c=5, d; d=a | b;d printf(“%d/n“,d); 程序运行后的输出结果是_。(分数:1.00)A.3B.4 C.5D.6解析:解析 char sex; double score2; ; struct STU a=“Zhao“,“m“,85.0,90.0,b=“Qian“,“f“,95.0,92.0; b=a; printf(“%s,%c,%2.0f,%2.0f/n“,b.name,b.sex,b.score0,b.score1); 程序的运行结果是_。(分数:2.00)A.Qian,m,85,90B.Zhao,m,85,90 C.Zha

    27、o,f,95,92D.Qian,f,95,92解析:解析 本题考查结构体初始化操作。本题中可以直接将结构体 a 赋值给 b,所以输出的结果和 a一样,B 选项正确。4.有以下程序: #includestdio.h main() int i=0,a=0; while(i20) for(;) if(i%10)=0)break; else i-; i+=11;a+=i; pfintf(“%d/n“,a); 程序的输出结果是_。(分数:2.50)A.62B.63C.33D.32 解析:5.有以下程序: # include stdio.h main() int b33=0,1,2,0,1,2,0,1,2

    28、,i,j,t=1; for(i=0;i3;i+) for(j=1;j=i;j+)t+=bibji; printf(“%d/n“,t); 程序运行后的输出结果是_。(分数:1.00)A.1B.3C.4 D.0解析:解析 本题考查了两层 for 循环。外层循环增量 i 的值作为内层循环执行次数的值使用。6.以下关于 C 语言的叙述中正确的是_。(分数:1.00)A.C 语言的数值常量中夹带空格不影响常量值的正确表示B.C 语言中的变量可以在使用之前的任何位置进行定义C.在 C 语言算术表达式的书写中、运算符两侧的运算数类型必须一致D.C 语言中的注释不可以夹在变量名或关键字的中间 解析:解析 C

    29、语言的数值常量中不能夹带空格,所以 A 选项错误。C 语言中的变量都必须先定义再使用,对变量的定义通常放在函数体内的前部,但也可以放在函数外部或复合语句的开头,不能随便放置,所以B 选项错误。在 C 语言中运算符两侧的运算数据类型可以不一致,且结果与精度较高的保持一致,所以 C选项错误。7.在软件设计中不使用的工具是_。(分数:1.00)A.系统结构图B.PAD 图C.数据流图(DFD 图) D.程序流程图解析:解析 系统结构图是对软件系统结构的总体设计的图形显示。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。PAD 图是在详细设计阶段用到的

    30、。程序流程图是对程序流程的图形表示,在详细设计过程中用到。数据流图(DFD 图)是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,因此它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以本题答案为 C。8.有以下程序: #includestdio.h main() int k=5; while(-k)printf(“%d“,k-=3); printf(“/n“); 程序执行后的输出结果是_。(分数:1.00)A.1 B.2C.4D.死循环解析:解析 -k 先自减再使用,所以第一次判断条件即为 while(4),条件为

    31、真,执行打印 k 的值 k=4-3,结果为 1;第二次判断条件即为 while(0),条件为假,结束循环,打印回车换行符。所以选择 A 选项。9.下列叙述中正确的是_。(分数:1.00)A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间解析:解析 链式存储结构既可以针对线性结构也可以针对非线性结构,所以 B 选项与 C 选项错误。链式存储结构中每个节点都是由数据域与指针域两部分组成,增加了存储空间,所以 D 选项错

    32、误。10.若要求在 if 后一对圆括号中表示 a 不等于 0 的关系,则能正确表示这一关系的表达式为 _(分数:1.00)A.a0B.!aC.a=0Da 解析:11.以下叙述中,正确的是_。(分数:1.00)A.局部变量说明为 static 的存储类,其生存期将得到延长 B.全局变量说明为 static 的存储类,其作用域将被扩大C.任何存储类的变量在未赋初值时,其值都是不确定的D.形参可以使用的存储类说明符与局部变量完全相同解析:解析 选项 A,局部静态变量的存储空间在程序整个运行期间都不释放,所以比局部动态变量的生存期长。选项 B,全局变量说明为静态存储时,作用域不会扩大。选项 C,局部静

    33、态变量未赋初值时,系统编译时会自动赋初值 0 或空字符。选项 D,在未调用函数时,函数的形参不占内存的存储单元,只有调用时才动态分配存储空间,所以形参不能说明为静态存储,而局部变量可以说明为静态存储。12.以下结构体说明和变量定义中,正确的是_。(分数:1.00)A.typedef struct abcint n;double m;ABC;ABC x,y; B.struct abcint n;double m;struct abc x,y;C.struct ABCint n;double m;struct ABC x,y;D.struct abcint n;double m;abc x,y;解

    34、析:解析 本题考查 typedef 的使用方法,typedef 对已存在的类型使用一个新的名字,选项 A 中 ABC为新的类型别名,定义正确。13.在软件开发过程中,软件结构设计是描述_。A.数据存储结构B.软件体系结构 C.软件结构测试D.软件控制过程解析:解析 从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。14.设有定义: char *c; 以下选项中能够使 c 正确指向一个字符串的是_。(分数:1.00)A.char str=“string“;c=str; B.scanf(“%s

    35、“,c);C.c=getchar();D.*c=“string“;解析:解析 选项 A 定义字符数组 str,然后将 str 赋值给 c,c 便指向字符串 str,符合题意,所以选择 A。15.以下四个程序中不能对两个整型值进行交换的是_。(分数:2.50)A.#includestdio.hvoid swap(int *p, int *q) int*t, a;t= *t=*p; *p=*q; *q=*t;main() int a=10, b=20;swap( printf(“%d%d/n“, a, b);B.#includestdio.hvoid swap(int *p, int *q) in

    36、t t;t=*p; *p=*q; *q=t;main() int a=10, b=20;swap( printf(“%d%d/n“, a, b);C.#includestdio.hvoid swap(int*p, int*q) int t;t=*p; *p=*q; *q=t;main() int*a, *b;*a=10, *b=20;swap(a, b); printf(“%d%d/n“, *a, *b); D.#includestdio.hvoid swap(int*p, int*q) int t;t=*p; *p=*q; *q=t;main()int a=10, b=20, *x=swap

    37、(x,y); printf(“%d%d/n“, a, b);解析:解析 main() int*a=0, *b=0; *a=10, *b=20; /有错误,a 与 b 没有指向任何对象,但却给对象赋值。 swap(a, b); printf(“%d%d/n“, *a, *b); swap(int*p, int*q) int t; t=*p; *p=*q; *q=t; 16.若有以下程序: #include stdio.h main( ) int a=0,b=0,c=0 c= (a+ = + +b, b+ =4); printf(“%d,%d,% d/n“,a,b,c); 则程序的输出结果是_。(

    38、分数:2.00)A.1,5,1B.1,5,5 C.-1,4,4D.-1,4,-1解析:解析 逗号运算符的结合性从左到右,因此逗号表达式将从左到右进行计算。且逗号运算符的优先级最低。先计算 a+=+b,结果 a 为 1,b 为 1,然后计算 b+=4,b 的值为 5。逗号表达式的值为其中最后一个表达式的值,所以将 5 赋给变量 c,即 a 为 1,b 为 5,c 为 5。所以选择 B。17.以下有 4 组用户标识符,其中合法的一组是 _。(分数:2.00)A.For-subCaseB.4dDOSizeC.f2_G3IFabc D.WORDvoiddefine解析:解析 选项 A 中有非法标识符-

    39、sub,选项 B 中有非法标识符 4d,选项 D 中有 C 语言保留字 void。18.以下选项中,不能对主函数中变量 i 和 j 的值进行交换的程序是_。(分数:1.00)A.#include stdio.hvoid swap(int*p,int*q) int *t;*t=*p; *p=*q; *q=*t;main()int i=10,j=20,*a=swap(a,b); printf(“i=%d j=%d/n“,i,j); B.#include stdio.hvoid swap(int *p,int *q)int t;t=*p; *p=*q; *q=t;main()int i=10,j=2

    40、0,*a=swap(a,b); printf(“i=%d j=%d/n“,i,j);C.#include stdio.h#include stdlib.hvoid swap(int*p,int*q)int *t;t=(int*)malloc(sizeof(int);*t=*p; *p=*q;*q=*t;free(t);main()int i=10,j=20;swap(printf(“i=%d j=%d/n“,i,j);D.#include stdio.hvoid swap( int*p,int*q) int t;t=*p;*p=*q;*q=t;main()int i=10,j=20,*x=sw

    41、ap(x,y); printf(“i=%d j=%d/n“,i,j);解析:解析 选项 A,定义了一个临时指针,实现两个指针地址的交换,而传入了参数是二个指针的副本,即 a、b 地址的副本,故交换了副本地址,对 a、b 无影响,故选择 A 选项。B 选项调用函数传入的是i 与 j 地址,函数体内交换是地址内元素,临时变量为整型变量,能实现 i 与 j 值交换。C 选项调用函数传入的是 i 与 j 地址,函数体内交换是地址内元素,临时变量为整型指针,且已正确开辟内存,能实现 i与 j 值交换。D 选项与 B 选项相同,能实现 i 与 i 值交换。19.有以下程序: #includestdio.h

    42、 struct Sint a;int b; main() struct S a,*p=a; a.a=99; printf(“%d/n“,_); 程序要求输出结构体中成员 a 的数据,以下不能填入横线处的内容是_。(分数:1.00)A.aB.*p.a C.p-aD.(*p).a解析:解析 本题考查结构体变量的引用,题目中要求输出结构体中成员 a 的数据,p 为指针,*p 为结构体变量,那么*p.a 可以表示为结构体中成员 a 的数据。20.以下叙述中正确的是_。(分数:2.50)A.a 是实型变量,C 允许进行赋值 a=10,但不可以这样说:实型变量中允许存放整型值 B.在赋值表达式中,赋值号左

    43、边既可以是变量也可以是任意表达式C.执行表达式 a=b 后,在内存中 a 和 b 存储单元中的原有值都将被改变,a 的值已由原值改变为 b 的值,b 的值由原值变为 0D.已有 a=3,b=5,当执行了表达式 a=b,b=a 之后,使 a 中的值为 5,b 中的值为 3解析:解析 C 语言中语法上规定实型变量是不能存放整型类型的数据的,整型数据也不能存放实型数据。是为了避免类型转换之间可能会发生的错误。21.有以下程序: #includestdio.h main() char s1=“programe“,s2=“Language“; char*p1=s1,*p2=s2; int k; for(

    44、k=0;k8;k+) if(*(p1+k)=*(p2+k) printf(“%s/n“,*(p1+k); 程序的运行结果是_。(分数:1.00)A.grame ame e B.g a eC.programeD.无输出字符解析:解析 定义两个指针变量 p1、p2,分别指向数组 s1、s2 首地址,在 for 循环中,比较两个指针所指地址的元素是否相等,如果相等,则输出当前指针指向地址的字符串。22.循环队列的存储空间为 Q(1:50),初始状态为 front=rear=50。经过一系列正常的入队与退队操作后,front=rear=25,此后又正常地插入了一个元素,则循环队列中的元素个数为_。(分

    45、数:1.00)A.51B.50C.49D.1 解析:解析 循环队列是队列的一种顺序存储结构,用队尾指针 rear 指向队列中的队尾元素,用排头指针 front 指向排头元素的前一个位置。入队运算时,队尾指针进 1(即 rear+1),然后在 rear 指针指向的位置插入新元素。当 front=rear=25 时可知队列空或者队列满,此后又正常地插入了一个元素说明之前队列为空,所以插入操作之后队列里只有一个元素。故 D 选项正确。23.有以下程序 #include stdio.h main() int a=1,b=2,c=3,x; x=(ab) printf(“%d/n“,x); 程序的运行结果

    46、是_。(分数:1.00)A.2B.1C.3 D.0解析:解析 ab 后值为 3,3 while(-y); printf(“%d/n“, -y); 当执行程序时,输 m 的结果是_。(分数:2.50)A.-1B.1C.4D.0 解析:解析 本题考查 do-while 循环。当-y 是 0(即 y 是 0)时结束循环,输出-y,先将 y 的值减 1 再输出 y 的值。28.若有以下定义和语句: char s 10=“abcd!“, *s2=“/n123/“; printf(“%d %d/n“, strlen(s1), strlen(s2); 则输出结果是_。(分数:1.00)A.5 5 B.10 5C.10 7D.5 8解析:解析 /n 和/分别为转义字符,各占据一个字符的位置。29.在软件开发中,需求分析阶段产生的主要文档是_。(分数:1.


    注意事项

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




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

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

    收起
    展开