一、程序填空题
1下列给定程序中,函数fun的功能是:在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(即下标值),若未找到则返回-1。ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:
【参考答案】
(1)N(2)i(3)一1
【考点分析】
本题考查:for循环语句;函数返回值;if语句条件表达式。
【解题思路】
填空l:变量i是循环变量,它的取值范围是0一N。
填空2:如果ss所指字符串数组中的字符串与t所指字符串相同,则返回其下标值,即returni;,否则返回一1,即return一1;o
填空3:在main函数中输出最后结果,判断函数返回值n,如果n=一1,说明没有找到,否则输出n。
二、程序改错题
2下列给定程序中函数fun的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。
例如,变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。
请改正程序中的错误,使它得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更
改程序的结构!
试题程序:
参考解析:
【参考答案】
(1)t=*x;*X=Y;(2)return(t);或returnt;
【考点分析】
本题考查:指针型变量的使用;通过return语句完成函数值的返回。
【解题思路】
首先,定义变量t作为中间变量,然后进行数据交换,注意参数x是指针变量,交换时应使用*x,最后确定返回值;根据代码b=fun(8ab),可以知道返回值将赋给变量b,而b中应存放交换前*x中的值,所以函数应返回变量t。
3规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用c语言提供的字符串函数。
例如,字符串中的内容为“****A*BC*DEF*G*******”,删除后,字符串中的内容应当是“ABCDEFG”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容.仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
【考点分析】
本题考查:删除字符串中所有*号,需用循环语句遍历字符串,用判断语句判断字符是否为*号,由此可以决定该程序应使用循环判断结构。
【解题思路】
用循环操作从字符串开始往后逐个进行比较,若不是要删除的字符(用if(aEi]!=’*’)来控制)则保留。变量i和j用来表示原字符串的下标和删除*号后新字符串的下标。注意,下
标变量J要从0开始,最后还要加上字符串结束标识‘\0’。
推荐: