二级C语言选择题专项强化真题试卷27
选择题
1.下列叙述中正确的是( )。(D)
A. 栈是“先进先出”的线性表
B. 队列是“先进后出”的线性表
C. 循环队列是非线性结构
D. 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
解析:栈是“先进后出”的线性表,队列是“先进先出”的线性表,循环队列链式存储的线性表,也是线性结构。有序的线性表既可采用顺序存储结构,也可以采用链式存储结构。
2.设有宏定义;#define IsDIV(k,n)((k%n==1)?1:0),且变量m已正确定义并赋值。则宏调用:IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是( )。(D)
A. 判断m是否能被5或者7整除
B. 判断m是否能被5和7整除
C. 判断m被5或者7整除是否余1
D. 判断m被5和7整除是否都余1
解析:IsDIV(m,5)&&IsDIV(m,7)都为真,即表达式((m%5==1)?1:0)结果为1,且表达式((m%7==1)?1:0)结果也为1,因为m%5,m%7都等于1,所以题目表达的是,判断m被5和7整除是否都余1。
3.在数据库技术中,为提高数据库的逻辑独立性和物理独立性,数据库的结构被划分成用户级、存储级和( )。(A)
A. 概念级
B. 外部级
C. 管理员级
D. 内部级
解析:数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。概念模式是数据库系统中全局数据逻辑结构的描述,全体用户的公共数据视图。外模式也称子模式或者用户模式,是用户的数据视图,也就是用户所能够看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。内模式又称物理模式,是数据物理结构和存储方式的描述,是数据在数据库内部的存储方式。所以数据库的结构被划分成用户级、存储级和概念级。故选A选项。
4.关于地址和指针,以下说法正确的是( )。(A)
A. 通过强制类型转换可以将一种类型的指针变量赋值给另一种类型的指针变量
B. 可以取一个常数的地址赋值给同类型的指针变量
C. 可以取一个表达式的地址赋值给同类型的指针变量
D. 可以取一个指针变量的地址赋值给基类型相同的指针变量
解析:常数的地址存储在内存的常量区,常量区存储的都是常量,值都是不可修改的,所以直接取常量的地址赋值给指针变量没有任何意义,C语言也不允许这样做,编译会出错,故B选项错误;表达式的值存储在临时变量中,内存中存在专门用来存储临时变量的区域,对这块地址进行操作也是没有意义的,C语言也不允许这样做,编译会出错,故C选项错误;可以取一个指针变量的地址,但是指针变量的地址属于指针,只能赋值给指针类型的指针变量,故D选项错误。因此答案为A选项。
5.有以下程序:
#include<stdio.h>
int f(int x)
{
int y;
if(x==0||x==1)return(3);
y=x*x-f(x-2);
return y;
}
main( )
{
int z;
z=f(3);
prinff(\\(C)
A. 0
B. 9
C. 6
D. 8
解析:主函数中调用f函数,同时将数值3传递给变量x,执行条件不满足条件if(x==0||x==1);跳过return(3);,直接执行语句y=x*x-f(x-2);这里f(x-2)为函数的递归调用,再次调用f函数,此时x=1,判断条件成立,i反回3给f(1),y=3*3-3=6,最后将6返回丰函数,并进行输出。因此C选项正确。
6.若某二叉树中的所有节点值均大于其左子树上的所有节点值,且小于右子树上的所有节点值,则该二叉树遍历序列中有序的是( )。(B)
A. 前序序列
B. 中序序列
C. 后序序列
D. 以上说法均可以
解析:二叉树遍历可以分为3种:前序遍历(访问根节点在访问左子树和访问右子树之前)、中序遍历(访问根节点在访问左子树和访问右子树两者之间)、后序遍历(访问根节点在访问左子树和访问右子树之后)。由于节点值均大于其左子树上的所有节点值,且小于右子树上的所有节点值,那么只要遍历时访问根节点在访问左子树和右子树之间,遍历序列有序,即中序序列有序。故选B选项。
7.有以下程序:
#include
#nclude
long fun(char s[])
{long n;int sign;
for(;isspace(*s);s++);
sign=(*s==’一’)?一1:1;
if(* s==’+’||*s=’一’)s++;
for(n=0;isdigit(木s);s++)
n=10*n+(*s一’0’);
return sign*n;
}
main()
{ char S[]=\\(D)
A. 一263
B. 2
C. 0
D. 一26
解析:isspace(c)检查参数c是否为空格字符。若参数c为空格字符,则返回TRUE,否则返回NULL(0)。Isdigit(c)函数检查参数c是否为阿拉伯数字0到9。返回值若为阿拉伯数字,则返回TRUE,否则返回NULL(0)。fun()函数的第一个for循环判断字符串是否为负号。第二个for循环获取符号后面的数字字符,并将它们转化为整数。若遇到了非数字的字符则跳出,最后返回数组的结果。因此,可知首先获取负号,紧接着获取数值26,遇到了字符a,跳出返回一26,因此打印的结果是一26。故答案为D选项。
8.设有定义:int a=0,b=1;,以下表达式中,会产生\\(D)
A. +a‖++b
B. a++‖++b
C. ++a&&b++
D. a++&&b++
解析:++放在变量前面时,表示将变量+1,再参与其他操作,a++&&b++时,由于a值是0直接判定与运算结果为0,忽视b++的值,因此b值不发生改变,答案为D选项。
9.在面向对象方法中,不属于“对象”基本特点的是( )。(A)
A. 一致性
B. 分类性
C. 多态性
D. 标识唯一性
解析:对象有如下一些基本特点:标识唯一性、分类性、多态性、封装性、模块独立性好。所以选择A)。
10.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是( )。(D)
A. 学生成绩管理系统
B. ERP系统
C. 办公自动化系统
D. LINIX系统
解析:系统软件是管理计算机的资源,提高计算机的使用效率,为用户提供各种服务的软件。应用软件是为了应用于特定的领域而开发的软件。D选项属于系统软件,A、B、C选项属于应用软件。故选D选项。
11.没有定义:
int k=0;
以下选项的四个表达式中与其他三个表达式的值不相同的是( )。(C)
A. ++k
B. k+=1
C. k++
D. k+1
解析:++k,先使k的值自增1后
本文档预览:3600字符,共8038字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载