c语言利用fun求最小值,2015年计算机二级《C语言》精选练习题及答案(1)

1[填空题]下列给定程序中,函数fun的功能是:把形参a所指数组中的最小值放在元素a[O]中,接着把a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3],依此类推。

例如,若a所指数组中的数据最初排列为:9,1,4,2,3,6,5,8,7;则按规则移动后,数据排列为:1,9,2,8,3,7,4,6,5。形参n中存放a所指数组中数据的个数。

规定fun函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。

请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

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

不得增行或删行,也不得更改程序的结构!

试题程序:

cbb7665b486db61411a254896f4c7394.png

d1f4c51b76268b96545f69735b356395.png

参考解析:

【参考答案】

(1)a[i] (2)a[j]‘(3)a[j]

【考点分析】

本题考查:数组的引用;if语句条件表达式,如果表达式的值为真,则执行下面的语句,如果该值为假,则不执行下面的语句。

【解题思路】

填空l:for循环语句循环体中将数组元素a[i]赋值给变量max和变量min。

填空2:通过一次for循环,找到数组中的最大值,if语句的条件表达式是max

填空3:同理,此处if语句的条件表达式是min>a[j]。

【解题宝典】

求最大值或者最小值的题目,一般都是先假设一个元素最大或最小,然后通过if条件语句将该元素和其他元素进行比较操作来完成。

2[单选题] 设有定义:

5a801716a9c6eee6742e683afb290b85.png

A.1234,3.142B.123,3.142C.1234,3.141D.123,3.141

参考答案:A

%参考解析:函数Printf()中,%md指输出带符号的十进制整数,给定最小宽度为m位,不足m位左端补空格,超过m位按实际位数输出,%.nf表示以小数形式输出实数,小数占n位,对应题目,答案为A选项。

3[单选题] 有以下程序:

f1a4e98e3443a6020ca37005f992ed47.png

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

A.0B.1C.4D.8

参考答案:C

参考解析:m函数中的X为静态局部变量,占用固定的内存单元,下一次调用时仍可保留上次调用时的值。也就是说,如果多次调用fun函数,x的定义只在第一次调用时有效,从第二次调用开始,x的定义相当于不存在,直接使用X的值。主函数中调用两次fun函数t第一次调用:X=1,X=x}2=2,s=2;第二次调用:(直接用上次X的值)x=X·2=4,s=4。因此C选项正确。

4[单选题] 若有以下程序

584398c5a84d3acf2325fbb3b9c8ba8a.png

则程序的输出结果是

A.Qian,f,350,Qian,f,350

B.Zhao,m,290,Zha0,m,290

C.Zhao,m,290,Qian,f,350

D.Zhao,m,290,Zha0,f,350

参考答案:C

参考解析:本题考查结构体的相关操作以及传值、传址的区别,该题中调用f函数后,会首先输出被重新复制的b值,且与a相同,而执行完f函数后,因为f函数是值传递,所以b值并不会改变,还是维持原值,选项c正确。

5[单选题] 以下结构体说明和变量定义中,正确的是

df38b4d89ffb1b122ab77471183316c5.png

参考答案:A

参考解析:本题考查typedef的使用方法,typedef对已存在的类型使用一个新的名字,选项A中ABC为新的类型别名,定义正确。

6[单选题] 有以下程序:

ca00769047b609cbdb51127512d42d71.png

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

47ed3db1ae995d6918a7dabd1b37e52d.png

参考答案:D

参考解析:在函数fun(char}a,char}b)中,wKle(·a==’·’)a++的功能是:如果}a的内容为‘}’,则a指针向后移动,直到遇到非‘+’字符为止,退出循环进入下一个while循环,在wlIile({b=}a){b++;a++;}中,把字符数组a中的字符逐个赋给字符数组b。所以在主函数中,执行fun(s,t)语句后,字符数组t中的内容为“at b}}}★”。因此D选项正确。

7[单选题] 有以下程序

83c32081945abefb813fd053fd9e0143.png

程序的运行结果是

A.14B.20C.10D.16

参考答案:A

参考解析:*(*(P+m)+k)系统默认为指针指向数组中第[m][k]个元素,因此,在for循环中,n+=*(*(P+m)+k);执行的是将数组x[0][1]和x[1][1]累加后赋值给n,最后进行输出,答案为A选项。第7题 笔记记录我的笔记(0) | 精选笔记(1)选择笔记标签:试题内容(1)答案解析(0)

8[单选题] 以下关于结构化程序设计的叙述中正确的是( )。

A.结构化程序使用goto语句会很便捷

B.在c语言中,程序的模块化是利用函数实现的

C.一个结构化程序必须同时由顺序、分支、循环三种结构组成

D.由三种基本结构构成的程序只能解决小规模的问题

参考答案:B

参考解析:滥用90t0语句将使程序的流程毫无规律,可读性差,对于初学者来说尽量不要使用,所以A错误。—个结构化程序可以包含顺序、分支、循环结构中的一种或多种,所以C错误。由三种基本结构构成的程序可以解决任何复杂的问题,所以D错误。

9[单选题] 下列定义变量的语句中错误的是( )。

A.int jnt;B.double int_;C.char For;D.float US$;

参考答案:D

参考解析:C语言规定,变量命名必须符合标识符的命名规则。D选项中包含了非法字符“$”,所以错误。标识符由字母、数字或下划线组成,且第一个字符必须是大小写英文字母或者下划线,而不能是数字。大写字符与小写字符被认为是两个不同的字符,所以For不是关键字for。

10[单选题] 程序调试的任务是( )。

A.设计测试用例

B.验证程序的正确性

C.发现程序中的错误

D.诊断和改正程序中的错误

参考答案:D

参考解析:程序调试的任务是诊断和改正程序中的错误。

相关推荐:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值