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

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

1、二级 C语言笔试-213 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.若有“double a;”,则正确的输入语句是( )。(分数:2.00)A.scanf(“%lf“,A) ;B.sC.D.s2.字符串“/“ABCDEF/“/“的长度是( )。(分数:2.00)A.15B.10C.7D.83.设有下列语句int a=1,b=2,C;c=a(b2) ;执行后,C 的值为( )。(分数:2.00)A.6B.7C.8D.94.若有下列说明和语句,则对结构体变量 st中成员 i的引用方式不正确的是( )。Struct stuint i;int

2、 name;st,*p;p=(分数:2.00)A.st.iB.*p.iC.(*p).iD.p-i5.若 a、b、c、d 都是血型变量且都已经正确赋初值,则下列不正确的赋值语句是( )。(分数:2.00)A.a+d;B.a+;C.a=b=c=d=100;D.a=(b=3) +(d=5);6.有下列程序:main()int x=5;do(printf(“%d“,x-=4) ;while(!(-X);程序的输出结果是( )。(分数:2.00)A.1B.2 0C.1 -4D.死循环7.在 C语言中,下列关于文件操作的叙述正确的是( )。(分数:2.00)A.对文件操作必须先关闭文件B.对文件操作必须先

3、打开文件C.对文件操作顺序没有统一规定D.以上三种说法全错8.下列叙述中正确的是( )。(分数:2.00)A.在模块化程序设计中,一个模块应该尽量多的包括与其他模块联系的信息B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的第一个细节C.在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法9.下列程序的输出结果是( )。#includestdio.hvoid main()int a=0,b=1,c=2;if(+a0+b0) +C;printf(“%d,%d,%d“,a,b,C) ;(分数:2.00)A.0,

4、1,2B.1,2,3C.1,1,3D.1,2,210.下列叙述中错误的是( )。(分数:2.00)A.线性表是由 n个元素组成的一个有限序列B.线性表是一种线性结构C.线性表的所有结点有且仅有一个前件和后件D.线性表可以是空表11.已有定义 int(*q)(),指针 q可以( )。(分数:2.00)A.指向函数的入口地址B.代表函数的返回值C.表示函数的类型D.表示函数返回值的类型12.定义下列结构体(联合)数组:struct stcharn ame15;int age;a10=“ZHAO“,14,“WANG“,15,“LIU“,16,“ZHANG“,17;执行语句 printf(“%d,%c

5、“,a2.age,*(a3.name+2) )的输出结果为( )。(分数:2.00)A.15,AB.16,HC.16,AD.17,H13.有下列程序:#includestdio.hmain()char c1,c2,c3,c4,c5,c6;scanf(“%C%C%C%C“,c5=getchar();c6=getchar();putchar(c1) ;putchar(c2) ;printf(“%c%c/n“,c5,c6) ;程序运行后,若从键盘输入(从第 1列开始)123CR45678CR则输出结果是( )。(分数:2.00)A.1267B.1256C.1278D.124514.若有运算符:、*=

6、、%、sizeof,则它们按优先级(由低至高)的正确排列次序为( )。(分数:2.00)A.*= % SizeofB. *= % sizeofC.*= sizeof %D.*= % sizeof15.下列叙述中不正确的是( )。(分数:2.00)A.在 C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B.在 C的函数中,最好使用全局变量C.外部变量可以在函数之间传递数据D.自动变量实质上是一个函数内部的局部变量16.若有下列定义,则对 a数组元素地址的正确引用是( )。int a5,*p=a;(分数:2.00)A.p+5B.*a+1C.switch(a%2) case 0:

7、m+;break;case 1:m+;switch(b%2) defaut:m+;case0:m+;break;printf(“%d/n“,m);程序运行后的输出结果是( )。(分数:2.00)A.1B.2C.3D.418.表示关系 abc 的 C语言表达式为( )。(分数:2.00)A.(a=B.if(x=0x=1) return 3;elsep=x-fun(x-2) ;return p;void main()printf(“/n%d“,fun(5) );(分数:2.00)A.5B.3C.7D.120.下列选项中,值为 1的表达式是( )。(分数:2.00)A.1-0B.1-/0C.1-0D

8、./0,021.下列工具中为需求分析常用工具的是( )。(分数:2.00)A.PADB.PFDC.N-SD.DFD22.若有定义: “int a23;”则对 a数组的第 i行第 j列元素的正确引用为( )。(分数:2.00)A.*(*(a+i)+j)B.(a+i)jC.*(a+i+j)D.*(a+i)+j23.对长度为 n的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。(分数:2.00)A.125B.n/2C.nD.n+124.下列说法正确的是( )。(分数:2.00)A.一个 C程序可以有多个主函数B.一个 C语言的函数中只允许有一对花括号C.C程序的书写格式是自由的,一个语句可以

9、写在一行上,也可以写在多行内D.在对 C程序进行编译时,可以发现注释行中的拼写错误25.下列程序的输出结果是( )。#includestdio.h#includestring.hmain()char a=“/n123/“;printf(“%d,%d/n“,strlen((分数:2.00)A.,sizeof(A) );if(x=0x=1) return(3) ;p=x-fun(x-2) ;return p;main()printf(“%d/n“,fun(7) );执行后的输出结果是( )。(分数:2.00)A.7B.3C.2D.031.下列程序的输出结果是( )。point(char*pt);m

10、ain()char b4=a,c,s,f,*pt=b;pt=point(pt);printf(“%c/n“,*pt);point(char*p)p+=3;return p;(分数:1.00)A.sB.cC.fD.a32.下列叙述中错误的是( )。(分数:1.00)A.一种数据的逻辑结构可以有多种存储结构B.数据的存储结构与数据的处理效率无关C.数据的存储结构与数据的处理效率密切相关D.数据的存储结构在计算机中所占的空间不一定是连续的33.下列选项中,当 x为大于 1的奇数时,值为 0的表达式是( )。(分数:1.00)A.x%2=1B.x/2C.x%2!=0D.x%2=034.下列选项中不会引

11、起二义性的宏定义是( )。(分数:1.00)A.#defineS(x)x*xB.#defineS(x)(x)*(x)C.#defineS(x)(x*x)D.#defineS(x)(x)*(x)35.执行语句 printf(“%ukn”,+12345) 的输出结果是( )。(分数:1.00)A.12345B.0C.-1D.非定值36.设计软件结构是在软件生命周期的( )。(分数:1.00)A.软件定义期B.软件开发期C.软件维护期D.以上三个都不是37.下列程序的运行结果是( )。main()int x=1,y=3,a=0;while(x+!=(y-=1) )a+=1;if(yx)break;p

12、rintf(“%d,%d,%d/n“,x,y,(分数:1.00)A.;A) 2,3,2,B.2,3,1C.1,3,3D.3,1,238.下列不属于软件工程的 3个要素的是( )。(分数:1.00)A.32具B.过程C.方法D.环境39.若变量已正确定义,下列正确的程序段是( )。(分数:1.00)A.while(ch=getchar()=/N)putchar(ch);B.while(ch=getchar()=/n)putchar(ch);C.while(ch=getchar()!=/N)putchar(ch);D.while(ch=getchar()!=/n)putchar(ch);40.下列

13、程序的输出结果是( )。#includestdio.hmain()int a=4;printf(“%d/n“,(a+=a-=a*(分数:1.00)A.);A) -8B.14C.0D.-24二、填空题(总题数:15,分数:30.00)41.算法的复杂度主要包括时间复杂度和 1 复杂度。(分数:2.00)填空项 1:_42.按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于 1。(分数:2.00)填空项 1:_43.树中度为零的结点称为 1。(分数:2.00)填空项 1:_44.在面向对象方法中,类之间共享属性和方法的机制称为 1。(分数:2.00)填空项 1:_45.软件是程序、数据和

14、1 的集合。(分数:2.00)填空项 1:_46.若 x和 a均是血型变量,则计算完 x=(a=4,6*2) 后的 x值为 1。(分数:2.00)填空项 1:_47.若 a是 int型变量,则下列表达式的值为_。(a=2*3,a*2) ,a+4(分数:2.00)填空项 1:_48.下列程序段是从键盘输入的字符中统计小写字母的个数,用换行符结束循环。请填空。int n=0,c;c=getchar();while(c!=/n)if(_)n+;(分数:2.00)填空项 1:_49.下列程序的运行结果是_。#includestdio.hmain()int a,b,c,n;a=2;b=0;C=1;n=1

15、;while(n=3) C=C*a;b=b+C;+n;printf(“b=%d“,B) ;(分数:2.00)填空项 1:_50.下列程序的输出结果是_。main()int i=0,a=0;while(i20) for(;)if(i%10) =0) break;else i-;i+=11;a+=i;printf(“%d/n“,A) ;(分数:2.00)填空项 1:_51.下列程序的运行结果是_。#includestdio.hlongfunc(int x)long p;if(x=0x=1) return(1) ;p=x*func(x-1) ;return(p);main()printf(“%d/n

16、“,func(4) );(分数:2.00)填空项 1:_52.下列程序将二维数组 a的行和列元素互换后存放到另一个二维数组 b中。请填空。main()int a23=1,2,3,4,5,b32,i,j;for(i=0;i2;i+)for(j=0;j3;j+)_,(分数:2.00)填空项 1:_53.下列程序的运行结果是_。#includestdio.hmain()int fun();fun();fun()static int a4=1,2,3,4;int i;for(i=0;i4;i+)ai+=ai;for(i=0;i4;i+)printf(“%d,“,ai);printf(“/n“);(分数

17、:2.00)填空项 1:_54.设有下列程序:#includestdio.h#includestring.hmain()int i;char s10,t10;gets(t);for(i=0;i2;i+)gets(s);if(strcmp(t,s)0) strcpy(t,s);printf(“%s/n“,t);程序运行后,从键盘上输入(CR代表回车符):DEFCRBADEFCRQTHRGCR,则程序的输出结果是_。(分数:2.00)填空项 1:_55.下列程序的运行结果是_。#define P(A) printf(“%d“,A) main()int j,a=1,2,3,4,5,6,7,i=5;f

