全国计算机等级考试二级C语言真题库之选择题11.docx

上传人:b****7 文档编号:9067146 上传时间:2023-02-03 格式:DOCX 页数:27 大小:36.81KB
下载 相关 举报
全国计算机等级考试二级C语言真题库之选择题11.docx_第1页
第1页 / 共27页
全国计算机等级考试二级C语言真题库之选择题11.docx_第2页
第2页 / 共27页
全国计算机等级考试二级C语言真题库之选择题11.docx_第3页
第3页 / 共27页
全国计算机等级考试二级C语言真题库之选择题11.docx_第4页
第4页 / 共27页
全国计算机等级考试二级C语言真题库之选择题11.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

全国计算机等级考试二级C语言真题库之选择题11.docx

《全国计算机等级考试二级C语言真题库之选择题11.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言真题库之选择题11.docx(27页珍藏版)》请在冰豆网上搜索。

全国计算机等级考试二级C语言真题库之选择题11.docx

全国计算机等级考试二级C语言真题库之选择题11

全国计算机等级考试等级考试真题库之选择题(11)

1.下列叙述中正确的是

A)一个算法的空间复杂度大,则其时间复杂度也必定大

B)一个算法的空间复杂度大,则其时间复杂度必定小

C)一个算法的时间复杂度大,则其空间复杂度必定小

D)算法的时间复杂度与空间复杂度没有直接关系

参考答案:

D

【解析】算法的空间复杂度是指算法在执行过程中所需要的内存空间,算法的时间复杂度,是指执行算法所需要的计算工作量,两者之间并没有直接关系,答案为D。

2.下列叙述中正确的是

A)循环队列中的元素个数随队头指针与队尾指针的变化而动态变化

B)循环队列中的元素个数随队头指针的变化而动态变化

C)循环队列中的元素个数随队尾指针的变化而动态变化

D)以上说法都不对

参考答案:

A

【解析】在循环队列中,用队尾指针指向队列中的队尾元素,用排头指针指向排头元素的前一个位置。

因此,从排头指针指向的后一个位置直到队尾指针指向的位置之间所有的元素均为队列中的元素。

所以循环队列中的元素个数与队头指针和队尾指针的变化而变化,A正确。

3.一棵二叉树中共有80个叶子结点与70个度为1的结点,则该二叉树中的总结点数为

A)219

B)229

C)230

D)231

参考答案:

B

【解析】二叉树中,度为0的节点数等于度为2的节点数加1,即n20-1,叶子节点即度为0,则n2=79,总结点数为n012=80+70+79=229,答案为B。

4.对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为

A)9

B)10

C)45

D)90

参考答案:

C

【解析】冒泡法是在扫描过程中逐次比较相邻两个元素的大小,最坏的情况是每次比较都要将相邻的两个元素互换,需要互换的次数为9+8+7+6+5+4+3+2+1=45,选C。

5.构成计算机软件的是

A)源代码

B)程序和数据

C)程序和文档

D)程序、数据与相关文档

参考答案:

D

【解析】软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和有关的文档,选D。

6.软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是

A)测试

B)设计

C)可行性研究

D)实现

参考答案:

C

【解析】开发阶段包括分析、设计和实施两类任务。

其中分析、设计包括需求分析、总体设计和详细设计3个阶段,实施则包括编码和测试两个阶段,C不属于开发阶段。

7.下面不能作为结构化方法软件需求分析工具的是

A)系统结构图

B)数据字典()

C)数据流程图(图)

D)判定表

参考答案:

A

【解析】结构化方法软件需求分析工具主要有数据流图、数据字典、判定树和判定表。

8.在关系模型中,每一个二维表称为一个

A)关系

B)属性

C)元组

D)主码(键)

参考答案:

A

【解析】关系模型采用二维表来表示,即每个二维表称为一个关系。

9.若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是

A)一对一

B)一对多

C)多对一

D)多对多

参考答案:

B

【解析】A和B为一对多的联系,则对于A中的每一个实体,B中有多个实体与之联系,而B与C为一对一联系,则对于B中的每一个实体,C中之多有一个实体与之联系,则可推出对于A中的每一个实体,C中有多个实体与联系,所以为一对多联系。

