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

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

1、二级 C语言笔试-422 及答案解析(总分:99.50,做题时间:90 分钟)一、选择题(总题数:40,分数:66.00)1.在结构化程序设计中,模块划分的原则是A) 各模块应包括尽量多的功能 B) 各模块的规模应尽量大C) 各模块之间的联系应尽量紧密 D) 模块内具有高内聚度、模块间具有低耦合度(分数:2.00)A.B.C.D.2.下列叙述中错误的是( )。A) 线性表是由 n个元素组成的一个有限序列B) 线性表是一种线性结构C) 线性表的所有结点有且仅有一个前件和后件D) 线性表可以是空表(分数:2.00)A.B.C.D.3.某二叉树有 5个度为 2的结点,则该二叉树中的叶子结点数是A)

2、10 B) 8 C) 6 D) 4(分数:2.00)A.B.C.D.4.冒泡排序在最坏情况下的比较次数是_。(A) n(n+1)/2(B) nlog2n(C) n(n-1)/2(D) n/2(分数:2.00)A.B.C.D.5.有以下程序:main()int a=1,b=2,m=0,n=0,k;k=(n=ba)|(m=ab);printf(“%d,%d/n“,k,m);程序运行后的输出结果是 _。A) 0,0 B) 0,1 C) 1,0 D) 1,1(分数:2.00)A.B.C.D.6.将 E-R图转换到关系模式时,实体与实体间的联系可以表示成( )。A) 属性 B) 关系C) 键 D) 域(

3、分数:1.00)A.B.C.D.7.在 E-R图中,用来表示实休联系的图形是A) 椭圆形 B) 矩形C) 菱形 D) 三角形(分数:2.00)A.B.C.D.8.下列说法不正确的是( )A) C语言程序是以函数为基本单位的,整个程序由函数组成B) C语言程序的一条语句可以写在不同的行上C) C语言程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写D) C语言程序的每个语句都以分号结束(分数:2.00)A.B.C.D.9.下列说法不正确的是( )。A)一个 C语言源程序可以由一个函数组成也可以由多个函数组成B)main()中的“()”是函数的参数部分,括号内可为空,但括号不能省略C

4、)C语言程序是以函数为基本单位的D)在 C语言程序中,注释行只能位于一条语句的后面(分数:2.00)A.B.C.D.10.下列定义变量的语句中错误的是_。(A) int _int;(B) double int_;(C) char for;(D) float US$(分数:1.00)A.B.C.D.11.以下选项中属于 C语言数据类型的是( )。A) 复数型 B) 逻辑型 C) 双精度型 D) 集合型(分数:1.00)A.B.C.D.12.以下程序的输出结果是_。main()int a=3;printf(“%d/n“,(a+=a-+a*a) )A) -6 B) 1 C) 2 D) -12(分数:

5、2.00)A.B.C.D.13.以下程序的输出结果是( )。main()int a=4,b=3,c=2,d=1;printf(“%d“,ab?a:dc?d:b);A) 1 B) 3 C) 2 D) 4(分数:1.00)A.B.C.D.14.设有定义:int a=2,b=3,c=4;,则以下选项中值为 0的表达式是_。A) (!a=1)(!b=0) B) (aB) !c|1C) ab D) a|(b+b)(c-a)(分数:2.00)A.B.C.D.15.有以下程序:main()int a, b, d=25;a=d/10%9; b=aprintf(“% d, % d/n“, a, b) ;程序运行

