国家二级(C语言)机试模拟试卷494
选择题
1.在软件开发中,需求分析阶段产生的主要文档是( )。(B)
A. 可行性分析报告
B. 软件需求规格说明书
C. 概要设计说明书
D. 集成测试计划
解析:可行性分析报告是在可行性分析阶段产生的,A选项错误;概要设计说明书是总体设计阶段产生的文档,C选项错误;集成测试阶段是在概要设计阶段编写的文挡,D选项错误。需求规格说明书是后续工作如设计、编码等需要的重要参考文档。
2.下列叙述中正确的是( )。(D)
A. 一个逻辑数据结构只能有一种存储结构
B. 逻辑结构属于线性结构,存储结构属于非线性结构
C. 一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D. 一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
解析:数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,常用的存储结构有顺序和链式结构。采用不同的存储结构,其处理的效率是不同的。
3.下面属于黑盒测试方法的是( )。(B)
A. 基本路径测试
B. 等价类划分
C. 判定覆盖测试
D. 语句覆盖测试
解析:等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类进行测试。基本路径测试、判定覆盖测试和语句覆盖测试都属于白盒测试。
4.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )。(D)
A. 函数调用可以作为独立的语句存在
B. 函数调用可以作为一个函数的实参
C. 函数调用可以出现在表达式中
D. 函数调用可以作为一个函数的形参
解析:本题考查函数调用的有关知识点。函数调用①可以出现在表达式中;②可以作为独立的语句存在;③可以作为一个函数的实参。
5.下述程序的输出结果是( )。
#include
void main()
{ int a[20],*p[4];
int i,k=0;
for(i=0;i<20;i++)
a[i]=i;
for(i=0;i<4;i++)
p[i]=&a[i*i+1];
for(i=0;i<4;i++)
{ k=k+*p[i];}
printf(\\(B )
A. 10
B. 18
C. 6
D. 数组元素引用不合法,输出结果不定
解析:第一个for循环,给数组a的20个元素分别赋值0—19;第二个for循环,给数组p赋值,p[0]=a[1]=1,p[1]=a[2]=2,p[2]=a[5]=5,p[3]=a[10]=10;第三个for循环,将数组p 中元素的值进行累加,k=1+2+5+10=18。
6.有以下程序:
#include<stdio.h>
#include<string.h>
struct A
{int a;char b[10];double c;};
void f(struct A*t);
main()
{struct A a={1001,\\(B)
A. 1001,zhangDa,1098.0
B. 1002,ChangRong,1202.0
C. 1001,ChangRong,1098.0
D. 1002,zhangDa,1202.0
解析:本题主要考查是的函数调用时参数之间的传递问题。在C语言中参数之间的传递是传值,也就是把实参的值复制一份传递给形参,而实参的值不发生变化。但对于指针调用来说,函数直接对实参的地址操作,因此在这种情况下实参变化。
7.已知一个文件中存放若干工人档案记录,其数据结构如下:
struct a
{char number [100];
int age;
float p[6];
};
定义一个数组:struct a b[10];
假定文件已正确打开,不能正确地从文件中读入10名工人数据到数组b中的是( )。(B)
A. fread(b,sizeof(structa),10,fp);
B. for(i=0;i<10;i++)fread(b[i],sizeof(struct a),1,fp);
C. for(i=0;i<10;iH)fread(b+i,sizeof(struct a),1,fp);
D. for(i=0;i<5;i+=2)fread(b+i,sezeof(struct a),2,fp);
解析:数据块输入/输出函数的调用格式为:fread(buffer,size,count,fp),其中:“buffer”是一个指针,对于fread来说,它是读入数据的存放地址。“size”是要读写的字节数; “count”是要进行读写多少个size字节的数据项; “fp”是指文件型指针。选项B)中b[i]是一个数组,不是指针,需改为&b[i]。
8.下列数据结构中,能用二分法进行查找的是( )。(D)
A. 无序线性表
B. 线性链表
C. 二叉链表
D. 顺序存储的有序表
解析:二分法查找只适用于顺序存储的有序表,表中的元素按值从小到大排列。
9.若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是( )。
A
解析:B选项中switch((int)x);语句中不应该有最后的分号。switch(expr1),中的expr1不能用浮点类型或long类型,也不能为一个字符串,所以C错误。case后面常量表达式的类型必须与switch后面表达式的类型一致。所以D错误。
10.若i、j已定义成int型,则以下程序段中内循环体的总执行次数是( )。
for(i=6;i>0;i-一)
for(j=0:j<4;j++){…}(B)
A. 20
B. 24
C. 25
D. 30
解析:本题考查的是嵌套for循环执行次数。对于外层i的循环中任何一个i,内层j的循环中的i都要从0变化到3,j=4时退出循环;然后外层i循环的i减少1,内层循环的i仍要从0变化到3,j=4时退出循环……直到外层i循环的i变为0,退出i循环。所以执行多重循环时,对外层循环变量的每一个值,内层循环的循环变量都要从初始值变化到终值。对外层循环的每一次循环,内层循环要执行完整的循环语句。外层for语句执行6次,内层for语句执行4次,所以内循环体执行6*4=24次。
11.下列说法正确的是( )。(D)
A. int(**def)[10];—-def指向一个指针,该指针指向10个整型变量构成的数组
B. int*(*gh[10]);—gh指向一个指针,该指针指向10个整型变量构成的数组
C. int*(*gh[10]);—gh是
本文档预览:3600字符,共16203字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载