版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、以前上機(jī)考試編程工具為C/C+:VC 6.0;Java:eclipse,這次改成C/C+: VS2005(或VC6.0) Java:JDK1.7。由于本人以前學(xué)C語(yǔ)言花了一些功夫,相對(duì)Java用得上手些,備考時(shí)用的是C+;臨考前一周接到通知,說(shuō)是要用VS2005,于是下個(gè)軟件再加上熟悉一下花了半天時(shí)間,手忙腳亂了一陣(建議最好用VS,畢竟有的程序在VC上能調(diào)通,在VS上可能運(yùn)行不通過(guò));2、以往的形式是給你個(gè)函數(shù)模塊,函數(shù)名已寫(xiě)好,你只要往里面填代碼就行了(華為提供的工程是將Main函數(shù)隱藏了的,所以自己不用再添加Main函數(shù))例如: 1. 從兩個(gè)數(shù)組的最后一個(gè)元素比較兩個(gè)數(shù)組中不同元素的個(gè)數(shù)
2、,如有array15=77,21,1,3,5, array23=1,3,5,從array14與array22比較開(kāi)始,到array12與array0比較結(jié)束。這樣得出它們不同的元素個(gè)數(shù)為0,若array16=77,21,1,3,5,7,那么他們不同的元素為3。函數(shù)原型為 int compare_array( int len1, int array1, int len2, int array2 );其中,len1與len2分別為數(shù)組array1和array2的長(zhǎng)度,函數(shù)返回值為兩個(gè)數(shù)組不同元素的個(gè)數(shù)。這次是隨你發(fā)揮,可以寫(xiě)子函數(shù),也可以只寫(xiě)個(gè)main函數(shù)(當(dāng)然main函數(shù)是必不可少的)。先在編譯
3、環(huán)境(即VS2005或JDK1.7)上運(yùn)行,調(diào)通后再?gòu)?fù)制到考試系統(tǒng)中,檢查無(wú)誤后,點(diǎn)擊提交(不過(guò)每道題最多只能傳五次);.3、以往滿(mǎn)分是100分,第一題20分,第二題30分,第三題50分,且前兩題為必做題,最后一題作為附加題;現(xiàn)在是滿(mǎn)分320(有點(diǎn)像英語(yǔ)四六級(jí)改革一樣,100分改成710分),第一題60分,第二題100分,第三題160分,且不分什么必做題、附加題,建議拿到題目后最好把題目都瀏覽一遍,不一定按順序做,盡會(huì)做的先做;有幾點(diǎn)需要特別注意:1、一定要按標(biāo)準(zhǔn)輸入、輸出來(lái)編程,且按照考試系統(tǒng)中規(guī)定的格式,否則即使從頭到尾寫(xiě)的都對(duì),系統(tǒng)將顯示格式錯(cuò)誤,無(wú)法得分;2、最好多試幾組測(cè)試條例,否則
4、得不全分(本人已經(jīng)犯過(guò)此類(lèi)失誤,希望后人不要重蹈覆轍);3、不要寫(xiě)任何程序提示語(yǔ)句(包括自己人為添加的換行命令),否則該題自動(dòng)判0分;此外,考試時(shí)有不清楚的就問(wèn)在場(chǎng)的工作人員,不要一個(gè)人憋在那里不吭聲,浪費(fèi)的是自己寶貴的時(shí)間;個(gè)人覺(jué)得華為的員工還是挺熱心的,我問(wèn)了不少問(wèn)題,他們都跟我詳細(xì)解答的,在此感謝他們的熱忱相助。1、刪除子串刪除子串只要是原串中有相同的子串就刪掉,不管有多少個(gè),返回子串個(gè)數(shù)。自己編的:#include #include #include int del_sub_str ( char *str, char *sub_str,char *result );int main (
5、void) int count;char result100;char str100;char sub_str100;printf(Please insert your strings!n);gets(str);printf(Please insert your sub_strings!n);gets(sub_str); count=del_sub_str(str,sub_str,result);printf(The deleted strings are:n);puts(result);printf(The num is:%dn,count);return 0;int del_sub_str
6、 ( char *str, char *sub_str,char *result )int n;int count=0;char *p=str,*q=sub_str,*r=result;n=strlen(q);while(*p!=0 )if(strncmp(p,q,n)=0)count+;p+=n;else *r=*p;r+;p+;*r=0;return count;約瑟夫環(huán)約瑟夫環(huán)是一個(gè)數(shù)學(xué)的應(yīng)用問(wèn)題:已知n個(gè)人(以編號(hào)1,2,3.n分別表示)圍坐在一張圓桌周?chē)木幪?hào)為k的人開(kāi)始報(bào)數(shù),數(shù)到m的那個(gè)人出列;他的下一個(gè)人又從1開(kāi)始報(bào)數(shù),數(shù)到m的那個(gè)人又出列;依此規(guī)律重復(fù)下去,直到圓桌周?chē)娜巳?/p>
7、部出列。#include#includetypedef struct Node/ 聲明新的類(lèi)型名(struct)來(lái)代替原有的類(lèi)型名(Node)int num;struct Node *next;LinkList;LinkList *creat(int n)LinkList *p,*q,*head; /定義了三個(gè)結(jié)構(gòu)體int i=1; p=(LinkList *)malloc(sizeof(LinkList); p-num=i;head=p;for(i=2;inum=i;p-next=q; p=q; p-next=head; /*使鏈表尾指向鏈表頭形成循環(huán)鏈表*/return head;void
8、 fun(LinkList *L,int k,int m)int i;LinkList *p,*s,*q;p=L;printf(出列順序?yàn)?);for(i=1;inext;while(p-next!=p)for(i=1;inext;printf(%5d,p-num); s=p;q-next=p-next;p=p-next;free(s);printf(%5dn,p-num);int main()LinkList *L;int n, m,k;n=9;m=5;k=2;L=creat(n);fun(L,k,m);return 0;4、數(shù)組&回文數(shù)組#include #include void hui
9、wen(char str)int i,len,k=1;len=strlen(str);for(i=0;ilen/2;i+)if(stri!=strlen-i-1) /str一般結(jié)尾處有0,所以需要-1k=0;break;if(k=0) printf(%s 不是一個(gè)回文數(shù)n,str);elseprintf(%s 是一個(gè)回文數(shù)n,str);void main() char str100 = 0; printf(Input a string:n); /*提示輸入Input a string:*/scanf(%s, str); /*scan()函數(shù)輸入一個(gè)字符串:*/huiwen(str);5.數(shù)組比
10、較 問(wèn)題描述:比較兩個(gè)數(shù)組,要求從數(shù)組最后一個(gè)元素開(kāi)始逐個(gè)元素向前比較,如果2個(gè)數(shù)組長(zhǎng)度不等,則只比較較短長(zhǎng)度數(shù)組個(gè)數(shù)元素。請(qǐng)編程實(shí)現(xiàn)上述比較,并返回比較中發(fā)現(xiàn)的不相等元素的個(gè)數(shù)比如:數(shù)組1,3,5和數(shù)組77,21,1,3,5按題述要求比較,不相等元素個(gè)數(shù)為0數(shù)組1,3,5和數(shù)組77,21,1,3,5,7按題述要求比較,不相等元素個(gè)數(shù)為3 要求實(shí)現(xiàn)函數(shù):intarray_compare(intlen1,intarray1,intlen2,intarray2)【輸入】 intlen1:輸入被比較數(shù)組1的元素個(gè)數(shù);intarray1:輸入被比較數(shù)組1;intlen2:輸入被比較數(shù)組2的元素個(gè)數(shù);i
11、ntarray2:輸入被比較數(shù)組2;【輸出】 無(wú)【返回】 不相等元素的個(gè)數(shù),類(lèi)型為int 示例1) 輸入:intarray1=1,3,5,intlen1=3,intarray2=77,21,1,3,5,intlen2=5函數(shù)返回:02) 輸入:intarray1=1,3,5,intlen1=3,intarray2=77,21,1,3,5,7,intlen2=6函數(shù)返回:#include#include#includeint array_compare(int len1, int array1, int len2, int array2)int count=0;for( ;len1=0&len2
12、=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); /result=array_compare( len1, array1, len2, array2);不能這樣 / 函數(shù)形參中永遠(yuǎn)只是傳得首地址,不能傳數(shù)組 切記切記!printf(the resu
13、lt is %d, result);6、手機(jī)號(hào)碼合法性判斷(20分)問(wèn)題描述:我國(guó)大陸運(yùn)營(yíng)商的手機(jī)號(hào)碼標(biāo)準(zhǔn)格式為:國(guó)家碼+手機(jī)號(hào)碼,例如:8613912345678。特點(diǎn)如下:1、 長(zhǎng)度13位;2、 以86的國(guó)家碼打頭;3、 手機(jī)號(hào)碼的每一位都是數(shù)字。請(qǐng)實(shí)現(xiàn)手機(jī)號(hào)碼合法性判斷的函數(shù)要求:1) 如果手機(jī)號(hào)碼合法,返回0;2) 如果手機(jī)號(hào)碼長(zhǎng)度不合法,返回13) 如果手機(jī)號(hào)碼中包含非數(shù)字的字符,返回2;4) 如果手機(jī)號(hào)碼不是以86打頭的,返回3;【注】除成功的情況外,以上其他合法性判斷的優(yōu)先級(jí)依次降低。也就是說(shuō),如果判斷出長(zhǎng)度不合法,直接返回1即可,不需要再做其他合法性判斷。要求實(shí)現(xiàn)函數(shù):int
14、verifyMsisdn(char* inMsisdn)【輸入】 char* inMsisdn,表示輸入的手機(jī)號(hào)碼字符串。【輸出】 無(wú)【返回】 判斷的結(jié)果,類(lèi)型為int。示例輸入: inMsisdn = “869123456789“輸出: 無(wú)返回: 1輸入: inMsisdn = “88139123456789“輸出: 無(wú)返回: 3輸入: inMsisdn = “86139123456789“輸出: 無(wú)返回: 0#include#include#include#include#define LENGTH 13int verifyMsisdn(char *inMsisdn)char *pchar
15、=NULL;assert(inMsisdn!=NULL);if(LENGTH=strlen(inMsisdn)if(8=*inMsisdn)&(*(inMsisdn+1)=6)while(*inMsisdn!=0)if(*inMsisdn=0)&(*inMsisdn=9) /判斷字符串全為數(shù)字inMsisdn+;elsereturn 2 ; /return 會(huì)跳出被調(diào)用函數(shù)elsereturn 3;elsereturn 1;return 0;int main()char *pchar=NULL;unsigned char ichar=0;int result;switch(ichar)case
16、 0:pchar=8612345363789;break;case 1:pchar=861111111111111;break;case 2:pchar=86s1234536366; break;default: break;result =verifyMsisdn(pchar);printf(result is %dn,result);7、合并字符串(指針)說(shuō)明:編寫(xiě)一個(gè)程序?qū)崿F(xiàn)功能:將兩個(gè)字符串合并為一個(gè)字符串并且輸出,用指針實(shí)現(xiàn)。char str120=“Hello ”, str220=“World ”;答案:#include int main()char str120=“Hello ”
17、, str220=“World ”;char *p=str1, *q=str2;while( *p ) p+;while( *q ) *p = *q;p+;q+; *p = 0;printf(“%sn”, str1);return 0;8、選秀節(jié)目打分分為專(zhuān)家評(píng)委和大眾評(píng)委,score 數(shù)組里面存儲(chǔ)每個(gè)評(píng)委打的分?jǐn)?shù),judge_type 里存儲(chǔ)與 score 數(shù)組對(duì)應(yīng)的評(píng)委類(lèi)別,judge_typei = 1,表示專(zhuān)家評(píng)委,judge_typei = 2,表示大眾評(píng)委,n表示評(píng)委總數(shù)。打分規(guī)則如下:專(zhuān)家評(píng)委和大眾評(píng)委的分?jǐn)?shù)先分別取一個(gè)平均分(平均分取整),然后,總分 = 專(zhuān)家評(píng)委平均分*0.6
18、 + 大眾評(píng)委 * 0.4,總分取整。如果沒(méi)有大眾評(píng)委,則 總分 = 專(zhuān)家評(píng)委平均分,總分取整。函數(shù)最終返回選手得分。函數(shù)接口 int cal_score(int score, int judge_type, int n)#include#include#include#include#define N 5int cal_score(int score, int judge_type, int n) int expert=0;int dazhong=0;int zongfen=0;int i;int number=0;for(i=0;iN;i+)if(judge_typei=1)expert=
19、expert+scorei;number+;else dazhong=dazhong+scorei;if(number=N)zongfen=(int)(expert/N);elseexpert=(int)(expert/number);dazhong=(int)(dazhong/(N-number);zongfen=int(0.6*expert+0.4*dazhong);return zongfen;int main()int scoreN;int judge_typeN;int numberlast=0;int i;printf(please input the %d score:n,N);
20、for(i=0;iN;i+)scanf(%d,&scorei);printf(please input the level(1:expert,2:dazhong)n);for(i=0;iN;i+)scanf(%d,&judge_typei);numberlast=cal_score(score,judge_type,N);printf(the last score is %dn,numberlast);return 0;9、數(shù)組排序如果數(shù)組長(zhǎng)度n為奇數(shù),則將數(shù)組中最大的元素放到 output 數(shù)組最中間的位置,如果數(shù)組長(zhǎng)度n為偶數(shù),則將數(shù)組中最大的元素放到 output 數(shù)組中間兩個(gè)位置偏右的
21、那個(gè)位置上,然后再按從大到小的順序,依次在第一個(gè)位置的兩邊,按照一左一右的順序,依次存放剩下的數(shù)。 例如:input = 3, 6, 1, 9, 7 output = 3, 7, 9, 6, 1;input = 3, 6, 1, 9, 7, 8 output =1, 6, 8, 9, 7, 3#include#include#includevoid sort(int input, int n, int output)int i,j;int k=1;int temp;int med;for(i=0;in-1;i+) /冒泡排序法for(j=0;jinputj+1)temp=inputj;inpu
22、tj=inputj+1;inputj+1=temp;if(n%2!=0)for(i=0;in;i+)printf(%2d,inputi);printf(n);med=(n-1)/2; /數(shù)列是從0開(kāi)始計(jì)數(shù)的,所以不是(n+1)/2outputmed=inputn-1; /數(shù)列是從0開(kāi)始計(jì)數(shù)的for(i=1;i=med;i+)outputmed-i=inputn-1-k;outputmed+i=inputn-2-k;k=k+2;elsefor(i=0;in;i+)printf(%2d,inputi);printf(n);med=n/2;outputmed=inputn-1;for(i=1;i=m
23、ed-1;i+)outputmed-i=inputn-1-k;outputmed+i=inputn-2-k;k=k+2;output0=input0;for(i=0;in;i+)printf(%2d,outputi);printf(n);int main()int a6=3,6,1,9,7,8;int b6=0;for(int i=0;i6;i+)printf(%2d,ai);printf(n);sort(a,6,b);return 0;10、子字符串的替換(C語(yǔ)言)描述:編寫(xiě)一個(gè)字符串替換函數(shù),如函數(shù)名為 StrReplace(char* strSrc, char* strFind, cha
24、r* strReplace),strSrc為原字符串,strFind是待替換的字符串,strReplace為替換字符串。舉個(gè)直觀的例子吧,如:“ABCDEFGHIJKLMNOPQRSTUVWXYZ”這個(gè)字符串,把其中的“RST”替換為“ggg”這個(gè)字符串,結(jié)果就變成了:ABCDEFGHIJKLMNOPQgggUVWXYZ#include #include void str_replace(char *str_src,char *str_find,char *str_rpl);int main ()char str100=safasfgsdgvnaksf;char str_find=asf;ch
25、ar str_rpl=liuqh;str_replace(str,str_find,str_rpl);/puts(str);return 0;void str_replace(char *str_src,char *str_find,char *str_rpl)char temp100;int n=strlen(str_find);char *p;p=str_rpl;char *q=temp;while(*str_src)if(strncmp(str_src,str_find,n)=0)while(*p)*q=*p;q+;p+;p=str_rpl;str_src+=n-1;else*q=*st
26、r_src; q+;str_src+;*q=0;puts(temp);strcpy(str_src,temp); 求均分,去最高(低)分算分?jǐn)?shù)的問(wèn)題,去掉一個(gè)最高分一個(gè)最低分,求平均分#include floatavescore(floatscore,intn)floatmin=0;floatmax=0;intminindex=0;intmaxindex=0;floatsum=0;min=score0;for(inti=0;in;i+)if(scoreimin)min=scorei;minindex=i;scoreminindex=0; /最小值賦0值max=score0;for(i=0;im
27、ax)max=scorei;maxindex=i;scoremaxindex=0;/最大值賦0值for(i=0;in;i+)sum+=scorei;sum=sum/(n-2);returnsum;voidmain()floatscore6=70,80,90,98,87,86;floatlastscore;lastscore=avescore(score,6);printf(thelastscoreis:%5.2fn,lastscore);運(yùn)行結(jié)果:the last score is :85.75字符串處理問(wèn)題描述:把一個(gè)字符串中的除大寫(xiě)字母、小寫(xiě)字母和數(shù)字字符之外的其他字符都去掉,輸出新字符串
28、。要求實(shí)現(xiàn)函數(shù): void my_string(char* input, char* output)#includevoid my_string(char* input,char*output);void main ()char str_in100;char str_out100;printf(Please insert your strings:n);gets(str_in);my_string(str_in,str_out);printf(The deleted strings are:n);puts(str_out); void my_string(char* input,char*ou
29、tput)while(*input)if(*input=a)|(*input=A)|(*input=0)*output=*input; output+;input+;*output=0;從兩個(gè)數(shù)組的最后一個(gè)元素比較兩個(gè)數(shù)組中不同元素的個(gè)數(shù),如有array15=77,21,1,3,5, array23=1,3,5,從array14與array22比較開(kāi)始,到array12與array0比較結(jié)束。這樣得出它們不同的元素個(gè)數(shù)為0,若array16=77,21,1,3,5,7,那么他們不同的元素為3。函數(shù)原型為 int compare_array( int len1, int array1, int
30、len2, int array2 );其中,len1與len2分別為數(shù)組array1和array2的長(zhǎng)度,函數(shù)返回值為兩個(gè)數(shù)組不同元素的個(gè)數(shù)。#includeint compare_array(int len1,int array1,int len2,int array2)int i,t,small,num=0;/把兩數(shù)組倒置for(i=0;ilen1/2;i+)t=array1i;array1i=array1len1-i-1;array1len1-i-1=t;for(i=0;ilen2/2;i+)t=array2i;array2i=array2len2-i-1;array2len2-i-1=
31、t;/輸出倒置后的兩數(shù)組/*for(i=0;ilen1;i+)printf(%d ,array1i);printf(n);for(i=0;ilen2)small=len2;elsesmall=len1;num=small;for(i=0;ismall;i+)if(array1i=array2i)num-;printf(num=%dn,num);return num;void main()int array15=77,21,1,3,5,array23=1,3,5;int len1=5,len2=3;compare_array(len1,array1,len2,array2);17、編寫(xiě)一個(gè)程序?qū)?/p>
32、現(xiàn)功能:將兩個(gè)字符串合并為一個(gè)字符串并且輸出,用指針實(shí)現(xiàn)。 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;操作系統(tǒng)任務(wù)調(diào)度問(wèn)題。操作系統(tǒng)任務(wù)分為系統(tǒng)任務(wù)和用戶(hù)任務(wù)兩種。其中,系統(tǒng)任務(wù)的優(yōu)先級(jí) = 50且 = 255。優(yōu)先級(jí)大于255的
33、為非法任務(wù),應(yīng)予以剔除?,F(xiàn)有一任務(wù)隊(duì)列task,長(zhǎng)度為n,task中的元素值表示任務(wù)的優(yōu)先級(jí),數(shù)值越小,優(yōu)先級(jí)越高。函數(shù)scheduler實(shí)現(xiàn)如下功能,將task 中的任務(wù)按照系統(tǒng)任務(wù)、用戶(hù)任務(wù)依次存放到 system_task 數(shù)組和 user_task 數(shù)組中(數(shù)組中元素的值是任務(wù)在task 數(shù)組中的下標(biāo)),并且優(yōu)先級(jí)高的任務(wù)排在前面,數(shù)組元素為-1表示結(jié)束。 例如:task = 0, 30, 155, 1, 80, 300, 170, 40, 99 system_task = 0, 3, 1, 7, -1 user_task = 4, 8, 2, 6, -1#include #inclu
34、de #include #include voidscheduler1(inttask,intn,intsystem_task,intuser_task)inti;intj=0;int*p,*pp,*p_user,*pp_user;intindex=0;intcount,count2;intmin=0;intk=0;p=(int*)malloc(sizeof(int)*n);for(i=0;in;i+)pi=0;pp=(int*)malloc(sizeof(int)*n);for(i=0;in;i+)ppi=0;p_user=(int*)malloc(sizeof(int)*n);for(i=
35、0;in;i+)p_useri=0;pp_user=(int*)malloc(sizeof(int)*n);for(i=0;in;i+)pp_useri=0;for(i=0;in;i+)if(taski50)system_taskj=taski;ppj=i;j+;count=j;elseif(taski=255)user_taskk=taski;pp_userk=i;k+;count2=k;elsetaski=taski;for(i=0;icount;i+)printf(%3d,system_taski);printf(n);for(i=0;icount;i+)min=system_task0
36、;for(j=1;jcount;j+)if(system_taskjmin)min=system_taskj;pi=j;system_taskpi=51;ppcount=-1;for(i=0;icount;i+)printf(%3d,pppi);printf(%3dn,ppcount);/*/for(i=0;icount2;i+)printf(%4d,user_taski);printf(n);for(i=0;icount2;i+)min=user_task0;for(j=1;jcount2;j+)if(user_taskjmin)min=user_taskj;p_useri=j;user_t
37、askp_useri=256;pp_usercount2=-1;for(i=0;icount2;i+)printf(%4d,pp_userp_useri);printf(%3dn,pp_usercount2);intmain()inttask9=0,30,155,1,80,300,170,40,99;intsystem_task9=0;intuser_task9=0;scheduler1(task,9,system_task,user_task);return0;求一個(gè)正整數(shù)X的平方根Y,要求y在1到1000以?xún)?nèi)#includedouble JD=1.0E-13;double mysqrt(d
38、ouble x)if(xJD|(s*s-x)JD)q=s;s=p+(s-p)/2;elsep=s;s=s+(q-p)/2;return s;int main ()int a;printf(your num:n);scanf(%d,&a);printf(sqrt(%d)=%lfn,a,mysqrt(a);return 0;擲骰子游戲在擲骰子游戲中,會(huì)根據(jù)所擲數(shù)字在地圖中前進(jìn)幾步,前進(jìn)完成后需要根據(jù)當(dāng)前地圖位置所示的障礙進(jìn)行相應(yīng)操作,其中障礙表示:9:無(wú)障礙1:停擲一輪,即下輪所擲數(shù)字無(wú)效;2:后退兩步,如果已經(jīng)到起點(diǎn)不再后退;3:獎(jiǎng)勵(lì)前進(jìn)一步如果在游戲過(guò)程中,已經(jīng)走到地圖終點(diǎn),則游戲結(jié)束。根據(jù)輸
39、入的地圖數(shù)組,和5個(gè)骰子數(shù)的數(shù)組,返回最終玩家前進(jìn)了多少步。要求實(shí)現(xiàn)函數(shù): void dice(int map_len, int* map, int* dice_val, int* output)【輸入】 int map_len,地圖數(shù)組的長(zhǎng)度 int* map,地圖數(shù)組,值表示障礙int* dice_val,5個(gè)骰子數(shù)的數(shù)組【輸出】 int *output,玩家共前進(jìn)了多少步【返回】 無(wú)注:玩家是從起始位置開(kāi)始,即地圖數(shù)組的第一位,骰子數(shù)只能是16示例 輸入:map_len = 15, map = 9,1,9,9,9,2,9,9,9,9,9,9,9,9,9,dice_val = 1,2,1,
40、3,1,返回:4輸入:map_len = 16, map = 9,9,9,9,9,1,9,3,9,9,2,9,9,9,9,9,dice_val = 2,1,4,1,6,返回:15#include void dice(int map_len, int* map, int* dice_val, int* output);int main(void)int map_len = 15, map = 9,1,9,9,9,2,9,9,9,9,9,9,9,9,9, dice_val = 1,2,1,3,1;/4int a=0 , * output=&a;dice(map_len, map, dice_val
41、, output);int map_len1 = 16, map1 = 9,9,9,9,9,1,9,3,9,9,2,9,9,9,9,9, dice_val1 = 2,1,4,1,6;/15int a1=0 , * output1=&a1;dice(map_len1, map1, dice_val1, output1);return 0;void dice(int map_len, int* map, int* dice_val, int* output)int step=0, i;for(i=0; i=map_len - 1)*output = map_len - 1;step = map_l
42、en - 1;break;else if(mapstep = 1)i+;else if(mapstep = 2)if(step1) step = step - 2;elsestep = 0;else if(mapstep = 3)step+;*output = step;printf(the output is %dn,*output);輸入一個(gè)字符串,將其中大寫(xiě)字母轉(zhuǎn)換為對(duì)應(yīng)小寫(xiě)字母之后的第五個(gè)字母,若原始大寫(xiě)字母為VZ, 則轉(zhuǎn)換為對(duì)應(yīng)小寫(xiě)字母的值減21。其他字符不變,輸出轉(zhuǎn)換后的字符串。例如,對(duì)于字母A,則轉(zhuǎn)換為小寫(xiě)字母f;若形參是字母W,則轉(zhuǎn)換為小寫(xiě)字母b要求實(shí)現(xiàn)函數(shù): void Tra
43、nsferString(const char * pInputStr, long lInputLen, char * pOutputStr);【輸入】 pInputStr: 輸入字符串 lInputLen: 輸入字符串長(zhǎng)度 【輸出】 pOutputStr: 輸出字符串,空間已經(jīng)開(kāi)辟好,與輸入字符串等長(zhǎng);【注意】只需要完成該函數(shù)功能算法,中間不需要有任何IO的輸入輸出示例 輸入:“Axs3mWss”輸出:“fxs3mbss”/*#include #include void TransferString(const char * pInputStr, long lInputLen, char *
44、pOutputStr);int main(void) char * pInputStr = Axs3mWss; long lInputLen = 8; char * pOutputStr; pOutputStr = (char *)malloc(8+1); TransferString(pInputStr, lInputLen, pOutputStr); printf(%sn,pOutputStr); return 0;*/void TransferString(const char * pInputStr, long lInputLen, char * pOutputStr) for(int
45、 i = 0; i =A) & (pInputStri =V) & (pInputStri =Z) ) pOutputStri = pInputStri + 32 - 21; /已經(jīng)超過(guò)小寫(xiě)字母邊界,溢出后需減掉(26-偏移量)、/的數(shù)值,以至于全顯示的是字母。 else pOutputStri = pInputStri; pOutputStri = 0;將一個(gè)字符串的元音字母復(fù)制到另一個(gè)字符串,并排序(30分)問(wèn)題描述:有一字符串,里面可能包含英文字母(大寫(xiě)、小寫(xiě))、數(shù)字、特殊字符,現(xiàn)在需要實(shí)現(xiàn)一函數(shù),將此字符串中的元音字母挑選出來(lái),存入另一個(gè)字符串中,并對(duì)字符串中的字母進(jìn)行從小到大的排序(
46、小寫(xiě)的元音字母在前,大寫(xiě)的元音字母在后,依次有序)。說(shuō)明:1、 元音字母是a,e,i,o,u,A,E,I,O,U。2、 篩選出來(lái)的元音字母,不需要剔重;最終輸出的字符串,小寫(xiě)元音字母排在前面,大寫(xiě)元音字母排在后面,依次有序。要求實(shí)現(xiàn)函數(shù):void sortVowel (char* input, char* output);【輸入】 char* input,表示輸入的字符串【輸出】 char* output,排好序之后的元音字符串?!痉祷亍?無(wú)示例 : 輸入:char *input = “Abort!May Be Some Errors In Out System.“ 輸出:char *outp
47、ut =“aeeeooAEIO “#include void sortVowel (char* input, char* output);int main(void) /char *input = Abort!May Be Some Errors In Out System.;/不能改變字符串字面量,所以不能是聲明指針指向的字符串應(yīng)該是字符數(shù)組才可以。 char input = Abort!May Be Some Errors In Out System.;/AEOIUBBBvvvaeiuo;char output500 ; sortVowel (input, output);return 0
48、;void sortVowel (char* input, char* output) int i=0,j=0,k=0; int numlong; char temp; while(* (input+i)!=0) if(*(input+i)=a|*(input+i)=e|*(input+i)=i| *(input+i)=o|*(input+i)=u|*(input+i)=A| *(input+i)=E|*(input+i)=I|*(input+i)=O| *(input+i)=U) *(output+j+)=*(input+i); i+; outputj = 0; numlong=j; for
49、(i=1;ij;i+) for(k=0;k*(output+k+1) temp=*(output+k); *(output+k)=*(output+k+1); *(output+k+1)=temp; /到這里 輸出是AEIOaeeeooou for(i=0,k=0;i=A&*(output+k)=Z) k+; /k是大寫(xiě)字母的個(gè)數(shù) for(i=0;ik;i+) *(output+numlong+i)= *(output+i);/到這里輸出是AEIOaeeeooouAEIO for(i=0;inumlong;i+) *(output+i)=*(output+i+k);/這是把后12個(gè)字母復(fù)制給前
50、12個(gè)字母。 *(output+numlong)=0;/把字符串結(jié)束符號(hào)放在原來(lái)的長(zhǎng)度后面 printf(%sn,output);單詞統(tǒng)計(jì)題目描述: 輸入一段英文文本,用程序統(tǒng)計(jì)出現(xiàn)頻率最高和最低的兩個(gè)單詞;英文文本中僅出現(xiàn)這四類(lèi)字符:空格( )、英文逗號(hào)(,)、英文句號(hào)(.)、英文大小寫(xiě)字母(a-z、A-Z)單詞之間的分隔符僅考慮這三種:空格( )、英文逗號(hào)(,)、英文句號(hào)(.);僅大小寫(xiě)不同的單詞算同一個(gè)單詞;如果兩個(gè)單詞出現(xiàn)次數(shù)相同,則在文本中首次出現(xiàn)的單詞優(yōu)先返回。返回的單詞統(tǒng)一用小寫(xiě)字母返回例如:輸入字符串“Hello world, i said hello world to the
51、 world”,返回“world”,“i”輸入字符串“Somebody like somebody,i do not like it”,返回“somebody”,“i”要求實(shí)現(xiàn)函數(shù): void WordStat(const char * pInputStr, char * pOutputHotWord, char * pOutputColdWord);【輸入】 pInputStr: 輸入字符串,指向一段英文文本【輸出】 pOutputHotWord: 輸出字符串,返回出現(xiàn)次數(shù)最多的單詞,該指針?biāo)复鎯?chǔ)空間已經(jīng)分配好,且足夠大 pOutputColdWord:輸出字符串,返回出現(xiàn)次數(shù)最少的單詞,
52、該指針?biāo)复鎯?chǔ)空間已經(jīng)分配好,且足夠大【注意】只需要完成該函數(shù)功能算法,中間不需要有任何IO的輸入輸出示例 輸入:“Hello world, i said hello world to the world”#include#include#define WORD_MAX 100 /最大單詞書(shū)#define LETTER_MAX 500/最大字符數(shù)#define WORD_LETTER_MAX 20/一個(gè)單詞的最大字符數(shù)void WordStat(const char * pInputStr, char * pOutputHotWord, char * pOutputColdWord)int i
53、, j, k;char pLETTER_MAX;for(i = 0; pInputStri !=0; i+) if( (pInputStri=A) & (pInputStri=Z) )/大寫(xiě)字母換小寫(xiě),因?yàn)椴粎^(qū)分單詞大小,所以全變成小寫(xiě)便于統(tǒng)計(jì) pi = pInputStri + 32; else if( (pInputStri = ,) | (pInputStri = .) ) /使分隔符只有空格 pi = ;else pi = pInputStri;pi = 0;/printf(%sn,p); /驗(yàn)證p是否為大寫(xiě)變小寫(xiě)并且標(biāo)點(diǎn)變空格后的數(shù)組char aWORD_MAXWORD_LETTER
54、_MAX;/字符數(shù)組*a100不可以,因?yàn)槲炊x指針a0指向哪里就給指向的地方賦值了。i = 0;for(j = 0; pi != 0; j+) for(k = 0; (pi != ) & (pi != 0); i+, k+) ajk = pi;ajk = 0; if(pi != 0) /英文文本中默認(rèn)兩個(gè)單詞件至多有一個(gè)分隔符,所以?xún)?nèi)循環(huán)結(jié)束時(shí)遇到了空格; i+;/指針數(shù)組的每一個(gè)元素指向一個(gè)單詞 /printf(%sn,a7); /驗(yàn)證每個(gè)單詞是否對(duì)應(yīng)存到二維數(shù)組的每個(gè)行中。/printf(%dn,j); /驗(yàn)證j是否為單詞的個(gè)數(shù) int num = 0, max = 0, min = W
55、ORD_MAX;for(int m = 0; m j; m+) if(am0 = 0)continue;/如果有兩個(gè)或者更多的空格的時(shí)候 二維數(shù)組的某一行可能只有0一個(gè)元素,要跳過(guò)這種情況for(int n = 0; n max) max = num; strcpy(pOutputHotWord, am); /復(fù)制時(shí)會(huì)自動(dòng)加0 /pOutputHotWord = am;為什么這樣不可以?只有在子函數(shù)里可以打印出正確結(jié)果,在main函數(shù)里不能打印出正確結(jié)果。 if(num min) min = num; strcpy(pOutputColdWord, am); num = 0;int main(
56、void)char p = Hello world , i said hello world to the world;/char p = Somebody like somebody, i do not like it; char aWORD_LETTER_MAX;char bWORD_LETTER_MAX;WordStat(p, a, b);printf(%sn,a);printf(%sn,b);return 0;題目描述: 通過(guò)鍵盤(pán)輸入任意一個(gè)字符串序列,字符串可能包含多個(gè)子串,子串以空格分隔。請(qǐng)編寫(xiě)一個(gè)程序,自動(dòng)分離出各個(gè)子串,并使用,將其分隔,并且在最后也補(bǔ)充一個(gè),并將子串存儲(chǔ)。如果
57、輸入“abc def gh i d”,結(jié)果將是abc,def,gh,i,d,要求實(shí)現(xiàn)函數(shù): void DivideString(const char *pInputStr, long lInputLen, char *pOutputStr);【輸入】 pInputStr: 輸入字符串 lInputLen: 輸入字符串長(zhǎng)度 【輸出】 pOutputStr: 輸出字符串,空間已經(jīng)開(kāi)辟好,與輸入字符串等長(zhǎng);【注意】只需要完成該函數(shù)功能算法,中間不需要有任何IO的輸入輸出示例 輸入:“abc def gh i d”輸出:“abc,def,gh,i,d,”long j = 0;for(long i=0;
58、ilInputLen;i+) if(pInputStri!= ) pOutputStrj= pInputStri; j+; else If(pOutputStrj-1 != ,) /防止有多個(gè)空格的情況,這時(shí)只要一個(gè)逗號(hào) pOutputStrj=,; j+; 樣題-初級(jí)題:從考試成績(jī)中劃出及格線(xiàn)10個(gè)學(xué)生考完期末考試評(píng)卷完成后,A老師需要?jiǎng)澇黾案窬€(xiàn),要求如下:(1)及格線(xiàn)是10的倍數(shù);(2)保證至少有60%的學(xué)生及格;(3)如果所有的學(xué)生都高于60分,則及格線(xiàn)為60分樣題-中級(jí)題:亮著電燈的盞數(shù)一條長(zhǎng)廊里依次裝有n(1n65535)盞電燈,從頭到尾編號(hào)1、2、3、n-1、n。每盞電燈由一個(gè)拉線(xiàn)
59、開(kāi)關(guān)控制。開(kāi)始,電燈全部關(guān)著。有n個(gè)學(xué)生從長(zhǎng)廊穿過(guò)。第一個(gè)學(xué)生把號(hào)碼凡是1的倍數(shù)的電燈的開(kāi)關(guān)拉一下;接著第二個(gè)學(xué)生把號(hào)碼凡是2的倍數(shù)的電燈的開(kāi)關(guān)拉一下;接著第三個(gè)學(xué)生把號(hào)碼凡是3的倍數(shù)的電燈的開(kāi)關(guān)拉一下;如此繼續(xù)下去,最后第n個(gè)學(xué)生把號(hào)碼凡是n的倍數(shù)的電燈的開(kāi)關(guān)拉一下。n個(gè)學(xué)生按此規(guī)定走完后,長(zhǎng)廊里電燈有幾盞亮著。注:電燈數(shù)和學(xué)生數(shù)一致。去掉最大值、最小值之后剩下的個(gè)數(shù)1、輸入一串?dāng)?shù),以,分隔,輸出所有數(shù)中去掉最大值、最小值之后剩下的個(gè)數(shù)。(其中最大值與最小值可能有多個(gè))Smple input:3,3,5,3,6,9,7,9 Sample outPut: 38.29從5個(gè)人中選取2個(gè)人作為禮儀
60、2、要從5個(gè)人中選取2個(gè)人作為禮儀,其中每個(gè)人的身高范圍為160-190,要求2個(gè)人的身高差值最?。ㄈ绻钪迪嗤脑?huà),選取其中最高的兩人),以升序輸出兩個(gè)人的身高。Smple input:161 189 167 172 188 Sample outPut: 188 1898.29驗(yàn)證括號(hào)是否匹配3、輸入一串字符串,其中有普通的字符與括號(hào)組成(包括(、)、,),要求驗(yàn)證括號(hào)是否匹配,如果匹配則輸出0、否則輸出1.Smple input:dfa(sdf)dfdfds(dfd) Smple outPut:08.31回文數(shù)判斷回文數(shù),是返回18.31將第一行中含有第二行中“23”的數(shù)輸出并排序2.輸入
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度廁所革命項(xiàng)目廁所革命標(biāo)準(zhǔn)制定與實(shí)施合同3篇
- 2025年度智能溫室大棚建筑與物聯(lián)網(wǎng)技術(shù)合同4篇
- 2025年度臨時(shí)用電安全設(shè)施更新改造協(xié)議4篇
- 2025年度美團(tuán)外賣(mài)商家客戶(hù)關(guān)系管理系統(tǒng)協(xié)議4篇
- 2025年建筑材料綠色生產(chǎn)技術(shù)研發(fā)與應(yīng)用合同3篇
- 2025年鴨苗養(yǎng)殖與冷鏈物流銷(xiāo)售合同規(guī)范3篇
- IT行業(yè)專(zhuān)屬保密合同書(shū)樣本下載版B版
- 科技前沿西安創(chuàng)新企業(yè)概覽
- 個(gè)人車(chē)輛租賃(2024版)
- 孕婦職場(chǎng)活力秘訣工作與健康雙豐收
- 高校鑄牢中華民族共同體意識(shí)教育的路徑研究
- 《面神經(jīng)炎護(hù)理措施分析》3900字(論文)
- 城市微電網(wǎng)建設(shè)實(shí)施方案
- 企業(yè)文化融入中華傳統(tǒng)文化的實(shí)施方案
- 9.1增強(qiáng)安全意識(shí) 教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)上冊(cè)
- 《化工設(shè)備機(jī)械基礎(chǔ)(第8版)》全套教學(xué)課件
- 人教版八年級(jí)數(shù)學(xué)下冊(cè)舉一反三專(zhuān)題17.6勾股定理章末八大題型總結(jié)(培優(yōu)篇)(學(xué)生版+解析)
- 2024屆上海高考語(yǔ)文課內(nèi)古詩(shī)文背誦默寫(xiě)篇目(精校版)
- DL-T5024-2020電力工程地基處理技術(shù)規(guī)程
- 初中數(shù)學(xué)要背誦記憶知識(shí)點(diǎn)(概念+公式)
- 駕照體檢表完整版本
評(píng)論
0/150
提交評(píng)論