国家二级C语言机试(选择题)模拟试卷298
选择题
1.下列叙述中正确的是( )。(B)
A. 所谓算法就是计算方法
B. 程序可以作为算法的一种描述方法
C. 算法设计只需考虑得到计算结果
D. 算法设计可以忽略算法的运算时间
解析:算法是指对解题方案的准确而完整的描述,算法不等于数学上的计算方法,也不等于程序。算法设计需要考虑可行性、确定性、有穷性与足够的情报,不能只考虑计算结果。算法设计有穷性是指操作步骤有限且能在有限时间内完成,如果一个算法执行耗费的时间太长,即使最终得出了正确结果,也是没有意义的。算法在实现时需要用具体的程序设计语言描述,所以程序町以作为算法的一种描述方法。
2.下列叙述中正确的是( )。(A)
A. 对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n
B. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)
C. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)
D. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)
解析:本题主要考查的知识点为查找技术。顺序查找的使用情况:①线性表为无序表;②表采用链式存储结构。二分法查找只适用于顺序存储的有序表,并不适用于线性链表。
3.有以下程序:
#include
void main()
{
int m=1,n=2,*P=&m,*q=&n,*r;
r=P;p=q;q=r;
printf(“%d,%d,%d,%d\n”,m,n,*P,*q);
}
程序运行后的输出结果是( )。(B)
A. 1,2,1,2
B. 1,2,2,1
C. 2,1,2,1
D. 2,1,1,2
解析:本题定义了两个整型变量,然后用两个指针分别指向这两个整型变量,接着对指针进行交换,那么原来指向第一个整数的指针将指向第二个整数,原来指向第二个整数的指针将指向第一个整数。
4.在关系数据库设计中,关系模式是用来记录用户数据的( )。(D)
A. 实体
B. 视图
C. 属性
D. 二维表
解析:关系模式采用二维表来表示关系,简称表。
5.在软件设计中,不属于过程设计工具的是(D)
A. PDL(过程设计语言)
B. PAD图
C. N-S图
D. DFD图
解析:DFD(数据流图Data-Flow-Diagram)是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示。它直接支持系统功能建模。在软件详细设计的过程阶段,要对每个模块规定的功能以及算法的设计给出适当的算法描述。常见的过程设计工具有:
图形工具:程序流程图,N—S,PAD,HIPO。
表格工具:判定表。
语言工具:PDL(伪码)。
6.下列关于数据库设计的叙述中,正确的是(A)
A. 在需求分析阶段建立数据字典
B. 在概念设计阶段建立数据字典
C. 在逻辑设计阶段建立数据字典
D. 在物理设计阶段建立数据字典
解析:数据库设计目前一般采用生命周期法,即将整个数据库应用系统的开发分解成目标独立的若干阶段。分别是:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段。数据字典是对系统中数据的详尽描述,是各类数据属性的清单。对数据设计来讲,数据字典是进行详细的数据收集和数据分析所获得的主要结果。
7.设有以下定义和语句,输出的结果是(用small模式编译,指针变量占2个字节)( )。
struct U
{ long*cat;
stmct U*next;
double dog;
}u;
printf(\\(D)
A. 20
B. 16
C. 14
D. 12
解析:当结构成员是指针时,它将占用2字节的存储单元(在small编译模式下),而与它所指向的数据类型无关。本题中,指针cat的长度为2字节;next是指向结构struct U的指针,但它本身也只是一个指针,其长度也是2字节;double型变量dog的长度为8字节。因此,结构变量u的总长度为12字节。
8.在下列定义语句中,编译时会出现编译错误的是( )。(D)
A. char a=’\x2d’;
B. char a=’\n’;
C. char a=’a’;
D. char a=\\
解析:D选项中将字符串常量“aa”赋给字符变量a是错误的。
9.设有定义:inta;floatb;执行scanf(’’%2d%f’,&a,&b);语句时,若从键盘输入876543.0则a和b的值分别是(B)
A. 876和543.0
B. 87和6.0
C. 87和543.0
D. 76和543.0
解析:在输入函数scanf的输入格式符%2d%f中,2d表示输入的数据的宽度为2,所以当从键盘输入876543.0<CR>时,这时把输入数字串的前两位87赋给变量a,然后将紧接着将6按照格式控制符%f的形式赋给变量b,所以b的值为6.000000。
10.若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是(B)
A. 一对一
B. 一对多
C. 多对一
D. 多对多
解析:由于B和C有一一对应的联系,而A和B只间有一对多的联系,则通过关系之间的传递,则A和C之间也是一对多的联系。
11.有以下程序:
#include
main()
{ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
fnr(j=i;j<=i;j++)t+=b[i][b[j][i]];
printf(“%d\n”,t);
}
程序的运行结果是( )。(B)
A. 3
B. 4
C. 1
D. 9
解析:每次内循环只循环一次就结束,第1次外循环时,t=t+b[0][b[0][0]]=1+b[0][0]=1+0=1;第2次外循环时,t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第3次外循环时,t=t+b[2][b[2][2]]=2+b[2][2]=2+2=4。
12.在关系数据库中,用来表示实体间联系的是(B)
A. 属性
B. -维表
C. 网状结构
D. 树状结构
解析:在关系数据库中,实体间的联系由一个二维表来表示。
13.有以下程序
main(){int a=1,b=2,c=3,d=0;
if(a=1&&b++==2)
if(b!=211c一!=3)
本文档预览:3600字符,共12263字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载