计算机二级无纸化选择题题库8.docx
- 文档编号:11752821
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:23
- 大小:40.49KB
计算机二级无纸化选择题题库8.docx
《计算机二级无纸化选择题题库8.docx》由会员分享,可在线阅读,更多相关《计算机二级无纸化选择题题库8.docx(23页珍藏版)》请在冰点文库上搜索。
计算机二级无纸化选择题题库8
选择题题库8
1.下列关于栈叙述正确的是( A )。
A)栈顶元素最先能被删除
B)栈顶元素最后才能被删除
C)栈底元素永远不能被删除
D)栈底元素最先被删除
2.下列叙述中正确的是( C )。
A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
D)以上说法均不正确
3.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( D )。
A)3
B)4
C)6
D)7
4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是( A )。
A)学生成绩管理系统
B)C语言编译程序
C)UNIX操作系统
D)数据库管理系统
5.结构化程序所要求的基本结构不包括( B )。
A)顺序结构
B)GOTO跳转
C)选择(分支)结构
D)重复(循环)结构
6.下面描述中错误的是( A )。
A)系统总体结构图支持软件系统的详细设计
B)软件设计是将软件需求转换为软件表示的过程
C)数据结构与数据库设计是软件设计的任务之一
D)PAD图是软件详细设计的表示工具
7.负责数据库中查询操作的数据库语言是( C )。
A)数据定义语言
B)数据管理语言
C)数据操纵语言
D)数据控制语言
8.一个教师可讲授多门课程,一门课程可由多个教师讲授。
则实体教师和课程间的联系是( D )。
A)1:
1联系
B)1:
m联系
C)m:
1联系
D)m:
n联系
9.
A)自然连接D
B)并
C)并
D)差
10.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是( B )。
A)-369
B)369
C)0.369
D)整数集合{1,2,3,4,5}
11.以下叙述中错误的是( D )。
A)C语言源程序经编译后生成后缀为.obj的目标程序
B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
12.以下选项中合法的标识符是( B )。
A)1 2
B) 12
C)2-1
D)12
13.设有定义:
intx=3;,以下表达式中,值不为12的是( D )。
A)
B)
C)
D)
14.下列程序的输出结果是( C )。
main()
{doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);}
A)3
B)3.2
C)0
D)3.07
15.有以下程序:
#include
main(){chara,b,c,d;
a=getchar();b=getchar();
scanf("%c%c",&c,&d);
printf("%c%c%c%c\n",a,b,c,d);
}
当执行程序时,按下列方式输入数据(从第1列开始,
234
则输出结果是( C )。
A)1234
B)12
34
C)1
23
D)1
234
16.下列程序的运行结果是( C )。
#include"stdio.h"
main()
{ intx=-9,y=5,z=7;
if(x if(y<0)z=0; elsez+=1; printf("%d\n",z);} A)6 B)7 C)8 D)9 17.以下选项中不属于C语言的类型的是( B )。 A)unsignedlongint B)longshort C)unsignedint D)signedshortint 18.有以下定义语句,编译时会出现编译错误的是( C )。 A)chara='a'; B)chara='\n'; C)chara='aa'; D)chara='\x2d'; 19.要求以下程序的功能是计算: s=1+1/2+1/3+…+1/100。 main(){ intn;floats; s=1.0; for(n=100;n>1;n--)s=s+1/n; printf("%6.4f\n",s); } 程序运行后输出结果错误,导致错误结果的程序行是( C )。 A)s=1.0; B)for(n=100;n>1;n--) C)s=s+1/n; D)printf("%6.4f\n",s); 20.有如下嵌套的if语句: if(a elsek=c; else if(b elsek=c; 以下选项中与上述if语句等价的语句是( C )。 A)k=(a a: b;k=(b b: c; B)k=(a ((b a: b): ((b>c)? b: c); C)k=(a ((a a: c): ((b b: c); D)k=(a a: b;k=(a a: c; 21.在下列选项中,没有构成死循环的是( D )。 A)inti=100; while (1) { i=i%100+1; if(i>100)break; } B)for(;;); C)intk=10000; do{k++;}while(k>10000); D)ints=36; while(s)--s; 22.有以下程序段: intn,t=1,s=0; scanf("%d",&n); do {s=s+t;t=t-2; }while(t! =n); 为使程序段不陷入死循环,从键盘键入的数据应该是( D )。 A)任意正奇数 B)任意负偶数 C)任意正偶数 D)任意负奇数 23.若运行以下程序时,从键盘输入ADescriptor #include main() { charc; intv0=1,v1=0,v2=0; do{ switch(c=getchar()) { case'a': case'A': case'e': case'E': case'i': case'I': case'o': case'O': case'u': case'U': v1+=1; default: v0+=1;v2+=1;}}while(c! ='\n'); printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);} A)v0=7,v1=4,v2=7 B)v0=8,v1=4,v2=8 C)v0=11,v1=4,v2=11 D)v0=13,v1=4,v2=12 24.数字字符0的ASCII值为48,若有以下程序: main(){chara='1',b='2'; printf("%c,",b++); printf("%d\n",b-a); } 程序运行后的输出结果是( C )。 A)3,2 B)50,2 C)2,2 D)2,50 25.有以下程序: #include voidf(int*p,int*q); main(){intm=1,n=2,*r=&m; f(r,&n);printf("%d,%d",m,n); } voidf(int*p,int*q){p=p+1;*q=*q+1;} 程序运行后的输出结果是( A )。 A)1,3 B)2,3 C)1,4 D)1,2 26.有以下程序: #include voidf(int*q){inti=0; for(;i<5;i++)(*q)++; } main(){inta[5]={5,4,3,2,1},i; f(a); for(i=0;i<5;i++)printf("%d,",a[i]); } 程序运行后的结果是( D )。 A)6,4,3,2,1 B)6,5,4,3,2 C)5,4,3,2,1 D)10,4,3,2,1 27.有以下程序: #include intf(intt[],intn); main(){inta[4]={1,2,3,4},s; s=f(a,4);printf("%d\n",s); } intf(intt[],intn){if(n>0)returnt[n-1]+f(t,n-1); elsereturn0; } 程序运行后的输出结果是( B )。 A)4 B)10 C)14 D)6 28.阅读下面程序段,则执行后的结果为(C )。 #include"stdio.h" main() {intm=4,n=2,k; k=fun(m,n); printf("%d\n",k);} fun(intm,intn) {return(m*m*m-n*n*n);} A)64 B)8 C)56 D)0 29.有以下程序: #include main(){ints[12]={1,2,3,4,5,6,7,8,9,10,11,12},c[5]={0},i; for(i=0;i<12;i++)c[s[i]]++; for(i=1;i<5;i++)printf("%d",c[i]); printf("\n"); } 程序的运行结果是(D )。 A)1234 B)5678 C)9101112 D)1111 30.以下程序的输出结果是( A )。 voidchange(intk[]){k[0]=k[5];} main(){intx[10]={1,2,3,4,5,6,7,8,9,10},n=0; while(n<=4){change(&x[n]);n++;} for(n=0;n<5;n++)printf("%d",x[n]); printf("\n"); } A)678910 B)13579 C)12345 D)62345 31.若有以下定义: intx[10],*pt=x; 则对x数组元素的正确引用是( B )。 A)*&x[10] B)*(x+3) C)*(pt+10) D)pt+3 32.若有定义语句: chars[3][10],(*k)[3],*p;,则以下赋值语句正确的是( )。 A)p=s; B)p=k; C)p=s[0]; D)k=s; 33.以下程序运行后的输出结果是( C )。 #include voidf(charp[][10],intn) { chart[10];inti,j; for(i=0;i for(j=i+1;j if(strcmp(p[i],p[j])>0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t); } } main() { charp[5][10]={"abc","aabdfg","abbd","dedbe","cd"}; f(p,5); printf("%d\n",strlen(p[0])); } A)2 B)4 C)6 D)3 34.设有定义: struct{charmark[12];intnum1;doublenum2;}t1,t2;,若变量均已正确赋初值,则以下语句中错误的是( C )。 A)t1=t2; B)t2.num1=t1.num1; C)t2.mark=t1.mark; D)t2.num2=t1.num2; 35.下面程序段的运行结果是( C )。 char*p="abcdefgh"; p+=3; printf("%d\n",strlen(strcpy(p,"ABCD"))); A)8 B)12 C)4 D)7 36.有以下程序: structS{intn;inta[20];}; voidf(structS*p){inti,j,t; for(i=0;i n-1;i++)for(j=i+1;j n;j++)if(p->a[i]>p->a[j]){t=p->a[i];p->a[i]=p->a[j];p->a[j]=t;} } main(){inti;structSs={10,{2,3,1,6,8,7,5,4,10,9}}; f(&s); for(i=0;i } 程序运行后的输出结果是( A )。 A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1, C)2,3,1,6,8,7,5,4,10,9, D)10,9,8,7,6,1,2,3,4,5, 37.有以下程序: #include intfun(){staticintx=1; x*=2;returnx; } main(){inti,s=1; for(i=1;i<=3;i++)s=fun(); printf("%d\n",s); } 程序运行后的输出结果是( D )。 A)0 B)1 C)4 D)8 38.有以下程序: #include #defineS(x)4*(x)*x+1 main(){intk=5,j=2; printf("%d\n",S(k+j)); } 程序运行后的输出结果是( B )。 A)197 B)143 C)33 D)28 39.设有定义语句int(*f)(int);,则以下叙述正确的是( B )。 A)f是基类型为int的指针变量 B)f是指向函数的指针变量,该函数具有一个int类型的形参 C)f是指向int类型一维数组的指针变量 D)f是函数名,该函数的返回值是基类型为int类型的地址 40.若有以下程序段: intr=9; printf("%d\n",r>>1); 输出结果是( B )。 A)2 B)4 C)8 D)16 1、参考答案: A 解析】栈是先进后出的数据结构,所以栈顶元素最后入栈却最先被删除。 栈底元素最先入栈却最后被删除。 所以选择A)。 2、参考答案: C 【解析】栈是先进后出的数据结构,在整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来操作,所以选择C)。 3、参考答案: D 【解析】根据二叉树的基本性质3: 在任意一棵二叉树中,多为0的叶子结点总比度为2的结点多一个,所以本题中度为2的结点为1-1=0个,所以可以知道本题目中的二叉树的每一个结点都有一个分支,所以共7个结点共7层,即度为7。 4、参考答案: A 【解析】软件按功能可以分为: 应用软件、系统软件、支撑软件。 操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件。 所以B)、C)、D)都是系统软件,只有A)是应用软件。 5、参考答案: B 【解析】1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。 6、参考答案: A 【【解析】详细设计的任务是为软件结构图中而非总体结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节,所以A)错误。 7、参考答案: C 【解析】数据定义语言: 负责数据的模式定义与数据的物理存取构建;数据操纵语言: 负责数据的操纵,包括查询及增、删、改等操作;数据控制语言: 负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。 8、参考答案: D 【解析】因为一个教师可讲授多门课程,而一门课程又能由多个老师讲授所以他们之间是多对多的关系,可以表示为m: n。 9、参考答案: D 【解析】关系T中的元组是关系R中有而关系S中没有的元组的集合,即从关系R中除去与关系S中相同元组后得到的关系T。 所以做的是差运算。 10、参考答案: B 【解析】只有B)选项369可以用无符号整数来表示和存储。 A)选项-369有负号,选项C)0.369是小数都不能用无符号整数类存储。 选项D)是一个整数集合得用数组来存储。 11、参考答案: D 【解析】并不是源程序中的所有行都参加编译。 在条件编译形式下,相关内容只在满足一定条件时才进行编译。 选项D)中的非执行语句不在其范围内。 12、参考答案: B 【解析】标识符命名规则: 标识符必须由字母(a~z或A~Z)或下划线( )开头;标识符的其他部分可以用字母、下划线或数字(0~9)组成;大小写字母表示不同意义,如cout和Cout代表不同的标识符;在定义标识符时,虽然语法上允许用下划线开头,但是,我们最好避免定义用下划线开头的标识符,因为编译器常常定义一些下划线开头的标识符。 因此,本题正确答案为B)。 13、参考答案: D 【解析】本题考查逗号运算符的运算方式,逗号运算符的作用是将若干表达式连接起来,它的优先级别在所有运算符中是最低的,结合方向为"自左至右"。 A)选项和C)选项的结果是一样的,可展开为: x=x*(x+1)=3*4=12;B)项中先执行x++,因为x++运算符有自加功能,逗号之前执行后x的值为4,逗号后的值就是整个表达式的值,即12;D)选项逗号之前并未给x赋值,所以表达式的值就是x+=6的值,即9.因此,本题答案为D)。 14、参考答案: C 【解析】本题考查复合的赋值表达式。 本题中,程序先执行语句x=1.2;,根据赋值运算的类型转换规则,先将double型的常量1.2转换为int型,即取整为1,然后将1赋值给变量x。 接下来执行语句y=(x+3.8)/5.0;根据运算符的优先级,先计算小括号内,再计算除法,最后执行赋值运算。 小括号内的运算过程: 先将整型变量x的值1转换为double型1.0,然后与3.8进行加法运算,得到中间结果4.8。 接着进行除法运算4.8/5.0,其结果小于1.0,这里没有必要计算出精确值,因为接着进行赋值运算,赋值号左边变量y的类型为整型,于是对这个小于1.0的中间结果进行取整,结果为0,于是变量y的值为0,d*y的值也为0。 15、参考答案: C 【解析】程序根据用户输入分别给字符型变量a、b、c、d赋值为1、 16、参考答案: C 【解析】if…else语句的执行过程如下,首先计算if后面一对圆括号内表达式的值,若表达式的值为非0,执行if子句,然后跳过else子句,去执行if语句后的下一条语句;若表达式的值为0,跳过if子句,去执行else子句,接着去执行if语句后的下一条语句。 C语言的语法规定,else子句总是与前面最近的不带else的if匹配,与书写格式无关,本题目的后一个if-else相当于嵌套在第一个if子句里,相当于x 17、参考答案: B 【解析】C语言中整型变量分为4种,基本型int,短整型shortint,长整型longint和无符号型(unsignedint、unsignedshort、unsignedlong)。 因此B)选项不属于C语言的类型。 18、参考答案: C 【解析】aa是字符串,字符串的表示要用双引号,可以赋值给字符数组和字符指针变量,但字符串不能赋值给字符变量,只能给字符变量赋值单个字符。 19、参考答案: C 【解析】本题的考查点是查找程序运行错误的原因。 主要考查运算中字符的转换。 初看此题,可能不太容易发现错误,该题的运行结果是1.0000,算法错误。 s=s+1/n;1/2=0,因为n为整型,所以1/n都为0。 这就是导致本题出错的原因。 s=s+1/n应改为s=s+1.0/n。 20、参考答案: C 【解析】嵌套的if语句功能是将k赋值为a、b、c中的最小值,选项A)中没有比较a、c的大小,选项B)中语句"((b a: b): ((b>c)? b: c)"错误,选项D)中没有比较b、c大小。 21、参考答案: D 【解析】选项A)的循环表达式的条件永久为1,并且小于100的数与100取余不超过99,所以在循环体内表达式i%100+1的值永远不大于100,break语句永远不会执行,所以是死循环;选项B)的括号内没有能使循环停下来的变量增量,是死循环;选项C)中先执行k++,使k=10001,从而使循环陷入死循环。 22、参考答案: D 【解析】此题目中变量s是迷惑考生的,变量t赋初值为1,由语句t=t-2;将使t得到的是负奇数。 所以选项D)是正确答案。 23、参考答案: D 【解析】本题考查switch语句的掌握。 必须掌握以下内容: 首先应该明白switch语句的语法格式: switch语句的语法格式为: switch(表达式) { case常量表达式1: 语句组1; case常量表达式2: 语句组2; … case常量表达式n: 语句组n; default: 语句组n+1; } 另外,以下几点关于switch语句的重点: ①系统在执行时计算开关表达式的值;②根据所得的值在各个case标号表达式中寻找匹配,直到发现与表达式匹配的标号(本例中匹配的是caseB: );③找到匹配后执行后面相应的语句表,顺序往下执行;④如果无相匹配的标号,若存在default标号,则执行该语句标号后面的语句表n+1;当不存在default标号时,不执行switch中的任何一个语句表。 一般而言,在多分支结构中总会出现"意外"的情况,这时均可归入default程序段,作统一的处理。 default标号是可选性的,不必每次都有,视需要而定。 switch语句中还可以包含switch语句,形成switch的嵌套。 24、参考答案: C 【解析】语句printf("%c,",b++);中b++是先返回后自增,所以执行完该语句后,输出结果是2,变量b的值为'3'。 printf("%d\n",b-a);b='3',ASCII值是51,a=1,ASCII值是49,所以b-a=51-49=2。 25、参考答案: A 【解析】在f(int*p,int*q)函数中,执行p=p+1将p所对应的地址加1,而*q=*q+1是将q所指向的n的地址所对应的值加1,即m的地址所对应的值不变,而n的值为3。 26、参考答案: D 【解析】表达式(*q)++先取出q所指对象的值,再对该值递增,计算中q的值不变。 所以f函数的功能是将指针q所指的数加5。 函数调用f(a);相当于将数组a的第一个元素加5,操作后a[
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 无纸化 选择题 题库
![提示](https://static.bingdoc.com/images/bang_tan.gif)