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

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

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

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

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

    1、二级 C 语言笔试-429 及答案解析(总分:94.00,做题时间:90 分钟)一、选择题(总题数:40,分数:62.00)1.下列叙述中正确的是( )。A)一个逻辑数据结构只能有一种存储结构B)逻辑结构属于线性结构,存储结构属于非线性结构C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率(分数:2.00)A.B.C.D.2.算法的时间复杂度是指( )。A算法的执行时间 B算法所处理的数据量C算法程序中的语句或指令条数 D算法在执行过程中所需要的基本运算次数(分数:1.00)A.B.C.D.3.在长

    2、度为 n 的有序线性表中进行二分查找,最坏情况下需要比较的次数是A) O(n) B) O(n2) C) O(log2n) D) O(nlog2n)(分数:2.00)A.B.C.D.4.对长度为 n 的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。A) 125 B) n/2 C) n D) n+1(分数:2.00)A.B.C.D.5.下面关于数据库三级模式结构的叙述中,正确的是( )。A) 内模式可以有多个,外模式和模式只有一个B) 外模式可以有多个,内模式和模式只有一个C) 内模式只有一个,模式和外模式可以有多个D) 模式只有一个,外模式和内模式可以有多个(分数:2.00)A.B.C

    3、.D.6.对建立良好的程序设计风格,下列描述中正确的是( )。A) 程序应该简单、清晰、可读性好 B) 符号名的命名只需要符合语法C) 充分考虑程序的执行效率 D) 程序的注释可有可无(分数:2.00)A.B.C.D.7.下列叙述中正确的是( )。A) 软件交付使用后还需要进行维护 B) 软件一旦交付使用就不需要再进行维护C) 软件交付使用后其生命周期就结束 D) 软件维护是指修复程序中被破坏的指令(分数:1.00)A.B.C.D.8.数据库设计的四个阶段是:需求分析,概念设计,逻辑设计和_。(A) 编码设计(B) 测试阶段(C) 运行阶段(D) 物理设计(分数:2.00)A.B.C.D.9.

    4、在 E-R 图中,用来表示实体的图形是_。A) 矩形 B) 椭网形C) 菱形 D) 三角形(分数:2.00)A.B.C.D.10.有三个关系 R、S 利 T 如下:(分数:2.00)A.B.C.D.11.下列叙述中正确的是_。(A) 为了建立一个关系,首先要构造数据的逻辑关系(B) 表示关系的二维表中各元组的每一个分量还可以分成若干数据项(C) 一个关系的属性名表称为关系模式(D) 一个关系可以包括多个二维表(分数:2.00)A.B.C.D.12.下列不正确的转义字符是( )。A) / B) /t C) /n D) 088(分数:2.00)A.B.C.D.13.C 语言中最简单的数据类型包括A

    5、) 整型、实型、逻辑型 B) 整型、实型、字符型C) 整型、字符型、逻辑型 D) 字符型、实型、逻辑型(分数:1.00)A.B.C.D.14.以下叙述中错误的是_。A) C 语句必须以分号结束B) 复合语句在语法上被看作一条语句C) 空语句出现在任何位置都不会影响程序运行D) 赋值表达式末尾加分号就构成赋值语句(分数:1.00)A.B.C.D.15.有以下程序:main()int x=3, y=2, z=1;printf(“% d/n“, x/y程序运行后的输出结果是_。A) 3 B) 2 C) -1 D) 0(分数:1.00)A.B.C.D.16.若变量均已正确定义并赋值,以下合法的 C 语

    6、言赋值语句是A) x=y=5; B) x=n%2.5; C) x+n=i; D) x=5=4+1;(分数:1.00)A.B.C.D.17.能正确表示逻辑关系“a10 或 a0”的 C 语言表达式是A) a=10 or a=0 B) a=0 | a=10 C) a=10 else a+;语句功能不同的 switch 语句是A) switch(a)case 1: a=b; break;default:a+;B) switch(a=1)case 0: a=b; break;case 1:a+;C) switch(a)default: a+; break;case 1:a=b;D) switch(a=

    7、1)case 1:a=b; break;case 0:a+;(分数:1.00)A.B.C.D.19.有下列程序:fun(int x, int y) return (x+y);main()int a =1,b=2,c=3,sum; sum=fun(a+,b+,a+b),c+);printf(“%d/n“, sum);执行后的输出结果是( )。A) 6 B) 7C) 8 D) 9(分数:2.00)A.B.C.D.20.已知下面的程序段,正确的判断是 _。#define A 3#define B(A) (A+1)*A) int a=3;X=3*(A+B(7);A) 程序错误,不允许嵌套定义 B) X

    8、=93C) X=81 D) 程序错误,宏定义不允许有参数(分数:1.00)A.B.C.D.21.若执行下列程序时从键盘上输入 2,则输出结果是( )。#includestdio.hmain()int a;scanf(“%d“,B) while(ch=getchar()=/n)putchar(ch);C) while(ch=getchar()!=/N)putchar(ch);D) while(ch=getchar()!=/n)putchar(ch);(分数:2.00)A.B.C.D.23.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是_。A) 地址传递B) 单向值传递C) 由

    9、实参传递给形参,再由形参传递给实参D) 传递方式由用户指定(分数:2.00)A.B.C.D.24.下面程序段的运行结果是char*s=“abcde“;s+=2;printf(“%d“,s);A) cde B) 字符c C) 字符c的地址 D) 无确定的输出结果(分数:2.00)A.B.C.D.25.以下关于 return 语句的叙述中正确的是( )。A一个自定义函数中必须有一条 return 语句B一个自定义函数中可以根据不同情况设置多条 return 语句C定义成 void 类型的函数中可以有带返回值的 return 语句D没有 return 语句的自定义函数在执行结束时不能返回到调用处(分

    10、数:1.00)A.B.C.D.26.以下关于 return 语句的叙述中正确的是A) 一个自定义函数中必须有一条 return 语句B) 一个自定义函数中可以根据不同情况设置多条 return 语句C) 定义成 void 类型的函数中可以有带返回值的 return 语句D) 没有 return 语句的自定义函数在执行结束时不能返同到调用处A.B.C.D.27.下列选项中,能正确定义数组的语句是A) intnum02008; B) intnum;C) int N=2008; D) #defineN 2008int numN; int numN;A.B.C.D.28.有定义语句:char s10;

    11、,若要从终端给 s 输入 5 个字符,错误的输入语句是A) gets(for( )j+=ai;printf(“%d“,j-40);A) i=1;i4;+i B) i=1;i3;+i C) i=4;i2;i- D) i=2;i4;+i(分数:2.00)A.B.C.D.32.若有定义 int a10,*p=a,则 p+6 表示( )。A) 数组元素 a5的值 B) 数组元素 a5的地址C) 数组元素 a6的地址 D) 数组元素 a0的值加上 5(分数:1.00)A.B.C.D.33.下列说法正确的是( )。A) 在 C 语言中,可以使用动态内存分配技术,定义元素个数可变的数组B) 在 C 语言中,

    12、数组元素的个数可以不确定,允许随机变动C) 在 C 语言中,数组元素的数据类型可以不一致D) 在 C 语言中,定义了一个数组后,就确定了它所容纳的元素的个数(分数:2.00)A.B.C.D.34.有下列程序:#includestdio.hstructstint(x,y)date2=1,10,2,20;main()structst*p=date;printf(“%d,“,p-y);printf(“%d/n“,(+p)-x);程序的运行结果是( )。A10,1 B20,1 C10,2 D20,2(分数:1.00)A.B.C.D.35.下列语句中,在字符串 s1 和 s2 相等时显示“they ar

    13、e Equal“的是( )。A) if(*s1=*s2) puts(“they are Equal“);B) if(!strcmp(s1,s2)puts(“they are Equal“);C) if(s1=s2) Puts(“they are Equal“);D) if(strcmp(s1,s2) )puts(“they are Equal“);(分数:1.00)A.B.C.D.36.以下程序运行后的输出结果是#includestdio.h#define SUB(a)(a)-(a)main()int a=2, b=3, c=5, d;d=SUB(a+b)*e;printf(“%d/n“, d

    14、);A) 0 B) -12 C) -20 D) 10(分数:2.00)A.B.C.D.37.有以下程序:# define f(x) (x*x)main()int i1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf(“%d,%d/n“,i1,i2);程序运行后的输出结果是_。A) 64,28 B) 4,4C) 4,3 D) 64,64(分数:2.00)A.B.C.D.38.在 C 语言中,只有在使用时才占用内存单元的变量,其存储类型是A) auto 和 register B) extern 和 register C) auto 和 static D) stati

    15、c 和 register(分数:2.00)A.B.C.D.39.有以下程序struct Sint n;int a20;void f(int *a,int n )int i;for(i=0;iN-1;i+)NBSP;AI+=I;main()int i;struct S s10,2,3,1,6,8,7,5,4,10,9;f(s.a,s.n);for(i=0;iS.N;i+)NBSP;PRINTF(“%D“,S.AI);程序运行后的输出结果是_。(A) 2,4,3,9,12,12,11,11,18,9,(B) 3,4,2,7,9,8,6,5,11,10,(C) 2,3,1,6,8,7,5,4,10,

    16、9,(D) 1,2,3,6,8,7,5,4,10,9,(分数:2.00)A.B.C.D.40.若有结构体定义:struct stuint num;char sex;int age;a1,a2;则下列语句中错误的是( )。A) printf(“%d,%c,%d“,a1); B) a2.age=a1.age;C) a1.age+; D) a1.num=5;(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:32.00)41.数据的独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,这称为 1。(分数:2.00)填空项 1

    17、:_42.软件工程研究的内容主要包括:软件开发技术和 1。(分数:2.00)填空项 1:_43.诊断和改正程序中错误的工作通常称为 1。(分数:2.00)填空项 1:_44.语句“x+;+x;x=1+x;”执行后都使变量 x 中的值增 1,请写出一条同一功能的赋值语句 1。(分数:4.00)填空项 1:_45.软件工程研究的内容主要包括: 1 技术和软件工程管理。(分数:2.00)填空项 1:_46.以下程序运行后的输出结果是U /U。 #includestdio.h main() int a=200,b=010; printf(“%d%d/n“,a,b); (分数:2.00)填空项 1:_4

    18、7.有以下程序:#include stdio.hmain()int t=1,i=5;for(;i=0;i-) t*=i;printf(“%d/n“,t);执行后的输出结果是U /U。(分数:2.00)填空项 1:_48.下列程序的功能:对输入的一行字符中的数字字符的字面值累加,输出此累加和,请填空。#includestdio.h#includectype.hmain()char c;int a,s=0;while(_)if(isdigit(c)a=c-0;s+=a;printf(“s=%d“,s);(分数:2.00)填空项 1:_49.下列程序段的运行结果是_。int x=0,y=0;whil

    19、e(x15) y+,x+=+y;printf(“%d,%d“,y,x);(分数:2.00)填空项 1:_50.将以下程序段写成三目运算表达式:U /U。if(ab) max=a;else max=b;(分数:2.00)填空项 1:_51.请将以下程序中的函数声明语句补充完整。#includestdio.hint _;main()int x, y, (*P)();scanf(“%d%d“, p=max;printf(“%d/n“, (*P)(x, y);int max(int a, int b)return(ab ? a:b);(分数:2.00)填空项 1:_52.以下程序的功能是:借助指针变量

    20、找出数组元素中最大值所在的位置并输出该最大值。请在输出语句中填写代表最大值的输出项。 #includestdio.h main() int a10, *p, *s; for(p=a;p-a10;p+) scanf(“%d“, p); for(p=a, s=a;p-a10;p+) if(*p*s) s=p; printf(“max=%d/n“, _); (分数:2.00)填空项 1:_53.在宏定义#define P13.14159 中,用宏名 PI 代替一个 1。(分数:2.00)填空项 1:_54.以下程序的功能是:借助指针变量找出数组元素中的最大值及其元素的下标值。请填空。#include

    21、stdiohmain()int a10,*p,*s;for(p=a;P-a10;p+)scanf(“%d“,p);for(p=a,s=a;p-a10;p+)if(*p*s)s=_;printf(“index=%d/n“,s-a);(分数:2.00)填空项 1:_55.在 E-R 图中,图形包括矩形框、菱形框、椭圆框,其中表示实体联系的是 1 框。(分数:2.00)填空项 1:_二级 C 语言笔试-429 答案解析(总分:94.00,做题时间:90 分钟)一、选择题(总题数:40,分数:62.00)1.下列叙述中正确的是( )。A)一个逻辑数据结构只能有一种存储结构B)逻辑结构属于线性结构,存储

    22、结构属于非线性结构C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率(分数:2.00)A.B.C.D. 解析:解析 数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,常用的存储结构有顺序和链式结构。采用不同的存储结构,其处理的效率是不同的。2.算法的时间复杂度是指( )。A算法的执行时间 B算法所处理的数据量C算法程序中的语句或指令条数 D算法在执行过程中所需要的基本运算次数(分数:1.00)A.B.C.D. 解析:解析 算法的时间复杂度是指算

    23、法需要消耗的时间资源。一般来说,计算机算法是问题规模 n 的函数 f(n),算法的时间复杂度也因此记做 T(n)=0(f(n)因此,问题的规模 n 越大,算法执行的时间的增长率与 f(n)的增长率正相关,称做渐进时间复杂度(Asymptotic Time Complexity)。简单来说就是算法在执行过程中所需要的基本运算次数。3.在长度为 n 的有序线性表中进行二分查找,最坏情况下需要比较的次数是A) O(n) B) O(n2) C) O(log2n) D) O(nlog2n)(分数:2.00)A.B.C. D.解析:解析 二分查找法也称为折半查找法。它的基本思想是:将 n 个元素分成个数大

    24、致相同的两半,取 an/2与欲查找的 x 进行比较,如果 x=an/2,则找到 x,算法终止;如果 xan/2,则要在数组 a的左半部继续搜索 x(这里假设数组元素呈升序排列);如果 xan/2,则要在数组 a 的右半部继续搜索x。每次余下 n/(2i)个元素待比较,当最后剩下一个时,即 n/(2i)=1。故,n=2 i;所以 i=log2n。4.对长度为 n 的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。A) 125 B) n/2 C) n D) n+1(分数:2.00)A.B.C. D.解析:解析 对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字

    25、进行比较,直到两者相符,查找到所要找的元素为止。在最坏情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为 n。5.下面关于数据库三级模式结构的叙述中,正确的是( )。A) 内模式可以有多个,外模式和模式只有一个B) 外模式可以有多个,内模式和模式只有一个C) 内模式只有一个,模式和外模式可以有多个D) 模式只有一个,外模式和内模式可以有多个(分数:2.00)A.B. C.D.解析:解析 数据库的三级模式结构是指数据库系统的外模式、模式和内模式。一个数据库可以有多个外模式,但只有一个模式和一个内模式。6.对建立良好的程序设计风格,

    26、下列描述中正确的是( )。A) 程序应该简单、清晰、可读性好 B) 符号名的命名只需要符合语法C) 充分考虑程序的执行效率 D) 程序的注释可有可无(分数:2.00)A. B.C.D.解析:解析 “青晰第一,效率第二”,在考虑到程序的执行效率的同时,一定要保证程序清晰、可读;对符号名的命名,除了要符合语法要求外,还要具有一定的含义;程序的注释可以帮助程序员理解程序,不是可有可无的。7.下列叙述中正确的是( )。A) 软件交付使用后还需要进行维护 B) 软件一旦交付使用就不需要再进行维护C) 软件交付使用后其生命周期就结束 D) 软件维护是指修复程序中被破坏的指令(分数:1.00)A. B.C.

    27、D.解析:解析 软件的运行和维护是指将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。而软件生命周期是指软件产品从提出、实现、使用维护到停止使用的整个过程。8.数据库设计的四个阶段是:需求分析,概念设计,逻辑设计和_。(A) 编码设计(B) 测试阶段(C) 运行阶段(D) 物理设计(分数:2.00)A.B.C.D. 解析:9.在 E-R 图中,用来表示实体的图形是_。A) 矩形 B) 椭网形C) 菱形 D) 三角形(分数:2.00)A. B.C.D.解析:解析 E-R 模型用矩形表示实体集。10.有三个关系 R、S 利 T 如下:(分数:2.00)

    28、A.B. C.D.解析:解析 由三个关系 R、S 和 T 的结构可以知道,关系 T 是由关系 R、S 经过差运算得到的。11.下列叙述中正确的是_。(A) 为了建立一个关系,首先要构造数据的逻辑关系(B) 表示关系的二维表中各元组的每一个分量还可以分成若干数据项(C) 一个关系的属性名表称为关系模式(D) 一个关系可以包括多个二维表(分数:2.00)A. B.C.D.解析:12.下列不正确的转义字符是( )。A) / B) /t C) /n D) 088(分数:2.00)A.B.C.D. 解析:解析/是反斜线转义字符:/t是水平跳格转义字符:/n是换行转义字符;C 语言中没有规定088为转义字

    29、符。13.C 语言中最简单的数据类型包括A) 整型、实型、逻辑型 B) 整型、实型、字符型C) 整型、字符型、逻辑型 D) 字符型、实型、逻辑型(分数:1.00)A.B. C.D.解析:解析 C 语言没有专门的逻辑型数据,“0”代表逻辑假,“1”代表逻辑真。14.以下叙述中错误的是_。A) C 语句必须以分号结束B) 复合语句在语法上被看作一条语句C) 空语句出现在任何位置都不会影响程序运行D) 赋值表达式末尾加分号就构成赋值语句(分数:1.00)A.B.C. D.解析:解析 C 程序中所有语句都必须由一个分号“;”作为结束符。如果只有一个分号,这个分号也是一条语句,称为“空语句”,程序执行时

    30、不产生任何动作。程序设计中有时需要加一个空语句来表示存在一条语句,但随意加分号也会导致逻辑上的错误,影响程序的运行。所以选项 C 的说法是错误的。15.有以下程序:main()int x=3, y=2, z=1;printf(“% d/n“, x/y程序运行后的输出结果是_。A) 3 B) 2 C) -1 D) 0(分数:1.00)A.B.C.D. 解析:解析 本题中表达式 x/y else a+;语句功能不同的 switch 语句是A) switch(a)case 1: a=b; break;default:a+;B) switch(a=1)case 0: a=b; break;case 1

    31、:a+;C) switch(a)default: a+; break;case 1:a=b;D) switch(a=1)case 1:a=b; break;case 0:a+;(分数:1.00)A.B. C.D.解析:解析 选项 B 中,switch 语句中表达式“a=1”为“真”时,表达式取值 1,程序流程转向 case 1: a+;,与 if(a=1) a=b; else a+;语句功能不同。19.有下列程序:fun(int x, int y) return (x+y);main()int a =1,b=2,c=3,sum; sum=fun(a+,b+,a+b),c+);printf(“%

    32、d/n“, sum);执行后的输出结果是( )。A) 6 B) 7C) 8 D) 9(分数:2.00)A.B.C. D.解析:解析函数 fun(int x, int y)的功能是返回两个整型数据的和。在主函数中,变量 a, b, c 的初始值分别为 1,2,3。因此逗号表达式“a+,b+,a+b”的值等于 5,表达式 c+的值为 3,调用子函数的表达式为“fun(5,3);”,其返回值等 8。所以变量 sum 的值等于 8。20.已知下面的程序段,正确的判断是 _。#define A 3#define B(A) (A+1)*A) int a=3;X=3*(A+B(7);A) 程序错误,不允许嵌

    33、套定义 B) X=93C) X=81 D) 程序错误,宏定义不允许有参数(分数:1.00)A.B.C. D.解析:评析 本题的宏定义是合法的,宏定义展开为 3*(3+(A+1)*a)=3*(3+(7+1)*3)=81。21.若执行下列程序时从键盘上输入 2,则输出结果是( )。#includestdio.hmain()int a;scanf(“%d“,B) while(ch=getchar()=/n)putchar(ch);C) while(ch=getchar()!=/N)putchar(ch);D) while(ch=getchar()!=/n)putchar(ch);(分数:2.00)A

    34、.B.C.D. 解析:解析 本题考查两个知识点:C 语言用/n这个字符常量表示换行;函数 getchar()的作用是从终端输入一个字符,当遇到换行时结束输入。23.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是_。A) 地址传递B) 单向值传递C) 由实参传递给形参,再由形参传递给实参D) 传递方式由用户指定(分数:2.00)A.B. C.D.解析:评析 C 语言规定,实参变量对形参变量的数据传递是“单向值传递”,只由实参传给形参。在内存中,实参单元与形参单元是不同的单元。调用结束后,实参单元仍保留并维持原值。24.下面程序段的运行结果是char*s=“abcde“;s+=

    35、2;printf(“%d“,s);A) cde B) 字符c C) 字符c的地址 D) 无确定的输出结果(分数:2.00)A.B.C. D.解析:解析 对于字符串指针,其保留的是整个串的首地址,即第一个字符的起始地址;当该指针做算术运算时,就是该指针根据其类型向后移动相应的存储空间。25.以下关于 return 语句的叙述中正确的是( )。A一个自定义函数中必须有一条 return 语句B一个自定义函数中可以根据不同情况设置多条 return 语句C定义成 void 类型的函数中可以有带返回值的 return 语句D没有 return 语句的自定义函数在执行结束时不能返回到调用处(分数:1.0

    36、0)A.B. C.D.解析:解析 return 语句又称为返回语句。该语句有下述两种格式:不带返回值格式和带返回值格式。即“return;”和“rcturn(表达式);”,其中,return 是关键字。该语句用在被调用函数中,在被调用函数中执行到该语句时,将结束对被调用函数的执行,并把控制权返回给调用函数,继续执行调用函数后边的语句。在带有返回值的情况下,将 return 语句所带的表达式的值返回给调用函数,作为调用函数的值。在被调用函数中,可以用 return 语句,也可以不用 return 语句。如果要求被调用函数有返回值,则一定要用 return 语句,采用 return(表达式)格式。

    37、如果被调用函数不需要返回值,并且当被调用函数的所有语句执行完后进行返回,则被调用函数可以不用 return 语句。26.以下关于 return 语句的叙述中正确的是A) 一个自定义函数中必须有一条 return 语句B) 一个自定义函数中可以根据不同情况设置多条 return 语句C) 定义成 void 类型的函数中可以有带返回值的 return 语句D) 没有 return 语句的自定义函数在执行结束时不能返同到调用处A.B. C.D.解析:解析 一个自定义函数中可以没有返回值。如果函数不返回值,则应定义为 void 型,程序执行结束后自动返回到调用处。故选项 A、C、D 错误。一个自定义函

    38、数可以根据不同的情况设置多条 return 语句,但函数的返回值必须只有一个,故选项 B 正确。27.下列选项中,能正确定义数组的语句是A) intnum02008; B) intnum;C) int N=2008; D) #defineN 2008int numN; int numN;A.B.C.D. 解析:解析 选项 A 不符合 C 语言的语法要求;选项 B 中没有指定数组的大小;选项 c 中数组大小不能用变量来指定。28.有定义语句:char s10;,若要从终端给 s 输入 5 个字符,错误的输入语句是A) gets(for( )j+=ai;printf(“%d“,j-40);A) i

    39、=1;i4;+i B) i=1;i3;+i C) i=4;i2;i- D) i=2;i4;+i(分数:2.00)A.B.C.D. 解析:解析 要想使程序输出是 25,则 j-40=25,j=65,而 j 初值是 50,所以填入 for 循环中的语句,使引用的数组元素累加为 65-50=15 即可。32.若有定义 int a10,*p=a,则 p+6 表示( )。A) 数组元素 a5的值 B) 数组元素 a5的地址C) 数组元素 a6的地址 D) 数组元素 a0的值加上 5(分数:1.00)A.B.C. D.解析:解析 旨针中存放的是变量的地址,指针也可以进行加减运算,这时指针移动的最小单位是一

    40、个存储单元,而不是一个字节。所以题中 p+6 指的是将指针向后移动了 6 个存储单元,指向 a6,存放的是 a6的地址。33.下列说法正确的是( )。A) 在 C 语言中,可以使用动态内存分配技术,定义元素个数可变的数组B) 在 C 语言中,数组元素的个数可以不确定,允许随机变动C) 在 C 语言中,数组元素的数据类型可以不一致D) 在 C 语言中,定义了一个数组后,就确定了它所容纳的元素的个数(分数:2.00)A.B.C.D. 解析:解析 本题考查数组的两个知识点:在 C 语言中,数组元素的个数是确定的,不允许随机变动,数组定义好之后,它所能容纳的元素的个数也就确定了;同一个数组中所有元素的

    41、类型是一样的。34.有下列程序:#includestdio.hstructstint(x,y)date2=1,10,2,20;main()structst*p=date;printf(“%d,“,p-y);printf(“%d/n“,(+p)-x);程序的运行结果是( )。A10,1 B20,1 C10,2 D20,2(分数:1.00)A.B.C. D.解析:解析 data2是两个结构体组成的数组,p 指向结构体数组的首地址,p-y 访问第一个结构体的第二个元素;(+p)x 访问第二个结构体的第一个元素。所以输出为 10.2。35.下列语句中,在字符串 s1 和 s2 相等时显示“they a

    42、re Equal“的是( )。A) if(*s1=*s2) puts(“they are Equal“);B) if(!strcmp(s1,s2)puts(“they are Equal“);C) if(s1=s2) Puts(“they are Equal“);D) if(strcmp(s1,s2) )puts(“they are Equal“);(分数:1.00)A.B. C.D.解析:解析 字符串比较不能用两个等于号(=)来进行比较, 应使用函数 strcmp(s1,s2)来比较。 函数 strcmp(s1,s2)的功能是:当字符串 s1 和 s2 相等时,返回值为 0。因此,当表达式!

    43、strcmp(s1,s2)=1时,条件成立,执行后面的语句,输出 they are Equal。36.以下程序运行后的输出结果是#includestdio.h#define SUB(a)(a)-(a)main()int a=2, b=3, c=5, d;d=SUB(a+b)*e;printf(“%d/n“, d);A) 0 B) -12 C) -20 D) 10(分数:2.00)A.B.C. D.解析:解析 本题考查带参的宏定义。编译时,将 d=SUB(a+b)*c 宏展开,字符替换后为 d=(a+b)-(a+b)*c=(2+3)-(2+3)*5=5-5*5=-20。37.有以下程序:# de

    44、fine f(x) (x*x)main()int i1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf(“%d,%d/n“,i1,i2);程序运行后的输出结果是_。A) 64,28 B) 4,4C) 4,3 D) 64,64(分数:2.00)A.B.C. D.解析:解析 根据题意,i1=f(8)/f(4)进行宏替换后,11=(8*8)/(4*4)=4,i2=f(4+4)/f(2+2)=(4+4*4+4)/(2+2*2+2)=24/8=3。所以输出结果为 4、3。38.在 C 语言中,只有在使用时才占用内存单元的变量,其存储类型是A) auto 和 registe

    45、r B) extern 和 register C) auto 和 static D) static 和 register(分数:2.00)A. B.C.D.解析:命题目的 自动变易和寄存器变易。解题要点 在 C 语言中只有自动变量和寄存器变量在使用时才占用内存单元。39.有以下程序struct Sint n;int a20;void f(int *a,int n )int i;for(i=0;iN-1;i+)NBSP;AI+=I;main()int i;struct S s10,2,3,1,6,8,7,5,4,10,9;f(s.a,s.n);for(i=0;iS.N;i+)NBSP;PRINT

    46、F(“%D“,S.AI);程序运行后的输出结果是_。(A) 2,4,3,9,12,12,11,11,18,9,(B) 3,4,2,7,9,8,6,5,11,10,(C) 2,3,1,6,8,7,5,4,10,9,(D) 1,2,3,6,8,7,5,4,10,9,(分数:2.00)A. B.C.D.解析:40.若有结构体定义:struct stuint num;char sex;int age;a1,a2;则下列语句中错误的是( )。A) printf(“%d,%c,%d“,a1); B) a2.age=a1.age;C) a1.age+; D) a1.num=5;(分数:2.00)A. B.C

    47、.D.解析:解析 题中 a1 和 a2 两个结构体变量名所对应的成员相同,可以与运算“+相结合。结构体变量的输出格式为:printf(“要输出变量名;%d/t“,结构变量名要输出的成员变量名),二、填空题(总题数:15,分数:32.00)41.数据的独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,这称为 1。(分数:2.00)填空项 1:_ (正确答案:物理独立性)解析:解析 数据的独立性是指数据和应用程序相互独立,分为物理独立性和逻辑独立性。其中物理独立性是指数据的物理结构(包括存储结构、存取方式)改变时,不需要修改应用程序。而逻辑独立性是指当逻辑结构改变时,不需要修改应用程序。42.软件工程研究的内容主要包括:软件开发技术和 1。(分数


    注意事项

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




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

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

    收起
    展开