1、下面**中for迴圈共執行了多少次?
unsigned short i,j;
for(i=0, j=2; i!=j; i+=5, j+=7)
{}
unsigned short占用2個位元組,當資料範圍到頭了(2^16-1),就又從0開始計數了,這個其實就是兩輛汽車行駛在乙個圓圈裡的汽車追及問題。乙個速度為5,乙個速度為7,當速度為7的超越速度為5的時候,兩個汽車就相遇了,2 + 7n- 5n= 2^16 所以共迴圈了32767次。
unsigned short i,j;
for(i=3,j=7;i!=j;i+=3,j+=7)
這個也是一樣的,7 + 7n- (3+3n)= 2^16
2、下面程式應該輸出多少?
char *c = ;
char **cp = ;
char ***cpp = cp;
int main(void)
3、已知程式**如下:
struct s
;
下面哪些能正常執行()
a、makes().func1(makes())
b、makes().func2(makes())
c、makes().func3(makes())
d、makes().func4(makes())
4、下列**的輸出為多少?
int main(void)
; enum ;
return 0;
}
a、c、e、h、x、y、z、w、s、t的值分別是多少?
在列舉型別中宣告的第乙個列舉成員它的默值為零。沒有顯示賦值的列舉成員的值,總是前乙個列舉成員的值+1。
a:0 c:6 e:5
h:0 x:1 y:2 z:3 w:121 s:100 t:101
5、乙個長度為n的陣列a[0],a[1],...,a[n-1]。現在更新陣列的名個元素,即a[0]變為a[1]到a[n-1]的積
a[1]變為a[0]和a[2]到a[n-1]的積,...,a[n-1]為a[0]到a[n-2]的積。
程式要求:要求具有線性複雜度,不能使用除法運算子。
思路是思想跟這個一樣,用兩個陣列b、c
b[i] = a[0] *... * a[i - 1],c[i] = a[i + 1] *...*a[n] ,時間複雜度為o(2n)
最後a[i] = b[i]*c[i],我在這裡沒用c陣列,少用c【i】陣列的話,程式寫起來就不是太好理解,其實是乙個道理。
int main(void)
; int temp, n=4;
int *b = new int[n];
b[0] = a[0];
for(i = 1; i < n-1; i++)
b[n-1] = a[n-1];
for(i = n-1; i >= 0; i--)
if(i == 0)
a[0] = b[1];
} //輸出最後的a元素
for(i = 0; i < n; i++)
return 0;
}
搜狗筆試題
乙個長度為n的陣列a 0 a 1 a n 1 現在更新陣列的名個元素,即a 0 變為a 1 到a n 1 的積 a 1 變為a 0 和a 2 到a n 1 的積,a n 1 為a 0 到a n 2 的積。程式要求 要求具有線性複雜度。不能使用除法運算子。演算法思想 設共有n個數 n 7 建立乙個陣列...
搜狗筆試題
搜狗 1,有n n個正方形格仔,每個格仔裡有正數或者0,從最左上角往最右下角走,只能向下和向右走。一共走兩次,把所有經過的格仔的數加起來,求最大值。且兩次如果經過同乙個格仔,則該格仔的數隻加一次。思路 搜尋 一共搜 2n 2 步,每一步有四種走法。考慮不相交等條件可以剪去很多枝。複雜度為o 4 n ...
2012搜狗校園招聘筆試題
include using namespace std int main unsigned char p unsigned char input int s 0 int temp sizeof input for int i 0 ichar v p i if v 0 s v a i printf d...