最终版二级C语言选择题预测题(5)

2018-12-27 17:21

(189) 在数据管理的三个发展阶段中,数据的共享性好且冗余度最小的是()。 A) 人工管理阶段 B) 文件系统阶段 C) 数据库系统阶段 D) 答案为: C)

(190) 设数据元素的集合D={ 1,2,3,4,5 },则满足下列关系R的数据结构中为线性结构的是()。

A) R={ (1,2), (3,4), (5,1) } B) R={ (1,3), (4,1), (3,2), (5,4) } C) R={ (1,2), (2,3), (4,5) } D) R={ (1,3), (2,4), (3,5) } 答案为: B)

(191) 下列叙述中正确的是()。

A) 链表结点中具有两个指针域的数据结构可以是线性结构,也可以是非线性结构 B) 线性表的链式存储结构中,每个结点必须有指向前件和指向后件的两个指针 C) 线性表的链式存储结构中,每个结点只能有一个指向后件的指针 D) 线性表的链式存储结构中,叶子结点的指针只能是空 答案为: A)

(192) 一个栈的初始状态为空。现将元素A,B,C,D,E依次入栈,然后依次退栈三次,并将退栈的三个元素依次入队(原队列为空),最后将队列中的元素全部退出。则元素退队的顺序为()。

A) ABC B) CBA C) EDC D) CDE 答案为: C)

(193) 某二叉树的中序序列为DCBAEFG,后序序列为DCBGFEA,则该二叉树的深度(根结点在第1层)为()。

A) 5 B) 4 C) 3 D) 2 答案为: B)

(194) 软件生命周期是指()。

A) 软件产品从提出、实现、使用、维护到停止使用退役的过程 B) 软件的需求分析、设计与实现 C) 软件的开发与管理 D) 软件的实现和维护 答案为: A) (195)

A) 1 B) 2 C) 3 D) 4 答案为: C)

(196) 下面属于应用软件的是()。 A) 学生成绩管理系统 B) UNIX操作系统 C) 汇编程序 D) 编译程序 答案为: A)

(197) 将E-R图转换为关系模式时,E-R图中的属性可以表示为()。A) 属性 B) 键 C) 关系 D) 域 答案为: A) (198)

A) 并 B) 自然连接 C) 除法 D) 差 答案为: C)

二、二级C语言程序设计部分

(1) 设有两行定义语句: int scanf; float case;

则以下叙述正确的是()。 A) 第2行语句不合法 B) 两行定义语句都合法 C) 第1行语句不合法 D) 两行定义语句都不合法 答案为: A)

(2) 设有定义:double x=2.12;,以下不能完整输出变量x值的语句是()。 A) printf(\B) printf(\C) printf(\D) printf(\答案为: A)

(3) 设有定义:int a,b; float x,y; ,则以下选项中对语句所作的注释叙述错误的是()。

A) scanf(\多余的格式符%f完全不起作用 */

B) scanf(\多余的输入项不能获得输入数据 */ C) scanf(\输入项与格式符类型不匹配,变量b和x得不到正确的输入数据 */

D) scanf(\格式串中允许加入格式符以外的字符串 */ 答案为: A)

(4) 结构化程序由顺序、选择、循环三种基本结构组成,以下相关叙述错误的是()。 A) 三种基本结构不可以嵌套使用

B) 顺序结构是按语句在程序中的先后顺序逐条执行,没有分支,没有转移 C) 选择结构是根据不同的条件执行不同分支中的语句

D) 循环结构是根据条件决定是否重复、重复执行多少次循环体语句 答案为: A)

(5) 以下能正确表述算式 sin(2πr+30°)的C语言表达式是()。 A) sin(2*3.14*r+3.14*30/180.0) B) sin(2*π*r+ 30 ) C) sin(2*3.14*r+ 30 )

D) sin(2*3.14*r+30*3.14/360.0)

答案为: A)

(6) 设有定义:int x=11,y=12,z=0;,以下表达式值不等于12的是()。 A) z=(x==y) B) (z=x,y) C) z=(x,y) D) (z,x,y) 答案为: A)

(7) 以下可以将任意一个两位整数n的个位数与十位数对换的表达式为()。 A) (n-n/10*10)*10+n/10 B) n-n/10*10+n/10 C) n/10+(n-n/10) D) (n-n/10)*10+(n/10) 答案为: A) (8) 设有以下程序段 int y;

y=rand() % 30+1; 则变量y的取值范围是()。 A) 0<y≤30

B) 0≤y≤30 C) 1<y<30 D) 1<y≤30 答案为: A)

(9) 以下程序段中,循环次数不超过10的是()。 A) int i=10; do{ i=i+1;} while(i<0); B) int i=5; do{ i+=1;} while(i>0); C) int i=1; do{ i+=2;} while(i!=10); D) int i=6; do{ i-=2;} while(i!=1); 答案为: A) (10) 有以下程序 #include main()

{ char a,b,c,d; scanf(\ c=getchar(); d=getchar();

printf(\ }

当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:回车也是一个字符)

12 34 则输出结果是()。 A) 12

3 B) 12 C) 1234 D) 12

34 答案为: A)

(11) 以下关于逻辑运算符两侧运算对象的叙述中正确的是()。 A) 可以是任意合法的表达式 B) 只能是整数0或非0整数

C) 可以是结构体类型的数据 D) 只能是整数0或1 答案为: A) (12) 有以下程序 #include main()

{ int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; else d=3;

printf(\ } 程序输出()。 A) 编译有错 B) 0,0,0,3 C) 1,1,2,0 D) 0,1,2,0 答案为: A) (13) 有以下程序 #include main()

