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

上传人:arrownail386 文档编号:1326139 上传时间:2019-10-17 格式:DOC 页数:31 大小:93KB
下载 相关 举报
【计算机类职业资格】二级C语言笔试-336及答案解析.doc_第1页
第1页 / 共31页
【计算机类职业资格】二级C语言笔试-336及答案解析.doc_第2页
第2页 / 共31页
【计算机类职业资格】二级C语言笔试-336及答案解析.doc_第3页
第3页 / 共31页
【计算机类职业资格】二级C语言笔试-336及答案解析.doc_第4页
第4页 / 共31页
【计算机类职业资格】二级C语言笔试-336及答案解析.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、二级 C语言笔试-336 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.X、Y、2 被定义为 int型变量,若从键盘给 X、Y、Z 输入数据,正确的输入语句是_。(分数:2.00)A.INPUT X,Y,Z;B.scanf(“%d%d%d“,C.scanf(“%d%d%d“,X,Y,Z);D.read(“%d%d%d“,2.以下程序的输出结果是_。main()int i,a10;for(i=9;i=0;i-) ai=10-i;printf(“%d%d%d“,a2,a5,a8);(分数:2.00)A.258B.741C.852D.3693.

2、设 x为 int型变量,执行以下语句,x=10;x+=x-=x-x;x 的值为_。(分数:2.00)A.10B.20C.30D.404.以下选项中,不能确定赋值的是_。(分数:2.00)A.char s110;s1=“chest“;B.char s2=C,t,e,s,t;C.char s320=“Chest“;D.char *s4=“Ctest/n“5.以下数组定义中不正确的是_。(分数:2.00)A.int a23;B.int b3=0,1,2;C.int c100100=0;D.int d3=1,2,1,2,3,1,2,3,4;6.以下程序的输出结果是_。#define M(x,y,z)

3、x*y+zmain()int a=1,b=2,c=3;printf(“%d/n“,M(a+b,b+c,c+(分数:2.00)A.);b=c;c=a;D./*this is a program*/8.下面的程序执行后,文件 test.t中内容是_。#includestdio.hvoid fun(char *fname,char *st)FILE *myf; int i;myf=fopen(fname,“w“);for(i=0;istrlen(st);i+)fputc(sti,myf);fclose(myf);main()fun(“test.t“,“new world“);fun(“test.t“

4、,“hello,“);(分数:2.00)A.hello,B.new worldhelloC.new worldD.hello,rld9.以下程序的输出结果是_。main()int a44=1,3,5,2,4,6,3,5,7;printf(“%d%d%d%d/n“,a03,a12,a21;a30);(分数:2.00)A.0650B.1470C.5430D.输出值不定10.下面程序的输出结果是_。#define a 121const b=12;enum ca1,a2;main()printf(“%d,%d,%d“,sizeof((分数:2.00)A.,sizeof(B.,sizeof(enumC.

5、);A) 121,0,4B11.以下程序的输出结果是_。#includestdio.hmain()int a=200;#define a 100printf(“%dd“,(分数:1.00)A.;#B.200 20012.以下程序输出正确的是_。amovep(int *p,int(*(分数:1.00)A.3,int n)13.视图设计一般有 3种设计次序,下列不属于视图设计的是_。(分数:1.00)A.自顶向下B.由外向内C.由内向外D.自底向上14.在下列几种排序方法中,要求内存量最大的是_。(分数:1.00)A.插入排序B.选择排序C.快速排序D.归并排序15.下列叙述中正确的是_。(分数:

6、1.00)A.C程序中注释部分可以出现在程序中任何合适的地方B.花括号“和“只能作为函数体的定界符C.构成 C程序的基本单位是函数,所有函数名都可以由用户命名D.分号是 C语句之间的分隔符,不是语句的部分16.SQL语言又称为_。(分数:1.00)A.结构化定义语言B.结构化控制语言C.结构化查询语言D.结构化操纵语言17.下列不属于软件调试技术的是_。(分数:1.00)A.强行排错法B.集成测试法C.回溯法D.原因排除法18.设 x,y均为 int型变量,且 x=10,y=3,则 printf(“%d,%d/n“,x-,-y);语句的输出结果是_。(分数:1.00)A.10,3B.9,3C.

