编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符为1,则输出3。注意:部分源程序在文件PROCl.C中。请勿改动主函数main和其他函数中的任

题目

编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符为1,则输出3。

注意:部分源程序在文件PROCl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填人你编写的若干语句。

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。

例如,若输入“aboaEf9”,则应输出“aBe4EF9”。

注意:部分源程序在文件PROGl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

试题程序:


正确答案:
【参考答案】【解题思路】该题要求将给定字符串中奇数位置的字母转换为大写,需要先判断奇数位置以及此位置的字符是否是小写字母,如果是再通过其转换方法进行转换。从c语言的学习中知道,只要将小写字母减去32即转成大写字母,将大写字母加上32即转成小写字母。本程序用if语句实现转换功能。

第2题:

请补充fun()函数,该函数的功能是:把字符的ASCII码中为奇数的字符从字符串str中删除,结果仍然保存在字符串str中,字符串str从键盘输人,其长度作为参数传人fun()函数。

例如,输入“abcdef”,则输出“bdf”。

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

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

试题程序:


正确答案:


【解析】先判断ASCⅡ码的奇偶。
第一空:根据主函数“fun(str,len);”调用语句,其中len为字符串str的长度,用来控制循环。根据主函数中对应的调用语句,补全fun()函数定义,第一空填“fun(chars[],intn)”。
第二空:“s[j++]=s[i];”语句中j的变量在使用前要对其取值进行初始化,因为数组下标是由0开始的,初始化值为0,所以第二空填“j-0”。
第三空:新生成的字符串要加尾符标志,所以第三空填“s[j]=ˊ\0ˊ”。

第3题:

规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函 数时,不得使用c语言提供的字符串函数。 例如,字符串中的内容为:****A*BC*DEF * G*******删除*后字符串中的内容应当 是:ABCDEFG。 注意:部分源程序在文件PROGl.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


正确答案:


【考点分析】
要删除字符串中所有*号需要用循环语句遍历字符串,用
判断语句判断字符是否为*号,由此可以决定该程序应使用循
环判断结构。
【解题思路】

第4题:

请编写一个函数,函数的功能是删除字符串中的所有空格。

例如,主函数中输入“asd af aa z67”,则输出为“asdafaaz67”。

注意:部分源程序在文件PROGl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


正确答案:
解析:该程序功能是删除字符串中的所有空格。本题的解题思路是首先利用一个指向字符串的指针,查找不是空格的字符,然后将不是空格的字符赋值到字符串,如果是空格,则跳过该字符,这样就实现了空格字符的删除。

第5题:

编写函数fun,其功能是:将所有大于1小于整数m的非素数存人XX所指数组中,非素数的个数通过k返回。

例如,若输入17,则应输出:4 6 8 9 10 12 14 15 16。注意:部分源程序在文件PROGl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


正确答案:
【考点分析】本题考查:如何判断非素数;循环判断结构;数组的引用。【解题思路】题目要求将l—m之问的非素数存人数组中,应使用循环判断结构。循环语句用来遍历1一m之间的每个数,判断语句用来判断该数是否为素数,若不是素数,则将其存人数组中。这道题目是考查—个数是否为素数的简单延伸,只要掌握了判断素数的方法,问题便能顺利解决。【解题宝典】判定一个数是否为素数,即该数除了能被l和它本身外,不能被任何数整除。代码实现为:for(j=2;j<i;j++)if(i%j==0)/*如余数为0,证明i不是素数·/此语句需要熟记,很多判断素数的题目也可通过此法解决。

第6题:

请编写一个函数voidfun(chara[],charb[],intn),其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n中存放指定的下标。

例如,输入一个字符串:World,然后输入3。则调用该函数后的结果为:Word。

注意:部分源程序在文件PROGl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


正确答案:
解析:(1)该程序功能是删除一个字符串中指定下标的字符。它的解题思路,可以分解为以下两步:逐个判断字符串中的下标是否满足条件,满足条件的就放到题目要求的新串,否则就不放。
(2)从已给部分源程序的main主函数开始入手,核心函数“fun(str1,str2,n);”中的参数由题目可知,str1存放着原始字符串,str2存放删除了下标为n的字符的结果字符串,注意下标是从“0”开始的。

第7题:

假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串的前导*号不得多于n个;若多于n个,则删除多余的*号:若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。

例如,字符串中的内容为:******A*BC*DEF*G****,若n的值为4,删除后,字符串中的内容应当是:****A*BC*DEF*G****;若n的值为8,则字符串中的内容仍为;*******A*BC*DEF*G****。n的值在主函数中输入。

在编写函数时,不得使用C语言提供的字符串函数。

注意:部分源程序在文件PROGl.C文件中。

请勿改动主函数main和其他函数中的任何内容。仅在函数fun的花括号中填入你编写的若干语句。


正确答案:
解析:该程序功能是根据字符串前导的“*”号个数进行相关操作。解题过程首先确定字符串尾,然后由串头开始对字符进行判断,同时对“*”字符进行统计,如果大于n,就进行截取。

第8题:

假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。

例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****A*BC*DEF*G。在编写函数时,不得使用C语言提供的字符串函数。

注意:部分源程序在文件PROGl.C文件中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


正确答案:
解析:该程序功能是将字符串尾部的“*”号全部删除,前面和中间的“*”号不删除。本题的解题过程首先确定由串尾开始的第一个非“*”位置,将由头开始到此位置的字符拷贝到字符串。

第9题:

请编写函数fun(),它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。

例如,若输入字符串123412132,输入字符1,则输出3。

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

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include<coio.h>

include<stdio.h>

define M 81

int fun(char *ss,char c)

{

}

main()

{ char a[M],ch;

clrscr();

printf("\nPlease enter a string:");

gets(a);

printf("\nPlease enter a char:");

ch=getchar();

printf("\nThe number of the char is:%d \n",fun(a,ch));

}


正确答案:int fun(char *sschar c) { int i=0; for (;*ss!='\0';ss++) if(*ss==c) i++; /*求出ss所指字符串中指定字符的个数*/ return i; }
int fun(char *ss,char c) { int i=0; for (;*ss!='\0';ss++) if(*ss==c) i++; /*求出ss所指字符串中指定字符的个数*/ return i; } 解析:从字符串ss中找出子字符串的方法是:从第1个字符开始,对字符串进行遍历:若ss串的当前字符等于t串的第1个字符,两字符串的指针自动加1,继续比较下一个字符;若比较至字符串的结尾,则跳出循环;若“串的字符和c串的字符不对应相同,则继续对,s串的下一个字符进行处理。本程序是采用逐一比较的方式找出出现的次数。循环的作用是在串中从左到右逐一走动,if()的作用是进行判断是否相同,若与c相同则表示又出现一次.