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

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

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

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

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

    1、二级 C 语言笔试-111 及答案解析(总分:110.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.有下列程序:#include“stdio.h“main()int x=0;int y=0;while(x7x+;printf(“%d,%d“,y,x);程序的输出结果是( )。(分数:2.00)A.0,7B.7,7C.0,6D.1,62.C 语言的基本单位是( )。(分数:2.00)A.函数B.过程C.子程序D.子函数3.#define 能作简单的替代,用宏来替代计算多项式 5*x*x+5*x+5 的值的函数 f,正确的宏定义语句为( )。(分数:2.00)A.#d

    2、efine f(x)5*x*x+5*x+5B.#define f5*x*x+5*x+5C.#define f(A) (D.#define(5*x*x+5*x+5)f(x)4.能正确表“当 x 的取值在1,10和100,110范围内为真,否则为假”的表达式是( )。(分数:2.00)A.(x=1)static int c=4;a=c+;b+;return(A) ;main()int a=2,i,c;B.7C.6D.511.若整型变量 a、b、c、d 中的值依次为:1、4、3、2。则条件表达式 ab?a:cd?c:d 的值是( )。(分数:2.00)A.1B.2C.3D.412.定义结构体数组:s

    3、truct stuint num;char name20;x5;1,“L1“,2,“ZHAO“,3,“WANG“,4,“ZHANG“,5,“LIU“;for(i=1;i5;i+)printf(“%d%c“,xi.num,xi.name2);以上程序段的输出结果为( )。(分数:2.00)A.2A3N4A5UB.1I2A3H4IC.1A2N3A4UD.2H3A4H5I13.树是结点的集合,它的根结点的数目是( )。(分数:2.00)A.有且只有 1 个B.1 或多于 1C.0 或 1D.至少有 2 个14.设 R 是一个二元关系,S 是一个三元关系,则下列运算中正确的是( )。(分数:2.00)

    4、A.R-SB.RSC.RSD.RS15.若有下列说明和语句,已知 int 型数据占 2 个字节,则下列语句的输出结果是( )。struct stchar a15;int b;double c;printf(“%d“,sizcof(struct st);(分数:2.00)A.15B.8C.25D.216.函数调用 strcat(strcpy(str1,str2),str3)的功能是( )。(分数:2.00)A.将字符串 str1 复制到字符串 str2 中后再连接到字符串 str3 之后B.将字符串 str1 连接到字符串 str2 之后再复制到字符串 str3 之后C.将字符串 str2 复制

    5、到字符串 sir1 中后再将字符串 str3 连接到字符串 str1 之后D.将字符串 str2 连接到字符串 str1 之后再将字符串 str1 复制到字符串 str3 中17.若定义 int a=10,则表达式 a+=a=aa*=a 的值是( )。(分数:2.00)A.0B.-180C.-100D.-9018.结构化程序设计的核心和基础是( )。(分数:2.00)A.结构化分析方法B.结构化设计方法C.结构化设计理论D.结构化编程方法19.若二维数组 a 有 m 列,则在 aij前的元素个数为( )。(分数:2.00)A.i*m+j-1B.i*m+jC.j*m+1D.i*m+i+120.按

    6、照“先进后出”原则组织数据的数据结构是( )。(分数:2.00)A.队列B.栈C.双向链表D.二叉树21.设变量 a、b、c、d 和 y 都已正确定义并赋值。若有下列 if 语句if(aB) if(c= =D) y=0;else y=1;该语句所表示的含义是( )。(分数:2.00)A.B.C.D.22.假定所有变量均已正确说明,下列程序段运行后 x 的值是( )。a=b=c=0;x=12;if(!(分数:2.00)A.x-;else x=5;if(C) x=3;else x=4;A) 11B.4C.12D.323.结构化程序设计主要强调的是( )。(分数:2.00)A.程序的规模B.程序的效

    7、率C.程序设计语言的先进性D.程序的易读性24.若有“double a;”,则正确的输入语句是( )。(分数:2.00)A.scanf(“%1f“,A) ;B.sC.sD.s25.需求分析阶段的任务是( )。(分数:2.00)A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能26.下列选项中合法的赋值语句是( )。(分数:2.00)A.a=b=34B.a=34,b=34C.i-1;D.m=(int)(x+y);27.下列程序的输出结果是( )。mainint x=i,y=8;printf(“%d%d/n“,x-,-y) ;(分数:2.00)A.88B.77C.78D.8728.下

    8、列不正确的转义字符是( )。(分数:2.00)A./B./tC./n/D.08829.函数 ftell(fp)的作用是( )。(分数:2.00)A.得到 fp 所指向文件的当前读写位置B.初始化流式文件的位置指针C.移动流式文件的位置指针D.以上答案均正确30.下列程序的运行结果是( )。#includestdio.hmain()int a=2,b=3,C=4;if(aB) if(b0) C=0;else C+=1;printf(“%d/n“,) ;(分数:2.00)A.2B.3C.5D.431.有下列二叉树,对此二叉树前序遍历的结果为( )。(分数:2.00)A.B.C.D.32.若希望下列

    9、的程序运行后输出 25,程序空白处的正确选项是( )。main()int i,j=50,a=7,4,10,5,8;for( )j+=ai;printf(“%d“,j-40);(分数:2.00)A.i=1;i4;+iB.i=1;i3;+iC.i=4;i2;i-D.i=2;i4;+i33.若有说明 int a3=1,2,3,4,5,6,7,8,9),则 a 数组第一维的大小是( )。(分数:2.00)A.2B.3C.4D.无确定值34.下列叙述中正确的是( )。(分数:2.00)A.break 语句只能用于 swish 语句B.在 switch 语句中必须使用 defaultC.break 语句必

    10、须与 switch 语句中的 case 配对使用D.在 switch 语句中,不一定使用 break 语句35.设 int x=7,则x 的值是( )。(分数:2.00)A.-8B.-7C.-1D.136.若有说明:int*p1,*p2,n=8,m;下列均是正确赋值语句的选项是( )。(分数:2.00)A.p1=p2=*p2=p1;D.p1=p2=p1;37.下列选项中非法的字符常量是( )。(分数:2.00)A./tB./039C.,D./n38.有下列程序:main()char s=“abcde“;s+ =2;printf(“%d/n“,s0);执行后的结果是( )。(分数:2.00)A.

    11、输出字符 a 的 ASCII 码B.输出字符 c 的 ASCII 码C.输出字符 cD.程序出错39.设 q1 和 q2 是指向一个 float 型一维数组的指针变量,k 为 float 型变量,则不能正确执行的语句是( )。(分数:2.00)A.k=*q1+*q2;B.q1=k;C.q1=q2;D.k=*q1*(*q2);40.在下列给出的表达式中,与 while(E)中的(E)不等价的表达式是( )。(分数:2.00)A.(!E= =0)B.(E0E0)C.(E= =0)D.(E!=0)二、填空题(总题数:15,分数:30.00)41.在结构化设计方法中,数据流图表达了问题中的数据流与加工

    12、间的关系,并且每一个 1 实际上对应一个处理模块。(分数:2.00)填空项 1:_42.结构化程序设计的 3 种基本结构分别是顺序、选择和 1。(分数:2.00)43.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是 1。(分数:2.00)填空项 1:_44.一个模块直接调用的其他模块的模块个数称为 1。(分数:2.00)填空项 1:_45.数据库系统中实现各种数据管理功能的核心软件是 1。(分数:2.00)填空项 1:_46.C 语言中用 1 表示逻辑值为“真”,用数字“0”表示逻辑值为“假”。(分数:2.00)填空项 1:_47.语句:x+;+x;x=1+x;执行后都使变

    13、量 x 中的值增 1,请写出一条同一功能的赋值语句 1。(分数:2.00)填空项 1:_48.下列程序的输出结果是_。main()int a=1,b=2,c=3,t=0;if(aB) t=a;a=b;b=t;if(aC) t=a;a=c;c=t;printf(“%d,%d,%d/n“,a,b,C) ;(分数:2.00)填空项 1:_49.在 C 语言中,while 和 dowhile 循环的主要区别是 1 的循环至少被执行一次。(分数:2.00)填空项 1:_50.下列程序的输出结果是_。#includestdio.hmain()int x=10,y=10,i;for(i=0;x8;y=+i)

    14、printf(“%d %d“,x-,y);(分数:2.00)填空项 1:_51.若有定义 doublea 5;,则 a 数组元素下标的上限为 1。(分数:2.00)填空项 1:_52.执行下列语句段后,x 的值是_。int *p, x;x = 100;p = x = *p+50;(分数:2.00)填空项 1:_53.设有下列宏定义:#define A 2#define B (A+3)则执行赋值语句“k=B*20;”(k 为 int 型变量)后,k 的值是_。(分数:2.00)填空项 1:_54.有下列程序;#includestdio.hmain()char c;while(c=getchar(

    15、) !=,) putchar(+C) ;程序运行时,如果从键盘输入:A,B,CR,则输出结果为_。(分数:2.00)填空项 1:_55.下列程序执行输出的结果是_。#includestdio.hf(int A) int b=0;static c=7;a=c+;b+;return(A) ;main()int a=2,i,k;for(i=0;i2;i+)k=f(a+);printf(“%d/n“,k);(分数:2.00)填空项 1:_二级 C 语言笔试-111 答案解析(总分:110.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.有下列程序:#include“stdi

    16、o.h“main()int x=0;int y=0;while(x7x+;printf(“%d,%d“,y,x);程序的输出结果是( )。(分数:2.00)A.0,7 B.7,7C.0,6D.1,6解析:解析 本题考查 while 循环y 的值在 while 循环的控制表达式中加 1,在循环体内减 1,所以总的 y 值不变,且控制条件+y 永远非零。当 x 加到 7 时不满足循环条件,结束循环。2.C 语言的基本单位是( )。(分数:2.00)A.函数 B.过程C.子程序D.子函数解析:解析 C 语言是函数式的语言,它的基本组成单位是函数,在 C 语言中任何程序都是由一个或者多个函数组成的。3

    17、.#define 能作简单的替代,用宏来替代计算多项式 5*x*x+5*x+5 的值的函数 f,正确的宏定义语句为( )。(分数:2.00)A.#define f(x)5*x*x+5*x+5B.#define f5*x*x+5*x+5C.#define f(A) ( D.#define(5*x*x+5*x+5)f(x)解析:解析 带参数宏的格式为:#define 标识符(形参表)形参表达式。其功能是:在预处理程序中将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。4.能正确表“当 x 的取值在1,10和100,110范围内为真,否则为假”的表达式是( )。(分数:2.00)A.(x=1

    18、)static int c=4;a=c+;b+;return(A) ;main()int a=2,i,c;B.7C.6D.5 解析:解析 本题考查静态变量的使用方法和 for 循环。在函数调用时,static 变量在函数调用结束后所作的所有变化均不保持,所以当 i=1 时,第 2 次进入 f 函数时 c=5,所以最终 main 函数中 c 的值为 5。11.若整型变量 a、b、c、d 中的值依次为:1、4、3、2。则条件表达式 ab?a:cd?c:d 的值是( )。(分数:2.00)A.1 B.2C.3D.4解析:解析 条件表达式的形式如下:表达式 1?表达式 2:表达式 3,所以本题条件表达

    19、式ab?a:cd?c:d 应该理解为 ab?a:(cd?c:d),首先求出条件表达式 ed?c:d 的值等于 2,再求条件表达式 ab?a:2 的值,由于 a=1b=4 成立,所以上述条件表达式的值等于 1。12.定义结构体数组:struct stuint num;char name20;x5;1,“L1“,2,“ZHAO“,3,“WANG“,4,“ZHANG“,5,“LIU“;for(i=1;i5;i+)printf(“%d%c“,xi.num,xi.name2);以上程序段的输出结果为( )。(分数:2.00)A.2A3N4A5U B.1I2A3H4IC.1A2N3A4UD.2H3A4H5

    20、I解析:解析 本题主要考查结构体数组的使用。xi.num 为结构体 xi中的 num 成员,xi.name2是结构体 xi中 name 成员的第 3 个元素。程序执行循环过程时:第 1 次循环,i=1,输出 x1.num,x1.name2的值,即 2A;第 2 次循环,i=2,输出 x2.num,x2.name2的值,即 3N:第 3 次循环,i=3,输出 x3.num,x3.name2的值,即 4A;第 4 次循环,i=4,输出 x4.num,x4.name2的值,即 5U。13.树是结点的集合,它的根结点的数目是( )。(分数:2.00)A.有且只有 1 个B.1 或多于 1C.0 或 1

    21、 D.至少有 2 个解析:解析 树具有明显的层次关系,即树是一种层次结构。在树结构中,根结点在第一层上。当树为非空时,树中有且只有一个根结点,当树为空时,树中根结点的数目为 0。14.设 R 是一个二元关系,S 是一个三元关系,则下列运算中正确的是( )。(分数:2.00)A.R-SB.RS C.RSD.RS解析:解析 关系的交()、并()和差(-)运算要求两个关系是同元的,显然作为二元的 R 和三元 S 只能做笛卡尔积运算。15.若有下列说明和语句,已知 int 型数据占 2 个字节,则下列语句的输出结果是( )。struct stchar a15;int b;double c;printf

    22、(“%d“,sizcof(struct st);(分数:2.00)A.15B.8C.25 D.2解析:解析 本题主要考查结构体的内存使用:对结构体而言,结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立。题中 int b 占 2 个字节,char a15占 15 个字节,double c 占 8 个字节,所以共 25 个字节。16.函数调用 strcat(strcpy(str1,str2),str3)的功能是( )。(分数:2.00)A.将字符串 str1 复制到字符串 str2 中后再连接到字符串 str3 之后B

    23、.将字符串 str1 连接到字符串 str2 之后再复制到字符串 str3 之后C.将字符串 str2 复制到字符串 sir1 中后再将字符串 str3 连接到字符串 str1 之后 D.将字符串 str2 连接到字符串 str1 之后再将字符串 str1 复制到字符串 str3 中解析:解析 strcat(s1,s2)是把 s2 字符串连接到 s1 字符串末尾,strcpy(s1,s2)是把 s2 字符串复制给s1 字符串,要保证 s1 能容纳下连接或复制后的字符串。17.若定义 int a=10,则表达式 a+=a=aa*=a 的值是( )。(分数:2.00)A.0B.-180 C.-10

    24、0D.-90解析:解析 算术运算符的运算规则是:从右到左的原则。所以表达式中先计算 a=a-a*a 的值是-90,再计算 a=a+a 的值是-180。18.结构化程序设计的核心和基础是( )。(分数:2.00)A.结构化分析方法B.结构化设计方法C.结构化设计理论 D.结构化编程方法解析:解析 结构化程序设计的核心和基础是结构化设计理论,其中包括:结构化分析方法、结构化设计方法和结构化编程方法。19.若二维数组 a 有 m 列,则在 aij前的元素个数为( )。(分数:2.00)A.i*m+j-1B.i*m+j C.j*m+1D.i*m+i+1解析:解析 二维数组的元素可以看成是按矩阵形式存放

    25、的,总是先存放第一行的元素,再存放第二行的元素。数组第一维的下标是 i,说明它前面还有 i 行,有 i*m 个元素,数组第二维的下标是 j,说明它前面还有 j 列,有 j 个元素,所以共有 i*m+j 个元素。20.按照“先进后出”原则组织数据的数据结构是( )。(分数:2.00)A.队列B.栈 C.双向链表D.二叉树解析:解析 栈是一种特殊的线性表,其插入和删除运算都只在线性表的一端进行,而另一端是封闭的。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元素是最后被插入的元素,也是最后被删除的,是按先进后出的原则组织数据的。21.设变量 a、b、c、d 和 y 都已正确定义并赋值。若有

    26、下列 if 语句if(aB) if(c= =D) y=0;else y=1;该语句所表示的含义是( )。(分数:2.00)A.B.C. D.解析:解析 语句 if(c=d)y=0;else y=1;是 if(aB)语句的一个子句。所以整个 C 语句表达式的意思是:在 ab 的情况下,如果 c=d 则 y=0,否则 y=1。所以,选项 C)为正确答案。22.假定所有变量均已正确说明,下列程序段运行后 x 的值是( )。a=b=c=0;x=12;if(!(分数:2.00)A.x-;else x=5;if(C) x=3;else x=4;A) 11B.4 C.12D.3解析:解析 本题考查 if e

    27、lse 语句。第一个 if 语句,先判断条件,发现 a=0,则!a 成立,执行下列的语句,x-,得 x=11;第二个 if 语句,判断条件,发现 c=0,则条件不成立,执行下列的 else 语句,得x=4。23.结构化程序设计主要强调的是( )。(分数:2.00)A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性 解析:解析 程序不光是编写完就结束了,为了测试和维护程序,往往还有其他人阅读和跟踪程序,因此程序设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一,效率第二”。24.若有“double a;”,则正确的输入语句是( )。(分数:2.00)A.scanf(“%1

    28、f“,A) ;B.sC.sD.s 解析:解析 scanf 函数的调用形式是:scanf(格式字符串,输入项地址表)其中,“格式字符串”是要输入的变量的格式符:“输入项地址表”是要输入的变量的地址。题中定义变量 a 为双精度型变量,双精度变量的格式符为“le”;变量的地址用取地址符“printf(“%d%d/n“,x-,-y) ;(分数:2.00)A.88B.77C.78D.87 解析:解析 本题考查自减(-)运算符的使用。“x-”是先引用 x 的值然后将 x 的值减 1,所以输出的x 值为 8;“-y”是先将 y 的值减 1 然后再引用 y 的值,所以输出的 y 值为 7。28.下列不正确的转

    29、义字符是( )。(分数:2.00)A./B./tC./n/D.088 解析:解析 /是反斜线转义字符;/t是水平跳格转义字符;/n是换行转义字符;C 语言中没有规定088为转义字符。29.函数 ftell(fp)的作用是( )。(分数:2.00)A.得到 fp 所指向文件的当前读写位置 B.初始化流式文件的位置指针C.移动流式文件的位置指针D.以上答案均正确解析:解析 位置指针当前值函数 ftell()的基本调用格式为:ftell(fp)。ftell()函数的参数说明:“fp”是指向文件的文件型指引。ftell 函数的功能;得到 fp 所指向文件的当前读写位置,即位置指针的当前值,如果函数的返

    30、回值为-1L,表示出错。30.下列程序的运行结果是( )。#includestdio.hmain()int a=2,b=3,C=4;if(aB) if(b0) C=0;else C+=1;printf(“%d/n“,) ;(分数:2.00)A.2B.3C.5 D.4解析:解析 本题考查 if else 语句。第一个 if 语句,先判断条件,发现 ab 条件成立,执行下列的语句;第二个 if 语句,先判断条件,发现 b0 条件不成立,则执行与其配对的 else 语句,C+=1,得C=5。31.有下列二叉树,对此二叉树前序遍历的结果为( )。(分数:2.00)A.B.C.D. 解析:解析 对二叉树

    31、的前序遍历是指:先访问根结点,然后访问左子树,最后访问右于树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树。记住 3 种遍历的顺序:前序,访问根一按前序遍历左子树一按前序遍历右子树:中序,按中序遍历左子树一访问根一按中序遍历右子树;后序,按后序遍历左子树呻按后序遍历右子树一访问根。32.若希望下列的程序运行后输出 25,程序空白处的正确选项是( )。main()int i,j=50,a=7,4,10,5,8;for( )j+=ai;printf(“%d“,j-40);(分数:2.00)A.i=1;i4;+iB.i=1;i3;+iC.i=4;i2;i-D.i=2;i4;+i 解

    32、析:解析 要想使程序输出是 25,则 j-40=25,j=65,而 j 初值是 50,所以填入 for 循环中的语句,使引用的数组元素累加为 65-50=15 即可。33.若有说明 int a3=1,2,3,4,5,6,7,8,9),则 a 数组第一维的大小是( )。(分数:2.00)A.2B.3 C.4D.无确定值解析:解析 本题考查二维数组第一维的大小如何确定。二维数组第一维的大小由下列规则确定:当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小:当初值的个数不能被第二维的常量表达式的值除尽时,第一维的大小等于所得商数加 1。34.下列叙述中正确的是( )。(分数:2.

    33、00)A.break 语句只能用于 swish 语句B.在 switch 语句中必须使用 defaultC.break 语句必须与 switch 语句中的 case 配对使用D.在 switch 语句中,不一定使用 break 语句 解析:解析 break 为 C 语言关键字,又称间断语句。break 语句的功能是跳出正在执行的条件语句或循环语句。它可以出现在 switch 语句中,也可以出现在循环语句中。default 是关键字,起标号的作用,代表所有 case 标号之外的那些标号。default 标号可以出现在语句体中任何标号位置上。在 switch 语句体中也可以没有 default 标

    34、号35.设 int x=7,则x 的值是( )。(分数:2.00)A.-8 B.-7C.-1D.1解析:解析 本题主要考查按位求反运算和 C 语言中正负数的表示,“0”代表正数,“1”代表负数;x=7 的二进制为 00111,第一个 0 代表正数,x 为 11000,第一个 1 代表负数,值为 8。36.若有说明:int*p1,*p2,n=8,m;下列均是正确赋值语句的选项是( )。(分数:2.00)A.p1=p2=*p2=p1;D.p1=p2=p1; 解析:解析 本题考查指针变量的赋值。选项 A)中,p1、p2 本身都是地址变量,不能再将 p1 取地址赋给 p2;选项 B)中,不能将整型数据

    35、直接赋值给指针型数据;选项 C)中,*p2 代表了一个整型变量,而*p2=p1 这个语句试图把一个地址值放入一个整型变量中是错误的:选项 D)中指针间的赋值是正确的。37.下列选项中非法的字符常量是( )。(分数:2.00)A./tB./039 C.,D./n解析:解析 选项 A)中,/t表示的是横向跳若干格;选项 B)中,039错误,/039是八进制形式表示的字符,但其中出现了9,所以错误;选项 C)中,是字符逗号;选项 D)中,/n表示的是回车换行。38.有下列程序:main()char s=“abcde“;s+ =2;printf(“%d/n“,s0);执行后的结果是( )。(分数:2.

    36、00)A.输出字符 a 的 ASCII 码B.输出字符 c 的 ASCII 码C.输出字符 cD.程序出错 解析:解析 因为字符数组 s中的数组名 s 表示的是一个地址常量。所以语句“s+=2;”不能将指针在当前位置的基础上再向后移动两位因而程序编译时出错。39.设 q1 和 q2 是指向一个 float 型一维数组的指针变量,k 为 float 型变量,则不能正确执行的语句是( )。(分数:2.00)A.k=*q1+*q2;B.q1=k; C.q1=q2;D.k=*q1*(*q2);解析:解析 选项 A)是将指针 q1 和 q2 所指向的变量值相加,然后赋给 k;选项 B)中,float 型

    37、数据和指针型数据之间不能进行赋值运算:选项 C)中,是两个指针变量之间的赋值:选项 D)中,是两个指针型变量所指向的两个 float 型数据相乘。40.在下列给出的表达式中,与 while(E)中的(E)不等价的表达式是( )。(分数:2.00)A.(!E= =0)B.(E0E0) C.(E= =0)D.(E!=0)解析:解析 在 while(E)中,表达式 E 可以是 C 语言中任意合法的条件表达式,但不能为空,由它来控制循环体是否执行。在选项 B)中表达式 E0E0 是一个逻辑表达式。二、填空题(总题数:15,分数:30.00)41.在结构化设计方法中,数据流图表达了问题中的数据流与加工间

    38、的关系,并且每一个 1 实际上对应一个处理模块。(分数:2.00)填空项 1:_ (正确答案:加工)解析:解析 数据流图是从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。其中的每一个加工对应一个处理模块。42.结构化程序设计的 3 种基本结构分别是顺序、选择和 1。(分数:2.00)解析:解析 结构化程序设计包括 3 种基本的结构:顺序结构、选择结构和重复结构(循环结构),利用这 3 种结构就足以表达出各种其他形式结构的程序设计方法。其中利用循环结构,可以简化大量的程序执行。43.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是 1。(分数:2.00)填空项

    39、1:_ (正确答案:顺序存储(顺序方式存储))解析:解析 二分法查找对表的要求是有序的顺序表,即第一要求是数据元素有序,第二要求是按顺序方式存储。44.一个模块直接调用的其他模块的模块个数称为 1。(分数:2.00)填空项 1:_ (正确答案:扇出)解析:解析 在结构图中,调用一个给定模块的模块个数称为扇入,一个模块直接调用的其他模块个数称为扇出。45.数据库系统中实现各种数据管理功能的核心软件是 1。(分数:2.00)填空项 1:_ (正确答案:数据库管理系统)解析:解析 数据库管理系统是数据库的管理机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等。

    40、46.C 语言中用 1 表示逻辑值为“真”,用数字“0”表示逻辑值为“假”。(分数:2.00)填空项 1:_ (正确答案:非 0)解析:解析 逻辑运算中,非 0 表示逻辑“真”,用。表示逻辑“假”。47.语句:x+;+x;x=1+x;执行后都使变量 x 中的值增 1,请写出一条同一功能的赋值语句 1。(分数:2.00)填空项 1:_ (正确答案:x+=1)解析:解析 本题考查“+”,“-”运算符。“+”、“-”只能作用于变量,不能用于表达式或常量;前缀形式是在使用变量之前先将其值增 1 或减 1,后缀形式是先使用变量原来的值,使用完后再使其增 1 或减 1。48.下列程序的输出结果是_。mai

    41、n()int a=1,b=2,c=3,t=0;if(aB) t=a;a=b;b=t;if(aC) t=a;a=c;c=t;printf(“%d,%d,%d/n“,a,b,C) ;(分数:2.00)填空项 1:_ (正确答案:3,1,2)解析:解析 分析程序,第一个 if 语句,a=1,b=2,控制条件 ab 成立,则交换 a、b 的值,此时a=2,b=1。第二个 if 语句,a=2,c=3,控制条件 ac 成立,则交换 a、c 的值,此时 a=3,c=2。49.在 C 语言中,while 和 dowhile 循环的主要区别是 1 的循环至少被执行一次。(分数:2.00)填空项 1:_ (正确答

    42、案:dowhile)解析:解析 考查 while 和 dowhile 循环的主要区别。while 循环的控制出现在循环体之前,只有当while 后面的表达式的值为非零时,才可能执行循环体;在 dowhile 构成的循环体中,总是先执行一次循环体,然后再求表达式的值,因此无论表达式的值是否为零,循环体至少要被执行一次。50.下列程序的输出结果是_。#includestdio.hmain()int x=10,y=10,i;for(i=0;x8;y=+i)printf(“%d %d“,x-,y);(分数:2.00)填空项 1:_ (正确答案:10 10 9 1)解析:解析 for(表达式 1;表达式

    43、 2:表达式 3)语句的功能是:首先计算表达式 1 的值,然后检测表达式 2 的值,若其值为真,则执行循环体语句,执行完毕后,再计算表达式 3 的值。然后再检测表达式 2的值是否为真,若为真,继续执行循环体语句,若为假,则退出循环:第 1 次循环 x8 成立,输出x=10,y=10 后,x 的值减 1,i=1,执行 y=+i 操作,y 的值变为 1;判断条件还成立,输出 x=9,y=1,然后 x 的值减 1,循环条件不成立,则退出循环。51.若有定义 doublea 5;,则 a 数组元素下标的上限为 1。(分数:2.00)填空项 1:_ (正确答案:4)解析:解析 一维数组元素的定义形式为:

    44、数组名N,则该数组中元素的下限是 0,上限是 N-1。52.执行下列语句段后,x 的值是_。int *p, x;x = 100;p = x = *p+50;(分数:2.00)填空项 1:_ (正确答案:150)解析:解析 本题先给变量 x 赋初始值 100,然后将指针 p 指向变量 x,*p 是取指针 p 所指地址的内容,即 100,所以 x=100+50=150。53.设有下列宏定义:#define A 2#define B (A+3)则执行赋值语句“k=B*20;”(k 为 int 型变量)后,k 的值是_。(分数:2.00)填空项 1:_ (正确答案:100)解析:解析 本题考查带参数的

    45、宏定义及相关运算。运算过程为:k=B*20=(A+3)*20=(2+3)*20=100。54.有下列程序;#includestdio.hmain()char c;while(c=getchar() !=,) putchar(+C) ;程序运行时,如果从键盘输入:A,B,CR,则输出结果为_。(分数:2.00)填空项 1:_ (正确答案:B)解析:解析 因为 c 是字符类型变量,它只能接收一个字符,所以 c=A,字符型变量在参与算术运算的时候是用其相应的 ASCII 码参与运算的,这样+c 得到字母 B 的 ASCII 码,用 putchar 函数输出是输出其相应的字符,所以是 B。55.下列程序执行输出的结果是_。#includestdio.hf(int A) int b=0;static c=7;a=c+;b+;return(A) ;main()int a=2,i,k;for(i=0;i2;i+)k=f(a+);printf(“%d/n“,k);(分数:2.00)填空项 1:_ (正确答案:8)解析:解析 第 1 次 for 循环,i=0,调用函数 f(2),然后将 a 的值加 1,在 f()函数中,变量 c 为static 类型,所以 c=8:第 2 次 for 循环, i=1,调用函数 f(3),然后将 a 的值加 1,调用函数 f(3)时,a=c+=8,所以 k=8。


    注意事项

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




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

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

    收起
    展开