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

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

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

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

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

    1、二级 C 语言-637 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列叙述中正确的是_。(分数:1.00)A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对2.下列叙述中正确的是_。(分数:1.00)A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构C.循环链表是非线性结构D.双向链表是非线性结构3.下列关于二叉树的叙述中,正确的是_。(分数:1.00)A.叶子结点总是比度为 2 的结点少一个B.叶子结点总是比度为 2 的结点多一个

    2、C.叶子结点数是度为 2 的结点数的两倍D.度为 2 的结点数是度为 1 的结点数的两倍4.软件生命周期中的活动不包括_。(分数:1.00)A.市场调研B.需求分析C.软件测试D.软件维护5.某系统总体结构图如下图所示! (分数:1.00)A.7B.6C.3D.26.程序调试的任务是_。(分数:1.00)A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误7.下列关于数据库设计的叙述中,正确的是_。(分数:1.00)A.在需求分析阶段建立数据字典B.在概念设计阶段建立数据字典C.在逻辑设计阶段建立数据字典D.在物理设计阶段建立数据字典8.数据库系统的三级模式不包括

    3、_。(分数:1.00)A.概念模式B.内模式C.外模式D.数据模式9.有三个关系 R、S 和 T 如下: (分数:1.00)A.自然连接B交C.投影D并10.下列选项中属于面向对象设计方法主要特征的是_。(分数:1.00)A.继承B.自顶向下C.模块化D.逐步求精11.以下叙述中错误的是_。(分数:1.00)A.算法正确的程序可以有零个输入B.算法正确的程序最终一定会结束C.算法正确的程序可以有零个输出D.算法正确的程序对于相同的输入一定有相同的结果12.以下叙述中正确的是_。(分数:1.00)A.C 语句必须在一行内写完B.C 程序中的每一行只能写一条语句C.C 语言程序中的注释必须与语句写

    4、在同一行D.简单 C 语句必须以分号结束13.以下选项中关于 C 语言常量的叙述错误的是_。(分数:1.00)A.经常被使用的变量可以定义成常量B.常量分为整型常量、实型常量、字符常量和字符串常量C.常量可分为数值型常量和非数值型常量D.所谓常量,是指在程序运行过程中,其值不能被改变的量14.以下选项中,不合法的 C 语言用户标识符是_。(分数:1.00)A.a_bB.AaBcC.a-bD.-115.若变量均已正确定义并赋值,以下合法的 C 语言赋值语句是_。(分数:1.00)A.x=y=5;B.x=n%2.5;C.x+n=i;D.x=5=4+1;16.设有定义: int a;float b;

    5、 执行 scanf(“%2d%f“, 语句时,若从键盘输入 876 543.0回车 则 a 和 b 的值分别是_。(分数:1.00)A.87 和 6.0B.876 和 543.0C.87 和 543.0D.76 和 543.017.有以下定义语句,编译时会出现编译错误的是_。(分数:1.00)A.char a=“/x2d“;B.char a=“/n“;C.char a=“a“;D.char a=“aa“;18.当变量 c 的值不为 2、4、6 时,值也为“真“的表达式是_。(分数:1.00)A.(c=2if(x0)y=sqrt(-x);B.if(x=0)y=sqrt(x);else y=sqr

    6、t(-x);C.y=sqrt(x);if(x0)y=sqrt(-x);D.y=sqrt(x=0?x:-x);20.有以下程序: #includestdio.h main() int y=10; while(y-); printf(“y=%d/n“,y); 程序执行后的输出结果是_。(分数:1.00)A.y=-1B.y=0C.y=1D.while 构成无限循环21.有以下程序: #includestdio.h main() int i; for(i=1;i=40;i+) if(i+%5=0) if(+i%8=0)printf(“%d“,i); printf(“/n“); 程序执行后的输出结果是_

    7、。(分数:1.00)A.5B.24C.32D.4022.有以下程序: #includestdio.h main() int s; scanf(“%d“, while(s0) switch(s) case 1:printf(“%d“,s+5); case 2:printf(“%d“,s+4);break; case 3:printf(“%d“,s+3); default:printf(“%d“,s+1);break; scanf(“%d“, 运行时,若输入 1 2 3 4 5 0回车,则输出结果是_。(分数:1.00)A.66656B.6566456C.66666D.666665623.以下叙述

    8、中错误的是_。(分数:1.00)A.用户定义的函数中可以没有 return 语句B.用户定义的函数中可以有多个 return 语句,以便可以调用一次返回多个函数值C.用户定义的函数中若没有 return 语句,则应当定义函数为 void 类型D.函数的 return 语句中可以没有表达式24.有以下程序: #includestdio.h void fun(char*c,int d) *c=%c+1; d=d+1; printf(“%c,%c,“,*c,d); main() char b=“a“,a=“A“; fun( printf(“%c,%c/n“,b,a); 程序运行后的输出结果是_。(分

    9、数:1.00)A.b,B,b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B25.下列选项中,能正确定义数组的语句是_。(分数:1.00)A.int num02008;B.int num;C.int N=2008;int numN;D.#define N 2008int numN;26.以下函数实现按每行 8 个输出 w 所指数组中的数据: #includestdio.h void fun(int*w,int n) int i; for(i=0;in;i+) _ printf(“%d“,wi); printf(“/n“); 在横线处应填入的语句是_。(分数:1.00)A.if(i/8

    10、=0)printf(“/n“);B.if(i/8=0)continue;C.if(i%8=0)printf(“/n“);D.if(i%8=0)continue;27.有以下程序: #includestdio.h void fun(char*c) while(*c) if(*c=“a“ c+; main() char s81; gets(s); fun(s); puts(s); 当执行程序时从键盘上输入 Hello Beijing回车,则程序运行后的输出结果是_。(分数:1.00)A.hello beijingB.Hello BeijingC.HELLO BEIJINGD.hELLO Beiji

    11、ng28.有以下程序: #includestdio.h main() int a44=1,4,3,2, 8,6,5,7, 3,7,2,5, 4,8,6,1; int 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); 程序运行后的输出结果是_。(分数:1.00)A.1,6,2,1,B.8,7,3,1,C.4,7,5,2,D.1,6,5,7,29.有以下程序(strcat 函数用于连接

    12、两个字符串): #includestdio.h #includestring.h main() char a20=“ABCD/0EFG/0“,b=“IJK“; strcat(a,b); printf(“%s/n“,a); 程序运行后的输出结果是_。(分数:1.00)A.UKB.ABCDE/0FG/0IJKC.ABCDIJKD.EFGIJK30.有以下程序段: char name20; int num; scanf(“name=%s num=%d“,name, 当执行上述程序段,并从键盘输入:name=Lili num=1001回车后,name 的值为_。(分数:1.00)A.name=Lili

    13、 num=1001B.name=LiliC.Lili num=D.Lili31.有以下程序: #includestdio.h main() char ch=“uvwxyz“,*pc; pc=ch; printf(“%c/n“,*(pc+5); 程序运行后的输出结果是_。(分数:1.00)AzB.0C.元素 ch5的地址D.字符 y 的地址32.有以下程序: #includestdio.h main() char s=“012xy“; int i,n=0; for(i=0;si!=0;i+) if(si=“a“ printf(“%d/n“,n); 程序运行后的输出结果是_。(分数:1.00)A.

    14、0B.2C.3D.533.有以下程序: #includestdio.h int fun(int n) if(n=1) return 1; else return(n+fun(n-1); main() int x; scanf(“%d“, x=fun(x); printf(“%d/n“,x); 执行程序时,给变量 x 输入 10,程序运行后的输出结果是_。(分数:1.00)A.55B.54C.65D.4534.有以下程序: #includestdio.h int f(int m) static int n=0; n+=m; return n; main() int n=0; printf(“%d

    15、,“,f(+n); printf(“%d/n“,f(n+); 程序运行后的输出结果是_。(分数:1.00)A.3,3B.1,1C.2,3D.1,235.设有以下语句: typedef struct TT char c;int a4;CIN; 则下面叙述中正确的是_。(分数:1.00)A.CIN 是 struct TT 类型的变量B.TT 是 struct 类型的变量C.可以用 TT 定义结构体变量D.可以用 CIN 定义结构体变量36.有以下程序: #includestdio.h struct ord int x,y;dt2=1,2,3,4; main() struct ord*p=dt; p

    16、rintf(“%d,“,+(p-x); printf(“%d/n“,+(p-y); 程序运行后的输出结果是_。(分数:1.00)A.3,4B.4,1C.2,3D.1,237.有以下程序: #includestdio.h #define SUB(A)(a)-(a) main() int a=2,b=3,c=5,d; d=SUB(a+b)*c; printf(“%d/n“,d); 程序运行后的输出结果是_。(分数:1.00)A.0B.-12C.-20D.1038.有以下程序: #includestdio.h main() int a=2,b; b=a2; printf(“%d/n“,b); 程序运

    17、行后的输出结果是_。(分数:1.00)A.2B.4C.6D.839.下列关于 C 语言文件的叙述中正确的是_。(分数:1.00)A.文件由一系列数据依次排列组成,只能构成二进制文件B.文件由结构序列组成,可以构成二进制文件或文本文件C.文件由数据序列组成,可以构成二进制文件或文本文件D.文件由字符序列组成,其类型只能是文本文件40.有以下程序: #includestdio.h main() FILE*fp; int a10=1,2,3,0,0,i; fp=fopen(“d2.dat“,“wb“); fwrite(a,sizeof(int),5,fp); fwrite(a,sizeof(int)

    18、,5,fp); fclose(fp); fp=fopen(“d2.dat“,“rb“); fread(a,sizeof(int),10,fp); fclose(fp); for(i=0;i10;i+) printf(“%d,“,ai); 程序运行后的输出结果是_。(分数:1.00)A.1,2,3,0,0,0,0,0,0,0,B.1,2,3,1,2,3,0,0,0,0,C.123,0,0,0.0,123,0,0,0,0,D.1,2,3,0,0,1,2,3,0,0,二、(共 18 分)(总题数:1,分数:18.00)41.下列给定程序中,函数 fun 的功能是:从形参 ss 所指字符串数组中,删除

    19、所有串长超过 k 的字符串,函数返回剩余字符串的个数。ss 所指字符串数组中共有 N 个字符串,且串长小于 M。 请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! #includestdio.h #includestring.h #define N 5 #define M 10 int fun(char(*ss)M,int k) int i,j=0,len; /*found*/ for(i=0;i 1;i+) len=strlen(ssi); /*found*/ if(len= 2) /*found*/ strcpy(ssj+

    20、, 3); return j; main() char xNM=“Beijing“,“Shanghai“,“Tianjin“,“Nanjing“,“Wuhan“; int i,f; printf(“/nThe original string/n/n“); for(i=0;iN;i+) puts(xi); printf(“/n“); f=fun(x,7); printf(“The string witch length is less than or equal to 7:/n“); for(i=0;if;i+)puts(xi); printf(“/n“); (分数:18.00)三、(共 18

    21、分)(总题数:1,分数:18.00)42.下列给定程序中函数 fun 的功能是:逐个比较 p、q 所指两个字符串对应位置上的字符,并把 ASCII 值大或相等的字符依次存放到 c 所指的数组中,形成一个新的字符串。 例如,若主函数中 a 字符串为“aBCDeFgH”,b 字符串为“Abcd”,则 c 中的字符串应为“aBcdeFgH”。 请改正程序中的错误,使它能得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! #includestdio.h #includestring.h void fun(char*p,char*q,char*c) /*found*/ int k=1; /*

    22、found*/ while(*p!=*q) if(*p*q)ck=*q; else ck=*p; if(*p)p+; if(*q)q+; k+; main() char a10=“aBCDeFgH“,b10=“ABcd“,c80=“/0“; fun(a,b,c); printf(“The string a:“);puts(a); printf(“The string b:“);puts(b); printf(“The result:“);puts(c); (分数:18.00)_四、(共 24 分)(总题数:1,分数:24.00)43.规定输入的字符串中只包含字母和*号。请编写函数 fun,其功

    23、能是:除了字符串前导的*号之外,将串中其他*号全部删除。在编写函数时,不得使用 C 语言提供的字符串函数。 例如,字符串中的内容为:“*A*BC*DEF*G*”,删除后,字符串中的内容应当是:“*ABCDEFG”。 注意:请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。#includestdio.h void fun(char*a) main() char s81;void NONO(); printf(“Enter a string:/n“);gets(s); fun(s); printf(“The string after deleted

    24、:/n“);puts(s); NONO(); void NONO() /*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/ FILE*in,*out; int i;char s81; in=fopen(“in.dat“,“r“); out=fopen(“out.dat“,“w“); for(i=0;i10;i+) fscanf(in,“%s“,s); fun(s); fprintf(out,“%s/n“,s); fclose(in); fclose(out); (分数:24.00)_二级 C 语言-637 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:

    25、40,分数:40.00)1.下列叙述中正确的是_。(分数:1.00)A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对 解析:解析 算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法,所以 A 错误。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。2.下列叙述中正确的是_。(分数:1.00)A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构 C.循环链表是非线性结构D.双向链表是非线性结构解析:解析 线性结构应满足:有且只有一个根结点与每个结点最多有一个

    26、前件,也最多有一个后件,所以 B 正确。所以有一个以上根结点的数据结构一定是非线性结构,所以 A 错误。循环链表和双向链表都是线性结构的数据结构。3.下列关于二叉树的叙述中,正确的是_。(分数:1.00)A.叶子结点总是比度为 2 的结点少一个B.叶子结点总是比度为 2 的结点多一个 C.叶子结点数是度为 2 的结点数的两倍D.度为 2 的结点数是度为 1 的结点数的两倍解析:解析 根据二叉树的基本性质 3:在任意一棵二叉树中,度为 0 的叶子结点总是比度为 2 的结点多一个。所以选择 B。4.软件生命周期中的活动不包括_。(分数:1.00)A.市场调研 B.需求分析C.软件测试D.软件维护解

    27、析:解析 软件生命周期可以分为软件定义、软件开发与软件运行维护三个阶段。主要活动阶段是:可行性研究与计划阶段、需求分析、软件设计、软件实现、软件测试、运行和维护,所以选择 A。5.某系统总体结构图如下图所示! (分数:1.00)A.7B.6C.3 D.2解析:解析 根据总体结构图可以看出该树的深度为 3,比如:XY 系统功能 2功能 2.1,就是最深的度数的一个表现。6.程序调试的任务是_。(分数:1.00)A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误 解析:解析 程序调试的任务是诊断和改正程序中的错误。7.下列关于数据库设计的叙述中,正确的是_。(分数:

    28、1.00)A.在需求分析阶段建立数据字典 B.在概念设计阶段建立数据字典C.在逻辑设计阶段建立数据字典D.在物理设计阶段建立数据字典解析:解析 数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善的。8.数据库系统的三级模式不包括_。(分数:1.00)A.概念模式B.内模式C.外模式D.数据模式 解析:解析 数据库系统的三级模式是概念模式、外模式和内模式,所以选择 D。9.有三个关系 R、S 和 T 如下: (分数:1.00)A.自然连接 B交C.投影D并解析:解析 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,

    29、所以根据 T 中元组可以判断 R 和 S 做的是自然连接操作。10.下列选项中属于面向对象设计方法主要特征的是_。(分数:1.00)A.继承 B.自顶向下C.模块化D.逐步求精解析:解析 面向对象基本方法的基本概念有对象、类和实例、消息、继承与多态性,所以选择 A。11.以下叙述中错误的是_。(分数:1.00)A.算法正确的程序可以有零个输入B.算法正确的程序最终一定会结束C.算法正确的程序可以有零个输出 D.算法正确的程序对于相同的输入一定有相同的结果解析:解析 算法的特征:有穷性。一个算法(对任何合法的输入)在执行有穷步后能够结束,并且在有限的时间内完成。确定性。算法中的每一步都有确切的含

    30、义。可行性。算法中的操作能够用已经实现的基本运算执行有限次来实现。输入:一个算法有零个或者多个输入,零个输入就是算法本身确定了初始条件。输出:一个算法有一个或者多个输出,以反映出数据加工的结果。所以 C 选项错误。12.以下叙述中正确的是_。(分数:1.00)A.C 语句必须在一行内写完B.C 程序中的每一行只能写一条语句C.C 语言程序中的注释必须与语句写在同一行D.简单 C 语句必须以分号结束 解析:解析 C 语句可以跨行来写,但是必须以分号结束,所以 A 选项错误。C 程序中的一行可以有多条语句,所以 B 选项错误。C 语言中的注释语句可以与原语句放在一行也可以不放在一行,所以 C 选项

    31、错误。13.以下选项中关于 C 语言常量的叙述错误的是_。(分数:1.00)A.经常被使用的变量可以定义成常量 B.常量分为整型常量、实型常量、字符常量和字符串常量C.常量可分为数值型常量和非数值型常量D.所谓常量,是指在程序运行过程中,其值不能被改变的量解析:解析 C 语言中,常量是指在程序运行过程中其值不能被改变的量,变量是指运行过程中其值可以改变的量,二者不能混淆,所以 A 选项错误。14.以下选项中,不合法的 C 语言用户标识符是_。(分数:1.00)A.a_bB.AaBcC.a-b D.-1解析:解析 C 语言规定,变量命名必须符合标识符的命名规则,C 选项中包含了非法字符“-”,所

    32、以错误。标识符由字母、数字或下划线组成,且第一个字符必须是大小写英文字母或者下划线,而不能是数字。15.若变量均已正确定义并赋值,以下合法的 C 语言赋值语句是_。(分数:1.00)A.x=y=5; B.x=n%2.5;C.x+n=i;D.x=5=4+1;解析:解析 B 选项中运算符“%”的前后必须为整数,C 选项中不能将变量赋给表达式 x+n,D 选项中不能将表达式 4+1 赋给常量 5。16.设有定义: int a;float b; 执行 scanf(“%2d%f“, 语句时,若从键盘输入 876 543.0回车 则 a 和 b 的值分别是_。(分数:1.00)A.87 和 6.0 B.8

    33、76 和 543.0C.87 和 543.0D.76 和 543.0解析:解析 在格式字符前加入一个整数可以指定输入数据所占的宽度,所以赋值时会将 87 赋给 int 型变量 a,把 6.0 赋给 int 型 float 型变量 b。17.有以下定义语句,编译时会出现编译错误的是_。(分数:1.00)A.char a=“/x2d“;B.char a=“/n“;C.char a=“a“;D.char a=“aa“; 解析:解析 D 选项中将字符串常量“aa”赋给字符变量 a 是错误的。18.当变量 c 的值不为 2、4、6 时,值也为“真“的表达式是_。(分数:1.00)A.(c=2if(x0)

    34、y=sqrt(-x);B.if(x=0)y=sqrt(x);else y=sqrt(-x);C.y=sqrt(x);if(x0)y=sqrt(-x); D.y=sqrt(x=0?x:-x);解析:解析 本题重点考查的知识点是:sqrt()函数。sqrt()函数的作用是计算平方根,要求输出的参数 x 必须大于等于 0。题目公式的要求是无论 x 大于等于 0 还是小于 0,y 的值都为 x 绝对值的开方。选项 C 中调用了 sqrt(x)函数,而没有判断 x 的正负,则 y=sqrt(x)会出错。20.有以下程序: #includestdio.h main() int y=10; while(y-

    35、); printf(“y=%d/n“,y); 程序执行后的输出结果是_。(分数:1.00)A.y=-1 B.y=0C.y=1D.while 构成无限循环解析:解析 y-表示 y 使用后再自减 1。所以最后一次 y 的值为 0,条件不成立但仍要执行自减操作,y 的值为-1,跳出循环。打印 y 的值-1。21.有以下程序: #includestdio.h main() int i; for(i=1;i=40;i+) if(i+%5=0) if(+i%8=0)printf(“%d“,i); printf(“/n“); 程序执行后的输出结果是_。(分数:1.00)A.5B.24C.32 D.40解析:

    36、解析 本题的含义是在 1-40 的整数的范围中,只有当 i 的值能被 5 整除,且 i+2 盯疽能被 8 整除时,打印的值,满足这个条件的只有 32,选择 C 选项。22.有以下程序: #includestdio.h main() int s; scanf(“%d“, while(s0) switch(s) case 1:printf(“%d“,s+5); case 2:printf(“%d“,s+4);break; case 3:printf(“%d“,s+3); default:printf(“%d“,s+1);break; scanf(“%d“, 运行时,若输入 1 2 3 4 5 0回

    37、车,则输出结果是_。(分数:1.00)A.66656B.6566456 C.66666D.6666656解析:解析 switch 语句的执行流程是:首先计算 switch 后面圆括号中表达式的值,然后用此值依次与各个 case 的常量表达式比较,若圆括号中表达式的值与某个 case 后面的常量表达式的值相等,就执行此 case 后面的语句,执行后遇 break 语句就退出 switch 语句;若圆括号中表达式的值与所有 case 后面的常量表达式都不等,则执行 default 后面的语句。然后退出。所以输入 1 时打印 65,输入 2 时打印 6,输入 3 时打印 64,输入 4 时打印 5,

    38、输入 5 时打印 6。23.以下叙述中错误的是_。(分数:1.00)A.用户定义的函数中可以没有 return 语句B.用户定义的函数中可以有多个 return 语句,以便可以调用一次返回多个函数值 C.用户定义的函数中若没有 return 语句,则应当定义函数为 void 类型D.函数的 return 语句中可以没有表达式解析:解析 本题重点考察函数返回值的相关知识,函数的值只能通过 return 语句返回主调函数,在函数中允许有多个 return 语句,但每次调用只能有一个 return 语句被执行,因此只能返回一个函数值。不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“voi

    39、d。因此 B 选项正确。24.有以下程序: #includestdio.h void fun(char*c,int d) *c=%c+1; d=d+1; printf(“%c,%c,“,*c,d); main() char b=“a“,a=“A“; fun( printf(“%c,%c/n“,b,a); 程序运行后的输出结果是_。(分数:1.00)A.b,B,b,A B.b,B,B,AC.a,B,B,aD.a,B,a,B解析:解析 本题重点考察函数的调用,首先要了解字母对应的 ASCII 码。例如 A 为 65,a 为 97。即字母+1 则可得到下一个字母。其次是函数形参和实参的问题,运行过程

    40、如下:在 fun(输出 b,B,因为指针 c 指向地址的值为 b,此时 b=*c=“b“;函数返回执行 printf(“%c,%c/n“,b,a);输出 b,A,因此 A 选项正确。25.下列选项中,能正确定义数组的语句是_。(分数:1.00)A.int num02008;B.int num;C.int N=2008;int numN;D.#define N 2008int numN; 解析:解析 C 语言不允许定义动态数组,定义数组的大小必须为常量表达式。A 选项错误,C 语言中数组没有此类型的定义方法;B 选项错误,定义数组应指明数组大小,如果不指明数组大小,需要给定初值的个数;C 选项错

    41、误,N 为变量,不能用来定义数组大小。因此 D 选项正确。26.以下函数实现按每行 8 个输出 w 所指数组中的数据: #includestdio.h void fun(int*w,int n) int i; for(i=0;in;i+) _ printf(“%d“,wi); printf(“/n“); 在横线处应填入的语句是_。(分数:1.00)A.if(i/8=0)printf(“/n“);B.if(i/8=0)continue;C.if(i%8=0)printf(“/n“); D.if(i%8=0)continue;解析:解析 要按照每行 8 个输出数据的话,横线处语句的功能应该为:当

    42、i 是 8 的倍数时(即 i%8=0),输出一个换行符。因此 C 选项正确。27.有以下程序: #includestdio.h void fun(char*c) while(*c) if(*c=“a“ c+; main() char s81; gets(s); fun(s); puts(s); 当执行程序时从键盘上输入 Hello Beijing回车,则程序运行后的输出结果是_。(分数:1.00)A.hello beijingB.Hello BeijingC.HELLO BEIJING D.hELLO Beijing解析:解析 主程序读取整个字符串存于 s 中,调用 fun 函数,字符指针 c

    43、 指向数组 s。函数 fun 的功能是把指针 c 所指向的字符数组中的所有小写字符转换为大写。gets 函数可以把空格作为字符串的一部分输入,以回车作为输入结束。如果*c 为小写字符,则*c=*c-32(转大写)。因此 C 选项正确。28.有以下程序: #includestdio.h main() int a44=1,4,3,2, 8,6,5,7, 3,7,2,5, 4,8,6,1; int 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

    44、(i=0;i4;i+) printf(“%d,“,aii); 程序运行后的输出结果是_。(分数:1.00)A.1,6,2,1,B.8,7,3,1,C.4,7,5,2,D.1,6,5,7, 解析:解析 首先对二维数组进行赋值操作,a00、a01、a32、a33的值为1、4、6、1。通过 for 语句和 if 语句,对二维数组各列元素进行由小到大的排序操作,程序最后通过 for 语句输出二维数组对角线上的元素。因此 D 选项正确。29.有以下程序(strcat 函数用于连接两个字符串): #includestdio.h #includestring.h main() char a20=“ABCD/

    45、0EFG/0“,b=“IJK“; strcat(a,b); printf(“%s/n“,a); 程序运行后的输出结果是_。(分数:1.00)A.UKB.ABCDE/0FG/0IJKC.ABCDIJK D.EFGIJK解析:解析 字符数组 a 中包含两个“/0“,遇到第一个“/0“时就表示字符串 a 结束。字符串处理函数strcat(字符数组 a,字符数组 b),功能是连接两个字符数组中的字符串,把字符串 b 连接到 a 的后面,结果放在字符数组 a 中。连接时将字符串 a 后的“/0“取消,只在新串最后保留一个“/0“。本题相当于将“ABCD”和“UK”连接。因此 C 选项正确。30.有以下程序段: char name20; int num; scanf(“name=%s num=%d“,name, 当执行上述程序段,并从键盘输入:name=Lili num=1001回车后,name 的值为_。(分数:1.00)A.name=Lili num=1001B.name=LiliC.Lili num=D.Lili 解析:解析 在输入格式控制“name=%s num=%d”中,普通字符“name=num=”在输入时要原样输入,而格式控制符%s 和%d


    注意事项

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




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

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

    收起
    展开