1[填空题]下列给定程序中,函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]…中,把偶数从数组中删除,奇数个数通过函数值返回。
例如,若a所指数组中的数据最初排列为:9,1,4,2,3,6,5,8,7,删除偶数后,a所指数组中的数据为:9,1,3,5,7,返回值为5。
请在程序的下画线处填入正确的内容并将下画线删除.使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:
【参考答案】
(1)1 (2)J++ (3)J
【考点分析】
本题考查:if语句,条件表达式;自增、自减运算符;函数返回值。
【解题思路】
填空l:根据题目要求,需进行奇偶数的判定,可以通过if条件语句来判断数组元素是否为奇数,如果元素不能被2整除,则为奇数,所以填入if(a[i]%2==1)。
填空2:将为奇数的元素重新存放到数组的前面,同时下标增1。
填空3:函数返回值需要返回数组中奇数的个数,因此返回变量J。
【解题宝典】 、
奇数和偶数的判定方法,对2求余运算,结果为0是偶数,结果为1是奇数。
自增l、自减1运算符:自增l运算符记为“++”,其功能是使变量的值自增1;自减1运算符记为“一一”,其功能是使变量值自减l。自增1、自减1运算符均为单目运算符,具有右结合性,有以下几种形式:
++i:i自增l后再参与其他运算。
_-i:1’自减1后再参与其他运算。
i++:i参与运算后,i的值再自增1 0
i一一:i参与运算后,i的值再自减1。
2[简答题]请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入“aboaEf9”,则应输出“aBe4EF9”。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
%参考解析:
【参考答案】
【解题思路】
该题要求将给定字符串中奇数位置的字母转换为大写,需要先判断奇数位置以及此位置的字符是否是小写字母,如果是再通过其转换方法进行转换。
从c语言的学习中知道,只要将小写字母减去32即转成大写字母,将大写字母加上32即转成小写字母。本程序用if语句实现转换功能。
3[单选题]一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、c、D、E依次入栈,然后再依次出栈,则元素出棱的顺序是( )。
A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA
参考答案:B
参考解析:栈是先进后出的原则组织数据,所以人栈最早的最后出栈,所以选择B。
4[单选题] 有以下程序
程序运行后的输出结果是
A.#N#B.#F#C.MMMD.MO#
参考答案:A
参考解析:for语句中把array数组首地址值赋给ptr,ptr++表示每次执行完循环体后,ptr指向下一数组元素,当指针指向值为0时,输出#,否则´M´再加上指针对应数组值进行输出,当* ptr=1时,´M´+l=´N´,结果输出为#N#,答案为A选项。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |