1、for(int k=0;karrj+1;temp=arrj;arrj=arrj+1; arrj+1=temp;int GetPassLine(int a)bubblesort(a);if(a0=60)return 60;elsereturn (int)a4/10)*10);main()int a10=0;int result;printf(“请随机输入10个成绩(0-100):scanf(“%d%d%d%d%d%d%d%d%d%d”,&a0,&a1,&a2,&a3,&a4,&a5,&a6,&a7,&a8,&a9);printf(“n”);result=GetPassLine(a);printf
2、(“及格为:%dn”,result);return 1;14.字串转换问题描述:将输入的字符串(字符串仅包含小写字母a到z),按照如下规则,循环转换后输出:a-b,b-c,y-z,z-a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换2次。例如:aa 转换为 bc,zz 转换为 ab;当连续相同字母超过两个时,第三个出现的字母按第一次出现算。要求实现函数:void convert(char *input,char* output)【输入】 char *input , 输入的字符串【输出】 char *output ,输出的字符串【返回】无if(input=NULL)return;
3、char temp=0; int len_input=strlen(input);int i;int flag=0;len_input;if(inputi!=temp)outputi=(inputi-a+1)%26+a;temp=inputi;flag=1;if(flag=1)+2)%26+aflag=0; outputi=(inputi-aoutputi=0;char *input=”xyz”;char output256;/scanf(“%s”,input);convert(input,output);printf(“%sn”,output);15.在给定字符串中找出单词( “单词”由大写
4、字母和小写字母字符构成,其他非字母字符视为单词的间隔,如空格、问号、数字等等;另外单个字母不算单词);找到单词后,按照长度进行降序排序,(排序时如果长度相同,则按出现的顺序进行排列),然后输出到一个新的字符串中;如果某个单词重复出现多次,则只输出一次;如果整个输入的字符串中没有找到单词,请输出空串。输出的单词之间使用一个”空格”隔开,最后一个单词后不加空格。void my_word(charinput, char output)【输入】 char input, 输入的字符串【输出】 char output,输出的字符串#include void my_word(char input,char
5、output)char *p;char *temp; char *word10;int len_input=strlen(input);int i,j;char except = “,”;char *blank = ” “;i=0;for (i=0;if (inputiZinputiz)inputi=,j=0;/*保存取出的单词*/p= strtok(input,except);while(NULL!=p)wordj+=p;p= strtok(NULL,except);5;printf(“%s”,wordi);/*对单词按照长度降序排序,冒泡法*/for (j=1;5-i;if(strlen(
6、wordj-1)void DivideString(const char *pInputStr, long lInputLen, char *pOutputStr)int cnt;const char *p=pInputStr;while(*p!=NULL)if(*p! cnt = 0;*pOutputStr+ = *p+; cnt+;p+;if(cnt=1)*pOutputStr+ = ,;*pOutputStr = 0;char *str = “abc def gh i d”;long len = strlen(str);char *outstr = (char*)malloc(sizeo
7、f(str);/char outstr100;DivideString(str,len,outstr);printf(“%s”,outstr); 华为2014校园招聘的机试题目 9月5日亲历 通过键盘输入一串小写字母(az)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则:1、仅压缩连续重复出现的字符。比如字符串”abcbc”由于无连续重复字符,压缩后的字符串还是”abcbc”。2、压缩字段的格式为”字符重复的次数+字符”。字符串”xxxyyyyyyz”压缩后就成为”3x6yz”。void stringZip(const char *
8、pInputStr, long lInputLen, char *pOutputStr);输入pInputStr:输入字符串lInputLen:输入字符串长度输出 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;注意:只需要完成该函数功能算法,中间不需要有任何IO的输入输出示例“cccddecc” 输出:“3c2de2c”“adef” “adef”“pppppppp” 输出:“8p”void stringZip(const char *pInputStr, long lInputLen, char *pOutputStr)int i = lInputLen-1,j=0;c
9、har last = pInputStri,curr;int count = 1;for(i = i-1;i=0;i)curr = pInputStri;if(last = curr)count+;elsepOutputStrj+ = last;if(count1)pOutputStrj+ = 0+count;count = 1;last = curr;if(count pOutputStrj+ = 0 + count;for(i = 0;strlen(pOutputStr)/2;pOutputStri = pOutputStrstrlen(pOutputStr)-i-1 + pOutputS
10、tri;pOutputStrstrlen(pOutputStr)-i-1 = pOutputStri pOutputStrstrlen(pOutputStr)-i-1;pOutputStri = pOutputStri pOutputStrstrlen(pOutputStr)-i-1;华为2013校园招聘上机笔试题 1 字串转换将输入的字符串(字符串仅包含小写字母a到z),按照如下规则,循环转换后输出:char *input , 输入的字符串char *output ,输出的字符串【返回】 无char*input=abcdchar*output=bcdeabbbcdbcdcdecpp view
11、 plaincopyprint?voidconvert(char*input,char*output)charc=0inttag=0;for(inti+)=c)/当前字符与前一个字符不相等,则该字符+1 outputi=(inputi-a+1)%26+c=inputi;tag=1;elseif(tag=1)/当前字符与前一个字符相等,且前面只有一个字符相同 +2)%26+else/当前字符与前一个字符相等,且前面已有2n个字符相同。则按第一次出现算 c=outputi;void convert(char *input,char *output) char c= int tag=0; int l
12、en=strlen(input); for(int i=0; if(inputi!=c)/当前字符与前一个字符不相等,则该字符+1 outputi=(inputi- c=inputi; tag=1; else if(tag=1)/当前字符与前一个字符相等,且前面只有一个字符相同 outputi=(inputi- c= tag=0; else/当前字符与前一个字符相等,且前面已有2n个字符相同。则按第一次出现算 c=outputi; tag=1; 问题:输入一个字符串,用指针求出字符串的长度。答案:#include char str20, *p;int length=0;printf(“Plea
13、se input a string: ”);gets(str);p=str;while(*p+)length+;printf(“The length of string is %dn”, length);使用C语言实现字符串中子字符串的替换描述:编写一个字符串替换函数,如函数名为 StrReplace(char* strSrc, char* strFind, char* strReplace),strSrc为原字符串,strFind是待替换的字符串,strReplace为替换字符串。举个直观的例子吧,如:“ABCDEFGHIJKLMNOPQRSTUVWXYZ”这个字符串,把其中的“RST”替换
14、为“ggg”这个字符串,结果就变成了:ABCDEFGHIJKLMNOPQgggUVWXYZ答案一:void StrReplace(char* strSrc, char* strFind, char* strReplace);#define M 100;char s=”ABCDEFGHIJKLMNOPQRSTUVWXYZ”;char s1=”RST”;char s2=”ggg”;StrReplace(s,s1,s2);printf(“%sn”,s);void StrReplace(char* strSrc, char* strFind, char* strReplace)int i=0;int j;int n=strlen(strSrc);int k=strlen(strFind);N;I+)if(*(strSrc+i)=*strFind)K;J+
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1