计算机二级选择题第七套.docx

上传人:b****4 文档编号:4879465 上传时间:2022-12-11 格式:DOCX 页数:17 大小:37.61KB
下载 相关 举报
计算机二级选择题第七套.docx_第1页
第1页 / 共17页
计算机二级选择题第七套.docx_第2页
第2页 / 共17页
计算机二级选择题第七套.docx_第3页
第3页 / 共17页
计算机二级选择题第七套.docx_第4页
第4页 / 共17页
计算机二级选择题第七套.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

计算机二级选择题第七套.docx

《计算机二级选择题第七套.docx》由会员分享,可在线阅读,更多相关《计算机二级选择题第七套.docx(17页珍藏版)》请在冰豆网上搜索。

计算机二级选择题第七套.docx

计算机二级选择题第七套

选择题第七套

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

A)循环队列是队列的一种链式存储结构

B)循环队列是队列的一种顺序存储结构

C)循环队列是非线性结构

D)循环队列是一种逻辑结构参考答案:

B

【解析】在实际应用中,队列的顺序存储结构一般采用循环队列的形式。

下列关于线性链表的叙述中,正确的是(  )。

A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致

B)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续

C)进行插入与删除时,不需要移动表中的元素

D)以上说法均不正确

参考答案:

C

【解析】一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。

线性链表中数据的插入和删除都不需要移动表中的元素,只需改变结点的指针域即可。

一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为(  )

A)16

B)10

C)6

D)4

参考答案:

A

【解析】根据二叉树的性质3:

在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以本题中度为2的结点是5-1=4个,所以度为1的结点的个数是25-5-4=16个。

在下列模式中,能够给出数据库物理存储结构与物理存取方法的是(  )。

A)外模式

B)内模式

C)概念模式

D)逻辑模式

参考答案:

B

【解析】数据库系统的三级模式是概念模式、外模式和内模式。

概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。

外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述。

内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,所以选择B)。

在满足实体完整性约束的条件下(  )。

A)一个关系中应该有一个或多个候选关键字

B)一个关系中只能有一个候选关键字

C)一个关系中必须有多关键字个候选

D)一个关系中可以没有候选关键字

参考答案:

A

【解析】实体完整性约束要求关系的主键中属性值不能为空值,所以选择A)。

有三个关系R、S和T如下:

则由关系R和S得到关系T的操作是(  )。

A)自然连接

B)交

C)除

D)并

参考答案:

C

【解析】如果S=T/R,则S称为T除以R的商。

在除运算中S的域由T中那些不出现在R中的域所组成,对于S中的任一有序组,由它与关系R中每个有序组所构成的有序组均出现在关系T中。

所以本题选择C)。

下面描述中,不属于软件危机表现的是(  )。

A)软件过程不规范

B)软件开发生产率低

C)软件质量难以控制

D)软件成本不断提高

参考答案:

A

【解析】软件危机主要表现在:

软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。

所以选择A)。

下面不属于需求分析阶段任务的是(  )。

A)确定软件系统的功能需求

B)确定软件系统的性能需求

C)需求规格说明书评审

D)制定软件集成测试计划

参考答案:

D

【解析】需求分析阶段的工作有:

需求获取;需求分析;编写需求规格说明书;需求评审,所以选择D)。

在黑盒测试方法中,设计测试用例的主要根据是(  )。

A)程序内部逻辑

B)程序外部功能

C)程序数据结构

D)程序流程图

参考答案:

B

【解析】黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证,黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明,所以本题选择B)。

在软件设计中不使用的工具是(  )。

A)系统结构图

B)PAD图

C)数据流图(DFD图)

D)程序流程图

参考答案:

C

【解析】系统结构图是对软件系统结构的总体设计的图形显示。

在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。

PAD图是在详细设计阶段用到的。

程序流程图是对程序流程的图形表示,在详细设计过程中用到。

数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以选择C)。

以下可用作C语言用户标识符的是(  )。

A)void,define,WORD

B)a3 b3, 123,IF

C)FOR,--abc,Case

D)2a,Do,Sizeof

参考答案:

B

【解析】C语言规定用户标识符由字母、数字和下划线组成,且第一个字符必须是字母或下划线,可见选项C),D)是错误的;此外,C语言不允许用户将关键字作为标识符,而选项A)中的void正是C语言的关键字。

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

A)C语言的可执行程序是由一系列机器指令构成的

B)用C语言编写的源程序不能直接在计算机上运行

C)通过编译得到的二进制目标程序需要连接才可以运行

D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件

参考答案:

D

【解析】C语言的可执行程序是由一系列机器指令组成的,用C语言编写的源程序必须经过编译生成二进制目标代码,再经过连接才能运行,并且可以脱离C语言集成开发环境。

故答案为D)。

以下4个选项中,不能看作一条语句的是(  )。

