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

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

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

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

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

    1、二级 C 语言笔试-394 及答案解析(总分:136.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列叙述中正确的是( )。A) 算法的效率只与问题的规模有关,而与数据的存储结构无关B) 算法的时间复杂度是指执行算法所需要的计算工作量C) 数据的逻辑结构与存储结构是一一对应的D) 算法的时间复杂度与空间复杂度一定相关(分数:1.00)A.B.C.D.2.下列叙述中正确的是( )。A) 一个算法的空间复杂度大,则其时间复杂度也必定大B) 一个算法的空间复杂度大,则其时间复杂度必定小C) 一个算法的时间复杂度大,则其空间复杂度必定小D) 上述三种说法都不对(分数:1

    2、.00)A.B.C.D.3.下列叙述中正确的是( )。A) 一个逻辑数据结构只能有一种存储结构B) 数据的逻辑结构属于线性结构,存储结构属于非线性结构C) 一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D) 一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率(分数:1.00)A.B.C.D.4.下列选项中不属于结构化程序设计方法的是( )。A) 自顶向下 B) 逐步求精 C) 模块化 D) 可复用(分数:1.00)A.B.C.D.5.面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是( )。A) 模拟现实世界中不同事物之间的联系B)

    3、强调模拟现实世界中的算法而不强调概念C) 使用现实世界的概念抽象地思考问题从而自然地解决问题D) 鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考(分数:1.00)A.B.C.D.6.软件是指( )。A) 程序B) 程序和文档C) 算法加数据结构D) 程序、数据与相关文档的完整集合(分数:1.00)A.B.C.D.7.下面不属于软件工程的 3 个要素的是( )。A) 工具 B) 过程 C) 方法 D) 环境(分数:1.00)A.B.C.D.8.下列有关数据库的描述,正确的是( )。A) 数据库是一个 DBF 文件B) 数据库是一个关系C) 数据库是一个结构化的数据集合D) 数据库是一组

    4、文件(分数:1.00)A.B.C.D.9.数据库技术的根本目标是要解决数据的( )。A) 存储问题 B) 共享问题 C) 安全问题 D) 保护问题(分数:1.00)A.B.C.D.10.数据库系统的核心是( )。A) 数据库 B) 数据库管理系统C) 模拟模型 D) 软件工程(分数:1.00)A.B.C.D.11.用 C 语言编写的代码程序( )。A) 可立即执行B) 是一个源程序C) 经过编译即可执行D) 经过编译解释即可执行(分数:1.00)A.B.C.D.12.以下叙述不正确的是( )。A) 一个 C 源程序可由一个或多个函数组成B) 一个 C 源程序必须包含一个 main 函数C) C

    5、 程序的基本组成单位是函数D) 在 C 程序中,注释说明只能位于一条语句的后面(分数:1.00)A.B.C.D.13.有以下程序,其中%u 表示按无符号整数输出:main() unsigned int x=0xFFFF; /*x 的初值为十六进制数*/printf(“%u/n“, x); 程序运行后的输出结果是( )。A) -1 B) 65535 C) 32767 D) 0xFFFF(分数:1.00)A.B.C.D.14.有以下程序:main() int x=102, y=012; printf(“%2d, %2d/n“, x, y); 执行后输出结果是( )。A) 10, 01 B) 02,

    6、 12 C) 102, 10 D) 02, 10(分数:1.00)A.B.C.D.15.以下选项中,当 x 为大于 1 的奇数时,值为 0 的表达式是( )。A) x%2=1 B) x/2 C) x%2!=0 D) x%2=0(分数:1.00)A.B.C.D.16.若有定义 int x, y; ,并已正确给变量赋值,则以下选项中与表达式(x-y)?(x+):(y+)中的条件表达式(x-y)等价的是( )。A) (x-y0) B) (x-y0) C) (x-y0|x-y0) D) (x-y=0)(分数:1.00)A.B.C.D.17.已知:int t=0; while (t=1) .则以下叙述正

    7、确的是( )。A) 循环控制表达式的值为 0B) 循环控制表达式的值为 1C) 循环控制表达式不合法D) 以上说法都不对(分数:1.00)A.B.C.D.18.设有程序段:int k=10; while(k=0) k=k-1; 则下面描述中正确的是( )。A) while 循环执行 10 次B) 循环是无限循环C) 循环体语句一次也不执行D) 循环体语句执行一次(分数:1.00)A.B.C.D.19.若运行以下程序时,从键盘输入 ADescriptor (CR表示回车) ,则下面程序的运行结果是( )。#include stdio.hmain() char c; int v0=1, v1=0,

    8、 v2=0; do(switch(c=getchar() (casea:caseA:case e:case E:case i:case T:case o:case 0:case u:caseU:v1+=1; default:v0+=1; v2+=1; ) while(e!=/n); printf(“v0=%d, v1=%d, v2=%d/n“, v0, v1, v2); ) A) v0=7, v1=4, v2=7B) v0=8, v1=4, v2=8C) v0=11, v1=4, v2=11D) v0=13, v1=4, v2=12(分数:1.00)A.B.C.D.20.以下选项中,值为 1

    9、的表达式是( )。A) 1-0 B) 1-/0 C) 1-0 D) /0-0(分数:1.00)A.B.C.D.21.以下不合法的字符常量是( )。A) /018 B) /“ C) / D) /xcc(分数:1.00)A.B.C.D.22.已有定义:char c; 程序前面已在命令行中包含 ctype.h 文件。不能用于判断 c 中的字符是否为大写字母的表达式是( )。A) isupper(C) B) A=c=ZC) A=cc=ZD) c=(z-32) (a-32) =c(分数:1.00)A.B.C.D.23.设已有定义:float x; ,则以下对指针变量 p 进行定义且赋初值的语句中正确的是

    10、( )。A) float *p=1024; B) int*p=(float)x; C) float p=x; D) float *p=x;(分数:1.00)A.B.C.D.24.若有说明:int *p, m=5, n; ,以下正确的程序段是( )。A) p=n; scanf(“%d“, p); B) p=n; scanf(“%d“, *p) C) scanf(“%d“, n); *p=n; D) p=n; *p=m;(分数:1.00)A.B.C.D.25.若有语句:char *line5; ,以下叙述中正确的是( )。A) 定义 line 是一个数组,每个数组元素是一个基类型为 char 的指

    11、针变量B) 定义 line 是一个指针变量,该变量可以指向一个长度为 5 的字符型数组C) 定义 line 是一个指针数组,语句中的*号称为间址运算符D) 定义 line 是一个指向字符型函数的指针(分数:1.00)A.B.C.D.26.下列程序执行后的输出结果是( )。#include stdio.hvoid func(int *a, int b) (b0=*a+6; ) main() int a, b5; a=0; b0=3; func(a, b); printf(“%d/n“, b0); A) 6 B) 7 C) 8 D) 9(分数:1.00)A.B.C.D.27.有以下程序:#incl

    12、ude stdio.hvoid f(int *q) int i=0; for(; i5; i+) (*q)+; main() int a5=1, 2, 3, 4, 5), i; f(a); for (i=0; i5; i+) printf(“%d, “, ai); 程序运行后的输出结果是( )。A) 2, 2, 3, 4, 5, B) 6, 2, 3, 4, 5, C) 1, 2, 3, 4, 5, D) 2, 3, 4, 5, 6,(分数:1.00)A.B.C.D.28.有以下程序:#include stdio.hmain() int i, s=0, t=1, 2, 3, 4, 5, 6,

    13、7, 8, 9; for(i=0; i9; i+=2) s+=*(t+i); printf(“%d/n“, s); 程序执行后的输出结果是()。A) 45 B) 20 C) 25 D) 36(分数:1.00)A.B.C.D.29.若有定义语句:int m=5, 4, 3, 2, 1, i=4; ,则下面对 m 数组元素的引用中错误的是( )。A) m-i B) m2*2 C) mm0 D) mmi(分数:1.00)A.B.C.D.30.下列关于字符串的说法中错误的是( )。A) 在 C 语言中,字符串是借助于字符型一维数组来存放的,并规定以字符/0作为字符串结束标志B) /0作为标志占用存储空

    14、间,计入串的实际长度C) 在表示字符串常量的时候不需要人为在其末尾加入/0D) 在 C 语言中,字符串常量隐含处理成以/0结尾(分数:1.00)A.B.C.D.31.有以下程序:#include stdio.hvoid ss(char *s, char t) while(*s) if(*s=t) *s=t=a+A; s+; main() char strl100=“123ddfefdbd“, c=d; ss(str1, c); printf(“% s/n“, str1); 程序运行后的输出结果是( )。A) ABCDDEFEDBD B) 123DDfefDbDC) 123AAfefAbA D)

    15、 Abcddfefdbd(分数:1.00)A.B.C.D.32.下面能正确进行字符串赋值操作的是( )。A) char s5=“ABCDE“; B) char s5=A, b, C, D, E; C) char *s; s=“ABCDE“; D) char *s; scanf(“%s“, s);(分数:1.00)A.B.C.D.33.有以下程序:#include stdio.hfun(int x) int p; if(x=0|x=1) return(3); p=x-fun(x-2); return p; main() printf(“%d/n“, fun(7) ); 执行后的输出结果是( )。

    16、A) 7 B) 3 C) 2 D) 0(分数:1.00)A.B.C.D.34.在 C 语言中,只有在使用时才占用内存单元的变量,其存储类型是( )。A) auto 和 register B) extern 和 registerC) auto 和 static D) static 和 register(分数:1.00)A.B.C.D.35.下列程序的输出结果是( )。#include stdio.h#define M(x, y) x%ymain() int a, m=12, n=100; a=M(n, m); printf(“%d/n“, a-); A) 2 B) 3 C) 4 D) 5(分数:

    17、1.00)A.B.C.D.36.设有以下说明语句:typedef structint n; char ch8; PER; 则下面叙述中正确的是( )。A) PER 是结构体变量名 B) PER 是结构体类型名C) typedef struct 是结构体类型 D) struct 是结构体类型名(分数:1.00)A.B.C.D.37.设有以下说明语句:struct exint x; float y; char z; example; 则下面的叙述中不正确的是( )。A) struct 结构体类型的关键字B) example 是结构体类型名C) x、y、z 都是结构体成员名D) struct ex

    18、是结构体类型名(分数:1.00)A.B.C.D.38.以下选项中,能定义 s 为合法的结构体变量的是( )。A) typedef struct 123double a; char b10; s; B) structdouble a; char b10; s; C) struct ABCdouble a; char b10; ABC s; D) typedef ABCdouble a; char b10; ABC s;(分数:1.00)A.B.C.D.39.下面程序段的输出为( )。#include stdio.hmain() printf(“%d/n“, 122); A) 0 B) 47 C)

    19、 48 D) 24(分数:1.00)A.B.C.D.40.以下叙述中错误的是( )。A) C 语言中对二进制文件的访问速度比文本文件快B) C 语言中,随机文件以二进制代码形式存储数据C) 语句 FILE fp;定义了一个名为 fp 的文件指针D) C 语言中的文本文件以 ASCII 码形式存储数据(分数:1.00)A.B.C.D.二、程序填空题(总题数:1,分数:54.00)下列给定程序中,函数 fun 的功能是计算下式:直到 (分数:54.00)填空项 1:_填空项 1:_填空项 1:_三、程序改错题(总题数:1,分数:18.00)41.下列给定程序中,函数 fun 的功能是:将 s 所指

    20、字符串的正序和反序进行连接,形成的新串放在 t 所指的数组中。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 mam 函数,不得增行或删行,也不得更改程序的结构!试题程序:#includestdio.h#includestring.h/*found*/void fun(char s, char t)int i, d; d=strlen(s); for(i=0; id; i+)ti=si; for(i=0; id; i+)td+i=sd-1-i; /*found*/t2*d-1=/0; main()char s100, t100; printf(“nPlease enter strin

    21、g S:“); scanf(“%s“, s); fun(s, t); printf(“/nThe result is: %s/n“, t); (分数:18.00)_四、程序设计题(总题数:1,分数:24.00)42.编写函数 fun,其功能是:将 s 所指字符串中除了下标为奇数,同时 ASCII 码值也为奇数的字符之外,其余的所有字符全部删除,串中剩余字符所形成的一个新串放在 t 所指的数组中。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。试题程序:#includestdio.h#includestring.hvo

    22、id fun(char*s, char t)main()char s100, t100; printf(“%nPlease enter string s:“); scanf(“%s“, s); fun(s, t); printf(“/nThe result is:%s/n“, t); (分数:24.00)_二级 C 语言笔试-394 答案解析(总分:136.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列叙述中正确的是( )。A) 算法的效率只与问题的规模有关,而与数据的存储结构无关B) 算法的时间复杂度是指执行算法所需要的计算工作量C) 数据的逻辑结构与存储结

    23、构是一一对应的D) 算法的时间复杂度与空间复杂度一定相关(分数:1.00)A.B. C.D.解析:解析 算法的时间复杂度是指算法在计算机内执行时所需时间的度量;与时间复杂度类似,空间复杂度是指算法在计算机内执行时所需存储空间的度量。2.下列叙述中正确的是( )。A) 一个算法的空间复杂度大,则其时间复杂度也必定大B) 一个算法的空间复杂度大,则其时间复杂度必定小C) 一个算法的时间复杂度大,则其空间复杂度必定小D) 上述三种说法都不对(分数:1.00)A.B.C.D. 解析:解析 时间复杂度是指一个算法执行时间的相对度量;空间复杂度是指算法在运行过程中临时占用所需存储空间大小的度量。人们都希望

    24、选择一个既省存储空间、又省执行时间的算法。然而,有时为了加快算法的运行速度,不得不增加空间开销;有时为了能有效地存储算法和数据,又不得不牺牲运行时间。时间和空间的效率往往是一对矛盾,很难做到两全。但是,这不适用于所有的情况,也就是说时间复杂度和空间复杂度之间虽然经常矛盾,但是二者不存在必然的联系。因此,选项 A)、B)、C)的说法都是错误的。故本题的正确答案是 D)。3.下列叙述中正确的是( )。A) 一个逻辑数据结构只能有一种存储结构B) 数据的逻辑结构属于线性结构,存储结构属于非线性结构C) 一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D) 一个逻辑数据结构可以有

    25、多种存储结构,且各种存储结构影响数据处理的效率(分数:1.00)A.B.C.D. 解析:解析 一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等。而采用不同的存储结构,其数据处理的效率是不同的。故本题答案为 D)。4.下列选项中不属于结构化程序设计方法的是( )。A) 自顶向下 B) 逐步求精 C) 模块化 D) 可复用(分数:1.00)A.B.C.D. 解析:解析 结构化程序设计方法的主要原则是:自顶向下,逐步求精,模块化,限制使用 goto 语句。可复用性是指软件元素不加修改和稍加修改可在不同的软件开发过程中重复使用的性质。软件可复用性是软件工程

    26、追求的目标之一,是提高软件生产效率的最主要方法。面向对象的程序设计具有可复用性的优点。5.面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是( )。A) 模拟现实世界中不同事物之间的联系B) 强调模拟现实世界中的算法而不强调概念C) 使用现实世界的概念抽象地思考问题从而自然地解决问题D) 鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考(分数:1.00)A.B.C. D.解析:解析 面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是,使用现实世界的概念抽象地思考问题从而自然地解决问题。它强调模拟现实世界中的概念而不强调算法,它鼓励开发者在软件开发的绝大

    27、部分中都用应用领域的概念去思考。本题答案为 C)。6.软件是指( )。A) 程序B) 程序和文档C) 算法加数据结构D) 程序、数据与相关文档的完整集合(分数:1.00)A.B.C.D. 解析:解析 软件是程序、数据与相关文档的集合,相对于计算机硬件而言,软件是逻辑产品而不是物理产品,是计算机的无形部分。7.下面不属于软件工程的 3 个要素的是( )。A) 工具 B) 过程 C) 方法 D) 环境(分数:1.00)A.B.C.D. 解析:解析 软件工程包括 3 个要素,即方法、工具和过程。8.下列有关数据库的描述,正确的是( )。A) 数据库是一个 DBF 文件B) 数据库是一个关系C) 数据

    28、库是一个结构化的数据集合D) 数据库是一组文件(分数:1.00)A.B.C. D.解析:解析 数据库(Database,DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,可被各个应用程序所共享。数据库中的数据具有“集成”和“共享”的特点。9.数据库技术的根本目标是要解决数据的( )。A) 存储问题 B) 共享问题 C) 安全问题 D) 保护问题(分数:1.00)A.B. C.D.解析:解析 由于数据的集成性使得数据可被多个应用程序共享,特别是在网络发达的今天,数据库与网络的结合扩大了数据库的应用范围,所以数据库技术的根本问题是解决数据的共享问题。10.数据

    29、库系统的核心是( )。A) 数据库 B) 数据库管理系统C) 模拟模型 D) 软件工程(分数:1.00)A.B. C.D.解析:解析 数据库管理系统(Database Management System, DBMS)是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,数据库管理系统是数据库系统的核心。11.用 C 语言编写的代码程序( )。A) 可立即执行B) 是一个源程序C) 经过编译即可执行D) 经过编译解释即可执行(分数:1.00)A.B. C.D.解析:解析 本题考核的知识点是 C 程序的基本概念。C 语言一种高级语言,C 语言源程序经

    30、过 C 语言编译程序编译之后,生成一个后缀为.obj 的二进制文件(称为目标文件),最后还要由称为“连接程序”(Link)的软件,把此.ohj 文件与 C 语言提供的各种库函数连接在一起,生成一个后缀为.exe 的可执行文件。显然 C 语言不能立即执行,故选项 A)错误。根据以上定义,选项 C)和选项 D)错误,选项 B)符合题意。12.以下叙述不正确的是( )。A) 一个 C 源程序可由一个或多个函数组成B) 一个 C 源程序必须包含一个 main 函数C) C 程序的基本组成单位是函数D) 在 C 程序中,注释说明只能位于一条语句的后面(分数:1.00)A.B.C.D. 解析:解析 本题考

    31、查 C 语言的基本基础知识。在 C 程序中,注释用符号“/*”开始,而以符号“*/”结束。程序的注释可以放在程序的任何位置。通常将注释放在程序的开始,以说明本程序的功能;或者放在程序的某个语句后面,以对此语句的功能进行描述。无论将注释放在何处,在程序进行编译时,编译程序不会处理注释的内容,且注释内容也不会出现在目标程序中。13.有以下程序,其中%u 表示按无符号整数输出:main() unsigned int x=0xFFFF; /*x 的初值为十六进制数*/printf(“%u/n“, x); 程序运行后的输出结果是( )。A) -1 B) 65535 C) 32767 D) 0xFFFF(

    32、分数:1.00)A.B. C.D.解析:解析 本题主要考查的知识点是整型常量。整型常量有十进制、八进制和十六进制 3 种表示:十进制整数以正号(+)或负号(-)开头,由首位非 0 的一串十进制数字组成,正负号也可省略,表示正整数;八进制整数以数字 0 开头,后面接若干个八进制数字(07);十六进制整数以数字 0 和字母 x(大、小写均可)开头,后面接若干个十六进制数字(数字 09 和字母 AF,大、小写均可)。故本题是以无符号整数形式输出一个十六进制整数 FFFF,将其转换为十进制就是 65535,故本题应该选择 B)。14.有以下程序:main() int x=102, y=012; pri

    33、ntf(“%2d, %2d/n“, x, y); 执行后输出结果是( )。A) 10, 01 B) 02, 12 C) 102, 10 D) 02, 10(分数:1.00)A.B.C. D.解析:解析 本题考核的知识点是输出函数 printf()的应用。本题中,printf(“%2d, %2d/n“, x, y)表示输出形式是十进制整数,域宽是 2,而在 C 语言中规定:当域宽小于实际宽度时域宽不起作用,按实际宽度输出,因此最后的输出值为 102 和 10,所以选项 C)符合题意。15.以下选项中,当 x 为大于 1 的奇数时,值为 0 的表达式是( )。A) x%2=1 B) x/2 C)

    34、x%2!=0 D) x%2=0(分数:1.00)A.B.C.D. 解析:解析 因为 x 的值为大于 1 的奇数,所以 x 除以 2 的余数等于 1,因此,选项 A)、C)中表达式的结果为真,不为 0;对于选项 B)来说,x 除以 2 的商不会等于 0;选项 D)中表达式的结果为假,即等于0。16.若有定义 int x, y; ,并已正确给变量赋值,则以下选项中与表达式(x-y)?(x+):(y+)中的条件表达式(x-y)等价的是( )。A) (x-y0) B) (x-y0) C) (x-y0|x-y0) D) (x-y=0)(分数:1.00)A.B.C. D.解析:解析 本题考查的知识点是逻辑

    35、表达式。C 语言编译系统在给出逻辑运算结果时,以数值 1 代表“真”,以 0 代表“假”,但在判断一个量是否为“真”时,以 0 代表“假”,以非 0 代表“真”。即将一个非零的数值认作为“真”。要让本题中的条件表达式(x-y)的结果为真,也就是要使(x-y)的值非零,即大于 0 或者小于 0,故等价的表达式应该是选项 C)。17.已知:int t=0; while (t=1) .则以下叙述正确的是( )。A) 循环控制表达式的值为 0B) 循环控制表达式的值为 1C) 循环控制表达式不合法D) 以上说法都不对(分数:1.00)A.B. C.D.解析:解析 t=1 是将 t 赋值为 1,所以循环

    36、控制表达式的值为 1。判断 t 是否等于 1 时,应用 t=1,注意“=”与“=”的用法。18.设有程序段:int k=10; while(k=0) k=k-1; 则下面描述中正确的是( )。A) while 循环执行 10 次B) 循环是无限循环C) 循环体语句一次也不执行D) 循环体语句执行一次(分数:1.00)A.B.C. D.解析:解析 本题中,首先将 0 赋给 k,表达式变为 0,跳出循环,没有执行循环体语句。解答本题的关键是掌握 while 语句。19.若运行以下程序时,从键盘输入 ADescriptor (CR表示回车) ,则下面程序的运行结果是( )。#include stdi

    37、o.hmain() char c; int v0=1, v1=0, v2=0; do(switch(c=getchar() (casea:caseA:case e:case E:case i:case T:case o:case 0:case u:caseU:v1+=1; default:v0+=1; v2+=1; ) while(e!=/n); printf(“v0=%d, v1=%d, v2=%d/n“, v0, v1, v2); ) A) v0=7, v1=4, v2=7B) v0=8, v1=4, v2=8C) v0=11, v1=4, v2=11D) v0=13, v1=4, v2=

    38、12(分数:1.00)A.B.C.D. 解析:解析 本题考查 switch 语句的掌握。必须掌握以下内容:首先应该明白 switch 语句的语法格式:switch 语句的语法格式为:switch(表达式)case 常量表达式 1:语句组 1; case 常量表达式 2:语句组 2; case 常量表达式 n:语句组 n; default:语句组 n+1; 另外,以下几点是关于 switch 语句的重点:系统在执行时计算开关表达式的值;根据所得的值在各个 case 标号表达式中寻找匹配,直到发现与表达式匹配的标号(本例中匹配的是 caseA);找到匹配后执行后面相应的语句表,顺序往下执行;如果无

    39、相匹配的标号,若存在 default 标号,则执行该语句标号后面的语句表 n+1;当不存在 default 标号时,不执行 switch 中的任何一个语句表。一般而言,在多分支结构中总会出现“意外”的情况,这时均可归入 default 程序段,作统一处理。default 标号是可选性的,不必每次都有,视需要而定。switch 语句中还可以包含 switch 语句,形成switch 的嵌套。20.以下选项中,值为 1 的表达式是( )。A) 1-0 B) 1-/0 C) 1-0 D) /0-0(分数:1.00)A.B. C.D.解析:解析 本题考查的是字符常量的概念。在 C 语言中,一个字符常量

    40、常常被当做一个整型常量来参与运算,它所代表的值为该字符的 ASCII 码值。在 ASCII 码中,字符串结束符/0的 ASCII 码为 0,字符0的 ASCII 码的值为 48,字符1的 ASCII 码的值为 49。由此可见,选项 A)的值为-47;选项 B)的值为1;选项 C)的值为 49;选项 D)的值为-48。故应该选择 B)。21.以下不合法的字符常量是( )。A) /018 B) /“ C) / D) /xcc(分数:1.00)A. B.C.D.解析:解析 本题考查的知识点是字符常量中的转义字符。转义字符是以一个“/”开头的字符序列,它只代表一个字符。在选项 A)中,“/”后跟着三个

    41、数字,是表示一个 ASCII 码值等于这三位数字所组成的八进制数数值的字符,但是八进制数只能是由 07 这八个数字表示,而选项 A)中出现了数字 8 所以是不合法的。选项 B)是表示一个双引号的转义字符表示方法;选项 C)表示的是一个反斜杆;选项 D)表示一个ASCII 值为十六进制值 cc 的字符。故应该选择 A)。22.已有定义:char c; 程序前面已在命令行中包含 ctype.h 文件。不能用于判断 c 中的字符是否为大写字母的表达式是( )。A) isupper(C) B) A=c=ZC) A=cc=ZD) c=(z-32) (a-32) =c(分数:1.00)A.B. C.D.解

    42、析:解析 本题考查的知识点是:大写字母的判断。大写字母从 AZ 的 ASCII 码是连续的,所以如果当一个字符大于等于 A 且小于等于 Z 时,这个字符就一定是一个大写字母,故选项 C)正确。C 语言中的库函数 isupper()的作用也正是判断一个字符是否为大写字母,故选项 A)正确。在 ASCII 码中,小写字母的编码也是连续的,对应的小写字符比大写字符的 ASCII 码值大 32,所以选项 D)经过小写字符-32 后,换算成了对应的大写字母 Z 和 A,所得到结果和选项 C)是一致的,故也是正确的。选项 B)中,C 语言的逻辑表达式不能用于判断 c 中的字符是否为大写字母。23.设已有定

    43、义:float x; ,则以下对指针变量 p 进行定义且赋初值的语句中正确的是( )。A) float *p=1024; B) int*p=(float)x; C) float p=x; D) float *p=x;(分数:1.00)A.B.C.D. 解析:解析 本题考查的知识点是指针的声明及赋值。可以赋给一个指针的必须是一个和该指针同类型的指针。所以,本题中选项 A)赋给指针一个整数 1024 是错误的;选项 B)赋给指针一个浮点型变量也是错误的。又因为指针声明的一般形式为:数据类型*变量名; 所以,选项 C)中声明的 p 不是一个指针,因此也是错误的。故本题应该选择 D)。24.若有说明:

    44、int *p, m=5, n; ,以下正确的程序段是( )。A) p=n; scanf(“%d“, p); B) p=n; scanf(“%d“, *p) C) scanf(“%d“, n); *p=n; D) p=n; *p=m;(分数:1.00)A.B.C.D. 解析:解析 “”是求址运算符,“*”是指变量说明符。选项 A)、B)应改为 scanf(“%d“, p); 选项C)中指针变量 p 未指向一确定的内存单元,不能为其赋值,并且这样做很危险,建议不使用。25.若有语句:char *line5; ,以下叙述中正确的是( )。A) 定义 line 是一个数组,每个数组元素是一个基类型为

    45、char 的指针变量B) 定义 line 是一个指针变量,该变量可以指向一个长度为 5 的字符型数组C) 定义 line 是一个指针数组,语句中的*号称为间址运算符D) 定义 line 是一个指向字符型函数的指针(分数:1.00)A. B.C.D.解析:解析 C 语言中nbsp; nbsp; nbsp; 比*优先级高,因此 line 先与5结合,形成 line5形式,这是数组形式,它有 5 个元素,然后再与 line 前面的“*”结合,表示此数组是一个指针数组,每个数组元素都是一个基类型为 char 的指针变量。26.下列程序执行后的输出结果是( )。#include stdio.hvoid

    46、func(int *a, int b) (b0=*a+6; ) main() int a, b5; a=0; b0=3; func(a, b); printf(“%d/n“, b0); A) 6 B) 7 C) 8 D) 9(分数:1.00)A. B.C.D.解析:解析 函数 func 的功能是将第一个参数所指向的内容与 6 的和赋给第二个参数数组中的第一个值。27.有以下程序:#include stdio.hvoid f(int *q) int i=0; for(; i5; i+) (*q)+; main() int a5=1, 2, 3, 4, 5), i; f(a); for (i=0;

    47、 i5; i+) printf(“%d, “, ai); 程序运行后的输出结果是( )。A) 2, 2, 3, 4, 5, B) 6, 2, 3, 4, 5, C) 1, 2, 3, 4, 5, D) 2, 3, 4, 5, 6,(分数:1.00)A.B. C.D.解析:解析 本题首先定义了一个数组 a 并初始化。然后用数组名 a 作为实参调用函数 f()。在 f()中,只有一个 for 循环,循环变量 i 从 0 递增至 4,共循环 5 次,而每次执行的语句是(*q)+; ,即让形参 q所指内容连续增 1 了 5 次。所以调用结束后,数组 a 的第 1 个元素被加 5,故输出的结果为 6, 2, 3, 4, 5, 。应该选择 B)。28.有以下程序:#include stdio.hmain() int i, s=0, t=1, 2, 3, 4, 5, 6, 7, 8, 9; for(i=0; i9; i+=2) s+=*(t+i); printf(“%d/n“, s); 程序执行后


    注意事项

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




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

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

    收起
    展开