10.

A)选择

B)投影

C)交

D)并

参考答案:

D

【解析】关系T中的元素与关系R和关系S中不同元素的总和,因此为并操作。

11.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。

关于转换以下说法错误的是

 

A)一条C语句可能会被转换成零条机器指令

B)一条C语句可能会被转换成多条机器指令

C)一条C语句对应转换成一条机器指令

D)某种类型和格式的C语句被转换成机器指令的条数是固定的

参考答案:

C

【解析】一个C语句经过编译后产生若干条机器指令。声明部分不是语句,不产生机器指令,只是对有关数据的声明。而且固定类型和格式的C语句被转换成机器指令的条数固定。所以选择C选项。

12.关于"(条件表达式)循环体",以下叙述正确的是

 

A)循环体的执行次数总是比条件表达式的执行次数多一次

B)条件表达式的执行次数总是比循环体的执行次数多一次

C)条件表达式的执行次数与循环体的执行次数一样

D)条件表达式的执行次数与循环体的执行次数无关

参考答案:

B

【解析】循环是先判断条件,满足条件后执行循环体,执行完后接着判断条件,执行,直到最后一次判断条件后不成立,跳出循环,所以最后一次执行了条件表达式,但是没有执行循环体,所以选择B选项。

13.关于C语言的符号常量,以下叙述中正确的是

 

A)符号常量的符号名是标识符,但必须大写

B)符号常量是指在程序中通过宏定义用一个符号名来代表一个常量

C)符号常量在整个程序中其值都不能再被重新定义

D)符号常量的符号名必须是常量

参考答案:

B

【解析】在C语言中,可以用一个标识符来代表一个常量,称为符号常量。这个标识符必须在程序中进行特别的"指定",并符合标识符的命名规则。用作符号常量的标识符通常采用大写字母表示,在主函数中其值不能再被定义。所以选择B选项。

14.若有以下程序

<>

()

{10,11;

ab4;

("\n",a,b);

}

则程序的输出结果是

A)12

B)-12

C)-1-2

D)1-2

参考答案:

B

【解析】先计算4,即4,结果为2,然后计算2,结果为-1,最后a的值为-1的值为2,所以选择B选项。

15.若有以下程序

<>

()

{000;

(a),(,4);

("\n");

}

则程序的输出结果是

A)0,4,0

B)0,4,4

C)1,4,1

D)1,4,4

参考答案:

A

【解析】逗号运算符的结合性从左到右,因此逗号表达式将从左到右进行计算。

且逗号运算符的优先级最低,所以先计算()这部分。

其中,赋值运算符从右往左计算,先执行自增1后再赋值,所以a的值为1,执行1,即1-1的值为0,并将0赋给变量c。第二部分(4),先执行0+0,即a的值为0,然后执行40+4,即b的值为4。所以打印结果为0,4,0,选择A选项。

16.若有以下程序

<>

()

{000;

(,,);/*第4行*/

;;/*第5行*/

;/*第6行*/

("\n");/*第7行*/

}

编译时出现错误,你认为出错的是

A)第4行

B)第5行

C)第6行

D)第7行

参考答案:

A

【解析】第4行逗号表达式中间的第二个表达式为空,是不合法的,可以去掉写成,也可以在里面补一个表达式,如。所以选择A选项。

17.若有以下程序

<>

()

{1234;

(2)

(1))2;

((3)

(1))5;

("\n",);

}

则程序的输出结果是

A)1,2,3,4

B)2,1,21

C)5,1,21

D)2,2,2,4

参考答案:

D

【解析】第一个语句的判断条件中是逻辑或表达式,所以只要有一个运算对象为真结果就为真,且如果前面的已经为真,后面的表达式不再进行执行判断。执行第一个判断条件时a的值为2,整个表达式的值为真的值不变的值为2。判断第二个条件为逻辑与表达式,只有两个运算对象均非零,才为真,第一个表达式3,不成立,不再判断第二个运算对象,所以不执行1操作和5操作。所以结果为选项D。

18.若有以下程序

