亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

北郵計算機考研復試題的C語言解答精選

2020-01-26 14:58:39
字體:
來源:轉載
供稿:網友

二進制數
題目

    題目描述: 
      大家都知道,數據在計算機里中存儲是以二進制的形式存儲的。 
      有一天,小明學了C語言之后,他想知道一個類型為unsigned int 類型的數字,存儲在計算機中的二進制串是什么樣子的。 
      你能幫幫小明嗎?并且,小明不想要二進制串中前面的沒有意義的0串,即要去掉前導0。 
    輸入: 
    第一行,一個數字T(T<=1000),表示下面要求的數字的個數。 
    接下來有T行,每行有一個數字n(0<=n<=10^8),表示要求的二進制串。 
    輸出: 
    輸出共T行。每行輸出求得的二進制串。 
    樣例輸入: 
    5 
    23 
    535 
    2624 
    56275 
    989835 
    樣例輸出: 
    10111 
    1000010111 
    101001000000 
    1101101111010011 
    11110001101010001011 


ac代碼
沒什么可說的,簡單的機制轉換,連大數除法都沒考察!

  #include <stdio.h>   #include <string.h>   #include <stdlib.h>       struct stack   {     int top;     int data[100];   };       void convert_to_binary(struct stack *s, unsigned long int d)   {     s->top = 0;         while (d) {       s->data[s->top ++] = d % 2;       d /= 2;     }         while (s->top) {       printf("%d", s->data[-- s->top]);     }     printf("/n");   }       int main()   {     int i, n;     unsigned long int d;     struct stack *s = (struct stack*)malloc(sizeof(struct stack));         while (scanf("%d", &n) != EOF) {       for (i = 0; i < n; i ++) {         scanf("%ld", &d);         if (d != 0) {           convert_to_binary(s, d);         }else {           printf("0/n");         }       }     }         return 0;   } 

    /**************************************************************
        Problem: 1473
        User: wangzhengyi
        Language: C
        Result: Accepted
        Time:10 ms
        Memory:904 kb
    ****************************************************************/ 

二叉排序樹
題目

    題目描述: 
            二叉排序樹,也稱為二叉查找樹??梢允且活w空樹,也可以是一顆具有如下特性的非空二叉樹: 
     
            1. 若左子樹非空,則左子樹上所有節點關鍵字值均不大于根節點的關鍵字值; 
            2. 若右子樹非空,則右子樹上所有節點關鍵字值均不小于根節點的關鍵字值; 
            3. 左、右子樹本身也是一顆二叉排序樹。 
     
      現在給你N個關鍵字值各不相同的節點,要求你按順序插入一個初始為空樹的二叉排序樹中,每次插入后成功后,求相應的父親節點的關鍵字值,如果沒有父親節點,則輸出-1。 
    輸入: 
    輸入包含多組測試數據,每組測試數據兩行。 
    第一行,一個數字N(N<=100),表示待插入的節點數。 
    第二行,N個互不相同的正整數,表示要順序插入節點的關鍵字值,這些值不超過10^8。 
    輸出: 
    輸出共N行,每次插入節點后,該節點對應的父親節點的關鍵字值。 
    樣例輸入: 
    5 
    2 5 1 3 4 
    樣例輸出: 
    -1 
    2 
    2 
    5 
    3 


ac代碼
沒什么思路,最簡單的構建二叉排序樹而已

   

 #include <stdio.h>   #include <stdlib.h>   #include <string.h>       struct btree   {     struct btree *lchild, *rchild;     unsigned long int data;   };       struct btree* create_btree(struct btree *t, unsigned long int d, unsigned long int parent);       int main()   {     int i, n;     unsigned long int d;     struct btree *t;         while (scanf("%d", &n) != EOF) {       t = NULL;       for (i = 0; i < n; i ++) {         scanf("%ld", &d);         t = create_btree(t, d, -1);       }     }         return 0;   }       struct btree* create_btree(struct btree *t, unsigned long int d, unsigned long int parent)   {     if (t == NULL) {       t = (struct btree *)malloc(sizeof(struct btree));       t->data = d;       t->lchild = NULL;       t->rchild = NULL;       printf("%ld/n", parent);         }else if(t->data > d) {       t->lchild = create_btree(t->lchild, d, t->data);     }else if(t->data < d) {       t->rchild = create_btree(t->rchild, d, t->data);     }else {       exit(EXIT_FAILURE);     }         return t;   } 

       
    /**************************************************************
        Problem: 1467
        User: wangzhengyi
        Language: C
        Result: Accepted
        Time:10 ms
        Memory:904 kb
    ****************************************************************/ 