18、or(j=3;j1;j-)switch(j)case 1:case2:P(ai+);break;case 3:P(a-i);(分数:2.00)填空项 1:_二级 C语言笔试-213 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.若有“double a;”,则正确的输入语句是( )。(分数:2.00)A.scanf(“%lf“,A) ;B.sC.D.s 解析:解析 函数 scanf()的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符;“输入项地址表”是要输入的变量的地址。本题中定义变量 a为双精

19、度型变量,双精度变量的格式符为“le”;变量的地址用取地址符“c=a(b2) ;执行后,C 的值为( )。(分数:2.00)A.6B.7C.8D.9 解析:解析 变量 b的初值等于 2,所以表达式 b2 表示 b的值二进制左移两位,即扩大 4倍,所以变量 b的等于 8。然后与 a的值 1进行异或运算,得 9。4.若有下列说明和语句,则对结构体变量 st中成员 i的引用方式不正确的是( )。Struct stuint i;int name;st,*p;p=(分数:2.00)A.st.iB.*p.i C.(*p).iD.p-i解析:解析 本题主要考查结构指针:p= B.a+;C.a=b=c=d=1

20、00;D.a=(b=3) +(d=5);解析:解析 C 语言规定,赋值号的右边可以是一个赋值表达式,因此选项 C)、选项 D)正确;在选项 B)中, a+是一个自加 1的表达式,a 被重新赋值,因此它是一个合法的赋值表达式;选项 A)中,a+d 是一个算术表达式,虽然最后有一个分号,但这个表达式中没有赋值操作,因此它不是一条赋值语句。6.有下列程序:main()int x=5;do(printf(“%d“,x-=4) ;while(!(-X);程序的输出结果是( )。(分数:2.00)A.1B.2 0C.1 -4 D.死循环解析:解析 本题考查 dowhile循环。执行 printf语句,x=

21、x-4=1,输出 1,判断 while循环的控制条件,-x=0,则(!(-x)非零,循环条件成立,执行下一次循环;执行 printf 语句,x=x-4=-4,输出-4,判断 while循环的控制条件,-X=-5,则(!(-X)为零,循环条件不成立,结束循环。7.在 C语言中,下列关于文件操作的叙述正确的是( )。(分数:2.00)A.对文件操作必须先关闭文件B.对文件操作必须先打开文件 C.对文件操作顺序没有统一规定D.以上三种说法全错解析:解析 本题考查对文件的操作。文件打开后才可以对文件进行操作,使用结束后要关闭文件。对文件的操作都是顺序读写,即从文件的第一个数据开始,依次进行读写。8.下

22、列叙述中正确的是( )。(分数:2.00)A.在模块化程序设计中,一个模块应该尽量多的包括与其他模块联系的信息B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的第一个细节C.在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则 D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法解析:解析 在模块化程序设计中,模块之间的联系可以通过程序的控制结构来实现,在自顶向下、逐步细化的设计过程中,首先要考虑全局目标,而不是细节。在程序设计中模块化和结构化可以同时使用,一个模块的内部结构也要符合结构化设计原则。9.下列程序的输出结果是( )。#includestdio.

23、hvoid main()int a=0,b=1,c=2;if(+a0+b0) +C;printf(“%d,%d,%d“,a,b,C) ;(分数:2.00)A.0,1,2B.1,2,3C.1,1,3 D.1,2,2解析:解析 本题考查汀语句。先判断 if语句的条件是否成立,+a=10,此条件成立,又因为是进行逻辑或运算,在已知其中一个运算对象为真的情况下,不必判断另外一个运算符的真假,即不进行+b 操作,就可以直接得出整个表达式的值为逻辑 1,执行下列的+c。10.下列叙述中错误的是( )。(分数:2.00)A.线性表是由 n个元素组成的一个有限序列B.线性表是一种线性结构C.线性表的所有结点有

24、且仅有一个前件和后件 D.线性表可以是空表解析:解析 线性表是一种线性结构,由 n(n0)个元素组成,所以线性表可以是空表。但是在线性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件,所以选项 C)是错误的。11.已有定义 int(*q)(),指针 q可以( )。(分数:2.00)A.指向函数的入口地址 B.代表函数的返回值C.表示函数的类型D.表示函数返回值的类型解析:解析 本题考查的是指向函数的指针。函数指针的定义方式是:类型标识符(*指针变量名)()。其中,“类型标识符”为函数返回值的类型:“指针”指向函数的入口地址。12.定义下列结构体(联合)数组:str

25、uct stcharn ame15;int age;a10=“ZHAO“,14,“WANG“,15,“LIU“,16,“ZHANG“,17;执行语句 printf(“%d,%c“,a2.age,*(a3.name+2) )的输出结果为( )。(分数:2.00)A.15,AB.16,HC.16,A D.17,H解析:解析 本题主要考查结构体数组。a2.age 为结构体 a2的 age成员,即 16。a3.name 为指向结构体 a3的 name成员的第一个元素的指针,即指向“Z”, (a3.name+2)将指针后移两位指向第三个元素“A”, *(a13).name+2)是取指针所指向地址的内容。

26、13.有下列程序:#includestdio.hmain()char c1,c2,c3,c4,c5,c6;scanf(“%C%C%C%C“,c5=getchar();c6=getchar();putchar(c1) ;putchar(c2) ;printf(“%c%c/n“,c5,c6) ;程序运行后,若从键盘输入(从第 1列开始)123CR45678CR则输出结果是( )。(分数:2.00)A.1267B.1256C.1278D.1245 解析:解析 当用 scanf函数从键盘输入数据时,每行数据的末尾按下回车键(Enter 键)之前,可以任意修改。但按下回车键 putchar(c1) (E

27、nter键)之后,scanf 函数即接受了这一行数据,不能再回去修改。所以本题中,当输入 123CR时,变量 c1、c2、c3 的值分别为 1、2、3,当输入 45678CR时,变量c5、c6 的值 4和 5。所以用输出函数 putchar(c1)输出 1,putchar(c2)输出 2, printf(“%c%c/n“,c5,c6)输出 45。所以选项 D)为正确答案。14.若有运算符:、*=、%、sizeof,则它们按优先级(由低至高)的正确排列次序为( )。(分数:2.00)A.*= % SizeofB. *= % sizeofC.*= sizeof %D.*= % sizeof 解析:

28、解析 本题主要考查算术运算的优先级。顺序如下:运算符 + -(单项求正、求负) * / % + -结合性 自右向左 自左向右 自左向右同级 同级 同级优先级高低*=、%、sizeof 的优先级依次递增。15.下列叙述中不正确的是( )。(分数:2.00)A.在 C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B.在 C的函数中,最好使用全局变量 C.外部变量可以在函数之间传递数据D.自动变量实质上是一个函数内部的局部变量解析:解析 编泽时,编译系统不为局部变量分配内存单元,而是在程序运行中,当局部变量所在的函数被调用时,编译系统根据需要要临时分配内存,调用结束空间释放;全局

29、变量一经定义,编译系统为其分配固定的内存单元,在程序运行的自始至终都占用固定的单元。在考虑内存不定的情况下,最好使用全局变量。16.若有下列定义,则对 a数组元素地址的正确引用是( )。int a5,*p=a;(分数:2.00)A.p+5B.*a+1C.switch(a%2) case 0:m+;break;case 1:m+;switch(b%2) defaut:m+;case0:m+;break;printf(“%d/n“,m);程序运行后的输出结果是( )。(分数:2.00)A.1B.2 C.3D.4解析:解析 本题考查 switch语句。第一个 switch语句,因为 a=6,a%2=

30、0,所以执行 case0,将 m加1,遇到 break语句跳出 switch语句,结束循环。18.表示关系 abc 的 C语言表达式为( )。(分数:2.00)A.(a= B.if(x=0x=1) return 3;elsep=x-fun(x-2) ;return p;void main()printf(“/n%d“,fun(5) );(分数:2.00)A.5 B.3C.7D.1解析:解析 本题考查函数的递归调用。在函数递归调用时,fun(5):a=5-fun(3)-fun3:a=3-fun(1)-fun(1):a=3,反推回去 fun(3):a=3-3=O-fun(5):a=5-0=5,最后

31、的计算结果为 5。20.下列选项中,值为 1的表达式是( )。(分数:2.00)A.1-0B.1-/0 C.1-0D./0,0解析:解析 在 C程序中,字符量可参与任何整数运算。字符参与运算时,首先要将字符转换为对应的ASCII码值再参与整数运算。字符1对应的 ASCII码值是 49,字符0对应的 ASCII码值是 48,字符/0是字符串结束标识符 NULL,其对应的 ASCII码值是 0。21.下列工具中为需求分析常用工具的是( )。(分数:2.00)A.PADB.PFDC.N-SD.DFD 解析:解析 需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分

32、析图)、PFD(程序流程图)、N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。22.若有定义: “int a23;”则对 a数组的第 i行第 j列元素的正确引用为( )。(分数:2.00)A.*(*(a+i)+j) B.(a+i)jC.*(a+i+j)D.*(a+i)+j解析:解析 本题考查如何通过地址来引用数组元素。通过地址来引用数组元素的方法有下列 5种:aij;*(ai+j);*(*(a+i)+j);*(ai)j; *(printf(“%d,%d/n“,strlen((分数:2.00)A.,sizeof(A) );if(x=0x=1) return(3) ;p=x-fun(x

33、-2) ;return p;main()printf(“%d/n“,fun(7) );执行后的输出结果是( )。(分数:2.00)A.7B.3C.2 D.0解析:解析 因为在函数 fun(int x)中,如果参数 x等于 0或 1时,返回值 3。否则 p=x-fun(x-2)这是一个递归函数,所以在主函数调用 fun(7)时,其过程为:“fun(7)=7-fun(5)=7-(5-fun(3)=7-(5-(3-fun(1)=7-(5- (3-3)=7-5=2”,所以最后的输出结果为2。31.下列程序的输出结果是( )。point(char*pt);main()char b4=a,c,s,f,*p

34、t=b;pt=point(pt);printf(“%c/n“,*pt);point(char*p)p+=3;return p;(分数:1.00)A.sB.cC.f D.a解析:解析 本题考查函数调用时的参数传递。函数 point的参数为字符指针,当执行函数 point时,刚开始指针 p指向“a”,经过+3 操作后,指针 p指向“f”,所以最后的输出结果是 f。32.下列叙述中错误的是( )。(分数:1.00)A.一种数据的逻辑结构可以有多种存储结构B.数据的存储结构与数据的处理效率无关 C.数据的存储结构与数据的处理效率密切相关D.数据的存储结构在计算机中所占的空间不一定是连续的解析:解析 数

35、据的存储结构分为顺序结构和链式结构,一个数据的逻辑结构可以有多种存储结构。顺序结构中数据元素所占的存储空间是连续的,而链式存储结构中,数据元素所占的存储空间不一定是连续的。数据的存储结构与数据的处理效率密切相关。33.下列选项中,当 x为大于 1的奇数时,值为 0的表达式是( )。(分数:1.00)A.x%2=1B.x/2C.x%2!=0D.x%2=0 解析:解析 因为 x的值为大于 1的奇数,所以 x除以 2的余数等于 1。所以选项 D)等于关系表达式的结果为假,即等于 0。34.下列选项中不会引起二义性的宏定义是( )。(分数:1.00)A.#defineS(x)x*xB.#defineS

36、(x)(x)*(x)C.#defineS(x)(x*x)D.#defineS(x)(x)*(x) 解析:解析 本题考查带参数的宏的替换。有些参数表达式必须加括号,否则,在实参表达式替换时,会出现错误。35.执行语句 printf(“%ukn”,+12345) 的输出结果是( )。(分数:1.00)A.12345 B.0C.-1D.非定值解析:解析 “%u”表示输出无符号的整数(注意:如果输出值前有符号,将自动转化为相应的无符号数输出)。36.设计软件结构是在软件生命周期的( )。(分数:1.00)A.软件定义期B.软件开发期 C.软件维护期D.以上三个都不是解析:解析 设计软件结构是在软件概要

37、设计阶段进行的,而概要设计属于软件开发期。37.下列程序的运行结果是( )。main()int x=1,y=3,a=0;while(x+!=(y-=1) )a+=1;if(yx)break;printf(“%d,%d,%d/n“,x,y,(分数:1.00)A.;A) 2,3,2,B.2,3,1C.1,3,3D.3,1,2 解析:解析 本题考查 while循环。第一次循环,先拿 x的值和(y-1)比较,此时 x=1,y-1=2,循环条件成立,比较完将 x的值加 1,此时 x=2,进入循环,a=a+1=1,判断 if语句的控制条件是否成立,yx不成立,接着执行下一次循环。第二次循环,先拿 x的值和

38、(y-1)比较,此时 x=2,y-1=1,循环条件成立,比较完将 x的值加 1,此时 x=3,进入循环,a=a+1=2,判断 if语句的控制条件是否成立,yx 成立,执行 break语句退出循环。38.下列不属于软件工程的 3个要素的是( )。(分数:1.00)A.32具B.过程C.方法D.环境 解析:解析 软件工程包括 3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段:工具支持软件的开发、管理和文档生成:过程支持软件开发的各个环节的控制、管理。39.若变量已正确定义,下列正确的程序段是( )。(分数:1.00)A.while(ch=getchar()=/N)putchar(ch

39、);B.while(ch=getchar()=/n)putchar(ch);C.while(ch=getchar()!=/N)putchar(ch);D.while(ch=getchar()!=/n)putchar(ch); 解析:解析 本题考查两个知识点:C 语言用/n这个字符常量表示换行:函数 getchar()的作用是从终端输入一个字符,当遇到换行时结束输入。40.下列程序的输出结果是( )。#includestdio.hmain()int a=4;printf(“%d/n“,(a+=a-=a*(分数:1.00)A.);A) -8B.14C.0D.-24 解析:解析 表达式 a+=a-=

40、a*a看起来复杂,其实将它分成两个表达式来计算就简单了:第一个表达式(a-=a*a)=(a=a-a*a=-12);第二个表达式(a+=a-=a*a)=(a=a+a=-24)。二、填空题(总题数:15,分数:30.00)41.算法的复杂度主要包括时间复杂度和 1 复杂度。(分数:2.00)填空项 1:_ (正确答案:空间)解析:解析 衡量一个算法的复杂度有两个指标:时间复杂度和空间复杂度。前者用宋衡量执行算法时所需要的计算工作量,而后者用来衡量执行算法所需要的存储空间。42.按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于 1。(分数:2.00)填空项 1:_ (正确答案:线性结构)解

41、析:解析 数据的逻辑结构是指数据元素之间的逻辑关系,分为线性结构和非线性结构。常见的线性结构有线性表、栈和队列等,常见的非线性结构有树、二叉树等。43.树中度为零的结点称为 1。(分数:2.00)填空项 1:_ (正确答案:叶子结点)解析:解析 树中度为零的结点,也就是没有后件的结点,称为叶子结点。44.在面向对象方法中,类之间共享属性和方法的机制称为 1。(分数:2.00)填空项 1:_ (正确答案:继承)解析:解析 在面向对象的程序设计方法中,某些属性和方法是可以共享的,由子类从父类中继承而来,这样提高了软件的可重用性。45.软件是程序、数据和 1 的集合。(分数:2.00)填空项 1:_

42、 (正确答案:相关文档)解析:解析 计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。46.若 x和 a均是血型变量,则计算完 x=(a=4,6*2) 后的 x值为 1。(分数:2.00)填空项 1:_ (正确答案:12)解析:解析 x=(表达式 1,表达式 2,)的形式,结果为最后一个表达式的值:x=(a=4,6*2)=2*6=12。47.若 a是 int型变量,则下列表达式的值为_。(a=2*3,a*2) ,a+4(分数:2.00)填空项 1:_ (正确答案:10)解析:解析 此题考查逗号表达式。逗号表达式的值是最后一个表达式的值,所以本题的返回值是a

43、+4。前面已经给 a赋值 6,所以返回值 a+4=6+4=10。48.下列程序段是从键盘输入的字符中统计小写字母的个数,用换行符结束循环。请填空。int n=0,c;c=getchar();while(c!=/n)if(_)n+;(分数:2.00)填空项 1:_ (正确答案:c=aa=2;b=0;C=1;n=1;while(n=3) C=C*a;b=b+C;+n;printf(“b=%d“,B) ;(分数:2.00)填空项 1:_ (正确答案:b=14)解析:解析 分析程序可知,n 的初始值为 1,因此,while(n=3)循环 3次。第 1次:c=c*a=2;b=b+c=2;n=2。第 2次

44、:C=C*a=4;b=b+c=6;n=3。第 3次:c=c*a=8; b=b+c=14。当 n=4时,判断条件不满足,退出循环。50.下列程序的输出结果是_。main()int i=0,a=0;while(i20) for(;)if(i%10) =0) break;else i-;i+=11;a+=i;printf(“%d/n“,A) ;(分数:2.00)填空项 1:_ (正确答案:32)解析:解析 while(表达式)的功能是:首先计算表达式的值,若为真,则执行循环体语句,执行完毕,再计算表达式的值,若仍为真,则重复执行循环体语句,直到表达式的值为假时,结束 while语句的执行,继续执行

45、while 语句后面的语句;i=0 时满足循环条件,也满足 if的条件,执行语句得 i=11,a=11,第2次循环不满足 if的条件,执行 i-,i=10,执行 i+=11;a+=i 后,得 i=21, a=32,不满足 i20,循环结束。51.下列程序的运行结果是_。#includestdio.hlongfunc(int x)long p;if(x=0x=1) return(1) ;p=x*func(x-1) ;return(p);main()printf(“%d/n“,func(4) );(分数:2.00)填空项 1:_ (正确答案:24)解析:解析 本题考查函数的循环调用。p=x*fun

46、c(x-1),当 x=4时,不满足 if语句的条件,p=4*func(3),x=3 也不满足条件,则 func(3)=3*func(2),func(2)=2*func(1), x=1 满足条件 return(1),则输出结果为 4*3*2*1=24。52.下列程序将二维数组 a的行和列元素互换后存放到另一个二维数组 b中。请填空。main()int a23=1,2,3,4,5,b32,i,j;for(i=0;i2;i+)for(j=0;j3;j+)_,(分数:2.00)填空项 1:_ (正确答案:bji=aij)解析:解析 本题考查二维数组的基本知识。它是要将一个二维数组 a的行和列元素互换后存放到另一个二维数组 b中,只要将数组 a的行标和列标互换,然后赋给数组 b 即可。53.下列程序的运行结果是_。#includestdio.hmain()int fun();fun();fun()static int a4=1,2,3,4;i

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

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

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