计算机二级无纸化选择题题库6.docx
- 文档编号:7163185
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:18
- 大小:38.11KB
计算机二级无纸化选择题题库6.docx
《计算机二级无纸化选择题题库6.docx》由会员分享,可在线阅读,更多相关《计算机二级无纸化选择题题库6.docx(18页珍藏版)》请在冰豆网上搜索。
计算机二级无纸化选择题题库6
选择题题库6
1.下列关于栈叙述正确的是( D )。
A)算法就是程序
B)设计算法时只需要考虑数据结构的设计
C)设计算法时只需要考虑结果的可靠性
D)以上三种说法都不对
2.下列叙述中正确的是( B )。
A)有一个以上根结点的数据结构不一定是非线性结构
B)只有一个根结点的数据结构不一定是线性结构
C)循环链表是非线性结构
D)双向链表是非线性结构
3.下列关于二叉树的叙述中,正确的是(B )。
A)叶子结点总是比度为2的结点少一个
B)叶子结点总是比度为2的结点多一个
C)叶子结点数是度为2的结点数的两倍
D)度为2的结点数是度为1的结点数的两倍
4.软件生命周期中的活动不包括( A )。
A)市场调研
B)需求分析
C)软件测试
D)软件维护
5.某系统总体结构图如下图所示:
该系统总体结构图的深度是(C )。
A)7
B)6
C)3
D)2
6.程序调试的任务是( D )。
A)设计测试用例
B)验证程序的正确性
C)发现程序中的错误
D)诊断和改正程序中的错误
7.下列关于数据库设计的叙述中,正确的是( A )。
A)在需求分析阶段建立数据字典
B)在概念设计阶段建立数据字典
C)在逻辑设计阶段建立数据字典
D)在物理设计阶段建立数据字典
8.数据库系统的三级模式不包括( D )。
A)概念模式
B)内模式
C)外模式
D)数据模式
9.有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是( A )。
A)自然连接
B)并
C)交
D)差
10.下列选项中属于面向对象设计方法主要特征的是( A )。
A)继承
B)自顶向下
C)模块化
D)逐步求精
11.以下叙述中正确的是( C )。
A)C语言程序将从源程序中第一个函数开始执行
B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C)C语言规定必须用main作为主函数名,程序从此开始执行,在此结束
D)main作为用户标识符,用以命名任意一个函数作为主函数
12.下列是用户自定义标识符的是( A )。
A) w1
B)3 xy
C)int
D)LINE-3
13.执行以下程序时输入1234567
#include
main(){inta=1,b;
scanf("%3d%2d",&a,&b);
printf("%d%d\n",a,b);
}
A)12367
B)12346
C)12312
D)12345
14.以下选项中,不能作为合法常量的是( C )。
A)1.234e05
B)1.234e+5
C)1.234e0.5
D)1.234e0
15.有以下程序,其中%u表示按无符号整数输出
main(){unsignedintx=0xFFFF;/*x的初值为十六进制数*/
printf("%u\n",x);
}
程序运行后的输出结果是( B )。
A)-1
B)65535
C)32767
D)0xFFFF
16.当用户要求输入的字符串中含有空格时,应使用的输入函数是( C )。
A)scanf()
B)getchar()
C)gets()
D)getc()
17.若执行下面的程序时,从键盘输入6和2,则输出结果是( C )。
main()
{inta,b,k;
scanf("%d,%d",&a,&b);
k=a;
if(a
elsek=b%a;
printf("%d\n",k);}
A)5
B)3
C)2
D)0
18.有以下程序:
fun(intx)
{intp;
if(x==0||x==1)return(3);
p=x-fun(x-2);
returnp;
}
main()
{ printf("%d\n",fun(7));}
执行后的输出结果是( C )。
A)7
B)3
C)2
D)0
19.已有定义:
charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是( B )。
A)isupper(c)
B)'A'<=c<='Z'
C)'A'<=c&&c<='Z'
D)c<=('z''-32)&&('a'-32)<=c
20.设有定义inta;floatb;,执行scanf("%2d%f",&a,&b);语句时,若从键盘输入876<空格>854.0<回车>,a和b的值分别是(B )。
A)876和543.000000
B)87和6.000000
C)87和543.000000
D)76和543.000000
21.有以下定义:
inta;longb;doublex,y;则以下选项中正确的表达式是( B )。
A)a%(int)(x-y)
B)a=x!
=y;
C)(a*y)%b
D)y=x+y=x
22.运行下面程序时,从键盘输入字母H,则输出结果是( C )。
#include
main()
{ charch;
ch=getchar();
switch(ch)
{caseH:
printf("Hello!
\n");
caseG:
printf("Goodmorning!
\n");
default:
printf("Bye Bye!
\n");
}
}
A)Hello!
B)Hello!
GoodMoring!
C)Hello!
Goodmorning!
Bye Bye!
D)Hello!
Bye Bye!
23.有以下程序:
#include
main()
{
chars[]="012x4y\08s34f4w2";
inti,n=0;
for(i=0;s[i]!
=0;i++)
if(s[i]>='0'&&s[i]<='9')n++;
printf("%d\n",n);
}
程序运行后的输出结果是( C )。
A)0
B)3
C)4
D)7
24.有以下程序:
main()
{
inta=0,b=0,c=0,d=0;
if(a=1)b=1;c=2;
else
d=3;
printf("%d,%d,%d,%d\n",a,b,c,d);
}
程序输出结果是( D )。
A)0,1,2,0
B)0,0,0,3
C)1,1,2,0
D)编译有错
25.定义如下变量和数组:
inti;
intx[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是( C )。
for(i=0;i<3;i++)
printf("%d",x[2-i][i]);
A)951
B)741
C)753
D)963
26.在C语言中,只有在使用时才占用内存单元的变量,其存储类型是(A )。
A)auto和register
B)extern和register
C)auto和static
D)static和register
27.有以下程序:
#include
intfun(inta,intb){
if(b==0)returna;
elsereturn(fun(--a,--b));
}
main(){
printf("%d\n",fun(4,2));
}
程序的运行结果是( B )。
A)1
B)2
C)3
D)4
28.有以下程序:
point(char*p){p+=3;}
main(){chara[4]={'1','2','3','4'},*p=a;
point(p);
printf("%c\n",*p);
}
程序运行后的输出结果是( A )。
A)1
B)2
C)3
D)4
29.阅读下列程序段,程序的输出结果为( B )。
#include"stdio.h"
#defineM(X,Y)(X)*(Y)
#defineN(X,Y)(X)/(Y)
main()
{ inta=5,b=6,c=8,k;
k=N(M(a,b),c);
printf("%d\n",k);}
A)3
B)5
C)6
D)8
30.设有以下函数:
voidfun(intn,char*s){……}
则下面对函数指针的定义和赋值均正确的是( B )。
A)void(*pf)();pf=fun;
B)void*pf();pf=fun;
C)void*pf();*pf=fun;
D)void(*pf)(int,char);pf=&fun;
31.有以下程序:
#include
voidfun(int*s,intn1,intn2){
inti,j,t;
i=n1;j=n2;
while(i } main(){ inta[10]={1,2,3,4,5,6,7,8,9,0},k; fun(a,0,3);fun(a,4,9);fun(a,0,9); for(k=0;k<10;k++)printf("%d",a[k]);printf("\n"); } 程序的运行结果是( )。 A)0987654321 B)4321098765 C)5678901234 D)0987651234 32.下面结构体的定义语句中,错误的是( C )。 A)structord{intx;inty;intz;};structorda; B)structord{intx;inty;intz;}structorda; C)structord{intx;inty;intz;}a; D)struct{intx;inty;intz;}a; 33.有以下程序: voidf(int*q){inti=0; for(;i<5;i++)(*q)++; } main(){inta[5]={1,2,3,4,5},i; f(a); for(i=0;i<5;i++)printf("%d,",a[i]); } 程序运行后的输出结果是( B )。 A)2,2,3,4,5, B)6,2,3,4,5, C)1,2,3,4,5, D)2,3,4,5,6, 34.有以下程序: #include voidfun(char*a,char*b){while(*a=='*')a++; while(*b=*a){b++;a++;} } main(){ char*s="*****a*b****",t[80]; fun(s,t);puts(t); } 程序的运行结果是( C )。 A)*****a*b B)a*b C)a*b**** D)ab 35.有以下程序: #include structst {intx,y;}data[2]={1,10,2,20}; main(){structst*p=data; printf("%d,",p->y);printf("%d\n",(++p)->x); } 程序的运行结果是( C )。 A)10,1 B)20,1 C)10,2 D)20,2 36.有以下程序: intfun(intx[],intn) {staticintsum=0,i; for(i=0;i returnsum; } main() {inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0; s=fun(a,5)+fun(b,4);printf("%d\n",s); } 程序执行后的输出结果是( C )。 A)45 B)50 C)60 D)55 37.有以下程序: intadd(inta,intb){return(a+b);} main() {intk,(*f)(),a=5,b=10; f=add; … } 则以下函数调用语句错误的是( C )。 A)k=(*f)(a,b); B)k=add(a,b); C)k=*f(a,b); D)k=f(a,b); 38.有以下程序段: structst {intx;int*y;}*pt; inta[]={1,2},b[]={3,4}; structstc[2]={10,a,20,b}; pt=c; 以下选项中表达式的值为11的是( B )。 A)*pt->y B)pt->x C)++pt->x D)(pt++)->x 39.有以下程序(strcat函数用以连接两个字符串): #include #include main(){chara[20]="ABCD\0EFG\0",b[]="IJK"; strcat(a,b);printf("%s\n",a); } 程序运行后的输出结果是(B )。 A)ABCDE\0FG\0IJK B)ABCDIJK C)JK D)EFGIJK 40.有以下程序: main(){unsignedchara=2,b=4,c=5,d; d=a|b;d&=c;printf("%d\n",d); } 程序运行后的输出结果是( B )。 A)3 B)4 C)5 D)6 1、参考答案: D 【解析】算法是指解题方案的准确而完整的描述,算法不等于程序,也不等于计算方法,所以A)错误。 设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。 2、参考答案: B 【解析】线性结构应满足: 有且只有一个根结点与每个结点最多有一个前件,也最多有一个后件,所以B)正确。 所以有一个以上根结点的数据结构一定是非线性结构,所以A)错误。 循环链表和双向链表都是线性结构的数据结构。 3、参考答案: B 【解析】根据二叉树的基本性质3: 在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个。 所以选择B) 4、参考答案: A 【解析】软件生命周期可以分为软件定义、软件开发与软件运行维护三个阶段。 主要活动阶段是: 可行性研究与计划阶段,需求分析,软件设计,软件实现,软件测试,运行和维护,所以选择A)。 5、参考答案: C 【解析】根据总体结构图可以看出该树的深度为3,比如: XY系统---功能2----功能2.1,就是最深的度数的一个表现。 6、参考答案: D 【解析】程序调试的任务是诊断和改正程序中的错误。 7、参考答案: A 【解析】数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善的。 8、参考答案: D 【解析】数据库系统的三级模式是概念模式、外模式和内模式,所以选择D)。 9、参考答案: A 【解析】自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据T中元组可以判断R和S做的是自然连接操作。 10、参考答案: A 【解析】面向对象基本方法的基本概念有对象、类和实例、消息、继承与多态性,所以选择A)。 11、参考答案: C 【解析】一个C语言源程序至少包含一个main函数。 无论main函数在程序中的位置如何,它都是C语言程序的主函数,是程序执行的入口和出口。 12、参考答案: A 【解析】C语言规定用户标识符由英文字母、数字和下划线组成,且第一个字符必须是字母或下划线,由此可见选项B),D)是错的;此外,C语言不允许用户将关键字作为标识符,而选项C)选项项中的int是C语言的关键字。 13、参考答案: D 【解析】scanf函数中的格式控制说明为"%3d%2d",分别选中输入中的三位和两位,因此a=123,b=45。 因此正确答案为D)选项。 14、参考答案: C 【解析】C语言的语法规定,字母e(E)之前必须有数字,且e(E)后面的指数必须是整数,而选项C)中,e(E)后面的指数是小数,所以不合法。 15、参考答案: B 【解析】本题考查的是整型无符号数的输出。 %u的作用是按无符号的十进制形式输出整型数,整型无符号数的取值范围在0~65535之间,无符号数不能表示成小于0的负数,十六进制数0xFFFF转换为二进制位其值为16个1,代表的整数就是65535。 16、参考答案: C 【解析】本题综合考查了输入函数的使用。 scanf函数会将空格视为分隔符,getchar函数只能输入单个字符,getc函数是文件操作函数,显然都不符合题意。 通过gets函数输入字符串时,输入的空格被认为是字符串的一个字符。 17、参考答案: C 【解析】本题考查简单的if…else语句。 先执行条件if(a 18、参考答案: C 【解析】因为fun(intx)是一个递归函数,所以主函数中fun(7)经过三次递归调用,其过程可以描述为"fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun (1)))=7-(5-(3-3))=7-5=2",所以最后的输出结果为2。 19、参考答案: B 【解析】在本题中,选项B)实际是先计算关系表达式"'A'<=c"的值是0还是1,再比较该值与字符Z之间的大小关系,显然不能实现题目所要求的功能,而选项A)、C)、D)都可以。 20、参考答案: B 【解析】scanf()函数用空格区分不同字符串的输入,因此876和543.0被看作两段输入。 %2d只选取了第一个输入中的前两位,%f选取随后的数字作为浮点数,因此输出结果为87和6.000000。 21、参考答案: B 【解析】A)选项中如果x与y的值相等那么取余时就会有除数为0的情况。 C)选项中取余的两个数据都应为整数,不能有一方为实型变量,而a*y的结果为double型。 D)选项表达式本身就错误,不能给表达式赋值。 所以,本题答案为B)。 22、参考答案: C 【解析】本题主要对switch语句进行了考查。 switch语句的执行过程为: 进入switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的case,以此作为入口,执行switch结构中后面的各语句,直到遇到break语句,则跳出switch语句,如果各case都不匹配时,则执行default后面的语句。 本题中ch为字符H,所以caseH条件中的语句将被执行,由于没有break语句,所以caseG后的语句也被执行,由于同样的缺少break语句,所以default后的语句也被执行了。 23、参考答案: C 【解析】本题的程序是要统计字符串s中数字的个数,其中前6个字符中有4个满足选择条件,此时n为4,然后遇到字符\0,这个转义字符表示值为0的空字符NULL,此时循环条件不满足,因此循环结束。 24、参考答案: D 【解析】if中的语句组包含两条语句,但是没有花括号,所以编译有错。 如果这个时候没有else,就理解成语句组只有一条语句,编译将是正确的。 25、参考答案: C 【解析】考查二维数组元素的引用方法。 题中通过二维数组的行、列下标来定位元素的位置,从而实现元素的引用。 26、参考答案: A 【解析】本题的考查点是变量的存储类型。 extern、register、static、auto分别是定义自动变量、寄存器变量、静态变量、外部变量,其中,自动变量和寄存器变量属于动态存储,调用时临时分配单元;而静态变量和外部变量属于静态存储,在整个程序运行时间都存在。 27、参考答案: B 【解析】该题目考查函数参数传递以及if条件语句。 当变量b为0时,将a的值返回给主调函数,因此a进行两次自减1后,将其值返回并输出。 28、参考答案: A 【解析】在函数point函数调用时,系统自动为函数的形参p分配内存空间,并赋值为实参p的值。 当执行语句p+=3;时,系统操作的是形参p的内存空间,更改形参p的内容,而实参指针变量p的值未受影响,即指针变量作为函数参数时,不能更改实参指针变量的指向。 故在printf("%c\n",*p);语句中,p仍然指向字符数组的首元素。 29、参考答案: A 【解析】带参数的宏定义命令行形式如下: #define宏名(形参表)替换文本。 首先进行M的宏替换,之后再进行N的宏替换,替换后的表达式为(a)*(b)/(c)。 30、参考答案: A 【解析】函数指针的定义形式是: 数据类型标识符(*指针变量名)()。 void(*pf)()定义了一个没有返回值的函数指针pf,在给函数指针变量赋值时,只需给出函数名而不必给出参数。 所以给pf赋值时,只把函数名fun赋给pf即可。 所以正确答案为选项A)。 32、参考答案: C 【解析】函数fun(int*s,intn1,intn2)的功能是对数组s中的元素进行首尾互相调换。 所以在主函数中,当fun(a,0,3)执行完后,数组a[12]={4,3,2,1,5,6,7,8,9,0};再执行fun(a,4,9),数组a[12]={4,3,2,1,0,9,8,7,6,5};再执行fun(a,0,9)后,数组a[12]={5,6,7,8,9,0,1,2,3,4}。 所以正确答案为C)。 33、参考答案: B 【解析】本题考查的是指针作为函数的参数和函数的调用。 题目中定义了一个指针变量作为函数f()的形参。 主函数main()中调用f()函数,当i=0时,执行语句(*q)++,此处*q代表的就是数组元素a[0]的值,即将1进行加1操作;当i=1时,q仍指向数组元素a[0]的地址,因为在函数f()中并未对指针变量q作任何变动,也即*q仍代表了数组元素a[0]的值,所以此次(*q)++即2+1,所以a[0]的值变为3;……直到i=4时,执行(*q)++(即5+1)后a[0]的值变为6。 所以最后的输出结果为: 6,2,3,4,5,。 34、参考答案: C 【解析】在函数fun(char*a,char*b)中,while(*a==*)a++的功能是: 如果*a的内容为*,则a指针向后移动,直到遇到非*字符为止,退出循环进入下一个while循环,在while(*b=*a){b++;a++;}中,把字符数组a中的字符逐个赋给字符数组b。 所以在主函数中,执行fun(s,t)语句后,字符数组t中的内容为"a*b****"。 所以选项C)为正确答案。 35、参考答案: C 【解析】数组名的值即为数组首地址,所以p->y可得第一个元素的y值,(++p)->x可得第二个元素的x值。 36、参考答案: C 【解析】内部静态变量是始终存在的,当函数被调用退出后,内部静态变量会保存数据,再次调用该函数时,以前调用时的数值仍然保留着。 Fun(a,5)的值是15,再次调用后sum=1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 无纸化 选择题 题库
![提示](https://static.bdocx.com/images/bang_tan.gif)