<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          C語言筆試兩題,有坑

          共 3070字,需瀏覽 7分鐘

           ·

          2021-03-14 11:18

          題目一

          最近遇到的一個(gè)華為筆試題


          題目:


          對(duì)字符串中的所有單詞進(jìn)行倒排。

          說明:

          1、構(gòu)成單詞的字符只有26個(gè)大寫或小寫英文字母;

          2、非構(gòu)成單詞的字符均視為單詞間隔符;

          3、要求倒排后的單詞間隔符以一個(gè)空格表示;如果原字符串中相鄰單詞間有多個(gè)間隔符時(shí),倒排轉(zhuǎn)換后也只允許出現(xiàn)一個(gè)空格間隔符;

          4、每個(gè)單詞最長(zhǎng)20個(gè)字母;


          題目鏈接:

          https://www.nowcoder.com/practice/81544a4989df4109b33c2d65037c5836?tpId=37&tqId=21254&rp=1&ru=%2Fta%2Fhuawei&qru=%2Fta%2Fhuawei%2Fquestion-ranking&tab=answerKey

          建議先自己思考再看答案,特別是題目中的第二點(diǎn)。


          代碼:

          #include<stdio.h>
          #include<string.h>
          int main(void){
              char str[300][210],temp[2001];
              int n = 0,len=0,i,j=0;
              memset(str,0,sizeof(str));
              while(fgets(temp, sizeof(temp), stdin)){
                  len=strlen(temp);
                  for(i=0;i<len;i++){
                      if((temp[i] >= 'a' && temp[i]<= 'z') || (temp[i] >= 'A' && temp[i]<= 'Z' )){
                          str[n][j] = temp[i];
                          j++;
                      }else if(j > 0){
                          j=0;
                          n++;
                      }
                  }
                  for(i = n-1;i>0;i--){
                      printf("%s ",str[i]);
                  }
                  printf("%s\n",str[0]);

                  n = 0;j = 0;i = 0;len = 0;
                  memset(str,0,sizeof(str));
                  memset(temp,0,sizeof(temp));
              }

              return 0;
          }

          這個(gè)答案實(shí)際上用到了棧的思想,依次把每次單詞依次入棧,之后再出棧。




          題目二

          求下面的程序輸出:

          #include "stdio.h"

          int main()
          {
              int arr[5] = {1,2,3,4,5};
              int *p = arr;
              for(size_t i=0;i<5;i++)
              {
                  printf("i:%d %d\n",p[i],*p++);
              }
              return 0;
          }

          這個(gè)題目考察兩點(diǎn):

          1、printfC++ 中的 cout << 一樣,先執(zhí)行后面的再執(zhí)行前面的,實(shí)現(xiàn)方式用了棧的思想,先入棧的后出棧執(zhí)行。

          2、p[i] = * (p+i)






          推薦閱讀:
          專輯|Linux文章匯總
          專輯|程序人生
          專輯|C語言
          我的知識(shí)小密圈

          關(guān)注公眾號(hào),后臺(tái)回復(fù)「1024」獲取學(xué)習(xí)資料網(wǎng)盤鏈接。

          歡迎點(diǎn)贊,關(guān)注,轉(zhuǎn)發(fā),在看,您的每一次鼓勵(lì),我都將銘記于心~



          瀏覽 36
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  7799天天综合网精品 | 久久深爱网 | 黄色一级aa片 | 日韩无码经典高清视频 | 丁香婷婷色五月激情综合 |