<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>

          科大訊飛2021筆試題

          共 6306字,需瀏覽 13分鐘

           ·

          2021-04-19 10:41

          來源于讀者投稿,作者Angel

          筆試時間:2020.09.12,19:00——21:00

          崗位:嵌入式軟件開發(fā)

          題型:四道編程題,4*10=40分

          題目

          1、定義一個n*m矩陣,找到兩個不在同一行同一列的數字,使得成績最大。

          2、輸入一個數N,求數的二進制中1的個數(已AC)

          //寫一個函數返回參數的二進制中1的個數
          #include<stdio.h>
          #include<stdlib.h>
          int count_one_bits(unsigned int value)
          {
              int count = 0;
              while (value != 0)
              {
                  if (value % 2 == 1)
                  {
                      count++;
                  }
                  value = value >>1;
              }
              return count;
          }
          int main()
          {
              int num;
              int ret;
              printf("請輸入一個大于0的數\n");
              scanf("%d", &num);
              ret=count_one_bits(num);
              printf("%d", ret);
              system("pause");
              return 0;
          }

          3、數組的排序(時間復雜度最小),應該是讓你用冒泡或者選擇排序。

          題型是給了一種排序算法的中間過程,讓你認出是哪一種排序,然后寫代碼。

          #include<stdlib.h>
          #include<stdio.h>
          #include<string.h>

          void sortA1(int a[], int length){
              int i, j, temp;
              for(i = 0; i < length; ++i){
                  for(j = i + 1; j < length; ++j){
                      if(a[j] < a[i]){    //如果后一個元素小于前一個元素則交換
                          temp = a[i];
                          a[i] = a[j];
                          a[j] = temp;
                      }
                  }
              }
          }

          void printA1(int a[], int length){

              int i;
              for(i = 0; i < length; ++i){
                  printf("%d,", a[i]);
              }
              printf("\n");
          }

          void sortA2(int a[], int length){
              int i, j, temp;
              for(i = 0; i < length; ++i){
                  for(j = length - 1; j > i; --j){
                      if(a[j] > a[j - 1]){
                          temp = a[j];
                          a[j] = a[j - 1];
                          a[j - 1] = temp;
                      }
                  }
              }
          }

          int main(){

              int length = 0;
              int a[] = {124385010052,0};
              length = sizeof(a) / sizeof(a[0]);
              printf("排序前\n");
              printA1(a, length);
              sortA1(a, length);
              printf("選擇排序后\n");
              printA1(a, length);
              sortA2(a, length);
              printf("冒泡排序后\n");
              printA1(a, length);
              system("pause");
          }

          4、字符串左旋(case 20%,不知道是哪里沒考慮到,讀者可以嘗試)

          輸入 1234abcd , 左旋3

          輸出 4abcd123

          void swap(char *start, char *end)
          {
              while (start < end)
              {
                  *start ^= *end;
                  *end ^= *start;
                  *start ^= *end;
                  start++, end--;
              }
          }

          void reverse_left_2(char *str, int n, int len)
          {
              char *mid = NULL;//定義一個指針,將指向左旋分段點

              n %= len;//判斷左旋的有效次數
              mid = str + n - 1;//指向分段點的最后一個字符
              swap(str, mid);//逆置前一段字符串
              swap(mid + 1, str + len - 1);//逆置后一段字符串
              swap(str, str + len - 1);//整個字符串逆置
          }

          int main()
          {
              char str[] = "abcd1234";
              int n = 0, len = strlen(str);

              printf("please enter->");
              scanf("%d", &n);//輸入左旋的次數
              printf("before reverse_left string is :%s\n", str);
              reverse_left_2(str, n, len);
              printf("reverse_left string is :%s\n", str);

              system("pause");
              return 0;
          }

          ·················· END ··················

          點擊關注公眾號,免費領學習資料

          歡迎大家關注我的微信公眾號,定期給大家分享C語言、單片機、嵌入式Linux、硬件設計、代碼人生相關文章。公眾號內回復【電子書】即可獲得嵌入式全套500本全套電子書。回復【入群】即可加入嵌入式技術交流群。


          我創(chuàng)建了知識星球,歡迎大家掃碼加入。在知識星球中有問必答。提供全套的嵌入式學習規(guī)劃、嵌入式學習資料、簡歷指導、嵌入式求職規(guī)劃、嵌入式筆試面試指導、公司推薦等。





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

          關注公眾號,后臺回復「1024」獲取學習資料網盤鏈接。

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

          瀏覽 45
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  AV网站免费看 | 黄色小视频网站免费 | 古典武侠亚洲无码 | 国产色情性黄 片Av网站 | 免费在线观看AⅤ |