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

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

1、二级 C语言笔试-216 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.一个关系中属性个数为 1时,称此关系为( )。(分数:2.00)A.对应关系B.单一关系C.一元关系D.二元关系2.下列叙述中正确的是( )。(分数:2.00)A.在面向对象的程序设计中,各个对象之间具有密切的关系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D.上述 3种说法都不对3.以下程序的输出结果是( )。main()char str 10=“china“,“beijing“),* p=str;pr

2、intf(“%s/n“ ,p+10);(分数:2.00)A.ChinaB.BeijingC.ngD.ing4.以下程序的输出结果是( )。main()int i;for (i=0;i3;i+)switch(i) case O:printf(“%d“,i);case 2:printf(“%d“,i);default:printf(“%d“,i);(分数:2.00)A.000102B.000020C.000122D.0001115.对两个数组 a和 b进行下列初始化:char m=“1234567“;char n=1,2,3,4,5,6,7;则下列叙述正确的是()。(分数:2.00)A.数组 m与

3、数组 n完全相同B.数组 m与数组 n长度相同C.数组 m比数组 n长 1D.数组 m与数组 n中都存放字符串6.下列变量声明合法的是( )。(分数:2.00)A.short a=1.4e-1;B.double b=1+3e2.8;C.long do=0xfdaL;D.float 2_aaa=1e-3;7.有如下程序:# includestdio.hmain()FILE *fp1;fp1=fopen(“f1.txt“,“w“);fprintf(fp1,“abc“);fclose(fp1);若文本文件 f1.txt中原有内容为:good,则运行以上程序后文件 f1.txt中的内容为( )。(分数

4、:2.00)A.goodabcB.abcdC.abcD.abcgood8.运行下列程序,若从键盘输入字符“a”,则输出结果是( )。char c:c=getchar();if(c=ac=g)c=c+4;else if(c=gc=2)c=c-21;else printf(“input error!/n“);putchar(c);(分数:2.00)A.fB.tC.eD.d9.设 x为 int型变量,则执行以下语句后,x 的值为( )。x=10;x=x-=x-x;(分数:2.00)A.10B.20C.40D.3010.下列程序的运行结果是( )。# includestdio.h# define AD

5、D(x) x+xmain()int m=1,n=2,k=3;int s=ADD(m+n)*k;printf(“s=%d”,s);(分数:2.00)A.sum=18B.sum=10C.sum=9D.sum=2511.与“y=(x0? 1:x0?-1:0)”;的功能相同的 if语句是( )。(分数:1.00)A.if(x0)y=1;B.if(x)else if(x0)y=1; if(x0)y=1;else y=0; else if(x0)y=-1;else y=0;C.y=-1D.y=0;if(x) if(x=0)if(x0)y=1; if(x=0)y=1;else if(x=0)y=0; els

6、e y=-1;else y=-1;12.若某二叉树的前序遍历访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是( )。(分数:1.00)A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca13.下列程序执行后的输出结果是( )。main()int a33,*p,i;p=a00;for(i=p;i9;i+)pi=i+1;printf(“%d/n“,a12);(分数:1.00)A.3B.6C.9D.随机数14.设 x=011050,设 x=x01252 的值是( )。(分数:1.00)A.0000001000101000B.

