程式1:請問執行test函式會有什麼樣的結果?
void getmemory(char *p)
void test(void)
程式2:請問執行test函式會有什麼樣的結果?
char *getmemory(void)
void test(void)
程式3:
請問執行test函式會有什麼樣的結果?
void getmemory2(char **p, int num)
void test(void)
程式4:請問執行test函式會有什麼樣的結果?
void test(void)
}
程式5:請問執行test函式會有什麼樣的結果?
void test1()
程式6:考察巨集定義!輸出是什麼?
#define fire(x,y) (x)--;(y)++;(x)*(y);
int main()
【結果】
1、程式崩潰。因為getmemory並不能傳遞動態記憶體,test函式中的 str一直都是 null。strcpy(str, "hello world");將使程式崩潰因為getmemory並不能傳遞動態記憶體,test函式中的 str一直都是 null。strcpy(str, "hello world");將使程式崩潰。
2、可能是亂碼。因為char p = "hello world";這句話,意思是把字串複製到陣列p中,而陣列p是區域性變數,在棧空間內,getmemory返回的是指向「棧記憶體」的指標,該指標的位址不是 null,但其原現的內容已經被清除,新內容不可知。
3、能夠輸出hello,但是malloc後沒有free,會導致記憶體洩漏。
4、篡改動態記憶體區的內容,後果難以預料,非常危險。因為free(str);之後,str成為野指標,if(str != null)語句不起作用。
5、陣列越界。
6、這種題型只需要把巨集定義直接展開到程式中即可!結果為-2,5。for迴圈只執行了(x)--。
C語言程式題
遊戲問題。有12名小朋友手拉手站成乙個圓圈,從第一名小朋友開始報數,報到7的那名小朋友退到圈外,然後他的下一位重新報1。這樣繼續下去,直到最後只剩下一名小朋友,問這名小朋友原來站在什麼位置上?如下 include intmain i 0 do if sum 7 計數 number用來表示從1數到7的...
C語言程式 字元出現次數
問題描述 輸入乙個字串,再輸入乙個字元,統計前面輸入的字串內該字元出現的次數 區分大小寫 輸入形式 要求輸入乙個字串 可以包含空格 再輸入乙個字元 輸出形式 輸出給字元在字串 現的次數 樣例輸入 afb cd e fff f include include main printf d n count...
c語言基礎程式題
從鍵盤輸入乙個小於1000的正數,要求輸出它的平方根 如果平方根不是整數,則輸出它的整數部分 要求在輸入資料後先對其進行檢查是否為小於1000的正數,若不是,則要求重新輸入。include include intmain printf d n int sqrt a return0 企業發放的獎金根據...