国家二级(C语言)机试模拟试卷479
选择题
1.在面向方法中,不属于“对象”基本特点的是( )。(A)
A. 一致性
B. 分类性
C. 多态性
D. 标识唯一性
解析:对象的基本特点有:
①标识唯一性,是指对象是可区分的;
②分类性,是指可将具有相同属性和操作的对象抽象成类;
③多态性,是指同一个操作可以是不同对象的行为;
④封装性,是指对象的内部对外不可见,在外面不可直接使用对象的处理能力,也不能直接修改对象的内部状态;
⑤模块独立性,是指模块内部各部分及模块间的关系的一种衡量标准,由内聚和耦合来度量。
2.软件设计中模块划分应遵循的准则是( )。(B)
A. 低内聚低耦合
B. 高内聚低耦合
C. 低内聚高耦合
D. 高内聚高耦合
解析:软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。模块之间的耦合应尽可能的低,模块的内聚度应尽可能的高。
3.下列叙述中错误的是( )。(A)
A. 一个C语言程序只能实现一种算法
B. C程序可以由多个程序文件组成
C. C程序可以由一个或多个函数组成
D. 一个C函数可以单独作为一个C程序文件存在
解析:一个C程序可以有一个或多个程序文件,也可以有一个或多个函数,所以一个C语言程序可以实现多种算法,答案选A
4.以下对C语言中联合类型数据的正确叙述是( )。(C)
A. 定义了联合变量后,即可引用该变量或该变量中的任意成员
B. 一个联合变量中可以同时存放其所有成员
C. 联合中的各个成员使用共同的存储区域
D. 在向联合中的一个成员进行赋值时,联合中其他成员的值不会改变
解析:联合体的几个特点:①联合体所占用的内存空间为最长的成员所占用的空间;②各个成员分量全部是从低地址方向开始使用内存单元;⑧联合体中的空间在某一时刻只能保存某一个成员的数据;④联合体和结构体可以任意嵌套。
5.设q1和q2是指向一个int型一维数组的指针变量,k为float型变量,下列不能正确执行的语句是( )。(B)
A. k=*q1*(*q2);
B. q1=k;
C. q1=q2;
D. k=*q1+*q2;
解析:本题考查指针变量的赋值操作。选项A)是将指针q1和q2所指向的变量值相乘,然后赋给k;选项B)中,noat型数据和指针型数据之间不能进行赋值运算;选项C)中,是两个指针变量之间的赋值;选项D)中,是两个指针型变量所指向的两个int型数据相加。
6.关系表中的每一行记录称为一个( )。(B)
A. 字段
B. 元组
C. 属性
D. 关键码
解析:在关系表中,每一列称为一个属性,对应表中的一个字段;每一行称为一个元组,对应表中的一条记录。
7.判断char型变量c1是否为小写字母的正确表达式为( )。(D)
A. ’a’<=c1<=’z’
B. (c1>=a)&&(c1<=z)
C. (’a’>=c1 || (’z’<=c1)
D. (c1>=’a’)&&(c1<=’z’)
解析:C语言规定,字符常量在程序中要用单引号括起来。首先判断c1是否为小写字母的主要条件“c1>=’ap’和“c1<=’z’”是逻辑与关系,其次选项A的这种形式C语言中没有,所以选项D正确。
8.以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序
void sort(int a[],int n)
{ int i,j,t;
for(i=0;i<n-1;i++)
for(j=i+1 ;j<n;j++)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}
}
main()
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa[3],5);
for(i=0;j<10;i++)ptintf(’’%d,’’,aa[i]);
printf(’’\n’’);}
程序运行后的输出结果是( )。(C)
A. 1,2,3,4,5,6,7,8,9,10,
B. 10,9,8,7,6,5,4,3,2,1,
C. 1,2,3,8,7,6,5,4,9,10,
D. 1,2,10,9,8,7,6,5,4,3,
解析:程序中sort函数的功能是对数组中的数据进行从大到小的排序。主函数main中调用函数“sort(&aa[3],5);”,使得数组aa中从第4个元素开始的5个元素进行从大到小的排序,数组aa中的元素变为:1,2,3,8,7,6,5,4,9,10。并输出这些元素。
9.fgets(str,n,fp)函数从文件中读入一个字符串,以下错误的叙述是( )。(C)
A. 字符串读入后会自动加入’\0’
B. fp是指向该文件的文件型指针
C. fgets函数将从文件中最多读入n个字符
D. fgets函数将从文件中最多读入n-1个字符
解析:字符串输入函数fgets()的调用形式为:fgets(s,n,fp)。s可以是一个字符数组名,或是指向字符串的指针;n为要读取的最多的字符个数;fp是指向该文件的文件型指针。字符串输入函数的功能是:从fi)所指向的文件中读取长度不超过n-1个字符的字符串,并将该字符串存放到字符数组s中。
10.设有关键码序列(Q,G,M,Z,A,N,B,P,X,H,Y,S,T,L,K,E、),采用堆排序法进行排序,经过仞始建堆后关键码值B在序列中的序号是( )。(B)
A. 1
B. 3
C. 7
D. 9
解析:建堆的算法:首先将要排序的所有关键码放到一棵完全二叉树的各个结点中(这时的二叉树不具备堆的特性),然后,从i=[n/2](n为结点的个数)的结点Ki开始,逐步把以K[n/2],K[n/2]-1,K[n/2]-2…为根的子树排成堆,直到以K1为根的树排成堆,就完成了建堆过程。此题中,n=16,i=[16/2]=8,即从第8个结点开始,建堆完成后如下图:
11.下面的for语句的循环次数为( )。
for(x=1,y=0;(y!=19)&&(x<6);x++);(D )
A. 是无限循环
B. 循环次数不定
C. 最多执行6次
D. 最多执行5次
解析:本题考查for循环。只考虑x的取值变化,x从1取到5,可以循环5次,但是并不知道v是如何变化的,有可能出现y=19提前跳出循环的情况,所以是最多执行了5次。
12.有
本文档预览:3600字符,共16445字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载