国家二级C语言机试(选择题)模拟试卷339
选择题
1.下列对于线性链表的描述中正确的是(A)
A. 存储空间不一定连续,且各元素的存储顺序是任意的
B. 存储空间不一定连续,且前件元素一定存储在后件元素的前面
C. 存储空间必须连续,且前件元素一定存储在后件元素的前面
D. 存储空间必须连续,且各元素的存储顺序是任意的
解析:一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一个结点的指针head称为头指针,当head=NULL(或0)时称为空表。
2.下列关于二叉树的叙述中,正确的是(B)
A. 叶子结点总是比度为2的结点少一个
B. 叶子结点总是比度为2的结点多一个
C. 叶子结点数是度为2的结点数的两倍
D. 度为2的结点数是度为1的结点数的两倍
解析:由二叉树的性质可以知道在二叉树中叶子结点总是比度为2的结点多一个。
3.设有定义: char s[10];int i=0;,以下不能将一行(不超过100个字符)带有空格的字符串正确读入的语句或语句组是( )。
B
解析:本题考查标准输入输出函数和循环语句。gets(s)函数的作用是将输入的字符读入字符串s,直到遇到回车。而scanf()函数接收字符串时的结束标志为回车或者空格。因此选项B)不能,选项C)和选项D)中按字符逐个读入字符串s中,直到读入的字符是换行符为止,因此正确。
4.设有以下说明,则不正确的叙述是( )。
unionun
{ int a;
charb;
float c;
} art;(C)
A. arr所占的内存长度等于成员c的长度
B. art的地址和它的各成员的地址都是同一地址
C. air可以作为函数参数
D. 不能在定义arr时对它初始化
解析:本题主要考查联合体的内存使用:联合体所占用的内存空间为最长的成员所占用的空间,int占2个字节,char占1个字节,float占4个字节,所以arr所占的内存长度等于成员c的长度;arr的地址和它的各成员的地址都是同一地址;不能直接对arr赋值,即不能在定义arr时对它初始化;arr也不可以作为函数参数。
5.对于一个正常运行的C程序,以下叙述中正确的是( )。(C)
A. 程序的执行总是从main函数开始,在程序的最后一个函数中结束
B. 程序的执行总是从程序的第一个函数开始,在main函数结束
C. 程序的执行总是从main函数开始
D. 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
解析:任何一个C程序都是从主函数main开始,至主函数main结束,所以选择C选项。
6.软件生命周期中的活动不包括(A)
A. 市场调研
B. 需求分析
C. 软件测试
D. 软件维护
解析:软件的牛命周期描述了软件从产生到最终消亡的全过程,生命周期中的活动包括需求分析、软件设计(分为概要设计和详细设计)、软件实现、软件测试和软件维护,不包括市场调研。
7.下面描述中不属于数据库系统特点的是(C)
A. 数据共享
B. 数据完整性
C. 数据冗余度高
D. 数据独立性高
解析:数据系统的基本特点有数据的集成性、数据的高共享性与低冗余性、数据的独立性、数据统一管理与控制。
8.不能出现在C语言标识符中的是( )。(A)
A. 连接符
B. 小写字母
C. 数字
D. 下划线
解析:在C语言中,标识符可以由字母、数字或下划线组成,并且第一个字符必须为字母或下划线。大写字母和小写字母被认为是两个不同的字符。选项A是连接符,不在C语言规定的命名变量标识符的范围内。
9.若变量已正确定义,有以下程序段:i=0;do pfinff(“%d,”,i);while(i++);prinff(“%d\n”,i);程序的运行结果是( )。(A)
A. 0,1
B. 0,0
C. 1,1
D. 程序进入无限循环
解析:第一次首先执行循环体,打印i的值0,然后判断while的条件i++,先用后自增,所以判断时条件为假,跳出循环,但是仍执行了i的自增操作,i的值为l,在接下来的打印语句中进行打印。
10.有以下程序
#include
main()
{int i,j,m=55;
for(i=1;i<=3;i++)
for(j=3;j<=i;j++)m=m%j;
printf(\\(B)
A. 0
B. 1
C. 2
D. 3
解析:在程序中,内层循环判断条件为“i<=i”,而i的初值为3,故当外层循环变量i的值为1和2时,内层循环体都不会被执行。只有当i和j都等于3时循环才会执行一次。因为m的值为55对3求余结果为1。
11.若变量已正确定义,有以下程序段:i=0;do prinff(\\(A)
A. 0,1
B. 0,0
C. 1,1
D. 程序进入无限循环
解析:第一次首先执行循环体,打印i的值0,然后判断while的条件i++,先用后自增,所以判断时条件为假,跳出循环,但是仍执行了i的自增操作,i的值为1,在接下来的打印语句中进行打印。
12.计算机能直接执行的程序是(B)
A. 目标程序
B. 可执行程序
C. 汇编程序
D. 源程序
解析:把由高级语言编写的程序称为“源程序”,由二进制代码表示的程序称为“目标程序”(后缀名为.obj),由汇编语言编写的程序称为“汇编程序”。为了把源程序转换成机器能接受的目标程序,软件工作者编制了一系列软件,通过这些软件可以把用户按规定语法写出的语句一一翻译成二进制的机器指令。这种具有翻译功能的软件称为“编译程序”,每种高级语言都有与它对应的编译程序。C源程序经过C编译程序编译之后生成一个后缀为.obj的二制进文件(称为目标文件),这个目标程序要和C语言的库函数相链接生成一个后缀为.exe的文件,这个文件可以在操作系统中直接执行,称为可执行程序。
13.以下叙述中错误的是(C)
A. C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
B. 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
C. C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
D. C语言源程序经编译后生成后缀为.obi的目标程序
解析:C语言中的非执行语句例如宏定义命令,在预编译之后替换到代码中,该命令本身也就不存在了,不会转换成二进制的机器指令。由高级语言编写的程序称为“源程序”,把由二进制代码表示的程序称为“目标程序”,C语言编写的源程序就是一ASCII的形式存放在文本文件中的。C源程序经过C编译程序编译之后生成一个后缀为.obj的二进制文件(称为目标文件),然后由称为“连接程序”(Link)的软件,把此.obj文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。
本文档预览:3600字符,共11424字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载