{ int x=1, y=0, a=0, b=0; switch ( x ) { case 1: switch(y)

{ case 0: a++; break; case 1: b++; break; }

case 2: a++; b++; break; case 3: a++; b++; }

printf(\ }

程序的运行结果是()。 A) a=2,b=1

B) a=2,b=2 C) a=1,b=1 D) a=1,b=0 答案为: A)

(14) 以下程序段中的变量已正确定义 for( i=0; i<4; i++,i++ )

for( k=1; k<3; k++ ); printf(\该程序段的输出结果是()。 A) * B) **** C) ** D) ******** 答案为: A) (15) 有以下程序段 #include int i, n;

for( i=0; i<8; i++ ) { n = rand( ) % 5; switch (n) { case 1:

case 3: printf(\ case 2:

case 4: printf(\ case 0: exit(0); }

printf(\ }

以下关于程序段执行情况的叙述,正确的是()。 A) 当产生的随机数n为0时结束程序运行 B) 当产生的随机数n为4时结束循环操作 C) 当产生的随机数n为1和2时不做任何操作 D) for循环语句固定执行8次 答案为: A) (16) 有以下程序

#include main()

{ char c1,c2; c1='A'+'8'-'4'; c2='A'+'8'-'5';

printf( \ }

已知字母A的ASCII码为65,程序运行后的输出结果是()。 A) E,68 B) D,69 C) E,D D) 输出无定值 答案为: A)

(17) 若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) : (y++)中的条件表达式(x-y) 等价的是()。

A) (x-y<0||x-y>0) B) (x-y<0) C) (x-y>0) D) (x-y==0) 答案为: A)

(18) 以下叙述中正确的是()。

A) int* p1; int ** p2; int *p3;都是合法的定义指针变量的语句 B) 指针变量只能通过求地址运算符(&) 来获得地址值 C) 语句p=NULL;与p=\\0;是等价的语句

D) 语句p=NULL;执行后,指针p指向地址为0的存储单元 答案为: A)

(19) 以下叙述中正确的是()。

A) 如果企图通过一个空指针来访问一个存储单元,将会得到一个出错信息 B) 即使不进行强制类型转换,在进行指针赋值运算时,指针变量的基类型也可以不同

C) 设变量p是一个指针变量,则语句p=0;是非法的,应该使用p=NULL; D) 指针变量之间不能用关系运算符进行比较 答案为: A)

(20) 以下叙述中正确的是()。

A) 每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元

B) 一条语句只能定义一个数组

C) 数组说明符的一对方括号中只能使用整型常量,而不能使用表达式 D) 在引用数组元素时,下标表达式可以使用浮点数 答案为: A)

(21) 以下叙述中正确的是()。

A) char c1, c2, *c3, c4[40];是合法的变量定义语句 B) 数组下标的下限由数组中第一个非零元素的位置决定 C) 数组下标的下限由数组中第一个被赋值元素的位置决定 D) 数组下标的下限是1 答案为: A)

(22) 以下叙述中正确的是()。 A) 语句int a[8] = {0}; 是合法的

B) 语句 int a[] = {0};是不合法的,遗漏了数组的大小

C) 语句 char a[2] = {\是合法的,定义了一个包含两个字符的数组 D) 语句 char a[3]; a = \是合法的,因为数组有三个字符空间的容量,可以保存两个字符

答案为: A)

(23) 以下叙述中正确的是()。

A) 调用函数时,函数名必须与被调用的函数名完全一致 B) 函数调用时,不必区分函数名称的大小写 C) 函数名允许用数字开头

D) 在函数体中只能出现一次return语句 答案为: A)

(24) 以下叙述中正确的是()。

A) 在对指针进行加、减算术运算时,数字1表示1个存储单元的长度 B) 如果p是指针变量,则*p表示变量p的地址值 C) 如果p是指针变量,则&p是不合法的表达式 D) 如果p是指针变量,则*p+1和*(p+1)的效果是一样的 答案为: A)

(25) 以下叙述中正确的是()。

A) 设有指针变量为 double *p,则 p+1 将指针p移动8个字节 B) 函数的类型不能是指针类型

C) 函数的形参类型不能是指针类型 D) 基类型不同的指针变量可以相互混用 答案为: A) (26) 如果定义 float a[10], x; 则以下叙述中正确的是()。 A) 语句 a = &x; 是非法的 B) 表达式 a+1 是非法的

C) 三个表达式 a[1]、*(a+1)、*&a[1]表示的意思完全不同 D) 表达式*&a[1]是非法的,应该写成 *(&(a[1])) 答案为: A)

(27) 设有某函数的说明为

int* func(int a[10], int n); 则下列叙述中,正确的是()。

A) 说明中的a[10]写成a[]或*a效果完全一样 B) 形参a对应的实参只能是数组名

C) func的函数体中不能对a进行移动指针(如a++)的操作 D) 只有指向10个整数内存单元的指针,才能作为实参传给a 答案为: A)

(28) 以下叙述中正确的是()。

A) 在逻辑上,可以把二维数组看成是一个具有行和列的表格或矩阵B) 语句 int a[4][3] = {1,2,4,5}; 是错误的初始化形式 C) 语句 int a[][3] = {1,2,4,5}; 是错误的初始化形式 D) 语句 int a[4][3] = {{1,2}, {4,5}}; 是错误的初始化形式 答案为: A) (29) 有以下程序 #include

void fun( int x, int y, int *c, int *d ) { *c = x+y; *d = x-y; } main()

{ int a=4, b=3, c=0, d=0; fun ( a, b, &c, &d ); printf( \ }


最终版二级C语言选择题预测题(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017年中国店面装修现状研究及发展趋势预测(目录) - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: