国家二级(C语言)机试模拟试卷471
选择题
1.结构化程序设计的3种结构是( )。(B)
A. 顺序结构,分支结构,跳转结构
B. 顺序结构,选择结构,循环结构
C. 分支结构,选择结构,循环结构
D. 分支结构,跳转结构,循环结构
解析:程序设计语言仅仅使用顺序、选择和重复(循环)三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。遵循程序结构化的设计原则,按结构化程序设计方法设计出的程序易于理解、使用和维护;可以提高编程工作的效率,降低软件的开发成本。
2.下列方法中,不属于软件调试方法的是( )。(C)
A. 回溯法
B. 强行排错法
C. 集成测试法
D. 原因排除法
解析:软件调试主要采用以下三种方法:
强行排错法:作为传统的调试方法,其过程可概括为设置断点、程序暂停、观察程序状态、继续运行程序。
回溯法:该方法适合于小规模程序的排错、即一旦发现了错误,先分析错误征兆,确定最先发现“症状”的位置。
原因排除法:原因排除法是通过演绎和归纳,以及二分法来实现。
3.下列选项中,不属于数据库管理的是( )。(D)
A. 数据库的建立
B. 数据库的调整
C. 数据库的监控
D. 数据库的校对
解析:数据库管理一般包括:数据库的建立、数据库的调整、数据库的重组、数据库的安全性控制与完整性控制、数据库的故障恢复和数据库的监控。
4.下列叙述中正确的是( )。(A)
A. 顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B. 顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C. 顺序存储结构能存储有序表,链式存储结构不能存储有序表
D. 链式存储结构比顺序存储结构节省存储空间
解析:链式存储结构既可以针对线性结构也可以针对非线性结构,所以B与C错误。链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以D错误。
5.有以下程序:
#include<stdio.h>
main()
{char c1,c2;
c1=’A’+’8’-’4’;
c2=’A’+’8’-’5’’;
printf(\\(A)
A. E,68
B. D,69
C. E,D
D. 输出无定值
解析:本题目中字符变量c1是字符‘A’的ASCII码加上4,即69所对应的字符‘E’。字符变量c2是字符‘A’的ASCII码加上3,即68所对应的字符‘D’。但是打印输出时,c1以%c的格式输出,所以是E,c2以%d的格式输出,所以是68。
6.有以下程序
#include<stdio.h>
#include<string.h>
struct A
{int a;char b[10];double c;};
struct A f(struct A t);
main()
{struct A a={1001,\\(D)
A. 1001,ZhangDa,1098.0
B. 1002,ZhangDa,1220.0
C. 1001,WangPeng,1098.0
D. 1002,WangPeng,1220.0
解析:在主函数中定义结构体A的变量a,并对其赋初值,再调用函数f(a),在函数f(a)中对结构体变量a的各个成员重新进行了赋值操作,并把其值返回在屏幕上输出。
7.有以下程序:
#include
int fun(int x,int y)
{ if(x!=Y)retum((x+y)/2);
else return(x);
}
main()
{ int a=4,b=5,e=6;
printf(“%d\n”,fun(2*a,fun(b,e)));
)
}
程序运行后的输出结果是( )。(A)
A. 6
B. 3
C. 8
D. 12
解析:本题中第一次调用为。fun(8,fun(5,6)),闪为fun(5,6)返回值为5,所以第二次调用为fun(8,5)=6。所以选择A。
8.已知下列函数定义:
fun(int*b,int c,int n,int data)
{int k:
for(k=0;k<m*n;k++)
{*b=data;
b++;}
}
则调用此函数的正确写法是(假设变量a的说明为int a[50])( )。(D)
A. fun(*a,4,5,1);
B. fun(&a,4,5,1);
C. fun((int*)a,4,5,1);
D. fun(a,4,5,1);
解析:本题考查函数调用时的参数传递。fun函数的调用形式为fun(int *b,int m,int n,int data),而调用数组时,用数组名表示一个指向数组第一个元素的指针,因此调用时的形式为。fun(a,4,5,1)。
9.对序线性表(23,29,34,55,60,70,78)用二分法查找值为60的元素时,需要比较次数为( )。(C)
A. 1
B. 2
C. 3
D. 4
解析:根据二分法查找法需要两次:
①首先将60与表中间的元素55进行比较,由于60大于55,所以在线性表的后半部分查找。
②第二次比较的元素是后半部分的中间元素,将60与表中间的元素70进行比较,由于60小于70,所以在线性表的前半部分查找。
③第三次比较的元素是前半部分的中间元素,即60,这时两者相等,即查找成功。
10.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是( )。(C)
A. 10
B. 8
C. 6
D. 4
解析:根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以本题中是5+1=6个。
11.在三级模式之间引入两层映像,其主要功能之一是( )。(A)
A. 使数据与程序具有较高的独立性
B. 使系统具有较高的通道能力
C. 保持数据与程序的一致性
D. 提高存储空间的利用率
解析:数据库管理系统在数据库的三级模式之间提供了两层映像,保证了数据库中数据的较高的逻辑独立性和物理独立性。
12.执行以下程序段后,w的值为( )。
int w=’A’,x=14,y=15;
w=((x || y)&&(w<’a’));(C)
A. -1
B. NULL
C. 1
D. 0
解析:字符变量w的初值为字符“’A’”,其ASCII码值为65,字符“’a’”的ASCII码值为97,所以关系表达式“w<’a’”的值为1:变量
本文档预览:3600字符,共16391字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载