国家二级(C语言)机试模拟试卷519
选择题
1.关系数据库管理系统所管理的关系是( )。(A)
A. 若干个二维表
B. 一个DBF文件
C. 一个DBC文件
D. 若干个DBC文件
解析:在关系数据库中,一个表就是一个关系,关系数据库管理系统管理的关系就是多个二维表。
2.在软件开发中,需求分析阶段产生的主要文档是( )。(D)
A. 数据字典
B. 详细设计说明书
C. 数据流图说明书
D. 软件需求规格说明书
解析:需求分析的最终结果是生成软件需求规格说明书,可以为用户、分析人员和设计人员之间的交流提供方便。
3.结构化程序设计的3种结构是( )。(B)
A. 顺序结构,分支结构,跳转结构
B. 顺序结构,选择结构,循环结构
C. 分支结构,选择结构,循环结构
D. 分支结构,跳转结构,循环结构
解析:程序设计语言仅仅使用顺序、选择和重复(循环)三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。遵循程序结构化的设计原则,按结构化程序设计方法设计出的程序易于理解、使用和维护;可以提高编程工作的效率,降低软件的开发成本。
4.在下列选项中,没有构成死循环的程序段是 ( )。
C
解析:本题考查死循环的知识。选项A中,for循环没有任何控制语句就会一直执行下去,所以不可能通过控制表达式的值结束循环。循环体内,“i=i%10+1”这个表达式的值永远不会大于10,所以永远不会跳出循环,是死循环;选项B中,while中表达式永远是非0,不会结束循环;选项C中,当k>10时,结束循环;选项D中,“while(s);”后面没有任何表达式而是直接加了一个分号,会一直执行,形成死循环。
5.有以下程序:
#include
#include
main()
{ char str[][20]={.\\(A)
A. 10,One*Dream!
B. 9,One*Dream!
C. 9,One*World
D. 10,One*World
解析:p是指向二维字符数组第二行One+Dream!的数组指针,所以长度是10,打印输出的也是该字符串。
6.以下程序中c的二进制值是( )。
char a=2,b=4,c;
c=a^b>>2(A)
A. 00000011
B. 00010100
C. 00011100
D. 00011000
解析:本题主要考查按位异或和右移运算。b=4的二进制为00000100,b>>2后为00000001,a=2的二进制为00000010,两者异或为00000011。
7.以下( )不属于对象的基本特征。(A)
A. 继承性
B. 封装性
C. 分类性
D. 多态性
解析:对象具有特征:标识惟一性,指对象是可区分的;分类性,指可以将具有相同属性和操作的对象抽象成类;多态性,指同一个操作可以是不同对象的行为;封装性,从外面看只能看到对象的外部特征,而不知道也无需知道数据的具体结构以及实现操作的算法;模块独立性好,对象是面向对象的软件的基本模块,对象内部各种元素彼此结合得很紧密,内聚性强。
8.有以下程序:
#include<stdio.h>
main()
{int x,y,z;
x=y=1;
z=x++,y++,++y;
printf(\\(C)
A. 2,3,3
B. 2,3,2
C. 2,3,1
D. 2,2,1
解析:z=x++,y++,++y;因为赋值运算符的优先级高于逗号运算符的优先级,所以可以将上式表示成(z=x++),(y++),(++y)。然后从左向右先计算表达式z=x++,因为x++先使用后自增,所以z的值为1,x的值为2。再计算逗号表达式第二个表达式y++,此时y的值为2,最后计算第三个表达式++y,y的值为3。
9.若语句“t=fun(fun(x,y,a),(a+b,a+c),x+y+z);”对fun函数的调用正确,则fun函数的形参个数为( )。(A)
A. 3
B. 4
C. 5
D. 6
解析:本题考查函数调用时的参数个数。在函数调用时,实参必须和形参的个数、类型一一对应。但函数的计算结果只有一个值,因而fun函数的参数个数为3。
10.已知一个文件中存放若干工人档案记录,其数据结构如下:
struct a
{ char number[100];
int age;
float p[6];};
定义一个数组:struct a number[10];
假定文件已正确打开,不能正确地从文件中读入 10名工人数据到数组b中的是( )。(B)
A. fread(b,sizeof(struct a),10,fp);
B. for(i=0;i<10;i++)
fread(b[i],sizeof(struct a),1,fp);
C. for(i=0;i<10;i++)
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)。fread函.数参数说明:“buffer”是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。“size”是要读写的字节数;“count”是要进行读写多少个size字节的数据项;“fp”是指文件型指针。选项B)中b[i]是一个数组,不是指针,需改为&b[i]。
注意:完成一次读操作(fread())后,如果没有关闭流(felose()),则指针(FILE*fp)自动向后移动前一次读写的长度,不关闭流则继续下一次读操作,接着上次的输出继续输出。
11.已知int a=6:则执行a+=a=a*a;语句后,a的值为( )。(D)
A. 36
B. 0
C. -24
D. -60
解析:此题考查的是赋值表达式。执行语句“a+=a=a*a;”时,首先执行a=a-a*a=-30,然后执行a=a+a=-60。
12.有以下程序
#include
main()
{int k=5,n=0;
while(k>0)
{ switch(k)
{default:break;
case 1 :n+=k;
case 2 :
case 3 :n+=k;
}
k–;}
printf(\\(D)
A. 0
B. 4
C. 6
D. 7
解析:因为没有break语句,当k=2的时候,会顺序执行两条语句,k=1的时候
本文档预览:3600字符,共15276字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载