国家二级(C语言)机试模拟试卷469
选择题
1.下列关于C语言文件的叙述中正确的是( )。(C)
A. 文件由一系列数据依次排列组成,只能构成二进制文件
B. 文件由结构序列组成,可以构成二进制文件或文本文件
C. 文件由数据序列组成,可以构成二进制文件或文本文件
D. 文件由字符序列组成,其类型只能是文本文件
解析:C语言将文件看作是一个字符(字节)的序列,即由一个一个字符(字节)数据顺序组成。根据数据的组成形式,可将文件分为两种:
①ASCII文件,又称文本(text)文件,它的每一个字节可放一个ASCII码,代表一个字符;
②二进制文件,是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。
所以C文件就是一个字节流或一个二进制流。
2.程序流程图中带有箭头的线段表示的是( )。(C)
A. 图元关系
B. 数据流
C. 控制流
D. 调用关系
解析:在数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字的箭头表示控制流。所以选择C。
3.软件设计中模块划分应遵循的准则是( )。(B)
A. 低内聚低耦合
B. 高内聚低耦合
C. 低内聚高耦合
D. 高内聚高耦合
解析:软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。模块之间的耦合应尽可能的低,模块的内聚度应尽可能的高。
4.下面关于数据库三级模式结构的叙述中,正确的是( )。(B)
A. 内模式可以有多个,外模式和模式只有一个
B. 外模式可以有多个,内模式和模式只有一个
C. 内模式只有一个,模式和外模式可以有多个
D. 模式只有一个,外模式和内模式可以有多个
解析:数据库的三级模式结构是指数据库系统的外模式、模式和内模式。一个数据库可以有多个外模式,但只有一个模式和一个内模式。
5.对于一个正常运行的C程序,下列叙述中正确的是( )。(A)
A. 程序的执行总是从main函数开始,在main函数结束
B. 程序的执行总是从程序的第一个函数开始,在main函数结束
C. 程序的执行总是从main函数开始,在程序的最后一个函数中结束
D. 程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束
解析:一个C语言源程序无论包括了多少函数,总是从main函数开始执行,从main函数结束。
6.以下叙述中正确的是( )。(A)
A. C语言规定必须用main作为主函数名,程序将从此开始执行
B. 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C. C语言程序将从源程序中第一个函数开始执行
D. mmn的各种大小写拼写形式都可以作为主函数名,如MAIN,Main等
解析:C语言中的主函数只能是main()函数,不能任意指定,所以B选项错误。C语言从主函数main()开始,到主函数main()结束,所以C选项错误。主函数必须写成小写的main,不能混淆大小写,所以D选项错误。
7.有以下程序:
main()
{int n=O;
do
{ n++;
printf(\\(C)
A. 1
2
B. 1
2
3
C. 1
2
3
4
D. 1
解析:本题考查do…while循环。在do…while构成的循环体中,总是先执行一次循环体,然后再求表达式的值。当执行完第三次循环时.得到n=3.while循环表达式仍然成立,接着执行直到n=4,表达式不成立,跳出循环,结束程序。
8.下面结构体的定义语句中,错误的是( )。
A
解析:A)选项struct ord {int x;int y;int z;} struct ord a;错误,不能在定义结构体的同时,又用结构体类型名定义变量。应该写成B)选项或者D)选项的格式。
9.对下列二叉树进行前序遍历的结果为( )。
(B)
A. ABCDEFGH
B. ABDGEHCF
C. GDBEHACF
D. GDHEBFCA
解析:遍历就是不重复地访问一叉树的所有结点。二叉树遍历的方法有3种:前序遍历、中序遍历和后序遍历。记住3种遍历的顺序:①前序,访问根→按前序遍历左子树→按前序遍历右子树:②中序,按中序遍历左子树→访问根→按中序遍历右子树;③后序,按后序遍历左子树→按后序遍历右子树→访问根。所以对该二叉树的中序遍历结果为ABDGEHCF。
10.设变量已正确定义并赋值,以下正确的表达式是( )。(A)
A. x=y+z+5,++y B)int(15.8%5)
B. x=y*5=x+z
C. x=25%5.0
解析:B与D选项中取模运算符%的左右两个操作数均应为整数,所以B、D错误。C选项中不能将x+y的值赋给表达式y*5,所以C错误。
11.以下选项中,当x为大于1的奇数时,值为0的表达式为( )。(D)
A. x%2==1
B. x/2
C. x%2!=0
D. x%2==0
解析:当x为大于1的奇数时,x对2求余的结果为1,不为0,所以选项D中表达式的值为0。
12.下面4个关于C语言的结论中错误的是( )。(D)
A. 可以用do…while语句实现的循环一定可以用while语句实现
B. 可以用for语句实现的循环一定可以用while语句实现
C. 可以用while语句实现的循环一定可以用for语句实现
D. do…while语句与while语句的区别仅是关键字“while”出现的位置不同
解析:本题考查几个循环语句的关系。①do…while语句、while语句、for语句所实现的循环可以相互替代;②do…while语句和while语句的区别是do…while语句至少执行一次,再判断循环条件,while语句是先判断条件再执行。
13.有以下程序:
#include
main()
char c[2][5]={\\(D)
A. 693825
B. 69825
C. 63825
D. 6385
解析:本题的意图在于将c中两个字符串的偶数位置的数字组成一个新数,找到的4个数字分别为6、3、8、5,组成的数为6385,所以答案为D选项。
14.有以下程序:
#include<stdio.h>
int fun(int(*s)[4],int n,int k)
{
int m,i;
m=s[0][k]:
for(i=1;i<n;i++)
i
本文档预览:3600字符,共15674字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载