计算机二级无纸化选择题题库7Word下载.docx
《计算机二级无纸化选择题题库7Word下载.docx》由会员分享,可在线阅读,更多相关《计算机二级无纸化选择题题库7Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
B)用C语言编写的源程序不能直接在计算机上运行
C)通过编译得到的二进制目标程序需要连接才可以运行
D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件
13.以下4个选项中,不能看作一条语句的是( C )。
A);
B)a=5,b=2.5,c=3.6;
C)if(b!
=5)x=2;
y=6;
D)returnj;
14.以下不能正确
计算代数式值的C语言表达式是( A )。
A)
B)
C)
D)
15.若有说明:
int*p,m=5,n;
,以下正确的程序段是( D )。
A)p=&
n;
scanf("
%d"
,&
p);
B)p=&
,*p)
C)scanf("
n);
*p=n;
D)p=&
*p=m;
16.以下程序的输出结果是( B )。
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
17.下面程序的运行结果是( C )
{
inty=5,x=14;
y=((x=3*y,x+6),x-1);
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
18.设变量x和y均已正确定义并赋值。
以下if语句中,在编译时将产生错误信息的是(C )。
A)if(x++);
B)if(x>
y&
&
y!
=0);
C)if(x>
0)x--
elsey++;
D)if(y<
0){;
elsex++;
19.请阅读以下程序:
#include<
stdio.h>
{intx=1,y=0,a=0,b=0;
switch(x)
{ case1:
switch(y)
{ case0:
a++;
break;
}
case2:
a++,b++;
printf("
a=%d,b=%d\n"
,a,b);
上面程序的输出结果是(A )。
A)a=2,b=1
B)a=1,b=1
C)a=1,b=0
D)a=2,b=2
20.以下叙述中正确的是( B )。
A)调用printf函数时,必须要有输出项
B)使用putchar函数时,必须在之前包含头文件stdio.h
C)在C语言中,整数可以以十二进制、八进制或十六进制的形式输出
D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
21.有以下语句:
charb[8];
intc;
,则正确的输入语句是( D )。
A)scanf("
%s%d"
b,&
c);
B)scanf("
b,c);
,b,c);
D)scanf("
,b,&
22.有以下程序:
#include<
{ inta[]={1,2,3,4},y,*p=&
a[3];
--p;
y=*p;
y=%d\n"
,y);
程序的运行结果是( D )。
A)y=0
B)y=1
C)y=2
D)y=3
23.若有以下说明和语句,请选出哪个是对c数组元素的正确引用( D )。
intc[4][5],(*cp)[5];
cp=c;
A)cp+1
B)*(cp+3)
C)*(cp+1)+3
D)*(*cp+2)
24.有以下程序:
string.h>
main(){charp[20]={'
a'
,'
b'
c'
d'
},q[]="
abc"
,r[]="
abcde"
;
strcat(p,r);
strcpy(p+strlen(q),q);
%d\n"
,strlen(p));
程序运行后的输出结果是(B )。
A)9
B)6
C)11
D)7
25.以下程序段中的变量已正确定义:
for(i=0;
i<
4;
i++,i++) for(k=l;
k<
3;
k++);
*"
);
程序段的输出结果是( D )。
A)********
B)****
C)**
D)*
26.以下程序运行后的输出结果是( A )。
main(){charch[]="
uvwxyz"
,*pc;
pc=ch;
%c\n"
,*(pc+5));
A)z
B)0
C)元素ch[5]地址
D)字符y的地址
27.有以下程序:
voidfun(char**p){++p;
%s\n"
,*p);
main(){char*a[]={"
Morning"
,"
Afternoon"
Evening"
Night"
};
fun(a);
运行后的输出结果是( A)。
A)Afternoon
B)fternoon
C)Morning
D)orning
28.以下程序运行后的输出结果是( 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);
,r);
A)2
B)1
C)3
D)0
29.有以下程序:
inta[3][2]={0},(*ptr)[2],i,j;
for(i=0;
2;
i++)
{ptr=a+i;
,ptr);
ptr++;
{for(j=0;
j<
j++)printf("
%2d"
,a[i][j]);
\n"
若运行时输入:
123<
回车>
,则输出结果是( B )。
A)编译错误
20
00
B)10
C)12
30
D)10
30.有以下程序:
voidfun(char*s){while(*s){if(*s%2==0)printf("
%c"
,*s);
s++;
main(){chara[]={"
good"
printf("
注意:
字母a的ASCII码值为97,程序运行后的输出结果是(A )。
A)d
B)go
C)god
D)good
31.有以下程序:
{inti,s=0,t[]={1,2,3,4,5,6,7,8,9};
9;
i+=2)s+=*(t+i);
,s);
程序执行后的输出结果是( C )。
A)45
B)20
C)25
D)36
32.当用"
#defineF37.5f"
定义后,下列叙述正确的是( D )。
A)F是float型数
B)F是char型数
C)F无类型
D)F是字符串
33.有以下程序(函数fun只对下标为偶数的元素进行操作)
#include<
voidfun(int*a,intn){inti,j,k,t;
n-1;
i+=2){k=i;
for(j=i;
j<
j+=2)if(a[j]>
a[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);
7;
i++)printf("
%d,"
,aa[i]);
程序运行后的输出结果是( A )。
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,
34.阅读下列程序,则运行结果为( D )。
#include"
stdio.h"
fun()
{ staticintx=3;
x++;
returnx;
{ inti,x;
x=fun();
,x);
A)3
B)4
C)5
D)6
35.下列程序的输出结果是( B )。
#defineN3
#defineM3
voidfun(inta[M][N])
{ printf("
,*(a[1]+2));
{ inta[M][N];
inti,j;
M;
for(j=0;
N;
j++)
a[i][j]=i+j-(i-j);
36.有以下程序段:
typedefstructNODE
{intnum;
structNODE*next;
}OLD;
以下叙述中正确的是( C )。
A)以上的说明形式非法
B)NODE是一个结构体类型
C)OLD是一个结构体类型
D)OLD是一个结构体变量
37.有以下程序:
structS{intn;
inta[20];
voidf(int*a,intn){inti;
i++)a[i]+=i;
main(){inti;
structSs={10,{2,3,1,6,8,7,5,4,10,9}};
f(s.a,s.n);
s.n;
i++)printf("
,s.a[i]);
程序运行后的输出结果是(A )。
A)2,4,3,9,12,12,11,11,18,9,
B)3,4,2,7,9,8,6,5,11,10,
C)2,3,1,6,8,7,5,4,10,9,
D)1,2,3,6,8,7,5,4,10,9,
38.下列选项中,能够满足"
若字符串s1等于字符串s2,则执行ST"
要求的是( A )。
A)if(strcmp(s2,s1)==0)ST;
B)if(sl==s2)ST;
C)if(strcpy(s1,s2)==1)ST;
D)if(sl-s2==0)ST;
39.有以下程序:
structSTU
{charname[10];
intnum;
floatTotalScore;
};
voidf(structSTU*p){structSTUs[2]={{"
SunDan"
20044,550},{"
Penghua"
20045,537}},*q=s;
++p;
++q;
*p=*q;
main(){structSTUs[3]={{"
YangSan"
20041,703},{"
LiSiGuo"
20042,580}};
f(s);
%s%d%3.0f\n"
,s[1].name,s[1].num,s[1].TotalScore);
程序运行后的输出结果是( B )。
A)SunDan20044550
B)Penghua20045537
C)LiSiGuo20042580
D)SunDan20041703
40.下面程序段的输出为( C )。
12<
<
2);
A)0
B)47
C)48
D)24
1、参考答案:
B
【解析】在实际应用中,队列的顺序存储结构一般采用循环队列的形式。
2、参考答案:
C
【解析】一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。
线性链表中数据的插入和删除都不需要移动表中的元素,只需改变结点的指针域即可。
3、参考答案:
A
【解析】根据二叉树的性质3:
在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以本题中度为2的结点是5-1=4个,所以度为1的结点的个数是25-5-4=16个。
4、参考答案:
【解析】数据库系统的三级模式是概念模式、外模式和内模式。
概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。
外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述。
内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,所以选择B)。
5、参考答案:
【解析】实体完整性约束要求关系的主键中属性值不能为空值,所以选择A)。
6、参考答案:
【解析】如果S=T/R,则S称为T除以R的商。
在除运算中S的域由T中那些不出现在R中的域所组成,对于S中的任一有序组,由它与关系R中每个有序组所构成的有序组均出现在关系T中。
所以本题选择C)。
7、参考答案:
【解析】软件危机主要表现在:
软件需求的增长得不到满足;
软件开发成本和进度无法控制;
软件质量难以保证;
软件不可维护或维护程度非常低;
软件的成本不断提高;
软件开发生产率的提高赶不上硬件的发展和应用需求的增长。
所以选择A)。
8、参考答案:
D
【解析】需求分析阶段的工作有:
需求获取;
需求分析;
编写需求规格说明书;
需求评审,所以选择D)。
9、参考答案:
【解析】黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证,黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明,所以本题选择B)。
10、参考答案:
【解析】系统结构图是对软件系统结构的总体设计的图形显示。
在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。
PAD图是在详细设计阶段用到的。
程序流程图是对程序流程的图形表示,在详细设计过程中用到。
数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以选择C)。
11、参考答案:
【解析】C语言规定用户标识符由字母、数字和下划线组成,且第一个字符必须是字母或下划线,可见选项C),D)是错误的;
此外,C语言不允许用户将关键字作为标识符,而选项A)中的void正是C语言的关键字。
12、参考答案:
【解析】C语言的可执行程序是由一系列机器指令组成的,用C语言编写的源程序必须经过编译生成二进制目标代码,再经过连接才能运行,并且可以脱离C语言集成开发环境。
故答案为D)。
13、参考答案:
【解析】C语言规定每个语句以;
(分号)结束,因此选项C)为两条语句。
14、参考答案:
【解析】本题考查的是C语言表达式。
如果算术运算符"
/"
中参与运算的变量都是整型变量,则"
表
示整除运算,所以"
1/3"
的值应为0,故选项A)的表达式值为0,而事实上代数式的值并不为0,所以选项A)不能正确计算题目所要求的代数式。
15、参考答案:
【解析】"
"
是求址运算符,"
是指变量说明符。
选项A)、B)应改为scanf("
,p);
选项C)中指针变量p未指向一确定的内存单元,不能为其赋值,并且这样做很危险,建议不使用。
16、参考答案:
【解析】本题的考查点是不同格式的数据输出。
printf函数对不同类型的数据用不同的格式字符,"
是以带符号的十进制形式输出整数(正数不输出符号);
%o"
以八进制无符号形式输出整数(不包括前导符0);
%x"
以十六进制无符号形式输出整数(不包括前导符0x)。
17、参考答案:
【解析】本题考查的是逗号表达式。
逗号表达式的求解步骤是先求解表达式1,然后依次求解表达式2,直到表达式N的值。
整个逗号表达式的值就是最后一个表达式N的值。
表达式(x=3*y,x+6)中,x=15。
表达式y=x-1=14。
18、参考答案:
【解析】本题考查的是if语句。
if是C语言关键字,表达式两侧的圆括号不可少,最后是一条语句或是用花括号括起来的一组语句。
选项A)和B)是在表达式后跟了一条空语句,选项D)是在表达式后跟了一组空语句,选项C)中x--是表达式而不是语句,所以在编译时会出现错误信息,在x--后面加上"
号就对了。
19、参考答案:
【解析】考查switch语句的使用。
switch语句的执行过程为:
进入switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的case,以此作为入口,执行switch结构中后面的各语句,直到遇到break语句,则跳出switch语句,如果各case都不匹配时,则执行default后面的语句。
20、参考答案:
【解析】本题考查的是标准输入输出函数。
在使用标准输入输出库函数(除了printf和scanf)前,必须要用预编译命令"
#include"
将头文件"
包括到用户源文件中。
调用printf函数时可以没有输出项,比如printf("
)是允许的。
C语言中整数的输出形式中没有十二进制的形式。
getchar函数读入字符时可以得到第一个输入字符的ASCII码,无法通过输入相应字符的ASCII得到该字符。
21、参考答案:
【解析】scanf函数常用的格式控制中"
s"
代表输入的是字符串,"
d"
代表输入带符号的十进制整型数,根据语句charb[8];
可确定正确的输入语句是D)选项
22、参考答案:
【解析】在程序中指针变量p初始指向a[3],执行p减1后,p指向a[2],语句y=*p的作用是把a[2]的值赋给变量y,所以输出为y=3。
23、参考答案:
【解析】本题的考查点是数组元素的引用。
cp=c这个语句是将数组c的首行元素地址赋给了指针数组cp。
选项A),cp+1是指将数组c的首行地址加1,即为第二行地址;
选项B),*(cp+3)是地址,等于数组c的首地址加3的那个内存单元的内容,不是对数组元素的引用;
选项C),*(cp+1)+3是地址,等于数组c的首地址加1的那个内存单元中存放的值加3,不是对数组元素的引用。
24、参考答案:
【解析】本题考查的是用于字符串处理的函数。
题目中首先通过strcat(p,r)将r所指字符串的内容连接到p所指的字符串后面,p[20]={a,b,c,d,a,b,c,d,e}。
然后通过p+strlen(q)在数组元素p[0]地址的基础上向后移动三位,然后将q所指字符串的内容复制到p所指的存储空间中,从字符"
往后全部覆盖,p[20]={a,b,c,a,b,c}。
在输出语句中strlen(p)是求字符串的长度,值为6。
25、参考答案:
【解析】本题考察for循环语句,注意第二个for语句的后面有一个分号,即printf函数不属于循环体,无论循环执行多少次,printf("
)语句只执行一次。
因此,本题正确答案为D)。
26、参考答案:
【解析】表达式*(pc+5)先将指针向后移动5个存储单元,指向ch[5],再取出其中的值。
其值为字符z。
27、参考答案:
【解析】语句voidfun(char**p)中的形参是一个指向指针的指针,在调用函数fun(a)后,指针数组a加1,则指向了数组的第2个字符串"
的A的地址。
28、参考答案:
【解析】参数r的传递是址传递,函数调用会改变其值。
函数f的功能是:
判断n是否为3或5的倍数,如果是,则将指针r所指的内存空间赋值为n除以3或5的商;
否则n递减,直到它可以被3或5整除。
初始时调用函数f(7,&
n=7,执行else子句,调用f(6,&
后n=6,执行语句if(n%3==0)r1=n/3;
,此后执行语句*r=r1;
。
所以r=6/3=2。
29、参考答案:
【解析】首先二维数组a中的元素都初始化为0,其次定义了指向数组的指针ptr,并且依次将ptr指向二维数组a中的各行,循环语句for(i=0;
i++)等价于:
,a+0);
,a+1);
其中a+i即是数组a[i]的首地址,也是元素a[i][0]的地址,故以上语句读入两个整数,分别存入二维数组a第1列中,在输入123后,a={{1,0},{2,0},{0,0}}。
30、参考答案:
【解析】fun函数的功能是输出字符串中ASCI