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

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

1、二级 C 语言笔试 379 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:70.00)1.语句“printf(“a/bhow/are/y/bou/n“);”的输出结果是( )。(分数:2.00)A.a/bhow/are/y/bouB.a/bhow/are/y/bouC.howareyouD.ahowarey/bou2.下列程序中 c 的二进制值是( )。 char a=2,b=4,C; c=ab2;(分数:2.00)A.00000011B.00010100C.00011100D.000110003.下列描述中正确的是( )。(分数:2.00)A.软

2、件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D.软件工程只是解决软件开发过程中的技术问题4.两次运行下列的程序,如果从键盘上分别输入 3 和 1,则输出结果是( )。 main() int x; scanf(“%d“, if(x+2) printf(“%d“,x); else printf(“%d/n“,x-); (分数:2.00)A.4 和 2B.4 和 1C.4 和 0D.3 和 15.下列合法的字符型常量是( )。(分数:2.00)A./x13B./081C.65D.“/n“6.下列程序段的运行结果

3、是( )。 #includestdio.h void main() char str=“ABC“,*p=str; printf(“%d/n“,*(p+3) ); (分数:2.00)A.67B.0C.字符C的地址D.字符C7.下列程序的输出结果是( )。 #includestdio.h main() stmct st int y,x,z; ; union long i; int j; char k; un; printf(“%d,%d/n“,sizeof(stmct st),sizeof(un); (分数:2.00)A.6,2B.6,4C.8,4D.8,68.下列说法不正确的是( )。(分数:2

4、.00)A.C 程序是以函数为基本单位的,整个程序由函数组成B.C 语言程序的一条语句可以写在不同的行上C.C 程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写D.C 程序的每个语句都以分号结束9.下列程序的运行结果是( )。 #includestdio.h #includestring.h main() char*s1=“abDuj“; char*s2=“ABdUG“; int t; t=strcmp(s1,s2) ; printf(“%d“,t); (分数:2.00)A.正数B.负数C.零D.不确定的值10.设有下列定义: struct sk int m; float x;

5、 data,*q; 若要使 q 指向 data 中的 m 域,正确的赋值语句是( )。(分数:2.00)A.q=B.*q=datm;C.q=(struct sk*)D.q=(struct sk*)datm;11.下列 4 个关于 C 语言的结论中错误的是( )。(分数:2.00)A.可以用 dowhile 语句实现的循环一定可以用 while 语句实现B.可以用 for 语句实现的循环一定可以用 while 语句实现C.可以用 while 语句实现的循环一定可以用 for 语句实现D.dowhile 语句与 while 语句的区别仅是关键字“while”出现的位置不同12.待排序的关键码序列为

6、(33,18,9,25,67,82,53,95,12,70) ,要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码 33 被放到第 ( )个位置。(分数:2.00)A.3B.5C.7D.914.数据库系统的核心是( )。(分数:2.00)A.数据模型B.数据库管理系统C.数据库D.数据库管理员15.栈和队列的共同点是( )。(分数:2.00)A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同特点16.下列程序段的输出结果为( )。 #includestdio.h main() static char a=“language“; c

7、har*p; p=a; for(p=a;pa+8;p+=2) putchar(*p); (分数:2.00)A.languageB.lnugC.有语法错误D.lang17.下列二维数组初始化语句中,不正确的是( )。(分数:2.00)A.int b2=1,2,3,4,5,6,7;B.int b35=0,0,0;C.int b4=1,2,3,4,5,6;D.int b32=(1,2),(3,4) ,(5,6);18.源程序的文档化不包括( )。(分数:2.00)A.符号名的命名要有实际意义B.正确的文档形式C.良好的视觉组织D.正确的程序注释19.下列程序的运行结果是( )。 main() int

8、 a=-5,b=1,c=1; int x=0,y=2,z=0; if(c0) x=x+y; if(a=0) if(b0) if(c=0) y=x-y; else if(c0) y=x-y; else z=y; printf(“%d,%d,%d/n“,x,y,z); (分数:2.00)A.2,2,0B.2,2,2C.0,2,0D.2,0,220.数据的存储结构是指( )。(分数:2.00)A.数据所占的存储空间B.数据的逻辑结构在计算机中的存放形式C.数据在计算机中的顺序存储方式D.存储在计算机外存中的数据21.若有说明 int a3=0,0;,则不正确的叙述是( )。(分数:2.00)A.数组

