首页 > 全部 > 二级C语言 > 国家二级C语言机试(选择题)模拟试卷232

国家二级C语言机试(选择题)模拟试卷232

本单篇文档共7539字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 章节练习 2234人下载
价格: 1.00 原价:¥7.00
收藏

国家二级C语言机试(选择题)模拟试卷232

选择题

1.以下不能用于描述算法的是(B)

A. 程序语句

B. E-R图

C. 伪代码和流程图

D. 文字叙述

解析:E-R图为实体.联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。描述算法的有流程图,盒图,伪代码,文字描述以及程序代码描述。

2.以下C语言用户标识符中,不合法的是(D)

A. 1

B. AaBc

C. a b

D. a–b

解析:本题考查用户标识符,C语言中,用户标识符只能由字母、下划线和数组组成,且必须以字母或者下划线开始。选项A、B和C都是正确的,选项D中的case是C语言关键字,不能作为用户标识符,是错误的。

3.有以下程序,输出结果是( )。

main()

{ int i=15j=21,n=0;

switch(i%3)

{ case 0:n++;break;

case 1:n++:

switch(j%2)

{ default:n++;

case 0:n++;break;

}

}

pintf(\\(A)

A. 1

B. 2

C. 3

D. 4

解析:本题考查switch-case语句的嵌套形式。程序的主体部分是switch-case语句的嵌套,变量i的值是15,表达式i%3之后是0,对应的分支是“case 0:n++;break”,变量n自加变为1,遇到break语句,跳出外层的switch-case语句。内层switch-case语句未执行,n为1。

4.对长度为n的线性表作快速排序,在最坏情况下,比较次数为(D)

A. n

B. n-1

C. n(n-1)

D. n(n-1)/2

解析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此,称为快速排序法。

5.设表的长度为n。下列算法中,最坏情况下比较次数小于n的是(A)

A. 二分查找法

B. 堆排序

C. 快速排序

D. 顺序查找法

解析:二分法查找只适用于顺序存储的有序表。二分查找的基本方法是:将被查元素x与线性表的中间项进行比较,若中间项的值等于x,则说明查到;若小于中间项的值则在线性表的前半部分;以相同的方法进行查找;若大于中间项的值,则在线性表的后半部分以相同的方法进行查找。在最坏情况下,二分查找需要比较log2n次。所以选项A正确。

6.设有课程关系模式如下:

R(C#,Cn,T,Ta)(其中C#为课程号,Cn为课程名,T为教师名,Ta为教师地址)并且假定不同课程号可以有相同的课程名,每个课程号下只有一位任课教师,但每位教师可以有多门课程。该关系模式可进一步规范化为( )。(A)

A. R1(C#,Cn,T),R2(T,Ta)

B. R1(C#,Cn),R2(T,Ta)

C. R1(C#,Cn,Ta),R2(T,Ta)

D. Rl(C#,T),R2(T,Ta)

解析:本题的码为课程号,由于每门课程只有一位任课教师,课程号就可以决定教师名、教师地址。课程号可决定教师名,教师名又决定教师地址,这里有对主属性的传递依赖。可将该关系模式拆分为两个关系模式R1和R2,其中R1包含课程号、课程名、教师名,R2包含教师名、教师地址。其中R1的主码是课程号,R2的主码为教师名。这样两个表都不会出现对主属性的传递依赖。

7.以下叙述中正确的是(C)

A. if语句只能嵌套一层

B. 不能在else子句中再嵌套if语句

C. if子句和else子句中可以是任意的合法的C语句

D. 改变if-else语句的缩进格式,会改变程序的执行流程

解析:含else子句的if语句的格式为if(表达式)语句lelse语句2其中if和else是C语言的关键字。”语句1”称为if子句,”语句2”称为else子句,这些予句只允许为一条语句,若需要多条语句时,则应该使用复合语句,对于if和else语句的嵌套原则是比较自由的。

8.下列定义语句中错误的是( )。

B

解析:二维数组定义的一般形式是:类型说明符数组名[常量表达式1][常量表达式2]。其中常量表达式1表示第一维下标的长度,常量表达式2表示第二维下标的长度。如对二维数组的全部元素赋初值,则第一维的长度可以不给出。但如果对x[4][]赋值,只确定行数,而不确定列数,就无法正确赋值,因此B选项正确。

9.下列定义数组的语句中正确的是( )。(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选项中的数组长度为空,所以非法。

10.有下列程序段:

typedef struct NODE

{ int num;struct NODE *next;

} OLD;

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

A. 以上的说明形式非法

B. NODE是一个结构体类型

C. OLD是一个结构体类型

D. OLD是一个结构体变量

解析:C语言允许用typedef说明一种新类型名,其一般形式为:typedef类型名标识符。typedef语句的作用仅仅是使“标识符”来代表已存在的“类型名”,并未产生新的数据类型。原有类型名依然有效。此题中,用typedef定义了新的类型OLD结构,所以OLD为结构体类型。

11.有以下程序:

#include

int b=3:

int fun(int *k)

{b=*k+b;return(b);}

main()

{int a[10]={1,2,3,4,5,6,7,8),i;

for(i=2;i<4;i++){b=fun(&a[i]+b;printf(\\(B)

A. 12 14

B. 12 32

C. 10 14

D. 10 20

解析:i=2时,fun(&a[2])返回值是:b=b+a[1]=3+3=6,b=b+b=6+6=12;i=3时,fun(&a[3])返回值是:b=b+a[3]=12+4=16,b=b+b=16+16=32。

12.以下选项中非法的C语言字符常量是(C)

A. ’\b’

B. ’\007’

C. ’aa’

D. ’\xaa’

解析:一个字符常量代表ASCⅡ字符集中的一个字符,

本文档预览:3600字符,共7539字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C语言机试(选择题)模拟试卷232

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号