A);

B)a=5,b=2.5,c=3.6;

C)if(b!

=5)x=2;y=6;

D)returnj;

参考答案:

C

【解析】C语言规定每个语句以;(分号)结束,因此选项C)为两条语句。

以下不能正确

计算代数式值的C语言表达式是(  )。

A)

B)

C)

D)

参考答案:

A

【解析】本题考查的是C语言表达式。

如果算术运算符"/"中参与运算的变量都是整型变量,则"/"表

示整除运算,所以"1/3"的值应为0,故选项A)的表达式值为0,而事实上代数式的值并不为0,所以选项A)不能正确计算题目所要求的代数式。

若有说明:

int*p,m=5,n;,以下正确的程序段是(  )。

A)p=&n;scanf("%d",&p);

B)p=&n;scanf("%d",*p)

C)scanf("%d",&n);*p=n;

D)p=&n;*p=m;

参考答案:

D

【解析】"&"是求址运算符,"*"是指变量说明符。

选项A)、B)应改为scanf("%d",p);选项C)中指针变量p未指向一确定的内存单元,不能为其赋值,并且这样做很危险,建议不使用。

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

main()

{ 

inta=20;

printf("%d,%o,%x\n",a,a,a);

}

A)20,024,0x14

B)20,24,14

C)20,0x14,024

D)20,20,20

参考答案:

B

【解析】本题的考查点是不同格式的数据输出。

printf函数对不同类型的数据用不同的格式字符,"%d"是以带符号的十进制形式输出整数(正数不输出符号);"%o"以八进制无符号形式输出整数(不包括前导符0);"%x"以十六进制无符号形式输出整数(不包括前导符0x)。

下面程序的运行结果是(  )

main()

{

inty=5,x=14;y=((x=3*y,x+6),x-1);

printf("x=%d,y=%d",x,y);

}

A)x=27,y=27

B)x=12,y=13

C)x=15,y=14

D)x=y=27

参考答案:

C

【解析】本题考查的是逗号表达式。

逗号表达式的求解步骤是先求解表达式1,然后依次求解表达式2,直到表达式N的值。

整个逗号表达式的值就是最后一个表达式N的值。

表达式(x=3*y,x+6)中,x=15。

表达式y=x-1=14。

设变量x和y均已正确定义并赋值。

以下if语句中,在编译时将产生错误信息的是(  )。

A)if(x++);

B)if(x>y&&y!

=0);

C)if(x>0)x--

elsey++;

D)if(y<0){;}

elsex++;

参考答案:

C

【解析】本题考查的是if语句。

if是C语言关键字,表达式两侧的圆括号不可少,最后是一条语句或是用花括号括起来的一组语句。

选项A)和B)是在表达式后跟了一条空语句,选项D)是在表达式后跟了一组空语句,选项C)中x--是表达式而不是语句,所以在编译时会出现错误信息,在x--后面加上";"号就对了。

请阅读以下程序:

#include

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{ case1:

 switch(y)

{ case0:

a++;break;}

  case2:

  a++,b++;break;}

 printf("a=%d,b=%d\n",a,b);

}

上面程序的输出结果是(  )。

A)a=2,b=1

B)a=1,b=1

C)a=1,b=0

D)a=2,b=2

参考答案:

A

【解析】考查switch语句的使用。

switch语句的执行过程为:

进入switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的case,以此作为入口,执行switch结构中后面的各语句,直到遇到break语句,则跳出switch语句,如果各case都不匹配时,则执行default后面的语句。

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

A)调用printf函数时,必须要有输出项

B)使用putchar函数时,必须在之前包含头文件stdio.h

C)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出

D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码

参考答案:

B

【解析】本题考查的是标准输入输出函数。

在使用标准输入输出库函数(除了printf和scanf)前,必须要用预编译命令"#include"将头文件"stdio.h"包括到用户源文件中。

调用printf函数时可以没有输出项,比如printf("")是允许的。

C语言中整数的输出形式中没有十二进制的形式。

getchar函数读入字符时可以得到第一个输入字符的ASCII码,无法通过输入相应字符的ASCII得到该字符。

有以下语句:

charb[8];intc;,则正确的输入语句是(  )。

A)scanf("%s%d",&b,&c);

B)scanf("%s%d",&b,c);

C)scanf("%s%d",b,c);

D)scanf("%s%d",b,&c);

参考答案:

D

【解析】scanf函数常用的格式控制中"s"代表输入的是字符串,"d"代表输入带符号的十进制整型数,根据语句charb[8];intc;可确定正确的输入语句是D)选项。

有以下程序:

#include

main()

{ inta[]={1,2,3,4},y,*p=&a[3];

--p;y=*p;printf("y=%d\n",y);

}

程序的运行结果是(  )。

A)y=0