<>

()

{1234,0;

(1);1;

(2)2;

;(3)3;

;(4)4;

("\n",r);

}

则程序的输出结果是

A)10

B)7

C)6

D)3

参考答案:

B

【解析】总是和与之最近的上面的配对,执行第一个,判断条件不成立,执行1;语句。再执行第二个语句中的判断条件,成立,左移执行2的值为3,再执行第三个的判断条件,不成立执行第7行后面的空语句";"。再执行第四个的判断条件4成立,执行4的值为7。然后打印输出。

19.若有以下程序

<>

()

{0,n;

(0;n<4;)

{(n)

{:

4;

1:

1;

2:

2;

3:

3;

}

}

("\n",s);

}

则程序的输出结果是

A)6

B)18

C)10

D)24

参考答案:

D

【解析】第一次循环的值为0,所以从后面的语句开始执行4123的值为10。在进入第二次循环的值为1,所以执行123的值为16。在进入第三次循环的值为2,所以执行23的值为21。在进入第四次循环的值为3,所以执行3的值为24。

20.若有以下程序

<>

()

{2,0;

();

("\n",a,b);

}

则程序的输出结果是

A)1,2

B)0,2

C)1,3

D)2,3

参考答案:

A

【解析】第一次判断条件中,先用后加,为-2不为0条件为真,执行a的自加与操作的值变为-1的值变为1。第二次判断后的值变为0的值变为2。第三次判断条件为假,但是仍要执行自加操作,即值为1,跳出循环。打印1和2。

21.若有以下程序

<>

()

{6,0,0;

(;){ba;a;}

("\n",);

}

则程序的输出结果是

A)1,14,3

B)0,14,3

C)0,18,3

D)0,14,6

参考答案:

B

【解析】本循环的条件判断时只要a为0就退出循环体,初始值a的值为6,满足条件执行完循环体的值为6即(),所以a的值为5的值为1。第二次循环后b的值为11的值为3的值为2。第三次也是最后循环后的值为0的值14的值为3。

22.以下选项中非法的C语言字符常量是

 

A)'\007'

B)'\b'

C)''

D)'\'

参考答案:

C

【解析】C选项中是字符串常量,应该用双引号表示即""。所以选择C选项。

23.若有以下程序

<>

f(x)

{x*'a';}

()

{a,0;

(0;a<4;1)

{b=f(a);(b);}

}

则程序的输出结果是

A)

B)

C)

D)

参考答案:

C

【解析】该题目首先初始化变量a和b,通过循环语句使a取值为0、1、2、3,f函数的功能是将a*'a'的值返回给b,即b为a、b、e、j。

最后通过字符输出函数()将b输出。

因此C选项正确。

24.若有以下程序

<>

(*a)

{2;

;*a=*a*2;(",",*a);

}

()

{3,*;

(p);("\n",k,*p);

}

则程序的输出结果是

A)4,3,3

B)4,3,4

C)6,3,6

D)6,6,6

参考答案:

A

【解析】首先在主函数中给整型变量k赋值为3,将变量k的地址赋给指针变量p;调用函数,将实参p的值传给形参a,在函数中,指针变量a又获得变量b的地址,通过运算后,输出a的值为4;返回主函数,输出k的值和p的值为3和3。

因此A选项正确。

25.若有以下程序

<>

7;

f(**s)

{*;

*;

(",",k,*t,**s);

}

()

{3,*,**r=;

f(r);("\n",i,*p,**r);

}

则程序的输出结果是

A)3,3,3,7,7,7

B)3,7,7,7,7,7

C)7,7,7,3,3,3

D)7,7,7,3,7,7

参考答案:

D

【解析】在主函数中分别给整型变量i,指针型变量p和指向指针的指针变量r赋初值;调用f函数,并将实参变量r的值传递给形参变量s,在f函数中,通过(",",k,*t,**s);语句输出7,7,7;返回主函数,通过("\n",i,*p,**r);输出3,7,7。因此D选项正确。

26.若有以下程序

<>

*f(**t)

{*k;

(*s<*t){k=s;;;}

s;

}

()

