国二题库.docx
《国二题库.docx》由会员分享,可在线阅读,更多相关《国二题库.docx(44页珍藏版)》请在冰豆网上搜索。
![国二题库.docx](https://file1.bdocx.com/fileroot1/2023-1/7/b69d859f-b22a-47a0-ad43-088594775b2a/b69d859f-b22a-47a0-ad43-088594775b2a1.gif)
国二题库
二级C语言
第一部分公共基础知识单项选择题(10分)
5)、结构化程序设计的基本原则不包括
(A)自顶向下
(B)多态性
(C)逐步求精
(D)模块化
标准答案:
B
7)、对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是
(A)堆排序
(B)快速排序
(C)冒泡排序
(D)直接插入排序
标准答案:
A
9)、
(A)自然连接
(B)笛卡尔积
(C)交
(D)并
标准答案:
C
11)、在软件开发中,需求分析阶段可以使用的工具是
(A)N-S图
(B)PAD图
(C)程序流程图
(D)DFD图
标准答案:
D
16)、在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是
(A)
(B)
(C)O(n)
(D)
标准答案:
D
17)、在面向对象方法中,不属于“对象”基本特点的是
(A)多态性
(B)一致性
(C)标识唯一性
(D)分类性
标准答案:
B
18)、
(A)并
(B)自然连接
(C)交
(D)笛卡尔积
标准答案:
B
23)、数据库应用系统中的核心问题是
(A)数据库设计
(B)数据库系统设计
(C)数据库管理员培训
(D)数据库维护
标准答案:
A
24)、下列排序方法中,最坏情况下比较次数最少的是
(A)冒泡排序
(B)堆排序
(C)直接插入排序
(D)简单选择排序
标准答案:
B
26)、下面叙述中错误的是
(A)程序调试通常也称为Debug
(B)软件测试应严格执行测试计划,排除测试的随意性
(C)对被调试的程序进行“错误定位”是程序调试的必要步骤
(D)软件测试的目的是发现错误并改正错误
标准答案:
D
27)、耦合性和内聚性是对模块独立性度量的两个标准。
下列叙述中正确的是
(A)降低耦合性提高内聚性有利于提高模块的独立性
(B)耦合性是指一个模块内部各个元素间彼此结合的紧密程度
(C)内聚性是指模块间互相连接的紧密程度
(D)提高耦合性降低内聚性有利于提高模块的独立性
标准答案:
A
28)、某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是
(A)8
(B)4
(C)10
(D)6
标准答案:
D
29)、将E-R图转换为关系模式时,实体和联系都可以表示为
(A)属性
(B)关系
(C)域
(D)键
标准答案:
B
32)、对于循环队列,下列叙述中正确的是
(A)队头指针一定大于队尾指针
(B)队头指针是固定不变的
(C)队头指针可以大于队尾指针,也可以小于队尾指针
(D)队头指针一定小于队尾指针
标准答案:
C
33)、
(A)连接
(B)选择
(C)投影
(D)插入
标准答案:
C
35)、在E-R图中,用来表示实体联系的图形是
(A)椭圆形
(B)三角形
(C)菱形
(D)矩形
标准答案:
C
36)、
(A)交
(B)并
(C)选择
(D)投影
标准答案:
B
39)、下列选项中不属于结构化程序设计原则的是
(A)模块化
(B)逐步求精
(C)自顶向下
(D)可封装
标准答案:
D
40)、
(A)PAD图
(B)程序流程图
(C)E-R图
(D)N-S图
标准答案:
B
41)、软件生命周期是指
(A)软件的开发过程
(B)软件产品从提出、实现、使用维护到停止使用退役的过程
(C)软件的运行维护过程
(D)软件从需求分析、设计、实现到测试完成的过程
标准答案:
B
43)、面向对象方法中,继承是指
(A)类之间共享属性和操作的机制
(B)各对象之间的共同性质
(C)一个对象具有另一个对象的性质
(D)一组对象所具有的相似性质
标准答案:
A
44)、数据库设计中反映用户对数据要求的模式是
(A)外模式
(B)内模式
(C)设计模式
(D)概念模式
标准答案:
A
45)、层次型、网状型和关系型数据库划分原则是
(A)联系的复杂程度
(B)记录长度
(C)数据之间的联系方式
(D)文件的大小
标准答案:
C
47)、
(A)自然连接
(B)并
(C)交
(D)差
标准答案:
D
50)、软件测试的目的是
(A)改正程序中的错误
(B)发现并改正程序中的错误
(C)评估软件可靠性
(D)发现程序中的错误
标准答案:
D
51)、下面描述中错误的是
(A)系统总体结构图支持软件系统的详细设计
(B)软件设计是将软件需求转换为软件表示的过程
(C)数据结构与数据库设计是软件设计的任务之一
(D)PAD图是软件详细设计的表示工具
标准答案:
A
53)、某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点
在第1层)
(A)3
(B)4
(C)7
(D)6
标准答案:
C
54)、下列关于栈叙述正确的是
(A)栈顶元素最先能被删除
(B)栈顶元素最后才能被删除
(C)栈底元素永远不能被删除
标准答案:
A
55)、结构化程序所要求的基本结构不包括
(A)重复(循环)结构
(B)GOTO跳转
(C)顺序结构
(D)选择(分支)结构
标准答案:
B
56)、下列叙述中正确的是
(A)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
(B)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
(C)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
标准答案:
B
57)、负责数据库中查询操作的数据库语言是
(A)数据控制语言
(B)数据管理语言
(C)数据操纵语言
(D)数据定义语言
标准答案:
C
58)、下列叙述中正确的是
(A)只有一个根结点的数据结构不一定是线性结构
(B)有一个以上根结点的数据结构不一定是非线性结构
(C)双向链表是非线性结构
(D)循环链表是非线性结构
标准答案:
A
59)、定义无符号整数类为UInt,下面可以作为类UInt实例化值的是
(A)整数集合{1,2,3,4,5}
(B)0.369
(C)369
(D)-369
标准答案:
C
60)、
63)、
(A)7
(B)2
(C)6
(D)3
标准答案:
D
64)、软件生命周期中的活动不包括
(A)软件测试
(B)软件维护
(C)需求分析
(D)市场调研
标准答案:
D
65)、数据库系统的三级模式不包括
(A)内模式
(B)数据模式
(C)外模式
(D)概念模式
标准答案:
B
67)、程序调试的任务是
(A)诊断和改正程序中的错误
(B)验证程序的正确性
(C)发现程序中的错误
(D)设计测试用例
标准答案:
A
68)、下列关于数据库设计的叙述中,正确的是
(A)在概念设计阶段建立数据字典
(B)在需求分析阶段建立数据字典
(C)在物理设计阶段建立数据字典
(D)在逻辑设计阶段建立数据字典
标准答案:
B
69)、下列关于线性链表的叙述中,正确的是
(A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
(B)进行插入与删除时,不需要移动表中的元素
(C)各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
标准答案:
B
70)、在下列模式中,能够给出数据库物理存储结构与物理存取方法的是
(A)外模式
(B)概念模式
(C)逻辑模式
(D)内模式
标准答案:
D
71)、
(A)交
(B)投影
(C)自然连接
(D)并
标准答案:
C
72)、下列选项中属于面向对象设计方法主要特征的是
(A)自顶向下
(B)逐步求精
(C)模块化
(D)继承
标准答案:
D
74)、下列叙述中正确的是
(A)循环队列是队列的一种链式存储结构
(B)循环队列是非线性结构
(C)循环队列是一种逻辑结构
(D)循环队列是队列的一种顺序存储结构
标准答案:
D
75)、在黑盒测试方法中,设计测试用例的主要根据是
(A)程序内部逻辑
(B)程序数据结构
(C)程序流程图
(D)程序外部功能
标准答案:
D
76)、
(A)自然连接
(B)并
(C)除
(D)交
标准答案:
C
77)、下面描述中,不属于软件危机表现的是
(A)软件质量难以控制
(B)软件开发生产率低
(C)软件成本不断提高
(D)软件过程不规范
标准答案:
D
78)、在软件设计中不使用的工具是
(A)程序流程图
(B)数据流图(DFD图)
(C)系统结构图
(D)PAD图
标准答案:
B
79)、在满足实体完整性约束的条件下
(A)一个关系中只能有一个候选关键字
(B)一个关系中可以没有候选关键字
(C)一个关系中应该有一个或多个候选关键字
(D)一个关系中必须有多个候选关键字
标准答案:
C
80)、下面不属于需求分析阶段任务的是
(A)需求规格说明书评审
(B)确定软件系统的功能需求
(C)制定软件集成测试计划
(D)确定软件系统的性能需求
标准答案:
C
第二部分二级C语言单项选择题(30分)
1)、以下选项中,能用作数据常量的是
(A)o115
(B)0118
(C)115L
(D)1.5e1.5
标准答案:
C
3)、
(A)sqrt(fabs(pow(x,n)+exp(x)))
(B)sqrt(abs(n^x+e^x))
(C)sqrt(fabs(pow(n,x)+pow(x,e)))
(D)sqrt(fabs(pow(n,x)+exp(x)))
标准答案:
D
4)、设变量已正确定义并赋值,以下正确的表达式是
(A)int(15.8%5)
(B)x=y+z+5,++y
(C)x=25%5.0
(D)x=y*5=x+z
标准答案:
B
6)、有以下程序
#include
main()
{ints,t,A=10;doubleB=6;
s=sizeof(A);t=sizeof(B);
printf("%d,%d\n",s,t);
}
在VC6平台上编译运行,程序运行后的输出结果是
(A)4,8
(B)10,6
(C)2,4
(D)4,4
标准答案:
A
标准答案:
D
8)、以下选项中,合法的一组C语言数值常量是
(A)0x8A10,0003.e5
(B).1774e1.50abc
(C)028.5e-3-0xf
(D)12.0Xa234.5e0
标准答案:
D
10)、若有定义:
doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是
(A)i=(a+k)<=(i+k);
(B)a=a++,i++;
(C)i=a%11;
(D)i=!
a;
标准答案:
C
11)、设有定义:
intx=2;,以下表达式中,值不为6的是
(A)x*=(1+x)
(B)x*=x+1
(C)x++,2*x
(D)2*x,x+=2
标准答案:
D
12)、有以下程序
#include
main()
{intx,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序运行后的输出结果是
(A)2,3,3
(B)2,2,1
(C)2,3,2
(D)2,3,1
标准答案:
D
13)、以下叙述中错误的是
(A)使用三种基本结构构成的程序只能解决简单问题
(B)C语言是一种结构化程序设计语言
(C)结构化程序由顺序、分支、循环三种基本结构组成
(D)结构化程序设计提倡模块化的设计方法
标准答案:
A
14)、以下选项中,能用作用户标识符的是
(A)8_8
(B)unsigned
(C)_0_
(D)void
标准答案:
C
16)、以下四个程序中,完全正确的是
(A)#include
main();
{/*/programming/*/
printf("programming!
\n");}
(B)#include
main()
{/*programming*/
printf("programming!
\n");}
(C)#include
main()
{/*/*programming*/*/
printf("programming!
\n");}
(D)include
main()
{/*programming*/
printf("programming!
\n");}
标准答案:
B
17)、有以下程序
#include
main()
{inta=1,b=0;
printf("%d,",b=a+b);
printf("%d\n",a=2*b);
}
程序运行后的输出结果是
(A)1,0
(B)0,0
(C)1,2
(D)3,2
标准答案:
C
20)、有以下程序
#include
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;break;
case3:
a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
程序的运行结果是
(A)a=2,b=2
(B)a=1,b=1
(C)a=1,b=0
(D)a=2,b=1
标准答案:
D
22)、有以下程序
#include
main()
{inta=0,b=0,c=0,d=0;
if(a=1)b=1;c=2;
elsed=3;
printf("%d,%d,%d,%d\n",a,b,c,d);
}
程序输出
(A)1,1,2,0
(B)0,0,0,3
(C)0,1,2,0
(D)编译有错
标准答案:
D
23)、以下程序段中的变量已正确定义
for(i=0;i<4;i++,i++)
for(k=1;k<3;k++);printf("*");
程序段的输出结果是
(A)********
(B)**
(C)****
(D)*
标准答案:
D
25)、有以下程序段
#include
inti,n;
for(i=0;i<8;i++)
{n=rand()%5;
switch(n)
{case1:
case3:
printf("%d\n",n);break;
case2:
case4:
printf("%d\n",n);continue;
case0:
exit(0);
}
printf("%d\n",n);
}
以下关于程序段执行情况的叙述,正确的是
(A)当产生的随机数n为0时结束程序运行
(B)当产生的随机数n为4时结束循环操作
(C)for循环语句固定执行8次
(D)当产生的随机数n为1和2时不做任何操作
标准答案:
A
28)、若有定义:
floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是
(A)
switch(a+b)
{case1:
printf("*\n");
casec:
printf("**\n");}
(B)
switch(a+b)
{case1:
printf("*\n");
case2+1:
printf("**\n");}
(C)
switch(x)
{case1.0:
printf("*\n");
case2.0:
printf("**\n");}
(D)
switch((int)x);
{case1:
printf("*\n");
case2:
printf("**\n");}
标准答案:
B
31)、有以下程序
#include
main()
{inti,j,m=1;
for(i=1;i<3;i++)
{for(j=3;j>0;j--)
{if(i*j>3)break;
m*=i*j;
}
}
printf("m=%d\n",m);
}
程序运行后的输出结果是
(A)m=4
(B)m=6
(C)m=5
(D)m=2
标准答案:
B
34)、有以下程序段
#include
inta,b,c;
a=10;b=50;c=30;
if(a>b)a=b,b=c;c=a;
printf("a=%db=%dc=%d\n",a,b,c);
程序的输出结果是
(A)a=10b=30c=10
(B)a=50b=30c=50
(C)a=10b=50c=30
(D)a=10b=50c=10
标准答案:
D
35)、有以下程序
#include
main()
{intc=0,k;
for(k=1;k<3;k++)
switch(k)
{default:
c+=k;
case2:
c++;break;
case4:
c+=2;break;
}
printf("%d\n",c);
}
程序运行后的输出结果是
(A)5
(B)9
(C)7
(D)3
标准答案:
D
36)、设已有定义:
floatx;,则以下对指针变量p进行定义且赋初值的语句中正确的是
(A)float*p=1024;
(B)floatp=&&x;
(C)int*p=(float)x;
(D)float*p=&&x;
标准答案:
D
37)、有以下程序
#include
intf(intx);
main()
{intn=1,m;
m=f(f(f(n)));printf("%d\n",m);
}
intf(intx)
{returnx*2;}
程序运行后的输出结果是
(A)8
(B)2
(C)1
(D)4
标准答案:
A
38)、以下数组定义中错误的是
(A)intx[][3]={0};
(B)intx[2][3]={1,2,3,4,5,6};
(C)intx[][3]={{1,2,3},{4,5,6}};
(D)intx[2][3]={{1,2},{3,4},{5,6}};
标准答案:
D
39)、以下不构成无限循环的语句或语句组是
(A)n=0;
while
(1){n++;}
(B)for(n=0,i=1;;i++)n+=i;
(C)n=0;
do{++n;}while(n<=0);
(D)n=10;
while(n);{n--;}
标准答案:
C
40)、以下叙述中错误的是
(A)函数可以返回地址值
(B)可以给指针变量赋一个整数作为地址值
(C)当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL
(D)改变函数形参的值,不会改变对应实参的值
标准答案:
B
42)、有以下程序
#include
#defineN4
voidfun(inta[][N],intb[])
{inti;
for(i=0;i}
main()
{intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;
fun(x,y);
for(i=0;i}
程序运行后的输出结果是
(A)-3,-1,1,3,
(B)-3,-3,-3,-3,
(C)-12,-3,0,0,
(D)0,1,2,3,
标准答案:
A
43)、有以下程序
#include
voidfun(inta[],intn)
{inti,t;
for(i=0;i}
main()
{intk[10]={1,2,3,4,5,6,7,8,9,10},i;
fun(k,5);
for(i=2;i<8;i++)printf("%d",k[i]);
printf("\n");
}
程序的运行结果是
(A)876543
(B)321678
(C)345678
(D)1098765
标准答案:
B
44)、有以下程序
#include
intfun(intx,inty)
{if(x!
=y)return((x+y)/2);
elsereturn(x);
}
main()
{inta=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,c)));
}
程序运行后的输出结果是
(A)6
(B)8
(C)3
(D)12
标准答案:
A
45)、有以下程序
#include
main()
{intn,*p=NULL;
*p=&&n;
printf("Inputn:
");scanf("%d",&&p);printf("outputn:
");printf("%d\n",p);
}
该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是
(A)printf("%d\n",p);
(B)scanf("%d",&&p)
(C)*p=&&n;
(D)intn,*p=NULL;
标准答案:
D
46)、有以下程序
#include
intadd(inta,intb){return(a+b);}
main()
{intk,(*f)(),a=5,b=10;
f=add;
…
}
则以下函数调用语句错误的是
(A)k=(*f)(a,b);
(B)k=f(a,b);
(C)k=add(a,b);
(D)k=*f(a,b);
标准答案:
D
47)、有以下程序
#include
main()
{inta[