2013年全国计算机等级《二级C语言》模拟试卷(2)-中大网校

更新时间:2024-05-29 17:48:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

中大网校引领成功职业人生

2013年全国计算机等级《二级C语言》模拟试卷(2)

总分:100分 及格:60分 考试时间:120分

一、选择题(每小题1分,共40分)

(1)下面各选项中,均是C语言合法标识符的选项组是( )。 A. B. C. D.

(2)有如下嵌套的if语句:

上述if语句等价的语句是( )。 A. B.

以下选项中与

C. D.

(3)以下能正确定义一维数组的选项是( )。 A. B. C. D. (4)

有以下程序:

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

程序的运行结果是( )。 A. xy,aaaaCe B. aaaaCC,xy C. bCC,aabCC D. aabCC,bCC

(5)设变量x为float型且已赋值,则以下语句能将x中的数值保留到小数点后两位,并将第3位四舍五入的是( )。 A. B. C. D.

(6)下列对于线性链表的描述中正确的是( )。

A. 存储空间不一定连续,且各元素的存储顺序是任意的

B. 存储空间不一定连续,且前件元素一定存储在后件元素的前面 C. 存储空间必须连续,且前件元素一定存储在后件元素的前面 D. 存储空间必须连续,且各元素的存储顺序是任意的

