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

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

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

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

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

    1、二级 C 语言笔试-453 及答案解析(总分:97.00,做题时间:90 分钟)一、选择题(总题数:40,分数:63.00)1.下列选项中,不是一个算法的基本特征的是( )。A) 完整性 B) 可行性 C) 有穷性 D) 拥有足够的情报(分数:2.00)A.B.C.D.2.下列数据结构中,属于非线性的是( )。A) 线性表 B) 队列 C) 树 D) 栈(分数:2.00)A.B.C.D.3.检查软件产品是否符合需求定义的过程称为A) 确认测试 B) 集成测试 C) 验证测试 D) 验收测试(分数:2.00)A.B.C.D.4.下列叙述中,不属于测试的特征的是A) 测试的挑剔性 B) 完全测试的

    2、不可能性 C) 测试的可靠性 D) 测试的经济性(分数:2.00)A.B.C.D.5.模块本身的内聚是模块独立性的重要性度量因素之。在 7 类内聚中,具有最强内聚的项是_。A) 顺序性内聚 B) 过程性内聚 C) 逻辑性内聚 D) 功能性内聚(分数:2.00)A.B.C.D.6.在深度为 7 的满二叉树中,叶子结点的个数为A) 32 B) 31C) 64 D) 63(分数:2.00)A.B.C.D.7.待排序的关键码序列为(15,20,9,30,67,65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码 15 被放到第( )个位置。 A) 2 B) 3 C)

    3、4 D) 5(分数:2.00)A.B.C.D.8.有以下程序:main()unsigped int a;int b=-1;a=b;printf(“% u“, a);程序运行后的输出结果是_。A) -1 B) 65535 C) 32767 D) -32768(分数:2.00)A.B.C.D.9.在软件设计中,不属于过程设计工具的是( )。A) PDL(过程设计语言) B) PAD 图 C) N-S 图 D) DFD 图(分数:1.00)A.B.C.D.10.对如图所示的二叉树进行中序遍历的结果是(分数:2.00)A.B.C.D.11.在结构化方法中,软件功能分解属于软件开发中的( )阶段。A)

    4、详细设计 B) 需求分析 C) 总体设计 D) 编程调试(分数:1.00)A.B.C.D.12.下列说法正确的是( )。A) main 函数必须放在 C 程序的最后面B) main 函数必须放在 C 程序的最前面C) main 函数可以放在 C 程序的中间部分,但在执行 C 程序时是从程序开头执行的D) main 函数可以放在 C 程序的中间部分,但在执行 C 程序时是从 main 函数开始的(分数:1.00)A.B.C.D.13.以下叙述中错误的是_。A) 算法正确的程序最终一定会结束B) 算法正确的程序可以有零个输出C) 算法正确的程序可以有零个输入D) 算法正确的程序对于相同的输入一定有

    5、相同的结果(分数:2.00)A.B.C.D.14.下列说法正确的是( )。A) 在 C 程序中,main()函数必须位于程序的最前面B) 在 C 程序中,一条语句只能写一行而不能写多行C) C 程序是以行为基本单位的D) C 语言本身没有输入输出语句(分数:1.00)A.B.C.D.15.下面四个选项中,均是不正确的八进制数或十六进制数的选项是A) 016 0x8f 018 B) 0abc 017 0xaC) 010 -0x11 0x16 D) 0a12 7ff -123(分数:1.00)A.B.C.D.16.以下选项中,不能作为合法常量的是_。A) 1.234e04 B) 1.234e0.4

    6、 C) 1.234e+4 D) 1.234e0(分数:2.00)A.B.C.D.17.以下定义语句中正确的是_。A) int a=b=0; B) char A=65+1,b=b;C) float a=1,*b=a,*c=b;D) double a=0.0;b=1.1;(分数:1.00)A.B.C.D.18.下列叙述中错误的是( )。 A) C 语句必须以分号结束 B) 复合语句在语法上被看作一条语句 C) 空语句出现在任何位置都不会影响程序运行 D) 赋值表达式末尾加分号就构成赋值语句(分数:1.00)A.B.C.D.19.有以下程序int add(int a,int b)return(a+b

    7、);main()int k,(*f)(),a=5,b=10;f=add;则以下函数调用语句错误的是A) k=(*f)(a,b); B) k=add(a,b);C) k=*f(a,b); D) k=f(a,b);(分数:1.00)A.B.C.D.20.在 ASCII 代码表中每一个大写字母比它相应的小写字母的 ASCII 码( )A) 小 32 B) 小 64 C) 大 32 D) 大 1(分数:2.00)A.B.C.D.21.若有下列定义和语句:int u=011,v=0x11,w=11;printf(“%o,%x,%d/n“,u,v,w);则输出结果是( )。A) 9,17,11 B) 9,

    8、11,11 C) 11,11,11 D) 11,17,11(分数:2.00)A.B.C.D.22.有以下程序:#include stdio. h main( )int m =3,n =4,x;x= -m+;x=x+8/+n;prinff(“ % d /n“ ,x);程序运行后的输出结果是( )。 A) 3 B) 5 C) -1 D) -2(分数:1.00)A.B.C.D.23.以下程序运行时,输入的值在哪个范围才会有输出结果?#includestdio.hmain()int x;Scanf(“%d“, if(x=3); elseif(x!=10) printf(“%d/n“, x);A) 不等

    9、于 10 的整数 B) 大于 3 且不等于 10 的整数C) 大于 3 或等于 10 的整数 D) 小于 3 的整数(分数:1.00)A.B.C.D.24.以下程序运行后的输出结果是#includestdio.hmain()int c=0, k;for(k=1; k3; k+)switch(k)default: c+=k;case 2: c+; break; case 4: c+=2; break;printf(“%d/n“, c);A) 3 B) 5 C) 7 D) 9(分数:1.00)A.B.C.D.25.为了避免在嵌套的条件语句 if else 中产生二义性,C 语言规定,else 子句

    10、总是与( )配对。A) 缩排位置相同 if B) 其前面最近的 ifC) 其后面最近的 if D) 同一行上的 if(分数:1.00)A.B.C.D.26.下列程序的运行结果是( )。main()int a=-5,b=1,c=1;int x=0,Y=2,z=0;if(c0)x=x+ y;if(a=0)if(b0)if(c=0)y=x-y;else if(c0)Y=x-y;else z=y;printf(“%d,%d,%d/n“,x,y,z);A) 2,2,0 B) 2,2,2 C) 0,2,0 D) 2,0,2(分数:1.00)A.B.C.D.27.以下程序中函数 reverse 的功能是对

    11、a 所指数组中的内容进行逆置。void reverse(int a, int n)int i, t;for(i=0; in/2; i+)t=ai; ai=an-1-1; an-1-i=t;main()int b10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10;int i, s=0;reverse(b, 8);for(i=6; i10; i+)s+=bi;printf(“% d/n“, s);程序运行后的输出结果是_。A) 22 B) 10 C) 34 D) 30(分数:1.00)A.B.C.D.28.有下列程序段:int k=0,a=1,b=2,c=3;k=ab?b:a; k=

    12、kc?c:k;执行该程序段后,k 的值是( )。A) 3 B) 2 C) 1 D) 0(分数:2.00)A.B.C.D.29.有下列函数定义:fun(float h)printf(“%f,%f/n”,h,h*h);该函数的类型是( )。A) int 类型 B) float 类型C) void 类型 D) 函数无类型说明,定义有错(分数:2.00)A.B.C.D.30.向 student 表插入一条新记录的正确 SQL 语句是_。A) APPEND INTO student VALUES(0401,王芳,女,18)B) APPEND student VALUES(0401,王芳,女,18):C)

    13、 INSERT INTO student VALUES(0401,王芳,女,18)D) INSERT student VALUES(0401,王芳,女,18)(分数:2.00)A.B.C.D.31.有以下程序main()int i;for(i=1;i=40;i+)if(i+%5=0)if(+i%8=0) pfintf(“%d“,i);printf(“/n“);执行后的输出结果是A) 5 B) 24 C) 32 D) 40(分数:2.00)A.B.C.D.32.有以下程序#includestdiohmain()FILE *fP;int k,n,a6=1,2,3,4,5,6;fp=fopen(“d

    14、2.dat“,“w“);fprintf(fp,“%d%d%d/n“,a0,a1,a2);fprintf(fp,“%d%d%d/n“,a3,a4,a5);fclose(fp);fp=fopen(“d2dat“,“r“);fscanf(fp,“%d%d“,i4;i+)s+=aai2;printf(“%d“,s);程序运行后的输出结果是( )。A) 26 B) 19 C) 10 D) 20(分数:2.00)A.B.C.D.35.下列程序的输出结果是( )。#inCludestdio.hmain()char ch25=“1234“,“5678,*p2;int i,j,s=0;for(i=0;i2;i+

    15、)pi=chi;for(i=0;i2;i+)for(j=0;pij/0;j+=2)s=pij-0;printf(“%d“,s);A) 6357 B) 6135 C) 1357 D) 691357(分数:2.00)A.B.C.D.36.下列程序的输出结果是( )。point(char*pt);main()char b4=a,c,s,f,*pt=b;pt=point(pt);printf(“%c/n“,*pt);point(char*p)p+=3;return p;A) s B) c C) f D) a(分数:1.00)A.B.C.D.37.已知形成链表的存储结构如下图所示,则下述类型描述中的空白

    16、处应填 _。struct linkchar data;_;node;(分数:2.00)A.B.C.D.38.设有定义“char*c;”,以下选项中能够使字符型指针 c 正确指向一个字符串的是( )。Achar str=“string“;c=str; Bscanf(%s,c);Cc=getchar(); D*c=“string“;(分数:1.00)A.B.C.D.39.变量 a 中的数据用二进制表示的形式是 01011101,变量 b 中的数据用二进制表示的形式是 11110000。若要求将 a 的高 4 位取反,低 4 位不变,所要执行的运算是A) ab B) a|b C) aa=(3*5,a

    17、+4);printf(“a=%d/n“,a);(分数:2.00)填空项 1:_46.若 x 和 y 都是 double 型变量,且 x 的初值为 3.0,y 的初值为 2.0,则表达式 pow(y,fabs(x)的值为U /U。(分数:2.00)填空项 1:_47.若有语句“doube x=17;int y;”,当执行“y=(int)(x/5)%2;”之后 y 的值为 1。(分数:4.00)填空项 1:_48.下列程序的输出结果是_。#includestdio.hmain()int x=1, y=1,a=1,b=1;switch(x)case 1:switch (y)case 0:a+; br

    18、eak;case 1:b+; break;case2: a+: b+; break;printf(“a=%d,b=%d/n“,a,b);(分数:4.00)填空项 1:_49.当调用函数时,实参是一个数组名,则向函数传递的是U /U。(分数:2.00)填空项 1:_50.若有定义 floatb15,*pb;,且数组 b 的首地址为 200H,则 p/13 所指向的数组元素的地址为 1。(分数:2.00)填空项 1:_51.以下程序的输出结果是U /U。# define MCNA(m)2*m# define MCNB(n, m)2*MCRA(n)+m# define f(x)(x*x)main()

    19、int i=2, j=3;printf(“% d/n“, MCRB(j, MCRA(i);(分数:2.00)填空项 1:_52.以下程序的输出结果是U /U。#includestdiohmain()int a=0;a+ =(a=8);printf(“%d/n“,a);(分数:2.00)填空项 1:_53.以下程序中给指针 p 分配 3 个 double 型动态内存单元,请填空。# includestdllb. hmain()double * p;p=(double*)malloc(U /U);p0=1.5; p1=2.5; p2=3.5printf(“% f % f % f/n“,p0,p1,

    20、 p2);(分数:2.00)填空项 1:_54.下面程序的运行结果是_。 #define POW(r)r*r main() int x=2,y=3,t; t=POW(x+y); printf(“%d/n“,t); (分数:2.00)填空项 1:_55.下列程序的输出结果是_.#include stdio.hfun ()static int a=O;a+=3; printf(“%d“,a);main ()int cc;for (cc=1;cc5;cc+) fun();printf (“/n“);(分数:2.00)填空项 1:_二级 C 语言笔试-453 答案解析(总分:97.00,做题时间:90

    21、 分钟)一、选择题(总题数:40,分数:63.00)1.下列选项中,不是一个算法的基本特征的是( )。A) 完整性 B) 可行性 C) 有穷性 D) 拥有足够的情报(分数:2.00)A. B.C.D.解析:解析 作为一个算法,一般应该具有下列 4 个特征:可行性,即考虑到实际的条件能够达到一个满意的结果;确定性,算法中的第一个步骤都必须是有明确定义的:有穷性,一个算法必须在有限的时间内做完;拥有足够的情报。2.下列数据结构中,属于非线性的是( )。A) 线性表 B) 队列 C) 树 D) 栈(分数:2.00)A.B.C. D.解析:解析 线性结构,是指数据元素只有一个直接前件元素和直接后件元素

    22、。线性表是线性结构。栈和队列是指对插入和删除操作有特殊要求的线性表,树是非线性结构。3.检查软件产品是否符合需求定义的过程称为A) 确认测试 B) 集成测试 C) 验证测试 D) 验收测试(分数:2.00)A. B.C.D.解析:解析 确认测试的任务是验证软件的功能和性能,以及其他特性是否满足需求规格说明中确定的各种需求;集成测试的主要目的是发现与接口有关的错误。4.下列叙述中,不属于测试的特征的是A) 测试的挑剔性 B) 完全测试的不可能性 C) 测试的可靠性 D) 测试的经济性(分数:2.00)A.B.C. D.解析:解析 软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给

    23、出程序可靠性的鉴定。它有 3 个方面的重要特征,即测试的挑剔性、完全测试的不可能性及测试的经济性。其中,没有测试的可靠性这一说法。5.模块本身的内聚是模块独立性的重要性度量因素之。在 7 类内聚中,具有最强内聚的项是_。A) 顺序性内聚 B) 过程性内聚 C) 逻辑性内聚 D) 功能性内聚(分数:2.00)A.B.C.D. 解析:评析 内聚性是个模块内部各元素间彼此结合的紧密程度的度量。内聚共有 7 类,它们之间的内聚性由弱到强排列顺序为:偶然内聚、逻辑内聚,时间内聚、过程内聚、通信内聚、顺序内聚和功能内聚。6.在深度为 7 的满二叉树中,叶子结点的个数为A) 32 B) 31C) 64 D)

    24、 63(分数:2.00)A.B.C. D.解析:解析 在二叉树的第 k 层上,最多有 2k-1(k1)个结点。对于满二叉树来说,每一层上的结点数都达到最大值,即在满二叉树的第 k 层上有 2k-1个结点。因此,在深度为 7 的满二叉树中,所有叶子结点在第 7 层上,即其结点数为 2k-1=27-1=64。7.待排序的关键码序列为(15,20,9,30,67,65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码 15 被放到第( )个位置。 A) 2 B) 3 C) 4 D) 5(分数:2.00)A. B.C.D.解析:解析 选择排序的基本思想是扫描整个线性表,

    25、从中选出最小的元素,将它交换到表的最前面,然后对剩下的子表采用同样的方法,直到子表为空。所以第一趟排序后,将选出最小的元素 9 放在第一个位置,元素 15 则放在第二个位置。8.有以下程序:main()unsigped int a;int b=-1;a=b;printf(“% u“, a);程序运行后的输出结果是_。A) -1 B) 65535 C) 32767 D) -32768(分数:2.00)A.B. C.D.解析:解析 int 型数据-1 与 unsigned int 型数据 65535 在内存中的存储内容相同。9.在软件设计中,不属于过程设计工具的是( )。A) PDL(过程设计语言

    26、) B) PAD 图 C) N-S 图 D) DFD 图(分数:1.00)A.B.C.D. 解析:解析 软件设计工具包括:程序流程图,N-S,PAD,HIPO,判定表,PDL。而 DFD 图(数据流图)属于结构化分析工具。10.对如图所示的二叉树进行中序遍历的结果是(分数:2.00)A. B.C.D.解析:解析 二叉树的中序遍历递归算法为:如果根不空,则按中序次序访问左子树;访问根结点;按中序次序访问右子树。否则返回。本题中,根据中序遍历算法,应首先按照中序次序访问以 C 为根结点的左子树,然后再访问根结点 F,最后才访问以 E 为根结点的右子树。遍历以 C 为根结点的左子树同样要遵循中序遍历

    27、算法,因此中序遍历结果为 ACBD:然后遍历根结点 F;遍历以 E 为根结点的右子树,同样要遵循中序遍历算法,因此中序遍历结果为 EG。最后把这 3 部分的遍历结果按顺序连接起来,中序遍历结果为 ACBDFEG。11.在结构化方法中,软件功能分解属于软件开发中的( )阶段。A) 详细设计 B) 需求分析 C) 总体设计 D) 编程调试(分数:1.00)A.B.C. D.解析:解析 需求分析将创建所需的数据模型、功能模型和控制模型,但不会进行功能分解;有了需求分析的报告,开始进行总体设计,其间将软件的功能分解,确定模块之间的接口;有了每个模块功能的分解,则每个模块进入详细设计阶段;接下来是编写代

    28、码,调试程序等。12.下列说法正确的是( )。A) main 函数必须放在 C 程序的最后面B) main 函数必须放在 C 程序的最前面C) main 函数可以放在 C 程序的中间部分,但在执行 C 程序时是从程序开头执行的D) main 函数可以放在 C 程序的中间部分,但在执行 C 程序时是从 main 函数开始的(分数:1.00)A.B.C.D. 解析:解析 每个 C 程序有且只有一个主函数(main),且程序必须从 main()函数开始执行。别外 main()函数可以放在程序中的任意位置。13.以下叙述中错误的是_。A) 算法正确的程序最终一定会结束B) 算法正确的程序可以有零个输出

    29、C) 算法正确的程序可以有零个输入D) 算法正确的程序对于相同的输入一定有相同的结果(分数:2.00)A.B. C.D.解析:解析 一个有效的算法程序必须有一个或一个以上的输出。14.下列说法正确的是( )。A) 在 C 程序中,main()函数必须位于程序的最前面B) 在 C 程序中,一条语句只能写一行而不能写多行C) C 程序是以行为基本单位的D) C 语言本身没有输入输出语句(分数:1.00)A.B.C.D. 解析:解析 本题涉及 C 语言最基本的 4 个知识点:C 语言程序是由函数构成的,C 程序的基本单位是函数;每个 C 程序有且只有一个主函数 main(),且程序必须从 main(

    30、)函数开始执行,但是 main()函数可以放在程序中的任意位置;C 语言的书写格式是自由的,一行可以写多条语句,一条语句也可以写在不同的行上:C 语言本身不提供输入输出语句,可以通过函数来实现输入和输出操作。15.下面四个选项中,均是不正确的八进制数或十六进制数的选项是A) 016 0x8f 018 B) 0abc 017 0xaC) 010 -0x11 0x16 D) 0a12 7ff -123(分数:1.00)A.B.C.D. 解析:解析 八进制中,不可能包括 8 以上的数字,它的范围只在 07 之间,以 0 开头。同样,十六进制是以 0x 开头,数字在 09 和 AF 之间。16.以下选

    31、项中,不能作为合法常量的是_。A) 1.234e04 B) 1.234e0.4 C) 1.234e+4 D) 1.234e0(分数:2.00)A.B. C.D.解析:解析 C 语言实数常数的科学表示法规定格式为:“实数 e 整数”或“实数 E 整数”,其中幂是整数,不能写成实数。选项 A、C、D 都是合法的常数。选项 B 的实数常数中幂为 0.4,不是整数,因此是不合法的常数。17.以下定义语句中正确的是_。A) int a=b=0; B) char A=65+1,b=b;C) float a=1,*b=a,*c=b;D) double a=0.0;b=1.1;(分数:1.00)A.B. C.

    32、D.解析:解析 变量定义的时候不能用连等,故 A 选项错误。C 选项中变量 C 和b 的类型不匹配。D 选项中,变量前为分号“;”表示前而的语句定义完毕,并没有为变量 b 定义,可将分号“;”改为逗号“,”即可。18.下列叙述中错误的是( )。 A) C 语句必须以分号结束 B) 复合语句在语法上被看作一条语句 C) 空语句出现在任何位置都不会影响程序运行 D) 赋值表达式末尾加分号就构成赋值语句(分数:1.00)A.B.C. D.解析:解析 C 语言规定每条语句和数据定义的最后必须有一个分号,分号是 C 语句的必要组成部分。复合语句也称为“语句块”,其形式如下:语句 1;语句 2;语句 n;

    33、,即用一对大括号把若干语句括起来构成一个语句组。一个复合语句在语法上视为一条语句,在一对花括号内的语句数量不限。一个赋值表达式的最后加一个分号就成为一条语句,即赋值语句。空语句是只有一个分号的语句,它什么也不做,程序设计中有时需要加一个空语句来表示存在一条语句,但随意加分号会导致逻辑上的错误,而且这种错误十分隐蔽,编辑器也不会提示逻辑错误,需要慎用。19.有以下程序int add(int a,int b)return(a+b);main()int k,(*f)(),a=5,b=10;f=add;则以下函数调用语句错误的是A) k=(*f)(a,b); B) k=add(a,b);C) k=*f

    34、(a,b); D) k=f(a,b);(分数:1.00)A.B.C. D.解析:命题目的 函数的调用。解题要点 在语句“k=*f(a,b)”中,由于“()”的优先级高于“*”,所以“*f(a,b);”表示其返回类型为指针的带有两个整型参数的函数。20.在 ASCII 代码表中每一个大写字母比它相应的小写字母的 ASCII 码( )A) 小 32 B) 小 64 C) 大 32 D) 大 1(分数:2.00)A. B.C.D.解析:解析 本题考查大小写字母的 ASCII 码值的关系。大写字母比它相应的小写字母的 ASCII 码小32。21.若有下列定义和语句:int u=011,v=0x11,w

    35、=11;printf(“%o,%x,%d/n“,u,v,w);则输出结果是( )。A) 9,17,11 B) 9,11,11 C) 11,11,11 D) 11,17,11(分数:2.00)A.B.C. D.解析:解析 在 C 语言中,“%d”表示输出带符号的十进制整型数;“%x”表示以十六进制无符号型输出整型数据(即不带前导 0x 或 0X);“%o”表示以八进制无符号型输出整型数据(即不带前导 0)。22.有以下程序:#include stdio. h main( )int m =3,n =4,x;x= -m+;x=x+8/+n;prinff(“ % d /n“ ,x);程序运行后的输出结

    36、果是( )。 A) 3 B) 5 C) -1 D) -2(分数:1.00)A.B.C.D. 解析:解析 程序中 x=-m+执行后 x=-3,执行 x=x+8/+n 相当于执行 x=-3+8/5,即 n 先增加 1,再代入表达式运算,结果为-2。23.以下程序运行时,输入的值在哪个范围才会有输出结果?#includestdio.hmain()int x;Scanf(“%d“, if(x=3); elseif(x!=10) printf(“%d/n“, x);A) 不等于 10 的整数 B) 大于 3 且不等于 10 的整数C) 大于 3 或等于 10 的整数 D) 小于 3 的整数(分数:1.0

    37、0)A.B. C.D.解析:解析 如果 x=3,则执行空语句;否则,再判断 x!=10。因此,只有当 x 大于 3 且不等于 10 时,才有输出结果。24.以下程序运行后的输出结果是#includestdio.hmain()int c=0, k;for(k=1; k3; k+)switch(k)default: c+=k;case 2: c+; break; case 4: c+=2; break;printf(“%d/n“, c);A) 3 B) 5 C) 7 D) 9(分数:1.00)A. B.C.D.解析:解析 for 循环 2 次:当循环变量 k=1 时,从 default 入口,执行

    38、 c+=k;,再顺序执行c+;,break 跳出 switch 结构,此时 c 的值为 2;当循环变量 k=2 时,从 case 2 入口,执行c+;,break 跳出 switch 结构,此时 c 的值为 3;退出循环结构,输出 c 值 3。25.为了避免在嵌套的条件语句 if else 中产生二义性,C 语言规定,else 子句总是与( )配对。A) 缩排位置相同 if B) 其前面最近的 ifC) 其后面最近的 if D) 同一行上的 if(分数:1.00)A.B. C.D.解析:解析 本题考查 if else 语句。C 语言规定,else 总是与它前面的最近的 if 配对。26.下列程

    39、序的运行结果是( )。main()int a=-5,b=1,c=1;int x=0,Y=2,z=0;if(c0)x=x+ y;if(a=0)if(b0)if(c=0)y=x-y;else if(c0)Y=x-y;else z=y;printf(“%d,%d,%d/n“,x,y,z);A) 2,2,0 B) 2,2,2 C) 0,2,0 D) 2,0,2(分数:1.00)A. B.C.D.解析:解析 本题考查 if else 语句的使用。 先判断第 1 个 if 语句,因为 c=10,所以 x=x+ y=0+2=2。第 1 个 if 语句,因为 a=-50,所以进入下列的复合语句。经判断发现,复

    40、合语句中第 2 个 if语句的条件均不满足,不执行任何语句退出,在这个过程中 y 和 z 的值没有发生变化。27.以下程序中函数 reverse 的功能是对 a 所指数组中的内容进行逆置。void reverse(int a, int n)int i, t;for(i=0; in/2; i+)t=ai; ai=an-1-1; an-1-i=t;main()int b10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10;int i, s=0;reverse(b, 8);for(i=6; i10; i+)s+=bi;printf(“% d/n“, s);程序运行后的输出结果是_。A)

    41、22 B) 10 C) 34 D) 30(分数:1.00)A. B.C.D.解析:解析 主函数调用 reverse 时。实参为 b 和 8,即 reverse 函数的功能是将数组 b 中的前 8 个元素逆置,其余元素不变。因此函数调用结束后数组 b 的内容为:8、7,6、5、4、3、2、1、9、10。main函数中 for 循环语句的功能是求 b6元素到 b9元素的和,即 s=b6+b7+b8+b9=2+1+9+10=22,因此 printf 语句的输出结果是 22。28.有下列程序段:int k=0,a=1,b=2,c=3;k=ab?b:a; k=kc?c:k;执行该程序段后,k 的值是(

    42、)。A) 3 B) 2 C) 1 D) 0(分数:2.00)A.B. C.D.解析:解析 因为 ab 成立,所以条件表达式 ab?b:a 的值等于 b 的值等于 2,因此变量 k 的值等于2。又因为 k=2c=3 不成立,所以条件表达式 kc?e:k 的值等于 k 的值等于 2。把条件表达式 kc?e:k的值赋给变量 k,因而变量 k 的值等于 2。因此,选项 B)为正确答案。29.有下列函数定义:fun(float h)printf(“%f,%f/n”,h,h*h);该函数的类型是( )。A) int 类型 B) float 类型C) void 类型 D) 函数无类型说明,定义有错(分数:2

    43、.00)A. B.C.D.解析:解析 本题考查默认函数的函数值的类型。在函数定义时,由于函数没有说明其类型,系统默认一律自动按整型处理,因此,函数的类型为 int 类型。30.向 student 表插入一条新记录的正确 SQL 语句是_。A) APPEND INTO student VALUES(0401,王芳,女,18)B) APPEND student VALUES(0401,王芳,女,18):C) INSERT INTO student VALUES(0401,王芳,女,18)D) INSERT student VALUES(0401,王芳,女,18)(分数:2.00)A.B.C. D.

    44、解析:解析 本题考查的知识点是 SQL 语句的使用。SQL 插入命令的格式有两种:第一种是标准格式为INSERT INTO dbfname(fname1,Name2,)VALUES(eExpression1,eExpression2,);第二种是Visual FoxPro 格式为 INSERT INTO dbf name FORM ARRAY ArrayName/FROM MEMVAR。由此可知选项 C 正确。31.有以下程序main()int i;for(i=1;i=40;i+)if(i+%5=0)if(+i%8=0) pfintf(“%d“,i);printf(“/n“);执行后的输出结果

    45、是A) 5 B) 24 C) 32 D) 40(分数:2.00)A.B.C. D.解析:解析 当 for 循环执行到第 30 次时,i 的值为 30 能被 5 整除,然后继续执行两次 if 语句,i 经过两次自加 1 运算,值变为 32,能被 8 整除,故此时第一次执行“printf(“%d“,i);”语句,即输出32。32.有以下程序#includestdiohmain()FILE *fP;int k,n,a6=1,2,3,4,5,6;fp=fopen(“d2.dat“,“w“);fprintf(fp,“%d%d%d/n“,a0,a1,a2);fprintf(fp,“%d%d%d/n“,a3

    46、,a4,a5);fclose(fp);fp=fopen(“d2dat“,“r“);fscanf(fp,“%d%d“,i4;i+)s+=aai2;printf(“%d“,s);程序运行后的输出结果是( )。A) 26 B) 19 C) 10 D) 20(分数:2.00)A.B. C.D.解析:解析 本题考查二维数组元素的引用。二维数组可以看成是一个矩阵,aai2其实就是第 i 行的第 3 个元素,for 循环内的 s+=aai2其实就是将矩阵第 3 列的数相加,即 s=3+1+10+5=19。35.下列程序的输出结果是( )。#inCludestdio.hmain()char ch25=“123

    47、4“,“5678,*p2;int i,j,s=0;for(i=0;i2;i+)pi=chi;for(i=0;i2;i+)for(j=0;pij/0;j+=2)s=pij-0;printf(“%d“,s);A) 6357 B) 6135 C) 1357 D) 691357(分数:2.00)A.B.C. D.解析:解析 本题先将指针 p 指向二维数组 ch25,相当于 p0=“1234“,p1=“5678“,通过双重for 循环,是要将 p 中的字符隔一个输出一个,通过 s=pij-0这条语句是将所要输出的字符转换成相应的十进制数。36.下列程序的输出结果是( )。point(char*pt);main()char b4=a,c,s,f,*pt=b;pt=point(pt);printf(“%c/n“,*pt);point(char*p)p+=3;return p


    注意事项

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




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

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

    收起
    展开