国家二级(C语言)机试模拟试卷442
选择题
1.以下能对一维数组a进行初始化的语句是( )。
C
解析:选项A,数组可以看作是若干个相同数据类型元素的有序集合,因此以集合的形式对其初始化,使用{}对其初始化;选项BD,常量表达式只能放在中括号口中。故C选项正确。
2.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。(B)
A. 循环队列
B. 栈
C. 队列
D. 二叉树
解析:栈是按照“先进后出”原则在表特定的一端进行插入和删除运算操作的线性表。
3.下列关于线性链表的叙述中,正确的是( )。(C)
A. 各数据节点的存储空间可以不连续,但他们的存储顺序与逻辑顺序必须一致
B. 各数据节点的存储顺序与逻辑顺序可以不一致,但它们的存储空间不需连续
C. 进行插入数据与删除数据时,不需要移动表中的元素
D. 以上说法均不对
解析:一般来说,在线性表的链式存储结构中,各数据节点的存储序号是不连续的,并且各节点在存储空间中的位置关系与逻辑关系也不一致。线性链表中数据的插人和删除都不需要移动表中的元素,只需要改变节点的指针域。
4.有以下程序:
#include<stdio.h>
main()
{
float a,b,c,t;
a=3;b=7;c=1;
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(b>c)
{t=b;b=c;c=t;}
printf(\\(C)
A. 口口3.00,口口1.00,口口7.00
B. 口口3.00,口口7.00,口口1.00
C. 口口1.00,口口3.00,口口7.00
D. 口口7.00,口口3.00,口口1.00
解析:本题考查if语句。该题包含了3个if语句,每个if语句后的{}都不可省略,因为每个{}中都包含了多条语句。首先判断条件a>b,由于3小于7,表达式a>b不成立,因此不执行{t=a;a=b;b=t;};然后判断条件a>c,由于3大于1,因此表达式a>c成立,则执行{t=a;a=c;c=t;),该表达式语句是用来交换a和c的值,执行完后a为1,c为3;然后判断条件b>c,由于7大于c中的3,因此b>c成立,则执行{t=b;b=c;c=t;},过程同上,执行后b为3,c为7。printf语句用来输出a,b,c中的值,并且要求输出的每个数据宽度为5个空格,小数部分保留2位,数据右对齐。故最后输出为C选项中所示结果。
5.数据库系统的核心是( )。(D)
A. 数据模型
B. 软件开发
C. 数据库设计
D. 数据库管理系统
解析:数据库管理系统DBMS是数据库系统的核心。DBMS是负责数据库的建立、使用和维护的软件。:DBMS建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过DBMS。另外,DBMS还承担着数据库的安全保护工作,按照DBA所规定的要求,保证数据库的完整性和安全性。
6.下列叙述中错误的是( )。(B)
A. C程序可以由多个程序文件组成
B. 一个C语言程序只能实现一种算法
C. C程序可以由一个或多个函数组成
D. 一个C函数可以单独作为一个C程序文件存在
解析:在一个C语言程序中可以进行多种算法的实现,对算法的个数没有规定,所以B错误。
7.软件需求规格说明书在软件开发中的作用不包括( )。(B)
A. 软件设计的依据
B. 软件可行性分析的依据
C. 软件验收的依据
D. 用户和开发人员对软件要做什么的共同理解
解析:需求分析就是分析软件用户的需求是什么,描述需求的文档称为软件需求规格说明书。软件需求规格说明书是需求分析阶段的最后成果。需求规格说明书是使开发人员获得设计和实现这些功能所需的所有必要信息,是软件设计的依据,A选项正确;软件需求规格说明书是软件测试和验收的依据,通过检查每项需求是否能通过设计测试用例或其他的验证方法,来确定产品是否确实按需求实现了,C选项正确;软件需求规格说明书对所有需求说明的用户和开发人员都只能有一个明确统一的解释,是用户和开发人员对软件要做什么的共同理解,D选项正确。可行性分析是项目立项阶段要做的工作,虽然也需要对用户需求进行调研,但此阶段不会形成软件需求规格说明书。故正确答案为B。
8.程序设计的任务包括( )。(D)
A. 编写程序代码并上机调试
B. 确定所用数据结构
C. 确定所用算法
D. 以上选项均正确
解析:程序设计是一门技术,需要相应的理论、技术、方法和工具来支持。程序设计的任务包括选项A)、B)、C)等方面。
9.有以下程序:
#include<stdio.h>
void fun(int n,int,*s)
{
int f;
if(n==1)*s=n+1;
else
{fun(n-1,&f);*s=f;}
}
main()
{
int x=0;
fun(4,&x);
printf(\\(C)
A. 3
B. 1
C. 2
D. 4
解析:本题考查函数的递归调用。将函数参数带入函数中,一步步递归即可得到结果,结果为2。故选项C正确。
10.若有“double a:”,则正确的输入语句是( )。(C)
A. scanf(\\
B. scanf(\\
C. scanf(\\
D. scanf(\\
解析:scanf函数的调用形式是:scanfl”格式字符串”,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符: “输入项地址表”是要输入的变量的地址。a是double型数据,格式字符串可以用“%lf”,“%f”是浮点型。题中定义变量a为双精度型变量,双精度变量的格式符为“%lf”;变量的地址用取地址符“&”加变量名表示,变量a的地址为“&a”。
11.若有定义,int a=3,*p=&a,**q=&p;,则以下叙述中错误的是( )。(A)
A. q是指针变量,*q就是变量a
B. P是指针变量,p指向变量a
C. q指向变量p,所以*q指向变量a
D. *p与**q都代表变量a
解析:由题意可知:指针变量p指向变量a,p的值是a的地址;指针变量q指向变量p,q的值是p的地址,所以q是指针变量,q指向p,*q是变量p,选项A错误;p也是指针变量,p指向a,选项B正确;由于q指向p,所以*q指向a,选项C正确;*p和**q都是代表变量a,选项D正确,本题答案为A。
12.若有如下说明,且int类型占两个字节,则正确的叙述为( )。
struct st
{int a;
int b[2];
}a.(A)
A. 结构体变量a与结构体成员a同名,定义是合法的
B. 程序只在执行到该结构体时才为结构体st分
本文档预览:3600字符,共15337字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载