6、后的输出结果是_。A) 6, 1 B) 2, 1 C) 6, 0 (D) 2, 0(分数:1.00)A.B.C.D.16.已有定义 int a=3;和输出语句 printf(“%8x“,a);以下正确的叙述是( )。 A) 整型变量的输出格式符只有%d 一种 B) %x是格式符的一种,它可以适用于任何一种类犁的数据 C) %x是格式符的一种,其变量的值按十六进制数输出,但%08x 是错误的 D) %8x是正确的格式符,其中数字 8规定了输出字段的宽度(分数:1.00)A.B.C.D.17.下列程序执行后的输出结果是main()int a33, *p,i;p=while(k+ printf(“%

7、d %d/n“, k, n);A) 0 2 B) 1 3 C) 5 7 D) 1 2(分数:2.00)A.B.C.D.19.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )。 A) 函数调用可以作为独立的语句存在 B) 函数调用可以作为一个函数的实参 C) 函数调用可以出现在表达式中 D) 函数调用可以作为一个函数的形参(分数:2.00)A.B.C.D.20.有下列函数定义:int fun(double a,double b) return a*b;若下列选项中所用变量都己正确定义并赋值,错误的函数调用是( )。A) if(fun(x,y) B) z=fun(fun(x,y)

8、,fun(x,y);C) z=fun(fun(x,y)x,y); D) fun(x,y);(分数:2.00)A.B.C.D.21.运行下面程序时,从键盘输入字母 H,则输出结果是main()char ch;ch=getchar();swimh(ch)caseH:printf(“Hello!/n“);caseG:printf(“Good morning!/n“);default:printf(“Bye_Bye!/n“);A) Hello!B) Hello!GoodMoring!C) Hello!Good moming!Bye_ye!D) Hello!Bye_ye!(分数:2.00)A.B.C.D

9、.22.下述函数功能是 _。int funr(char*x)char*y=x;while(*y+);return y-x-1;A) 求字符串的长度 B) 求字符串存放的位置C) 比较两个字符串的大小 D) 将字符串 x连接字符串 y后面(分数:2.00)A.B.C.D.23.有以下程序#include stdio.hvoid fun(int p)int d=2;p=d+; printf(“%d“,p);main()int a=1;fun(a);printf(“%d/n“,a);程序运行后的输出结果是A) 32 B) 12C) 21 D) 22(分数:2.00)A.B.C.D.24.下列程序中函

10、数 reverse()的功能是将 a所指数组中的内容进行逆置。#includestdio.hvoid reverse(int a,iht n)int i,t;for(i=0;in/2;i+)t=ai;ai=an-1-i;an-1-i=t;main()int b10=1,2,3,4,5,6,7,8,9,10;int i,s=0;reverse(b,10) ;for(i=0;i3;i+)s+=bi;printf(“%d/n“,s);程序运行后的输出结果是( )。A) 27 B) 6 C) 25 D) 30(分数:2.00)A.B.C.D.25.有以下程序point(char *p)p+=3;mai

11、n()char b4=a,b,c,d,*p=b;point(p); printf(“%c/n“,*p);程序运行后的输出结果是_。(A) a(B) b(C) c(D) d(分数:2.00)A.B.C.D.26.若有定义“int a23;”,以下选项中对 a数组元素正确引用的是( )。Aa2!1 Ba23Ca03 Da12!1(分数:1.00)A.B.C.D.27.关于字符常量,以下叙述正确的是( )。 A) 空格不是一个字符常量 B) 字符常量能包含大于一个的字符 C) 单引号中的大写字母和小写字母代表的是相同的字符常量 D) 所有的字符常量都可以作为整型量来处理(分数:2.00)A.B.C.

12、D.28.有以下程序#include stdio.hmain()int i,j;for(i=3;i=-1;i-)for(i=1;j=2;j+) printf(“%d“,i+j);printf(“/n“);程序的运行结果是_。A) 234345B) 432543C) 233445D) 453423(分数:2.00)A.B.C.D.29.设有定义:int n1=0, n2, *p=k=N(M(a,b),c);printf(“%d/n“,k);A)3 B)5 C)6 D)8(分数:2.00)A.B.C.D.31.下列程序段中,不能正确赋值的是( )。A) char*p,ch; p= scabf(“%

13、c“,p);C) char*p; *p=getchar();D) char*p,ch; p=,且数组 a的首地址为 300H,则 p+13所指向的数组元素的地址为 ( )。A) 334H B) 30DHC) 352H D) 31AH(分数:2.00)A.B.C.D.34.有下面程序段#include“stdio.h“#include“stringh“main()char a320=“china“,“isa“,“bigcountry!“;chark100=0,*p=k;int i;for(i=0;i3;i+)p=strcat(p,ai);i=strlen(p);printf(“%d/n“,“i)