矩陣冪
題目

    題目描述: 
    給定一個n*n的矩陣,求該矩陣的k次冪,即P^k。 
    輸入: 
    輸入包含多組測試數據。 
    數據的第一行為一個整數T(0<T<=10),表示要求矩陣的個數。 
    接下來有T組測試數據,每組數據格式如下:  
    第一行:兩個整數n(2<=n<=10)、k(1<=k<=5),兩個數字之間用一個空格隔開,含義如上所示。 
    接下來有n行,每行n個正整數,其中,第i行第j個整數表示矩陣中第i行第j列的矩陣元素Pij且(0<=Pij<=10)。另外,數據保證最后結果不會超過10^8。 
    輸出: 
    對于每組測試數據,輸出其結果。格式為: 
    n行n列個整數,每行數之間用空格隔開,注意,每行最后一個數后面不應該有多余的空格。 
    樣例輸入: 
    3 
    2 2 
    9 8 
    9 3 
    3 3 
    4 8 4 
    9 3 0 
    3 5 7 
    5 2 
    4 0 3 0 1 
    0 0 5 8 5 
    8 9 8 5 3 
    9 6 1 7 8 
    7 2 5 7 3 
    樣例輸出: 
    153 96 
    108 81 
    1216 1248 708 
    1089 927 504 
    1161 1151 739 
    47 29 41 22 16 
    147 103 73 116 94 
    162 108 153 168 126 
    163 67 112 158 122 
    152 93 93 111 97 

ac代碼
這個也是挺簡單的,就是個矩陣乘法,三個for循環即可

 

  #include <stdio.h>   #include <stdlib.h>   #include <string.h>       #define LEN 15       int a[LEN][LEN], b[LEN][LEN], c[LEN][LEN];       void multiplay_matrix();           int main()   {     int t, n, k, i, j, d;         scanf("%d", &t);     while (t --) {       // 接收矩陣       scanf("%d %d", &n, &k);       for (i = 0; i < n; i ++) {         for (j = 0; j < n; j ++) {           scanf("%d", &d);           a[i][j] = d;           b[i][j] = d;           c[i][j] = d;         }       }           // 矩陣的冪       if (k != 1) {         multiplay_matrix(k, n);       }           for (i = 0; i < n; i ++) {         for (j = 0; j < n; j ++) {           if (j == n - 1) {             printf("%d/n", c[i][j]);           }else {             printf("%d ", c[i][j]);           }         }       }     }         return 0;   }       void multiplay_matrix(int k, int n)   {     int i, j, h, data;     k --;     while (k --) {       for (i = 0; i < n; i ++) {         for (j = 0; j < n; j ++) {           for (h = data = 0; h < n; h ++) {             data += b[i][h] * a[h][j];           }           c[i][j] = data;         }       }       for (i = 0; i < n; i ++) {         for (j = 0; j < n; j ++) {           b[i][j] = c[i][j];         }       }     }   } 

    /**************************************************************
        Problem: 1474
        User: wangzhengyi
        Language: C
        Result: Accepted
        Time:10 ms
        Memory:912 kb
    ****************************************************************/ 


IP數據包解析
題目

201581695025979.png (521×497)

    頭部長度單位為4字節。 
      你的任務是,簡要分析輸入數據中的若干個TCP數據段的頭部。 詳細要求請見輸入輸出部分的說明。 
    輸入: 
    第一行為一個整數T,代表測試數據的組數。 
    以下有T行,每行都是一個TCP數據包的頭部分,字節用16進制表示,以空格隔開。數據保證字節之間僅有一個空格,且行首行尾沒有多余的空白字符。 
    保證輸入數據都是合法的。 
    輸出: 
    對于每個TCP數據包,輸出如下信息: 
    Case #x,x是當前測試數據的序號,從1開始。 
    Total length = L bytes,L是整個IP數據包的長度,單位是1字節。 
    Source = xxx.xxx.xxx.xxx,用點分十進制輸出源IP地址。輸入數據中不存在IPV6數據分組。 
    Destination = xxx.xxx.xxx.xxx,用點分十進制輸出源IP地址。輸入數據中不存在IPV6數據分組。 
    Source Port = sp,sp是源端口號。 
    Destination Port = dp,dp是目標端口號。 
    對于每個TCP數據包,最后輸出一個多余的空白行。 
    具體格式參見樣例。 
    請注意,輸出的信息中,所有的空格、大小寫、點符號、換行均要與樣例格式保持一致,并且不要在任何數字前輸出多余的前導0,也不要輸出任何不必要的空白字符。 
    樣例輸入: 
    2 
    45 00 00 34 7a 67 40 00 40 06 63 5a 0a cd 0a f4 7d 38 ca 09 cd f6 00 50 b4 d7 ae 1c 9b cf f2 40 80 10 ff 3d fd d0 00 00 01 01 08 0a 32 53 7d fb 5e 49 4e c8 
    45 00 00 c6 56 5a 40 00 34 06 e0 45 cb d0 2e 01 0a cd 0a f4 00 50 ce 61 e1 e9 b9 ee 47 c7 37 34 80 18 00 b5 81 8f 00 00 01 01 08 0a 88 24 fa c6 32 63 cd 8d 
    樣例輸出: 
    Case #1 
    Total length = 52 bytes 
    Source = 10.205.10.244 
    Destination = 125.56.202.9 
    Source Port = 52726 
    Destination Port = 80 
     
    Case #2 
    Total length = 198 bytes 
    Source = 203.208.46.1 
    Destination = 10.205.10.244 
    Source Port = 80 
    Destination Port = 52833 