{3,5,*,*,*r;

();("\n",i,j,*p,*q,*r);

}

则程序的输出结果是

A)3,5,5,3,5

B)3,5,3,5,5

C)5,3,5,3,5

D)5,3,3,5,5

参考答案:

B

【解析】在主函数中分别给整型变量i、j和指针型变量p、q赋初值,并声明指针变量r;调用f函数,并将实参变量p和q的值传递给形参变量s和t,并且f函数是指针型函数,即函数的返回值将是一个地址。

在f函数中,如果条件成立,则将指针变量s和t互换,并且将指针s的地址返回主函数。

最后输出i,j,*p,*q,*r的值,即3,5,3,5,5。

因此B选项正确。

27.若有以下程序

<>

N4

(a[][N],b[],)

{;

(0;i

{b[i]=a[i][0];

(1;j

(?

(b[i]>a[i][j]):

(b[i]

b[i]=a[i][j];

}

}

()

{x[N][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},y[N];

(x,y,1);

(0;i

(x,y,0);

(0

("\n");

}

则程序的输出结果是

A)1,5,9,13,4,8,12,16,

B)4,8,12,16,1,5,9,13,

C)1,2,3,4,13,14,15,16,

D)13,14,15,16,1,2,3,4,

参考答案:

A

【解析】该题首先初始化二维数组(?

(b[i]>a[i][j]):

(b[i]a[i][j])作为条件表达式的值,否则以(b[i]

28.若有以下程序

<>

(a[],n)

{;

(1;i

(2;j

(a[i]>a[j]){[i];a[i][j][j];}

}

()

{c[10]={10,9,8,7,6,5,4,3,2,1};

(c,10);

(0<10;)(",",c[i]);

("\n");

}

则程序的输出结果是

A)1,10,3,8,5,6,7,4,9,2,

B)10,9,8,7,6,5,4,3,2,1,

C)2,9,4,7,6,5,8,3,10,1,

D)10,1,8,3,6,5,4,7,2,9,

参考答案:

D

【解析】该题首先对一维数组进行初始化,c[0]到c[9]依次赋值为10到1;(c,10);语句调用函数,函数的功能是将一维数组偶数位元素的数值由小到大排序;最后将排好序的新的一维数组进行输出。

因此D选项正确。

29.若有以下程序

<>

()

{0;

a[]="!

";

(0;a[i];)

(a[i]'')a[][i];

a[j]='\0';

("\n");

}

则程序的输出结果是

 

A)!

B)

C)!

D)!

参考答案:

C

【解析】主函数中首先定义字符数组a[]="!

";执行循环语句,语句(a[i]'')a[][i];其功能是将字符数组中的空格去掉。

因此C选项正确。

30.若有以下程序

<>

*"";

b[]="!

";

()

{i,0;*p;

(0;b[i]'\0';)

{(*ab[i])

{;

(;*'\0';)

{(*pb[j]);

;

}

(*'\0');

}

}

("",[i]);

}

则程序的输出结果是

A)!

B)!

C)!

D)!

参考答案:

D

【解析】该程序首先定义*a和b[],并进行初始化。

主函数中通过外层循环语句,遍历字符数组b[],并且将符合条件语句的字符赋给数组p;内层循环语句,遍历字符数组a[]。

再将符合条件语句的结果输出。

因此D选项正确。

31.若有以下程序

<>

()

{a[20],b[]=".";i;

(0;i<7;)("",[i]);

(a);("\n",);

}

执行时若输入:

(其中<>表示回车符)

.<>

则输出结果是

A).

B)

C).

D).

参考答案:

A

【解析】程序首先初始化字符数组b[],执行循环语句,循环变量i的取值范围从0到6。在循环语句中通过函数将从键盘上输入的数据输入到b[]中,即b的值为.。退出循环语句,执行语句(a);()函数的调用形式为(),其中是存放输入字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止,即a的值为.。因此A选项正确。

32.若有以下程序

<>

()

{w[20],a[5][10]={"","","","",""};

p[6][2]={{0,1},{1,5},{0,0},{0,2},{1,4},{4,4}},i;

(0;i<6;)w[i][p[i][0]][p[i][1]];

(w);

}

