网站首页 语言 会计 互联网计算机 医学 学历 职场 文艺体育 范文
当前位置:学识谷 > 计算机 > 计算机二级

2017计算机二级C语言选择题复习

栏目: 计算机二级 / 发布于: / 人气:9.09K

为了帮助大家提高计算机考试成绩,今天本站小编特地为大家收集了以下2017计算机二级C语言选择题复习,希望对大家有帮助!

2017计算机二级C语言选择题复习

1.在深度为5的满二叉树叶中,叶子结点的个数为( )。

A.32

B.31

C.16

D.15

2.软件生命周期中,花费最多的阶段是( )。

A.详细设计

B.软件编码

C.软件测试

D.软件维护

3.视图设计一般有3种设计次序,下列不属于视图设计次序的是( )。

A.自顶而下

B.由内向外

C.由外向内

D.自底向上

4.下列数据结构中,能用二分法进行查找的是( )。

A.顺序存储的有序线性表

B.结性链表

C.二叉链表

D.有序线性链表

5.以下叙述中错误的是( )。

A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B.数组名代表的是数组所占存储区的首地址,其值不可改变

C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

20.有以下程序.

#include

main()

{ char c1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar(); c6=getchar();

putchar(c1);putchar(c2);

printf("%c%cn",c5,c6);

}

程序运行后,若从键盘输入(从第l列开始)

123<回车>

45678<回车>

则输出结果是( )。

A.1267

B.1256

C.1278

D.1245

21.执行下面的程序后,a的值为( )。

main()

{ int a,b;

for(a=1,b=1;a<=10;a++)

{ if(b%3==l)

{ b+=3;

continue;}

b-=5;}}

A.7

B.8

C.9

D.10

22.下列叙述中正确的是( )。

A.用E—R图能够表示实体集之间一对一的联系、一对多的联系、多对多的联系

B.用E—R图只能表示实体集之间一对一的联系

C.用E—R图只能表示实体集之间一对多的联系

D.用E—R图表示的概念数据模型只能转换为关系数据模型

23。若有运算符:>、一、<<、%、sizeof,则它们按优先级(由高至低)的正确排列顺序为( )。

A.%、sizeof、>、<<、=

of、%、>、=、<<

of、<<、>、%、=

of、%、<<、>、=

24.若变量a,b已正确定义,且b已正确赋值,则合法的语句是( )。

A.b=double(b);

B.(int)a=(int)b;

C.a=a++=5;

D.a=double(b);

25.执行下列程序中的输出语句后,a的值是( )。

main()

{ int a;

printf("%dn",(a=2*3,a*5,a+7));

}

A.17

B.37

C.6

D.13

D.可以通过赋初值的方式确定数组元素的个数

6.以下只有在使用时才为该类型变量分配内存的存储类型说明是( )。

和static

和register

ster和static

rn和register

7.下列可作为C语言赋值的语句的是( )。

A.x一3,y=5

B.a=b=6

C.i--;

D.a,c

8.若整型变量a、b、c、d中的值依次为2、2、3、4,则条件表达式a  A.1

B.2

C.3

D.4

9.下列叙述中错误的是( )。

A.线性表是由n个元素组成的一个有限序列

B.线性表是一种线性结构

C.线性表的所有结点有且仅有一个前件和后件

D.线性表可以是空表

10.以下程序执行后sum的值是( )。

main()

{ int i,sum;

for(i=1;i<6;i++)sum+=i:

printf("1%dn",sum):

}

A.15

B.14

C.不确定

D.0

11.设j为Int型变量,则下面for循环语句的执行结果是( )。

for(j=10;j>3;j--)

{ if(j%3)j--;

--j;--j;

printf("%d",j);

}

A.6 3

B.7 4

C.6 2

D.7 3

12.表示关系X<=Y<=Z的C语言表达式为( )。

A.(X<=Y)&&(Y<=Z)

B.(X<=Y)AND(Y<=Z)

C.(X<=Y<=Z)

D.(X<一Y)&(Y<一Z)

13.设有如下定义:

int arr[]={6,7,8,9,10);

int*ptr:

ptr=arr;

*(ptr2)=2;

printf("%d,%dn",*ptr,*(ptr2)):

则下列程序段的输出结果为( )。

A.8,10

B.6,8

C.7,9

D.6,2

14.设有定义语句:

int x[-6]={2,4,6,8,5,7),*p=X,i;

要求依次输出X数组6个元素中的值,不能完成此操作的语句是( )。

(i=0;i<6;i++)printf("%2d",*(p++));

(i=0;i<6;i++)printf("%2d",*(pq-i));

(i=0;i<6;i++)printf("%2d",*p++);

(i=0;i<6;i++)printf("%2d",*(p)++);

15.数字字符0的ASCII值为48,运行以下程序的输出结果是( )。

main()

( char a=’1’,b=’2’;

printf("%C,",b++);printf("%dn",b—a);}

A.3,2

B.50,2

C.2,2

D.2,50

16.设有如下定义:

int(*ptr)();

则以下叙述中正确的是( )。

是指向一维组数的指针变量

是指向int型数据的指针变量

是指向函数的指针,该函数返回一个int型数据

是一个函数名,该函数的返回值是指int型数据的指针

17.设有定义的语句:“char c1=92,c2=92;”,则以下表达式中的值为零的是( )。

A.c1^c2

B.c1&c2

C.~c2

D.c1 | c2

18.以下程序的输出结果是( )。

void fun(int*a,int i,int i)

