手机

当前位置:查字典资讯网 > 考试 > 2015年计算机二级考试《C语言》提高练习题(11)

2015年计算机二级考试《C语言》提高练习题(11)

来自:查字典教育资讯网 2015-07-30

1[填空题]请补充主函数main(),该函数的功能是:把从键盘输人的3个整数按从小到大输出。

例如,输入“50 60 40”,结果输出“40 50 60”。

注意:部分源程序给出如下。

请勿改动main()函数和其他函数中的任何内容,仅在横线上填人所编写的若干表达式或语句。

试题程序:

2015年计算机二级考试《C语言》提高练习题(11)1

参考解析:

【1】x>y【2】x>z【3】y>z【解析】由程序最后的输出可知变量x 中存放3个整数中最小的,变量2中存放3个整数中最大的。当x大于y时,变量x和y互换,因此,【1】处填x>y。当x大于2时,变量x和z互换,因此,【2】处填x>z。当y大于z时,变量y和z互换,因此’【3】处填y>z。

2[简答题]下列给定的程序中,函数proc()的功能是:将str所指字符串中出现的t1所指字符串全部替换成t2所指字符串,所形成的新的字符串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。

例如,当str所指字符串中所指的内容为abcdabcdef9,t1所指字符串中的内容为bc,t2所指字符串中的内容为11时,结果在w所指的数组中的内容应为alldalldefg。请修改程序中的错误,使它能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:

2015年计算机二级考试《C语言》提高练习题(11)2

参考解析:

(1)错误:int proc(char*str,char*t1,char*t2,char*w)

正确:void proc(char*str,char*t1.char*t2,char*w)

(2)错误:while(r)

正确:while(*r)

(3)错误:r++

正确:r++;

【解析】:由主函数中proc()函数的调用以及proc()函数的定义,可知该函数没有返回值,因此把proc()前的“int”改为“void”;由proc()函数可知,变量r指向的是字符串t1地址,while循环要判断的是字符串tl是否结束,因此,“while(r)”应改为“while(*r)”;C语言中,每一条语句都以分号结束,因此。“r++”后要加上分号。

3[单选题]以下叙述中正确的是

A.在c语言中,逻辑真值和假值分别对应1和0

B.关系运算符两边的运算对象可以是C语言中任意合法的表达式

C.对于浮点变量x和y,表达式:x==y是非法的,会出编译错误

D.分支结构是根据算术表达式的结果来判断流程走向的

参考答案:B

参考解析:A选项中,在c语言中,逻辑真值对应非0;C选项中,表达式:x==y是合法的;D选项中,分支结构的流程走向是根据表达式的值,并不仅仅是算数表达式的值。因此B选项正确。

4[简答题]下列给定程序中,函数proc()的功能是:对M名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

请修改程序中的错误,使它能得到正确结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:

2015年计算机二级考试《C语言》提高练习题(11)3

2015年计算机二级考试《C语言》提高练习题(11)4

2015年计算机二级考试《C语言》提高练习题(11)5

参考解析:

(1)错误:*t=calloe(m,sizeof(STU));

正确:(struct ss*)calloc(m,sizeof(STU));

(2)错误:for(i=j=0;i

正确:for(i=j=0;i

(3)错误:t[k].s=b[j].s;

正确:t[k]=b[j];

【解析】由函数proc()可知,变量t是指向动态存储空间的变量,因此不能间接访问运算符,而函数calloc的返回值类型为void*,要进行显式类型转换,因此“*t=calloc(m,si-zeof(STU));”应改为“(struct ss*)calloc(m,sizeof(STU));”。

由程序可知,变量i为控制学生个数的变量,因此“for(i=j=

2015年计算机二级考试《C语言》提高练习题(11)6

5[单选题] 以下叙述中错误的是( )。

A.用户定义的函数中可以没有return语句

B.用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值

C.用户定义的函数中若没有reillnl语句,则应当定义函数为void类型

D.函数的retU/Tl语句中可以没有表达式

参考答案:B

参考解析:本题重点考察函数返回值的相关知识,函数的值只能通过returll语句返回主调函数,在函敦中允许有多个return语句,但每次调用只能有一个return语句t执行,因此只能返回一个函数值。不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void”。因此B选项正确。

6[单选题] 下述程序的输出结果是()。

2015年计算机二级考试《C语言》提高练习题(11)7

A.4,4B.2,2C.4,5 D.2,4

参考答案:D

参考解析:首先定义了一个指向一维数组b的指针p,一个指向指针p的指针变量q;输出*(p++)是先输出*p,即b[0]的值,再将指针p指向数组的下一个元素b[1];输出**q是输出指针P所指单元的内容。

7[单选题] 有如下程序段:

2015年计算机二级考试《C语言》提高练习题(11)8

执行该程序后,x的值为()。

A.trueB.falseC.0 D.1

参考答案:D

参考解析:在C语言中,当表达式成立时用l表示,不成立时用0表示,即X=(a&&b)&&(c<ˊ B'ˊ)](14&&15)&&(ˊAˊ<'Bˊ)=1 &&1=1,故选择D选项。

8[单选题] 有下列程序:

2015年计算机二级考试《C语言》提高练习题(11)9

执行后的结果是()。

A.输出字符a的ASCⅡ码

B.输出字符C的ASCⅡ码

C.输出字符C

D.程序出错

参考答案:D

参考解析:因为字符数组s[];中的数组名S表示的是一个地址常量。所以语句“s+=2;”不能将指针在当前位置的基础上再向后移动两位,因而程序编译时出错。

9[单选题]

2015年计算机二级考试《C语言》提高练习题(11)10

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

A.Qian,f,350,Sun,f,350B.Qiamf,350,Qian,f,350C.Qian,f,350,Sun,m,370D.Zha0,m,290,Sun,m,370

参考答案:A

参考解析:c语言函数参数传递大致分为:

1、值传递过程中。被调函数的形参作为被调函数的局部变量处理,即在内存的堆栈中开辟空间以存放由主调函数放进来的实参的值,从而成为了实参的一个拷贝。值传递的特点是被调函数对形参的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。

2、地址传递过程中,被调函数的形参虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。结构体中nanle是数组,做实参传递,会退化为指针,因此调用f(),b.nanle发生修改,其他的成员,传递的是拷贝,不会被修改。因此输出Sun,f,350。故答案为A选项。

10[填空题]函数fun()的功能是:逆置数组元素中的值。形参n给出数组中数据的个数。

例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。

注意:部分源程序给出如下。

请勿改动main()函数和其他函数中的任何内容,仅在fun()函数的横线上填入所编写的若干表达式或语句。

试题程序:

2015年计算机二级考试《C语言》提高练习题(11)112015年计算机二级考试《C语言》提高练习题(11)12

参考解析:【1】n/2【2】i【3】a[n-i-1]

【解析】:fun()函数实现的功能是实现数组的逆置。具体步骤通过参数传递,得到数组指针(即数组名)和数组记录大小的变量n,通过这两个参数配置for循环,遍历数组的中间的元素位置,每次循环都将i位置和对应位置结点(i距离0位置等于其距离尾位置的结点)的元素交换,由此实现数组的逆置。

更多精彩资讯请关注查字典资讯网,我们将持续为您更新最新资讯!

上一篇:2015年绍兴市越城区小学招生范围施教区... 下一篇:2015年计算机二级考试《C语言》提高练...