国家二级(C语言)机试模拟试卷451
选择题
1.以下叙述中错误的是( )。(B)
A. C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件
B. C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
C. 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D. C语言源程序经编译后生成后缀为.obj的目标程序
解析:C语言程序编译时将每条可执行语句转换为二进制的机器指令,但非执行语句(如注释语句)不被编译。所以选项B错误。
2.下列链表中,其逻辑结构属于非线性结构的是( )。(A)
A. 二叉链表
B. 循环链表
C. 双向链表
D. 带链的栈
解析:在定义的链表中,若只含有一个指针域来存放下一个元素地址,称这样的链表为单链表或线性链表。带链的栈可以用来收集计算机存储空间中所有空闲的存储节点,是线性表。在单链表的节点中增加一个指针域指向它的直接前件,这样的链表,就称为双向链表(一个节点中含有两个指针),也是线性链表。循环链表具有单链表的特征,但又不需要增加额外的存储空间,仅对表的链接方式稍做改变,使得对表的处理更加方便灵活,属于线性链表。二叉链表是二叉树的物理实现,是一种存储结构,不属于线性结构。答案为A选项。
3.软件生命周期是指( )。(A)
A. 软件产品从提出、实现、使用维护到停止使用退役的过程
B. 软件从需求分析、设计、实现到测试完成的过程
C. 软件的开发过程
D. 软件的运行维护过程
解析:通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。
4.在printf的格式字符中,e格式字符的作用是( )。(C)
A. 以十六进制无符号形式输出整数
B. 以带符号的十进制形式输出整数
C. 以指数形式输出实数
D. 以字符形式输出,且只输出一个字符
解析:本题考查printf函数的格式。格式字符“e”或者“E”都表示以指数形式输出单精度或双精度数。
5.以下叙述中正确的是( )。(C)
A. 函数的形参类型不能是指针类型
B. 函数的类型不能是指针类型
C. 设有指针变量为double*p,则p+1将指针p移动8个字节
D. 基类型不同的指针变量可以相互混用
解析:C项正确,一般情况下,double类型的变量长度为8个字节,对指针进行加、减运算时,数字“1”指1个存储单元长度。A项错误,函数的形参可以是数值类型,也可以是指针类型;B项错误,C语言中有指向函数的指针,称为函数指针;D项错误,int类型的指针只能指向int,不能指向double,基类型不同的指针变量不能混用。
6.以下叙述中错误的是( )。(A)
A. 使用三种基本结构构成的程序只能解决简单问题
B. 结构化程序由顺序、分支、循环三种基本结构组成
C. C语言是一种结构化程序设计语言
D. 结构化程序设计提倡模块化的设计方法
解析:使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A)错误。
7.有三个关系R、S和T如下:
(D)
A. 选择
B. 投影
C. 交
D. 并
解析:关系T中的元素是关系R和关系S中不同元素的总和,因此为并操作。
8.若已定义:
int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;
其中0≤9,则对a数组元素不正确的引用是( )。(D )
A. a[p—a]
B. *(&a[i])
C. p[i]
D. a[10]
解析:此题考查对一维数组的引用。对于已定义的数组a[M],数组元素的正确引用必须满足下标小于M且为正整数。选项D)中下标值出现溢出。
9.若x=4,y=5,则x&y的结果是( )。(B)
A. 0
B. 4
C. 3
D. 5
解析:本题主要考查按位与运算的知识点。按位与是对两个运算量相应的位进行逻辑与,“&”的规则和逻辑与“&&”相同。x=4的二进制为00000100,v=5的二进制为00000101,x&y=00000100,转化为十进制即为4。
10.下面的程序在编译时产生错误,其出错原因是( )。
#inc1ude
main()
{int 1_case; float printF;
printf(\\(A)
A. 定义语句出错,1 case不能作为变量名
B. 定义语句出错,printF不能用作用户自定义标识符
C. 定义语句无错,scanf不能作为输入函数使用
D. 定义语句无错,printf不能输出1 case的值
解析:C语言变量名可由数字,字母,下划线构成,但首字符不能为数字。
11.结构化程序设计的基本原则不包括( )。(A)
A. 多态性
B. 自顶向下
C. 模块化
D. 逐步求精
解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A)。
12.有以下程序:
#include<stdio.h>
main()
{
int a,b;
for(a=0;a<3;a++)
{
scanf(\\(A)
A. 2 3 3 4 5 6
B. 2 3 4
C. 2 2 3 4 4 4
D. 2 3 4 3 4 4
解析:这是一个循环结构嵌套选择结构,按照外层循环,内层选择一步一步处理即可。本题重点注意,switch语句中并没有出现break语句,所以内层循环是不会跳出的。
13.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是( )。(A)
A. C语言程序仅可以编译执行
B. C语言程序仅可以解释执行
C. C语言程序既可以编译执行又可以解释执行
D. 以上说法都不对
解析:C语言作为计算机高级语言,用它编写的程序必须经过C语言的编译器编译后,转换为二进制的机器码来运行。
14.有以下程序:
#inc1ude
int fun(int *k)
{ int b=0;
b=*k(+b:
return(b);}
main()
{int a[10]={1,2,3,4,5,6,7,8),i;
for(i=2;i<4;i++){ printf(\\(C)
A. 10 12
B. 810
C. 34
D. 10 28
本文档预览:3600字符,共14415字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载