7、1111110100011001C.0000001011100010D.110000000010100015.三种基本结构中,能简化大量程序代码的是( )。(分数:1.00)A.顺序结构B.分支结构C.选择结构D.重复结构16.s1和 s2已正确定义并分别指向两个字符串。若要求:当 s1所指串大于 s2所指串时,执行语句 S;则以下选项中正确的是( )。(分数:1.00)A.if(s1s2)S;B.if(strcmp(s1,s2)S;C.if(strcmp(s2,s10)S;D.if(strcmp(s1,s20)S;17.下列程序执行的输出结果是( )。# includestdio.hmain

8、()char a24;strcpy(a,“are“); strcpy(a1,“you“);a03=;printf(“%s/n“ ,a);(分数:1.00)A.areyouB.youC.areD.18.下列程序输出结果是( )。# includestdio.hmain()char a=a,b,c,d,e,f,/0);int i,j;i=sizeof(a);j=strlen(a);printf(“%d,%d“,i,j);(分数:1.00)A.7,7B.7,6C.6,6D.6,719.以下程序的输出结果是( )。main()int i=0,s=0;for(;)if(i=3|i=5) continue

9、;if(i=6) break;i+;s+=i;printf(“%d/n“ ,s);(分数:1.00)A.10B.13C.21D.程序陷入死循环20.以下程序的输出结果是( )。int f(int A)return a%2;main()int s8=1,3,5,2,4,6,i,d=0;f.r(i=0;f(s8);i+)d+=si;printf(“%d/n“,d);(分数:1.00)A.9B.11C.19D.2121.有如下程序:main()int a=2,b=-1,c=2;if(a0)if(b0)c=0;else c+;printf(“%d/n“,c);该程序的输出结果是( )。(分数:2.00

10、)A.0B.1C.2D.322.假设 a和 b为 int型变量,则执行以下语句后 b的值为( )。a=1;b=10;dob-=a;a+;while(b-0);(分数:2.00)A.9B.-2C.-1D.823.下列程序的输出结果是( )。# includestdio.hmain()int i;for(i=1;i=10,i+)if(i*i=20)(i*i=100)break;printf(“%d/n“,i*i);(分数:2.00)A.49B.36C.25D.6424.有以下程序:int fun(int x)int p;if(x=0|x=1) return(3);p=x-fun(x-2);retu

11、rn p;main()printf(“%d/n“,fun(7);执行后的结果是( )。(分数:2.00)A.7B.3C.2D.025.若有定义“float a=25,b,*p=b;”,则下列对赋值语句“*p=a;”和“p=a;”的正确解释为( )。(分数:2.00)A.两个语句都是将变量 a的值赋予变量 pB.*p=a是使 p指向变量 a,而 p=a 是将变量的值赋予变量指针 pC.*p=a是将变量 a的值赋予变量 b,而a 是使 p指向变量 aD.两个语句都是使 p指向变量 a26.执行下列程序后,变量 a,b,c的值分别是( )。int x=5,y=4;int a,b,c;a=(-x=y+

12、)?x:+y;b=+x:c=y;(分数:2.00)A.a=5,b=5,c=5B.a=4,b=5,c=5C.a=5,b=6,c=5D.a=1,b=5,c=627.若有以下定义:char a;int b;float c:double d;则表达式 a*b+b-c值的类型为( )。(分数:2.00)A.floatB.intC.charD.double28.有以下函数:char fun(char*p)return p;该函数的返回值是( )。(分数:2.00)A.无确切的值B.形参 p中存放的地址值C.一个临时存储单元的地址D.形参 p自身的地址值29.下列选择中,不能用作标识符的是( )。(分数:2

13、.00)A._1234_B._1_2C.int_2_D.2_int_30.有以下结构体说明和变量的定义,且指针 p指向变量 a,指针 q指向变量 b,则不能把结点 b连接到结点 a之后的语句是( )。struct nodechar data;struct node*next;a,b,*p=a,*q=b;(分数:2.00)A.next=q;B.next=b;C.p-next=b;D.(*p).next=q;31.在结构化分析方法中,数据字典的作用是( )。(分数:2.00)A.存放所有需要处理的原始数据B.存放所有处理的结果C.存放所有程序文件D.描述系统中所用到的全部数据和文件的有关信息32.

14、在 C语言中,函数返回值的类型最终取决于( )。(分数:2.00)A.函数定义时在函数首部所说明的函数类型B.return语句中表达式值的类型C.调用函数时主调函数所传递的实参类型D.函数定义时形参的类型33.下列程序执行后的输出结果是( )。main()int x=f; printf(“%c/n“,A+(x-a+1);(分数:2.00)A.GB.HC.ID.J34.已知函数 fread的调用形式为“fread(buffer,size,count,fp);”,其中 buffer代表的是( )。(分数:2.00)A.存放读入数据项的存储区B.一个指向所读文件的文件指针C.一个指针,是指向输入数据

15、存放在内存中的起始地址D.一个整型变量,代表要读入的数据项总数35.概要设计中要完成的事情是( )。(分数:2.00)A.系统结构和数据结构的设计B.系统结构和过程的设计C.过程和接口的设计D.数据结构和过程的设计36.下列字符串是标识符的是( )。(分数:2.00)A.aaB.a-classC.intD.LINE 137.有以下程序:fun(int x,int y)return(x+y);main()int a=1,b=2,c=2,sum;sum=fun(a+,b+,a+b),c+);printf(“%d/n“ ,sum);执行后的结果是( )。(分数:2.00)A.6B.7C.8D.938

16、.算法的时间复杂度是指( )。(分数:2.00)A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程所需要的基本运算次数D.算法程序中的指令条数39.合法的 main()函数命令参数形式是( )。(分数:2.00)A.main(int a,char*c)B.main(int arc,char* *arv)C.main(int argc,char*argw)D.main(int argv,char*argc)40.下列程序的输出结果是( )。# includestdio.hint b=2;int func(int*a)b+=*a;return b;)main()int a=1,t=2;

17、t+=func(a);printf(“%d/n“,t);(分数:2.00)A.4B.5C.6D.8二、填空题(总题数:13,分数:30.00)41.全面支持软件开发过程的软件工具集合称为 1。(分数:2.00)填空项 1:_42.数据模型分为格式化模型与非格式化模型,层次模型与网状模型属于 1。(分数:2.00)填空项 1:_43.冒泡排序算法在最好的情况下元素交换次数为 1 次。(分数:2.00)填空项 1:_44.若想通过以下输入语句给 a赋予 1,给 b赋予 2,则输入数据的形式应该是_。int a,b;scanf(“a=%d,b=%d“,a,b);(分数:2.00)填空项 1:_45.

18、数据的独立性分为逻辑独立性与 1。(分数:2.00)填空项 1:_46.在关系模型中,二维表的行称为 1。(分数:2.00)填空项 1:_47.下列程序的输出结果是_。main()int a=2,b=4,c=6;int*p1=a,*p2=b,*p;*(p=c)=*p1*(*p2);printf(“%d/n“,c);(分数:2.00)填空项 1:_48.下面程序的输出是_。main()enum em em1=3,em2=1,em3);char*aa=“AA“,“BB“,“CC“,“DD“);printf(“%s%s%s/n“ ,aaem1,aaem2,aaem3);(分数:2.00)填空项 1:

19、_以下程序中,函数 fun的功能是计算 x2-2x+6,主函数中将调用 fun函数计算:y1=(x+8)2-(x+8)+6y2=sin2(x)-2sin(x)+6请填空。# includemath.hdouble fun(double x)return(x*x-2*x+6);main()double x,y1,y2;printf(“Enter x:“);scanf(“%1f“,x);y1=fun(_)y2=fun(_)printf(“y1=%1f, y2=%1f/n“,y1, y2);(分数:4.00)填空项 1:_填空项 1:_49.若 a是 int型变量,且 a的初值为 5,则计算 a+=

20、a-=a*a表达式后 a的值为 1。(分数:2.00)填空项 1:_50.下列程序的循环次数是_。x=2;dox=x*x;while(!x);(分数:2.00)填空项 1:_51.下列程序的运行结果是_。main()int s=0,i=1;while(s=10)s=s+i*i;i+:printf(“%d“,-i);(分数:2.00)填空项 1:_下面程序把从终端读入的文本(用作为文本结束标志)复制到一个名为 bi.dat的新文件中,请填空。# includestdio.hFILE*fp;main()char ch;if(fp=fopen(_)=NULL) exit(0);while(ch=ge

21、tchar()!=)fputc(ch,fp);_;(分数:4.00)填空项 1:_填空项 1:_二级 C语言笔试-216 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.一个关系中属性个数为 1时,称此关系为( )。(分数:2.00)A.对应关系B.单一关系C.一元关系 D.二元关系解析:解析 在关系模型数据库,我们把构成基本结构的一维表称为关系。关系的列称为属性,具有 N个属性的关系称为 N元关系。2.下列叙述中正确的是( )。(分数:2.00)A.在面向对象的程序设计中,各个对象之间具有密切的关系B.在面向对象的程序设计中,各个对象都是公

22、用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小 D.上述 3种说法都不对解析:解析 本题考查对面向对象的理解,面向对象的程序设计是对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。3.以下程序的输出结果是( )。main()char str 10=“china“,“beijing“),* p=str;printf(“%s/n“ ,p+10);(分数:2.00)A.ChinaB.Beijing C.ngD.ing解析:解析 本题考查指针,由*p=str 可知,指针 p指向字符串数组的首地址。二维数组 str为每个字符串分配的存储空间

23、是 10个字节,因此 p+10指向 str10,输出的字符串就是数组中的第 2个字符串。4.以下程序的输出结果是( )。main()int i;for (i=0;i3;i+)switch(i) case O:printf(“%d“,i);case 2:printf(“%d“,i);default:printf(“%d“,i);(分数:2.00)A.000102B.000020C.000122 D.000111解析:解析 当 i=0时,执行 switch语句,对应的执行 case 0输出 0,因为没有 break接着执行 case 2的语句,又输出一个 0,接着执行 default语句,再输出一

24、个 0,返回 i+;i=1 时,没有 case语句,执行 default语句,输出一个 1,接着又返回 i+,当 i=2时执行 case 2和 default语句分别输出一个2,此时又返回 i+,i 变为 3,for 循环不成立,终止,最后输出 000122。5.对两个数组 a和 b进行下列初始化:char m=“1234567“;char n=1,2,3,4,5,6,7;则下列叙述正确的是()。(分数:2.00)A.数组 m与数组 n完全相同B.数组 m与数组 n长度相同C.数组 m比数组 n长 1 D.数组 m与数组 n中都存放字符串解析:解析 本题考查字符串数组和字符数组赋值的区别。“c

25、har m=”1234567”;”定义一个字符型数组并初始化,C 语言规定,在字符串的末尾自动加上串结束标记/0,因此数组 m的长度是 8;而数组 n是按照字符方式对数组初始化,系统不加上串结束标记/0,因此数组 n的长度是 7。6.下列变量声明合法的是( )。(分数:2.00)A.short a=1.4e-1; B.double b=1+3e2.8;C.long do=0xfdaL;D.float 2_aaa=1e-3;解析:解析 解答本题需了解 3个知识点:标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线;do 是 C语言的一个关键字,不能再用作变量名和函数名;C

26、语言规定指数形式的实型数量 e或 E后面的指数必须是整数。7.有如下程序:# includestdio.hmain()FILE *fp1;fp1=fopen(“f1.txt“,“w“);fprintf(fp1,“abc“);fclose(fp1);若文本文件 f1.txt中原有内容为:good,则运行以上程序后文件 f1.txt中的内容为( )。(分数:2.00)A.goodabcB.abcdC.abc D.abcgood解析:解析 当用“w”打开时,已存在一个以该文件名命名的文件,则在打开时将该文件删除,再重新建立一个新文件,因此当输入时原来的内容已被覆盖,所以只有后输入的内容,故选择 C选

27、项。8.运行下列程序,若从键盘输入字符“a”,则输出结果是( )。char c:c=getchar();if(c=ac=g)c=c+4;else if(c=gc=2)c=c-21;else printf(“input error!/n“);putchar(c);(分数:2.00)A.fB.tC.e D.d解析:解析 getchar 函数是读取键盘的输入函数,本题中输入字母“a”,则 c-a判断 if条件,发现a=aa=g成立,则执行下列语句,c=c+4,c 得到的字符的 ASC码值,退出 if语句,通过 putchar函数输出字符。9.设 x为 int型变量,则执行以下语句后,x 的值为( )

28、。x=10;x=x-=x-x;(分数:2.00)A.10 B.20C.40D.30解析:解析 执行 x=x-=x-x语句可写成:x=x-(x-x)可看出结果为 10,故 A选项正确。10.下列程序的运行结果是( )。# includestdio.h# define ADD(x) x+xmain()int m=1,n=2,k=3;int s=ADD(m+n)*k;printf(“s=%d”,s);(分数:2.00)A.sum=18B.sum=10 C.sum=9D.sum=25解析:解析 本题考查带参数的宏的定义”#define ADD (x)x+x“中 x代表 m+n,故 s写成s=m+n+m

