国家二级(C语言)机试模拟试卷441
选择题
1.为了使模块尽可能独立,要求( )。(B)
A. 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B. 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C. 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D. 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
解析:系统设计的质量主要反映在模块的独立性上。评价模块独立性的主要标准有两个:一是模块之间的耦合,它表明两个模块之间互相独立的程度;二是模块内部之间的关系是否紧密,称为内聚。一般来说,要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。
2.在数据流图中,带有箭头的线段表示的是( )。(B)
A. 控制流
B. 数据流
C. 模块调用
D. 事件驱动
解析:数据流图中带箭头的线段表示数据流,沿箭头方向传递数据的通道,一一般在旁边标注数据流名。
3.下面关于数据库三级模式结构的叙述中,正确的是( )。(B)
A. 内模式可以有多个,外模式和模式只有一个
B. 外模式可以有多个,内模式和模式只有一个
C. 内模式只有一个,模式和外模式可以有多个
D. 模式只有一个,外模式和内模式可以有多个
解析:数据库的三级模式结构是指数据库系统的外模式、模式和内模式。一个数据库可以有多个外模式,但只有一个模式和一个内模式。
4.下列方法中,不属于软件调试方法的是( )。(C )
A. 回溯法
B. 强行排错法
C. 集成测试法
D. 原因排除法
解析:软件调试主要采用以下三种方法:
强行排错法:作为传统的调试方法,其过程可概括为设置断点、程序暂停、观察程序状态、继续运行程序。
回溯法:该方法适合于小规模程序的排错、即一旦发现了错误,先分析错误征兆,确定最先发现“症状”的位置。
原因排除法:原因排除法是通过演绎和归纳,以及二二分法来实现。
5.设有定义:
char s[81]; int i=0;
以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是( )。
A
解析:函数scanf()输入字符串时默认空格为间隔符,所以不能输入空格,答案选A
6.以下叙述中错误的是( )。(A)
A. 可以给指针变量赋一个整数作为地址值
B. 函数可以返回地址值
C. 改变函数形参的值,不会改变对应实参的值
D. 当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL
解析:不能将一个整数直接赋给指针变量作为地址,所以A)是错误的。函数的返回值可以是地址,即指针。函数调用中形参值的变化不会传递给实参。
7.有以下程序
#include
main()
{FILE*fp;int i=20,j=30,k,n;
fp=fopen(\\(A)
A. 20 30
B. 20 50
C. 30 50
D. 30 20
解析:分析程序段,百先以只写万式打开文件,利用fprintf函数将i和j的值写入到文件d1.dat中,然后关闭文件;再以只读方式打开文件,利用格式化输入函数fscanf将文件中的数据赋值给k和n,最后输出k和n的值,分别是20和30。
8.有以下程序:
#include<stdio.h>
main()
{int x=1,y=0;
if(!x)y++;
else if(x==0)
if(x)y+=2;
else y+=3;
printf(\\(D)
A. 3
B. 2
C. 1
D. 0
解析:在if else语句中else总是与离它最近的if配对。本题目中x为1所以!x为0,所以执行else if语句中的内容,判断(x==0)是否成立,因为x为1所以条件不成立,所以else if内部的if…else语句不再执行,所以y的值还是初始值0。
9.有以下程序:
int fl(double a)
{return a*a;)
int f2(int x,int y)
{ double a,b;
a=f1(x);
b=n(y);
return a+b;
}
main()
{double w;
w=f2(2.1,4.0);
.
.
.
}
程序执行后,变量W的值是( )。(C)
A. 20.21
B. 20
C. 20.0
D. 0.0
解析:本题考查函数调用的使用。计算w的时候,先调用f2函数,f2函数的公式是“a+b”,计算a和b的时候义调用到f1函数,f1的函数是“a*a”,因此,w的计算公式为:
w=(double)[(int)(2.1*2.1)+(int)(4.0*4.0)]=20.0。
10.有以下程序:
#include<stdio.h>
main()
{int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++)t+=b[i][b[j][i]];
printf(\\(B)
A. 3
B. 4
C. 1
D. 9
解析:每次内循环只循环一次就结束,第一次外循环时t=t+b[0][b[0][o]]=1+b[0][0]=1+0=1;第二次外循环时t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第三次外循环时t=t+b[2][b[2][2]]=2+b[2][2]=2+2=4。
11.当用“#define F 37.5f”定义后,下列叙述正确的是( )。(D)
A. F是float型数
B. F是char型数
C. F无类型
D. F是字符串
解析:字符替换定义格式为:#define标识符(形参表)形参表达式。题中F是代表形参表达式的标识符(字符串)。
12.两个或两个以上的模块之间关联的紧密程度称为 ( )。(A)
A. 耦合度
B. 内聚度
C. 复杂度
D. 连接度
解析:耦合度是模块间互相连接的紧密程度的度量;内聚度是一个模块内部各个元素间彼此结合的紧密程度的度量。
13.程序测试的目的是( )。(C)
A. 为被测程序设计正确的测试用例
B. 发现并改正程序中的错误
C. 发现程序中的错误
D. 改正程序中的错误
解析:程序测试是使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别,即为发现错
本文档预览:3600字符,共15525字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载