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

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

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

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

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

    1、二级 C 语言笔试-374 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.下列叙述中正确的是A) 一个算法的空间复杂度大,则其时间复杂度也必定大B) 一个算法的空间复杂度大,则其时间复杂度必定小C) 一个算法的时间复杂度大,则其空问复杂度必定小D) 上述三种说法都不对(分数:2.00)A.B.C.D.2.下列关于栈的描述错误的是A) 栈按“先进后出”组织数据 B) 栈是特殊的线性表,只能在一端插入或删除数据C) 栈具有记忆功能 D) 栈只能顺序存储(分数:2.00)A.B.C.D.3.对长度为 n 的线性表进行顺序查找,在最坏情况下需要比

    2、较的次数为A) log2n B) n2 C) n D) n+1(分数:2.00)A.B.C.D.4.下列选项中不符合良好程序设计风格的是A) 数据说明的次序要规范化B) 程序中要有必要的注释C) 对所有输入的数据都要进行检查,确保数据的合法性D) 程序的效率第一,清晰第二(分数:2.00)A.B.C.D.5.程序流程图(PFD) 中的菱形代表的是A) 数据流 B) 控制流 C) 加工步骤 D) 逻辑条件(分数:2.00)A.B.C.D.6.在软件开发中,需求分析阶段产生的主要文档是A) 软件需求规格说明书 B) 数据库说明污C) 集成测试计划 D) 概要设计说明书(分数:2.00)A.B.C.

    3、D.7.下列选项中属于软件生命周期中开发阶段任务的是A) 详细设计 B) 运行维护 C) 可行性研究 D) 需求分析(分数:2.00)A.B.C.D.8.数据库管理系统中负责数据完整性、安全性定义的语言是A) 数据定义语言 B) 数据管理语言 C) 数据操纵语言 D) 数据控制语言(分数:2.00)A.B.C.D.9.“商品”与“顾客”两个实体集之间的联系一般是A) 一对一 B) 多对一 C) 一对多 D) 多对多(分数:2.00)A.B.C.D.10.有三个关系 R,S 和 T 如下:(分数:2.00)A.B.C.D.11.下面各选项中,均是 C 语言合法标识符的选项是A) 33 we au

    4、to B) _23 me _3ew C) _43 3e_ else D) ER-DF 32(分数:1.00)A.B.C.D.12.以下不合法的字符常量是A) /“ B) /018 C) /xcc D) /(分数:1.00)A.B.C.D.13.阅读以下程序:#includestdio.hmain()int case; float printF; printf(“请输入 2 个数:“); scanf(“%d%f“, case, printF); printf(“%d%f/n“, case, printF); 该程序在编译时产生错误,其出错原因是A) 定义语句出错,case 是关键字,不能用作用户

    5、自定义标识符B) 定义语句出错,printF 不能用作用户自定义标识符C) 定义语句无错,scanf 不能作为输入函数使用D) 定义语句无错,printf 不能输出 case 的值(分数:1.00)A.B.C.D.14.以下选项中正确的定义语句是A) double a; b; B) double a=b=7; C) double a=7, b=7; D) double, a, b;(分数:1.00)A.B.C.D.15.现有格式化输入语句,scanf(“x=%d,sumy=%d, linez=%dL“, x, y, z);,已知在输入数据后,x,y,z 的值分别是 23,56,78,则下列选项

    6、中正确地输入格式的是注 “表示空格,Enter表示回车A) 23, 56, 78Enter B) x=23, y=56, z=78EnterC) x=23C, sumy=56, z=78Enter D) x=23, sumy=56, linez=78Enter(分数:1.00)A.B.C.D.16.x,y,z 被定义为 int 型变量,若从键盘给 x,y,z 输入数据,正确的输入语句是A) INPUT x、y、z; B) scanf(“ % d%d%d“, x, y, z); C) scanf(“ % d% d% d“, x, y, z); D) read(“ % d% d% d“, x, y

    7、, z);(分数:1.00)A.B.C.D.17.下列程序段的输出结果是int n=c; switch(n+)default: printf(“error“); break; case“a“:case“A“:case b:caseB:printf(“good“); break; casec“:caseC“:printf(“pass“); case“d“:caseD“:printf(“warn“); A) passwarn B) passerror C) goodpasswarn D) pass(分数:1.00)A.B.C.D.18.已知int x=0; while(x=1)则以下叙述正确的是A

    8、) 循环控制表达式不合法 B) 循环控制表达式的值为 0C) 循环控制表达式的值为 1 D) 以上说法都不对(分数:1.00)A.B.C.D.19.若变量已正确定义,有以下程序段:i=0; do printf(“%d, “, i); while(i+); printf(“%d/n“,i); 其输出结果是A) 0,0 B) 0,1 C) 1,1 D) 程序进入无限循环(分数:1.00)A.B.C.D.20.有以下程序:main()int i, j; for(i=1; i4; i+)for(j=i; j4; j+)printf(“%d* %d=%d“, i, j, i*j); printf(“/n

    9、“); 程序运行后的输出结果是A) 1*1=1 1*2=2 1*3=32*1=2 2*2=43*1=3B) 1*1=1 1*2=2 1*3=32*2=4 2*3=63*3=9C) 1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=9D) 1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=9(分数:1.00)A.B.C.D.21.若变量 x、y 已正确定义并赋值,以下符合 C 语言语法的表达式是A) +x, y=x- B) x+1=y C) x=x+10=x+y D) double(x)/10(分数:2.00)A.B.C.D.22.下列选项中,能正确定义数组的语句是A

    10、) int num02008; B) int num; C) int N=2008; int numN; int numN; D) #define N 2008(分数:2.00)A.B.C.D.23.以下能正确定义赋初值的语句是A) int n1=n2=10; B) char c=32; C) float f=f+1.1; D) double x=12.3E2.5;(分数:2.00)A.B.C.D.24.若已定义 x 和 y 为 double 类型,则表达式 x=1, y=x+5/2 的值是A) 2 B) 3.0 C) 3 D) 3.5(分数:2.00)A.B.C.D.25.如果 int c=

    11、3,d=4,k=0,下列描述正确的是A) cd!=k 和 c(d!=k)的执行顺序是一样的B) cdk 的结果为假C) c|(d=k)执行后 d 的值为 0D) !c!=(d!=k)表达式的值为 1(分数:2.00)A.B.C.D.26.若有条件表达式(exp)?a+: b-,则以下表达式中能完全等价于表达式(exp)的是A) (exp=0) B) (exp!=0) C) (exp=1) D) (exp!=1)(分数:2.00)A.B.C.D.27.若程序有宏定义:#define N 100,则以下叙述中正确的是A) 宏定义中定义了标识符 N 的值为整数 100B) 在编译程序对 C 源程序进

    12、行预处理时用 100 替换标识符 NC) 对 C 源程序进行编译时用 100 替换标识符 ND) 在运行时用 100 替换标识符 N(分数:2.00)A.B.C.D.28.以下程序的功能是计算 s=1+12+123+1234+12345。main()int t=0, s=0, i; for(i=1; i=5; i+)t=i+; s=s+t; printf(“s=d%/n“,s); 则程序运行后的输出结果是A) t B) t *10 C) t*100 D) t+10(分数:2.00)A.B.C.D.29.若有定义 int a9, *p=a; ,则 p+5 表示A) 数组元素 a5的值 B) 数组

    13、元素 a5的地址C) 数组元素 a6的地址 D) 数组元素 a0的值加上 5(分数:2.00)A.B.C.D.30.以下结构体类型说明和变量定义中正确的是A) typedef structint n; char c; REC; REC t1, t2; B) struct REC; int n; char c; ; REC t1, t2; C) typedef struct REC; int n=0; char c=A; t1, t2; D) structint n; char c; REC; REC t1, t2;(分数:2.00)A.B.C.D.31.有下面程序段:#include “std

    14、io.h“#include “string.h“main()char a3 20=“china“, “isa“, “bigcountry!“; char k100=0, *p=k; int i; for(i=0; i3; i+)p=strcat(p, ai); i=strlen(p); printf(“%d/n“, i); 则程序段的输出结果是A) 18 B) 19 C) 20 D) 21(分数:2.00)A.B.C.D.32.设 p1 和 p2 是指向一个 int 型一维数组的指针变量,k 为 int 型变量,则不能正确执行的语句是A) k=*p1+*p2 B) p2=k; C) p1=p2

    15、; D) k=*p1* (*p2);(分数:2.00)A.B.C.D.33.下列函数的功能是fun(char *a, char *b)while(*b=*a)!=/0) a+; b+; A) 将 a 所指字符串赋给 b 所指空间 B) 使指针 b 指向 a 所指字符串C) 将 a 所指字符串和 b 所指字符串进行比较 D) 检查 a 和 b 所指字符串中是否有/0(分数:2.00)A.B.C.D.34.有以下程序:#include stdio.h#include string.hmain()char x=“STRING“;x0=0; x1=/0; x2=0; printf(“%d%d/n“,

    16、sizeof(x), strlen(x); 程序运行后的输出结果是A) 6 1 B) 7 0 C) 6 3 D) 7 1(分数:2.00)A.B.C.D.35.以下程序的输出结果是int f()static int i=0; int s=1; s+=i; i+; return s; main()int i, a=0; for(i=0; i5; i+)a+=f(); printf(“%d/n“, a); A) 20 B) 24 C) 25 D) 15(分数:2.00)A.B.C.D.36.若有语句:char * line5; ,以下叙述中正确的是A) 定义 line 是一个数组,每个数组元素是一

    17、个基类型为 char 的指针变量B) 定义 line 是一个指针变量,该变量可以指向一个长度为 5 的字符型数组C) 定义 line 是一个指针数组,语句中的*号称为间址运算符D) 定义 line 是一个指向字符型函数的指针(分数:2.00)A.B.C.D.37.有以下程序:#include stdio.h#include string.hvoid fun(char *s, int n)char *t; int i, j; for(i=0; in-1; i+)for(j=i+1; jn; j+)if(strlen(si)strlen(sj)t=si; si=sj; sj=t; main()ch

    18、ar *ss=“bcc“, “bbcc“, “xy“, “aaaacc“, “aabcc“; fun(ss, 5);printf(“%s, %s/n“, ss0, ss4); 程序的运行结果是A) xy, aaaacc B) aaaacc, xy C) bcc, aabcc D) aabcc, bcc(分数:2.00)_38.有以下程序:#includestdio.hvoid fun(int p)int d=2; p=d+; printf(“%d“, p); main()int a=1; fun(a); printf(“%d/n“, a); 程序运行后的输出结果是A) 32 B) 12 C)

    19、21 D) 22(分数:2.00)A.B.C.D.39.有以下程序#include stdio.h#include stdlib.hmain()int *a, *b, *c; a=b=c=(int *)malloc(sizeof(int); *a=1; *b=2, *c=3; a=b; printf(“%d, % d, % d/n“, $a, $b, $c); 程序运行后的输出结果是A) 3, 3, 3 B) 2, 2, 3 C) 1, 2, 3 D) 1, 1, 3(分数:2.00)A.B.C.D.40.设有以下语句:char x=3, y=6, z;z=xy2; 则 z 的二进制值是A)

    20、00010100 B) 00011011 C) 00011100 D) 00011000(分数:2.00)A.B.C.D.二、填空题(总题数:13,分数:30.00)41.设循环队列的容量为 55,如果头指针 front=50(指向队头元素的前一位置),尾指针 rear=15(指向队尾),则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_42.深度为 7 的满二叉树中,叶子结点的个数为 1。(分数:2.00)填空项 1:_43.仪由 1、选择(分支)和重复(循环)结构构成的程序是结构化程序。(分数:2.00)填空项 1:_44.常用的黑盒测试方法有等价类划分法、 1 和错误推测法

    21、 3 种。(分数:2.00)填空项 1:_45.数据库系统在其内部分为概念模式、内模式和外模式。其中 1 给出了数据库物理存储结构与物理存取方法。(分数:2.00)填空项 1:_46.阅读下面程序,则执行后的输出结果是_。#include“stdio.h“main()int x, y, 2; x=1; y=2; z=3; if(xy)if(xz)printf(“%d“, x); else printf(“%d“, y); printf(“%d/n“,z);(分数:2.00)填空项 1:_47.以下程序的运行结果是_。#includestdio.hlong fb(int g)switch(g)c

    22、ase 0:return 0; case 1:case 2: return 1; return(fib(g-1)+fib(g-2); main()long k; k=fib(5); printf(“k=%51d/n“, k);(分数:2.00)填空项 1:_以下程序的功能是调用函数 fun 计算:m=1-2+3-4+9-10,并输出结果,请填空。int fun(int n)int m=0,f=1, i; for(i=1; i=n; i+)m+=i*f; f= (8) ; return m; main() printf(“m=%d/n“, (9) );(分数:4.00)填空项 1:_填空项 1:

    23、_48.有以下程序:#includestdio.hstruct STUint num; float TotalScore; ; void f(struct STU p)struct STU s2=20044, 550, 20045, 537; p. num=s1.num; p.TotalScore=s1. TotalScore; main()struct STU s2=20041, 703, 20042, 580; f(s0); printf(“%d%3.0f/n“, s0. num, s0. TotalScore); 程序运行后的输出结果是_。(分数:2.00)填空项 1:_49.有以下程序

    24、:#includestdio.hmain()int a33=1, 2, 3, 4, 5, 6, 7, 8, 9; int b3=0, i; for(i=0; i3; i+) bi=ai2+a2i; for(i=0; i3; i+) printf(“%d“, bi); printf(“/n“); 程序运行后的输出结果是_。(分数:2.00)填空项 1:_50.以下程序中函数 f 的功能是在数组 x 的 n 个数(假定 n 个数互不相同)中找出最大数和最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。#includestdio.hvoid f(int x, int n)in

    25、t p0, p1, i, j, t, m; i=j=x0; p0=p1=0; for(m=0; mn; m+)if(xmi)i=xm; p0=m; elseif(xmj)j=xm; p1=m; t=xp0; xp0=xn-1; xn-1=t; t=xp1; xp1=x0; _=t; main()int a10, u; for(u=0; u10; u+)scanf(“%d“, au); f(a, 10);for(u=0; u10; u+)printf(“%d“, au); printf(“/n“); (分数:2.00)填空项 1:_51.有以下程序:#includestdio.hint a=5;

    26、 void fun(int b)int a=10; a+=b; printf(“%d“, a); main()int c=20; fun(c); a+=c; printf(“%d/n“, a); 程序运行后的输出结果是_。(分数:2.00)填空项 1:_以下程序打开新文件 f.txt,并调用字符输出函数将 a 数组中的字符写入其中,请填空。#include stdio.hmain()(14) *fp; char a5=1, 2, 3, 4, 5, i; fp=fopen(“ (15) “, “w“); for(i=0; i5; i+)fputc(ai, fp); fclose(fp);(分数:

    27、4.00)填空项 1:_填空项 1:_二级 C 语言笔试-374 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.下列叙述中正确的是A) 一个算法的空间复杂度大,则其时间复杂度也必定大B) 一个算法的空间复杂度大,则其时间复杂度必定小C) 一个算法的时间复杂度大,则其空问复杂度必定小D) 上述三种说法都不对(分数:2.00)A.B.C.D. 解析:解析 算法的复杂度主要包括时间复杂度和空间复杂度。算法的时间复杂度是指执行算法所需要的计算工作量,可以用执行算法过程中所需基本运算的执行次数来度量;算法的空间复杂度是指执行这个算法所需要的内存空间。

    28、根据各自的定义可知,算法的时间复杂度与空间复杂度并不相关。2.下列关于栈的描述错误的是A) 栈按“先进后出”组织数据 B) 栈是特殊的线性表,只能在一端插入或删除数据C) 栈具有记忆功能 D) 栈只能顺序存储(分数:2.00)A.B. C.D.解析:解析 栈是限定在一端进行插入与删除的线性表,允许插入和删除元素的一端称为栈顶,另一端称为栈底。栈顶元素是最后被插入的元素,也是最先被删除的元素,即栈是按照“先进后出”的原则组织数据的。栈具有记忆功能,带链的栈的结点存储顺序与其逻辑顺序可以不一致。3.对长度为 n 的线性表进行顺序查找,在最坏情况下需要比较的次数为A) log2n B) n2 C)

    29、n D) n+1(分数:2.00)A.B.C. D.解析:解析 对线性表进行顺序查找,最坏的情况是待查数据在表中不存在,所以比较的次数与表中的元素一样多。4.下列选项中不符合良好程序设计风格的是A) 数据说明的次序要规范化B) 程序中要有必要的注释C) 对所有输入的数据都要进行检查,确保数据的合法性D) 程序的效率第一,清晰第二(分数:2.00)A.B.C.D. 解析:解析 当今主导的程序设计风格是“清晰第一,效率第二”的观点。结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,而实际应用中,人们更重视程序的可理解性。5.程序流程图(PFD) 中的菱形代表的是A) 数据流 B) 控制流

    30、C) 加工步骤 D) 逻辑条件(分数:2.00)A.B.C.D. 解析:解析 程序流程图是软件设计过程中常用的图形描述工具之一。构成程序流程图的最基本符号有:“一”或“”,表示控制流;“口”,表示加工步骤;“”,表示逻辑条件。6.在软件开发中,需求分析阶段产生的主要文档是A) 软件需求规格说明书 B) 数据库说明污C) 集成测试计划 D) 概要设计说明书(分数:2.00)A. B.C.D.解析:解析 软件需求规格说明书是需求分析阶段最后的成果,它是作为需求分析的一部分而制定的可交付文档。概要设计说明书、数据库说明书、集成测试计划都是概要设计阶段需要编写的文档。7.下列选项中属于软件生命周期中开

    31、发阶段任务的是A) 详细设计 B) 运行维护 C) 可行性研究 D) 需求分析(分数:2.00)A. B.C.D.解析:解析 软件生命周期分为软件定义、软件开发及软件运行维护 3 个阶段。定义阶段包括问题定义、可行性研究和需求分析,开发阶段包括概要设计、详细设计、实现和测试,运行维护即软件的运行和维护。8.数据库管理系统中负责数据完整性、安全性定义的语言是A) 数据定义语言 B) 数据管理语言 C) 数据操纵语言 D) 数据控制语言(分数:2.00)A.B.C.D. 解析:解析 数据定义语言负责数据的模式定义和数据的物理存取构建;数据操纵语言负责数据的操纵;数据控制语言负责数据完整性、安全性的

    32、定义与检查以及并发控制、故障恢复等功能。无数据管理语言的说法。9.“商品”与“顾客”两个实体集之间的联系一般是A) 一对一 B) 多对一 C) 一对多 D) 多对多(分数:2.00)A.B.C.D. 解析:解析 “商品”与“顾客”两个实体集之间的买与被买联系是多对多的,因为一种商品可以被多个顾客购买,而一个顾客可以买多个商品。10.有三个关系 R,S 和 T 如下:(分数:2.00)A.B.C.D. 解析:解析 两个相同结构关系的并是由属于这两个关系的元组组成的集合。11.下面各选项中,均是 C 语言合法标识符的选项是A) 33 we auto B) _23 me _3ew C) _43 3e

    33、_ else D) ER-DF 32(分数:1.00)A.B. C.D.解析:解析 合法的标识符由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,用户定义的标识符不能与关键字相同。选项 A),数字不能为第一个字母,auto 为关键字;选项 C)中,也是数字不能为第一个字母,else 为关键字;选项 D)中负号不合法。12.以下不合法的字符常量是A) /“ B) /018 C) /xcc D) /(分数:1.00)A.B. C.D.解析:解析 在 C 语言中,用单引号扩起来的一个字符表示字符常量,转义字符由反斜杠“/”+特定字符组成。选项 B)表示是八进制数码,出现 8 属于非法字符,

    34、所以正确答案是选项 B)。13.阅读以下程序:#includestdio.hmain()int case; float printF; printf(“请输入 2 个数:“); scanf(“%d%f“, case, printF); printf(“%d%f/n“, case, printF); 该程序在编译时产生错误,其出错原因是A) 定义语句出错,case 是关键字,不能用作用户自定义标识符B) 定义语句出错,printF 不能用作用户自定义标识符C) 定义语句无错,scanf 不能作为输入函数使用D) 定义语句无错,printf 不能输出 case 的值(分数:1.00)A. B.C.

    35、D.解析:解析 标识符不能与 C 编译系统已经预定义的、具有特殊用途的保留标识符(即关键字)同名,否则程序在编译时会出现错误。题目源程序中使用了已经预定义的关键字 case,所以将出现错误。14.以下选项中正确的定义语句是A) double a; b; B) double a=b=7; C) double a=7, b=7; D) double, a, b;(分数:1.00)A.B.C. D.解析:解析 定义变量 a 和变量 b 为 double 类型,并对其赋初值。变量之间应以“, ”分隔,定义关键字与变量名之间应以空格分隔,语句应以“; ”结尾。15.现有格式化输入语句,scanf(“x=

    36、%d,sumy=%d, linez=%dL“, x, y, z);,已知在输入数据后,x,y,z 的值分别是 23,56,78,则下列选项中正确地输入格式的是注 “表示空格,Enter表示回车A) 23, 56, 78Enter B) x=23, y=56, z=78EnterC) x=23C, sumy=56, z=78Enter D) x=23, sumy=56, linez=78Enter(分数:1.00)A.B.C.D. 解析:解析 若在 scanf 的格式化控制串中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符。格式化输入函数必须严格按照双引号里面的格式进行输入。在格

    37、式化输出函数中,格式控制串中除了合法的格式说明外,可以包含任意的合法字符。16.x,y,z 被定义为 int 型变量,若从键盘给 x,y,z 输入数据,正确的输入语句是A) INPUT x、y、z; B) scanf(“ % d%d%d“, x, y, z); C) scanf(“ % d% d% d“, x, y, z); D) read(“ % d% d% d“, x, y, z);(分数:1.00)A.B. C.D.解析:解析 本题考查格式输入函数 scanf 的使用。scanf 函数的一般格式是:scanf(格式控制,地址表列),该格式中,地址表列中应是变量地址,而不是变量名。17.下

    38、列程序段的输出结果是int n=c; switch(n+)default: printf(“error“); break; case“a“:case“A“:case b:caseB:printf(“good“); break; casec“:caseC“:printf(“pass“); case“d“:caseD“:printf(“warn“); A) passwarn B) passerror C) goodpasswarn D) pass(分数:1.00)A. B.C.D.解析:解析 本题的考查点是 switch()语句。当用户输入的字符时,会进入一个多分支选择语句,根据n 的值,来确定下

    39、一步执行的选择语句;最后的结果应当为 passwarn。本题需要注意的是,当 case 语句没有跟随 break 语句时,不会跳出 switch,而是继续执行下一个 case 语句,直至遇到 break 语句。18.已知int x=0; while(x=1)则以下叙述正确的是A) 循环控制表达式不合法 B) 循环控制表达式的值为 0C) 循环控制表达式的值为 1 D) 以上说法都不对(分数:1.00)A.B.C. D.解析:解析 x=1 是将 x 赋值为 1,所以循环控制表达式的值为 1。判断 x 是否等于 1 时,应用 x=1,注意“=”与“=”的用法。19.若变量已正确定义,有以下程序段:

    40、i=0; do printf(“%d, “, i); while(i+); printf(“%d/n“,i); 其输出结果是A) 0,0 B) 0,1 C) 1,1 D) 程序进入无限循环(分数:1.00)A.B. C.D.解析:解析 对于 dowhile 循环,程序先执行一次循环体,再判断循环是否继续。本题先输出一次 i的值“0, ”,再接着判断表达式 i+的值,其值为 0,所以循环结束。此时变量 i 的值经过自加已经变为1,程序再次输出 i 的值“1”。20.有以下程序:main()int i, j; for(i=1; i4; i+)for(j=i; j4; j+)printf(“%d*

    41、%d=%d“, i, j, i*j); printf(“/n“); 程序运行后的输出结果是A) 1*1=1 1*2=2 1*3=32*1=2 2*2=43*1=3B) 1*1=1 1*2=2 1*3=32*2=4 2*3=63*3=9C) 1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=9D) 1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=9(分数:1.00)A.B. C.D.解析:解析 本题考查的是循环嵌套。在一个循环体内又完整地包含了另一个循环,称为循环嵌套。外循环 i 的值分别为 1、2、3,当 i=1,内循环 j=1 时,输出 11* 1=1; 当内循

    42、环 j=2 时,输出 1*2=2; 当内循环 j=3 时,输出 1*3=3,此时跳出内层循环,打印换行符“/n”。当 i=2,内循环 j=2 时,输出2*2=4;当内循环 j=3 时,输出 2*3=6,此时跳出内层循环,打印换行符“/n”。当 1=3,内循环 j=3 时,输出 3*3=9。21.若变量 x、y 已正确定义并赋值,以下符合 C 语言语法的表达式是A) +x, y=x- B) x+1=y C) x=x+10=x+y D) double(x)/10(分数:2.00)A. B.C.D.解析:解析 赋值表达式左边必须是一个变量,而选项 B)、C)中赋值号左边都是表达式,选项 D)进行强制

    43、类型转换时,应写为(double) x/10。22.下列选项中,能正确定义数组的语句是A) int num02008; B) int num; C) int N=2008; int numN; int numN; D) #define N 2008(分数:2.00)A.B.C.D. 解析:解析 选项 A)不符合 C 语言的语法要求;选项 B,中没有指定数组的大小;选项 C)中数组的大小不能用变量来指定。23.以下能正确定义赋初值的语句是A) int n1=n2=10; B) char c=32; C) float f=f+1.1; D) double x=12.3E2.5;(分数:2.00)A

    44、.B. C.D.解析:解析 A)选项表达式本身就错误,不能给表达式赋值。C)选项中不能让变量 f 给 f 赋值。D)选项不是正确的浮点数表示形式。所以,本题答案为 B)。24.若已定义 x 和 y 为 double 类型,则表达式 x=1, y=x+5/2 的值是A) 2 B) 3.0 C) 3 D) 3.5(分数:2.00)A.B. C.D.解析:解析 题目中定义变量 x 和 y 为双精度 double 类型,根据给定算数表达式的优先级应先计算5/2,结果为 2,将值代入后,y 的值由 x 和 y 的数据类型得出结果为 3.0,整个逗号表达式的值为后y=x+5/2 的值,即 3.0。25.如

    45、果 int c=3,d=4,k=0,下列描述正确的是A) cd!=k 和 c(d!=k)的执行顺序是一样的B) cdk 的结果为假C) c|(d=k)执行后 d 的值为 0D) !c!=(d!=k)表达式的值为 1(分数:2.00)A.B.C.D. 解析:解析 选项 A)中的优先级大于!=,所以执行顺序不一样;选项 B)中 c 和 dk 都为真,所以整个表达式为真;选项 C)中不用执行 d=k,因为 c 就可以确定这个表达式的值。26.若有条件表达式(exp)?a+: b-,则以下表达式中能完全等价于表达式(exp)的是A) (exp=0) B) (exp!=0) C) (exp=1) D)

    46、(exp!=1)(分数:2.00)A.B. C.D.解析:解析 条件运算符要求有 3 个操作对象,称三目(元)运算符,它是 C 语言中唯一的一个三目运算符。条件表达式的一般形式为:表达式 1?表达式 2:表达式 3,其求解顺序是:先求解表达式 1,若为非0(真)则求解表达式 2,此时表达式 2 的值就作为整个条件表达式的值。若表达式 1 的值为 0(假),则求解表达式 3,表达式 3 的值就是整个条件表达式的值。注意+、-的用法。27.若程序有宏定义:#define N 100,则以下叙述中正确的是A) 宏定义中定义了标识符 N 的值为整数 100B) 在编译程序对 C 源程序进行预处理时用

    47、100 替换标识符 NC) 对 C 源程序进行编译时用 100 替换标识符 ND) 在运行时用 100 替换标识符 N(分数:2.00)A.B. C.D.解析:解析 #define N 100 定义了标识符 N 的替换文本为 100,而非 N 的值为 100。即在该命令行后的程序中,所有出现标识符 N 的地方都将替换为 100,而且这一替换过程是在程序预编译时进行的。28.以下程序的功能是计算 s=1+12+123+1234+12345。main()int t=0, s=0, i; for(i=1; i=5; i+)t=i+; s=s+t; printf(“s=d%/n“,s); 则程序运行后的输出结果是A) t B) t *10 C) t*100 D) t+10(分数:2.00)A.B. C.D.解析:解析 1、12、123、


    注意事项

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




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

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

    收起
    展开