(7)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是( )。A.gets(&s[0]); B.scanf(\

(8)以下函数按每行8个输出数组中的数据:

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

下划线处应填入的语句是( )。

A.

B. C. D.

(9)有以下程序段:

A. 以上的说明形式非法 B. NODE是一个结构体类型 C. OLD是一个结构体类型 D. OLD是一个结构体变量

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

(10)以下语句的执行结果是( )。 A. 17

B. 16 C. 15 D. 18

(11)有以下程序: A. 3 B. 1 C. 2 D. 2

2 2 1 2

程序运行后的输出结果是( )。

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

(12)以下程序运行后的输出结果是( )。

A. EFGHIJABCD B. bcdefghij C. abdefCghij D. 不确定的值

(13)设有数组定义:char array[ ]=\则数组array所占的空间为( )。A. 4个字节B.5个字节C. 6个字节D. 7个字节

(14)若有以下说明和语句,请选出哪个是对C数组元素的正确引用( )。

A.cp+1 B.*(cp+3) C.*(cp+1)+3 D.*(*cp+2)

(15)有以下程序:

( )。 A. 7,4 B. 4,10 C. 8,8 D. 10,10

(16)下列选项中不符合良好程序设计风格的是( )。 A. 数据说明的次序要规范化

程序运行后的输出结果是

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

B. 程序中要有必要的注释

C. 对所有输入的数据都要进行检查,确保数据的合法性 D. 程序的效率第一,清晰第二

(17)在E—R图中,用来表示实体的图形是( )。 A. 矩形 B. 椭圆形 C. 菱形 D. 三角形

(18)语句Char(*P)()说明了( )。

A. P是指向函数的指针,该函数返回一个Char型数据 B. P是指向Char型数据的指针变量 C. P是指向数组的指针变量

D. P是一个函数名,该函数的返回值是指向Char型数据的指针

(19)有以下程序,其中%u表示按无符号整数输出:

程序运行后的输出结果是

( )。 A. -1 B. 65535 C. 32767 D. 0xFFFF

(20)4个元素A、B、C、D依次入栈,入栈过程中允许栈顶元素出栈,假设某一时刻栈的状态是C(栈顶)、B、A(栈底),则不可能的出栈顺序是( )。 A. D、C、B、A B. C、B、D、A C. C、A、D、B D. C、D、B、A

(21)设有定义语句int(*f)(int);,则以下叙述正确的是( )。

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

A. f是基类型为int的指针变量

B. f是指向函数的指针变量,该函数具有一个int类型的形参 C. f是指向int类型一维数组的指针变量

D. f是函数名,该函数的返回值是基类型为int类型的地址

(22)设pl和p2是指向一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是( )。 A. k=*pl+*p2 B. p2=k; C. pl=p2;

D. k=*pl*(*p2.; (23)下面程序的运行结果是( )。

A. g a e B. ga

C. Language D. 有语法错

(24)有以下程序:( )。 A. 0 B. 4

程序运行后的输出结果是

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

C. 6 D. 7

(25)以下不能定义为用户标识符的是( )。 A. printf B. char C. _8abc D. Void

(26)以下选项中正确的定义语句是( )。 A. double a;b; B. double a=b=7; C. double a=7,b=7; D. double,a,b;

(27)要求以下程序的功能是计算:s=1+1/2+1/3+?+1/100。

程序运行后输出结果错误,导致错误结果的程序行

是( )。

A. s=1.0; B.

C. S=S+1/n; D.

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

A. 每个C语言程序文件中都必须要有一个main(.函数 B. 在c语言程序中main(.函数的位置是固定的

C. c语言程序中所有函数之间都可以相互调用,与函数所在位置无关 D. 在c语言程序的函数中不能定义另一个函数

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

(29)有以下程序:

给变量X输入10,程序的输出结果是( )。 A. 54 B. 55 C. 65 D. 45

执行程序时,

(30)有以下程序: 程序运行后

的输出结果是( )。 A. 4 B. 10 C. 14 D. 6

(31)有以下定义:int a;long b;double x,y;则以下选项中正确的表达式是( )。 A. a%(int)(x-y) B. a=x!=y; C. (a*y)%b D. y=x+y=x

(32)若x是int型变量,且有下面的程序片段:

上面程序片段的输出结果是

( )。

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

A.

B. C.

D.

(33)有以下程序,程序中库函数islower(ch.用以判断ch中的字母是否为小写字母

程序运行

后的输出结果是( )。 A. ab cd EFG! B. Ab Cd EFg! C. aB cD EFG! D. ab cd EFg!

(34)以下叙述不正确的是( )。

A. 在C程序中,逗号运算符的优先级最低

B. 在C程序中,APH和aph是两个不同的变量

C. 若a和b类型相同,在计算赋值表达式a=b后,b的值将放入a中,而b的值不变

D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

(35)有以下程序: 程序运行后的输出结果是( )。 A. 3,3,3 B. 2,2,3 C. 1,2,3 D. 1,l,3

(36)以下描述中正确的是( )。

A. 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

B. do-while循环由do开始,用while结束,在while(表达式.后面不能写分号 C. 在do-while循环体中,是先执行一次循环,再进行判断 D. do-while循环中,根据情况可以省略while

(37)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( )。 A. 0 B. 1 C. 2

D. 不知道a的值,不能确定

(38)设变量已正确定义并赋值,以下正确的表达式是( )。 A. x=y*5=x+z B. int(15.8%5. C. x=y+z+5,++y D. x=25%5.0

(39)数据库系统的核心是( )。 A. 数据库

B. 数据库管理系统 C. 数据库管理员

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

D. 数据库应用系统

(40)当用“#define F 37.5f”定义后,下列叙述正确的是( )。 A. F是float型数 B. F是Char型数 C. F无类型 D. F是字符串

二、程序填空题(共18分)

(1)给定程序中,函数fun的功能是:统计形参S所指的字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。例如,若形参s所指的字符串为”abcdef35adgh3kjsdf7”,则输出结果为4。请在下画线处填入正确内容并将下画线删除,使程序得出正确的结果。注意:部分源程序在文件BLANKl.C中。不得增行或删行,也不得更

改程序的结构!

三、程序修改题(共18分)

(1)下列给定程序中函数fun的功能是:统计substr所指的字符串在str所指的字符串中出现的次数。例如,若字符串为aaas lkaaas,子字符串为as;则应输出2。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改的程序的结

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

构!

四、程序设计题(共24分)

(1)某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放人记录的ave成员中。 例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。 注意:部分源程序在文件PROGl.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun部位中填入你编写的若干语句。

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

答案和解析

一、选择题(每小题1分,共40分) (1) :B

合法的标识符由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,用户定义的标识符不能与关键字相同。选项A),数字不能为第一个字母,auto为关键字;选项c)中,也是数字不能为第一个字母,else为关键字;选项D)中负号不合法。

(2) :C

嵌套的if语句功能是将k赋值为a、b、c中的最小值,选项A)中没有比较a、c的大小,选项B)中语句”((b<c)?a:b):((b>c)?b:c)“错误,选项D)中没有比较b、c大小。

(3) :B

选项A)中,定义的初值个数大于数组的长度;选项C)中,数组名后少了中括号;选项D)中,整型数组不能赋予字符串。

(4) :A

函数fun(char * s[],int n)的功能是对字符串数组的元素按照字符串的长度从小到大排序。在主函数中执行fun(ss,5)语句后,*ss[]={“xy”,“bcc”,“bbcc”,“aabcc”,“aaaacc”},ss[0],ss[4]的输出结果为xy,aaaacc。所以选项A)为正确答案。

(5) :B

(int)(x*100+0.5)把float型数据(x*100+0.5)强转成int,这样就可以去掉小数点,+0.5就是为了四舍五人。例如x=1.234,则(1.234*100+0.5)=123.9.则(int)123.9/100.0=123/100.0=1.23。 (6) :A

线性链表是链式存储结构。在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。

(7) :D

在格式输入中,要求给出的是变量的地址,而B)答案中给出的s[1]是一个值的表达式。(8) :C