则程序的输出结果是

A)

B)

C)

D)

参考答案:

D

【解析】程序首先初始化字符数组a[5][10]和二维数组p[6][2]。

执行循环语句,循环变量i从0取值到5,得到字符数组w[]的值,并通过字符串输出函数进行输出操作。

w[0][0][1]、w[1][1][5]、w[2][0][0]、w[3][0][2]、w[4][1][4]、w[5][4][4];因此最后字符数组w的结果为。

因此D选项正确。

33.若有以下程序

<>

f(x)

{(x>=10)

{("",10);f(10);}

("",x);

}

()

{z=123456;

f(z);

}

则程序的输出结果是

A)6-5-4-3-2-1-

B)6-5-4-3-2-1

C)1-2-3-4-5-6

D)1-2-3-4-5-6-

参考答案:

B

【解析】本题重点考察函数的递归调用,程序首先初始化整型变量z为123456,调用函数f。

f函数中首先通过条件语句判断x是否大于等于10,如果条件成立,求x除以10的余数并输出,同时将变量x进行10运算,同时调用函数f。

如果条件不成立,直接输出变量x。

因此第1次调用函数,变量x为123456,条件成立,输出余数6;第2次调用函数,变量x为12345,条件成立,输出余数5;第3次调用函数,变量x为1234,条件成立,输出余数4;第4次调用函数,变量x为123,条件成立,输出余数3;第5次调用函数,变量x为12,条件成立,输出余数2;第6次调用函数,变量x为12345,条件不成立,输出1。

因此B选项正确。

34.若有以下程序

<>

2;

f(m)

{n;

0;;;

;

}

()

{k;

(0;k<4;)(",",f(k));

}

则程序的输出结果是

A)4,5,6,7,

B)4,7,10,13,

C)4,6,8,10,

D)3,5,7,9,

参考答案:

C

【解析】主函数中变量k作为语句的循环变量,取值0、1、2、3,同时也作为实参通过调用函数f传递给形参变量m。

由于变量a是全局变量,变量n是静态变量,因此0时,f函数中,语句;即1+0+3=4;1时,f函数中,语句;即2+1+3=6;2时,f函数中,语句;即3+2+3=8;3时,f函数中,语句;即4+3+3=10。

因此C选项正确。

35.若有以下程序

<>

S(x)x*x

T(x)S(x)*S(x)

()

{5,2;

("\n",S()());

}

则程序的输出结果是

A)17,289

B)49,2401

C)17,37

D)49,289

参考答案:

C

【解析】本题考查宏定义,宏定义只是做个简单的替换,执行S()*17()()*S()***37,选项C正确。

36.若有以下程序

<>

<>

<>

{

*,;

;

};

()

{

{,'m',290},b;

(*)(10);

(,"");

b=a;='f';=350;

(,"");

(",",,,);

("\n",,,);

}

则程序的输出结果是

A),290,350

B),290,350

C),350,350

D),290,350

参考答案:

D

【解析】本题中考查结构体中变量的引用,a结构体中被修改为,所以本题答案为D。

37.若有以下程序

<>

<>

<>

{

*,;

;

};

f(*p)

{

(*)(10);

(p,"");

}

()

{

{,'m',290},b;

(*)(10);

(,"");

b=a;

f();

='f';=350;

(",",,,);

("\n",,,);

}

则程序的输出结果是

A),290,350

B),290,350

C),350,350

D),290,350

参考答案:

B

【解析】本题考查结构体变量中的引用,其中a的为,b执行函数f()后b的并没有改变,还是,所以答案为B选项。

38.若有定义

*T;

Ta[10];

则a的定义与下面哪个语句等价

A)(*a)[10];

B)*a[10];

C)*a;

D)a[10];

参考答案:

B

【解析】本题考查的使用方法,对已存在的类型使用一个新的名字,其中本题中*用T来代替,所以定义Ta[10];就相当于是*a[10];选项B正确。

39.若有以下程序

<>

()

{c;

10^5;

("\n",c);

}

则程序的输出结果是

A)5

B)15

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1