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

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

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

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

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

    1、二级 C 语言笔试-438 及答案解析(总分:101.00,做题时间:90 分钟)一、选择题(总题数:40,分数:71.00)1.下列选项中,不是一个算法的基本特征的是( )。A) 完整性 B) 可行性C) 有穷性 D) 拥有足够的情报(分数:1.00)A.B.C.D.2.一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是A) 12345ABCDE B) EDCBA54321 C) ABCDE12345 D) 54321EDCBA(分数:2.00)A.B.C.D.3.从工程管理角度,软件设计一般分为两步完成,它们是A) 概要设计

    2、与详细设计 B) 数据设计与接口设计C) 软件结构设计与数据设计 D) 过程设计与数据没计(分数:2.00)A.B.C.D.4.下列关于线性表的叙述中,不正确的是( )。 A) 线性表可以是空表 B) 线性表是一种线性结构 C) 线性表的所有结点有且仅有一个前件和后件 D) 线性表是由 n 个元素组成的一个有限序列(分数:2.00)A.B.C.D.5.数据库设计中,用 E-R 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A) 需求分析阶段 B) 逻辑设计阶段C) 概念设计阶段 D) 物理设计阶段(分数:2.00)A.B.C.D.6.数据库技术的根本目标是要解决数据的_。A)

    3、 存储问题 B) 共享问题C) 安全问题 D) 保护问题(分数:2.00)A.B.C.D.7.设有表示学生选课的 3 张表:学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC 的关键字(键或码)为A) 课号,成绩 B) 学号,成绩 C) 学号,课号 D) 学号,姓名,成绩(分数:2.00)A.B.C.D.8.下列程序的输出结果是( )。#includestdio.hmain()int a=4;printf(“%d/n“,(a+=a-=a*A) );A) -8 B) 14 C) 0 D) -24(分数:2.00)A.B.C.D.9.若

    4、有以下定义和语句:int a=010,b=010,c=10;printf(“%d,%d,%d/a“,a,b,c);则输出结果是( )。A) 8,10,10 B) 10,10,10 C) 8,8,10 D) 8,16,10(分数:1.00)A.B.C.D.10.下列叙述中正确的是A) 构成 c 程序的基本单位是函数B) 可以在一个函数中定义另一个函数C) main( )函数必须放在其他函数之前D) 所有被调用函数一定要在调用之前进行定义(分数:1.00)A.B.C.D.11.有以下程序段char ch; int kch=a; k=12;printf(“%c,%d,“,ch,ch,k); prin

    5、tf(“k=%d/n“,k);已知字符 a 的 ASCII 码值为 97,则执行上述程序段后输出结果是A) 因变量类型与格式描述符的类型不匹配输出无定值B) 输出项与格式描述符个数不符,输出为零值或不定值C) a,97,12k=12D) a,97,k=12(分数:1.00)A.B.C.D.12.以下数组定义中错误的是( )。A) int x3=0; B) int x2 3=1,2,3,4,5,6;C) int x3=1,2,3,4,5,6; D) int x23=1,2,3,4,5,6;(分数:1.00)A.B.C.D.13.语句“printf(“a/bhow/are/y/bou/n“);”的

    6、输出结果是( )。A) a/bhow/are/y/bou B) a/bhow/are/y/bouC) howareyou D) ahowarey/bou(分数:2.00)A.B.C.D.14.请阅读以下程序:#includestdio.hmain()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+;break;case 2:a+,b+;break;printf(“a=%d,b=%d/n“,a,b);上面程序的输出结果是A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2(分数:1.00)A.B.C.D

    7、.15.删除 student 表的“平均成绩”字段的正确 SQL 命令是_。A) DELETE TABLE student DELETE COLUMN 平均成绩B) ALTER TABLE student DELETE COLUMN 平均成绩C) ALTER TABLE student DROP COLUMN 平均成绩D) DELETE TABLE student DROP COLUMN 平均成绩(分数:2.00)A.B.C.D.16.若有下列定义(设 int 类型变量占 2 个字节):int i=8,j=9;则下列语句:printf(“i=%u,j=%x/n“,i,j);输出的结果是( )。

    8、A) i=8,j=9 B)8.9 C) 8 9 D) i=8,j=8(分数:1.00)A.B.C.D.17.下列程序的输出结果是( )main()int a,b,d=25;a=d/10%9;b=aprintf(“%d,%d/n“,a,b);A) 6,1 B) 2,1 C) 6,0 D) 2,0(分数:2.00)A.B.C.D.18.假定所有变量均已正确说明,下列程序段运行后 x 的值是( )。ab+c0;x12;if(!A) x-;elsex5;if(C) x3;elsex4;A) 11 B) 4 C) 12 D) 3(分数:1.00)A.B.C.D.19.在以下给出的表达式中,与 while

    9、(E)中的(E)不等价的表达式是_。A) (!E=0) B) (E0|E0) C) (E=0) D) (E!=0)(分数:2.00)A.B.C.D.20.以下描述中正确的是A) 由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B) do-while 循环由 d。开始,用 while 结束,在 while(表达式)后面不能写分号C) 在 do-while 循环体中,是先执行一次循环,再进行判断D) do-while 循环中,根据情况可以省略 while(分数:2.00)A.B.C.D.21.有以下程序:#include stdio. hmain( )in

    10、t a=1,2,3,4,5,6,7,8,9,10,11,12,*p=a+5,*q=NULL;*q=*(p+5);printf(“%d%d/n“,*p,*q);程序运行后的输出结果是( )。A) 运行后报错觉 B) 6 6 C) 6 11 D) 5 10(分数:1.00)A.B.C.D.22.以下叙述中错误的是_。(A) 改变函数形参的值,不会改变对应实参的值(B) 函数可以返回地址值(C) 可以给指针变量赋一个整数作为地址值(D) 当在函数的开头包括头文件 stdio.h 时,可以给指针变量赋 NULL(分数:2.00)A.B.C.D.23.下面判断正确的是A) char*a=“china“;

    11、等价于 char *a;*a=“china“;B) char str5=“china“;等价于 char str=“china“;C) char*S=“china“;等价于 char *S;S=“china“;D) char c4=“abc“,d4=“abc“;等价于 char c4=d4=“abc“;(分数:2.00)A.B.C.D.现有以下结构体说明和变量定义,如图所示,指针 p、q、r 分别指定一个链表中连续的 3 个结点。(分数:2.00)A.B.C.D.A.B.C.D.24.已知字符A的 ASCII 码值是 65,字符变量 cl 的值是A,c2 的值是D。执行语句Printf(“%d

    12、,%d“,c1,c2-2);后,输出结果是A) A,B B) A,68 C) 65,66 D) 65,68(分数:2.00)A.B.C.D.有下列程序:int fun1(double a)(return a*=a;)int fun2(double x,double y)double a=0,b=0;a=fun 1(x); b=fun 1(y);return(int)(a+b);main()double w;w=fun2(1.1,2.0),程序执行后变量 w 中的值是( )。A5.21 B5 C5.0 D0.0(分数:2.00)A.B.C.D.A.B.C.D.25.若有定义语句:int a410

    13、,*p,*q4;且 0i4,则错误的赋值是A) p=a B) qi=aiC) p=ai D) p=long num=0;for(i=0;i2;i+)j=0;while(pij!=/0)if(pij-0)%2)num=10*num+pij-0;j+=2;printf(“%d/n“,num);程序执行后的输出结果是_。A) 35 B) 37 C) 39 D) 3975(分数:2.00)A.B.C.D.27.对下述程序的判断中,正确的是#includestdio.hvoid main()char*p,s128;p=S;while(strcmp(s,“End“)printf(“Input a stri

    14、ng:“);gets(s);while(*p)putchar(*p+);A) 此程序循环接收字符串并输出,直到接收字符串“End“为止B) 此程序循环接收字符串,接收到字符串“End“则输出,否则程序终止C) 此程序循环接收字符串并输出,直到接收字符串“End“为止,但因为代码有错误,程序不能正常工作D) 此程序循环接收字符串并将其连接在一起,直到接收字符串“End“为止,输出连接在一起的字符串(分数:2.00)A.B.C.D.28.以下不正确的定义语句是A) double x5=2.0,4.0,6.0,8.0,10.0; B) int y5=0,1,3,5,7,9;C) char c1=1,

    15、2,3,4,5; D) char c2=/x10,/xa,/x8;(分数:2.00)A.B.C.D.29.下列程序段中,不能正确赋值的是( )。A) char*p,ch; p= scabf(“%c“,p);C) char*p; *p=getchar();D) char*p,ch; p= else return 0; 程序运行后的输出结果是( )。 A) 4 B) 7 C) 10 D) 6(分数:2.00)A.B.C.D.A.B.C.D.30.以下语句定义正确的是( )。 A) int a14=1,2,3,4,5; B) float a3=1,2,2,3,3,1; C) long a23=1,1

    16、,2,1,2,3,0,0; D) double a3=8;(分数:2.00)A.B.C.D.31.有以下程序#includestdio.h#includestring.hmain()char a510=“china“,“beijing“,“you“,“tiananmen“,“welcome“);int i,j; char t10;for(i=0;i4;i+)for(j=i+1;j5;j+)if(strcmp(ai,aj)0)strcpy(t,ai);strcpy(ai,aj);strcpy(aj,t);puts(a3);程序运行后的输出结果是( )。A)Beijing B)china C)we

    17、lcome D)tiananmen(分数:2.00)A.B.C.D.32.有以下程序fun(int x)int p;if(x=0|x=1) return(3);p=x-fun(x-2);return p;main()printf(“%d/n“,fun(7);执行后的输出结果是_。(A) 7(B) 3(C) 2(D) 0(分数:2.00)A.B.C.D.33.有下列函数:int fun(char*s)char*t=s;while(*t+);reurn(t-s);该函数的功能是( )。A) 比较两个字符串的大小 B) 计算 s 所指字符串占用内存字节的个数C) 计算 s 所指字符串的长度 D) 将

    18、 s 所指字符串复制到字符串 t 中(分数:2.00)A.B.C.D.34.有以下程序:#define f(x)(x*x)main()int i1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf(“%d,%d/n“,i1,i2);程序运行后的输出结果是_。A) 64,28 B) 4,4 C) 4,3 D) 64,64(分数:2.00)A.B.C.D.35.函数 rewind(fp)的作用是( )。 A) 使 fp 指定的文件的位置指针重新定位到文件的开始位置 B) 将 fp 指定的文件的位置指针指向文件中所要求的特定位置 C) 使 fp 指定的文件的位置指针向文

    19、件的末尾 D) 使 fp 指定的文件的位置指针自动移至下一个字符位置(分数:2.00)A.B.C.D.以下关于 typedef 的叙述错误的是( )。A用 typedef 可以增加新类型Btypedef 只是将已存在的类型用一个新的名字来代表C用 typedef 可以为各种类型说明一个新名,但不能用来为变量说明一个新名D用 typedef 为类型说明一个新名,通常可以增加程序的可读性(分数:3.00)A.B.C.D.A.B.C.D.36.函数 rewind 的作用是( )。A) 使文件位置指针重新返回文件的开始位置B) 将文件位置指针指向文件中所要求的特定位置 C) 使文件位置指针指向文件的末

    20、尾D) 使文件位置指针自动移至下一个字符位置(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:30.00)37.对于如图所示的软件系统结构图,其宽度为_。(分数:2.00)填空项 1:_38.一个关系表的行称为 1。(分数:2.00)填空项 1:_39.用树型结构表示实体类型及实体间联系的数据模型称为 1。(分数:2.00)填空项 1:_40.下列程序运行时输入 1234567CR,则输出结果是_。#includestdio.hmain()int a=1,b;scanf(“%2d%2d“,for(i=0;ii0;i+)j=i*10+6;if(_)continue;printf(

    21、“%d“,j);(分数:2.00)填空项 1:_43.设 int a=5,b=6,表达式(+a=b-)?+a:-b 的值是 1。(分数:2.00)填空项 1:_44.下面程序有两个 printf 语句,如果第一个 printf 语句输出的是 194,则第二个 printf 语句的输出结果是U /U。main()int a10=1,2,3,4,5,6,7,8,9,0,*p;p=a;printf(“%x/n“,p);printf(“%x/“,p+9);(分数:2.00)填空项 1:_45.若有定义:int a441,2,3,4,0,4,6,8,10,1,3,5,7,则初始化后,a22得到的初值是

    22、1。(分数:2.00)填空项 1:_46.在内存中,存储字符x要占用 1 个字节,存储字符串“X“要占用 1 个字节。(分数:2.00)填空项 1:_47.若有定义 doublea5;,则 a 数组元素下标的上限为 1。(分数:2.00)填空项 1:_48.下列程序的输出结果是_。#includestdio.hint t(int x,int y,int cp,int dp)cp=x*x+y*y;dp=x*x-y*y;main()int a=1,b=8,c=7,d=9;t(a,b,c,d);printf(“%d %d/n“,c,d);(分数:2.00)填空项 1:_49.下面程序运行后的输出结果

    23、是_。#includestdio.hmain()int a=1,2,3,4,5,6,*k3,i=1;while(i4)ki-1=printf(“%d“,*ki-1);i+;(分数:2.00)填空项 1:_50.有下列程序:#include stdio.hmain()char C;while(c= getchar ()!=,) putchar(+c);程序运行时,如果从键盘输入:A,B,CR,则输出结果为_。(分数:2.00)填空项 1:_51.以下程序中函数 huiwen 的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串:yes!,否则函数返回字符串:no!,并在主函数中输出

    24、。所谓回文,即正向与反向的拼写都一样,例如:adgda。请填空。#include string.hchar *huiwen(char *str)char *p1,*p2;int i,t=0;p1=str; p2= (18) ;for(i=0;i=strlen(str)/2;i+)if(*p1+!=*p2-)t=1;break;if( (19) )return(“yes!“);else return(“no!“);main()char str50;printf(“Input:“);scanf(“%s“,str);printf(“%s/n“, (20) );(分数:2.00)填空项 1:_二级 C

    25、 语言笔试-438 答案解析(总分:101.00,做题时间:90 分钟)一、选择题(总题数:40,分数:71.00)1.下列选项中,不是一个算法的基本特征的是( )。A) 完整性 B) 可行性C) 有穷性 D) 拥有足够的情报(分数:1.00)A. B.C.D.解析:解析 作为一个算法,一般应该具有下列 4 个特征:可行性,即考虑到实际的条件能够达到一个满意的结果;确定性,算法中的第一个步骤都必须是有明确定义的;有穷性,一个算法必须在有限的时间内做完;拥有足够的情报。2.一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是A) 1

    26、2345ABCDE B) EDCBA54321 C) ABCDE12345 D) 54321EDCBA(分数:2.00)A.B. C.D.解析:解析 栈的特点是先进后出,所以全部入栈后再全部出栈所得的序列顺序必然与入栈序列的顺序相反。3.从工程管理角度,软件设计一般分为两步完成,它们是A) 概要设计与详细设计 B) 数据设计与接口设计C) 软件结构设计与数据设计 D) 过程设计与数据没计(分数:2.00)A. B.C.D.解析:解析 从工程管理的角度看,软件设计可分为概要设计和详细设计两大步骤。概要设计是根据需求确定软件和数据的总体框架;详细设计是将其进一步精化成软件的算法或表示和数据结构。而

    27、在技术上,概要设计和详细设计又由若干活动组成,包括总体结构设计/数据设计和过程设计。4.下列关于线性表的叙述中,不正确的是( )。 A) 线性表可以是空表 B) 线性表是一种线性结构 C) 线性表的所有结点有且仅有一个前件和后件 D) 线性表是由 n 个元素组成的一个有限序列(分数:2.00)A.B.C. D.解析:解析 线性表是一种线性结构,由 n(n0)个元素组成,所以线性表可以是空表。但是在线性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件。所以选项 C)是错误的。5.数据库设计中,用 E-R 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计

    28、的A) 需求分析阶段 B) 逻辑设计阶段C) 概念设计阶段 D) 物理设计阶段(分数:2.00)A.B.C. D.解析:解析 E-R 图即实体-联系图(Entity-Rela- tion Diagram),用来建立数据模型,在数据库系统概论中属于概念设计阶段。6.数据库技术的根本目标是要解决数据的_。A) 存储问题 B) 共享问题C) 安全问题 D) 保护问题(分数:2.00)A.B. C.D.解析:解析 数据库技术的根本目标是解决数据的共享问题。7.设有表示学生选课的 3 张表:学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC

    29、的关键字(键或码)为A) 课号,成绩 B) 学号,成绩 C) 学号,课号 D) 学号,姓名,成绩(分数:2.00)A.B.C. D.解析:解析 “选课表”SC 是“学生表”S 和“课程表”C 的映射表,其主键是两个表的主键的组合。8.下列程序的输出结果是( )。#includestdio.hmain()int a=4;printf(“%d/n“,(a+=a-=a*A) );A) -8 B) 14 C) 0 D) -24(分数:2.00)A.B.C.D. 解析:解析 表达式 a+=a-=a*a 看起来复杂,其实将它分成两个表达式来计算就简单了:第一个表达式(a-=a*a)=(a=a-a*a=-1

    30、2);第二个表达式(a+=a-=a*a)=(a=a+a=-24)。9.若有以下定义和语句:int a=010,b=010,c=10;printf(“%d,%d,%d/a“,a,b,c);则输出结果是( )。A) 8,10,10 B) 10,10,10 C) 8,8,10 D) 8,16,10(分数:1.00)A.B.C.D. 解析:解析 以数字“0”开头的是八进制整型常量,以“0x”或“0X”开头的是十六进制整型常量。“%d”代表用十进制整型格式输出。题中的“010”、“0x10”转换成十进制数后分别是 8 和 16。10.下列叙述中正确的是A) 构成 c 程序的基本单位是函数B) 可以在一个

    31、函数中定义另一个函数C) main( )函数必须放在其他函数之前D) 所有被调用函数一定要在调用之前进行定义(分数:1.00)A. B.C.D.解析:解析 C 程序是由函数构成的,选项 A 正确;main 函数可以放在其他函数之前,也可以放在其他函数之后,故选项 C 错误;函数可以嵌套调用,但不能嵌套定义,故选项 B 错误;被调用函数可以在调用之后定义,但需要在调用前声明,故选项 D 错误。11.有以下程序段char ch; int kch=a; k=12;printf(“%c,%d,“,ch,ch,k); printf(“k=%d/n“,k);已知字符 a 的 ASCII 码值为 97,则执

    32、行上述程序段后输出结果是A) 因变量类型与格式描述符的类型不匹配输出无定值B) 输出项与格式描述符个数不符,输出为零值或不定值C) a,97,12k=12D) a,97,k=12(分数:1.00)A.B.C.D. 解析:解析 输出格式控制符%c 表示将变量以字符的形式输出;输出格式控制符%d 表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为 a,97;第二个输出语句输出的结果为 k=12。12.以下数组定义中错误的是( )。A) int x3=0; B) int x2 3=1,2,3,4,5,6;C) int x3=1,2,3,4,5,6; D) int x23=1,2,3

    33、,4,5,6;(分数:1.00)A.B. C.D.解析:解析 选项 B)中行数定义为 2,但实际需要存放 3 行元素,所以错误。13.语句“printf(“a/bhow/are/y/bou/n“);”的输出结果是( )。A) a/bhow/are/y/bou B) a/bhow/are/y/bouC) howareyou D) ahowarey/bou(分数:2.00)A.B.C. D.解析:解析 “/b”格式符表示退格,功能是将它后面的字母把它前面的字母覆盖,导致“/b”格式符前面的字母不能输出;“/”格式符表示输出单引号字符;“/”格式符表示输出反斜线字符。14.请阅读以下程序:#incl

    34、udestdio.hmain()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+;break;case 2:a+,b+;break;printf(“a=%d,b=%d/n“,a,b);上面程序的输出结果是A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2(分数:1.00)A. B.C.D.解析:命题目的 考查 switch 语句的使用。解题要点 switch 语句的执行过程为:进入 switch 结构舌,对条件表达式进行运算,然后从上至下去找与条件表达式直相匹配的 case,以此作为入口,执行 sw

    35、itch 结构中后面的各吾句,直到遇到 break 语句,则跳出 switch 语句,如果各 case 都不匹配时,则执行 default 后面的语句。考点链接 if 语句及 if 嵌套语句的使用。15.删除 student 表的“平均成绩”字段的正确 SQL 命令是_。A) DELETE TABLE student DELETE COLUMN 平均成绩B) ALTER TABLE student DELETE COLUMN 平均成绩C) ALTER TABLE student DROP COLUMN 平均成绩D) DELETE TABLE student DROP COLUMN 平均成绩(分

    36、数:2.00)A.B.C. D.解析:解析 本题考查的知识点是 SQL 命令的使用。在使用 ALTER TABLE 命令修改表结构时删除表中的字段,应使用 DROP 命令,DELECT 命令用来删除表中的记录。16.若有下列定义(设 int 类型变量占 2 个字节):int i=8,j=9;则下列语句:printf(“i=%u,j=%x/n“,i,j);输出的结果是( )。A) i=8,j=9 B)8.9 C) 8 9 D) i=8,j=8(分数:1.00)A. B.C.D.解析:解析 本题考查函数 printf()的格式。“%x”表示以十六进制输出整型数据;“%u”表示以十进制无符号型输出整

    37、型数据。printf 函数中格式说明符之前插入的任何字符都原样输出。17.下列程序的输出结果是( )main()int a,b,d=25;a=d/10%9;b=aprintf(“%d,%d/n“,a,b);A) 6,1 B) 2,1 C) 6,0 D) 2,0(分数:2.00)A.B. C.D.解析:解析 算术运行符“/”、“%”的优先级处于同一级,并且两者的结合性都是从左到右。所以算术表达式运算过程为:a=25/10%9=2%9=2;当逻辑运算符“x12;if(!A) x-;elsex5;if(C) x3;elsex4;A) 11 B) 4 C) 12 D) 3(分数:1.00)A.B. C

    38、.D.解析:解析 本题考查 if else 语句。第一个 if 语句,先判断条件,发现 aO,则!a 成立,执行下列的语句, x-,得 x11;第二个 if 语句,判断条件,发现 c0,则条件不成立,执行下列的 else 语句,得 x4。19.在以下给出的表达式中,与 while(E)中的(E)不等价的表达式是_。A) (!E=0) B) (E0|E0) C) (E=0) D) (E!=0)(分数:2.00)A.B.C. D.解析:解析 选项 C 表示 E 条件为假时,“(E=0)”为真。其他都与“(E)”等价。20.以下描述中正确的是A) 由于 do-while 循环中循环体语句只能是一条可

    39、执行语句,所以循环体内不能使用复合语句B) do-while 循环由 d。开始,用 while 结束,在 while(表达式)后面不能写分号C) 在 do-while 循环体中,是先执行一次循环,再进行判断D) do-while 循环中,根据情况可以省略 while(分数:2.00)A.B.C. D.解析:解析 do-while 语句的一般形式为:do 循环体语句 while(表达式);,其中循环体语句可以是复合型语句,但必须用花括号括起来。while 后必须要有分号作为语句的结束,在 do-while 循环中,不可以省略 while。21.有以下程序:#include stdio. hmai

    40、n( )int a=1,2,3,4,5,6,7,8,9,10,11,12,*p=a+5,*q=NULL;*q=*(p+5);printf(“%d%d/n“,*p,*q);程序运行后的输出结果是( )。A) 运行后报错觉 B) 6 6 C) 6 11 D) 5 10(分数:1.00)A. B.C.D.解析:解析 程序中将指针 q 赋予 NULL,即指向了空地址,而对空地址所对应的内容赋值*q =*(p+5)虽然可以输出结果 6 11,但最后是会报错的,即输出提示 Null pointer assignment。22.以下叙述中错误的是_。(A) 改变函数形参的值,不会改变对应实参的值(B) 函数

    41、可以返回地址值(C) 可以给指针变量赋一个整数作为地址值(D) 当在函数的开头包括头文件 stdio.h 时,可以给指针变量赋 NULL(分数:2.00)A.B.C. D.解析:23.下面判断正确的是A) char*a=“china“;等价于 char *a;*a=“china“;B) char str5=“china“;等价于 char str=“china“;C) char*S=“china“;等价于 char *S;S=“china“;D) char c4=“abc“,d4=“abc“;等价于 char c4=d4=“abc“;(分数:2.00)A.B.C. D.解析:解析 选项 A)c

    42、har *a;*a=“china”应改为 a=china;,选项 B)应该是 char str6;D)项表述方法有错误。现有以下结构体说明和变量定义,如图所示,指针 p、q、r 分别指定一个链表中连续的 3 个结点。(分数:2.00)A.B.C.D. 解析:解析 由题目中线性链表的定义可知,要将 q 和 r 所指的结点交换前后位置,只要使 q 指向 r 的后一个结点,p 指向 r 结点,r 指向 q 结点即可。而在选项 D 中,r-next=q,这时 r 指向的结点为q;p-next=r,这时 p 指向的结点为 r;q-next=r-next,因为 r 结点已经指向 q,所以执行这个语句后 q

    43、 又指向 q,所以选项 D 不能完成此操作。A.B. C.D.解析:解析 ANSI C 提供的 feof 函数的功能是判断 fp 所指的文件的位置是否已达到文件尾,如果达到文件尾,则 feof 函数的值为 1,否则为 0,表示文件尚未结束。24.已知字符A的 ASCII 码值是 65,字符变量 cl 的值是A,c2 的值是D。执行语句Printf(“%d,%d“,c1,c2-2);后,输出结果是A) A,B B) A,68 C) 65,66 D) 65,68(分数:2.00)A.B.C. D.解析:解析 在 C 语言中,字符型数据在内存中的存储形式是 ASCII 码值。当需要以整型格式输出字符

    44、时,输出的也是 ASCII 码值。字符A和D的 ASCII 码值分别为 65 和 68。有下列程序:int fun1(double a)(return a*=a;)int fun2(double x,double y)double a=0,b=0;a=fun 1(x); b=fun 1(y);return(int)(a+b);main()double w;w=fun2(1.1,2.0),程序执行后变量 w 中的值是( )。A5.21 B5 C5.0 D0.0(分数:2.00)A.B.C.D. 解析:解析 本题是计算 50 之内的自然数相加之和,题中 if 语句括号中的条件表达式!(i%5)lo

    45、ng num=0;for(i=0;i2;i+)j=0;while(pij!=/0)if(pij-0)%2)num=10*num+pij-0;j+=2;printf(“%d/n“,num);程序执行后的输出结果是_。A) 35 B) 37 C) 39 D) 3975(分数:2.00)A.B.C. D.解析:解析 通过赋值表达式指针数组*p等价于数组 p24;表达式“pij-0”可用来表示该字符数组元素的数值,故表达式“(pij-0)2”为判断该字符数组元素的数值的奇偶性,表达式“num=10*num+pij-0”中的数值运算表示直接加该字符数组元素的数值。27.对下述程序的判断中,正确的是#in

    46、cludestdio.hvoid main()char*p,s128;p=S;while(strcmp(s,“End“)printf(“Input a string:“);gets(s);while(*p)putchar(*p+);A) 此程序循环接收字符串并输出,直到接收字符串“End“为止B) 此程序循环接收字符串,接收到字符串“End“则输出,否则程序终止C) 此程序循环接收字符串并输出,直到接收字符串“End“为止,但因为代码有错误,程序不能正常工作D) 此程序循环接收字符串并将其连接在一起,直到接收字符串“End“为止,输出连接在一起的字符串(分数:2.00)A.B. C.D.解析:

    47、解析 此题考查了字符串输入函数 gets 和字符串比较函数 strcmp,另外还有字符输出函数putchar。gets 从标准输入设备中读入全部字符,包括空格,直到遇到回车符为止。strcmp 是字符串比较函数,即 strcmp(字符串 1,字符串 2),如果字符串 1=字符串 2,则函数值为 0;如果宇符串 1,字符串2,则函数值为一正整数;如果字符串 1字符串 2,则函数值为一负整数。putchar(c)函数将字符 c 输出到标准输出设备上。28.以下不正确的定义语句是A) double x5=2.0,4.0,6.0,8.0,10.0; B) int y5=0,1,3,5,7,9;C) char c1=1,2,3,4,5; D) char c2=/x10,/xa,/x8;(分数:2.00)A


    注意事项

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




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

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

    收起
    展开