在c语言循环语句中continue用来跳出当次循环,因此B)项和D)项不正确。if(i/8==0)是指当i除以8的商等于0,即i的值小于8时,打印换行,因此A)项不正确。if(i%8==0)是指当i除以8的余数等于0,即当间隔8个数时,打印换行,因此选项c)正确。

(9) :C

本题考查的是结构体的定义。typedef关键字用于声明一个新的类型名代替已有的类型名。

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

本题中如果没有用typedef进行定义,则struet NODE为结构体类型,现在用typedef定义后,相当于用0LD代表了struet NODE这一结构体类型,故0LD为结构体类型。

(10) :B

s=1+0+1+2+3+4+5=16。

(11) :C

程序运行后,首先输出的是P的值,然后输出a的值。P=d++,得到P的值为d的初始值2;a的值不变,仍为1。 (12) :B

函数调用fun(a,10)执行完毕后,a=”abcdefghij”,但函数返回的指针指向a[1],因此输出bcdefghij。 (13) :C (14) :D

本题的考查点是数组元素的引用。cp=c这个语句是将数组c的首行元素地址赋给了指针数组cp。选项A,cp+1是指将数组c的首行地址加l,即为第二行地址;选项B,*(cp+3)是地址,等于数组C的首地址加3的那个内存单元的内容,不是对数组元素的引用;选项C,*(cp+1)+3是地址,等于数组C的首地址加1的那个内存单元中存放的值加3,不是对数组元素的引用。 (15) :B

slrlen()用来返回字符串的长度,而sizeof()返回的是一个对象或者类型所占的内存字节数,即数组所占的内存。

(16) :D

当今主导的程序设计风格是”清晰第一,效率第二”的观点。结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,而实际应用中,人们更重视程序的可理解性。

(17) :A

E—R图中用矩形表示实体集,用椭圆形表示属性,用菱形表示联系。

(18) :A

P是指向函数的指针,该函数返回一个char型数据。 (19) :B

本题考查的是整型无符号数的输出。%U的作用是按无符号的十进制形式输出整型数,整型无符号数的取值范围在0~65535之间,无符号数不能表示成小于0的负数,十六进制数0xFFFF转换为二进制位其值为l6个1,代表的整数就是65535。

(20) :C

栈的特点是先进后出,所以后入栈的最先出栈。在栈的状态是c(栈顶)、B、A(栈底)时,D

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

未入栈,栈顶元素可以出栈,但A不可能比B先出栈,所以c选项错误。 (21) :B

本题考查的是指向函数的指针。语句“int(*f)(int);”是对一个函数的声明,其中f是指向该函数的指针,该函数有一个整型的参数,函数返回值类型为整型。故答案选B)。

(22) :B

本题主要考查了一维数组指针的赋值和用指针引用数组元素进行运算。选项B)中p2为指向int型变量的指针,而k为int型变量,不能将int型变量直接赋值给指向int型变量的指针,所以选项B)错误,应该为p2=&k。

(23) :A

考查用指针来引用字符数组元素的方法。指针pl+k相当于指针pl向后移动了k个字符的位置,指针p2同理。

(24) :D

本题考查的是switch语句。在switch语句中,表达式的值与某一个(!ase后面的常量表达式的值相等时,就执行此case后面的语句,若所有的case中的常量表达式

的值都没有与表达式的值匹配的,就执行default后面的语句,各个case和default的出现次序不影响执行结果。所以在本题中,当k=5和k=4的时候,case都没有与其匹配的值,所以执行了default语句;当k=3时,执行”case 3:n+=k;”得n=3,然后执行default;当k=2时,执行”case2:case 3:n+=k;”得n=5,然后执行default;当k=1时,执行”case l:n+=k;case 2:case 3:n+=k;”使得n加两次k,得到n=7。

(25) :B

用户自定义标识符不能与关键字相同。但可以与库函数名相同,只是一般不建议用户这么做。 (26) :C

定义变量a和变量b为double类型,并对其赋初值。变量之间应以”,”分隔,定义关键字与变量名之间应以空格分隔,语句应以”;”结尾。

(27) :C

本题的考查点是查找程序运行错误的原因。主要考查运算中字符的转换。初看此题,可能不太容易发现错误,该题的运行结果是1.0000,算法错误。s=s+1/n;1/2=0,因为n为整型,所以1/n都为0。这就是导致本题出错的原因。s=s+1/n应改为s=s+1.0/n。(28) :A

main函数是c语言程序的主函数,可以出现在程序中的任何位置。函数是c语言程序的基本模块,函数内部可以再定义其他函数。但函数间可相互调用,被调用的既可以是c语言提供的库函数,也可以是用户自定义函数。 (29) :B

本程序考察的是函数的递归调用,在调用一个函数的过程中又出现直接或间接地调用该函数

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

本身,称为函数的递归调用,执行结果为l+2+3+4+5+6+7+8+9+10=55. (30) :B

函数的功能是求数组所有元素的和。递归表示为a[3]+a[2]+a[1]+a[0]+f(t,0)=10。

(31) :B

选项中如果x与Y的值相等那么取余时就会有除数为0的情况。C)选项中取余的两个数据都应为整数,不能有一方为实型变量,而a*y的结果为double型。 D)选项表达式本身就错误,不能给表达式赋值。所以,本题答案为B)。

