㈠ C語言答案 求大神 解答
題號:1
以下正確的說法是( )
選項:
a、用戶若需要調用標准庫函數,調用前必須重新定義
b、用戶可以重新定義標准庫函數,若如此,該函數將失去原有意義
c、用戶系統根本不允許用戶重新定義標准庫函數
d、用戶若需要調用庫函數,調用前不必使用預編譯命令將該函數所在文件包括到用戶源文件中,系統自動尋找該文件
本題答案為d,無論是標准庫函數還是什麼函數,都是函數,都允許用戶重新定義和使用,使用的時候只需要用#include 包括進來就可以了,也就是預編譯命令。其中#include就是預編譯命令。
題號:2
以下正確的函數定義形式是( )
選項:
a、double fun(int x,int y)
b、double fun(int x
c、int y)
d、double fun(int x,int y)
e、doubel fun(int x
f、int y)
函數的定義規則是這樣的: (函數參數用逗號隔開){函數體}
函數聲明的規則是這樣的: (函數參數用逗號隔開);
綜上所述,該題沒有正確答案,唯一接近正確答案的為ad。
題號:3
以下不正確的說法為( )
選項:
a、在不同函數中可以使用相同名字的變數
b、形式參數是局部變數
c、在函數內定義的變數只在本函數范圍內有效
d、在函數內的復合語句中定義的變數在本函數范圍內有效
C中有一個關鍵字為extern,專門把局部變數轉為全局變數,所以C是錯誤的。
本題答案為C
題號:4
建立函數的目的之一,以下正確的說法是( )
選項:
a、提高程序的執行效率
b、提高程序的可讀性
c、減少程序的篇幅
d、減少程序文件所佔內存
本題答案為a,
函數的增加,
b會使得程序的可讀性增加,這個可以理解,模塊化了,當然可讀性增加了
c,多次調用一個函數即可,不用重復的寫代碼,這個也可以理解
d,重復的代碼既然少了,整個程序的大小自然也小了,當然減少了程序文件所佔的內存
至於a的效率提高了,這個不對,因為函數多了,會頻繁的進行壓棧出棧的操作,加大cpu的工作負荷,整個程序的效率變低了。
題號:5
C語言規定,函數返回值的類型是由( )所決定。
選項:
a、return語句中的表達式類型
b、調用該函數時的主調函數類型
c、調用該函數是系統臨時指定
d、在定義該函數時所指定的函數類型
這個可以參考第二題,函數的定義規則,當然是由定義的時候確定的了。
本題答案為d。
題號:6
凡是函數中未指定存儲類別的局部變數,其隱含的存儲類別為( )
選項:
a、auto
b、static
c、extern
d、register
這個題目容易,沒有指定當然是自動指定的了。
本題答案為a。
另外一個小知識,我們平常看到的int a,b,c;實際上省略了auto,全部應該是 auto int a,b,c;
題號:7
以下程序的運行結果是( )void sub (int x,int y,int *z){*z=y-x;}main(){int a,b,c;sub
(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%4d,%4d,%4d",a,b,c);}
選項:
a、5, 2, 3
b、 -5, -12, -7
c、 -5, -12, -17
d、 5, -2, -7
void sub (int x,int y,int *z)
{
*z=y-x;
}
main()
{
int a,b,c;
sub(10,5,&a); 執行完這句a的值為-5;
sub(7,a,&b);執行完這句b的值為-12;
sub(a,b,&c);執行完這句c的值為-7
printf("%4d,%4d,%4d",a,b,c);
}
答案為b;
題號:8
若用數組名作為函數調用的實參,傳遞給形參的是( )
選項:
a、數組的首地址
b、數組第一個元素的值
c、數組中全部元素的值
d、數組元素的個數
本題答案為a
數組名為數組的首地址,也是數組第一個元素的值的地址。數組名是一個地址。
題號:9
若使用一位數組名作為函數實參,則以下正確的說法是( )
選項:
a、必須在主調函數中說明此數組的大小
b、實參數組類型與形參數組類型可以不匹配
c、在被調函數中,不需要考慮形參數組的大小
d、實參數組名與形參數組名必須一致
本題答案為a,
必須在主調函數中定義該數組的大小。也就是該數組大小應該被提前設定好。
int a[10]可以作為參數,int a[x]不可以作為參數。
題號:10
如果在一個復合語句中定義了一個變數,則有關該變數正確的說法是( )
選項:
a、只在該復合語句中有效
b、只在該函數中有效
c、在本程序范圍內均有效
d、為非法變數
答案為