{int t;

if(i   { t=a[i[;a[i]=a[j];a[j]一t;

i++;j--;

fun(a,i,j);

}

}

main()

{ int K[]={2,6,1,8},i;

fun(x,0,3);

for(i=0;i<1;i++)printf("%2d",x[i]);

printf("n");

}

A.1,2,6,8

B.8,6,2,1

C.8,1,6,2

D.8,6,1,2

19.有以下程序:

main()

{int i,j;

for(j=10;j<11;j++)

{ for(i=9;i   if(!(j%i))break;

if(i==j-1)

printf("%d",j);

}

}

输出结果是( )。

A.11

B.10

C.9

D.10 11

  选择题答案与解析

1.C。【解析】根据二叉树的性质及定义,一棵深度为k 且有2k-1个结点的二叉树为满二叉树。满二叉树的叶子结点为最后一层的结点数,又根据满二叉树的性质,在满二叉树的第i层上至多有2i-1个结点。因此深度为5的满二叉树的叶子结点数为25-1=16个。

2.D。【解析】本题考查对软件生命周期的理解,软件生命周期整体上可分为定义阶段、开发阶段和维护阶段。其中定义阶段包括可行性研究与计划制订和需求分析;开发阶段包括概要设计、详细设计、开发和测试;维护阶段是一个单独阶段,不包含在开发阶段内,它是所花费用最多的一个阶段。

3.C。【解析】视图设计的设计次序分3种:自顶向下、自底向上和由内向外。它们为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握。

4.A。【解析】二分法查找只用于顺序存储的有序线性表,而顺序查找用在顺序存储的非有序线性表和线性链表。

5.C。【解析】数组下标从0开始,当数组元素的下标超出了定义的范围时,系统不会出“下标越界”的信息,运行会出错,因此在编程时务必检查下标是否越界。

6.B。【解析】在用静态static与外部extern定义变量时,系统立刻给其分配内存,而定义自动类auto与强制放入寄存器register类型变量时,只有当使用时才分配内存。

7.C。【解析】本题考查赋值语句,而选项A、B是表达式,不合题意,选项D中强制类型转换,应把类型名用括号括起来,选项C中i--也可写成i=i-1,故选择c选项。

8.C。【解析】本题考查三目运算符a  9.C。【解析】线性表可以是空表,在线性表中,第一个结点没有前驱结点(前件),最后一个结点没有后继结点,其他结点有且只有一个前驱点(后继点)。

10.C。【解析】sum+=i等价于sun+i,在本题中sum 没有赋初值,而题中只输出sum的值,因此整个结果为不确定值。

11.B。【解析】当j=10时,for循环成立,j%3为1,if条件也为真,当执行完j--后,j为9,再执行“--j;--J;”后,j的值为7,因此输出7,继续循环执行j--后j为6,当j

=6时for循环成立,j%3为0,if条件为假,此时执行“-- j;--j;”后,j为4,输出4,再继续循环执行j--后j为3,当j=3时,for循环不成立,退出循环,故选择8选项。

12.A。【解析】题中X<=Y<=Z的意思为X<=Y 并且Y<=Z,在c语言中,要表示“且”的关系,应用“与”逻辑运算符,即“&&”,故选择A选项。

13.D。【解析】程序中ptr指针指向数组art的首地址,*ptr=arr[0]=6,*(ptr2)=2,故选D。

14.D。【解析】本题要求输出每个元素的值,D选项中(*p)++等价于*p=*p+1,其仅仅是对*p加1,并没有达到输出其每个值的作用。

15.C。【解析】b++是先用表达式的值然后自增l,因此表达式值为’2 ’,b为’3 ’;b-a=’3 ’-’1’=2,因此最后输出的结果为2,2,前一个为字符2,后一个为数字2。

16.C。【解析】本题中int(*ptr)()的`含义是指向函数

的指针变量,其为指向函数的指针变量,该函数返回一个int 型数据,故选择C选项。

17.A。【解析】当值相同时按位异或,则为0,按位或与按位与时仍不变,负数也为非0。

18.C。【解析】本题用了函数调用,fun中if语句成立则进行i,j的交换,用到主函势中则为把下标为0、3,1、2互换,因此,当执行完后X的数组为8,1,6,2,故选择C选项。

19.B。【解析】本题考多循环的使用,当j=10,i=9时, 循环成立,第一个if条件为假,第二个if条件i==j-1成立,则输出j的值为10,接者执行i++后,i为10;当i为10,for循环不成立,退出内层循环,此时执行j++后,j为11,循环不成立,退出循环。

20.D。【解析】scanf函数读取的是char型数据,所以回车时输入的换行符也是有效字符。于是cl,c2,c3,c4的内容分别是1,2,3,’n’。

21.D。【解析】本题考查continue的用法,continue语句的作用是结束本次循环,直接进行下次循环。所以在程序中,只有当a=10时,才退出循环,故选择D选项。

22.A。【解析】用E—R图可以描述实体及其相互之间的联系,还可以描述多个实体集之间的联系和一个实体集内部实体之间的联系。用E—R图表示的概念数据模型不仅能转换为关系数据模型,还可以转换为其他数据模型,如网状模型和层次模型等。所以A的说法正确。

23.D。【解析】主要考查运算符的优先级。sizeof的优先级最高,其次是%<<>.优先级最低的是“=”。

24.B。【解析】在C语名中规定进行强制类型转换的格式是:(类型名)变量名;并且给表达式赋值。

25.C。【解析】本题考查逗号表达式。程序输出时输出一个%d,所以输出第一个a的值与后续无关。