華為2012校園招聘 上機考試2

2021-05-28 05:24:07 字數 2815 閱讀 9112

1. 陣列比較(20分)

比較兩個陣列,要求從陣列最後乙個元素開始逐個元素向前比較,如果2個陣列長度不等,則只比較較短長度陣列個數元素。請程式設計實現上述比較,並返回比較中發現的不相等元素的個數

比如:陣列和陣列按題述要求比較,不相等元素個數為0

陣列和陣列按題述要求比較,不相等元素個數為3

要求實現函式:

int array_compare(int len1, int array1, int len2, int array2)

【輸入】 int len1:輸入被比較陣列1的元素個數;

int array1:輸入被比較陣列1;

int len2:輸入被比較陣列2的元素個數;

int array2:輸入被比較陣列2;

【輸出】 無

【返回】 不相等元素的個數,型別為int

示例:1) 輸入:int array1 = ,int len1 = 3,int array2 = ,int len2 = 5

函式返回:0

2) 輸入:int array1 = ,int len1 = 3,int array2 = ,int len2 = 6

函式返回:3

2. 約瑟夫問題

輸入乙個由隨機數組成的數列(數列中每個數均是大於0的整數,長度已知),和初始計數值m。從數列首位置開始計數,計數到m後,將數列該位置數值替換計數值m,並將數列該位置數值出列,然後從下一位置從新開始計數,直到數列所有數值出列為止。如果計數到達數列尾段,則返回數列首位置繼續計數。請程式設計實現上述計數過程,同時輸出數值出列的順序

比如:輸入的隨機數列為:3,1,2,4,初始計數值m=7,從數列首位置開始計數(數值3所在位置)

第一輪計數出列數字為2,計數值更新m=2,出列後數列為3,1,4,從數值4所在位置從新開始計數

第二輪計數出列數字為3,計數值更新m=3,出列後數列為1,4,從數值1所在位置開始計數

第三輪計數出列數字為1,計數值更新m=1,出列後數列為4,從數值4所在位置開始計數

最後一輪計數出列數字為4,計數過程完成。

輸出數值出列順序為:2,3,1,4。

要求實現函式:

void array_iterate(int len, int input_array, int m, int output_array)

【輸入】 int len:輸入數列的長度;

int intput_array:輸入的初始數列

int m:初始計數值

【輸出】 int output_array:輸出的數值出列順序

【返回】 無

示例:輸入:int input_array = ,int len = 4, m=7

輸出:output_array =

3. 簡單四則運算

問題描述:

輸入乙個只包含個位數字的簡單四則運算表示式字串,計算該表示式的值

注:3.1、表示式只含 +, -, *, / 四則運算符,不含括號

3.2、表示式數值只包含個位整數(0-9),且不會出現0作為除數的情況

3.3、要考慮加減乘除按通常四則運算規定的計算優先順序

3.4、除法用整數除法,即僅保留除法運算結果的整數部分。比如8/3=2。輸入表示式保證無0作為除數情況發生

3.5、輸入字串一定是符合題意合法的表示式,其中只包括數字字元和四則運算符字元,除此之外不含其它任何字元,不會出現計算溢位情況

要求實現函式:

int calculate(int len,char *expstr)

【輸入】 int len: 字串長度;

char *expstr: 表示式字串;

【輸出】 無

【返回】 計算結果

示例:1)輸入:char *expstr = 「1+4*5-8/3」

函式返回:19

2)輸入:char *expstr = 「8/3*3」

函式返回:6

本人解答

第三題沒有考慮使用棧是為了減少時間考試沒有時間去寫棧了所以用鍊錶實現

1.int array_compare(int len1, int array1, int len2, int array2)

return result;

}2.void array_iterate(int len, int input_array, int m, int out_array)

p->next = head->next;//形成環

p = head->next;

while(p != p->next)

out_array[out++] = p->data;

m = p->data;

len--;

pre->next = p->next;

free(p);

p = pre->next;

}head->next = p;

out_array[out++] = p->data;

free(p);

free(head);

}3.int calculate(int len,char *expstr)

pre = head;

lnode *p = head->next;

while(p)

else if(p->data == '/')

else

}pre = head;

p = head->next;

while(p)

else if(p->data == '-')

else

}result  =  head->next->data;

free(head->next);

free(head);

return result;

}

華為2012校園招聘 上機考試1

1 選秀節目打分,分為專家評委和大眾評委,score 陣列裡面儲存每個評委打的分數,judge type 裡儲存與 score 陣列對應的評委類別,judge type i 1,表示專家 評委,judge type i 2,表示大眾評委,n表示評委總數。打分規則如下 專家評委和大眾評委的分數先分別取...

字元過濾(2013華為校園招聘上機考試)

乙個字串,如aabas a 要求,過濾為每個字元只出現一次 aabs include include include include include void chstr const char input,char out for int i 0 ia p 關鍵之處,將符號作為下標,可以統計出其出現...

字元過濾(2013華為校園招聘上機考試)

乙個字串,如aabas a 要求,過濾為每個字元只出現一次 aabs include include include include include void chstr const char input,char out for int i 0 ia p 關鍵之處,將符號作為下標,可以統計出其出現...