2015计算机二级《C语言程序设计》无纸化操作题三份(2)
1下列给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指的变量中。ss所指字符串数组中共有M个字符串,且串长小于N。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:
【参考答案】
(1)M (2)< (3)k
【考点分析】
本题考查:for循环语句的循环条件;if语句条件表达式;return语句完成函数值的返回。
【解题思路】
填空l:题目指出88所指字符串数组中共有M个字符串,所以for循环语句的循环条件是i
填空2:要求求长度最短的字符串,*n中存放的是已知字符串中长度最短的字符串的长度,将当前字符串长度与+n比较,若小于*n,则将该长度值赋给*n,因此if语句的条件表达式为len<*n。
填空3:将最短字符串的行下标作为函数值返回,变量k存储行下标的值。
二、程序改错题
2下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。
例如,若输入“Ab,cD”,则输出“AB,CD”。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:
【参考答案】
(1)if((tt[i]>=’a’)&&(tt[i]<=’Z’))
(2)tt[i]一=32;
【考点分析】
本题考查:if语句条件表达式;小写字母转换为大写字母的方法。
【解题思路】
(1)分析本题可知,要判断字符是否为小写字母,即判断其是否在‘a’~‘z’之间,所以这里需要进行连续的比较,用&&。
(2)从ASCIl码表中可以看出,小写字母的ASCⅡ码值比对应大写字母的ASCIl值大32。将字符串中的小写字母改为大写字母的方法是:从字符串第—个字符开始,根据ASCIl码值判断该字母是不是小写字母,若是,则ASCⅡ码值减32。
三、程序设计题
3编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数streat),即把p2所指的字符串连接到pl所指的字符串的后面。
例如,分别输入下面两个字符串:
“FirstString--”
“SecondString”
程序输出:
“FirstString--SeeondString”
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
参考解析:
【参考答案】
【考点分析】
本题考查:不使用字符串函数实现字符串连接操作。通过for循环语句来完成,最后需加上字符串结束标识‘\0’。
【解题思路】.
本题用两个循环完成操作,第1个循环的作用是求出第l个字符串的长度,即将i指到第1个字符串的末尾;第2个循环的作用是将第2个字符串的字符连到第l个字符串的末尾。最后在第1个字符串的结尾加上字符串结束标识‘\0’。