華為2012春上機筆試題 參考程式

2022-03-01 15:22:36 字數 3200 閱讀 5214

1、選秀節目打分,分為專家評委和大眾評委,score 陣列裡面儲存每個評委打的分數,judge_type 裡儲存與 score 陣列對應的評委類別,judge_type[i] == 1,表示專家評委,judge_type[i] == 2,表示大眾評委,n表示評委總數。打分規則如下:專家評委和大眾評委的分數先分別取乙個平均分(平均分取整),然後,總分 = 專家評委平均分 * 0.6 + 大眾評委 * 0.4,總分取整。如果沒有大眾評委,則 總分 = 專家評委平均分,總分取整。函式最終返回選手得分。

函式介面 int cal_score(int score, int judge_type, int n)

2、給定乙個陣列input ,如果陣列長度n為奇數,則將陣列中最大的元素放到 output 陣列最中間的位置,如果陣列長度n為偶數,則將陣列中最大的元素放到 output 陣列中間兩個位置偏右的那個位置上,然後再按從大到小的順序,依次在第乙個位置的兩邊,按照一左一右的順序,依次存放剩下的數。

例如:input = output = ; input = output =

函式介面 void sort(int input, int n, int output)

3、作業系統任務排程問題。作業系統任務分為系統任務和使用者任務兩種。其中,系統任務的優先順序 < 50,使用者任務的優先順序 >= 50且 <= 255。優先順序大於255的為非法任務,應予以剔除。現有一任務佇列task,長度為n,task中的元素值表示任務的優先順序,數值越小,優先順序越高。函式scheduler實現如下功能,將task 中的任務按照系統任務、使用者任務依次存放到 system_task 陣列和 user_task 陣列中(陣列中元素的值是任務在task 陣列中的下標),並且優先順序高的任務排在前面,陣列元素為-1表示結束。

例如:task = system_task = user_task =

函式介面 void scheduler(int task, int n, int system_task, int user_task)

三道題寫在乙個cpp檔案裡了,如下:

1 #include 2

using

namespace

std;34

56//程式設計題第一題

7int cal_score(int score, int judge_type, intn)8

24else

25 29}

30//

綜合評分

31if(!audiancecount)

3236

else

3742}43

4445

//程式設計題第二題

46void sort(int input, int n, int

output)

4759 input[j+1] =temp;60}

61int center = n / 2

;62 output[center] = input[0

];63

int diff = 1;64

int i = 1;65

while(i 6672 output[center + diff] = input[i++];

73 ++diff;74}

75}7677

//程式設計題第三題

78void scheduler(int task, int n, int system_task, int

user_task)

7990

else

if(task[i] <= 255)91

95}9697

//對系統任務排序,按優先順序數值公升序排序

98//

用插入法排序

99for(int i = 1; i < systemindex; ++i)

100108 system_task[j+1] =temp;

109}

110111

//對使用者任務排序,思想同上

112for(int i = 1; i < userindex; ++i)

113121 user_task[j+1] =temp;

122}

123124

//末尾處理

125 system_task[systemindex] = -1

;126 user_task[userindex] = -1

;127

}128

129130

void print(const

int a, const

intn)

131136 cout <137}

138139

intmain()

140;

144int judgetype[10] = ;

145 cout << cal_score(score, judgetype, 10) << endl <146147

//第二題測試樣例

148 cout << "

第二題測試結果:

"<149int input1[5] = ;

150int output1[5

];151 sort(input1, 5

, output1);

152 print(output1, 5

);153

154int input2[6] = ;

155int output2[6

];156 sort(input2, 6

, output2);

157 print(output2, 6

);158 cout <159160

//第三題測試樣例

161int task = ;

162int system_task[9

];163

int user_task[9

];164 scheduler(task, 9

, system_task, user_task);

165 cout << "

系統任務為:

"<166 print(system_task, 5

);167 cout << "

使用者任務為:

"<168 print(user_task, 5

);169 }

2012華為上機試題彙總及參考程式

2012華為機試排序題目 2012華為2011年9月17日上機題目之最長回文 2012華為2011年9月17日上機題目之約瑟夫環模擬法實現程式 2012中興南京筆試試題大題彙總及參考程式 地區一 1.編寫函式string deletestring string str,string sub str ...

2012華為校園招聘上機筆試題

如同往年,華為今年剛一開學就來學校宣講了,9月6日和7日安排了軟體研發類的上機筆試 其他職位沒有筆試,直接通過網上註冊的簡歷篩選並安排面試 說下華為上機考試的特點和一些注意事項 1 考試時長為2個小時,總共有3個題 去年是2個題,難度要比今年大些 使用的是vc 6.0 2 3個題目中大致第乙個題是最...

華為2016上機筆試題

開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的 所在的檔名稱和行號。處理 1.記錄最多8條錯誤記錄,對相同的錯誤記錄 即檔名稱和行號完全匹配 只記錄一條,錯誤計數增加 檔案所在的目錄不同,檔名和行號相同也要合併 2.超過16個字元的檔名稱,只記錄檔案的最後有效16個字元 如果檔名不同,而只是檔名的後...