B)y=1

C)y=2

D)y=3

参考答案:

D

【解析】在程序中指针变量p初始指向a[3],执行p减1后,p指向a[2],语句y=*p的作用是把a[2]的值赋给变量y,所以输出为y=3。

若有以下说明和语句,请选出哪个是对c数组元素的正确引用(  )。

intc[4][5],(*cp)[5];

cp=c;

A)cp+1

B)*(cp+3)

C)*(cp+1)+3

D)*(*cp+2)参考答案:

D

【解析】本题的考查点是数组元素的引用。

cp=c这个语句是将数组c的首行元素地址赋给了指针数组cp。

选项A),cp+1是指将数组c的首行地址加1,即为第二行地址;选项B),*(cp+3)是地址,等于数组c的首地址加3的那个内存单元的内容,不是对数组元素的引用;选项C),*(cp+1)+3是地址,等于数组c的首地址加1的那个内存单元中存放的值加3,不是对数组元素的引用。

有以下程序:

#include

main(){charp[20]={'a','b','c','d'},q[]="abc",r[]="abcde";

strcat(p,r);strcpy(p+strlen(q),q);

printf("%d\n",strlen(p));

}

程序运行后的输出结果是(  )。

A)9

B)6

C)11

D)7参考答案:

B

【解析】本题考查的是用于字符串处理的函数。

题目中首先通过strcat(p,r)将r所指字符串的内容连接到p所指的字符串后面,p[20]={a,b,c,d,a,b,c,d,e}。

然后通过p+strlen(q)在数组元素p[0]地址的基础上向后移动三位,然后将q所指字符串的内容复制到p所指的存储空间中,从字符"d"往后全部覆盖,p[20]={a,b,c,a,b,c}。

在输出语句中strlen(p)是求字符串的长度,值为6。

以下程序段中的变量已正确定义:

for(i=0;i<4;i++,i++) for(k=l;k<3;k++);printf("*");

程序段的输出结果是(  )。

A)********

B)****

C)**

D)*参考答案:

D

【解析】本题考察for循环语句,注意第二个for语句的后面有一个分号,即printf函数不属于循环体,无论循环执行多少次,printf("*")语句只执行一次。

因此,本题正确答案为D

以下程序运行后的输出结果是(  )。

main(){charch[]="uvwxyz",*pc;

pc=ch;

printf("%c\n",*(pc+5));

}

A)z

B)0

C)元素ch[5]地址

D)字符y的地址参考答案:

A

【解析】表达式*(pc+5)先将指针向后移动5个存储单元,指向ch[5],再取出其中的值。

其值为字符z。

有以下程序:

#include

voidfun(char**p){++p;

printf("%s\n",*p);

}

main(){char*a[]={"Morning","Afternoon","Evening","Night"};

fun(a);

}

运行后的输出结果是(  )。

A)Afternoon

B)fternoon

C)Morning

D)orning参考答案:

A

【解析】语句voidfun(char**p)中的形参是一个指向指针的指针,在调用函数fun(a)后,指针数组a加1,则指向了数组的第2个字符串"Afternoon"的A的地址。

以下程序运行后的输出结果是(  )。

voidf(intn,int*r){intr1=0;

if(n%3==0)r1=n/3;

elseif(n%5==0)r1=n/5;

elsef(--n,&r1);

*r=r1;

}

main(){intm=7,r;

f(m,&r);

printf("%d\n",r);

}

A)2

B)1

C)3

D)0参考答案:

A

【解析】参数r的传递是址传递,函数调用会改变其值。

函数f的功能是:

判断n是否为3或5的倍数,如果是,则将指针r所指的内存空间赋值为n除以3或5的商;否则n递减,直到它可以被3或5整除。

初始时调用函数f(7,&r);n=7,执行else子句,调用f(6,&r1);后n=6,执行语句if(n%3==0)r1=n/3;,此后执行语句*r=r1;。

所以r=6/3=2。

有以下程序:

main()

{ 

inta[3][2]={0},(*ptr)[2],i,j;

for(i=0;i<2;i++)

{ptr=a+i;scanf("%d",ptr);ptr++;}

for(i=0;i<3;i++)

{for(j=0;j<2;j++)printf("%2d",a[i][j]);

printf("\n");

}

}

若运行时输入:

123<回车>,则输出结果是(  )。

A)编译错误

20

00

B)10

20

00

C)12

20

30

D)10参考答案:

B

【解析】首先二维数组a中的元素都初始化为0,其次定义了指向数组的指针ptr,并且依次将ptr指向二维数组a中的各行,循环语句for(i=0;i<2;i++)等价于:

scanf("%d",a+0);scanf("%d",a+1);其中a+i即是数组a[i]的首地址,也是元素a[i][0]的地址,故以上语句读入两个整数,分别存入二维数组a第1列中,在输入123后,a={{1,0},{2,0},{0,0}}。