14、;则程序段的输出结果是A) 18 B) 19 C) 20 D) 21(分数:2.00)A.B.C.D.35.下列二维数组的说明中,不正确的是( )。A) float a4=0,1,8,5,9; B) int a34C) #define N 5 float aN3D) int a29.5;(分数:1.00)A.B.C.D.36.若有语句 int *point,a=4;和 point=printf(“%d/n“,(MAX(a+b,c+D) )*100);A) 500 B) 5 C) 4 D) 400(分数:1.00)A.B.C.D.38.下面结构体的定义语句中,错误的是A) struct ordi

15、nt x; int y; int z; struct ord a;B) struct ordint x; int y; int z; struct ord a;C) struct ordint x; int y; int z; a;D) structint x; int y; int z; a;(分数:2.00)A.B.C.D.39.下面结构体的定义语句中,错误的是( )。Astruct ordint x;int y;int z;struct ord a; Bstruct ordint x;int y;int z;struct ord a;Cstruct ordint x;int y;int

16、z;a; Dstructint x;int y;int z;a;(分数:1.00)A.B.C.D.40.以下语句或语句组中能正确进行字符串赋值的是( )。 A) ehar以*sp; * sp = “right!“; B) char s10 ;s = “right!“;C) char s 10; * s = “right !“; D) char * sp = “right !“;(分数:1.00)A.B.C.D.二、填空题(总题数:15,分数:33.50)41.对下列二叉树进行中序遍历的结果是_。(分数:4.00)填空项 1:_42.在深度为 7的满二叉树中,度为 2的结点个数为 1。(分数:2

17、.00)填空项 1:_43.结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、U /U和限制使用 goto语句。(分数:2.00)填空项 1:_44.软件测试中路径覆盖测试是整个测试的基础,它是对软件U /U进行测试。(分数:2.00)填空项 1:_45.最简单的交换排序方法是 1。(分数:2.00)填空项 1:_46.某二叉树中度为 2的结点有 18个,则该二叉树中有 1 个叶子结点。(分数:2.00)填空项 1:_47.阅读下面程序段,则执行后输出的结果是_。#include“stdio.h“main()char fun(char,int);char a=A;int b=13;a=

18、fun(a,b);putchar(a);charfun(char a,int b)char k;k=a+b;return k;(分数:2.00)填空项 1:_48.下面程序的输出是U /U。main()int arr10,i,k=0;for(i=0;i10;i+)arri=i;for(i=1;i4;i+)k+=arri+i;printf(“%d/n“,k);(分数:2.00)填空项 1:_49.以下函数 fun的功能是返回 str所指字符中中以形参 c中字符开头的后续字符串的首地址,例如:str所指字符串为“Hello!”,c 中的字符为e,则函数返回字符串“ello!“的首地址。若 str

19、所指字符串为空中或不包含 c中的字符,则函数返回 NULL。请填空。char *fun (char *str,char c)int n=0;char*p=str;if(p!=NULL)while(Pn! =ca + =2;printf(“%d“,a);main()int cc;for(cc = 1;cc 4; cc+) fun();printf(“/n“);(分数:2.00)填空项 1:_52.下列程序的定义语句中,x1的初值是U /U,程序运行后输出的内容是U /U。#include stdio.hmain()int x=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

20、,16,*p4,i;for(i=0;i4;i+)pi=printf(“%d“,pi0);printf(“/n“);(分数:1.50)填空项 1:_53.下列程序的输出结果是_。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:_54.有下列程序:#include stdio.hmain()char C;while(c= getchar ()!=,) putchar(+c);程序运行时,如果从键盘输入:A,B,CR,则输出结果为_。(分数:2

21、.00)填空项 1:_55.下列程序的输出结果是_.#include stdio.hfun ()static int a=O;a+=3; printf(“%d“,a);main ()int cc;for (cc=1;cc5;cc+) fun();printf (“/n“);(分数:2.00)填空项 1:_二级 C语言笔试-422 答案解析(总分:99.50,做题时间:90 分钟)一、选择题(总题数:40,分数:66.00)1.在结构化程序设计中,模块划分的原则是A) 各模块应包括尽量多的功能 B) 各模块的规模应尽量大C) 各模块之间的联系应尽量紧密 D) 模块内具有高内聚度、模块间具有低耦合

22、度(分数:2.00)A.B.C.D. 解析:解析 在结构化程序设计中,一般较优秀的软件设计尽量做到高内聚、低耦合,这样有利于提高软件模块的独立性,也是模块划分的原则。2.下列叙述中错误的是( )。A) 线性表是由 n个元素组成的一个有限序列B) 线性表是一种线性结构C) 线性表的所有结点有且仅有一个前件和后件D) 线性表可以是空表(分数:2.00)A.B.C. D.解析:解析 线性表是一种线性结构,由 n(nO)个元素组成,所以线性表可以是空表。但是在线性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件,所以选项 C)是错误的。3.某二叉树有 5个度为 2的结点,

23、则该二叉树中的叶子结点数是A) 10 B) 8 C) 6 D) 4(分数:2.00)A.B.C. D.解析:解析 对于任何一棵二叉树 T,如果其终端结点(叶子)数为 n1,度为 2的结点数为 n2,则n1=n2+1。所以该二叉树的叶子结点数等于 5+1=6。4.冒泡排序在最坏情况下的比较次数是_。(A) n(n+1)/2(B) nlog2n(C) n(n-1)/2(D) n/2(分数:2.00)A.B.C. D.解析:5.有以下程序:main()int a=1,b=2,m=0,n=0,k;k=(n=ba)|(m=ab);printf(“%d,%d/n“,k,m);程序运行后的输出结果是 _。A

24、) 0,0 B) 0,1 C) 1,0 D) 1,1(分数:2.00)A.B.C. D.解析:解析 本题考查“逻辑或”运算的特例。本题中执行语句 k=(n=ba)|(m=ab)时,首先计算表达式(n=ba)| (m=ab)的值,因 b=2,a=1,所以 ba 成立,即得 n=1,故表达式(n=ba)|(m=ab)的值为真,不再执行表达式 m=ab,故执行完表达式 k=(n=b2a)|(m=ab)后,n=1、m=0、k=1。6.将 E-R图转换到关系模式时,实体与实体间的联系可以表示成( )。A) 属性 B) 关系C) 键 D) 域(分数:1.00)A.B. C.D.解析:解析将 E-R图转换成

25、指定 RDBMS中的关系模式是数据库逻辑设计的主要工作。从 E-R图到关系模式的转换是比较直接的,实体和联系都可以表示成关系。7.在 E-R图中,用来表示实休联系的图形是A) 椭圆形 B) 矩形C) 菱形 D) 三角形(分数:2.00)A.B.C. D.解析:解析 E-R 图中用矩形表示实体(等同于表),用椭圆形表示实体的属性(等同于表中字段),用菱形表示实体关系(等同于外键)。8.下列说法不正确的是( )A) C语言程序是以函数为基本单位的,整个程序由函数组成B) C语言程序的一条语句可以写在不同的行上C) C语言程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写D) C语言程

26、序的每个语句都以分号结束(分数:2.00)A.B.C. D.解析:解析 本题涉及 C语言的 3个基本知识点:C 语言的源程序是由函数构成的,函数是其基本单位,每一个函数完成相对独立的功能,其中只能包括一个主函数:C 语言规定每个语句以分号结束,其书写格式是自由的,一条语句可以写在不同的行上,或者一行也可以写多条语句;注释行虽然对程序的运行不起作用,但是它可以方便程序员阅读,提高程序的可读性和可移植性,所以书写注释行还是很有必要的。9.下列说法不正确的是( )。A)一个 C语言源程序可以由一个函数组成也可以由多个函数组成B)main()中的“()”是函数的参数部分,括号内可为空,但括号不能省略C