7、9,2D.10,219.在计算机中,算法是指_。(分数:1.00)A.查询方法B.加工方法C.解题方案的准确而完整的描述D.排序方法20.以下函数值的类型是_。fun(float x)float y;y=3*x-4;return y;(分数:1.00)A.intB.不确定C.voidD.float21.以下选项中,非法的字符常量是_。(分数:1.00)A./tB./17C.“/n“D./xaa22.下列叙述中,不属于软件需求规格说明书的作用的是_。(分数:1.00)A.便于用户、开发人员进行理解和交流B.反映出用户问题的结构,可以作为软件开发工作的基础和依据C.作为确认测试和验收的依据D.便于

8、开发人员进行需求分析23.C语言中,组成数据文件的成分是_。(分数:1.00)A.记录B.数据行C.数据块D.字符(字节)序列24.栈和队列的共同点是_。(分数:1.00)A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素D.没有共同点25.以下各选项企图说明一种新的类型名,其中正确的是_。(分数:1.00)A.typedef v1 int;B.typedef v2=int;C.typedef int v3;D.typedef v4: int26.为了避免嵌套的 if-else的二义性,C 语言规定:else 与_配对。(分数:1.00)A.缩排位置相同的 ifB.其之前最近的

9、ifC.其之后最近的 ifD.同一行上的 if27.设 a、b、c、d、m、n 均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=ab)中,标识符 f代表的是_。(分数:1.00)A.一个用于指向整型数据的指针变量B.个用于指向维数组的行指针C.个用于指向函数的指针变量D.一个返回值为指针型的函数名30.变量 a所占的内存字节数是_。union Uchar st4;int i;long 1;struct Aint c;union U u;a;(分数:1.00)A.4B.5C.6D.831.已知二叉树 BT的后序遍历序列是 dabec,中序遍历序列是 de

10、bac,它的前序遍历序列是_。(分数:1.00)A.cedbaB.acbedC.dccabD.deabc32.以下程序的结果是_。int a,b;void fun()a=100;b=200; main()int a=5,b=7;fun();printf(“%d%d/n“,a,b);(分数:1.00)A.100200B.57C.200100D.7533.在设计程序时,应采纳的原则之一是_。(分数:1.00)A.程序结构应有助于读者理解B.不限制 goto语句的使用C.减少或取消注解行D.程序越短越好34.以下程序的输出结果是_。struct HARint x,y;struct HAR *p; h

11、2;main()h0.x=1;h0.y=2;h1.x=3;h1.y=4;h0.p=h1.p=h;printf(“%d%d/n“,(h0.p)-x,(h1.p)-y);(分数:1.00)A.12B.23C.14D.3235.假定 int类型变量占用两个字节,若有定义:int x10=0,2,4;,则数组 x在内存中所占字节数是_。(分数:1.00)A.3B.6C.10D.2036.若有以下说明和语句:struct st int n;char *ch;struce st a3=5,“abc“,7,“def“,9,“ghk“,*p=a;则值为 6的表达式是_。(分数:1.00)A.p+-nB.p-n

