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

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

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

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

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

    1、二级 C语言笔试-180 及答案解析(总分:83.99,做题时间:90 分钟)一、选择题(总题数:48,分数:52.00)1.以下定义语句中正确的是_。(分数:1.00)A.char a=Ab=B;B.flo at a=b=10.0;C.int a=10,*b=D.float *a,b=2.有以下程序main()int a=7,b=8,*p,*q,*r;p= q=r=p; p=q; q=r;printf(“%d,%d,%d,%d/n“,*p,*q,a,b);程序运行后的输出结果是_。(分数:1.00)A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,73.若变量已正确定义,

    2、要求程序段完成 5!的计算,不能完成此操作的程序段是_。(分数:1.00)A.for(i=1,p=1;i=5;i+) p*=i;B.for(i=1;i=5;i+) p=1; p*=i;C.i=1;p=1;while(i=5)p*=i;i+;)D.i=1;p=1;dop*=i;i+;)while(i=5);以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请从与下画线处号码对应的一组选项中选择正确的选项。#include stdio.hstruct nodechar data; struct node *next; ;(48) CreatList(

    3、char *s)struct node *h, *p, *q;h=(struct node *)malloc(sizeof(struct node);p=q=h;while (*s!=/0 )p=(struct node *)malloc(sizeof(struct node);p-data= (49) ;q-next=p;q= (50) ;s+;p-next=/0;return h ;main()char str=“link list“;struet node *head ;head=CreatList(str) ;(分数:0.99)A.char *B.stmct nodeC.struct

    4、node*D.charA.*sB.sC.*s+D.*(s)+A.p-nextB.pC.sD.s-next4.有以下程序int f(int(分数:1.00)A.5.以下能正确定义二维数组的是_。(分数:1.00)_6.程序中对 fun函数有如下说明void *fun();此说明的含义是_。(分数:1.00)A.fun函数无返回值B.fun函数的返回值可以是任意的数据类型C.fun函数的返回值是无值型的指针类型D.指针 fun指向一个函数,该函数无返回值7.设有以下定义和语句int a32=(1,2,3,4,5),*p3;P0=a1;则*(p0+1)所代表的数组元素是_。(分数:1.00)A.a0

    5、1B.a10C.a11D.a128.对存储器按字节进行编址,若某存储器芯片共有 10根地址线,则该存储器芯片的存储容量为_。(分数:1.00)A.1KBB.2KBC.4KBD.8KB9.下列选项中,不能用做标识符的是_。(分数:1.00)A._1234_B._1_2C.int_2_D.2_int_10.DOS文件系统的组织结构属于_。(分数:1.00)A.星形结构B.网形结构C.环形结构D.树形结构11.有以下程序main()unsigned int a;int b=-1;a=b ;printf(“%u“,(分数:1.00)A.;p=c;能够正确引用 c数组元素的是_。(分数:1.00)A.p

    6、+1B.*(p+1)C.*(p+1)+3D.*(p0+2)13.有以下定义语句double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是_。(分数:1.00)A.a=a+b=b+B.w%(int)a+b)C.(c+w)%(int)aD.w=a=b;14.有以下程序void fun(int *a, int i, int j)int t;if(ij)t=ai; ai=aj; aj=t;i+ ; j- ;fun(a,i,j);main()int x=2,6,1,8,i;fun(x,0,3);for(i=0;i4; i+)printf(“%2d“,xi);程序运

    7、行后的输出结果是_。(分数:1.00)_15.用 C语言编写的代码_。(分数:1.00)A.可立即执行B.是一个源程序C.经过编译即可执行D.经过编译解释才能执行16.设有定义语句int x6=2,4,6,8.5,7),*p=x,i;要求依次输出 x数组 6个元素中的值,不能完成此操作的语句是_。(分数:1.00)A.for(i=0;i6;i+) printf(“%2d“,*(p+);B.for(i=0;i6;i+) prinff(“%2d“,*(p+i);C.for(i=0;i6;i+) printf(“%2d“,*p+);D.for(i=0;i6;i+) printf(“%2d“,(*p)

    8、+);17.有以下程序main()int a=3,b=4,c=5,d=2;if(ab)if(bc)printf(“%d“, d+ + 1 );elseprintf(“%d“, +d + 1);printf(“%d/n“, d);程序运行后的输出结果是_。(分数:1.00)A.2B.3C.43D.4418.在函数调用的过程中,如果函数 funA调用了函数 funB,函数 funB又调用了函数 funA,则_。(分数:1.00)A.称为函数的直接递归调用B.称为函数的间接递归调用C.称为函数的循环调用D.C语言中不允许这样的递归调用19.在 Windows环境下,若资源管理器左窗口中的某文件夹左边

    9、标有“+”标记,则表示_。(分数:1.00)A.该文件夹为空B.该文件夹中含有子文件夹C.该文件夹中只包含有可执行文件D.该文件夹中包含系统文件20.有以下程序main()int i=0,s=0;for(;)if(i=3 | i=5)continue;if(i=6)break;i+;s+=i;printf(“%d/n“,s);程序运行后的输出结果是_。(分数:1.00)A.10B.13C.21D.程序进入死循环21.有以下程序main()char s=“ABCD“,*p;for (p=s+1; ps+4 ; p+ ) printf(“%s/n“,p) ;程序运行后的输出结果是_。(分数:1.0

    10、0)A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD22.与十进制数 200等值的十六进制数为_。(分数:1.00)A.A8B.A4C.C8D.C423.有以下程序main()int m=3 , n=4 , x ;x=-m+;x=x+8/+n ;printf(“%d/n“,x);程序运行后的输出结果是_。(分数:1.00)A.3B.5C.-1D.-224.有以下程序#include stdio.hmain()FILE *fp1;fp1=fopen(“f1.txt“,“W“);fprintf(fp1, “abc“);fclose(fp1);若文本文件 f1.txt中原有内容为:go

    11、od,则运行以上程序后,文件 f1.txt中的内容为_。(分数:1.00)A.goodabcB.abcdC.abcD.abcgood25.有以下程序main()int x=1,3,5,7,2,4,6,0,i,j,k;for(i=0; i3 ; i+)for(j=2; j=i ; j-)if(xj+1xj) k=xj; xj=xj+1; xj+1=k; for(i=0; i3; i+)for(j=4; j7-i; j+)if(xjxj+1)k=xj; xj=xj+1; xj+1=k; for(i=0; i8; i+)printf(“%d“,xi);printf(“/n“);程序运行后的输出结果是

    12、_。(分数:1.00)_26.有以下程序main()int m=0256,n=256 ;printf(“%o %o/n“, m,n);程序运行后的输出结果是_。(分数:1.00)A.0256 0400B.0256 256C.256 400D.400 40027.有以下程序#include stdio.hmain()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);程序运行后的输出结果是_。(分数:1.00)A.运行后报错B.6 6C.6 11D.5 1028.s1和 s2已

    13、正确定义并分别指向两个字符串。若要求:当 s1所指串大于 s2所指串时,执行语句 S;则以下选项中正确的是_。(分数:1.00)A.if(s1s2)S;B.if(strcmp(s1,s2)S;C.if(strcmp(s2,s1)0)S;D.if(strcmp(s1,s2)0)S;29.在 Windows环境下,单击当前窗口中的按钮 (分数:1.00)A.B.C.D.30.有以下程序main()char a,b,c,d;scanf(“%c,%c,%d,%d“, printf(“*c,%c,%c,%c/n“, a,b,c,d) ;若运行时从键盘上输入:6,5,65,66回车。则输出结果是_。(分数

    14、:1.00)A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,631.在 DOS环境下,代表键盘和显示器的设备文件名为_。(分数:1.00)A.PRNB.CONC.NULD.LPT32.从 Windows环境进入 MS-DOS方式后,返回 Windows环境的 DOS命令为_。(分数:1.00)A.EXITB.QUITC.RETD.MSDOS33.在 Windows菜单中,暗淡的命令名项目表示该命令_。(分数:1.00)A.暂时不能用B.正在执行C.包含下一层菜单D.包含对话框34.磁盘处于写保护状态时,其中的数据_。(分数:1.00)A.不能读出,不能删改B.可以读出

    15、,不能删改C.不能读出,可以删改D.可以读出,可以删改35.有以下程序main()int i;for(i=0;i3;i+)switch(i)case 0:printf(“%d“,i);case 2:printf(“%d“,i);default:printf(“%d“,i);程序运行后的输出结果是_。(分数:1.00)A.022111B.021021C.000122D.01236.有以下程序main()Cham a=a , b ;printf(“%c,“,+(分数:1.00)A.;pr37.设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是_。(分数:1.00)A.c1c

    16、2B.c1 elseprintf(“%d/n“,y);B.if(a=0)printf(“%d/n“,y); else printf(“%d/n“,x);C.if(a!=0)printf(“%d/n“,x); else printf(“%d/n“,y);D.if(a=0)printf(“%d/n“,x); else printf(“%d/n“,y);39.有以下程序main()char str10=(“China“,“Beijing“),*p=str;printf(“%s/n“,p+10);程序运行后的输出结果是_。(分数:1.00)A.ChinaB.BeijingC.ngD.ing40.已有定

    17、义:int i,a10,*p;,则合法的赋值语句是_。(分数:1.00)A.p=100;B.p=a5;C.p=a2+2;D.p=a+2;41.有以下程序main()int a=666 , b=888 ;printf(“%d/n“,a,b);程序运行后的输出结果是_。(分数:1.00)A.错误信息B.666C.888D.666,88842.以下叙述中正确的是_。(分数:1.00)A.局部变量说明为 static存储类,其生存期将得到延长B.全局变量说明为 static存储类,其作用域将被扩大C.任何存储类的变量在未赋初值时,其值都是不确定的D.形参可以使用的存储类说明符与局部变量完全相同43.若

    18、 x和 y代表整型数,以下表达式中不能正确表示数学关系|x-y|10 的是_。(分数:2.00)A.abs(x-y)10B.x-y-10 char num8;);struct student stu3=20, “200401“,21,“200402“,19,“200403“;struct student *p=stu;以下选项中引用结构体变量成员的表达式错误的是_。(分数:2.00)A.(p+)-numB.p-numC.(*p).numD.stu3.age46.结构化程序由三种基本结构组成,三种基本结构组成的算法_。(分数:1.00)A.可以完成任何复杂的任务B.只能完成部分复杂的任务C.只能

    19、完成符合结构化的任务D.只能完成一些简单的任务47.有以下程序main()char s=“Yes/n/No“,*ps=s ;puts(ps+4);*(ps+4)=0;puts(s);程序运行后的输出结果是(选项 D中的第一行是空行)_。(分数:3.00)A.n/NoYes/NoB./NOYesC.n/NoYes/NoD./NoYes二、填空题(总题数:16,分数:32.00)48.一棵二又树的中序遍历结果为 DBEAFC,前序遍历结果为 ABDECF,则后序遍历结果为_。(分数:2.00)填空项 1:_49.在 E-R图中,图形包括矩形框、菱形框、椭圆框,其中表示实体联系的是 1 框。(分数:

    20、2.00)填空项 1:_50.软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段,其中编码和测试属于_阶段。(分数:2.00)填空项 1:_51.对长度为 10的线性表进行冒泡排序,最坏情况下需要比较的次数为 1。(分数:2.00)填空项 1:_52.深度为 5的满二叉树有 1 个叶子结点。(分数:2.00)填空项 1:_53.以下程序段的输出结果是_。int i=9;printf(“%0/n“,i);(分数:2.00)填空项 1:_54.以下程序运行后的输出结果是_。main()int a,b,c;a=25;b=025;c=0x25;printf(“%d %d %d/n“, a

    21、, b, c);(分数:2.00)填空项 1:_55.以下程序运行后的输出结果是_。main()int p7=(11,13,14,15,16,17,18);int i=0,j=0;while(i7printf(“%d/n“,j);(分数:2.00)填空项 1:_56.以下程序运行后的输出结果是_。main()int x=1,y=0,a=0,b=0;switch(x)case 1: switch(y)case 0: a+; break;case 1: b+; break;case 2: a+; b+; break;printf(“%d %d/n“, a, b);(分数:2.00)填空项 1:_5

    22、7.以下程序运行后的输出结果是_。main()int a44=1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18;int i=0,j=0,s=0,while(i+4)if(i=2 | i=4) continue ;J=0;do(s+=aij; j+; )while (j4);printf(“%d/n“,s);(分数:2.00)填空项 1:_58.以下程序运行后的输出结果是_。main()char a=“Language“,b=“Programe“;char *p1,*p2;int k;p1=a; p2=b;for(k=0; k=7; k+)if (*(p1+k)=

    23、=*(p2+k) ) printf(“%c“ , *(p1+k) );(分数:2.00)填空项 1:_59.以下程序运行后的输出结果是_。main()char a=“123456789“,*p;int i=0;p=a;while (*p)if(i%2=0) *p=*;p+;i+;puts(a);(分数:2.00)填空项 1:_60.以下程序中,for 循环体执行的次数是_。#defihe N 2#define M N+1#define K M+1*M/2main()int i;for (i=1 ; iK ; i+ )(分数:2.00)填空项 1:_61.以下程序通过函数 (分数:2.00)填空

    24、项 1:_62.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。main()int i ,a20, sum, count ;sum=count=0;for(i=0; i20; i+) scanf(“%d“, (16) );for(i=0; i20; i+)if(ai0)count+;sum+= (17) ;printf(“sum=%d,count=%d/n“,sum,count);(分数:2.00)填空项 1:_63.以下程序中,函数 SumColumMin的功能是:求出 M行 N列二维数组每列元素中的最小值,并计算它们的和,其值通过形参传回主函数输出。请填空。#d

    25、efine M 2#define N 4void SumColumMin(int aMN, int *sum)int i,j,k,s=0;for(i=0;iN;i+)k=0;for(j=1; jM; j+)if(akiaji) k=j;s+= (18) ;(19) =s;main()int xMN=3,2,5,1,4,1,8,3,s;SumColumMin( (20) );printf(“%d/n“,s);(分数:2.00)填空项 1:_二级 C语言笔试-180 答案解析(总分:83.99,做题时间:90 分钟)一、选择题(总题数:48,分数:52.00)1.以下定义语句中正确的是_。(分数:

    26、1.00)A.char a=Ab=B;B.flo at a=b=10.0;C.int a=10,*b= D.float *a,b=解析:解析 在 A选项中,定义了两个 char型的变量,但是在这两个变量之间应该加上逗号;在 B选项中,没有对 b进行定义,只是对 b进行了赋值,因此是错误的;在 D选项中,把一个指针赋值给了一个float型的变量,因此是错误的。2.有以下程序main()int a=7,b=8,*p,*q,*r;p= q=r=p; p=q; q=r;printf(“%d,%d,%d,%d/n“,*p,*q,a,b);程序运行后的输出结果是_。(分数:1.00)A.8,7,8,7B.

    27、7,8,7,8C.8,7,7,8 D.7,8,8,7解析:解析 r=p;p=q;q=r;这三句话的意思就是把指针 p和 q的位置互换,因此,p 和 q所指向的值也进行了互换。最后 p指针应该指向了 b的地址,而 q指针指向了 a的地址,所以最后的输出是8,7,7,8。3.若变量已正确定义,要求程序段完成 5!的计算,不能完成此操作的程序段是_。(分数:1.00)A.for(i=1,p=1;i=5;i+) p*=i;B.for(i=1;i=5;i+) p=1; p*=i; C.i=1;p=1;while(i=5)p*=i;i+;)D.i=1;p=1;dop*=i;i+;)while(i=5);解

    28、析:解析 在这道题目中应该注意到 B选项中,每次进入循环时,都对 p的值赋值,即每次执行完成之后,p 的值仍然是 i的值,没有进行累乘。因此,B 选项最终的执行结果是 5,而不是 5的阶乘。以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请从与下画线处号码对应的一组选项中选择正确的选项。#include stdio.hstruct nodechar data; struct node *next; ;(48) CreatList(char *s)struct node *h, *p, *q;h=(struct node *)malloc(siz

    29、eof(struct node);p=q=h;while (*s!=/0 )p=(struct node *)malloc(sizeof(struct node);p-data= (49) ;q-next=p;q= (50) ;s+;p-next=/0;return h ;main()char str=“link list“;struet node *head ;head=CreatList(str) ;(分数:0.99)A.char *B.stmct nodeC.struct node* D.char解析:解析 很显然在此处需要填入的是函数的返回类型,因此我们看函数最后的 return语句,

    30、该语句为 return h,而在函数中,我们再找到 h的定义,发现 h被定义为 struct node*的形式,因此,该函数的返回类型是 node型的结构体变量,因此为 struct node*。A.*s B.sC.*s+D.*(s)+解析:解析 根据题目中的说明,建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,因此,在该处应该把 s数组的内容传给指针 p所指的 data,填入的应该是*s,而不是 s,因为此处是要取出 s数组的值。A.p-nextB.p C.sD.s-next解析:解析 因为该程序是要建立一个单向链表,我们在进行了一次值的插入之后,应该进入下一

    31、个值的插入,所以在此时,应该指向下一个要插入的地方。4.有以下程序int f(int(分数:1.00)A.解析:解析 在 for语句内部的第二个表达式中,应该是一个 boolean型的变量,因此,在这个地方,f(si)则只是一个 boolean型的变量,为 1的时候,for 循环成立,为 0的时候不成立,因此最终的执行结果是 d=s0+s1+s2=1+3+5=9。最终结果是 9。5.以下能正确定义二维数组的是_。(分数:1.00)_解析:解析 本题中,A、B、C 选项犯了同样的错误,没有对数组 a的第一个下标进行初始化,不能正确地申请空间,因此是错误的,而在 D选项中,数组的存放形式是:1,0

    32、,0),2,0,06.程序中对 fun函数有如下说明void *fun();此说明的含义是_。(分数:1.00)A.fun函数无返回值B.fun函数的返回值可以是任意的数据类型 C.fun函数的返回值是无值型的指针类型D.指针 fun指向一个函数,该函数无返回值解析:解析 在这道题中,我们很容易被 fun函数前面的 void所蒙蔽,认为 fun函数的返回值为空。首先我们需要知道的是:在这道题中,函数返回的应该是一个指针,只不过这个指针是指向空的指针,而不是直接认为该函数返回空。7.设有以下定义和语句int a32=(1,2,3,4,5),*p3;P0=a1;则*(p0+1)所代表的数组元素是_

    33、。(分数:1.00)A.a01B.a10C.a11 D.a12解析:解析 指针 p0指向了数组 a的第二行,即 a1,此时指针地址加 1,即指向了 a数组第二行的第二个元素,因此,所代表的元素就是 a11。8.对存储器按字节进行编址,若某存储器芯片共有 10根地址线,则该存储器芯片的存储容量为_。(分数:1.00)A.1KB B.2KBC.4KBD.8KB解析:解析 一共存在 10根地址线,每根地址线可以代表 0或者 1,即其存储空间的容量就是210=1024B=1KB。9.下列选项中,不能用做标识符的是_。(分数:1.00)A._1234_B._1_2C.int_2_D.2_int_ 解析:

    34、解析 合法标识符的命名规则是:标识符可以由字母、数字、下画线三种字符组成,并且第一个字符必须为字母或者是下画线,同时,标识符不可以与任意一个关键字同名。在选项 D中,以数字 2开头,不符合标识符的命名规则。10.DOS文件系统的组织结构属于_。(分数:1.00)A.星形结构B.网形结构C.环形结构D.树形结构 解析:解析 在 DOS文件系统中,我们打开了一个文件夹,可以看到一个或者若干个子文件夹和文件,在这些子文件夹中,我们同样可以看到若干文件或者文件夹,这给人一种形象的树形结构的概念。首先存在有一个根文件夹,然后通过这个根文件夹可以找到文件的目标位置。11.有以下程序main()unsign

    35、ed int a;int b=-1;a=b ;printf(“%u“,(分数:1.00)A.;p=c;能够正确引用 c数组元素的是_。(分数:1.00)A.p+1B.*(p+1)C.*(p+1)+3D.*(p0+2) 解析:解析 p 是一个指针,所以 A选项错误;同时 p又是一个数组的指针,所以 B选项没有指明 p的空间,错误;C 选项与 B选项的错误相同。13.有以下定义语句double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是_。(分数:1.00)A.a=a+b=b+B.w%(int)a+b)C.(c+w)%(int)a D.w=a=b;解析:解

    36、析 在 A选项中,先执行的是 a+b=b+,而在赋值语句的左侧必须是一个变量,不能是表达式;在 B选项中,(int)a+b 仍然是一个 float型的变量,float 型的变量不能用做%运算;D 选项中,由于优先级的问题,我们先执行的是 a=b,这个结果返回的是 boolean型的,不能直接赋值给 int型的变量 w。14.有以下程序void fun(int *a, int i, int j)int t;if(ij)t=ai; ai=aj; aj=t;i+ ; j- ;fun(a,i,j);main()int x=2,6,1,8,i;fun(x,0,3);for(i=0;i4; i+)prin

    37、tf(“%2d“,xi);程序运行后的输出结果是_。(分数:1.00)_解析:解析 本题中,fun 函数是实现了数组内部两个元素位置的交换。首先,在主函数中,调用到 fun函数的时候进行 if条件的判断,此时 i=0,j=3,满足条件,因此,数组中第一个元素和第四个元素进行交换;在 fun函数中还有一个递归调用,此时 i=1,i=2,仍然满足条件,再进行一次交换,此时第二个元素和第三个元素进行交换;最后 i=2,j=1,不满足条件,因此递归结束。最后数组 x中存放的数据为8,1,6,215.用 C语言编写的代码_。(分数:1.00)A.可立即执行B.是一个源程序 C.经过编译即可执行D.经过编

    38、译解释才能执行解析:解析 在 C语言中,源文件的后缀名是“.C”(即是由 C语言编写的代码),经过编译后生成目标文件“.obj”,最后通过与各种库函数连接生成了可执行文件“.exe”。16.设有定义语句int x6=2,4,6,8.5,7),*p=x,i;要求依次输出 x数组 6个元素中的值,不能完成此操作的语句是_。(分数:1.00)A.for(i=0;i6;i+) printf(“%2d“,*(p+);B.for(i=0;i6;i+) prinff(“%2d“,*(p+i);C.for(i=0;i6;i+) printf(“%2d“,*p+);D.for(i=0;i6;i+) printf

    39、(“%2d“,(*p)+); 解析:解析 选项 A、B、C 显然都能够正确输出数组 x中的元素,但是在 D选项中,该程序一共输出了六次数组 x中的第一个元素自加 1的值,因此是错误的。17.有以下程序main()int a=3,b=4,c=5,d=2;if(ab)if(bc)printf(“%d“, d+ + 1 );elseprintf(“%d“, +d + 1);printf(“%d/n“, d);程序运行后的输出结果是_。(分数:1.00)A.2 B.3C.43D.44解析:解析 本题考查了 if.else语句的嵌套问题。很显然,else 应该与第二个 if语句进行组合。在这道题中,第一

    40、个 if语句的条件不能成立,因此,就直接执行最后一个 printf语句。最终的执行结果是输出原来的 d值。18.在函数调用的过程中,如果函数 funA调用了函数 funB,函数 funB又调用了函数 funA,则_。(分数:1.00)A.称为函数的直接递归调用B.称为函数的间接递归调用 C.称为函数的循环调用D.C语言中不允许这样的递归调用解析:解析 递归调用就是一种特殊的嵌套调用,是某个函数调用自己,或者是某些函数之间目互调用。如果一个函数在其内部调用自己,我们称这样的调用为直接调用;若两个函数之间相互调用,则成为间接调用。题目中 funA和 funB函数之间互相调用,因此称为间接递归调用。

    41、19.在 Windows环境下,若资源管理器左窗口中的某文件夹左边标有“+”标记,则表示_。(分数:1.00)A.该文件夹为空B.该文件夹中含有子文件夹 C.该文件夹中只包含有可执行文件D.该文件夹中包含系统文件解析:解析 在资源管理器左窗口中,若某个文件夹的左边有“+”字符,则代表了该文件夹中包含有子文件夹,并且没有显示出来,我们在此时单击一下,那么“+”会变成“-”,此时可以显示该文件夹下面的子文件夹。20.有以下程序main()int i=0,s=0;for(;)if(i=3 | i=5)continue;if(i=6)break;i+;s+=i;printf(“%d/n“,s);程序运

    42、行后的输出结果是_。(分数:1.00)A.10B.13C.21D.程序进入死循环 解析:解析 本题考查了 break和 continue的语法。break 是退出循环语句往下执行,而 continue是退出此次循环,进行下次循环。在题目中,i 的值初始化为 0,因此在第一个 if的判断处是不满足的,所以执行第二个 if语句,同样也是不满足的,直到 i的值变成了 3,满足第一个 if的判断,此时退出当前循环,执行下次循环,因此,i 的值并没有改变,仍然是 3,从而进入死循环。21.有以下程序main()char s=“ABCD“,*p;for (p=s+1; ps+4 ; p+ ) printf

    43、(“%s/n“,p) ;程序运行后的输出结果是_。(分数:1.00)A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD 解析:解析 在 for循环语句内部,p=s+1,此时 p指针的内容就是 s数组的后面三个字母,即“BCD”;而后 p指针又进行了自加 1操作,此时 p的内容是 s数组的后两个字母,即“CD”:同理第三次运行的时候,p 的内容就变成了“D”。因此,最后的输出形式应该选择 D。22.与十进制数 200等值的十六进制数为_。(分数:1.00)A.A8B.A4C.C8 D.C4解析:解析 十进制数 200转换成二进制数,其结果为 1100 1000,1100 1000 对

    44、应了十六进制数 C8。因此答案选 C。23.有以下程序main()int m=3 , n=4 , x ;x=-m+;x=x+8/+n ;printf(“%d/n“,x);程序运行后的输出结果是_。(分数:1.00)A.3B.5C.-1D.-2 解析:解析 在 C语言中,+有前缀和后缀两种形式,它们的区别在于其表达式的值不同,前缀形式表达式的值为增加 1后的值,而后缀表达式为增加 1之前的值。本题中,首先执行 x=-m+,此时 x的值变成了-3,接着再执行 x=x+8/+n,此时就变成了 x=-3+8/5=-2。24.有以下程序#include stdio.hmain()FILE *fp1;fp1=fopen(“f1.txt“,“W“);fprintf(fp1, “abc“);fclose(fp1);若文本文件 f1.txt中原有内容为:good,则运行以上程序后,文件 f1.txt中的内容为_。(分数:1.00)A.goodabcB.abcdC.abc D.abcgood解析:解析 fprintf 函数的作用是传送格式化输入到一个文件中,在写文件之前先把原文件进行格式化操作,即把原来文件的内容清空。因此在最终 f1.txt中的内容只有 abc了。25.有


    注意事项

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




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

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

    收起
    展开