(32) :A (33) :C

int islower(char ch)的功能是判断字符c是否为小写英文字母,当ch为小写英文字母(a—Z)时,返回非

作用是把小写字母转化为大写字母。根据判

断条件可知,只有当空格字符的前一个字符为小写字符时才把该小写字符变成大写,所以选择C)。

(34) :D

在c语言所有的运算符中,逗号运算符的优先级最低。C语言区分大小写,所以APH和aph是两个不同的变量。赋值表达式a=b表示将b的值赋予a,而b本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。选项D)中当从键盘输人数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数值和整型数值等。

(35) :A

根据程序可以分析出系统只分配了一个整型数据的存储空间,把这个空间的地址分别赋给了指针型变量a,b和c。程序利用指针a把数据1写入了该空间,然后利用指针b,把数据2写入该空间,所以原来的1就被覆盖掉了,最后用指针c把数据3写入该空间把数据2覆盖掉了,此空间中最后留有的数据是3。因为3个指针都指向该空间,所以输出数据均为3。

(36) :C

do while语句的一般形式为:d0循环体语句while(表达式);,其中循环体语句可以是复合型语句,但必须用花括号括起来。while后必须要有分号作为语句的结束,在do-while循环中,不可以省略while。

(37) :B

当a=1时,(a==1)||(a!=1)为真;当a!=1时,(a==1)||(a!=1)也为真,故正确答案为B)。

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

(38) :C

赋值运算符左边必须是单一变量名,而A)选项中的”y*5=x+z”部分是非法赋值。在求余运算中的操作对象中只能是整型,故选项B)和选项D)是错误的。选项C)为逗号表达式。

(39) :B

数据库管理系统是一种软件系统,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,是数据库系统的核心。

(40) :D

字符替换定义格式为:#define标识符(形参表)形参表达式。题中F是代表形参表达式的标识符(字符串)。

二、程序填空题(共18分) (1) :

(1)a[i](2)9(3)*t=n

【考点分析】

本题考查:for循环语句;if语句条件表达式;指针变量。

【解题思路】

填空1:通过for循环语句,来判断是否到字符串结尾,变量i用来存放字符串数组下标,则应填人s[i]。

填空3:将数字字符个数存入变量t中,这里需注意变量t是指针变量。

【解题宝典】

if语句的条件表达式一般会考查三方面的内容:

(1)条件判断,即>与>=、<与<=、==与!=的区别,需要仔细分析题干的意思,确定条件表达式的内容。

(2)逻辑判断,即&&(逻辑与)与||(逻辑或)的区别,需要根据题干确定if条件中若干个条件表达式的并存关系。

(3)=(赋值号)与==(等于号)的区别,注意在if条件中不会出现=(赋值号)。三、程序修改题(共18分)

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

中大网校引领成功职业人生

(1) :0

【参考答案】

【考点分析】

本题考查:for循环语句的格式,for循环语句使用最为灵活,其一般形式为:for(表达式1;表达式2;表达式3),注意表达式之间使用”;”相隔;if条件语句的格式,其中if关键字需要区别大小写,这里不能混淆使用。关键字是由C语言规定的具有特定意义的字符串,也称为保留字。用户定义的标识符不应与关键字相同,并且关键字应小写。

【解题思路】

先看循环条件for(i=0,str[i],i++),不难发现此处for循环语句的格式有误,其中表达式之间应以”;”相隔;同时很容易发现if条件语句处的关键字书写错误。四、程序设计题(共24分) (1) :

【考点分析】

本题考查:结构体类型成员运算,指向结构体类型的指针变量作函数参数。

【解题思路】

本题考查自定义形参的相关知识点,程序流程是这样的:在fun()函数中求出平均分后,返回到主函数时平均分也要带回,所以只能定义一个指针类型的形参STREC*a,此时,引用成员的方式可以使用指向运算符,即a一>ave和a一>s[i],当然也可用(*a).ave和(*a).s[i]。

中大网校 “十佳网络教育机构”、 “十佳职业培训机构” 网址:www.wangxiao.cn

本文来源:https://www.bwwdw.com/article/joy6.html

Top