9、 a 的每个元素的初值都是 0B.数组 a 的第一维大小为 1C.数组 a 的行数为 1D.只有元素 a00和 a01可得到初值 0,其余元素均得不到初值 022.已知 i、j、k 为 int 型变量,若要从键盘输入 2、3、4CR,使 i、j、k 的值分别为 2、3、4,下列正确的输入语句是( )。(分数:2.00)A.scanf(“%3d,%3d,%3d“,B.scanf(“%d,%d,%d“,C.scanf(“%d%d%d“,D.scanf(“i=%d,j=%d,k=%d“,23.下列叙述中正确的是( )。(分数:2.00)A.算法的执行效率与数据的存储结构无关B.算法的空间复杂度是指算

10、法程序中指令(或语句)的条数C.算法的有穷性是指算法必须能在执行有限个步骤之后终止D.以上三种描述都不对24.若变量已正确定义,下列正确的程序段是( )。(分数:2.00)A.while(ch=getchar()=/N)putchar(c;B.while(ch=getchar()=/n)putchar(c;C.while(ch=getchar()!=/N)putchar(c;D.while(ch=getchar()!=/n)putchar(c;25.下列程序的输出结果是( )。 #includestdio.h int fun(int x) int a; if(x=0x=1) return 3;

11、 else a=x-fun(x-2) ; return a; void main() printf(“%d“,fun(7) ); (分数:2.00)A.2B.8C.9D.526.若 w、x、y、z、m 均为 int 型变量,则执行下列的语句后 m 的值是( )。 w=2,x=3,y=4,z=5; m=(wx)?W:x: m=(mz)?m:Z; m=(my)?m:y;(分数:2.00)A.2B.3C.5D.427.有下列函数定义: int fun(double a,double B) return a*b; 若下列选项中所用变量都已正确定义并赋值,错误的函数调用是( )。(分数:2.00)A.i

12、f(fun(x,)B.z=fun(fun(x,fun(x,);C.z=fun(fun(x,x,;D.fun(x,;28.下列标识符不是关键字的是( )。(分数:2.00)A.breakB.charC.SwitchD.return29.标准库函数 fgets(s,n,file)的功能是( )。(分数:2.00)A.从文件 file 中读取长度为 n 的字符串存入字符数组 s 中B.从文件 file 中读取长度不超过 n-1 个字符的字符串放到字符数组 s 中C.从文件 file 中读取 n 个字符串存入字符数组 s 中D.从文件 file 中读取长度为 n-1 个字符的字符串存入字符数组 s 中

13、30.下列叙述中正确的是( )。(分数:2.00)A.break 语句只能用于 switch 语句体中B.continue 语句的作用是使程序的执行流程跳出包含它的所有循环C.break 语句只能用在循环体内和 switch 语句体内D.在循环体内使用 break 语句和 continue 语句的作用相同31.下列程序的运行结果是( )。 #includestdio.h voidfun(int*s,int*p) static int t=3; *p=st; t-; void main() int a=2,3,4,5,k; int x; for(k=0;k4;k+) fun(a, printf(

14、“%d,“,x); (分数:1.00)A.5,4,3,2B.2,3,4,5,C.2,2,2,2,D.5,5,5,5,32.下列选项中不合法的+六进制数是( )。(分数:1.00)A.OxffB.OXllC.OxlgD.OXabc34.对长度为 n 的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。(分数:1.00)A.125B.n/2C.nD.n+135.有下列函数: int fun(char*S) char*t=s; while(*t+ +); return(t-s); 该函数的功能是( )。(分数:1.00)A.比较两个字符串的大小B.计算 s 所指字符串占用内存字节的个数C.计算

15、 s 所指字符串的长度D.将 s 所指字符串复制到字符串 t 中36.下列程序的执行结果是( )。 #includestdio.h main() inta,b,c; a=b=2; c=(a+)-1;printf(“%d,%d“,a,c) ; c+=-a+(+b) ;printf(“%d,%d“,a,c) ; (分数:1.00)A.3,1 4,1B.3,1 4,2C.2,04,1D.2,1 4,137.为了提高软件模块的独立性,模块之间最好是( )。(分数:1.00)A.控制耦合B.公共耦合C.内容耦合D.数据耦合38.有下列二叉树,对此二叉树中序遍历的结果为( )。 (分数:1.00)A.AB

16、CDEFB.BDAECFC.ABDCEFD.ABCDFE39.在 C 语言中,函数返回值的类型最终取决于( )。(分数:1.00)A.函数定义时在函数首部所说明的函数类型B.return 语句中表达式值的类型C.调用函数时主调函数所传递的实参类型D.函数定义时形参的类型40.判断字符串 s1 是否大于字符串 s2,应该使用( )。(分数:1.00)A.if(strcmp(s1,s2)0)B.if(s1s2)C.if(strcmp(s2,s1)0)D.if(strcmp(s1,s2)二、B填空题/B(总题数:15,分数:30.00)41.在数据的存储结构中,不仅需要存储各数据元素的信息,还要存放

17、各元素之间 1 的信息。(分数:2.00)填空项 1:_42.按照“先进先出”的原则组织数据的结构是 1。(分数:2.00)填空项 1:_43.深度为 5 的满二叉树中,叶子结点的个数为 1。(分数:2.00)填空项 1:_44.在面向对象的方法中, 1 描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_45.Jackson 方法是一种面向 1 的结构化方法。(分数:2.00)填空项 1:_46.若 a 是血型变量,则表达式(a=2*3,a*2) ,a+6 的值为_。(分数:2.00)填空项 1:_47.表达式 1/2*(int)3.7/(int)(2.4*(1.5+2.5

18、) )值的数据类型为 1。(分数:2.00)填空项 1:_48.下列程序段的输出结果是_。 int n=C; switch(n+) default:printf(“error“);break; casea:printf(“good“);break; caseC:printf(“moming“); cased:printf(“class“); (分数:2.00)填空项 1:_49.写出下列程序的输出结果_。 main() int n=0; while(n+=1) ; printf(“%d,“,n); printf(“%d“,n+); (分数:2.00)填空项 1:_50.下列程序的功能是对输入的

19、一行字符中的数字字符的字面值累加,输出此累加和,请填空。 #includestdio.h #includectype.h main() char c; int a,s=0; while(_) if(isdigit(C) ) a=c-0;s+=a; printf(“s=%d“,s); (分数:2.00)填空项 1:_51.下列程序输出的结果是_。 int m=17; int fun(int x,int y) int m=3; return(X*y-m); main() int a=5,b=7; printf(“%d/n“,fun(a,B) /m); (分数:2.00)填空项 1:_52.设有下列

20、的程序段: char str=“Hello“; char*ptr; ptr=-str; 执行上面的程序段后,*(ptr+5) 的值为_。(分数:2.00)填空项 1:_53.若有定义 int a44=1,2,3,4,0,4,6,8,10,1,3,5,7,则初始化后,a11得到的初值是_。(分数:2.00)填空项 1:_54.设有下列程序: #includestdio.h #includestring.h main() int i; char s10,t10; gets(t); for(i=0;i2;i+) gets(s); if(strcmp(t,s)0) strcpy(t,s); print

21、f(“%s/n“,t); 程序运行后,从键盘上输入(CR代表回车符):CDEFCRBADEFCRQTHRGCR,则程序的输出结果是_。(分数:2.00)填空项 1:_55.下列程序的输出结果是_。 #define P(A) printf(“%d,“,(int)(A) ) #definePRINT(A) P(A) ;printf(“the end“) main() int i,a=0; for(i=1;i5;+) PRINT(a+i); printf(“/n“); (分数:2.00)填空项 1:_二级 C 语言笔试 379 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总

22、题数:40,分数:70.00)1.语句“printf(“a/bhow/are/y/bou/n“);”的输出结果是( )。(分数:2.00)A.a/bhow/are/y/bouB.a/bhow/are/y/bouC.howareyou D.ahowarey/bou解析:解析 “/b”格式符表示退格,功能是将它后面的字母把它前面的字母覆盖,导致“/b 格式符前面的字母不能输出;“/”格式符表示输出单引号字符;“/”格式符表示输出反斜线字符。2.下列程序中 c 的二进制值是( )。 char a=2,b=4,C; c=ab2;(分数:2.00)A.00000011 B.00010100C.00011

23、100D.00011000解析:解析 本题主要考查按位异或和右移运算。b=4 的二进制为 00000100,b2 后为00000001,a=2 的二进制为 00000010,两者异或为 00000011。3.下列描述中正确的是( )。(分数:2.00)A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 D.软件工程只是解决软件开发过程中的技术问题解析:解析 软件工程是指将工程化的思想应用于软件的开发、应用和维护的过程,包括软件开发技术和软件工程管理。4.两次运行下列的程序,如果从键盘上分别输入 3 和 1

24、,则输出结果是( )。 main() int x; scanf(“%d“, if(x+2) printf(“%d“,x); else printf(“%d/n“,x-); (分数:2.00)A.4 和 2 B.4 和 1C.4 和 0D.3 和 1解析:解析 本题考查 if else 语句。首先 scanf 函数通过键盘读入 x 的值。,当 x=3 时,第一个 if 语句,先判断条件,取 x 的值 3 和 2 比较,然后将 x 的值加 1,发现条件成立,执行下列的 printf 语句,输出 x 的值 4。当 x=1 时,第一个 if 语句,先判断条件,取 x 的值 1 和 2 比较,然后将 x

25、 的值加 1(x 的值变为 2),发现条件不成立,执行下列的 else 语句,先输出 x 的值 2,再将 x 的值减 1。5.下列合法的字符型常量是( )。(分数:2.00)A./x13 B./081C.65D.“/n“解析:解析 C 语言的字符常量是用单引号()括起来的一个字符,也可以用以一个“/”开头的字符序列来表示字符常量。其中形式/ddd 表示 1 到 3 位 8 进制数所代表的字符;形式/xhh 表示 1 到 2 位 16 进制数所代表的字符。在本题中/x13表示回车符,是一个字符常量;而/081用 8 进制数所代表的字符形式不正确,因为 8 进制数所表示的字符中不会出现数字“8”;

26、65单引号(即撇号)括起来的不是一个字符,而是一个+进制数字:“/n“是用双引号括起来的一个字符,表示一个字符串,而不是字符常量。6.下列程序段的运行结果是( )。 #includestdio.h void main() char str=“ABC“,*p=str; printf(“%d/n“,*(p+3) ); (分数:2.00)A.67B.0 C.字符C的地址D.字符C解析:解析 先定义了一个指向字符型数组 str 的指针 p,指针 p 指向数组 str 的首地址,p+3 将指针指向 str3,又因为字符型数组在存放字符串时会自动在末尾加上/0,所以*(p+3)=0。7.下列程序的输出结果

27、是( )。 #includestdio.h main() stmct st int y,x,z; ; union long i; int j; char k; un; printf(“%d,%d/n“,sizeof(stmct st),sizeof(un); (分数:2.00)A.6,2B.6,4 C.8,4D.8,6解析:解析 本题主要考查结构体和联合内存使用的区别:结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立;联合所占用的内存空间为最长的成员所占用的空间。8.下列说法不正确的是( )。(分数:2.00)A.

28、C 程序是以函数为基本单位的,整个程序由函数组成B.C 语言程序的一条语句可以写在不同的行上C.C 程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写 D.C 程序的每个语句都以分号结束解析:解析 本题涉及 C 语言基本的 3 个知识点:C 语言的源程序是由函数构成的,函数是其基本单位,每一个函数完成相对独立的功能,其中只能包括一个主函数;C 语言规定每个语句以分号结束,其书写格式是自由的,一条语句可以写在不同的行上,或者一行也可以写多条语句;注释行虽然对程序的运行不起作用,但是它可以方便程序员阅读,提高程序的可读性和可移植性,所以书写注释行还是很有必要的。9.下列程序的运行结果

29、是( )。 #includestdio.h #includestring.h main() char*s1=“abDuj“; char*s2=“ABdUG“; int t; t=strcmp(s1,s2) ; printf(“%d“,t); (分数:2.00)A.正数 B.负数C.零D.不确定的值解析:解析 本题考查字符串比较函数和两个字符串比较的原则两个知识点:原则是依次比较两个字符串同一位置的一对字符,若它们的 ASCII 码值相同,则继续比较下一对字符,若它们的 ASCII 码值不同,则 ASCII 码值较大的字符所在的字符串较大;若所有字符相同,则两个字符串相等;若一个字符串全部 i个

30、字符与另一个字符串的前 i 个字符相同,则字符串较长的较大。 strcmp(s1,s2)的返回值,当str1str2 时,返回值0:当 str1=str2 时,返回值为 0;当 str1str2,返回值0。10.设有下列定义: struct sk int m; float x; data,*q; 若要使 q 指向 data 中的 m 域,正确的赋值语句是( )。(分数:2.00)A.q=B.*q=datm;C.q=(struct sk*) D.q=(struct sk*)datm;解析:解析 利用强制类型转换(street sk*),把整数型地址 char*p; p=a; for(p=a;pa

31、+8;p+=2) putchar(*p); (分数:2.00)A.languageB.lnug C.有语法错误D.lang解析:解析 本程序首先定义了静态字符数组 a,然后将指针 p 指向数组 a 的首地址。 第 1 次 for 循环,p=a,p 指向数组的第 1 个元素,*p 是取指针 p 所指地址的内容,输出 1;第 2 次 for 循环, p=p+2,则p 指向数组的第 3 个元素,*p 是取指针 p 所指地址的内容,输出 n;第 3 次 for 循环,p=p+2,则 p 指向数组的第 5 个元素,*p 是取指针 p 所指地址的内容,输出 u;第 4 次 for 循环,p=p+2,则 p

32、 指向数组的第 7 个元素,*p 是取指针 p 所指地址的内容,输出 g,结束循环。17.下列二维数组初始化语句中,不正确的是( )。(分数:2.00)A.int b2=1,2,3,4,5,6,7;B.int b35=0,0,0;C.int b4=1,2,3,4,5,6;D.int b32=(1,2),(3,4) ,(5,6); 解析:解析 在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取 0;C 语言规定,对于二维数组,只可以省略第 1 个方括号中的常量表达式,而不能省略第 2 个方括号中的常量表达式:赋的初值不能多于事先定义好的数组元素个数。选项 D)赋值表达式中对每

33、一维的元素赋初值应用,而不是()。18.源程序的文档化不包括( )。(分数:2.00)A.符号名的命名要有实际意义B.正确的文档形式 C.良好的视觉组织D.正确的程序注释解析:解析 源程序的文档化主要包括 3 点:符号名应具有一定实际的含义,便于理解程序功能;正确的程序注释;良好的视觉组织(利用空格、空行、缩进等技巧使程序层次清晰)。19.下列程序的运行结果是( )。 main() int a=-5,b=1,c=1; int x=0,y=2,z=0; if(c0) x=x+y; if(a=0) if(b0) if(c=0) y=x-y; else if(c0) y=x-y; else z=y;

34、 printf(“%d,%d,%d/n“,x,y,z); (分数:2.00)A.2,2,0 B.2,2,2C.0,2,0D.2,0,2解析:解析 本题考查 if else 语句的使用。 先判断第 1 个 if 语句,因为 c=10,所以x=x+y=0+2=2。第 1 个 if 语句,因为 a=-50,所以进入下列的复合语句。经判断发现,复合语句中第 2个汀语句的条件均不满足,不执行任何语句退出,在这个过程中 y 和 x 的值没有发生变化。20.数据的存储结构是指( )。(分数:2.00)A.数据所占的存储空间B.数据的逻辑结构在计算机中的存放形式 C.数据在计算机中的顺序存储方式D.存储在计算

35、机外存中的数据解析:解析 数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式,数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。21.若有说明 int a3=0,0;,则不正确的叙述是( )。(分数:2.00)A.数组 a 的每个元素的初值都是 0B.数组 a 的第一维大小为 1C.数组 a 的行数为 1D.只有元素 a00和 a01可得到初值 0,其余元素均得不到初值 0 解析:解析 本题考查给二维数组元素赋值。给二维数组元素赋值时应注意下列两点:在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取 0。二维数组第一维的大小由下列规则确定:当

36、初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小;当初值的个数不能被第二维的常量表达式的值除尽时,第一维的大小:所得商数+1。22.已知 i、j、k 为 int 型变量,若要从键盘输入 2、3、4CR,使 i、j、k 的值分别为 2、3、4,下列正确的输入语句是( )。(分数:2.00)A.scanf(“%3d,%3d,%3d“,B.scanf(“%d,%d,%d“, C.scanf(“%d%d%d“,D.scanf(“i=%d,j=%d,k=%d“,解析:解析 scanf 函数的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符

37、;“输入项地址表”是要输入的变量的地址。 若在格式符中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符,其中的逗号也必须输入。23.下列叙述中正确的是( )。(分数:2.00)A.算法的执行效率与数据的存储结构无关B.算法的空间复杂度是指算法程序中指令(或语句)的条数C.算法的有穷性是指算法必须能在执行有限个步骤之后终止 D.以上三种描述都不对解析:解析 算法的执行效率与数据的存储结构密切相关。算法的空间复杂度是指算法执行过程中所需的存储空间。24.若变量已正确定义,下列正确的程序段是( )。(分数:2.00)A.while(ch=getchar()=/N)putchar(c;B

38、.while(ch=getchar()=/n)putchar(c;C.while(ch=getchar()!=/N)putchar(c;D.while(ch=getchar()!=/n)putchar(c; 解析:解析 本题考查两个知识点:C 语言用/n这个字符常量表示换行:getchar 函数的作用是从终端输入一个字符,当遇到换行时结束输入。25.下列程序的输出结果是( )。 #includestdio.h int fun(int x) int a; if(x=0x=1) return 3; else a=x-fun(x-2) ; return a; void main() printf(“

39、%d“,fun(7) ); (分数:2.00)A.2 B.8C.9D.5解析:解析 本题考查函数的递归调用。在函数递归调用时,fun(7):a=7-fun(5)fun(5):a=5-fun(3) fun3:a=3-fun(1)fun(1):a=3,反推回去 fun(3):a=3-3=0 fun(5):a=5-0=5fun(7):a=7-5=2,最后的计算结果为 2。26.若 w、x、y、z、m 均为 int 型变量,则执行下列的语句后 m 的值是( )。 w=2,x=3,y=4,z=5; m=(wx)?W:x: m=(mz)?m:Z; m=(my)?m:y;(分数:2.00)A.2 B.3C.

40、5D.4解析:解析 条件表达式“a?b:c”的含义是:当 a 为真时,其值等于表达式 b 的值,当 a 为假时,其值等于表达式 c 的值。 表达式运算过程:第 1 个表达式:w=2x=3 为真,所以返回 w 的值,即 m=w=2;第2 个表达式:m=2z=5 为真,所以返回 m 的值,即 m=2;第 3 个表达式:w=2y4 为真,所以返回 m 的值,即 m=2。27.有下列函数定义: int fun(double a,double B) return a*b; 若下列选项中所用变量都已正确定义并赋值,错误的函数调用是( )。(分数:2.00)A.if(fun(x,)B.z=fun(fun(x

41、,fun(x,);C.z=fun(fun(x,x,; D.fun(x,;解析:解析 本题考查函数调用时的参数传递。C 项中第一个参数的表达式不正确,因此不能得到正确的结果。28.下列标识符不是关键字的是( )。(分数:2.00)A.breakB.charC.Switch D.return解析:解析 break、char、return、switch 都是 C 语言中的关键字,Switch 不是。因为 C 语言区分字母的大小写。29.标准库函数 fgets(s,n,file)的功能是( )。(分数:2.00)A.从文件 file 中读取长度为 n 的字符串存入字符数组 s 中B.从文件 file

42、中读取长度不超过 n-1 个字符的字符串放到字符数组 s 中 C.从文件 file 中读取 n 个字符串存入字符数组 s 中D.从文件 file 中读取长度为 n-1 个字符的字符串存入字符数组 s 中解析:解析 字符串输入函数 fgets()的调用形式为: fgets(s,n,fp)。fgets 函数参数说明:“s”可以是一个字符数组名,也可以是指向字符串的指针;“n”为要读取的最多的字符个数;“fp”是指向该文件的文件型指针。 fgets 函数的功能是:从 fp 所指向的文件中读取长度不超过 n-1 个字符的字符串,并将该字符串放到字符数组 s 中;读入字符串后会自动在字符串末尾加入“/0

43、”结束符,表示字符串结束。30.下列叙述中正确的是( )。(分数:2.00)A.break 语句只能用于 switch 语句体中B.continue 语句的作用是使程序的执行流程跳出包含它的所有循环C.break 语句只能用在循环体内和 switch 语句体内 D.在循环体内使用 break 语句和 continue 语句的作用相同解析:解析 只能在循环体内和 switch 语句体内使用 break 语句。当 break 出现在循环体的 switch 语句体内时,其作用只是跳出该 switch 语句体,并不能中止循环体的执行。若想强行中止循环体的执行,可以在循环体中,但并不在 switch 语

44、句中设置 break 语句,满足某种条件则跳出本层循环体。31.下列程序的运行结果是( )。 #includestdio.h voidfun(int*s,int*p) static int t=3; *p=st; t-; void main() int a=2,3,4,5,k; int x; for(k=0;k4;k+) fun(a, printf(“%d,“,x); (分数:1.00)A.5,4,3,2 B.2,3,4,5,C.2,2,2,2,D.5,5,5,5,解析:解析 分析 fun 函数程序段,可知 fun 函数要实现的功能是将 s 中第(t+1)个元素以前的元素逆置赋给数组 p。由于

45、 fun 中函数定义了静态变量 t=3,因此,在主函数中调用函数 fun(a, while(*t+ +); return(t-s); 该函数的功能是( )。(分数:1.00)A.比较两个字符串的大小B.计算 s 所指字符串占用内存字节的个数C.计算 s 所指字符串的长度 D.将 s 所指字符串复制到字符串 t 中解析:解析 在函数 fun(char*s)中,首先用字符指针变量 t 指向 s,而循环语句 while(*t+);的功能是使指针变量 t 指向字符串变量 s 的末尾,这时退出循环,因而语句 return(t-s);返回的就是字符串s 所指字符串的长度。36.下列程序的执行结果是( )。

46、 #includestdio.h main() inta,b,c; a=b=2; c=(a+)-1;printf(“%d,%d“,a,c) ; c+=-a+(+b) ;printf(“%d,%d“,a,c) ; (分数:1.00)A.3,1 4,1 B.3,1 4,2C.2,04,1D.2,1 4,1解析:解析 本题主要考查自加运算符(+、-)的使用。前缀变量“+i、-i”,在使用 i 之前,先使 i 的值加 1 或者减 1,再使用此时的表达式的值参与运算;后缀变量“i+、i-”,先使用此时的表达式的值参与运算,在使用 i 之后,再使 i 的值加 1 或者减 1。 本题中计算表达式 c=(a+)-1 时先使用a 的值进行计算,结果为 c=2-1=1,然后将 a 的值加 1,即执行完此语句后 a 的值是 3;表达式 c+=-a+(+b)等价于 c=c+(-a+)+(+b), c=1+(-3)+3=1, 此时 a=4,b=3。37.为了提高软件模块的独立性,模块之间最好是( )。(分数:1.00)A.控制耦合B.公共耦合C.内容耦合D.数据耦合 解析:解析 耦合性与内聚性是模块独立性的两个定性标准,是互相关联的。在程序设计中,各模块间的内聚性越强,则耦合性越弱。一般较

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

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

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