29、+n*k=1+2+1+2*3-10。11.与“y=(x0? 1:x0?-1:0)”;的功能相同的 if语句是( )。(分数:1.00)A.if(x0)y=1;B.if(x)else if(x0)y=1; if(x0)y=1;else y=0; else if(x0)y=-1;else y=0; C.y=-1D.y=0;if(x) if(x=0)if(x0)y=1; if(x=0)y=1;else if(x=0)y=0; else y=-1;else y=-1;解析:解析 y-(x0? 1:x0? -1:0)中有两个三目运算符,因此按从右到左的顺序运算,可写成y=(x0?1:(x0?-1;0),

30、故选择 B选项。12.若某二叉树的前序遍历访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是( )。(分数:1.00)A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca 解析:解析 后序遍历首先遍历左子树或左子结点,然后遍历右子树或右子结点,最后访问根结点。前序遍历首先访问根结点,依次访问左子树、右子树。本题根据前序和中序遍历的结果确定,然后再对其进行后序遍历,正确答案为选项 D。13.下列程序执行后的输出结果是( )。main()int a33,*p,i;p=a00;for(i=p;i9;i+)pi=i+1;prin

31、tf(“%d/n“,a12);(分数:1.00)A.3B.6C.9D.随机数 解析:解析 程序执行在 for循环,当 i-p时,i 中放的是 p的地址,类型不符合,因此输出随机数,故选择 D选项。14.设 x=011050,设 x=x01252 的值是( )。(分数:1.00)A.0000001000101000 B.1111110100011001C.0000001011100010D.1100000000101000解析:解析 本题考查按位与运算,按位与就是相同为 1,不同为 0,把 x=011050化成二进制为0001001000101000,把 01252化成二进制为 00000010

32、10101010两者相与得 0000001000101000。15.三种基本结构中,能简化大量程序代码的是( )。(分数:1.00)A.顺序结构B.分支结构C.选择结构D.重复结构 解析:解析 重复结构也称为循环结构,它根据给定的条件,判断是否需要重复执行某一相同或类似的程序段,这种可以简化大量的程序行。16.s1和 s2已正确定义并分别指向两个字符串。若要求:当 s1所指串大于 s2所指串时,执行语句 S;则以下选项中正确的是( )。(分数:1.00)A.if(s1s2)S;B.if(strcmp(s1,s2)S;C.if(strcmp(s2,s10)S;D.if(strcmp(s1,s20

33、)S; 解析:解析 在 C语言中,不能直接比较两个字符串的大小,只须用特定的函数来完成,选项 A错误;选项 B不管大于还是小于都执行 S,不符合题意;选项 C正好相反,当 s2大于 s1时,执行语句 S;可知选项 D正确。17.下列程序执行的输出结果是( )。# includestdio.hmain()char a24;strcpy(a,“are“); strcpy(a1,“you“);a03=;printf(“%s/n“ ,a);(分数:1.00)A.areyou B.youC.areD.解析:解析 strcpy(a,“are”)中数组名 a代表数组首地址 a00的地址常量,该操作把 are

34、复制到 a00strcpy(a1,“you”)中 a1代表 a10的首地址,该操作把 you复制到 a10中,a03=,故输出 a为“areyou”。18.下列程序输出结果是( )。# includestdio.hmain()char a=a,b,c,d,e,f,/0);int i,j;i=sizeof(a);j=strlen(a);printf(“%d,%d“,i,j);(分数:1.00)A.7,7B.7,6 C.6,6D.6,7解析:解析 本题要注意 sizeof()和 strlen()的区别,sizeof()函数的功能是返回字符串所占的字节数,strlen()函数的功能是返回字符串长度,

35、/0是一个转义符,它占存储空间,但不计入串的长度。19.以下程序的输出结果是( )。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.程序陷入死循环 解析:解析 当 i=0时,两个 if都不满足,所以都不执行,直接执行 i+语句,此时 i为 1,s 为 1,返回 for循环中;当 i=1时,同样不执行两个 if语句,执行 i+后,i=2,s=3,返回 for循环中;1=2 时也不执行 if语句,执行 i+后,i=3,s=6,接着又

36、执行 for循环,此时符合第一个 if语句,执行到continue时不再执行 i+了,continue 是跳出本次循环,接着下次循环。永远这样执行下去,i 的值永远为 3,故选择 D选项。20.以下程序的输出结果是( )。int f(int A)return a%2;main()int s8=1,3,5,2,4,6,i,d=0;f.r(i=0;f(s8);i+)d+=si;printf(“%d/n“,d);(分数:1.00)A.9 B.11C.19D.21解析:解析 在程序中当 i=0时,s0=1,f(s0)为 1,执行 d+=s0,d 的值为 1,i+也变为 1。当i=1时,s1=3,f(s

37、1)为 1,也为非 0,继续执行后面的表达武,此时 d的值为 1+3=4,继续着 i+变为 2,接着执行 for循环,可知 for循环的目的是把 s数组中的奇数相加,因此最后 d的值为 1+3+5为9,故选择 A选项。21.有如下程序:main()int a=2,b=-1,c=2;if(a0)if(b0)c=0;else c+;printf(“%d/n“,c);该程序的输出结果是( )。(分数:2.00)A.0B.1C.2 D.3解析:解析 else 与离它最近的 if构成 if.else语句,而当 a为 2时,第一个 if语句不成立,因此什么也不做,即 c的值仍然为 2,故选择 C选项。22

38、.假设 a和 b为 int型变量,则执行以下语句后 b的值为( )。a=1;b=10;dob-=a;a+;while(b-0);(分数:2.00)A.9B.-2C.-1D.8 解析:解析 当 b为 10时,执行 b-=a,此时 b为 9,接着 b-表达武值为 9,b 的值为 8,大于0,while 不成立,退出循环,故选择 D选项。23.下列程序的输出结果是( )。# includestdio.hmain()int i;for(i=1;i=10,i+)if(i*i=20)(i*i=100)break;printf(“%d/n“,i*i);(分数:2.00)A.49B.36C.25 D.64解析

39、:解析 本题考查 for循环及 if语句。当执行到第一个满足(i*i=20)(i*1=100)这个条件的 i出现时,break 跳出循环,执行下列的 printf语句。24.有以下程序:int fun(int x)int p;if(x=0|x=1) return(3);p=x-fun(x-2);return p;main()printf(“%d/n“,fun(7);执行后的结果是( )。(分数:2.00)A.7B.3C.2 D.0解析:解析 调用函数 fun(7)时,由于 x的值为 7,执行语句“p=x-fun(x-2);”,相当于执行 p=7-fun(5);调用函数 fun(5)时,由于 x

40、的值为 5,执行语句“p=x-fun(x-2);”,相当于执行 p=7-fun(3);调用函数 fun(3)时,由于 x的值为 3,执行语句“p=x-fun(x-2);”,相当于执行 p=7-fun(1);调用函数 fun(1)时,由于 x的值为 1,执行语句“return(3);”,函数的返回值为 3。因此函数调用 fun(7)等价于 7-(5-fun(3),即 7-(5-(3-fun(1),印 7-(5-(3-3),所以函数 fun(7)的返回值为 2。答案为 C。25.若有定义“float a=25,b,*p=b;”,则下列对赋值语句“*p=a;”和“p=a;”的正确解释为( )。(分数

41、:2.00)A.两个语句都是将变量 a的值赋予变量 pB.*p=a是使 p指向变量 a,而 p=a 是将变量的值赋予变量指针 pC.*p=a是将变量 a的值赋予变量 b,而a 是使 p指向变量 a D.两个语句都是使 p指向变量 a解析:解析 “p“是指针变量,指向一个地址:“*p”为 p指针所向地址的内容。“”是取变量地址。26.执行下列程序后,变量 a,b,c的值分别是( )。int x=5,y=4;int a,b,c;a=(-x=y+)?x:+y;b=+x:c=y;(分数:2.00)A.a=5,b=5,c=5B.a=4,b=5,c=5 C.a=5,b=6,c=5D.a=1,b=5,c=6

42、解析:解析 本题考查自加(+)、自减(-)运算符的使用。“+x,-x”,在变量 x前使用,先使 x的值加 1或者减 1,再使用此时的表达式的值参与运算:“x+,x-”,先把使用 x的值参与运算,在使用x之后,再使 x的值加 1或者减 1。对于表达式-x=4,y+=4,两者相等,-x=y+为真,所以 a=x=4,执行完此语句后 y的值是 5。第 2个表达式 b=+x,x 的值先加 1,然后赋给 b,即 b=x+1=5;第一个表达式 c=y=5。故 B正确。27.若有以下定义:char a;int b;float c:double d;则表达式 a*b+b-c值的类型为( )。(分数:2.00)A

43、.floatB.intC.charD.double 解析:解析 在表达式 a*b+d-c中 double的类型最高,C 语言中,由低类型自动向高类型转换,所以最后的结果一定是 double型。28.有以下函数:char fun(char*p)return p;该函数的返回值是( )。(分数:2.00)A.无确切的值 B.形参 p中存放的地址值C.一个临时存储单元的地址D.形参 p自身的地址值解析:解析 在程序中因为 fun函数的返回值为 char,而 p是指向 char的指针变量,因此类型不匹配,故选择 A选项。29.下列选择中,不能用作标识符的是( )。(分数:2.00)A._1234_B.

44、_1_2C.int_2_D.2_int_ 解析:解析 C 语言规定标识符是由字母、数字和下划线组成的,且必须以字母或下划线开头,因此可知 D选项错误。30.有以下结构体说明和变量的定义,且指针 p指向变量 a,指针 q指向变量 b,则不能把结点 b连接到结点 a之后的语句是( )。struct nodechar data;struct node*next;a,b,*p=a,*q=b;(分数:2.00)A.next=q;B.next=b; C.p-next=b;D.(*p).next=q;解析:解析 本题考查结构体指针变量的赋值方法,要把结点 b连接到结点 a的后面必须把 b的地址给a的 nex

45、t指针。故 B正确。31.在结构化分析方法中,数据字典的作用是( )。(分数:2.00)A.存放所有需要处理的原始数据B.存放所有处理的结果C.存放所有程序文件D.描述系统中所用到的全部数据和文件的有关信息 解析:解析 在 C语言中结构化分析方法中的数据字典的作用是描述系统中所用到的全部数据和文件的有关信息。32.在 C语言中,函数返回值的类型最终取决于( )。(分数:2.00)A.函数定义时在函数首部所说明的函数类型 B.return语句中表达式值的类型C.调用函数时主调函数所传递的实参类型D.函数定义时形参的类型解析:解析 在 C语言中,函数返回的类型最终取决于函数定义时在函数首部所说明的

46、函数类型,与调用函数时主调函数所传递的实参类型和函数定义时形参的类型无关,而 return语句表达武的值将强制转换为函数定义时在函数首部所说明的函数类型返回。33.下列程序执行后的输出结果是( )。main()int x=f; printf(“%c/n“,A+(x-a+1);(分数:2.00)A.GB.HC.ID.J 解析:解析 因为 x-f,所以写成A+(x-a+1)=A+(f-a+1)=A+6=J,故选择 D选项。34.已知函数 fread的调用形式为“fread(buffer,size,count,fp);”,其中 buffer代表的是( )。(分数:2.00)A.存放读入数据项的存储区

47、B.一个指向所读文件的文件指针C.一个指针,是指向输入数据存放在内存中的起始地址 D.一个整型变量,代表要读入的数据项总数解析:解析 本题考查数据块读取函数调用形式:fread(buffer,size,count,fp)。fread函数参数说明:“buffer“是一个指针,是读入数据的存放地址,对 fwrite来说,是要输出数据的地址;“size”是要读写的字节数;“count”是要进行读写多少个 stze字节数据项;“fp”是指文件型指针。35.概要设计中要完成的事情是( )。(分数:2.00)A.系统结构和数据结构的设计 B.系统结构和过程的设计C.过程和接口的设计D.数据结构和过程的设计解析:

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

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

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