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

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

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

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

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

    1、二级 C语言笔试-392 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.数据结构中,与所使用的计算机无关的是数据的( )。A) 存储结构 B) 物理结构C) 逻辑结构 D) 物理和存储结构(分数:1.00)A.B.C.D.2.线性表 L=(a1, a2, a3, ., ai., an),下列说法正确的是( )。A) 每个元素都有一个直接前件和直接后件B) 线性表中至少要有一个元素C) 表中诸元素的排列顺序必须是由小到大或由大到小D) 除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件(分数:1.00)A.B.C

    2、.D.3.栈底至栈顶依次存放元素 A、B、C、D,在第五个元素 E入栈前,栈中元素可以出栈,则出栈序列可能是( )。A) ABCED B) DCBEA C) DBCEA D) CDABE(分数:1.00)A.B.C.D.4.结构化程序设计主要强调的是( )。A) 程序的规模 B) 程序的效率C) 程序设计语言的先进性 D) 程序易读性(分数:1.00)A.B.C.D.5.在面向对象方法中,一个对象请求另对象为其服务的方式是通过发送( )。A) 调用语句 B) 命令 C) 口令 D) 消息(分数:1.00)A.B.C.D.6.下列描述中正确的是( )。A) 软件工程只是解决软件项目的管理问题B)

    3、 软件工程主要解决软件产品的生产率问题C) 软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D) 软件工程只是解决软件开发中的技术问题(分数:1.00)A.B.C.D.7.需求分析阶段的任务是确定( )。A) 软件开发方法 B) 软件开发工具C) 软件开发费用 D) 软件系统功能(分数:1.00)A.B.C.D.8.下列叙述中错误的是( )。A) 在数据库系统中,数据的物理结构必须与逻辑结构一致B) 数据库技术的根本目标是要解决数据的共享问题C) 数据库设计是指在已有数据库管理系统的基础上建立数据库D) 数据库系统需要操作系统的支持(分数:1.00)A.B.C.D.9.一个教师可讲授

    4、多门课程,一门课程可由多个教师讲授,则实体教师和课程间的联系是( )。A) 1:1联系 B) 1:m 联系C) m:1联系 D) m:n 联系(分数:1.00)A.B.C.D.10.把实体一联系模型转换为关系模型时,实体之间多对多联系在模型中是通过( )。A) 建立新的属性来实现 B) 建立新的关键字来实现C) 建立新的关系来实现 D) 建立新的实体来实现(分数:1.00)A.B.C.D.11.算法中,对需要执行的每一步操作,必须给出清楚、严格的规定。这属于算法的( )。A) 正当性 B) 可行性 C) 确定性 D) 有穷性(分数:1.00)A.B.C.D.12.以下叙述中正确的是( )。A)

    5、 C程序的基本组成单位是语句B) C程序中的每一行只能写一条语句C) 简单 C语句必须以分号结束D) C语句必须在一行内写完(分数:1.00)A.B.C.D.13.以下程序的输出结果是( )。main() int a=666, b=888; printf(“%d/n“, (a, b) ); A) 错误信息 B) 666 C) 888 D) 666, 888(分数:1.00)A.B.C.D.14.x,y,z 被定义为 int型变量,若从键盘给 x,y,z 输入数据,正确的输入语句是( )。A) INPUT x、y、z; B) scanf(“%d%d%d“, x, y, z); C) seanf(

    6、“%d%d%d“, x, y, z); D) read(“%d%d%d“, x, y, z);(分数:1.00)A.B.C.D.15.在以下给出的表达式中,与 while(E)中的(E)不等价的表达式是( )。A) (!E=0) B) (E0|E0) C) (E=0) D) (E!=0)(分数:1.00)A.B.C.D.16.有以下程序:main() int a, b, d=25; a=d/10%9; b=a(-1); printf(“%d, %d/n“, a, b); 程序运行后的输出结果是( )。A) 6, 1 B) 2, 1 C) 6, 0 D) 2, 0(分数:1.00)A.B.C.D

    7、.17.设有以下程序段:int x=0, s=0; while(!x!=0) s+=+x; printf(“%d“, s); 则( )。A) 运行程序段后输出 0B) 运行程序段后输出 1C) 程序段中的控制表达式是非法的D) 程序段执行无限次(分数:1.00)A.B.C.D.18.有以下程序:#include stdio.hmain() int i=5; doif(i%3=1) if(i%5=2) printf(“*%d“, i); break; i+; while(i!=0); printf(“/n“); 程序的运行结果是( )。A) *7 B) *3*5 C) *5 D) *2*6(分数

    8、:1.00)A.B.C.D.19.下列选项可以正确表示字符型常量的是( )。A) /r B) “a“ C) “/897“ D) 296(分数:1.00)A.B.C.D.20.数字字符 0的 ASCII值为 48,若有以下程序:#include stdio.hmain() char a=1, b=2; printf(“%c, “b+); printf(“%d/n“, b-a); 程序运行后的输出结果是( )。A) 3, 2 B) 50, 2 C) 2, 2 D) 2, 50(分数:1.00)A.B.C.D.21.有以下程序:#include stdio.hmain() char a=a, b;

    9、printf(“%c,“, +a); printf(1%c/n“, b=a+); 程序运行后的输出结果是( )。A) b,b B) b,c C) a,b D) a,c(分数:1.00)A.B.C.D.22.以下关于函数的叙述中正确的是( )。A) 每个函数都可以被其他函数调用(包括 main函数) B) 每个函数都可以被单独编译C) 每个函数都可以单独运行D) 在一个函数内部可以定义另一个函数(分数:1.00)A.B.C.D.23.设有定义:int n1=0, n2, *p=n2, *q=n1; ,以下赋值语句中与 n2=n1; 语句等价的是( )。A) *p=*q; B) p=q; C);

    10、p=n1; D) p=*q;(分数:1.00)A.B.C.D.24.以下程序的输出结果是( )。#include stdio.hvoid swap(int*a, int *b) int*t; t=a; a=b; b=t; main() int i=3, j=5, *p=i, *q=j; swap(p, q); printf(1%d %d/n, *p, *q); A) 23 B) 34 C) 35 D) 45(分数:1.00)A.B.C.D.25.若要求定义具有 10个 int型元素的一维数组 a,则以下定义语句中错误的是( )。A) #define N 10int aN; B) #define

    11、 n 5int a2*n; C) int a5+5; D) int n=10, an;(分数:1.00)A.B.C.D.26.以下能正确定义_维数组的选项是( )。A) int a5=0, 1, 2, 3, 4, 5; B) char a=0, T, 2, 3, 4, 5, /0; C) char a=A, b, C; D) int a5=“0123“;(分数:1.00)A.B.C.D.27.有以下程序:#include stdio.hint f(int a) return a%2; main() int s8=1, 3, 5, 2, 4, 6, i, d=0; for(i=0; f(si);

    12、 i+) d+=si; printf(“%d/n“, d); 程序运行后的输出结果是( )。A) 9 B) 11 C) 19 D) 21(分数:1.00)A.B.C.D.28.有以下程序:#include stdio.hvoid fun(int *s, int n1, int n2) int i, j, t; i=n1; j=n2; while(ij) t=si; si=sj; sj=t; i+; j-; main() int a10=1, 2, 3, 4, 5, 6, 7, 8, 9, 0, k; fun(a, 0, 3); fun(a, 4, 9); fun(a, 0, 9); for (

    13、k=0; k10; k+) printf(“%d“, ak); A) 0987654321 B) 4321098765 C) 5678901234 D) 0987651234(分数:1.00)A.B.C.D.29.有以下程序:#include stdio.hmain() fchar s=“123de“; s+=2; printf(“%d/n“, s0); 执行后的结果是( )。A) 输出字符 a的 ASCII码 B) 输出字符 c的 ASCII码C) 输出字符 c D) 程序出错(分数:1.00)A.B.C.D.30.若有定义语句:char s10=“1234567/0/0“; , 则 str

    14、len(s) 的值是( )。A) 7 B) 8 C) 9 D) 10(分数:1.00)A.B.C.D.31.有以下程序:#include string.h#include stdio.hmain() char p20=a, b, c, d, q=“123“, r=“123de“; strcat(p, r); strcpy(p+strlen(q), q); printf(“%d/n“, strlen(p) ); 程序运行后的输出结果是( )。A) 9 B) 6 C) 11 D) 7(分数:1.00)A.B.C.D.32.有以下程序:#include string.h#include stdio.

    15、hmain() char a7=“a0/0a0/0“; int i, j; i=sizeof(A); j=strlen(A); printf(“%d%d/n“, i, j); 程序运行后的输出结果是( )。A) 2 2 B) 7 6 C) 7 2 D) 6 2(分数:1.00)A.B.C.D.33.有以下程序:#include stdio.hint f(int n) if(n=1) return 1; else return f(n-1) +1; main() inti, j=0; for(i=1; i3; i+) j+=f(i); print(“%d/n“, j); 程序运行后的输出结果是(

    16、 )。A) 4 B) 3 C) 2 D) 1(分数:1.00)A.B.C.D.34.在 C语言中,变量的隐含存储类别是( )。A) auto B) static C) extern D) 无存储类别(分数:1.00)A.B.C.D.35.以下程序运行后,输出结果是( )。#define PT 5.5#define S(x) PT*x*x#includestdio.hmain() int a=1, b=2; printf(“%4.1f/n“, S(a+b) ); A) 49.5 B) 9.5 C) 22 D) 45.0(分数:1.00)A.B.C.D.36.有以下程序段:typedef stru

    17、ct NODEint num; struct NODE *next; OLD; 以下叙述中正确的是( )。A) 以上的说明形式非法 B) NODE 是一个结构体类型C) OLD是一个结构体类型 D) OLD 是一个结构体变量(分数:1.00)A.B.C.D.37.C语言结构体类型变量在程序运行期间( )。A) TC环境在内存中仅仅开辟一个存放结构体变量地址的单元B) 所有的成员一直驻留在内存中C) 只有最开始的成员驻留在内存中D) 部分成员驻留在内存中(分数:1.00)A.B.C.D.38.有以下程序:#include stdio.hstruct stint x, y; ) data2=1,

    18、10, 2, 20; main() struct st *p=data; printf(“%d, “,p-y); printf(“%d/n“,(+p) -x); 程序的运行结果是( )。A) 10, 1 B) 20, 1 C) 10, 2 D) 20, 2(分数:1.00)A.B.C.D.39.下面程序段的输出为( )。#include “stdio.h“main() printf(“%d/n“, 122); A) 0 B) 47 C) 48 D) 24(分数:1.00)A.B.C.D.40.有以下程序:#include stdio.hmain() FILE *fp; int a10=1, 2

    19、, 3, i, n; fp=fopen(“d1.dat“, “w“); for (1=0; i3; i+) fprintf(fp, “%d“, ai); fprintf(fp, “/n“); fclose(fp); fp=fopen(“d1.dat“, “r“); fscanf(fp, “%d“, n); fclose(fp); printf(“%d/n“, n); 程序的运行结果是( )。A) 12300 B) 123 C) 1 D) 321(分数:1.00)A.B.C.D.二、程序填空题(总题数:1,分数:18.00)给定程序中,函数 fun的功能是:判定形参 a所指的 NxN(规定 N为

    20、奇数)的矩阵是否是“幻方”,若是,则函数返回值为 1;若不是,则函数返回值为 0。“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:#include stdio.h#define N 3int fun (int(+a)N)int i, j, m1, m2, row, colum; m1=m2=0; for(i=0; iN; i+)j=N-i-1; m1+=aii; m2+=aij; if(m1!=m2) return 0; fo

    21、r(i=0; iN; i+)/*found*/row=colum= (1) ; for(j=0; jN; j+)row+=aij; colum+=aji; /*found*/if(row!=colum) (2) (row!=m1) return 0; /*found*/return (3) ; main()int xNN, i, j; printf(“Enter number for array:/n“); for(i=0; iN; i+)for(j=0; jN; j+)scanf(“%d“, xij); printf(“Array:/n“); for(i=0; iN; i+)for(j=0;

    22、 jN; j+)printf(“%3d“, xij); printf(“/n“); if(fun(x) printf(“The Array is a magic square./n“); else printf(“The Array isnt a magic square./n“); (分数:18.00)填空项 1:_填空项 1:_填空项 1:_三、程序改错题(总题数:1,分数:18.00)41.下列给定程序中,函数 fun的功能是:传入一个整数 m,计算如下公式的值。t=1/2-1/3-1/m请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main函数,不得增行或删行,也不得更改程

    23、序的结构!试题程序:#include stdlib.h#includeconio.h#include stdio.hdouble fun(int m)double t=1.0; int i; for(i=2; i=m; i+)/*found*/t=1.0-1/i; /*found*/; void main()int m; printf(“/nPlease enter 1 integer number:/n“); scanf(“%d“, m); printf(“/n/nThe result is %1f/n“, fun(m); (分数:18.00)_四、程序设计题(总题数:1,分数:24.00)

    24、42.请编写个函数,用来删除字符串中的所有空格。注意:部分源程序给出如下。请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。试题程序:#include stdio.h#include ctype.h#includeconio.hvoid fun (char *str)main()char str81; char Msg=“Input a string:“; int n; printf(Msg); gets(str); puts(str); fun(str); printf(“*str:%s/n“, str); (分数:24.00)_二级 C语言笔试

    25、-392 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.数据结构中,与所使用的计算机无关的是数据的( )。A) 存储结构 B) 物理结构C) 逻辑结构 D) 物理和存储结构(分数:1.00)A.B.C. D.解析:解析 数据结构概念一般包括数据的逻辑结构、存储结构及数据上的运算集合等。数据的逻辑结构只抽象地反映数据元素之间的逻辑关系,而不管它在计算机中的存储形式。2.线性表 L=(a1, a2, a3, ., ai., an),下列说法正确的是( )。A) 每个元素都有一个直接前件和直接后件B) 线性表中至少要有一个元素C) 表中诸元素的排

    26、列顺序必须是由小到大或由大到小D) 除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件(分数:1.00)A.B.C.D. 解析:解析 线性表可以为空表;第一个元素没有直接前件,最后一个元素没有直接后件;线性表的定义中,元素的排列并没有规定大小顺序。3.栈底至栈顶依次存放元素 A、B、C、D,在第五个元素 E入栈前,栈中元素可以出栈,则出栈序列可能是( )。A) ABCED B) DCBEA C) DBCEA D) CDABE(分数:1.00)A.B. C.D.解析:解析 栈操作原则上“后进先出”,栈底至栈顶依次存放元素 A、B、C、D,则表明这 4个元素中D是最后进

    27、栈,B、C 处于中间,A 最早进栈,所以出栈时一定是先出 D,再出 C,最后出 A。4.结构化程序设计主要强调的是( )。A) 程序的规模 B) 程序的效率C) 程序设计语言的先进性 D) 程序易读性(分数:1.00)A.B.C.D. 解析:解析 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限制使用 goto语句,总的来说可使程序结构良好、易读、易理解、易维护。5.在面向对象方法中,一个对象请求另对象为其服务的方式是通过发送( )。A) 调用语句 B) 命令 C) 口令 D) 消息(分数:1.00)A.B.C.D. 解析:解析 面向对象的世界是通过对象与对象间彼此的相互合

    28、作来推动的,对象间的这种相互合作需要一个机制协助进行,这样的机制称为消息。消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。本题答案为 D)。6.下列描述中正确的是( )。A) 软件工程只是解决软件项目的管理问题B) 软件工程主要解决软件产品的生产率问题C) 软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D) 软件工程只是解决软件开发中的技术问题(分数:1.00)A.B.C. D.解析:解析 软件工程学是研究软件开发和维护的普遍原理与技术的一门工程学科。所谓软件工程是指,采用工程的概念、原理、技术和方法指导软件的开发与维护

    29、。软件工程学的主要研究对象包括软件开发与维护的技术、方法、工具和管理等方面。由此可见,选项 A)、选项 B)和选项 D)的说法均不正确,选项 C)正确。7.需求分析阶段的任务是确定( )。A) 软件开发方法 B) 软件开发工具C) 软件开发费用 D) 软件系统功能(分数:1.00)A.B.C.D. 解析:解析 需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。选项 A)软件开发方法是在总体设计阶段需完成的任务;选项 B)软件开发工具是在实现阶段需完成的任务;选项

    30、 C)软件开发费用是在可行性研究阶段需完成的任务。8.下列叙述中错误的是( )。A) 在数据库系统中,数据的物理结构必须与逻辑结构一致B) 数据库技术的根本目标是要解决数据的共享问题C) 数据库设计是指在已有数据库管理系统的基础上建立数据库D) 数据库系统需要操作系统的支持(分数:1.00)A. B.C.D.解析:解析 本题考查数据库系统的基本概念和知识。数据的逻辑结构,是数据间关系的描述,它只抽象地反映数据元素之间的逻辑关系,而不管其在计算机中的存储方式。数据的存储结构,又叫物理结构,是逻辑结构在计算机存储器里的实现。这两者之间没有必然的联系。因此,选项 A)的说法是错误的。数据库可以看成是

    31、长期存储在计算机内的、大量的、有结构的和可共享的数据集合。因此,数据库具有为各种用户所共享的特点。不同的用户可以使用同一个数据库,可以取出它们所需要的子集,而且容许子集任意重叠。数据库的根本目标是解决数据的共享问题。因此,选项 B)的说法正确。9.一个教师可讲授多门课程,一门课程可由多个教师讲授,则实体教师和课程间的联系是( )。A) 1:1联系 B) 1:m 联系C) m:1联系 D) m:n 联系(分数:1.00)A.B.C.D. 解析:解析 两个实体间的联系可以归纳为 3种类型:一对一联系:一对一的联系表现为主表中的每一条记录只与相关表中的一条记录相关联。一对多联系或多对一联系:一对多的

    32、联系表现为主表中的每一条记录与相关表中的多条记录相关联。多对多联系:多对多的联系表现为一个表中的多个记录在相关表中同样有多个记录与其匹配。个教师可讲授多门课程,一门课程可由多个教师讲授,所以实体教师和课程间的联系是多对多的联系。10.把实体一联系模型转换为关系模型时,实体之间多对多联系在模型中是通过( )。A) 建立新的属性来实现 B) 建立新的关键字来实现C) 建立新的关系来实现 D) 建立新的实体来实现(分数:1.00)A.B.C. D.解析:解析 E-R 图向关系模型的转换原则:一个实体型转换为一个关系模型,实体的属性就是关系的属性,实体的键就是关系的键;一个联系转换为一个关系模式,与该

    33、联系相连的每个实体型的键以及联系的属性都转换为关系的属性。这个关系的键分为以下三种不同的情况:若联系为 1:1,则相连的每个实体型的键均是该关系模式的候选键。若联系为 1:n,则联系对应的关系模式的键取 n端实体型的键。若联系为 m:n,则联系对应的关系模式的键为参加联系的诸实体型的键的组合。11.算法中,对需要执行的每一步操作,必须给出清楚、严格的规定。这属于算法的( )。A) 正当性 B) 可行性 C) 确定性 D) 有穷性(分数:1.00)A.B.C. D.解析:解析 本题考查的知识点是算法的特性。一个算法应当具有以下 5个特性:有穷性。一个算法应包含有限个操作步骤。确定性。算法中每一条

    34、指令必须有确切的含义,不能有二义性,对于相同的输入必须能够得到相同的执行结果。可行性。算法中指定的操作,都可以通过已经实现的基本运算执行有限次后实现。有零个或者多个输入。有一个或多个输出。故本题应该选择 C)。12.以下叙述中正确的是( )。A) C程序的基本组成单位是语句B) C程序中的每一行只能写一条语句C) 简单 C语句必须以分号结束D) C语句必须在一行内写完(分数:1.00)A.B.C. D.解析:解析 本题考查的是 C语言的基本概念。C 程序的基本组成单位是函数,所以选项 A)不正确;C程序中一行能写多条语句,所以选项 B)不正确;一条 C语句可以写在多行上,所以选项 D)不正确。

    35、简单C语句必须以分号结束是正确的,故本题应该选择 C)。13.以下程序的输出结果是( )。main() int a=666, b=888; printf(“%d/n“, (a, b) ); A) 错误信息 B) 666 C) 888 D) 666, 888(分数:1.00)A.B.C. D.解析:解析 本题考查的知识点是格式化输出的应用。printf函数的调用形式:printf(格式控制,输出项 1,输出项 2,),该题的输出项为一个逗号表达式,该表达式的值为 b的值,因此输出结果为 888,故本题选 C)。14.x,y,z 被定义为 int型变量,若从键盘给 x,y,z 输入数据,正确的输入

    36、语句是( )。A) INPUT x、y、z; B) scanf(“%d%d%d“, x, y, z); C) seanf(“%d%d%d“, x, y, z); D) read(“%d%d%d“, x, y, z);(分数:1.00)A.B. C.D.解析:解析 考查格式输入函数 scanf的使用。scanf 函数的一般格式是:scanf(格式控制,地址表列),该格式中,地址表列中应是变量地址,而不是变量名。15.在以下给出的表达式中,与 while(E)中的(E)不等价的表达式是( )。A) (!E=0) B) (E0|E0) C) (E=0) D) (E!=0)(分数:1.00)A.B.C

    37、. D.解析:解析 本题考查的是逻辑表达式。在 C语言中,整型值可以转换为逻辑值,规则是当整型值为 0时,它表示逻辑假;当整型值不为 0时,它表示逻辑真。所以题目中的 while(E)循环是当 E等于 0时,循环结束,E 不等于 0时,继续循环。选项 C)中,当 E等于 0时,表达式“E=0”为真继续循环,而 E不等于 0时,表达式为假则循环结束,这与题目中的条件不等价,故应该选择 C)。16.有以下程序:main() int a, b, d=25; a=d/10%9; b=a(-1); printf(“%d, %d/n“, a, b); 程序运行后的输出结果是( )。A) 6, 1 B) 2

    38、, 1 C) 6, 0 D) 2, 0(分数:1.00)A.B. C.D.解析:解析 本题主要考查的是 C语言中的整除、求余以及逻辑值的概念。在 C语言中,/号的两边如果都是整数,返回的结果也是整数,如果除不净则舍去小数部分。%是求余运算,它的运算对象只能是整型,运算结果是两数相除后所得的余数,当运算量为负数时,结果的符号与被除数相同。因此,执行语句“a=d/10%9; ”后,a=25/10%9=2%9=2。C 语言中没有专门的逻辑值,而是用整型值来代替。当整型值作逻辑值使用时,非零即表示“真”,零表示“假”;而逻辑值当整型值使用时,“真”等于 1,“假”等于 0。因此,执行语句“b=a(-1

    39、);”后输出结果为 2,1。17.设有以下程序段:int x=0, s=0; while(!x!=0) s+=+x; printf(“%d“, s); 则( )。A) 运行程序段后输出 0B) 运行程序段后输出 1C) 程序段中的控制表达式是非法的D) 程序段执行无限次(分数:1.00)A.B. C.D.解析:解析 本题中,“!”表示逻辑非运算符,“!=”表示不等于运算符,逻辑非运算符比不等于运算符的优先级高。18.有以下程序:#include stdio.hmain() int i=5; doif(i%3=1) if(i%5=2) printf(“*%d“, i); break; i+; w

    40、hile(i!=0); printf(“/n“); 程序的运行结果是( )。A) *7 B) *3*5 C) *5 D) *2*6(分数:1.00)A. B.C.D.解析:解析 本题考查的是 break语句。dowhile 循环是“先执行,后判断”,所以无论条件如何,它都至少会执行一遍。程序首先初始化变量 i为 5,然后进入 dowhile循环体,首先判断(i%3=1),因为 5%3=2,所以 if条件不满足,跳过下面的 if语句,执行 i+,i 变为 6。第 1遍循环结束,判断(i!=0)为真,继续循环。现在 i%3=6%3=0,所以 if语句还是不被执行,继续 i+,i 变为 7,仍然满足

    41、(i!=0),继续循环。第 3遍循环 i%3=7%3=1,满足条件(i%3=1),继续判断条件 i%5=2成立,即输出*7,然后执行 break语句跳出循环。19.下列选项可以正确表示字符型常量的是( )。A) /r B) “a“ C) “/897“ D) 296(分数:1.00)A. B.C.D.解析:解析 C 语言中,一个字符常量代表 ASCII字符集中的一个字符,在程序中用单引号括起来作为字符常量,字符常量的范围是 0127。由于字符常量用单引号括起来,所以选项 B)、C)错误,选项 D)超过了字符常量的表示范围。20.数字字符 0的 ASCII值为 48,若有以下程序:#include

    42、 stdio.hmain() char a=1, b=2; printf(“%c, “b+); printf(“%d/n“, b-a); 程序运行后的输出结果是( )。A) 3, 2 B) 50, 2 C) 2, 2 D) 2, 50(分数:1.00)A.B.C. D.解析:解析 本题考查了字符型变量的运算及输出。在 C语言中,字符型变量可以看做整型变量,与整型所不同的是字符型变量在内存中只占 1个字节,而整型是 2个字节。字符型变量中所存的数值是它所表示字符的 ASCII码值。ASCII 码中的一些相关字符是顺序排列的,如0的 ASCII码值为 48,1为 49,依此类推,一直到9;A的 A

    43、SCII码值为 65,B为 66,依此类推,一直到Z。本题程序一开始就定义了两个字符型变量 a和 b,并初始化为字符1和2,由于题目已经告知0的 ASCII值为 48,所以变量 a、b 中所存1、2的 ASCII值为 49和 50。21.有以下程序:#include stdio.hmain() char a=a, b; printf(“%c,“, +a); printf(1%c/n“, b=a+); 程序运行后的输出结果是( )。A) b,b B) b,c C) a,b D) a,c(分数:1.00)A. B.C.D.解析:解析 本题考核的知识点是运算符+的用法。程序中的第一个输出语句输出表达

    44、式+a 的值,该+a是在使用 a之前,先使 a的值加 1,即 a加 1为字符 b,此时 a的值为 b,所以第一个输出语句输出的值为 b,第二个输出语句中输出的 b的值,这时 b的值为表达式 a+的值,a+是在使用 a之后(此时 a的值为 b,所以赋给 b的值为 b),使 a的值加一,因此第二个输出的值也为 b。所以,4 个选项中选项 A)符合题意。22.以下关于函数的叙述中正确的是( )。A) 每个函数都可以被其他函数调用(包括 main函数) B) 每个函数都可以被单独编译C) 每个函数都可以单独运行D) 在一个函数内部可以定义另一个函数(分数:1.00)A.B. C.D.解析:解析 本题考

    45、查函数的一些概念。main()函数是一个程序的主函数,它由系统调用,所以选项 A)不正确。一个 C语言源程序文件可以只包含一个函数,每个源文件都可以被单独编译成.obj 文件,最后链接成可执行文件。因此每个函数都可以被单独编译,选项 B)正确。一个 C程序必须从主函数 main()开始运行,其他函数只能是直接或间接被 main()函数调用才能得以运行,因此选项 C)错误。C 语言不支持函数的嵌套定义,所有函数只能是全局函数,所以选项 D)错误。故应该选择 B)。23.设有定义:int n1=0, n2, *p=n2, *q=n1; ,以下赋值语句中与 n2=n1; 语句等价的是( )。A) *

    46、p=*q; B) p=q; C); p=n1; D) p=*q;(分数:1.00)A. B.C.D.解析:解析 本题考查的是指针的运算。题目中定义了两个变量 n1和 n2,又定义了两个指针 p和 q分别指向变量 n2和 n1。要通过指针实现 n2=n1,就是要将 q所指内容赋给 p所指内容,即*p=*q。所以应该选择 A)。24.以下程序的输出结果是( )。#include stdio.hvoid swap(int*a, int *b) int*t; t=a; a=b; b=t; main() int i=3, j=5, *p=i, *q=j; swap(p, q); printf(1%d %

    47、d/n, *p, *q); A) 23 B) 34 C) 35 D) 45(分数:1.00)A.B.C. D.解析:解析 本题主要考查的是函数参数的传递。在 C语言中,函数参数的传递是“传值”的,即复制一份实参给形参,形参和实参是完全没有关系的两个变量。所以在函数内部改变形参变量,并不会影响到函数外部的实参。要实现“传址”调用,必须通过指针。因为将实参指针内容复制给了形参指针后,两个指针变量虽然没有任何关系,但它们指向的却是同一个内存地址,当改变形参指针所指向的那个内存地址的内容时,实参指针所指向的内容也就同时被改变了,从而实现了“传址”调用。但是,并不是说只要函数参数是指针,那肯定就是“传址”调用。故选择 C)。25.若要求定义具有 10个 int型元素的一维数组 a,则以下定义语句中错误的是( )。A) #define N 10int aN; B) #define n 5int a


    注意事项

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




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

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

    收起
    展开