中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

買(mǎi)了兩臺(tái)服務(wù)器可以做網(wǎng)站嗎濟(jì)南優(yōu)化網(wǎng)頁(yè)

買(mǎi)了兩臺(tái)服務(wù)器可以做網(wǎng)站嗎,濟(jì)南優(yōu)化網(wǎng)頁(yè),上海裝修設(shè)計(jì)公司排名,wordpress表單附件上傳圖片目錄 9.查找字符數(shù)組中字符位置(輸入hello e 輸出2); 10、查找字符數(shù)組中字符串的位置(輸入hello ll 輸出3); 11、字符數(shù)組中在指定位置插入字符;(輸入hello 3 a 輸出heallo…

目錄

9.查找字符數(shù)組中字符位置(輸入hello e ???輸出2);

10、查找字符數(shù)組中字符串的位置(輸入hello ll 輸出3);

11、字符數(shù)組中在指定位置插入字符;(輸入hello 3 a ??輸出heallo)

12、在字符數(shù)組中指定開(kāi)始位置插入字符串;(輸入hello 3 aa ?輸出heaallo)

13、有n個(gè)人圍成一圈,順序排號(hào),從第一個(gè)開(kāi)始報(bào)數(shù)(從1到3報(bào)數(shù)),凡報(bào)到3的人退出圈子,問(wèn)最后留下的是原來(lái)第幾號(hào)的那位?(約瑟夫環(huán),筆試???#xff09;

14、輸入一個(gè)字符串,計(jì)算字符串中子串出現(xiàn)的次數(shù)。

15、編寫(xiě)一個(gè)C函數(shù),將”I am from shanghai ”倒置為”shanghai from am I”,即將句子中的單詞位置倒置,而不改變單詞內(nèi)部結(jié)構(gòu)。

第一步:獲取鍵盤(pán)輸入的幾個(gè)單詞,

第二步:轉(zhuǎn)置每個(gè)單詞里面的每一個(gè)字母,

第三步:將每一個(gè)單詞里面的字母單獨(dú)裝置

16、輸入一個(gè)字符串,同時(shí)輸入幀頭和幀尾(可以是多個(gè)字符),將該字符串中合法的幀識(shí)別出來(lái)。


上一篇復(fù)習(xí)了關(guān)鍵字,這一篇我們來(lái)做第二次的8道編程題。

說(shuō)明:我們學(xué)過(guò)單片機(jī)的一般都是有C語(yǔ)言基礎(chǔ)的了,網(wǎng)上關(guān)于C語(yǔ)言的資料有很多,大家如果對(duì)C語(yǔ)言不熟悉的話可以先去詳細(xì)學(xué)一下,再以這篇博文作為復(fù)習(xí)資料學(xué)習(xí)。

這篇博文的目的是復(fù)習(xí)C語(yǔ)言,我們會(huì)陸續(xù)以30多個(gè)編程題作為復(fù)習(xí)要點(diǎn),這30多個(gè)編程題基本涵蓋了C語(yǔ)言所有的內(nèi)容了,只要你掌握了這30多個(gè)編程題,那么你的C語(yǔ)言基本就沒(méi)什么問(wèn)題了。

注意:由于本專欄是嵌入式全棧開(kāi)發(fā)專欄,為了我們能熟悉以后實(shí)際工作中的開(kāi)發(fā)環(huán)境,我們寫(xiě)C語(yǔ)言全部在Linux中的vim編輯器中寫(xiě),這么做事為了我們能夠熟練掌握Linux系統(tǒng)的常用命令以及Linux上的vim編輯器的常用工作命令,以達(dá)到對(duì)口訓(xùn)練的目的!

vim編輯器的一些工作命令在上一篇博文中已經(jīng)詳細(xì)介紹過(guò)了,如果不了解可以先去看看。

我們正式開(kāi)始:

建議新建一個(gè)homework目錄來(lái)存放這8個(gè)編程題的程序文件。

上次我們講過(guò)第1~8道編程題了

嵌入式全棧開(kāi)發(fā)學(xué)習(xí)筆記---C語(yǔ)言筆試復(fù)習(xí)大全7(編程題1~8)-CSDN博客

這次我們開(kāi)始講第9~16道:

9.查找字符數(shù)組中字符位置(輸入hello e ???輸出2);

提示:我們只要遍歷數(shù)組,將數(shù)組中的每一個(gè)元素和該字符對(duì)比,直到相等,則輸出字符的位置。

參考代碼:

#include <stdio.h>
#include <string.h>int get_char_index(char str[],char ch)
{int i;int length=strlen(str);for(i=0;i<length;i++){if(ch==str[i]){return i+1;}} ??return -1;
}int main()
{char str[32]={0};char ch;printf("輸入 字符串 字符\n");scanf("%s %c,str,&ch);int index=get_char_index(str,ch);if(-1==index){printf("沒(méi)有該字符\n");}else{printf("該字符的地址是%d\n",index);}return 0;
}

運(yùn)行結(jié)果:

10、查找字符數(shù)組中字符串的位置(輸入hello ll 輸出3);

提示:用strncmp()字符串處理函數(shù)比較兩個(gè)字符,如果相等則輸出字符串的位置。

參考代碼:

#include <stdio.h>
#include <string.h>int get_sub_index(char str[],char sub[])
{int length_str=strlen(str);int length_sub=strlen(sub);int i;for(i=0;i<length_str-length_sub+1;i++){ ??if(strncmp(str+i,sub,length_sub)==0){return i+1;}} ??return -1;
}int main()
{char str[32]={0};char sub[32]={0};printf("輸入 字符串 要查找的字符串\n");scanf("%s %s",str,sub);int index=get_sub_index(str,sub);if(-1==index){printf("沒(méi)有要查找的字符串\n");}else{printf("該字符串的位置是%d\n",index);}return 0;
}

運(yùn)行結(jié)果:

11、字符數(shù)組中在指定位置插入字符;(輸入hello 3 a ??輸出heallo)

我們可以把后面三個(gè)字符向后移動(dòng)三位,然后將a放在第三個(gè)位置,然后將那三個(gè)字符賦值給后面三個(gè)位置。

參考代碼:

#include <stdio.h>
#include <string.h>int main()
{int num;int ch;char str[32]={0};int i;printf("輸入 字符串 插入位置 插入字符\n");scanf("%s %d %c",str,&num,&ch);int length=strlen(str);//計(jì)算字符串長(zhǎng)度f(wàn)or(i=0;i<length-num+1;i++){ ??str[length-i]=str[length-1-i]; ?//移動(dòng)后三位字符} ??str[num-1]=ch;//插入字符printf("%s\n",str);return 0;
}

運(yùn)行結(jié)果:

12、在字符數(shù)組中指定開(kāi)始位置插入字符串;(輸入hello 3 aa ?輸出heaallo)

提示:將he用strncpy拷貝到另外一個(gè)字符數(shù)組里面,然后用strcat將he和aa拼接起來(lái),再將剩下的llo接在heaa后面,最后用strcpy將heaallo拷貝回原來(lái)的數(shù)組中去。

參考代碼:

#include <stdio.h>
#include <string.h>void insert_str(char str[],char insert[],int num)
{int length_str=strlen(str);int length_insert=strlen(insert);char tmp[32]={0};strncpy(tmp,str,num-1);strcat(tmp,insert);strcat(tmp,str+num-1);strcpy(str,tmp);
}int main()
{char str[32];char insert[32];int num;printf("請(qǐng)輸入 字符串 要插入的字符串 要插入的位置\n");scanf("%s %s %d",str,insert,&num);int length_str=strlen(str);if(num<=length_str){ ??insert_str(str,insert,num);} ??else{ ??printf("字符串長(zhǎng)度不夠,請(qǐng)重新確認(rèn)要插入的位置\n");} ?printf("%s\n",str);return 0;
}

運(yùn)行結(jié)果:

13、有n個(gè)人圍成一圈,順序排號(hào),從第一個(gè)開(kāi)始報(bào)數(shù)(從1到3報(bào)數(shù)),凡報(bào)到3的人退出圈子,問(wèn)最后留下的是原來(lái)第幾號(hào)的那位?(約瑟夫環(huán),筆試常考)

提示:題目的意思請(qǐng)看圖:

參考代碼:

#include <stdio.h>int main()
{int num;//總?cè)藬?shù)int person;//剩余人數(shù)int flag[1024]={0};//每個(gè)人的狀態(tài)位,0保持,1出局int k=1;//報(bào)數(shù)int i=1;//flag數(shù)組下標(biāo)printf("請(qǐng)輸入游戲人數(shù)\n");scanf("%d",&num);person=num;while(person>1)//當(dāng)剩余人數(shù)大于1就繼續(xù)報(bào)數(shù){ ??//每一次報(bào)數(shù)if(flag[i]==0)//沒(méi)有出局的人{(lán)k++;//報(bào)數(shù)if((k>3){flag[i]=1;//報(bào)到3的出局person--;//剩余人數(shù)減1k=1;//重新報(bào)數(shù)}}i++;//為了下一輪報(bào)數(shù)的時(shí)候先判斷這個(gè)人還是不是0if(num+1==i){i=1;}//重新開(kāi)始,從1號(hào)這人開(kāi)始}//找出狀態(tài)位為0的那個(gè)人for(i=1;i<num+1;i++){if(flag[i]==0){ printf("剩下的那個(gè)人是第%d號(hào)\n",i);break;}} ??return 0;
}

運(yùn)行結(jié)果:

14、輸入一個(gè)字符串,計(jì)算字符串中子串出現(xiàn)的次數(shù)。

提示:用strncmp進(jìn)行比較,如果比較的結(jié)果是0,那就計(jì)數(shù)count++

參考代碼:

#include <stdio.h>
#include <string.h>int get_sub_count(char str[],char sub[])
{int length_str=strlen(str);int length_sub=strlen(sub);int i;int count=0;for(i=0;i<length_str-length_sub+1;i++){ ??if(!strncmp(str+i,sub,length_sub)){count++;}} ??return count;
}int main()
{char str[32]={0};char sub[32]={0};printf("請(qǐng)輸入 字符串 要計(jì)算的子串\n");scanf("%s %s",str, sub);int count=get_sub_count(str,sub);printf("子串的次數(shù)為%d\n",count);return 0;
}

運(yùn)行結(jié)果:

15、編寫(xiě)一個(gè)C函數(shù),將”I am from shanghai ”倒置為”shanghai from am I”,即將句子中的單詞位置倒置,而不改變單詞內(nèi)部結(jié)構(gòu)。

提示:先將整個(gè)句子倒轉(zhuǎn)成”iahgnahs.....ma I.”,然后對(duì)單個(gè)單詞進(jìn)行倒轉(zhuǎn)”shanghai....am I”。這道題使用gets()和scanf()來(lái)獲取句子是不行的,我們要使用一個(gè)新的函數(shù)叫g(shù)etchar()函數(shù)可以獲取整個(gè)句子,空格也是字符,它遇到換行的時(shí)候結(jié)束。

第一步:獲取鍵盤(pán)輸入的幾個(gè)單詞,

參考代碼:

#include <stdio.h>int main()
{char str[1024]={0};int i=0;char ch;printf("請(qǐng)輸入幾個(gè)單詞\n");while(ch!='\n'){ ??ch=getchar();//從鍵盤(pán)中獲取單個(gè)字符str[i]=ch;i++;} ??printf("%s\n",str);return 0;
}

運(yùn)行結(jié)果:

第二步:轉(zhuǎn)置每個(gè)單詞里面的每一個(gè)字母,

參考代碼:

#include <stdio.h>void reverse(char str[], int start,int end)
{int i;char tmp;//交換專用變量for(i=0;i<(start+end)/2;i++){int tmp=str[end-1-i];str[end-1-i]=str[start+i];str[start+i]=tmp;} ??
}int main()
{char str[1024]={0};int i=0;char ch;printf("請(qǐng)輸入幾個(gè)單詞\n");while(ch!='\n'){ ??ch=getchar();//從鍵盤(pán)中獲取單個(gè)字符str[i]=ch;i++;}reverse(str,0,i);//0是整個(gè)句子的開(kāi)始位置,i是整個(gè)句子的結(jié)束位置printf("%s\n",str);return 0;
}

運(yùn)行結(jié)果:

第三步:將每一個(gè)單詞里面的字母單獨(dú)裝置

最終參考代碼:

#include <stdio.h>void reverse(char str[], int start,int end)
{int i;char tmp;//交換專用變量for(i=0;i<(end-start)/2;i++){ ??int tmp=str[end-1-i];str[end-1-i]=str[start+i];str[start+i]=tmp;} ??
}int main()
{char str[1024]={0};int i=0;char ch;printf("請(qǐng)輸入幾個(gè)單詞(單詞)\n");while((ch=getchar())!='\n'){ ??str[i++]=ch;} ??reverse(str,0,i);//0是整個(gè)句子的開(kāi)始位置,i是整個(gè)句子的結(jié)束位置i=0;int begin=0;while(str[i]!='\0')//翻轉(zhuǎn)所有單詞{if(str[i]==' ')//翻轉(zhuǎn)一個(gè)單詞{reverse(str,begin,i);begin=i+1;//下一個(gè)單詞的開(kāi)始}i++;//下一個(gè)字符}reverse(str,begin,i);//'\0'之前的一個(gè)單詞printf("%s\n",str);return 0;
}

最終運(yùn)行結(jié)果:

16、輸入一個(gè)字符串,同時(shí)輸入幀頭和幀尾(可以是多個(gè)字符),將該字符串中合法的幀識(shí)別出來(lái)。

提示:幀頭和幀尾分別是head和tail,字符串”asdheadhauboisoktail”中headhauboisoktail是合法幀。

可以先找到幀頭和幀尾的位置,最后把幀頭和幀尾的位置之間的字符拷貝到另一個(gè)數(shù)組中打印出來(lái)。

參考代碼:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>int get_index(char str[],char sub[])
{int length_str=strlen(str);int length_sub=strlen(sub);int i;for(i=0;i<length_str-length_sub+1;i++){if(strncmp(str+i,sub,length_sub)==0){return i;}}   return -1; 
}
int main()
{char str[32]={0};char head[32]={0};char tail[32]={0};printf("請(qǐng)輸入 字符串 幀頭 幀尾\n");scanf("%s %s %s",str, head, tail);int index_head=get_index(str,head);int index_tail=get_index(str,tail);if(-1==index_head||-1==index_tail){printf("輸入有誤\n");exit(1);//退出整個(gè)程序}char tmp[32]={0};int length_tail=strlen(tail);strncpy(tmp,str+index_head,index_tail-index_head+length_tail);printf("%s\n",tmp);return 0;
}

運(yùn)行結(jié)果:

以上就是這篇內(nèi)容,如想了解更多,歡迎訂閱本專欄!

如有問(wèn)題可評(píng)論區(qū)或者私信留言,如果想要進(jìn)交流群請(qǐng)私信!

http://www.risenshineclean.com/news/44171.html

相關(guān)文章:

  • 用織夢(mèng)做的網(wǎng)站怎么上傳虛擬網(wǎng)絡(luò)營(yíng)銷的實(shí)現(xiàn)方式有哪些
  • 營(yíng)銷助手appseo網(wǎng)絡(luò)營(yíng)銷的技術(shù)
  • 建一個(gè)網(wǎng)站邁年廣州白云區(qū)最新信息
  • 啥是深圳網(wǎng)站建設(shè)com域名多少錢(qián)一年
  • 金融公司網(wǎng)站開(kāi)發(fā)汕頭seo計(jì)費(fèi)管理
  • 生活做爰網(wǎng)站北京seo優(yōu)化wyhseo
  • 國(guó)家安全人民防線建設(shè)網(wǎng)站如何在網(wǎng)上推廣產(chǎn)品
  • wordpress如何發(fā)布視頻seo搜索引擎工具
  • wordpress+站群軟件東莞網(wǎng)絡(luò)推廣營(yíng)銷公司
  • 關(guān)注網(wǎng)站制作seo診斷
  • 中小企業(yè)建站模板百度免費(fèi)發(fā)布信息
  • 石巖小學(xué)網(wǎng)站建設(shè)網(wǎng)絡(luò)營(yíng)銷策劃書(shū)的主要內(nèi)容
  • 石家莊網(wǎng)站開(kāi)發(fā)設(shè)計(jì)百度網(wǎng)站下載
  • 做甜品網(wǎng)站的需求分析網(wǎng)站如何發(fā)布
  • 如何給網(wǎng)站做流量百度推廣網(wǎng)址是多少
  • 網(wǎng)站域名使用費(fèi)多少網(wǎng)絡(luò)營(yíng)銷與直播電商學(xué)什么
  • 武漢電商網(wǎng)站建設(shè)sem是什么設(shè)備
  • 世界十大建筑設(shè)計(jì)公司排名外鏈seo推廣
  • 廣東裝飾公司網(wǎng)站建設(shè)防惡意競(jìng)價(jià)點(diǎn)擊軟件
  • wordpress做資源下載站網(wǎng)站宣傳的方法有哪些
  • 青海省建設(shè)廳官方網(wǎng)站百度賬號(hào)注冊(cè)平臺(tái)
  • 水果網(wǎng)站策劃書(shū)百度站長(zhǎng)資源
  • 廈門(mén)網(wǎng)站排名優(yōu)化費(fèi)用百度網(wǎng)盤(pán)鏈接
  • 如何請(qǐng)人做網(wǎng)站爆款采集推廣引流軟件
  • 圖片站wordpress網(wǎng)站推廣優(yōu)化排名
  • 騰云建站靠譜嗎什么是網(wǎng)站
  • WordPress生成電商小程序南昌seo教程
  • 域名申請(qǐng)到網(wǎng)站建設(shè)教程廣告銷售如何尋找客戶
  • 怎么選擇企業(yè)建站公司網(wǎng)站關(guān)鍵字優(yōu)化價(jià)格
  • 個(gè)人網(wǎng)站 名字百度智能云建站