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

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

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

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

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

    1、二级 C语言笔试-388 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:70.00)1.下列叙述中正确的是(分数:2.00)A.在面向对象的程序设计中,各个对象之间具有密切的联系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D.上述三种说法都不对2.下列对于软件测试的描述中正确的是(分数:2.00)A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能多地发现程序中的错误D.软件测试的目的是使程序符合结构化原则3.若有以下定义的语句 stru

    2、ct student int age; int num; struct student stu3=1001,20,1002,19,1003,21; main() stmct student *p; p=stu; 则以下不正确的引用是(分数:2.00)A.(p+)-numB.p+C.(*.numD.P=&stag4.主程序调用 findmax函数求出数组中最大元素在数组中的下标,括号中需填写的内容是 #includestdio.h findmax(int*s,int t,int*k) int p; for(p=0,*k=p;pt;p+)if(sps*k)( ); main() int a10,i

    3、,k; for(i=0;i10;i+)scanf(“%d“,&ai); findmax(a,10,&k); printf(“%d%d/n“ ,k,ak);(分数:2.00)A.k=pB.*k=pC.k=p-sD.*k=p-s5.以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是 abs(int x) if(x=0)return x; else return-x; main() int y,z,(*p)(int x)=abs; scanf(“ %d“ ,&y); z=( *p)(y); ; (分数:2.00)A.printf(“%d%d/n“,&p,B.Pr

    4、intf(“%d%d/n“,p,C.printf(“%d%d/n“,*p,D.printf(“%d%d/n“,p,*6.设有定义 int n=0,*p=&n,*q=&p;,则下列选项中正确的赋值语句是(分数:2.00)A.p=1;B.*q=2;C.q=p;D.*p=5;7.定义如下变量和数组: int i; int x33=1,2,3,4,5,6,7,8,9; 则下面语句的输出结果是( )。 for(i=0; i3; i+) printf(“%d“,xi2-i);(分数:2.00)A.1 5 9B.1 4 7C.3 5 7D.3 6 98.请阅读以下程序: #includestdio.h ma

    5、in() 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); 上面程序的输出结果是(分数:2.00)A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=29.下面程序段的输出为 #nclude“stdio.h“ main() printf(“%d/n“,122);(分数:2.00)A.0B.47C.48D.2410.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和(分数:2.00)A.编码设计B.

    6、测试阶段C.运行阶段D.物理设计11.在数据管理技术的发展过程中,可实现数据共享的是(分数:1.00)A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.系统管理阶段12.以下叙述正确的是(分数:1.00)A.continue语句的作用是结束整个循环的执行B.只能在循环体内和 swish语句体内使用 break语句C.在循环体内使用 break语句或 continue语句的作用相同D.从多层循环嵌套中退出时,只能使用 goto语句13.结构化程序设计方法的 3种基本控制结构中不包括(分数:1.00)A.循环结构B.递归结构C.顺序结构D.选择结构14.在 C语言中,只有在使用时才占用内存单元

    7、的变量,其存储类型是(分数:1.00)A.auto和 registerB.extern和 registerC.auto和 staticD.static和 register15.设已执行预编译命令#includestring.h,以下程序段的输出结果是 char s=“ an apple“ ; printf(“%d/n“,strlen(s);(分数:1.00)A.7B.8C.9D.1016.以下合法的十六进制数是(分数:1.00)A.0xB.0x4deC.0x1hD.oX7717.设变量 a、b、c、d 和 y都已正确定义并赋值。若有以下 if语句 if(ab) if(c=d)y=0; else

    8、 y=1; 该语句所表示的含义是 (分数:1.00)A.B.C.D.18.x,y,z 被定义为 int型变量,若从键盘给 x,y,z 输入数据,正确的输入语句是(分数:1.00)A.INPUTx、y、z;B.scanf(“%d%d%d“,&x,&y,&;C.scanf(“%d%d%d“,x,y,;D.read(“%d%d%d“,&x,&y,&;19.下面程序的运行结果是 #includestdio.h void delch(char *s) int i,j; char *a; a=S; for(i=0,j=0;ai!=/0;i+) if(ai=0 &aai=9) sj=ai; j+; sj=/

    9、0; main() char *item=“a34bC“; delch(item); printf(“/n%s|,item);(分数:1.00)A.abcB.34C.a34D.a34bc20.以下选项中不合法的标识符是(分数:1.00)A.ptintB.FORC.&aD._0021.如果需要打开一个已经存在的非空文件“Demo”进行修改,下面选项中正确的是(分数:2.00)A.fp=fopen(“Demo“,“r“);B.fp=fopen(“Demo“,“ab+“);C.fp=fopen(“Demo“,“w+“);D.fp=fopen(“Demo“,“r+“);22.执行下面的程序后,a 的值

    10、为 main() int a,b; for(a=1,b=1;a=10;a+) if(b%3=1) b+=3; continue; b-=5;(分数:2.00)A.7B.8C.9D.1023.下列数据结构中,按先进后出原则组织数据的是(分数:2.00)A.线性链表B.栈C.循环链表D.顺序表24.以下叙述中正确的是(分数:2.00)A.C程序中的注释只能出现在程序的开始位置和语句的后面B.C程序书写格式严格,要求一行内只能写一个语句C.C程序书写格式自由,一个语句可以写在多行上D.用 C语言编写的程序只能放在一个程序文件中25.下述程序的输出结果是 #includestdio.h void ma

    11、in() int a5=2,4,6,8,10; int*p=a,*q=&p; printf(“%d,“,*(p+); pfintf(“%d“,*q);(分数:2.00)A.4,4B.2,2C.4,5D.2,426.软件工程的出现是由于(分数:2.00)A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现D.计算机的发展27.下面程序的运行结果是 #includestdio.h main() static char a=“Languagef“ ,b=“programe“; char *p1,*p2; int k; p1=a;p2=b; for(k=0;k=7;k+) if(*(p1+k

    12、)=*(p2+k) printf(“%c“,*(p1+k);(分数:2.00)A.gaeB.gaC.LanSuageD.有语法错28.以下正确的程序段是(分数:2.00)A.cgar str20; scanf(“%s“,&st;B.char *p; scanf(“%s“,;C.cha str20; scanf(“%s“,&str2)D.char str20,*p=str; scanf(“%s“,p2);29.以下定义语句中正确的是(分数:2.00)A.int a=b=0;B.char A=65+1,b=b;C.float a=1,*b=&a,*c=&b;D.double a=0.0;b=1.1

    13、;30.下面程序中有错误的行是(每行程序前面的数字表示行号) 1 main() 2 3 int a3=1; 4 int i; 5 scanf(“%d“,&a); 6 for(i-1;i3;i+)a0=a0+ai; 7 printf(“a0=%d/n ,“a0); 8 (分数:2.00)A.3B.6C.7D.531.有以下程序段 char ch; int k; ch=a; k=12; printf(“%c,%d,“,ch,ch,k); printf(“k=%d/n“,k); 已知字符 a的 ASCII码值为 97,则执行上述程序段后输出结果是(分数:2.00)A.因变量类型与格式描述符的类型不匹

    14、配,输出无定值B.输出项与格式描述符个数不符,输出为零值或不定值C.a,97,12k=12D.a,97,k=1232.以下叙述中错误的是(分数:2.00)A.gets函数用于从终端读入字符串B.getehar函数用于从磁盘文件读入字符C.fputs函数用于把字符串输出到文件D.fwrite函数用于以二进制形式输出数据到文件33.下面叙述正确的是(分数:2.00)A.算法的执行效率与数据的存储结构无关B.算法的空间复杂度是指算法程序中指令(或语句)的条数C.算法的有穷性是指算法必须能在执行有限个步骤之后终止D.以上三种描述都不对34.能正确表示逻辑关系:“a10 或 a0”的 C语言表达式是(分

    15、数:2.00)A.a=10 or a=0B.a=0|a=10C.a=10&a=0D.a=10a=035.阅读下面程序段,则执行后的结果为 #inclide“stdio.h“ main() int m=4,n=2,k; k=fun(m,n);printf(“%d/n“,k); fun(int m,int n) return(m*m*m-n*n*n);(分数:2.00)A.64B.8C.56D.036.有三个关系 R、S 和 T如下:(分数:2.00)A.B.RC.D.BE.CF.DG.aH.0I.k1J.bK.1L.n1M.N.O.SP.BQ.CR.DS.fT.3U.h2V.aW.0X.k1Y.

    16、nA.2AA.x1AB.AC.AD.TAE.BAF.CAG.DAH.aAI.0AJ.k137.以下程序运行后,输出结果是 #define PT 5.5 #define S(x) PT*x*x #includestdio.h main() int a=1,b=2; printf(“%4.1f/n“,s(a+b);(分数:2.00)A.49.5B.9.5C.22D.45.038.若有以下的说明,对初值中整数 2的正确引用方式是 static struct char ch; int i; double x; a23=a,1,3,45,b,2,7,98,c,31,93;(分数:2.00)A.a01.c

    17、hB.a01.iC.a00.iD.a02.i39.在下列关于二叉树的叙述中,正确的一项是(分数:2.00)A.在二叉树中,任何一个结点的度都是 2B.二叉树的度为 2C.在二叉树中至少有一个结点的度是 2D.一棵二叉树的度可以小于 240.以下程序的输出结果是 #includestdio.h infun(int n,int *s) int n,f2; if(n=0n=1) *s=1; else fun(n-1,&f1); fun(n-2,&f2); *s=f1+f2; void main() int x; fun(6,&x);pfintf(“/n%d“,x);(分数:2.00)A.7B.13C

    18、.9D.10二、B填空题/B(总题数:14,分数:30.00)41.数据结构分为线性结构和非线性结构,线性表、栈和队列都属于_。(分数:2.00)填空项 1:_42.按“先进后出”原则组织数据的数据结构是_。(分数:2.00)填空项 1:_43.软件危机出现于 60年代末,为了解决软件危机,人们提出了_的原理来设计软件,这就是软件工程诞生的基础。(分数:2.00)填空项 1:_44._(黑箱或白箱)测试方法完全不考虑程序的内部结构和内部特征。(分数:2.00)填空项 1:_45.数据库设计分为以下 6个设计阶段:需求分析阶段、_、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。(分数:2

    19、.00)填空项 1:_46.以下条件表达式可计算:1+|a|的值,请填空。 a=0?U 6 /U:U 7 /U(分数:4.00)填空项 1:_47.下面程序的运行结果是_。 #includestdio.h main() int y,a; y=2,a=1; while(y-!=-1) doa*=y;a+;while(y-); printf(“%d,%d“,a,y);(分数:2.00)填空项 1:_48.以下程序的功能是根据输入的“y”(“Y”)与“n”(“N”),在屏幕上分别显示出“This is YES.”与“This is NO.”。空白处需要填入的内容是 #includestdio.h v

    20、oid YesNo(char ch) switch(ch) casey: caseY:printf(“/n This is YES./n“); casen: caseN:Printf(“/nThis is NO./n“); main() char ch; printf(“/nEnter a chary,Yorn,N:“); ch=_; printf(“ch;%c“,ch); YesNo(ch);(分数:2.00)填空项 1:_49.定义 int a=5,b;,则执行表达式 b=+a*-a之后,变量 b的值为_。(分数:2.00)填空项 1:_50.以下程序的输出结果是_。 #include s

    21、tdio.h void swap(int *a, int *b) int *t; int i=3,j=5,*p=&i,*q=&j; swap(p,q); printf(“%d %d/n“,*p,*q);(分数:2.00)填空项 1:_51.下面的程序实现的是从指针 p所指向的地址的 n个数中,找出最大的和最小的数据,请填空。 fun(int *p,int n) int *q; int max,min; max=min=*p; for(q=p;_;q+) if(*qmax)max=*q; else if(*qmin)min=*q;(分数:2.00)填空项 1:_52.下面程序的输出结果是_。 m

    22、ain() static char a=“language“,b=“program“; char *ptrl=a,*ptr2=b; int k for(k=0;k7;k+) if(*(ptrl+k)=*(ptr2+k) printf(“%c“,*(ptr1+k);(分数:2.00)填空项 1:_53.已知 bead指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有连接点数据域的和值作为函数值返回。请在横线处填入正确内容。 int data; struct link *next; main() struct link *he

    23、ad; sam(_); stmct link *p;int s=0; p=head-next; while(p)s+=p-data;p=p-next; return(s);(分数:2.00)填空项 1:_54.以下程序的功能是从名为 filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。 majn() FILE *fp; char ch; fp=fopen(_); ch=fgetc(fp); whle(!feof(fp) putchar(ch); ch=f8etc(fp); putchar(/n); fclose(fp); (分数:2.00)填空项 1:_二级 C语言笔试-388

    24、答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:70.00)1.下列叙述中正确的是(分数:2.00)A.在面向对象的程序设计中,各个对象之间具有密切的联系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小 D.上述三种说法都不对解析:命题目的 本题考查了面向对象的基本概念。 解题要点 在面向对象程序设计中所使用的对象,其数据和操作是作为平等伙伴出现的。因此,对象具有很强的自含性,此外,对象所固有的封装性,使得对象的内部实现与外界隔离,具有较强的独立性。 考点链接 对象的定义。2.下列对于软件测试

    25、的描述中正确的是(分数:2.00)A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能多地发现程序中的错误 D.软件测试的目的是使程序符合结构化原则解析:命题目的 本题考查了软件测试的概念。 解题要点 软件测试是为了发现错误而执行程序的过程,且为了达到好的测试效果,应该由独立的第三方来构造测试,程序员应尽量避免检查自己的程序。 考点链接 黑箱测试和白箱测试。3.若有以下定义的语句 struct student int age; int num; struct student stu3=1001,20,1002,19,1003,21; main()

    26、 stmct student *p; p=stu; 则以下不正确的引用是(分数:2.00)A.(p+)-numB.p+C.(*.numD.P=&stag 解析:命题目的 考查对结构体成员的引用方法。 解题要点 结构体成员的引用可以用“结构体变量名,成员名”或者“结构体变量指针-成员名”两种方式来引用。 考点链接 结构体类型的变量、数组和指针变量的定义。4.主程序调用 findmax函数求出数组中最大元素在数组中的下标,括号中需填写的内容是 #includestdio.h findmax(int*s,int t,int*k) int p; for(p=0,*k=p;pt;p+)if(sps*k)

    27、( ); main() int a10,i,k; for(i=0;i10;i+)scanf(“%d“,&ai); findmax(a,10,&k); printf(“%d%d/n“ ,k,ak);(分数:2.00)A.k=pB.*k=p C.k=p-sD.*k=p-s解析:命题目的 考查通过指针来引用一维数组的方法。 解题要点 数组元素可以通过数组首地址和下标的方式来引用,数组元素的下标是从 0开始的,也可以将数组首地址赋给一个指针变量,通过指针和下标的方式来引用数组元素。 考点链接 通过数组的首地址引用数组元素。5.以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入

    28、的正确选项是 abs(int x) if(x=0)return x; else return-x; main() int y,z,(*p)(int x)=abs; scanf(“ %d“ ,&y); z=( *p)(y); ; (分数:2.00)A.printf(“%d%d/n“,&p,B.Printf(“%d%d/n“,p, C.printf(“%d%d/n“,*p,D.printf(“%d%d/n“,p,*解析:命题目的 考查函数指针的使用方法。 解题要点 可以使用函数指针来调用函数。调用形式为:(*指针变量)(实参表列)。 考点链接 调用函数和被调用函数之间的数据传递。6.设有定义 in

    29、t n=0,*p=&n,*q=&p;,则下列选项中正确的赋值语句是(分数:2.00)A.p=1;B.*q=2;C.q=p;D.*p=5; 解析:命题目的 指针变量的定义。 解题要点 选项 A),B),C)的指针赋值表达方式都不正确,*p=5表达整数 5放到指针 P所指向的存储单元中。 考点链接 通过指针引用一个存储单。7.定义如下变量和数组: int i; int x33=1,2,3,4,5,6,7,8,9; 则下面语句的输出结果是( )。 for(i=0; i3; i+) printf(“%d“,xi2-i);(分数:2.00)A.1 5 9B.1 4 7C.3 5 7 D.3 6 9解析:

    30、命题目的 考查二维数组元素的引用方法。 解题要点 题中通过二维数组的行、列下标来定位元素的位置,从而实现元素的引用。 考点链接 二维数组和数组元素的值。8.请阅读以下程序: #includestdio.h main() 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); 上面程序的输出结果是(分数:2.00)A.a=2,b=1 B.a=1,b=1C.a=1,b=0D.a=2,b=2解析:命题目的 考查 switch语句的

    31、使用。 解题要点 switch 语句的执行过程为:进入 switch结构舌,对条件表达式进行运算,然后从上至下去找与条件表达式直相匹配的 case,以此作为入口,执行switch结构中后面的各吾句,直到遇到 break语句,则跳出 switch语句,如果各 case都不匹配时,则执行 default后面的语句。 考点链接 if 语句及 if嵌套语句的使用。9.下面程序段的输出为 #nclude“stdio.h“ main() printf(“%d/n“,122);(分数:2.00)A.0B.47C.48 D.24解析:命题目的 考查位运算的运算原理。 解题要点 为左移运算符,运算符的左边是移位

    32、对象;右边是整型表达式,代表左移的位数,左移时,右端(低位)补 0;左端(高位)移出的部分舍弃。10.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和(分数:2.00)A.编码设计B.测试阶段C.运行阶段D.物理设计 解析:命题目的 本题考查了数据库设计概述。 解题要点 数据库设计目前一般采用生命周期法,即将整个数据库应用系统的开发分解成目标独立的若干阶段。它们是需求分析阶段、概念设计阶段、逻辑设计阶段和物理设计阶段。 考点链接 数据库设计的需求分析。11.在数据管理技术的发展过程中,可实现数据共享的是(分数:1.00)A.人工管理阶段B.文件系统阶段C.数据库系统阶段 D.系统管理阶段

    33、解析:命题目的 本题考查了考生对数据库基础知识的记忆。 解题要点 数据库技术的主要目的是有效地管理和存取数据资源,包括提供数据的共享性,使多个用户能够同时访问数据库中的数据;减少数据的冗余度,以提交数据的一致性和完整性;提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价。 错解分析 数据库的人工管理阶段和文件系统阶段,数据都不能实现共享,出现数据冗余现象。选项 D)的说法是错误的。 考点链接 掌握关系数据库的功能及特点。12.以下叙述正确的是(分数:1.00)A.continue语句的作用是结束整个循环的执行B.只能在循环体内和 swish语句体内使用 break语句 C.在循环体内

    34、使用 break语句或 continue语句的作用相同D.从多层循环嵌套中退出时,只能使用 goto语句解析:命题目的 考查 continue和 break语句的使用。 解题要点 continue 是结束本次循环,直接进入到下次循不中,break 用于循环语句中的作用是直接跳出本层循环,能从多层循环中退出的语句,除了 goto语句,exit,retum 等语句也能直接跳出多层循环。 考点链接 continue 和 break语句在while语句中的作用。13.结构化程序设计方法的 3种基本控制结构中不包括(分数:1.00)A.循环结构B.递归结构 C.顺序结构D.选择结构解析:命题目的 本题考

    35、查了程序的基本结构。 解题要点 程序由一些基本结构组成。任何一个大型的程序都由 3种基本结构组成,由这些基本结构顺序的构成了一个结构化的程序。这 3种基本结构为:顺序结构、选择结构和循环结构。 考点链接 条件语句和分支语句。14.在 C语言中,只有在使用时才占用内存单元的变量,其存储类型是(分数:1.00)A.auto和 register B.extern和 registerC.auto和 staticD.static和 register解析:命题目的 自动变易和寄存器变易。 解题要点 在 C语言中只有自动变量和寄存器变量在使用时才占用内存单元。15.设已执行预编译命令#includestri

    36、ng.h,以下程序段的输出结果是 char s=“ an apple“ ; printf(“%d/n“,strlen(s);(分数:1.00)A.7B.8 C.9D.10解析:命题目的 考查了测字符串长度函数 strlen。 解题要点 如果一个字符数组中存放一个字符串,则函数 strlen的值为“/0”之前的全部字符个数,也包括空格在内。 考点链接 字符串处理函数的使用。16.以下合法的十六进制数是(分数:1.00)A.0xB.0x4de C.0x1hD.oX77解析:命题目的 考查十六进制数的表示方法。 解题要点 十六进制数以 0x开头,后面跟着若干位1f 的数,所以正确答案为 B)。 考点

    37、链接 整形常量、实型常量和字符型常量的合法性判断。17.设变量 a、b、c、d 和 y都已正确定义并赋值。若有以下 if语句 if(ab) if(c=d)y=0; else y=1; 该语句所表示的含义是 (分数:1.00)A.B.C. D.解析:命题目的 考查 if语句的使用。 解题要点 整个语句都是以 ab 为假设的,在 ab 的情况下,如果 c=d,则 y=0;否则 y=1。所以答案为选项 C)。 考点链接 if 嵌套语句的使用。18.x,y,z 被定义为 int型变量,若从键盘给 x,y,z 输入数据,正确的输入语句是(分数:1.00)A.INPUTx、y、z;B.scanf(“%d%

    38、d%d“,&x,&y,&; C.scanf(“%d%d%d“,x,y,;D.read(“%d%d%d“,&x,&y,&;解析:命题目的 考查格式输入函数 scanf的使用。 解题要点 scanf 函数的一般格式是: scanf(格式控制,地址表列) 该格式中,地址表列中应是变量地址,而不是变量名。 考点链接 调用 putchar和 getchar函数输出和输入字符。19.下面程序的运行结果是 #includestdio.h void delch(char *s) int i,j; char *a; a=S; for(i=0,j=0;ai!=/0;i+) if(ai=0 &aai=9) sj=a

    39、i; j+; sj=/0; main() char *item=“a34bC“; delch(item); printf(“/n%s|,item);(分数:1.00)A.abcB.34 C.a34D.a34bc解析:命题目的 考查用指针引用字符串元素的方法。 解题要点 指针 s通过数组元素下标来从头逐个地引用字符串 item中的字符,判断不是 09 之间的数字时,就去掉这个字符,所以程序结束后,字符串 item中就只剩下和两个字符了。 考点链接 形参为指针变量时,实参和形参之间的数据传递。20.以下选项中不合法的标识符是(分数:1.00)A.ptintB.FORC.&a D._00解析:命题目

    40、的 考查 C语言标识符。 解题要点 C 语言合法标识符的命名规则是:标识符只能由字母、数字和下划线组成,并且第一个字符必须为字母或下划线。因为选项 C)中的标识符的第一个字符为“&“,所以 C)为本题的正确答案。21.如果需要打开一个已经存在的非空文件“Demo”进行修改,下面选项中正确的是(分数:2.00)A.fp=fopen(“Demo“,“r“);B.fp=fopen(“Demo“,“ab+“);C.fp=fopen(“Demo“,“w+“);D.fp=fopen(“Demo“,“r+“); 解析:命题目的 考查文件的打开方式。 解题要点 此题考查文件打开方式对文件操作的影响。由于打开文

    41、件进行修改,可见选项 A)是错误的,因为此种方式打开时,只能读,不能写,当然无法修改;选项 B)是以追加方式“ab+”打开文件读写,以这种方式打开时,新写入的数据只能追加在文件原有内容之后,但可以对以前的数据读出。换言之,“ab+”或“a+”方式打文件后,对于写操作,文件指针只能定位在文件的原有内容之后,但对于读操作,文件指针可以定位在全文件范围内,可见,按此种方式打开文件不能实现文件内容的修改;选项 C)以“w+”方式打开文件,此时,原文件中已存在的内容都被清除,但新写入文件的数据可以被再次读出或再次写入,故也不能实现对文件的修改。只有以“r+”方式汀开文件时,才允许将文件原来数据读出,也允

    42、许在某些位置上再写入,从而实现对文件的修改。22.执行下面的程序后,a 的值为 main() int a,b; for(a=1,b=1;a=10;a+) if(b%3=1) b+=3; continue; b-=5;(分数:2.00)A.7B.8C.9D.10 解析:命题目的 考查 continue语句的使用。 解题要点 continue 语句的作用是结束本次循环,直接进入下次循环。23.下列数据结构中,按先进后出原则组织数据的是(分数:2.00)A.线性链表B.栈 C.循环链表D.顺序表解析:命题目的 本题主要考查对于栈的理解。 解题要点 栈是限定在一端进行插入与删除的线性表。在栈中,允许插

    43、入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素,即栈是按照“先进后出”或“后进先出”的原则组织数据的。 错解分析 队列组织数据的原则是“先进先出”或“后进后出”。 考点链接 数据结构中,栈和队列组织数据的原则。24.以下叙述中正确的是(分数:2.00)A.C程序中的注释只能出现在程序的开始位置和语句的后面B.C程序书写格式严格,要求一行内只能写一个语句C.C程序书写格式自由,一个语句可以写在多行上 D.用 C语言编写的程序只能放在一个程序文件中解析:命题目的 考查

    44、C语言的几个基本概念。 解题要点 选项 A)中,C 语言的注释可以出现在程序的任何位置;C 语言的语法限制不严格,可以多条语句放在同一行上,也可以将一条语句写在多行,故选项 B)错误,选项 C)正确;选项 D)是错误的,因为用 C语言编写的程序可以放在不同的文件中,文件之间使用预处理命令进行调用。 考点链接 掌握算法的相关特性。25.下述程序的输出结果是 #includestdio.h void main() int a5=2,4,6,8,10; int*p=a,*q=&p; printf(“%d,“,*(p+); pfintf(“%d“,*q);(分数:2.00)A.4,4B.2,2C.4,

    45、5D.2,4 解析:命题目的 考查一维数组的指针和指向指针的指针两个知识点。 解题要点 通过赋值,指针 p和 q都指向了数组 a的首地址,*(p+)先引用数组元素,然后 p+,所以输出结果为 2,*q 指向的数组元素为 4。 考点链接 通过建立一个指针数组来引用二维数组元素。26.软件工程的出现是由于(分数:2.00)A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现 D.计算机的发展解析:命题目的 软件工程的基本概念。 解题要点 软件工程概念的出现源自于软件危机。为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径,逐步形成了软件工程的

    46、概念。 考点链接 软件生命周期。27.下面程序的运行结果是 #includestdio.h main() static char a=“Languagef“ ,b=“programe“; char *p1,*p2; int k; p1=a;p2=b; for(k=0;k=7;k+) if(*(p1+k)=*(p2+k) printf(“%c“,*(p1+k);(分数:2.00)A.gae B.gaC.LanSuageD.有语法错解析:命题目的 考查用指针来引用字符数组元素的方法。 解题要点 指针 p1+k相当于指针 p1向后移动了 k个字符的位置,指针 p2同理。28.以下正确的程序段是(分数:2.00)A.cgar str20; scanf(“%s“,&st;B.char *p; scanf(“%s“,;C.cha str20; scanf(“%s“,&str2) D.char str20,*p=str; scanf(“%s“,p2);解析:命题


    注意事项

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




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

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

    收起
    展开