二级C语言选择题专项强化真题试卷24
选择题
1.将E-R图转换为关系模式时,实体和联系都可以表示为( )。(C)
A. 属性
B. 键
C. 关系
D. 域
解析:E-R图转换为关系模式时,实体和联系都可以表示为关系。
2.设函数中有整型变量n,为保证其在未赋值的情况下初值为0,应选择的存储类别是( )。(C)
A. auto
B. register
C. static
D. auto或register
解析:静态存储类型定义变量在未对其初始化时会对其初始化默认值,其中int型的默认初始化值是0,其他选项的存储类型不能保证变量在未赋值情况的初值。
3.面向对象方法中,继承是指( )。(D)
A. 一组对象所具有的相似性质
B. 一个对象具有另一个对象的性质
C. 各对象之间的共同性质
D. 类之间共享属性和操作的机制
解析:继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,因此继承是指类之间共享属性和操作的机制,选项D正确。
4.有如下程序:
#include<stdio.h>
#include~string.h>
main()
{
char a[]=\\(A)
A. 4 5 3 4
B. 4 3 2 1
C. 4 5 3 3
D. 4 5 1 3
解析:对于字符数组a,含有4个元素,所以strlen为4,而sizeof包括最后隐藏的\0(结束符),故sizeof有5个。对于字符串b,strlen为3,关键是sizeof,这里的sizeof不再是指数组的长度,因为b是一个地址值,整型数据,所以占用了4个字节。
5.若有定义语句:
double x,y,*px,*py;
执行
px=dex;py=&y;
正确的输入语句是( )。(D)
A. seanf(\\
B. scanf(\\
C. scard\\
D. seanf(\\
解析:%1Jf,%le是针对double类型的数据,如果仅用%f,输入的数据可能不能被完全接收,数据的精度可能不足。%f主要针对float类型的变量输入,B选项错误。根据scanf(格式,变量地址),A,C选项错误。故答案为D选项。
6.以下定义数组的语句中错误的是( )。
B
解析:B选项中,int num[2][4]={{1,2},{3,4},{5,6}};定义数组是2行4列,但是初始化的结构是3行2列,因此初始化错误。故答案为B选项。
7.有以下程序段:
int x,i;
for(i=l;i<=100;i++)
{ scanf(\\(A)
A. 最多可以输出100个非负整数
B. 当x<0时结束整个循环
C. 当x>=0时没有任何输出
D. pfintf函数调用语句总是被跳过
解析:continue语句只结束本次循环,而不是终止整个循环的执行,因此B选项错误;当x>=0时,程序执行printf(\\
8.有以下程序:
#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选项正确。
9.程序调试的任务是( )。(D)
A. 设计测试用例
B. 验证程序的正确性
C. 发现程序中的错误
D. 诊断和改正程序中的错误
解析:程序调试的任务是诊断和改正程序中的错误。
10.若某二叉树中的所有节点值均大于其左子树上的所有节点值,且小于右子树上的所有节点值,则该二叉树遍历序列中有序的是( )。(B)
A. 前序序列
B. 中序序列
C. 后序序列
D. 以上说法均可以
解析:二叉树遍历可以分为3种:前序遍历(访问根节点在访问左子树和访问右子树之前)、中序遍历(访问根节点在访问左子树和访问右子树两者之间)、后序遍历(访问根节点在访问左子树和访问右子树之后)。由于节点值均大于其左子树上的所有节点值,且小于右子树上的所有节点值,那么只要遍历时访问根节点在访问左子树和右子树之间,遍历序列有序,即中序序列有序。故选B选项。
11.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是( )。(D)
A. 学生成绩管理系统
B. ERP系统
C. 办公自动化系统
D. LINIX系统
解析:系统软件是管理计算机的资源,提高计算机的使用效率,为用户提供各种服务的软件。应用软件是为了应用于特定的领域而开发的软件。D选项属于系统软件,A、B、C选项属于应用软件。故选D选项。
12.以下叙述正确的是( )。(C)
A. 有些算法不能用3种基本结构来表达
B. C语言程序不编译也能直接运行
C. 结构化程序的3种基本结构是循环结构、选择结构、顺序结构 .
D. 如果C语言程序实现的算法很简单,则计算机不进行任何代码转换就能执行程序
解析:算法的3种基本结构可以表达任何算法,只是不同的实现复杂度不相同,因此A选项错误。C语言是编译型语言,程序必须先编译、链接才能运行,因此B选项错误。C语言是高级程序语言,计算机不能识别除了机器语言以外的任何语言,因此C程序代码转换为机器语言才能在计算机上运行,因此选项D错误。答案为C选项。
13.下列定义数组的语句中,正确的是( )。(A)
A. #define N 10
int x[N];
B. int N=10;
int x[N];
C. int x[0…10];
D. int x[];
解析:数组说明的一般形式为:类型说明符数组名[常量表达式]。B)选项中N是变量,不能用变量定义数组长度。C)选项中数组长度是非法的一串数字。定义数组时必须为其指明长度,D)选项中数组长度为空。所以非法。
14.有以下函数:
int aaa(char*s)
{char*t=s;
while(*t++);
t–;
return(t-s);
}
以下关于aaa函数功
本文档预览:3600字符,共7791字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载