27、)C语言程序是以函数为基本单位的D)在 C语言程序中,注释行只能位于一条语句的后面(分数:2.00)A.B.C.D. 解析:解析 本题涉及 C语言基本的 3个知识点:C 语言是以函数为基本单位的,每一个函数完成相对独立的功能,一个程序可以包括多个函数,但有且仅有一个主函数;主函数 main()的圆括号内是填写参数的,可以没有参数,但括号不可以省略:程序的注释部分应该在“/*/”之间,它允许出现在程序的任何位置。10.下列定义变量的语句中错误的是_。(A) int _int;(B) double int_;(C) char for;(D) float US$(分数:1.00)A.B.C.D. 解

28、析:11.以下选项中属于 C语言数据类型的是( )。A) 复数型 B) 逻辑型 C) 双精度型 D) 集合型(分数:1.00)A.B.C. D.解析:解析 C 语言的数据类型分为基本类型、构造类型、指针类型、空类型四大类,其中,基本类型分为整型、字符型、实型三类。实型又称浮点型,包括单精度型和双精度型两种。12.以下程序的输出结果是_。main()int a=3;printf(“%d/n“,(a+=a-+a*a) )A) -6 B) 1 C) 2 D) -12(分数:2.00)A.B.C.D. 解析:评析 赋值运算符的结合方向是自右至左,所以表达式 a+=a=a*a先运算最右边的 a*a得 9

29、,再运算 a=a-9,即 a=3-9,所以此时 a的值由 3变成了-6,最后运算 a=a+(-6)=-12。13.以下程序的输出结果是( )。main()int a=4,b=3,c=2,d=1;printf(“%d“,ab?a:dc?d:b);A) 1 B) 3 C) 2 D) 4(分数:1.00)A.B.C.D. 解析:解析 本题首先判断 ab,当 ab 时结果等于 a,否则等于“dc?d:b”,因为 ab,所以直接输出 a的值,注:这里“a:dc?d:b”是用来干扰考生的。14.设有定义:int a=2,b=3,c=4;,则以下选项中值为 0的表达式是_。A) (!a=1)(!b=0) B

30、) (aB) !c|1C) ab D) a|(b+b)(c-a)(分数:2.00)A. B.C.D.解析:解析 本题考查逻辑运算。根据运算符的优先级顺序,选项 A的值为“(!2=1)(!3=0)=0(!3=0)=0”,选项 B的值为“(23)!4|1=0!4|1=00|1=0|1=1”。选项 C的值为“23=1”。选项 D的值为“2|(6)(2)=2|1=1”。所以只有选项 A的值为 0。注意:在进行逻辑与运算时,若“”的左边运算结果已经为 0,则“”右边的表达式将不再进行计算,结果总为 0;在进行逻辑或运算时,若“|”的左边运算结果已经为 1,则“|”右边的表达式也将不再进行计算,结果总为

31、1。15.有以下程序:main()int a, b, d=25;a=d/10%9; b=aprintf(“% d, % d/n“, a, b) ;程序运行后的输出结果是_。A) 6, 1 B) 2, 1 C) 6, 0 (D) 2, 0(分数:1.00)A.B. C.D.解析:解析 “/”除,“%”取余,“while(k+ printf(“%d %d/n“, k, n);A) 0 2 B) 1 3 C) 5 7 D) 1 2(分数:2.00)A.B.C.D. 解析:解析 while 循环条件是 k+ while(*y+);return y-x-1;A) 求字符串的长度 B) 求字符串存放的位置

32、C) 比较两个字符串的大小 D) 将字符串 x连接字符串 y后面(分数:2.00)A. B.C.D.解析:评析 在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到 NULL,最后返回字符串首尾地址的差值,即字符串的长度。23.有以下程序#include stdio.hvoid fun(int p)int d=2;p=d+; printf(“%d“,p);main()int a=1;fun(a);printf(“%d/n“,a);程序运行后的输出结果是A) 32 B) 12C) 21 D) 22(分数:2.00)A.B.C. D.解析:解析 程序运行后,首先输出的是 p的值,然后再输出

33、 a的值。p=d+,得到 P的值为 d的初始值2;a 的值不变,仍为 1。24.下列程序中函数 reverse()的功能是将 a所指数组中的内容进行逆置。#includestdio.hvoid reverse(int a,iht n)int i,t;for(i=0;in/2;i+)t=ai;ai=an-1-i;an-1-i=t;main()int b10=1,2,3,4,5,6,7,8,9,10;int i,s=0;reverse(b,10) ;for(i=0;i3;i+)s+=bi;printf(“%d/n“,s);程序运行后的输出结果是( )。A) 27 B) 6 C) 25 D) 30(

34、分数:2.00)A. B.C.D.解析:解析 本题考查函数调用时的参数传递。函数 reverse 将数组 b进行了逆置,此时的 b10=10,9,8,7,6,5,4,3,2,1,后面 for语句的功能是将 b中的前 3个数累加,将结果放在 s中,最后将 s输出,结果 s=10+9+8=27。25.有以下程序point(char *p)p+=3;main()char b4=a,b,c,d,*p=b;point(p); printf(“%c/n“,*p);程序运行后的输出结果是_。(A) a(B) b(C) c(D) d(分数:2.00)A. B.C.D.解析:26.若有定义“int a23;”,

35、以下选项中对 a数组元素正确引用的是( )。Aa2!1 Ba23Ca03 Da12!1(分数:1.00)A.B.C.D. 解析:解析 除 D选项外,其他选项的引用均是下标越界。27.关于字符常量,以下叙述正确的是( )。 A) 空格不是一个字符常量 B) 字符常量能包含大于一个的字符 C) 单引号中的大写字母和小写字母代表的是相同的字符常量 D) 所有的字符常量都可以作为整型量来处理(分数:2.00)A.B.C.D. 解析:解析 本题考查字符常量的 4个知识点:空格是一个字符常量,而且单引号中的空格不可以省略:字符常量只能包含一个字符:单引号中的大写字母和小写字母代表的是不相同的字符常量:所有

36、的字符常量部作为整型量来处理,在计算机内部,其对应的整数值就是 ASCII码值。28.有以下程序#include stdio.hmain()int i,j;for(i=3;i=-1;i-)for(i=1;j=2;j+) printf(“%d“,i+j);printf(“/n“);程序的运行结果是_。A) 234345B) 432543C) 233445D) 453423(分数:2.00)A.B.C.D. 解析:评析 本题考查的是 for循环的嵌套。外层循环变量 i从 3递减到 1,内层循环变量 j从 1递增到 2,具体运行过程如下: i-3:j=1,满足条件 j=2,输出 i+j=3+1=4;

37、j=2,满足条件 j=2,输出i+j=3+2=5;j=3,不满足条件 j=2,退出内层循环,执行“printf(“/n“);”语句,换行。执行 i-,此时 i=2,满足条件 i=1;i=2:j=1,满足条件 j=2,输出 i+j-2+1=3:j=2,满足条件 j=2,输出 i+j=2+2=4;j=3,不满足条件j=2,退出内层循环,执行“ptintf(“/n“);”语句,换行。执行 i-,此则 i=1,满足条件 i=1;i=1:j=1,满足条件 j=2,输出 i+j=1+1=2;j=2,满足条件 j=2,输出 i+j=1+2=3;j=3,不满足条件j=2,退出内层循环,执行“printf(“/

38、n“);”语句,换行。执行 i-,此时 i=0,不满足条件 i=1,结束外层循环。29.设有定义:int n1=0, n2, *p=k=N(M(a,b),c);printf(“%d/n“,k);A)3 B)5 C)6 D)8(分数:2.00)A. B.C.D.解析:解析 带参数的宏定义命令行形式如下:#define 宏名(形参表) 替换文本。首先进行 M的宏替换,之后再进行 N的宏替换,替换后的表达式为(a)*(b)/(C)。31.下列程序段中,不能正确赋值的是( )。A) char*p,ch; p= scabf(“%c“,p);C) char*p; *p=getchar();D) char*

39、p,ch; p=,且数组 a的首地址为 300H,则 p+13所指向的数组元素的地址为 ( )。A) 334H B) 30DHC) 352H D) 31AH(分数:2.00)A.B.C. D.解析:解析 解答本题,首先要明白在对指针进行加、减运算的时候,数字“1”不是十进制的数“1”,而是指“1”个存储单元长度,而 1 个存储单元长度占多少存储空间,应该视具体情况而定。如果基本类型是 int型,移动 1个存储单元的长度就是位移 2个字节,如果基本类型是 float型,移动 1个存储单元的长度就是位移 4个字节。所以 p+13所指向的数组元素的地址为:300H+(13*4)H=352H。34.有

40、下面程序段#include“stdio.h“#include“stringh“main()char a320=“china“,“isa“,“bigcountry!“;chark100=0,*p=k;int i;for(i=0;i3;i+)p=strcat(p,ai);i=strlen(p);printf(“%d/n“,“i);则程序段的输出结果是A) 18 B) 19 C) 20 D) 21(分数:2.00)A.B. C.D.解析:解析 字符串连接函数 streat的调用形式如下:strcat(s1,s2)。此函数将 s2所指字符串的内容连接到 s1所指的字符串后面,并自动覆盖 s1串末尾的尾

41、标,函数返回 s1的地址值。35.下列二维数组的说明中,不正确的是( )。A) float a4=0,1,8,5,9; B) int a34C) #define N 5 float aN3D) int a29.5;(分数:1.00)A.B.C.D. 解析:解析C 语言规定,对于二维数组,只可以省略第一个方括号中的常量表达式,而不能省略第二个方括号中的常量表达式:二维数组的一般定义格式是:类型说明符数组名常量表达式常量表达式。36.若有语句 int *point,a=4;和 point=printf(“%d/n“,(MAX(a+b,c+D) )*100);A) 500 B) 5 C) 4 D)

42、400(分数:1.00)A. B.C.D.解析:解析 本题考查带参数的宏的定义及相关运算: (x)(y)?(x):(y)是 xy 时输出 x,否则输出y,调用 (MAX(a+b,c+d)*100 时,(a+b=5)(c+d=4),所以输出 a+b=5,所以 x=5*100。38.下面结构体的定义语句中,错误的是A) struct ordint x; int y; int z; struct ord a;B) struct ordint x; int y; int z; struct ord a;C) struct ordint x; int y; int z; a;D) structint x

43、; int y; int z; a;(分数:2.00)A.B. C.D.解析:解析 对于选项 B,结构体类型声明和定义分开时,在声明后应有分号“;”。39.下面结构体的定义语句中,错误的是( )。Astruct ordint x;int y;int z;struct ord a; Bstruct ordint x;int y;int z;struct ord a;Cstruct ordint x;int y;int z;a; Dstructint x;int y;int z;a;(分数:1.00)A.B. C.D.解析:解析 结构体定义的类型说明的一般形式为:struct 结构体标识名(类型名

44、 1结构成员名表 1;类型名 2结构成员名表 2;);注意:结构体说明同样要以分号结尾;紧跟在结构体类型说明之后进行定义;在说明一个无名结构体类型的同时,直接进行定义;先说明结构体类型,再单独进行变量定义等。所以选择 B选项。40.以下语句或语句组中能正确进行字符串赋值的是( )。 A) ehar以*sp; * sp = “right!“; B) char s10 ;s = “right!“;C) char s 10; * s = “right !“; D) char * sp = “right !“;(分数:1.00)A.B.C.D. 解析:解析 选项 A)应将*sp=“right!“;中的

45、*叩改为 sP,即把字符串“right!”的首地址赋给指针变量sp;选项 B)中的 s代表数组的首地址,不能给它赋字符串,只能在定义数组时,对其进行初始化;选项 C)中的。s 指的是数组的第一个元素,不能给它赋字符串。二、填空题(总题数:15,分数:33.50)41.对下列二叉树进行中序遍历的结果是_。(分数:4.00)填空项 1:_ (正确答案:DBXEAYFZC)解析:解析 中序遍历遵循的原则是先遍历左子树,然后访问根结点,最后遍历右子树。并且,在遍历左、右子树时,仍然依照此顺序,所以中序遍历的结果是 DBXEAYFZC。42.在深度为 7的满二叉树中,度为 2的结点个数为 1。(分数:2

46、.00)填空项 1:_ (正确答案:63)解析:解析 根据二叉树的性质,一棵深度为 k的满二叉树有 2k-1个结点,所以深度为 7的满二叉树有27-1=127个结点;又因为在任意一棵二叉树中,若终端结点的个数为加,度为 2的结点数为 n2,则n0=n2+1,即所以总结点数为 n0+n2=2n2+1=127,所以 n2=63,即度为 2的结点个数为 63。43.结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、U /U和限制使用 goto语句。(分数:2.00)填空项 1:_ (正确答案:模块化)解析:评析 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化和限制使用 goto语句。自顶向下:程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。逐步求精:对复杂问题,应设计一些子目标作过度,逐步细化。模块化:一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个目标称为一个模块。限制使用 goto语句。44.软件测试中路径覆盖测试是整个测试的基础,它是对软件U /U进行测试。(分数:2.00)填空项 1:_

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

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

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