一、高級程序設計(40’)
1、(15’)求一個數的相反數
如2581,顛倒的數爲1852,相反數爲2581+1852=4433。
#include <iostream>
#include<stdio.h>
using namespace std;
int reverse(int c){
int rev = 0;
for (int i = 0; c % 10 != 0; i++)
{
int b = c % 10;
rev = rev * 10 + b;
c = c / 10;
}
return rev;
}
void main(){
int a;
cin >> a;
int rev = reverse(a);
cout << rev+a << endl;
system("pause");
}
2、(15’)100以內的數排序算法,要求時間複雜度爲O(n),空間複雜度爲O(1)。
3、(10’)輸出2-60內的完數和盈數
一個數的因數之和(本身除外)等於它自己則爲完數,如6=3+2+1;
一個數的因數之和(本身除外)大於它自己則爲完數,如12<6+4+3+2+1;
二、數據結構(30’)
1、(10’)有三類書籍0、1、2,存儲在順序表中,按類別進行排序,要求時間複雜度爲O(n),空間複雜度爲O(1)。給出了書籍和順序表的結構。
2、(10’)有兩個棧s1,s2,寫出隊列出和隊列進的算法。
3、(10’)深度優先算法判斷圖的連通性,給出了鄰接表結構:
typedef structAnode
{ int adjvex; //邊的終點編號
struct Anode*nextarc; //指向下一條邊的指針
}ArcNode; //邊界點類型
typedef struct Vnode
{ Vertex data; //頂點信息
ArcNode*firstarc; //指向第一條邊
}Vnode; //鄰接表頭結點類型
typedef struct
{ }Gragh; //圖類型
三、計算機網絡(30’)
1、(15’)傳輸速率爲1000kbps,傳輸時間爲0.27s,數據大小爲1kb,確認幀大小爲3bit,求信道利用率。
(1) 停止—等待協議的信道利用率;
(2) 回退N步的信道利用率;
(3) 選擇重傳的信道利用率。
2、(15’)劃分子網