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

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

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

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

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

    1、二级 C语言笔试-396 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列描述中正确的是A) 算法是指对解题方案准确而完整的描述B) 算法的有穷性是指算法程序的长度是有限的C) 算法是否有效与拥有的情报无关D) 算法的基本特征有可行性、确定性和有穷性(分数:1.00)A.B.C.D.2.下列数据结构中属于非线性结构的是A) 队列 B) 线性表 C) 二叉树 D) 栈(分数:1.00)A.B.C.D.3.4个元素 A、B、C、D 依次入栈,入栈过程中允许栈顶元素出栈,假设某一时刻栈的状态是 C(栈顶)、B、A(栈底),则不可能的出栈顺序是

    2、A) D、C、B、A B) C、B、D、AC) C、A、D、B D) C、D、B、A(分数: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) 可行性研究

    3、B) 需求分析 C) 详细设计 D) 软件维护(分数:1.00)A.B.C.D.7.软件设计中衡量模块独立性的度量标准是A) 抽象和信息隐蔽B) 局部化和封装化C) 内聚性和耦合性D) 激活机制和控制方法(分数:1.00)A.B.C.D.8.下列不属于过程设计工具中图形工具的是A) N-S B) PAD C) 程序流程图 D) PDL(分数:1.00)A.B.C.D.9.下列叙述中错误的是A) 数据库管理系统是数据库的核心B) 数据库系统由数据库、数据库管理系统、数据库管理员 3部分组成C) 数据共享最好的是数据库系统阶段D) 数据库中的数据独立于应用程序而不依赖于应用程序(分数:1.00)A

    4、.B.C.D.10.如图所示,两个关系 R1和 R2:(分数:1.00)A.B.C.D.11.以下可用作 C语言用户标识符的是A) void,define,WORD B) a3_b3,_123,IFC) FOR,-abc,Case D) 2a,Do,Sizeof(分数:1.00)A.B.C.D.12.以下叙述中错误的是A) C语言的可执行程序是由一系列机器指令构成的B) 用 C语言编写的源程序不能直接在计算机上运行C) 通过编译得到的二进制目标程序需要连接才可以运行D) 在没有安装 C语言集成开发环境的机器上不能运行 C源程序生成的.exe 文件(分数:1.00)A.B.C.D.13.以下 4

    5、个选项中,不能看作一条语句的是A) ; B) a=5,b=2.5,c=3.6;C) if(b!=5)x=2;y=6; D) return j;(分数:1.00)A.B.C.D.14.以下不能正确计算代数式 (分数:1.00)A.B.C.D.15.若有说明:int *p,m=5,n;,以下正确的程序段是A) p= B) p=*p=n; D) p=*p=m;(分数:1.00)A.B.C.D.16.以下程序的输出结果是main()int a=20;printf(“%d,%o,%x/n“,a,a,a);A) 20, 024, 0x14 B) 20, 24, 14C) 20, 0x14, 024 D)

    6、20, 20, 20(分数:1.00)A.B.C.D.17.下面程序的运行结果是main()int y=5,x=14; y=(x=3*y,x+6),x-1);printf(“x=%d,y=%d“,x,y);A) x=27,y=27 B) x=12,y=13C) x=15,y=14 D) x=y=27(分数:1.00)A.B.C.D.18.设变量 x和 y均已正确定义并赋值。以下 if语句中,在编译时将产生错误信息的是A) if(x+); B) if(xyC) if(x0) x- D) if(y0) ;else y+; else x+;(分数:1.00)A.B.C.D.19.请阅读以下程序:#i

    7、nclude stdio.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=2,b=1 C) a=1,b=0 D) a=2,b=2(分数:1.00)A.B.C.D.20.以下叙述中正确的是A) 调用 printf函数时,必须要有输出项B) 使用 putchar函数时,必须在之前包含头文件 stdio.hC) 在 C语言中,整数可以用十二进制、八进制或十六进制的形式

    8、输出D) 调用 getchar函数读入字符时,可以从键盘上输入字符所对应的 ASC码(分数:1.00)A.B.C.D.21.有以下语句:char b8;int c;,则正确的输入语句是A) scanf(“%s%d“, B) scanf(“%s%d“,C) scanf(“%s%d“,b,c); D) scanf(“%s%d“,b,(分数:1.00)A.B.C.D.22.有以下程序:#include stdio.hmain()int a=1,2,3,4,y,*p=-p; y=*p;printf(“y=%d/n“,y);程序的运行结果是A) y=0 B) y=1 C) y=2 D) y=3(分数:1

    9、.00)A.B.C.D.23.若有以下说明和语句,对 c数组元素正确引用是int c45,(*cp)5;cp=c;A) cp+1 B) *(cp+3) C) *(cp+1)+3 D) *(*cp+2)(分数:1.00)A.B.C.D.24.有以下程序:#include string.hmain()char p20=a,b,c,d,q=“abc“,r=“abcde“;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.25.以下程序段中的

    10、变量已正确定义:for(i=0;i4;i+,i+)for(k=1;k3;k+);printf(“*“);程序段的输出结果是A) * B) * C) * D) *(分数:1.00)A.B.C.D.26.以下程序运行后的输出结果是main()char ch=“uvwxyz“,*pc;pc=ch;printf(“%c/n“,*(pc+5);A) z B) 0 C) 元素 ch5地址 D) 字符 y的地址(分数:1.00)A.B.C.D.27.有以下程序:#include stdio.hvoid fun(char *p)+p;printf(“%s/n“,*p);main()char *a=“Morni

    11、ng“,“Afternoon“,“Evening“,“Night“;fun(a);程序运行后的输出结果是:A) Afternoon B) fternoon C) Morning D) orning(分数:1.00)A.B.C.D.28.以下程序运行后的输出结果是void f(int n,int *r)int r1=0;if(n%3=0) r1=n/3;else if(n%5=0) r1=n/5;else f(-n,f(m,for(i=0;i2;i+)ptr=a+i; scanf(“%d“,ptr);ptr+;for(i=0;i3;i+)for(j=0;j2;j+) printf(“%2d“,a

    12、ij);printf(“/n“);若运行时输入:1 2 3回车,则输出结果是A) 编译错误 2 00 0B) 1 02 00 0C) 1 22 03 0D) 1 0(分数:1.00)A.B.C.D.30.有以下程序:#include stdio.hvoid fun(char *s)while(*s)if(*s%2=0)printf(“%c“,*s);s+;main()char a=“good“;fun(a);printf(“/n“);注意:字母 a的 ASC码值为 97,程序运行后的输出结果是A) d B) go C) god D) good(分数:1.00)A.B.C.D.31.有以下程序:

    13、main()int i,s=0,t=1,2,3,4,5,6,7,8,9;for(i=0;19;i+=2) s+=*(t+i);printf(“%d/n“,s);程序执行后的输出结果是A) 45 B) 20 C) 25 D) 36(分数:1.00)A.B.C.D.32.当用“#define F 37.5f”定义后,下列叙述正确的是A) F是 float型数 B) F 是 char型数C) F无类型 D) F 是字符串(分数:1.00)A.B.C.D.33.有以下程序(函数 fun只对下标为偶数的元素进行操作):#include stdio.hvoid fun (int *a,int n)int

    14、i,j ,k,t;for(i=0;in-1;i+=2)k=i;for(j=i;jn;j+=2) if(ajak) k=j;t=ai;ai=ak;ak=t;main()int aa10=1,2,3,4,5,6,7,i;fun(aa,7);for(i=0;i7;i+) printf(“%d,“,aai);printf(“/n“);程序运行后的输出结果是A) 7,2,5,4,3,6,1, B) 1,6,3,4,5,2,7,C) 7,6,5,4,3,2,l, D) 1,7,3,5,6,2,1,(分数:1.00)A.B.C.D.34.阅读下列程序,则运行结果为#include “stdio.h“fun(

    15、)static int x=3;x+;return x;main()int i,x;for(i=0;i3;i+)x=fun();printf(“%d/n“,x);A) 3 B) 4 C) 5 D) 6(分数:1.00)A.B.C.D.35.下列程序的输出结果是#include “stdio.h“#define N 3#define M 3void fun(int aMN)printf(“%d/n“,*(a1+2);main()int aMN;int i,j;for(i=0;iM;i+)for(j=0;jN;j+)aij=i+j-(i-j);fun(a);A) 3 B) 4 C) 5 D) 6(

    16、分数:1.00)A.B.C.D.36.有以下程序段:typedef struct NODEint num; struct NODE *next;OLD;以下叙述中正确的是A) 以上的说明形式非法 B) NODE 是一个结构体类型C) OLD是一个结构体类型 D) OLD 是一个结构体变量(分数:1.00)A.B.C.D.37.有以下程序:struct Sint n;int a20;void f(int *a, int n)int i;for(i=0;in-1;i+)ai+=i;main()int i;struct S s=10,12,3,1,6,8,7,5,4 ,10,9;f(sa,sn);f

    17、or(i=0;is.n;i+)printf(“%d,“,s.ai);程序运行后的输出结果是A) 2,4,3,9,12,12,11,11,18,9, B) 3,4,2,7,9,8,6,5,11,10,C) 2,3,1,6,8,7,5,4,10,9, D) 1,2,3,6,8,7,5,4,10,9,(分数:1.00)A.B.C.D.38.下列选项中,能够满足“若字符串 s1等于字符串 s2,则执行 ST”要求的是A) if(strcmp(s2,s1)=0) ST; B) if(s1=s2) ST;C) if(strcpy(s1,s2)=1) ST; D) if(s1-s2=0) ST;(分数:1.

    18、00)A.B.C.D.39.有以下程序:struct STUchar name10;int num; float TotalScore;void f(struct STU *p)struct STU s2=“SunDan“,20044 ,550,“Penghua“,20045 ,537,*q=s;+p;+q;*p=*q;main()struct STU s3=“YangSan“,20041,703,“LiSiGuo“,20042,580;f(s);printf(“%s %d %3.0f/n“,s1.name,s1.num,s1.TotalScore);程序运行后的输出结果是A) SunDan

    19、20044 550 B) Penghua 20045 537C) LiSiGuo 20042 580 D) SunDan 20041 703(分数:1.00)A.B.C.D.40.下面程序段的输出为#include “stdio.h“main()printf(“%d/n“,122);A) 0 B) 47 C) 48 D) 24(分数:1.00)A.B.C.D.二、填空题(总题数:15,分数:60.00)41.某二叉树有 6个度为 2的结点以及 4个度为 1的结点,则该二叉树中共有 1 个结点。(分数:4.00)填空项 1:_42.设某循环队列的容量为 60,头指针 front=10(指向队头元

    20、素的前一位置),尾指针 rear=29(指向队尾元素),则该循环队列中共有 1 个元素。(分数:4.00)填空项 1:_43.若按功能划分,软件测试的方法通常分为白盒测试法和 1 测试法。(分数:4.00)填空项 1:_44.一个工人可管理多个设备,而一个设备只被一个工人管理,则实体“工人”与实体“设备”之间存在 1的关系。(分数:4.00)填空项 1:_45.数据库设计分为 6个设计阶段:需求分析阶段、 1、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。(分数:4.00)填空项 1:_46.设变量已正确定义为整型,则表达式 n=i=12,+i,i+的值为 1。(分数:4.00)填空项

    21、 1:_47.以下程序运行后的输出结果是_。main()int a=3,b=4,c=5,t=99;if(baa=c;c=t;if(acb=a;a=t;printf(“%d %d %d/n“,a,b,c);(分数:4.00)填空项 1:_48.以下程序的输出结果是_。#include string.hmain()printf(“%d/n“ ,strlen(“IBM/n012/1/“);(分数:4.00)填空项 1:_49.以下程序的输出结果是_。#include stdio.h#include string.hchar* fun( char *t)char *p=t;return(p+strle

    22、n(t)/2);main()char *str=“abcdefgh“;str=fun(str);puts(str);(分数:4.00)填空项 1:_50.以下程序的输出结果是_。#include stdio.hmain()int i;for(i=a;if;i+,i+)printf(“%c“,i-a+A);printf(“/n“);(分数:4.00)填空项 1:_51.以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如,若一维数组中的数据是:2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10

    23、10删除后,数组中的内容应该是:2 3 4 5 6 7 8 9 10请填空。#include stdio.h#define N 80int fun(int a,int n)int i,j=1;for(i=1;in;i+)if(aj-1!=ai)aj+=ai;_;main()int aN=2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,i,n=19;printf(“The original data:/n“);for(i=0;in;i+) printf(“%3d“,ai);n=fun(a,n);printf(“/nThe data after deleted:

    24、/n“);for(i=0;in;i+)printf(“%3d“,ai);printf(“/n/n“);(分数:4.00)填空项 1:_52.有以下程序,若运行时从键盘输入:18,11回车,则程序的输出结果是_。main()int a,b;printf(“Enter a,b:“);scanf(“%d,%d“,while(ba)b-=a;printf(“%3d% 3d“,a,b);(分数:4.00)填空项 1:_53.以下程序的输出结果是_。#include stdio.hvoid fun(int x)if(x/20) fun(x/2);printf(“%d“,x);main()fun(3);pr

    25、intf(“/n“);(分数:4.00)填空项 1:_54.下列程序运行时,若输入 1abcedf2df回车,则程序的输出结果为_。#include stdio.hmain()char a=0,ch;while(ch=getchar()!=/n)if(a%2!=0 int a10=1,2,3,0,0,i;fp=fopen(“d2.dat“,“wb“);fwrite(a,sizeof(int),5,fp);fwrite(a,sizeof(int),5,fp);fclose(fp);fp=fopen(“d2.dat“,“rb“);fread(a,sizeof(int),10,fp);fclose(

    26、fp);for(i=0;i10;i+)printf(“%d“,ai);(分数:4.00)填空项 1:_二级 C语言笔试-396 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列描述中正确的是A) 算法是指对解题方案准确而完整的描述B) 算法的有穷性是指算法程序的长度是有限的C) 算法是否有效与拥有的情报无关D) 算法的基本特征有可行性、确定性和有穷性(分数:1.00)A. B.C.D.解析:解析 算法是指对解题方案准确而完整的描述。算法具有 4个特征:可行性、确定性、有穷性和拥有足够的情报。有穷性指算法必须在有限时间内做完,即算法必须能在

    27、执行有限个步骤之后终止。当算法拥有足够的情报时,此算法才是有效的;而当提供的情报不够时,算法可能无效。2.下列数据结构中属于非线性结构的是A) 队列 B) 线性表 C) 二叉树 D) 栈(分数:1.00)A.B.C. D.解析:解析 线性结构满足两个条件:有且只有一个根结点;每个结点最多只有一个前件,也最多只有一个后件。栈、队列、线性表都属于线性结构,而二叉树是一种非线性结构,因为除叶子结点外,每个结点都有两个后件,不满足线性结构的条件。3.4个元素 A、B、C、D 依次入栈,入栈过程中允许栈顶元素出栈,假设某一时刻栈的状态是 C(栈顶)、B、A(栈底),则不可能的出栈顺序是A) D、C、B、

    28、A B) C、B、D、AC) C、A、D、B D) C、D、B、A(分数:1.00)A.B.C. D.解析:解析 栈的特点是先进后出,所以后入栈的最先出栈。在栈的状态是 C(栈顶)、B、A(栈底)时,D未入栈,栈顶元素可以出栈,但 A不可能比 B先出栈,所以选项 C)错误。4.下列叙述中正确的是A) 顺序存储结构的存储空间一定是连续的,链式存储结构的存储空间不一定是连续的B) 顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C) 顺序存储结构能存储有序表,链式存储结构不能存储有序表D) 链式存储结构比顺序存储结构节省存储空间(分数:1.00)A. B.C.D.解析:解析 顺序存储方式是

    29、把逻辑上相邻的结点存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。其优点是占用最少的存储空间,所以选项 D)错误。顺序存储结构可以存储如二叉树这样的非线性结构,所以选项 B)错误。链式存储结构也可以存储线性表,所以选项 C)错误。5.下面概念中,不属于面向对象方法的是A) 对象 B) 继承 C) 类 D) 过程调用(分数:1.00)A.B.C.D. 解析:解析 类是指具有共同属性、共同方法的对象的集合,所以类是对象的抽象,对象是对应类的一个实例。继承是指能够直接获得已有的性质和特征,而不必重复定义它们。所以选项 A)、B)、C)属于面向对象方法,选项 D)属于面向过程方

    30、法。6.下列选项中属于软件生命周期开发阶段任务的是A) 可行性研究 B) 需求分析 C) 详细设计 D) 软件维护(分数:1.00)A.B.C. D.解析:解析 软件生命周期可分为软件定义、软件开发和软件运行维护 3个阶段。软件开发期包括概要设计、详细设计、实现和测试 4个阶段。7.软件设计中衡量模块独立性的度量标准是A) 抽象和信息隐蔽B) 局部化和封装化C) 内聚性和耦合性D) 激活机制和控制方法(分数:1.00)A.B.C. D.解析:解析 耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高

    31、内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。8.下列不属于过程设计工具中图形工具的是A) N-S B) PAD C) 程序流程图 D) PDL(分数:1.00)A.B.C.D. 解析:解析 常用的过程设计工具有图形工具(程序流程图、N-S 图、PAD 图、HIPO)、表格工具(判定表)、语言工具(PDL)。9.下列叙述中错误的是A) 数据库管理系统是数据库的核心B) 数据库系统由数据库、数据库管理系统、数据库管理员 3部分组成C) 数据共享最好的是数据库系统阶段D) 数据库中的数据独立于应用程序而不依赖于应用程序(分数:1.00)A.B. C.D.解析:解

    32、析 数据库管理系统是数据库系统的核心,它位于用户和操作系统之间,属于系统软件。数据库系统由数据库、数据库管理系统、数据库管理员、硬件平台和软件平台 5部分组成。数据库技术的发展经历了 3个阶段,人工管理、文件系统和数据库系统,数据共享最好的是数据库系统阶段,数据库中的数据独立于应用程序而不依赖于应用程序。10.如图所示,两个关系 R1和 R2:(分数:1.00)A.B. C.D.解析:解析 连接运算也称 连接,是对两个关系进行运算,其意义是从两个关系的笛卡儿积中选择满足给定属性间一定条件的那些元组。本题关系 R3为关系 R1中 B属性和关系 R2中 D属性相等连接而成。11.以下可用作 C语言

    33、用户标识符的是A) void,define,WORD B) a3_b3,_123,IFC) FOR,-abc,Case D) 2a,Do,Sizeof(分数:1.00)A.B. C.D.解析:解析 C 语言规定用户标识符由字母、数字和下划线组成,且第一个字符必须是字母或下划线,可见选项 C),D)是错误的;此外,C 语言不允许用户将关键字作为标识符,而选项 A)中的 void正是 C语言的关键字。12.以下叙述中错误的是A) C语言的可执行程序是由一系列机器指令构成的B) 用 C语言编写的源程序不能直接在计算机上运行C) 通过编译得到的二进制目标程序需要连接才可以运行D) 在没有安装 C语言集

    34、成开发环境的机器上不能运行 C源程序生成的.exe 文件(分数:1.00)A.B.C.D. 解析:解析 C 语言的可执行程序是由一系列机器指令组成的,用 C语言编写的源程序必须经过编译生成二进制目标代码,再经过连接才能运行,并且可以脱离 C语言集成开发环境。故答案为 D)。13.以下 4个选项中,不能看作一条语句的是A) ; B) a=5,b=2.5,c=3.6;C) if(b!=5)x=2;y=6; D) return j;(分数:1.00)A.B.C. D.解析:解析 C 语言规定每个语句以;(分号)结束,因此选项 C)为两条语句。14.以下不能正确计算代数式 (分数:1.00)A. B.

    35、C.D.解析:解析 本题考查的是 C语言表达式。如果算术运算符“/”中参与运算的变量都是整型变量,则“/”表示整除运算,所以“1/3”的值应为 0,故选项 A)的表达式值为 0,而事实上代数式的值并不为0,所以选项 A)不能正确计算题目所要求的代数式。15.若有说明:int *p,m=5,n;,以下正确的程序段是A) p= B) p=*p=n; D) p=*p=m;(分数:1.00)A.B.C.D. 解析:解析 “printf(“%d,%o,%x/n“,a,a,a);A) 20, 024, 0x14 B) 20, 24, 14C) 20, 0x14, 024 D) 20, 20, 20(分数:

    36、1.00)A.B. C.D.解析:解析 本题的考查点是不同格式的数据输出。printf 函数对不同类型的数据用不同的格式字符,“qod”是以带符号的十进制形式输出整数(正数不输出符号);“%o”以八进制无符号形式输出整数(不包括前导符 0);“%x”以十六进制无符号形式输出整数(不包括前导符 0x)。17.下面程序的运行结果是main()int y=5,x=14; y=(x=3*y,x+6),x-1);printf(“x=%d,y=%d“,x,y);A) x=27,y=27 B) x=12,y=13C) x=15,y=14 D) x=y=27(分数:1.00)A.B.C. D.解析:解析 本题

    37、考查的是逗号表达式。逗号表达式的求解步骤是先求解表达式 1,然后依次求解表达式 2,直到表达式 N的值。整个逗号表达式的值就是最后一个表达式 N的值。表达式(x=3*y,x+6)中,x=15。表达式 y=x-1=14。18.设变量 x和 y均已正确定义并赋值。以下 if语句中,在编译时将产生错误信息的是A) if(x+); B) if(xyC) if(x0) x- D) if(y0) ;else y+; else x+;(分数:1.00)A.B.C. D.解析:解析 本题考查的是 if语句。if 是 C语言关键字,表达式两侧的圆括号不可少,最后是一条语句或是用花括号括起来的一组语句。选项 A)

    38、和 B)是在表达式后跟了一条空语句,选项 D)是在表达式后跟了一组空语句,选项 C)中 x-是表达式而不是语句,所以在编译时会出现错误信息,在 x-后面加上“;”号就对了。19.请阅读以下程序:#include stdio.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=2,b=1 C) a=1,b=0 D) a=2,b=2(分数:1.00)A. B.C.D.解

    39、析:解析 考查 switch语句的使用,switch 语句的执行过程为:进入 switch结构后,对条件表达式进行运算,然后从上至下去寻找与条件表达式值相匹配的 case,以此作为入口,执行 switch结构中后面的各语句,直到遇到 break语句,则跳出 switch语句,如果各 case都不匹配时,则执行 default后面的语句。20.以下叙述中正确的是A) 调用 printf函数时,必须要有输出项B) 使用 putchar函数时,必须在之前包含头文件 stdio.hC) 在 C语言中,整数可以用十二进制、八进制或十六进制的形式输出D) 调用 getchar函数读入字符时,可以从键盘上输

    40、入字符所对应的 ASC码(分数:1.00)A.B. C.D.解析:解析 本题考查的是标准输入输出函数。在使用标准输入输出库函数(除了 printf和 scanf)前,必须要用预编译命令“#include”将头文件“stdio.h”包括到用户源文件中。调用 printf函数时可以没有输出项,比如 printf(“)是允许的。C 语言中整数的输出形式没有十二进制的形式。getchar 函数读人字符时可以得到第一个输入字符的 ASC码,无法通过输入相应字符的 ASC得到该字符。21.有以下语句:char b8;int c;,则正确的输入语句是A) scanf(“%s%d“, B) scanf(“%s

    41、%d“,C) scanf(“%s%d“,b,c); D) scanf(“%s%d“,b,(分数:1.00)A.B.C.D. 解析:解析 scanf 函数常用的格式控制中“s”代表输入的是字符串,“d”代表输入带符号的十进制整型数,根据语句 char b8;int c;可确定正确的输入语句是选项 D)。22.有以下程序:#include stdio.hmain()int a=1,2,3,4,y,*p=-p; y=*p;printf(“y=%d/n“,y);程序的运行结果是A) y=0 B) y=1 C) y=2 D) y=3(分数:1.00)A.B.C.D. 解析:解析 在程序中指针变量 p初始

    42、指向 a3,执行 p减 1后,p 指向 a2,语句 y=*p的作用是把a2的值赋给变量 y,所以输出为 y=3。23.若有以下说明和语句,对 c数组元素正确引用是int c45,(*cp)5;cp=c;A) cp+1 B) *(cp+3) C) *(cp+1)+3 D) *(*cp+2)(分数:1.00)A.B.C.D. 解析:解析 本题的考查点是数组元素的引用。cp=c 这个语句是将数组 c的首行元素地址赋给了指针数组 cp。选项 A),cp+1 是指将数组 c的首行地址加 1,即为第 2行地址;选项 B),*(cp+3)是地址,等于数组 c的首地址加 3的那个内存单元的内容,不是对数组元素

    43、的引用;选项 C),*(cp+1) +3 是地址,等于数组 c的首地址加 1的那个内存单元中存放的值加 3,不是对数组元素的引用。24.有以下程序:#include string.hmain()char p20=a,b,c,d,q=“abc“,r=“abcde“;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.解析:解析 本题考查的是用于字符串处理的函数。题目中首先通过 strcat(p,r)将 r所指字符串的内容连接到 p所指的

    44、字符串后面,p20=a,b,c,d,a,b,c,d,e。然后通过p+strlen(q)在数组元素 p0地址的基础上向后移动 3位,再将 q所指字符串的内容复制到 p所指的存储空间中,从字符“d”往后全部覆盖,p20=a,b,c,a,b,c。在输出语句中 strlen(p)是求字符串的长度,值为 6。25.以下程序段中的变量已正确定义:for(i=0;i4;i+,i+)for(k=1;k3;k+);printf(“*“);程序段的输出结果是A) * B) * C) * D) *(分数:1.00)A.B.C.D. 解析:解析 本题考察 for循环语句,注意第二个 for语句的后面有一个分号,即 p

    45、rintf函数不属于循环体,无论循环执行多少次,printf(“*”)语句只执行一次。因此,本题的正确答案为 D)。26.以下程序运行后的输出结果是main()char ch=“uvwxyz“,*pc;pc=ch;printf(“%c/n“,*(pc+5);A) z B) 0 C) 元素 ch5地址 D) 字符 y的地址(分数:1.00)A. B.C.D.解析:解析 表达式*(pc+5)先将指针向后移动 5个存储单元,指向 ch5,再取出其中的值。其值为字符 z。27.有以下程序:#include stdio.hvoid fun(char *p)+p;printf(“%s/n“,*p);mai

    46、n()char *a=“Morning“,“Afternoon“,“Evening“,“Night“;fun(a);程序运行后的输出结果是:A) Afternoon B) fternoon C) Morning D) orning(分数:1.00)A. B.C.D.解析:解析 语句 void fun(char *p)中的形参是一个指向指针的指针,在调用函数 fun(a)后,指针数组 a加 1,则指向了数组的第 2个字符串“Aftemoon”的a的地址。28.以下程序运行后的输出结果是void f(int n,int *r)int r1=0;if(n%3=0) r1=n/3;else if(n%

    47、5=0) r1=n/5;else f(-n,f(m,for(i=0;i2;i+)ptr=a+i; scanf(“%d“,ptr);ptr+;for(i=0;i3;i+)for(j=0;j2;j+) printf(“%2d“,aij);printf(“/n“);若运行时输入:1 2 3回车,则输出结果是A) 编译错误 2 00 0B) 1 02 00 0C) 1 22 03 0D) 1 0(分数:1.00)A.B. C.D.解析:解析 首先二维数组 a中的元素都初始化为 0,其次定义了指向数组的指针 ptr,并且依次将 ptr指向二维数组 a中的各行,循环语句 for(i=0;i2;i+)等价于:scanf(“%d“,a+0);scanf(“%d“,a+1);其中 a+i即是数组 ai的首地址,也是元素 ai0的地址,故以上语句读入两个整数,分别存入二维数组 a的第 1列中,在输入 1 2 3后,a=1,0,2,0,0,0。30.有以下程序:#


    注意事项

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




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

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

    收起
    展开