国家二级C语言机试(选择题)模拟试卷233
选择题
1.下列叙述中正确的是(B)
A. 有一个以上根结点的数据结构不一定是非线性结构
B. 只有一个根结点的数据结构不一定是线性结构
C. 循环链表是非线性结构
D. 双向链表是非线性结构
解析:在数据结构中,树这类的数据结构只有一个根结点,但它不是线性结构。
2.下列描述中正确的是( )。(D)
A. 一个逻辑数据结构只能有一种存储结构
B. 数据的逻辑结构属于线性结构,存储结构属于非线性结构
C. 一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D. 一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
解析:数据的逻辑结构是指数据集合中各数据元素之间所固有的逻辑关系,数据的存储结构是在对数据进行处理时,各数据元素在计算机中的存储关系。数据的存储结构是指数据的逻辑结构在计算机中的表示,一种逻辑结构可以表示成多种存储结构,而采用不同的存储结构,其数据处理的效率是不同的。
3.下列叙述中正确的是(B)
A. 循环队列是队列的一种链式存储结构
B. 循环队列是队列的一种顺序存储结构
C. 循环队列是非线性结构
D. 循环队列是一种逻辑结构
解析:本题主要考查循环队列的概念,循环队列作为队列的一种也应该是线性结构。队列是一种逻辑结构,而循环队列是一种顺序存储结构的队列。
4.下列各项中,不属于软件设计阶段任务的是( )。(C)
A. 软件总体设计
B. 算法设计
C. 制订软件并确认测试计划
D. 数据库设计
解析:从技术观点上看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。所以A、B、D正确,C为软件测试阶段的任务。
5.在深度为7的满二叉树中,叶子结点的个数为(C)
A. 32
B. 3 1
C. 64
D. 63
解析:所谓满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。也就是在满二叉树中,每一层上的结点数都是最大结点数,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。对于深度为7的满二叉树,叶子结点所在的是第7层,一共有27-1=64个叶子结点。全部结点共27-1=127个。
6.对长度为n的线性表作快速排序,在最坏情况下,比较次数为(D)
A. n
B. n-1
C. n(n-1)
D. n(n-1)/2
解析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此,称为快速排序法。
7.有以下程序:
#include
main()
{
int c[6]={10,20,30,40,50,60},*P,*s;
P=c;s=&c[5];
prinff(“%d\n”,S—P);
}
程序运行后的输出结果是( )。(A)
A. 5
B. 50
C. 6
D. 60
解析:本题主要考查数组和指针。首先初始化一维数组c[6],语句p=c;表示将c[0]元素的地址赋给指针变量p;语句s:&c[5];表示将c[5]元素的地址赋给指针变量s。程序最后输出s—p,即结果为5。故A选项正确。
8.某系统结构图如下图所示
(D)
A. 2
B. 3
C. 4
D. n
解析:系统结构图的宽度指的是整体控制跨度(最大模块数的层)的表示,上图中系统结构图的宽度为n,答案选D。
9.下面不属于需求分析阶段任务的是 ’(D)
A. 确定软件系统的功能需求
B. 确定软件系统的性能需求
C. 需求规格说明书评审
D. 制定软件集成测试计划
解析:需求分析阶段的工作可分为4个阶段:需求获取、需求分析、编写需求规格说明书、需求评审。
10.下列描述中错误的是(A)
A. 在数据库系统中,数据的物理结构必须与逻辑结构一致
B. 数据库技术的根本目标是要解决数据的共享问题
C. 数据库设计是指在已有数据库管理系统的基础上建立数据库
D. 数据库系统需要操作系统的支持
解析:在数据库系统中,物理独立性是指数据的物理结构(包括存储结构、存取方式等)的改变,如存储设备的更换、物理存储的更换、存取方式改变等都不影响数据库的逻辑结构,从而不致引起应用程序的变化。
11.有以下程序(strcat函数用于连接两个字符串):
#include<stdio.h>
#include<string.h>
main()
{
char a[20]=’’ABCD\0EFG\0’’,b[]=’’IJK’’;
strcat(a,b);
printf(’’%s\n’’,a);
}
程序的运行结果是( )。(C)
A. IJK
B. ABCDE\0FG\0IJK
C. ABCDIJK
D. EFGIJK
解析:字符数组a中包含两个’\0’,遇到第一个’\0’时就表示字符串a结束。字符串处理函数strcat(字符数组a,字符数组b),功能是连接两个字符数组中的字符串,把字符串b连接到字符串a的后面,结果放在字符数组a中。连接时将字符串a后的’\0’取消,只在新串最后保留一个’\0’。本题相当于将’’AB-CD’’和’’IJK’’连接,因此C选项正确。
12.有以下结构体说明、变量定义和赋值语句
struct STD
{ char name[10];
int age;
char sex;
} s[5],*ps;
ps=&s[0];
则以下scanf函数调用语句有错误的是(D)
A. scanf(\\
B. scanf(\\
C. scanf(\\
D. scanf(\\
解析:本题考查结构体的相关知识,题目中需要输入一个变量,scanf要求参数为指针,而D选项中ps->age为一个变量,不是指针,所以错误。
13.以下关于C语言的叙述中正确的是(D)
A. C语言中的变量可以在使用之前的任何位置进行定义
B. 在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致
C. C语言的数值常量中夹带空格不影响常量值的正确表示
D. C语言中的注释不可以夹在变量名或关键字的中间
解析:C语言中的注释可以出现在程序中的任何位置,但是不能夹在变量或者关键字之间;C语言的变量在函数开始位置进行定义,也可以在变量使用前位置定义;
本文档预览:3600字符,共7707字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载