有以下程序:

#include

voidfun(char*s){while(*s){if(*s%2==0)printf("%c",*s);

s++;

}

}

main(){chara[]={"good"};

fun(a);printf("\n");

}

注意:

字母a的ASCII码值为97,程序运行后的输出结果是(  )。

A)d

B)go

C)god

D)good参考答案:

A

【解析】fun函数的功能是输出字符串中ASCII码能被2整除的字符,g的ASCII码为103,o的ASCII码为111,d的ASCII码为100,只有d满足。

因此,本题答案为A)。

有以下程序:

main()

{inti,s=0,t[]={1,2,3,4,5,6,7,8,9};

for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}

程序执行后的输出结果是(  )。

A)45

B)20

C)25

D)36参考答案:

C

【解析】统计1~9九个数中的奇数和,此题重点考察指向数组的指针。

C语言规定数组名代表数组的首地址,也就是第一个元素的地址。

因此*(t+i)代表数组的第i+1个元素。

程序运行的结果是1+3+5+7+9=25。

当用"#defineF37.5f"定义后,下列叙述正确的是(  )。

A)F是float型数

B)F是char型数

C)F无类型

D)F是字符串参考答案:

D

【解析】字符替换定义格式为:

#define标识符(形参表)形参表达式。

题中F是代表形参表达式的标识符(字符串)。

有以下程序(函数fun只对下标为偶数的元素进行操作)

#include

voidfun(int*a,intn){inti,j,k,t;

for(i=0;i

for(j=i;ja[k])k=j;

t=a[i];a[i]=a[k];a[k]=t;

}

}

main(){intaa[10]={1,2,3,4,5,6,7},i;

fun(aa,7);

for(i=0;i<7;i++)printf("%d,",aa[i]);

printf("\n");

}

程序运行后的输出结果是(  )。

A)7,2,5,4,3,6,1,

B)1,6,3,4,5,2,7,

C)7,6,5,4,3,2,1,

D)1,7,3,5,6,2,1,参考答案:

A

【解析】由函数fun(int*a,intn)中语句if(a[j]>a[k])k=j;可知当前k是记录数组中较大数据值所在位置的下标变量,所以该函数的作用是对数组a中的下标为偶数位置的数据进行从大到小的排序,即对a[0],a[2],a[4],a[6]中的数据1,3,5,7进行从大到小的排序,其他位置的数据不变,所以答案为A)。

阅读下列程序,则运行结果为(  )。

#include"stdio.h"

fun()

{ staticintx=3;

x++;

returnx;}

main()

{ inti,x;

for(i=0;i<3;i++)

x=fun();

printf("%d\n",x);}

A)3

B)4

C)5

D)6参考答案:

D

【解析】在整个程序运行期间,静态局部变量在内存的静态存储区中占据着永久的存储单元,即使退出函数以后,下次再进入该函数时,静态局部变量仍使用原来的存储单元,静态局部变量的初值是在编译的时候赋予的,在程序执行期间不再赋予初值。

本题由于连续三次调用函数fun(),三次对静态变量x进行操作,x的值应依次为4,5,6。

下列程序的输出结果是(  )。

#include"stdio.h"

#defineN3

#defineM3

voidfun(inta[M][N])

{ printf("%d\n",*(a[1]+2));}

main()

{ inta[M][N];

inti,j;

for(i=0;i

for(j=0;j

a[i][j]=i+j-(i-j);

fun(a);}

A)3

B)4

C)5

D)6参考答案:

B

【解析】若有以下定义:

inta[3][4],i,j;且当0<=i<3,0<=j<4,则可以有以下几种方式来引用数组中的第i行,第j列的元素:

a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。

赋值语句完成后数组中数据如下:

024

024

024

因为func()函数打印的是第1行第2列的数据,所以为4。

有以下程序段:

typedefstructNODE

{intnum;structNODE*next;

}OLD;

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

A)以上的说明形式非法

B)NODE是一个结构体类型

C)OLD是一个结构体类型

D)OLD是一个结构体变量参考答案:

C

【解析】本题考查的是结构体的定义。

typedef关键字用于声明一个新的类型名代替已有的类型名。

本题中如果没有用typedef进行定义,则structNODE为结构体类型,现在用typedef定义后,相当于用OLD代表了structNODE这一结构体类型,故OLD为结构体类型。

有以下程序:

structS{intn;inta[20];};

voidf(int*a,intn){inti;

for(i=0;i

}

main(){inti;structSs={10,{2,3,1,6,8,7,5,4,10,9}};

f(s.a,s.n);

for(i=0;i

}

程序运行后的输出结果是(  )。

A)2,4,3,9,

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

当前位置:首页 > 求职职场 > 简历

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

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