ac代碼
注意取源端口號和目的端口號時需要注意ip頭部長度的判斷,IHL,其它就沒神馬難度了

  #include <stdio.h>   #include <stdlib.h>   #include <string.h>       #define LEN 1000       int change_tint(char *str, int begin, int num)   {     int i;     char *temp = (char *)malloc(sizeof(char) * (num + 1));         for(i = 0; i < num; i ++) {       temp[i] = str[begin + i];     }     temp[i] = '/0';         return strtol(temp, NULL, 16);   }       void ip_field(char *str, int begin, int num)   {     int i, flag, ip;     for (i = 0, flag = 1; i < num; i += 2) {       ip = change_tint(str, begin + i, 2);       printf("%d", ip);       if (flag <= 3) {         printf(".");         flag ++;       }     }     printf("/n");   }           int main()   {     int index, i, j, n, length, ihl;     char ipstr[LEN], temp[LEN];         while (scanf("%d/n", &n) != EOF) {       if (n != 0) {         for (index = 1; index <= n; index ++) {           memset(ipstr, 0, sizeof(ipstr));           memset(temp, 0, sizeof(temp));            gets(temp);           // 去除空格           for (i = j = 0, length = strlen(temp); i < length; i ++) {             if (temp[i] != ' ') {               ipstr[j ++] = temp[i];             }           }           ipstr[j] = '/0';               // 當前測試數據的序號           printf("Case #%d/n", index);               // 整個ip數據包的長度           length = change_tint(ipstr, 4, 4);           printf("Total length = %d bytes/n", length);               // 源ip地址和目的ip地址           printf("Source = ");           ip_field(ipstr, 24, 8);           printf("Destination = ");           ip_field(ipstr, 32, 8);               // 源端口號和目的端口號           ihl = change_tint(ipstr, 1, 1) * 4 * 2;           printf("Source Port = %d/n", change_tint(ipstr, ihl, 4));           printf("Destination Port = %d/n", change_tint(ipstr, ihl + 4, 4));           printf("/n");         }       }     }     return 0;   } 

       
    /**************************************************************
        Problem: 1475
        User: wangzhengyi
        Language: C
        Result: Accepted
        Time:10 ms
        Memory:908 kb
    ****************************************************************/ 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情在线播放| 黄色成人在线免费| 91沈先生在线观看| 成人疯狂猛交xxx| 国产欧美日韩亚洲精品| 26uuu亚洲伊人春色| 欧美日韩一区二区在线| 精品成人国产在线观看男人呻吟| 最新亚洲国产精品| 91黑丝高跟在线| 在线播放精品一区二区三区| 国产高清在线不卡| 欧美限制级电影在线观看| 亚洲成人网在线观看| 久久精品免费播放| 日韩在线观看免费全集电视剧网站| 亚洲国产精品成人va在线观看| 日韩av免费看网站| 日韩精品中文字幕在线播放| 91情侣偷在线精品国产| 4438全国成人免费| 在线观看国产精品淫| 97av在线播放| 日本一本a高清免费不卡| 亚洲精品福利免费在线观看| 在线观看欧美日韩国产| 在线成人激情黄色| 深夜福利91大全| 91麻豆国产语对白在线观看| 性欧美激情精品| 亚洲综合第一页| 欧美性受xxxx黑人猛交| 国产亚洲精品久久久久久牛牛| 2019国产精品自在线拍国产不卡| 日韩在线观看av| 欧美日韩一区二区在线| 一区二区在线免费视频| 日韩视频永久免费观看| 国产一区红桃视频| 91理论片午午论夜理片久久| 97精品国产97久久久久久| 亚洲第一偷拍网| 国产z一区二区三区| 日本精品久久久久影院| 欧美最顶级的aⅴ艳星| 日韩精品在线视频| 亚洲bt欧美bt日本bt| 欧美日韩一区二区免费视频| 91爱视频在线| 久久久久久噜噜噜久久久精品| 丝袜亚洲欧美日韩综合| 欧美电影免费在线观看| 久99九色视频在线观看| 国产日韩欧美黄色| 国产成人在线精品| 久久这里只有精品视频首页| 日韩电影免费在线观看| 欧美性69xxxx肥| 欧美成人免费观看| 亚洲欧洲视频在线| 亚洲欧洲一区二区三区在线观看| 在线视频欧美日韩| 国产一区视频在线播放| 久久久久久久影院| 国产成人精品国内自产拍免费看| 揄拍成人国产精品视频| 亚洲jizzjizz日本少妇| 欧美性xxxx在线播放| 国模视频一区二区三区| 国产精品丝袜久久久久久不卡| 日韩电影免费观看在线| 91影视免费在线观看| 97精品国产97久久久久久春色| 精品视频久久久久久| 日韩精品在线免费观看视频| 欧美精品一区二区三区国产精品| 91免费在线视频网站| 亚洲电影在线看| 国产午夜精品美女视频明星a级| 久久视频这里只有精品| xx视频.9999.com| 亚洲美女av电影| 欧美在线视频免费| 91精品国产成人www| 亚洲一级黄色av| 日韩免费在线看| 久久这里只有精品99| 日韩精品中文字幕在线观看| 色午夜这里只有精品| 欧美国产精品日韩| 国产精品嫩草视频| 久久精品国产欧美激情| 中文亚洲视频在线| 久久精品小视频| 国产精品大陆在线观看| 中国人与牲禽动交精品| 国外成人在线直播| 欧美午夜精品久久久久久人妖| 姬川优奈aav一区二区| 欧美丰满少妇xxxxx| 久久精品精品电影网| 亚洲精品午夜精品| 狠狠躁夜夜躁人人爽超碰91| 91中文字幕在线观看| 国产成人精品在线视频| 国产亚洲日本欧美韩国| 日韩电影中文字幕在线| 超在线视频97| 亚洲视频第一页| 精品中文字幕在线| 国产精品精品一区二区三区午夜版| 久久久伊人欧美| 亚洲欧美自拍一区| 欧美综合在线观看| 亚洲国产精品久久久久久| 亚洲欧美日韩视频一区| 91精品国产高清久久久久久| 国产精品一区=区| 国产精品免费小视频| 亚洲女人天堂色在线7777| 欧美亚州一区二区三区| 亚洲视频国产视频| 中文字幕一区日韩电影| www.精品av.com| 欧美成人精品三级在线观看| 精品久久久久久久久久久久| 欧美日韩亚洲国产一区| 欧美日韩国产一区在线| 国产精品久久久久久久久久ktv| 激情亚洲一区二区三区四区| 成人在线一区二区| 丝袜亚洲另类欧美重口| 亚洲一区二区三区成人在线视频精品| 国产一区二中文字幕在线看| 麻豆一区二区在线观看| 久久久久久91| 色哟哟网站入口亚洲精品| 6080yy精品一区二区三区| 国产一区二区三区日韩欧美| 成人性生交大片免费观看嘿嘿视频| 精品久久久久久久久久久久| 精品久久久久久亚洲精品| 亚洲激情在线观看| 亚洲色图av在线| 日韩精品中文字幕久久臀| 91午夜理伦私人影院| 久久精品久久久久久国产 免费| 精品视频在线观看日韩| 国产精品视频不卡| 疯狂做受xxxx高潮欧美日本| 亚洲人成自拍网站| 久热精品视频在线免费观看| 亚洲桃花岛网站| 中文字幕亚洲一区二区三区五十路| 黑人巨大精品欧美一区二区三区| 国产亚洲欧洲在线| 亚洲免费视频在线观看| 视频在线一区二区| 亚洲黄色有码视频| 欧美激情乱人伦一区| 色综合天天狠天天透天天伊人| 久久天天躁狠狠躁夜夜躁| 国产97在线|亚洲| 国产精品主播视频|