




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
char * outstr = (char*)malloc(len*sizeof(char); #include7.输入一串字符,只包含”0-10和”,”找出其中最小的数字和最大的数字(可能不止一个),输出最后剩余数字个数。如输入 “3,3,4,5,6,7,7#include#include#includevoid main()char str100;printf(“输入一组字符串:n”);scanf(“%s”,&str);int len=strlen(str);int array100;int count=0;for(int i=0;i=0&stri=9)arraycount+=stri-0;arraycount=0;int result=count;int min=array0;int max=array0;for(int j=0;jcount;j+)if(maxarrayj)min=arrayj;for(int k=0;kcount;k+)if(arrayk=min)result;if(arrayk=max)result;printf(“%dn”,result);11.描述:10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下:(1) 及格线是10的倍数;(2) 保证至少有60%的学生及格;(3) 如果所有的学生都高于60分,则及格线为60分输入:输入10个整数,取值0100输出:输出及格线,10的倍数#includevoid bubblesort(int arr)int i,j,temp;for(i=0;i10;i+)for(j=0;jarrj+1;j+)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):n”);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(“及格为:%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 ,输出的字符串【返回】无#include#include#includevoid convert(char *input,char* output)if(input=NULL)return;char temp=0; int len_input=strlen(input);int i;int flag=0;for(i=0;ilen_input;i+)if(inputi!=temp)outputi=(inputi-a+1)%26+a;temp=inputi;flag=1;elseif(flag=1)outputi=(inputi-a+2)%26+a;temp=inputi;flag=0; else outputi=(inputi-a+1)%26+a;temp=inputi;flag=1; outputi=0;void main()char *input=”xyz”;char output256;/scanf(“%s”,input);convert(input,output);printf(“%sn”,output);15.在给定字符串中找出单词( “单词”由大写字母和小写字母字符构成,其他非字母字符视为单词的间隔,如空格、问号、数字等等;另外单个字母不算单词);找到单词后,按照长度进行降序排序,(排序时如果长度相同,则按出现的顺序进行排列),然后输出到一个新的字符串中;如果某个单词重复出现多次,则只输出一次;如果整个输入的字符串中没有找到单词,请输出空串。输出的单词之间使用一个”空格”隔开,最后一个单词后不加空格。要求实现函数:void my_word(charinput, char output)【输入】 char input, 输入的字符串【输出】 char output,输出的字符串【返回】无#include #include #include void my_word(char input,char output)char *p;char *temp; char *word10; int len_input=strlen(input);int i,j;char except = “,”;char *blank = ” “;i=0;for (i=0;ilen_input;i+)if (inputiZ&inputiz)inputi=,;j=0;/*保存取出的单词*/p= strtok(input,except);while(NULL!=p)wordj+=p;p= strtok(NULL,except);for(i=0;i5;i+)printf(“%s”,wordi);/*对单词按照长度降序排序,冒泡法*/for (i=0;i5;i+)for (j=1;j5-i;j+)if(strlen(wordj-1)strlen(wordj)temp=wordj;wordj=wordj-1;wordj-1=temp;/*删除相同单词*/for (i=0;i5;i+)for(j=i+1;j5;j+)if(strcmp(wordi,wordj)=0)wordj=”0;/*将单词连接起来输出*/for (j=0;j5;j+)if (0=j)strncpy(output,wordj,strlen(wordj)+1);elsestrcat(output,blank);strcat(output,wordj);return ;int main()char input =”some local buses, some1234123drivers”;printf(“筛选之前的字符串:%sn”,input);char output30;my_word(input,output);printf(“筛选之后的字符串:%s”,output);printf(“n”);return 0;输入m个字符串和一个整数n,把字符串M化成以N为单位的段,不足的位数用0补齐。如n=8m=9,123456789划分为:1234567890000000123化为:12300000#include#includeint main()char c200=0;scanf(“%s”,&c);int n,i,j;int len=strlen(c);scanf(“%d”,&n);for(i=1;i=len;i+)j=i%n;printf(“%c”,ci-1);if(j=0)printf(“n”);if(j!=0)for(i=j+1;i=n;i+)printf(“0);return 0;28.字符串首字母转换成大写举例:输入:this is a book返回:This Is A Book#include#include#includeint main()char input=”this is a book”;char output256=0;int i,len;len=strlen(input);printf(“变换前的字符串为:%sn”,input);for(i=0;ilen;i+)if(input0!= )input0-=32;if(inputi= )inputi+1-=32;outputi=inputi;printf(“变换后的字符串为:%sn”,output);29.子串分离题目描述: 通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。请编写一个程序,自动分离出各个子串,并使用,将其分隔,并且在最后也补充一个,并将子串存储。如果输入”abc def gh i d”,结果将是abc,def,gh,i,d,要求实现函数: void DivideString(const char *pInputStr, long lInputLen, char *pOutputStr);【输入】 pInputStr: 输入字符串 lInputLen: 输入字符串长度 【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;#include #include#include#includevoid DivideString(const char *pInputStr, long lInputLen, char *pOutputStr)int cnt;const char *p=pInputStr;while(*p!=NULL)if(*p!= ) cnt = 0;*pOutputStr+ = *p+;else cnt+;p+;if(cnt=1)*pOutputStr+ = ,;*pOutputStr+ = ,;*pOutputStr = 0;void main()char *str = “abc def gh i d”;long len = strlen(str);char *outstr = (char*)malloc(sizeof(str);/char outstr100;DivideString(str,len,outstr);printf(“%s”,outstr);printf(“n”); 华为2014校园招聘的机试题目 9月5日亲历 通过键盘输入一串小写字母(az)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则:1、仅压缩连续重复出现的字符。比如字符串”abcbc”由于无连续重复字符,压缩后的字符串还是”abcbc”。2、压缩字段的格式为”字符重复的次数+字符”。例如:字符串”xxxyyyyyyz”压缩后就成为”3x6yz”。要求实现函数:void stringZip(const char *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;char 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 1)pOutputStrj+ = last;pOutputStrj+ = 0 + count;elsepOutputStrj+ = last;for(i = 0;ib,b-c,y-z,z-a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换2次。例如:aa 转换为 bc,zz 转换为 ab;当连续相同字母超过两个时,第三个出现的字母按第一次出现算。要求实现函数:void convert(char *input,char* output)【输入】 char *input , 输入的字符串【输出】 char *output ,输出的字符串【返回】 无示例输入:char*input=abcd输出:char*output=bcde输入:char*input=abbbcd输出:char*output=bcdcdecpp view plaincopyprint?voidconvert(char*input,char*output)charc=0;inttag=0;intlen=strlen(input);for(inti=0;ilen;i+)if(inputi!=c)/当前字符与前一个字符不相等,则该字符+1 outputi=(inputi-a+1)%26+a;c=inputi;tag=1;elseif(tag=1)/当前字符与前一个字符相等,且前面只有一个字符相同 outputi=(inputi-a+2)%26+a;c=0;tag=0;else/当前字符与前一个字符相等,且前面已有2n个字符相同。则按第一次出现算 outputi=(inputi-a+1)%26+a;c=outputi;tag=1;void convert(char *input,char *output)char c=0;int tag=0;int len=strlen(input);for(int i=0;ilen;i+)if(inputi!=c)/当前字符与前一个字符不相等,则该字符+1outputi=(inputi-a+1)%26+a;c=inputi;tag=1;elseif(tag=1)/当前字符与前一个字符相等,且前面只有一个字符相同outputi=(inputi-a+2)%26+a;c=0;tag=0;else/当前字符与前一个字符相等,且前面已有2n个字符相同。则按第一次出现算outputi=(inputi-a+1)%26+a;c=outputi;tag=1; 问题:输入一个字符串,用指针求出字符串的长度。答案:#include int main()char str20, *p;int length=0;printf(“Please input a string: ”);gets(str);p=str;while(*p+)length+;printf(“The length of string is %dn”, length);return 0;问题:使用C语言实现字符串中子字符串的替换描述:编写一个字符串替换函数,如函数名为 StrReplace(char* strSrc, char* strFind, char* strReplace),strSrc为原字符串,strFind是待替换的字符串,strReplace为替换字符串。举个直观的例子吧,如:“ABCDEFGHIJKLMNOPQRSTUVWXYZ”这个字符串,把其中的“RST”替换为“ggg”这个字符串,结果就变成了:ABCDEFGHIJKLMNOPQgggUVWXYZ答案一:#include #include void StrReplace(char* strSrc, char* strFind, char* strReplace);#define M 100;void main()char s=”ABCDEFGHIJKLMNOPQRSTUVWXYZ”;char s1=”RST”;char s2=”ggg”;StrReplace(s,s1,s2);printf(“%sn”,s);return 0;void StrReplace(char* strSrc, char* strFind, char* strReplace)int i=0;int j;int n=strlen(strSrc);int k=strlen(strFind);for(i=0;iN;I+)if(*(strSrc+i)=*strFind)for(j=0;jK;J+)if(*(strSrc+i+j)=*(strFind+j)*(strSrc+i+j)=*(strReplace+j);else continue;问题:编写一个程序实现功能:将字符串”Computer Secience”赋给一个字符数组,然后从第一个字母开始间隔的输出该串,用指针完成。答案:#include #include int main()char str=”Computer Science”;int flag=1;char *p=str;while(*p)if ( flag )printf(“%c”,*p);flag = (flag + 1) % 2;p+;printf(“n”);return 0;问题:编写一个程序实现功能:将两个字符串合并为一个字符串并且输出,用指针实现。char str120=“Hello ”, str220=“World ”;答案:#include int main()char str120=“Hello ”, str220=“World ”;char *p=str1, *q=str2;while( *p ) p+;while( *q )*p = *q;p+;q+;*p = 0;printf(“%sn”, str1);return 0;问题:以下函数的功能是用递归的方法计算x的n阶勒让德多项式的值。已有调用语句p(n,x);编写函数实现功能。递归公式如下:答案:#include float p(int x,int n)float t,t1,t2;if(n= =0) return 1;else if(n= =1) return x;elset1=(2*n-1)*x*p(x,(n-1);t2=(n-1)*p(x,(n-2);t=(t1-t2)/n;return t;int main()int x,n;printf(“input two int (x and n):”);scanf(“%d%d”,&x,&n);printf(“%.2fn”,p(x,n);return 0;问题:给主函数传递参数实现echo功能:答案:#incldue int main(int argc,char *argv) int i=1;while( i =0&len2=0 ;len1,len2)if(array1len1-1=array2len2-1)count+;return count;int main()int result=0;int array1=1,3,5;int len1=3;int array2=77,12,1,3,5;int len2=5;result=array_compare( len1, array1, len2, array2);printf(“the result is %d”, result);手机号码合法性判断(20分)问题描述:我国大陆运营商的手机号码标准格式为:国家码+手机号码,例如:8613912345678。特点如下:1、 长度13位;2、 以86的国家码打头;3、 手机号码的每一位都是数字。请实现手机号码合法性判断的函数要求:1) 如果手机号码合法,返回0;2) 如果手机号码长度不合法,返回13) 如果手机号码中包含非数字的字符,返回2;4) 如果手机号码不是以86打头的,返回3;【注】除成功的情况外,以上其他合法性判断的优先级依次降低。也就是说,如果判断出长度不合法,直接返回1即可,不需要再做其他合法性判断。要求实现函数:int s int verifyMsisdn(char* inMsisdn)【输入】 char* inMsisdn,表示输入的手机号码字符串。【输出】 无【返回】 判断的结果,类型为int。示例输入: inMsisdn = “869123456789“输出: 无返回: 1输入: inMsisdn = “88139123456789“输出: 无返回: 3输入: inMsisdn = “86139123456789“输出: 无返回: 0答案:#include#include#include#include#define LENGTH 13int verifyMsisdn(char *inMsisdn)/char *pchar=NULL;assert(inMsisdn!=NULL);if(LENGTH=strlen(inMsisdn)if(8=*inMsisdn)&(*(inMsisdn+1)=6)while(*inMsisdn!=0)if(*inMsisdn=0)&(*inMsisdn=9)inMsisdn+;elsereturn 2 ;else return 3;else return 1;return 0;int main()char *pchar=NULL;unsigned char ichar=3;int result;switch(ichar)case 0:pchar=8612345363789;break;case 1:pchar=861111111111111;break;case 2:pchar=86s1234536366; break;case 3:pchar=1392222222222;break;default:break;result =verifyMsisdn(pchar);printf(result is %dn,result);return 0;问题:比较一个数组的元素 是否为回文数组答案:#include #include void huiwen(char str)int i,len,k=1;len=strlen(str);for(i=0;iif(stri!=strlen-i-1)k=1;break;if(k=0)printf(%s 不是一个回文数n,str);elseprintf(%s 是一个回文数n,str);main()char str100 = 0;int i;int len;printf(Input a string:); /*提示输入Input a string:*/scanf(%s, str); /*scan()函数输入一个字符串:*/huiwen(str);return 0;选秀节目打分,分为专家评委和大众评委,score 数组里面存储每个评委打的分数,judge_type 里存储与 score 数组对应的评委类别,judge_typei = 1,表示专家评委,judge_typei = 2,表示大众评委,n 表示评委总数。打分规则如下:专家评委和大众评委的分数先分别取一个平均分(平均分取整),然后,总分 = 专家评委平均分 * 0.6 + 大众评委 * 0.4,总分取整。如果没有大众评委,则 总分 = 专家评委平均分,总分取整。函数最终返回选手得分。函数接口 int cal_score(int score, int judge_type, int n)答案:#include iostreamusing namespace std;int cal_score(int score, int judge_type, int n)if(NULL=score|NULL=judge_type|0=n) return 0;int sum=0;int sum1=0,count1=0;int sum2=0,count2=0;for(int i=0;iN;I+)if (judge_typei=1)sum1=sum1+scorei;count1+;elsesum2=sum2+scorei;count2+;if(0=count2) sum=sum1/count1;else sum=(sum1/count1)*0.6+(sum2/count2)*0.4;return sum;void main()int score3=12,13,15;int judge_type3=1,1,2;printf(%dn,cal_score(score, judge_type, 3) );删除字符串中所有给定的子串问题描述:在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。要求实现函数: int delete_sub_str(const char *str, const char *sub_str, char *result_str)【输入】 str:输入的被操作字符串sub_str:需要查找并删除的特定子字符串 【输出】 result_str:在str字符串中删除所有 sub_str子字符串后的结果【返回】 删除的子字符串的个数答案:#include#includeint delete_sub_str(const char *str, const char *sub_str, char *result_str)int count=0;int k=0,j=0;int tem;int n=strlen(sub_str);while (strk!=0)tem=k;for(int i=0;idata = Value)if (pNode-front = NULL)pHeader = pNode-next;pHeader-front = NULL;elseif (pNode-next != NULL)pNode-next-front = pNode-front;pNode-front-next = pNode-next;Node *pNextNode = pNode-next;delete pNode;pNode = pNextNode;bRet = TRUE;/不要break或return, 删除所有elsepNode = pNode-next;return bRet;void DE(Node *pHeadA, Node *pHeadB)if (pHeadA = NULL | pHeadB = NULL)return;Node *pNode = pHeadA;while (pNode != NULL)if (DeteleNode(pHeadB, pNode-data)if (pNode-front = NULL)pHeadA = pNode-next;pHeadA-front = NULL;elsepNode-front-next = pNode-next;if (pNode-next != NULL)pNode-next-front = pNode-front;Node *pNextNode = pNode-next;delete pNode;pNode = pNextNode;elsepNode = pNode-next;2. 编程实现:找出两个字符串中最大公共子字符串,如”abccade”,”dgcadde”的最大子串为”cad”int GetCommon(char *s1, char *s2, char *r1, char *r2)int len1 = strlen(s1);int len2 = strlen(s2);int maxlen = 0;for(int i = 0; i len1; i+)for(int j = 0; j len2; j+)if(s1i = s2j)int as = i, bs = j, count = 1;while(as + 1 len1 & bs + 1 maxlen)maxlen = count;*r1 = s1 + i;*r2 = s2 + j;3. 编程实现:把十进制数(long型)分别以二进制和十六进制形式输出,不能使用printf系列库函数char* test3(long num) char* buffer = (char*)malloc(11);buffer0 = 0;buffer1 = x;buffer10 = 0;char* temp = buffer + 2;for (int i=0; i 8; i+) tempi = (char)(num28);tempi = tempi = 0 ? tempi : tempi + 16;tempi = tempi 10 ? tempi + 48
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字展览活动策划
- 评价反馈实施路径-洞察及研究
- 2025年 加盟连锁店合同2篇
- 法国冬青苗木零售合同2篇
- 服装代理商协议书4篇
- 标准合同食品委托加工合同2篇
- 2025年五年级学生劳动素养监测考核试题
- 部队军事课件封面设计
- 部队伙食费使用课件
- 部队两会前安全教育培训课件
- 2025年时事政治考试100题(附答案)
- 呼吸性碱中毒急诊护理
- 新人教版五年级上册小学数学教学计划+教学进度表
- 名著章节课件-《水浒传》第5回《小霸王醉入销金帐 花和尚大闹桃花村》情节梳理+人物形象+巩固试题
- 海口寰岛小升初数学试卷
- 村级妇联半年工作总结
- 托育园一日常规流程规范
- 收费员考试题库及答案
- 城市更新中装饰工程重点及难点措施
- 惠普尔养障体肺炎诊疗要点解析
- 棒针编织教学课件
评论
0/150
提交评论