国家二级(C语言)机试模拟试卷411
选择题
1.在关系代数运算中,有5种基本运算,它们是( )。(D)
A. 并(∪)、差(-)、交(∩)、除(÷)和笛卡儿积(×)
B. 并(∪)、差(-)、交(∩)、投影(π)和选择(σ)
C. 并(∪)、交(∩)、投影(π)、选择(σ)和笛卡儿积(×)
D. 并(∪)、差(-)、投影(π)、选择(σ)和笛卡儿积(×)
解析:并、差、笛卡儿积、投影和选择是5种基本的运算,其他运算即交、连接和除,均可以通过5种基本的运算来表达。
2.以下选项中不合法的标识符是( )。(A)
A. &a
B. FOR
C. ptint
D. _oo
解析:C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。因为C语言中区分大小写,所以B选项中的“FOR”可以作为标识符来用。A选项中含有非法字符&,所以选择A。
3.读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中buffer代表的是( )。(D)
A. 一个内存块的字节数
B. 一个整型变量,代表待读取的数据的字节数
C. 一个文件指针,指向待读取的文件
D. 一个内存块的首地址,代表读入数据存放的地址
解析:fread(void*buffer,size_t size,size_t count,FILE*stream);功能是从一个文件流中读数据,读取count个元素,每个元素size字节,如果调用成功返回count。buffer:用于接收数据的内存地址,大小至少是size*count字节;size:单个元素的大小,单位是字节;count:元素的个数,每个元素是size字节;stream:输入流。
4.为了使模块尽可能独立,要求( )。(B)
A. 内聚程度要尽量高,耦合程度要尽量强
B. 内聚程度要尽量高,耦合程度要尽量弱
C. 内聚程度要尽量低,耦合程度要尽量弱
D. 内聚程度要尽量低,耦合程度要尽量强
解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简币。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一股较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
5.有三个关系R、S和T如下:
(D)
A. T=R∩S
B. T=R∪S
C. T=R×S
D. T=R-S
解析:图中关系R比关系s多一行T中的元组,故由关系R和S得到关系T的操作是差。
6.设有说明int(*ptr)[M];其中的标识符ptr是( )。(C)
A. M个指向整型变量的指针
B. 指向M个整型变量的函数指针
C. 一个指向具有M个整型元素的一维数组的指针
D. 具有M个指针元素的一维指针数组,每个元素都只能指向整型变量
解析:根据C语言的语法规则可知,int(*ptr)[M]中的标识符ptr是一个指向具有M个整型元素的一维数组指针。
7.以下语句定义正确的是( )。
D
解析:本题考查如何对二维数组的元素赋值。选项A),数组第二维的大小是4,但是却赋值了5个元素,数组溢出;选项B),C语言规定,对于二维数组,只可以省略第一个方括号中的常量表达式,而不能省略第二个方括号中的常量表达式;选项C),数组第一维的大小是2,但是赋值超过了2;选项D),在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取0。
8.设有定义:
struct complex
{ int real,unreal;}datal={1,8},data2;
则以下赋值语句中错误的是( )。
C
解析:本题主要考查结构体变量的定义与初始化。题目中定义了complex类型的结构体变量data1和data2,并对data1进行了初始化。可以用一个结构体变量的成员对另一个结构体变量的成员赋值。
9.以下选项中合法的标识符是( )。(D)
A. 1_ _
B. 1-1
C. 1_1
D. _11
解析:C语言中的标识符由下画线、字母和数字组成,且必须以下画线或字母开始,所以只有D选项正确。
10.若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是( )。(B)
A. x+1=y
B. ++x,y=x–
C. x=x+10=x+y
D. double(x)/10
解析:A选项中不能将变量y赋给表达式,C选项中错误与A选项一样,D选项中强制类型转换表达式应写成(double)x/10。
11.有以下程序:
#include<stdio.h>
#define N4
void fun(int a[][N],int b[])
{int i;
for(i=0;i<N;i++)b[i]=a[i][i];
}
main()
{int x[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;
fun(x,y);
for(i=0;i<N;i++)printf(\\(A)
A. 1,0,7,0,
B. 1,2,3,4,
C. 1,4,5,9,
D. 3,4,8,10,
解析:该程序首先存定义变量时,对二维数组a[][N]进行赋他操作;调用函数fun,函数fun的功能是将二维数组中的a[0][0]、a[1][1]、a[2][2]和a[3][3]赋值给一维数组,最后将一维数组元素1,0,7,0,输出。
12.对序线性表(23,29,34,55,60,70,78)用二分法查找值为60的元素时,需要比较次数为( )。(C)
A. 1
B. 2
C. 3
D. 4
解析:根据二分法查找法需要两次:①首先将60与表中间的元素55进行比较,由于60大于55,所以在线性表的后半部分查找。②第二次比较的元素是后半部分的中间元素,将60与表中间的元素70进行比较,由于60小于70,所以在线性表的前半部分查找。③第三次比较的元素是前半部分的中间元素,即60,这时两者相等,即查找成功。
13.在C语言中,以下说法不正确的是( )。(A)
A. 在C程序中,整数和实数都能被准确无误地表示出来
B. 在C程序中,任何一个变量名都代表存储器中的一个位置
C. 静态变量的生存期与整个程序的运行期相同
D. C语言中,任何变量都必须先声明才能进行引用
解析:此题考查C语言的基本概念。变量的实质就是在内存中占据一定的存储单元,存储单元里存放的是该变量的值,蛮量的值可以根据需要进行修改;整数在允许的范围内可以准确的表示出来,但不可能表示无限度的实数。
14.以下关于return语句的叙述中正确的是(B)
本文档预览:3600字符,共15214字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载