12、+C.(*p).n+D.+P-n37.以下程序的输出结果是_。main()int a=3;printf(“%d/n“,(a+=a-=a*(分数:1.00)A.);,则能完成 i=j赋值功能的语句是_。(分数:1.00)A.i=*p;B.*p=*C.i=D.i=*p;40.以下程序的输出结果是_。main()char st20=“hello/0/t/“;printf(“%d%d/n“,strlen(st),sizeof(st);(分数:1.00)A.99B.520C.1320D.202041.下面的关键字中,不能够从循环体中跳到循环体外的是_。(分数:1.00)A.gotoB.breakC.re

13、turnD.continue42.以下程序运行后的输出结果是_。int d=1;fun(int p)static int d=5;d+=p;printf(“%d“,d);return d;main()int a=3;printf(“%d/n“,fun(a+fun(d);(分数:1.00)A.699B.669C.61515D.661543.整型变量 X和 Y的值相等,且为非 0值,则以下选项中结果为 0的表达式是_。(分数:1.00)A.X|YB.X|YC.Xwhile(num=2)num+; printf(“%d/n“,num); (分数:1.00)A.1234B.123C.12D.145.运

14、行下面的程序,其输出结果为_。main()printf(“%d,%d“,5%-3,-5%3);(分数:1.00)A.2,-2B.-2,2C.-2,-2D.2,246.设 int型占 2个字节,则 unsigned int所能表示的数据范围是_。(分数:1.00)A.065535B.-3276932767C.165536D.03276747.下面程序的输出结果为_。#includestring.hmain()char p17=“abc“,p2=“ABC“,str50=“xyz“;strcpy(str,strcat(p1,p2);printf(“%s“,str);(分数:1.00)A.xyzabc

15、ABCB.abcABCC.xyzabcD.xyzABC48.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是_。(分数:1.00)A.地址传递B.单向值传递C.由实参传绐形,再由形参传回实参D.传递方式由用户指定49.执行以下的程序段后,m 的值是_。int a23=1,2,3,(4,5,6;int m,*p;p=m=p4;(分数:1.00)A.4B.5C.3D.不确定50.以下有 4组用户标识符,其中合法的组是_。(分数:1.00)A.FOR-subCaseB.4dDOSizeC.f2_G3IFabcD.WORDvoiddefine二、填空题(总题数:18,分数:40.00

16、)51.实现算法所需的存储单元多少和算法的工作量大小分别称为算法的 【1】 。(分数:2.00)填空项 1:_52.数据结构包括数据的逻辑结构、数据的 【2】 以及对数据的操作运算。(分数:2.00)填空项 1:_53.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的 【3】 。(分数:2.00)填空项 1:_54.面向对象的模型中,最基本的概念是对象和 【4】 。(分数:2.00)填空项 1:_55.软件维护活动包括以下几类:改正性维护、适应性维护、 【5】 维护和预防性维护。(分数:2.00)填空项 1:_56.语句 X+;、+X;、X=X+1;、X=1+X;,执

17、行后都使变量 X中的值增 1,请写出一条同一功能的赋值语句(不得与列举的相同) 【6】 。(分数:2.00)填空项 1:_57.设 Y是 int型变量,请写出判断 Y为奇数的关系表达式 【7】 。(分数:2.00)填空项 1:_58.下程序的输出是 【8】 。main()char str1=“How do you do“,*p1=str1;strcpy(str1+strlen(str1)/2,“es she“);printf(“%s/n“,p1);(分数:2.00)填空项 1:_59.以上程序运行后的输出结果是 【9】 。main()int i=10,j=0;doj=j+i; i-;while

18、(i2);printf(“%d/n“,j);(分数:2.00)填空项 1:_60.设有如下程序:main()int n1,n2;scanf(“%d“,while(n2!=0)n1=n2%10;n2=n2/10;printf(“%d“,n1);程序运行后,如果从键盘上输入 1298,则输出结果为 【10】 。(分数:2.00)填空项 1:_61.以下程序输出的最后一个值是 【11】 int ff(int n)static int f=1;f=f*n;return f;main()int i;for(i=1;i=5;i+) printf(“%d/n“,ff(i);(分数:2.00)填空项 1:_6

19、2.以下函数的功能是求 x的 y次方,请填空double fun(double x,int y)int i;double z;for(i=1,z=x;iy;i+)z=z* 【12】 ;(分数:2.00)填空项 1:_63.下列程序的输出结果是 【13】 。main()int a=2,4,6,*ptr=for(y=0;y3;y+)z=(*(ptr+y)x)?*(ptr+y):x;printf(“%d/n“,z);(分数:2.00)填空项 1:_64.以下程序运行后的输出结果是 【14】 。main()char s=“9876“,*p;for(p=s;ps+2;p+)printf(“%s/n“,p

20、);(分数:2.00)填空项 1:_65.若有定义语句 char s100,d100;int j=0,i=0;且 s中已赋字符串,请填空以实现拷贝。(注:不使用逗号表达式)while(si)dj= 【15】 ;j+;dj=0;(分数:2.00)填空项 1:_66.若有如下结构体说明:struct STRUint a,b;char c: double d;struct STRU *p1,*p2;请填空,以完成对 t数组的定义,t 数组的每个元素为该结构体类型。【16】 t20(分数:2.00)填空项 1:_67.下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序填完整。(注:程序采用了

21、冒泡排序算法)#includestdio.h#includestring.hmain()char *str=“ABCDabcd“,temp;int n,i;n=strlen(str);while(n-1)for(i=0;in;i+)if(stristri+1)temp= 【17】 ;stri=stri+1;【18】 =temp;printf( 【19】 );(分数:6.00)填空项 1:_68.以下程序段打开文件后,先利用 fseek函数将文件位置指针定位在文件末尾,然后调用 ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。FILE *myf; long f1;myf=

22、 【20】 (“test.t“,“rb“);fscek(myf,(),SEEK_END) ;f1+ftell(myf);fclose(myf);printf(“%1d/n“,f1);(分数:2.00)填空项 1:_二级 C语言笔试-336 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.X、Y、2 被定义为 int型变量,若从键盘给 X、Y、Z 输入数据,正确的输入语句是_。(分数:2.00)A.INPUT X,Y,Z;B.scanf(“%d%d%d“, C.scanf(“%d%d%d“,X,Y,Z);D.read(“%d%d%d“,解析:评

23、析 C 语言中没有输入输出语句,它是通过 C语言提供的函数来实现的,本题 C中,应为变量地址。2.以下程序的输出结果是_。main()int i,a10;for(i=9;i=0;i-) ai=10-i;printf(“%d%d%d“,a2,a5,a8);(分数:2.00)A.258B.741C.852 D.369解析:评析 在本题运行时主要注意的是当 i=9时,ai=10-9=1;i=8 时,ai=10-8=2;i=7 时,ai=10-7=3;依此类推,直到 i=0时,ai=10-0=10:此时,i 的值已变为-1,判断 for的循环条件,不成立,然后输出 a2,a5,a8分 x伪 8,5,2

24、。3.设 x为 int型变量,执行以下语句,x=10;x+=x-=x-x;x 的值为_。(分数:2.00)A.10B.20 C.30D.40解析:评析 本题 x=10,表达式“x+=x-=x-x;”的求解步骤如下:先进行 x-=x-x的运算,相当于)x=x-(x-x)=x=10;再进行 x+=x的运算,即 x=x+x=20。4.以下选项中,不能确定赋值的是_。(分数:2.00)A.char s110;s1=“chest“; B.char s2=C,t,e,s,t;C.char s320=“Chest“;D.char *s4=“Ctest/n“解析:评析 C 语言中不能将字符串常量直接赋给数组。

25、但在赋初值时可以。5.以下数组定义中不正确的是_。(分数:2.00)A.int a23;B.int b3=0,1,2;C.int c100100=0;D.int d3=1,2,1,2,3,1,2,3,4; 解析:评析 一维数组的定义方式为:类型说明符 数组名常量表达式;选项 A符合此定义形式,正确;C 语言中多维数组赋初值时可以部分赋值,也可以不指定除第一维以外的其他维的大小,故选项 C正确;另外,如果对全部数组元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省,所以选项 B正确,而选项 D是错误的。6.以下程序的输出结果是_。#define M(x,y,z) x*y+z

26、main()int a=1,b=2,c=3;printf(“%d/n“,M(a+b,b+c,c+(分数:2.00)A.);b=c;c=a; D./*this is a program*/解析:评析 在 C语言中,个完整的 C语句必须在语句末尾出现分号,分号是 C语句的必要组成部分。本题答案为 C。8.下面的程序执行后,文件 test.t中内容是_。#includestdio.hvoid fun(char *fname,char *st)FILE *myf; int i;myf=fopen(fname,“w“);for(i=0;istrlen(st);i+)fputc(sti,myf);fclo

27、se(myf);main()fun(“test.t“,“new world“);fun(“test.t“,“hello,“);(分数:2.00)A.hello, B.new worldhelloC.new worldD.hello,rld解析:评析 C 语言中文件有文本文件与二进制文件,对文件的使用前必须先打开,打开方式有只读、写入、读写等方式。9.以下程序的输出结果是_。main()int a44=1,3,5,2,4,6,3,5,7;printf(“%d%d%d%d/n“,a03,a12,a21;a30);(分数:2.00)A.0650 B.1470C.5430D.输出值不定解析:评析 对未

28、给出初始值的整数数组元素,被默认初始化为零。10.下面程序的输出结果是_。#define a 121const b=12;enum ca1,a2;main()printf(“%d,%d,%d“,sizeof((分数:2.00)A.,sizeof(B.,sizeof(enum C.);A) 121,0,4B解析:评析 sizeof 函数是取变量所占的存储空间的字节数,标识 a代表常量 121;const b=12;,其中数据类型可以缺省,默认为整型;enum ca1,a2;定义了个枚举类型 enum c,a1,a2 为枚举元素,在C编译时,对枚举元素按常量处理,它们的值按定义顺序依次为 0,1。

29、因此它们的字节数均为 2,2,2。11.以下程序的输出结果是_。#includestdio.hmain()int a=200;#define a 100printf(“%dd“,(分数:1.00)A.;#B.200 200解析:评析 #define 宏名的有效范围为定义命令之后到本源文件结束,可以在程序中使用#undef 命令终止宏定义的作用域。本题由于#undef 的作用,使 a的作用范围在#define a 100 到#undef a 之间,故答案为 C。12.以下程序输出正确的是_。amovep(int *p,int(*(分数:1.00)A.3,int n)解析:评析 本题 main函数

30、中定义了指针 p和二维数组 a,通过函数 amovep将数组的值存入指针 p所指向的存储单元中,a 的各元素分别为:a00=1,a01=3,a02=5,a10=2,a11=4,a12=6,a20=0,a21=0,a22=0。通过 mailoc()函数给指针分配内存空间,free()函数用于释放指针变量所用内存空间。在主函数中通过 amovep(p,a,3)调用函数 amovep,使得实参 p与形参 p,实参数组 a与形参中指向数组的指针变量共用同一存储空间。最后输出 p2,p5为 56。13.视图设计一般有 3种设计次序,下列不属于视图设计的是_。(分数:1.00)A.自顶向下B.由外向内 C

31、.由内向外D.自底向上解析:评析 视图设计一般有 3种设计次序,它们分别是自顶向下、自底向上和由内向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际隋况灵活掌握,可以单独使用也可混合使用。14.在下列几种排序方法中,要求内存量最大的是_。(分数:1.00)A.插入排序B.选择排序C.快速排序D.归并排序 解析:评析 快速排序的基本思想是,通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继续进行排序,以达到整个序列有序:插入排序的基本操作是指将无序序列中的各元素依次插入到已经有序的线性表中,从而得到一个新的序列;选择排序

32、的基本思想是:扫描整个线性表,从中选出最小的元素,将它交换到表的最前面(这是它应有的位置),然后对剩下的子表采用同样的方法,直到表空为止;归并排序是将两个或两个以上的有序表组合成个新的有序表。15.下列叙述中正确的是_。(分数:1.00)A.C程序中注释部分可以出现在程序中任何合适的地方 B.花括号“和“只能作为函数体的定界符C.构成 C程序的基本单位是函数,所有函数名都可以由用户命名D.分号是 C语句之间的分隔符,不是语句的部分解析:评析 C 程序中注释部分用“/*”和“*/”括起来,可以出现在程序中任何合适的地方;花括号“”和“”不仅可作为函数体的定界符,也可作为复合语句的定界符;构成 C

33、程序的基本单位是函数:个语句必须在最后出现分号,分号是 C 语句中不可缺少的部分。16.SQL语言又称为_。(分数:1.00)A.结构化定义语言B.结构化控制语言C.结构化查询语言 D.结构化操纵语言解析:评析 结构化查询语言(Structured Query Language,简称 SQL)是集数据定义、数据操纵和数据控制功能于一体的数据库语言。17.下列不属于软件调试技术的是_。(分数:1.00)A.强行排错法B.集成测试法 C.回溯法D.原因排除法解析:评析 调试的关键在于推断程序内部的错误位置及原因。主要的调试方法有强行排错法、回溯法和原因排除法。18.设 x,y均为 int型变量,且

34、 x=10,y=3,则 printf(“%d,%d/n“,x-,-y);语句的输出结果是_。(分数:1.00)A.10,3B.9,3C.9,2D.10,2 解析:评析 C 语言的自减运算符有前置与后置两种形式。当自减运算符前置时,变量先自减一后再参与表达式运算;而后置时,变量先参与表达式运算后再自身减一。19.在计算机中,算法是指_。(分数:1.00)A.查询方法B.加工方法C.解题方案的准确而完整的描述 D.排序方法解析:评析 计算机算法是指解题方案的准确而完整的描述,它有以下几个基本特征:可行性、确定性、有穷性和拥有足够的情报。20.以下函数值的类型是_。fun(float x)float

35、 y;y=3*x-4;return y;(分数:1.00)A.int B.不确定C.voidD.float解析:评析 C 语言中如果函数前不加任何数据类型时,默认函数的类型为整型,函数的类型就是函数返回值的类型。21.以下选项中,非法的字符常量是_。(分数:1.00)A./tB./17C.“/n“ D./xaa解析:评析 C 语言中字符常量是以单引号括起来的单个字符,或为以“/”与三位八进制数值或两位十六进制数值代替单个字符。22.下列叙述中,不属于软件需求规格说明书的作用的是_。(分数:1.00)A.便于用户、开发人员进行理解和交流B.反映出用户问题的结构,可以作为软件开发工作的基础和依据C

36、.作为确认测试和验收的依据D.便于开发人员进行需求分析 解析:评析 软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。它不能方便开发人员进行需求分析。23.C语言中,组成数据文件的成分是_。(分数:1.00)A.记录B.数据行C.数据块D.字符(字节)序列 解析:评析 C 语言中的文件是流式文件。流式文件是一种无结构文件,即整个文件是一串字符流或二进制流。文件的存取以字符或字节为单位。24.栈和队列的共同点是_。(分数:1.00)A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素 D.没有共同点解析:评析 栈和队列都是一种特殊的操作受限的线性表,只允许在端点

37、处进行插入和删除。二者的区别是:栈是一种“后进先出”的线性表;而队列是一种“先进先出”的线性表。25.以下各选项企图说明一种新的类型名,其中正确的是_。(分数:1.00)A.typedef v1 int;B.typedef v2=int;C.typedef int v3; D.typedef v4: int解析:评析 C 语言中可以使用 typedef来重新定义已有的数据类型,相当于为数据类型取个别名。26.为了避免嵌套的 if-else的二义性,C 语言规定:else 与_配对。(分数:1.00)A.缩排位置相同的 ifB.其之前最近的 if C.其之后最近的 ifD.同一行上的 if解析:

38、评析 在 if语句中又包含个或多个 if语句称为 if语句的嵌套。应当注意 if与 else的配对关系,在 C语言中,从最内层开始,else 总是与它上面最近的(未曾配对的)if 配对。27.设 a、b、c、d、m、n 均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=ab)”,而答案 C中,表达式是不能独立成为语句的,答案 B使用了 C语言的自减运算符它就相当于 D=D-1,所以答案 B为一赋值语句。29.在说明语句 int *f();中,标识符 f代表的是_。(分数:1.00)A.一个用于指向整型数据的指针变量B.个用于指向维数组的行指针C.个用于指

39、向函数的指针变量D.一个返回值为指针型的函数名 解析:评析 带回指针值的函数,其般定义形式为:类型标识符 *函数名(参数表);例如,int *f(x,y);其中,f 是函数名,调用它以后能得到个指向整型数据的指针(地址),x,y 是函数 f的形参。在 f的两侧分别为*运算符和()预算符,而()优先级高于*,因此 f先与()结合,显然是函数形式。这个函数前面有一个*,表示此函数是指针型函数(函数值是指针)。前面的 int表示返回的指针指向整型变量。30.变量 a所占的内存字节数是_。union Uchar st4;int i;long 1;struct Aint c;union U u;a;(分

40、数:1.00)A.4B.5C.6 D.8解析:评析 结构体变量所占内存长度是各成员占内存长度之和,而共用体变量所占的内存长度等于最长的成员的长度。本题结构体变量 a中成员 c为整型占 2个字节,共用体变量 u最大长度为 4个字节,故选 C。31.已知二叉树 BT的后序遍历序列是 dabec,中序遍历序列是 debac,它的前序遍历序列是_。(分数:1.00)A.cedba B.acbedC.dccabD.deabc解析:评析 二叉树 BT的后序遍历序列为 dabec,故 BT的根结点为 c;而 BT的中序遍历序列是debac,即遍历序列中最后个结点为跟结点,说明 BT的右子树为空。由 BT的的

41、后序遍历序列和中序遍历序列可知 BT的左子树(LST)的后序遍历序列和中序遍历序列分别为 dabe和 deba(树是递归定义的):故LST的根结点是 e,在由 LST的中序遍历序列可知其左子树为 d。因此 BT的前序遍历序列为 cedba。32.以下程序的结果是_。int a,b;void fun()a=100;b=200; main()int a=5,b=7;fun();printf(“%d%d/n“,a,b);(分数:1.00)A.100200B.57 C.200100D.75解析:评析 全程变量是可以在于函数中对其值作改变,且它也可作为函数间的值传递。但当函数或子函数中定义了与全程变量名

42、称相同的局部变量,则全程变量将被屏蔽。33.在设计程序时,应采纳的原则之一是_。(分数:1.00)A.程序结构应有助于读者理解 B.不限制 goto语句的使用C.减少或取消注解行D.程序越短越好解析:评析 滥用 goto语句将使程序流程无规律,可读性差;添加的注解行有利于对程序的理解,不应减少或取消;程序的长短要依照实际需要而定,并不是越短越好。34.以下程序的输出结果是_。struct HARint x,y;struct HAR *p; h2;main()h0.x=1;h0.y=2;h1.x=3;h1.y=4;h0.p=h1.p=h;printf(“%d%d/n“,(h0.p)-x,(h1.

43、p)-y);(分数:1.00)A.12B.23C.14D.32 解析:评析 本题中是一个含有两个结点的循环链表。C语言中结构体的定义为:struct 结构题类型名成员项表;;35.假定 int类型变量占用两个字节,若有定义:int x10=0,2,4;,则数组 x在内存中所占字节数是_。(分数:1.00)A.3B.6C.10D.20 解析:评析 当数组定义后,系统就为其分配内存空间,而不论其中有没有内容。因此,本题中数组x10不论是否为其元素初始化,它所分配的存储空间仍为 2*10=20个字节。36.若有以下说明和语句:struct st int n;char *ch;struce st a3

44、=5,“abc“,7,“def“,9,“ghk“,*p=a;则值为 6的表达式是_。(分数:1.00)A.p+-nB.p-n+C.(*p).n+D.+P-n 解析:评析 根据结构变量的存储特点,p+1 意味着增加地址值为结构体数组 a的一个元素所占的字节数,即 p+使 p由 a0指向 a1起始地址。本题+p-n 得到 p指向的结构伸变量中成员 n的值使之加1。因为 p指向数组 a起始地址,p-n 的值为 5,再执行自加 1运行,结果为 6。37.以下程序的输出结果是_。main()int a=3;printf(“%d/n“,(a+=a-=a*(分数:1.00)A.);,则能完成 i=j赋值功能

45、的语句是_。(分数:1.00)A.i=*p;B.*p=* C.i=D.i=*p;解析:评析 指针是一种用来存放变量地址的特殊变量。本题中指针变量 p用于存放整型变量 i的地址,改变*p 的值即为改变 i 的值。又因为“printf(“%d%d/n“,strlen(st),sizeof(st);(分数:1.00)A.99B.520 C.1320D.2020解析:评析 C 语言中字符串是以/0字符结束的,且 strlen()函数计算的是/0字符前的所有字符的个数。本题中 strlen(st)应为 5。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。sizeof()函数是计算变量或数组的所分配到的内存空间的大小。所以本题的 sizeof(st)为 20。41.下面的关键字中,不能够从循环体中跳到循环体外的是_。(分数:1.00)A.gotoB.break C.returnD.continue解析:评析 在 C语言中,可以用 break语句和 continue语句跳出本层循环和结束本次循环。goto 语句可跳出多层循环,如果在函数的循环体内使用 return语句,就会直接结束循环返回函数值。42.以下程序运行后的输出结果是_。int d=1;fun(int p)static int d=5;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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