當前位置:首頁 » 存儲配置 » c語言中形參的默認存儲類別是

c語言中形參的默認存儲類別是

發布時間: 2025-08-26 07:39:14

① 下半年計算機二級c語言基礎試題

下半年計算機二級c語言基礎試題

任何設計活動都是在各種約束條件和相互矛盾的需求之間尋求一種平衡,程序設計也不例外。下面是我收集的關於計算機二級c語言基礎試題,希望大家認真閱讀!

下半年計算機二級c語言基礎試題1

一、選擇:

1.給出以下定義:

char acX[ ]= "abcdefg";

char acY[ ]= {'a','b','c','d','e','f','g'};

則正確的敘述為( )

A) 數組acX和數組acY等價 B) 數組acX和數組acY的長度相同

C) 數組acX的長度大於數組acY的長度 D) 數組acX的長度小於數組acY的長度

答案:C

2.

void example(char acHello[])

{

printf("%d", sizeof(acHello));

return;

}

void main()

{

char acHello[] = "hello";

example(acHello);//數組名稱作參數,傳的是地址,一個地址佔四個位元組

return;

}

的輸出是

A 4 B 5 C 6 D不確定

答案:A

3. 有以下程序段

char acArr[]= "ABCDE";

char *pcPtr;

for(pcPtr = acArr; pcPtr < acArr + 5; pcPtr++)

{

printf("%s/n", pcPtr);

}

return;

輸出結果是( )

A) ABCD B) A C) E D) ABCDE

B D BCDE

C C CDE

D B DE

E A E

答案:D

4.在中斷中,不能同步獲取信號量,但是可以釋放信號量。

A.正確 B.錯誤

答案:A

5.以下敘述中不正確的是( )

A) 在不同的函數中可以使用相同名字的變數

B) 函數中的形式參數是局部變數

C) 在一個函數內定義的變數只在本函數范圍內有效

D) 在一個函數內的復合語句中定義的變數在本函數范圍內有效(復合語句指函數中的成對括弧構成的代碼)

答案:D

6.設有如下定義:

unsigned long pulArray[] = {6, 7, 8, 9, 10};

unsigned long *pulPtr;

則下列程序段的輸出結果為( )

pulPtr = pulArray;

*(pulPtr + 2) += 2;

printf ("%d,%d/n", *pulPtr, *(pulPtr + 2));

A)8,10 B)6,8 C)7,9 D)6,10

答案:D

7. 定義結構體時有下面幾種說法,請指出正確的(多選):______

A、結構體中的每個部分,最好進行四位元組對齊;

B、結構體的總長度最好是四位元組對齊;

C、結構中成員的存放不用考慮位元組對齊情況;

答案:A、B

8.void example()

{

int i;

char acNew[20];

for(i = 0; i < 10; i++)

{

acNew[i] = '0';

}

printf("%d/n", strlen(acNew));

return;

}

的輸出為( )

A 0 B 10 C 11 D不確定

答案:D

9.switch(c)中的c的數據類型可以是char、long、float、unsigned、bool. ( )

A. 正確 B. 錯誤

答案:B

10. 網路上傳輸的位元組序默認是大位元組的,如果主機是小位元組序,在網路通信時則須進行位元組序轉換;如果主機是

大位元組序,為了程序的一致性及可移植性,最好也在程序中加上位元組序轉換的操作(空操作)。

A. 正確 B.錯誤

答案:A

二、 填空題

1、 C語言函數返回類型的默認定義類型是

2、 函數的實參傳遞到形參有兩種方式: 和

3、在一個函數內部調用另一個函數的調用方式稱為 。在一個函數內部直接或間接調用該函數成為函數 的調用方式

4、C語言變數按其作用域分為 和

5、凡在函數中未指定存儲類別的局部變數,其默認的存儲類別為

三、 看程序寫結果

1、#include

Int abc(int u,int v);

Void main()

{int a=24,b=16,c;

c=abc(a,b);

printf(「value=%d」,c);

}

Int abc(int u, int v)

{int w;

While(v)

{w=u%v;

u=v;

v=w;

}

Return u;

}

2、#include

int x1=30,x2=40;

main()

{int x3=10,x4=20;

sub(x3,x4);

sub(x2,x1);

printf(「%d,%d,%d,%d 」,x3,x4,x1,x2);

}

sub(int x,int y)

{x1=x;x=y;y=x1;}

3、#include

Main()

{int i=5;

Printf(「%d 」,sub(i));

}

sub(int n)

{int a;

If(n==1) return 1;

a=n+sub(n-1);

return (a);

}

4、#include

Void fun()

{static int m;

m+=2;

printf(「%d 」,m);

}

Main()

{int a;

For(a=1;a<=4;a++) fun();

Printf(「 」);

}

四、 編程

1、 編寫一個函數,判斷任一整數是否為素數,用main()函數調用並測試之。

2、 用遞歸方法求n!

3、 有一個一維數組,內放10個學生成績,寫一個函數,求出平均分,最高分和最低分

下半年計算機二級c語言基礎試題2

1.下列敘述中正確的是( )。

A. 所有數據結構必須有根結點

B. 所有數據結構必須有終端結點(即葉子結點)

C. 只有一個根結點,且只有一個葉子結點的數據結構一定是線性結構

D. 沒有根結點或沒有葉子結點的數據結構一定是非線性結構

【答案】D

【解析】D項正確,線性結構的特點是:

①集合中必存在「第一個元素"且惟一;

②集合中必存在「最後一個元素」且惟一;

③除最後一個元素外,其他數據元素均有惟一的「後繼;

④除第一個元素外,其他數據元素均有惟一的「前驅」。所以沒有根結點或沒有葉子結點的數據結構一定是非線性結構。AB兩項錯誤,不是所有數據結構都必須有根結點和葉子結點;C項錯誤,數據結構中若有中間結點不滿足只有一個前件或者後件的條件,就不是線性結構。答案選擇D選項。

2. 以下敘述中錯誤的是( )。

A. C語言中的每條可執行語句和非執行語句最終都將被轉換成二進制的機器指令

B. C程序經過編譯、鏈接步驟之後才能形成一個真正可執行的二進制機器指令文件

C. 用C語言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個文本文件中

D. C語言源程序經編譯後生成後綴為.obj的目標程序

【答案】A

【解析】A項錯誤,注釋語句不會被翻譯成二進制的'機器指令。C源程序經過C編譯程序編譯之後生成後綴為.obj的二進制文件(稱為目標文件),然後由「鏈接程序」(Link)的軟體把.obj文件與各種庫函數連接起來生成一個後綴為.exe的可執行文件。答案選擇A選項。

3. C語言主要是藉助以下( )功能來實現程序模塊化的。

A. 定義函數

B. 定義常量和外部變數

C. 三種基本結構語句

D. 豐富的數據類型

【答案】A

【解析】C程序的模塊化主要通過函數來實現。C語言允許對函數單獨進行編譯,從而可以實現模塊化。答案選擇A選項。

4. 有以下程序段:

char ch;

int k;

ch='a';

k=12;

print("%c,%d,",h,ch,k);

printf("k=%d ",k);

已知字元a的ASCII碼十進制值為97,則執行上述程序段後輸出的結果是( )。

A. 因變數類型與格式描述符的類型不匹配輸出無定值

B. 輸出項與格式描述符個數不符,輸出為零值或不定值

C.a,97,12k=12

D. a,97,k=12

【答案】D

【解析】字元變數的值是該字元的ASCII碼值,可以參與整型變數所允許的任何運算。"ch='a",%c表示以字元格式輸出ch的值,所以輸出為a;%d表示以十進制代碼的形式輸出ch的值,為97;k沒有對應的輸出格式,不輸出。在第二個語句中,首先輸出"k=",然後以十進制代碼輸出k的值,為12。答案選擇D選項。

5. 下列敘述中正確的是( )。

A. 棧是「先進先出」的線性表

B. 隊列是「先進後出"的線性表

C. 循環隊列是非線性結構

D. 有序線性表既可以採用順序存儲結構,也可以採用鏈式存儲結構

【答案】D

【解析】有序的線性表既可採用順序存儲結構,也可以採用鏈式存儲結構。A項錯誤,棧是「先進後出"的線性表B項錯誤,隊列是「先進先出"的線性表;C項錯誤,循環隊列是線性結構的,有序的線性表既可採用順序存儲結構,也可採用鏈式存儲結構。

答案選擇D選項。

6. 某二叉樹的中序序列為DCBAEFG,後序序列為DCBGFEA,則該二叉樹的深度(根結點在第1層)為( )。

A. 5

B. 40

C.3

D. 2

【答案】B

【解析】二叉樹的後序序列為DCBGFEA,則A為根結點。中序序列為DCBAEFG,則DCB為左子樹結點,EFG為右子樹結點。同理B為C父結點,C為D父結點。根據分析,可畫出左子樹,同理E為F父結點,F為G父結點。根據分析,可畫出右子樹,故二叉樹深度為4層。答案選擇B選項。

7. 設有定義:struct{intn;floatx;}s[2],m[2]={{10,2.8},{0,0.0}};,則以下賦值語句中正確的是( )。

A. s[0]=m[1];

B. s=m;

C.s.n=m.n;

D. s[2].x=m[2].x;

【答案】A

【解析】定義了結構體類型數組s,長度為2,結構體類型數組m,長度為2,並對數組m進行了初始化。同類型的結構體可以直接用變數名實現賦值,A項正確;數組名為數組首地址,地址常量之間不可以相互賦值,B項錯誤;數組名為地址常量不是結構體變數,不能引用成員,C項錯誤;s[2]與m[2]數組越界,D項錯誤。答案選擇A選項。

8. 關於C語言標識符,以下敘述錯誤的是( )。

A. 標識符可全部由數字組成

B. 標識符可全部由下劃線組成

C. 標識符可全部由小寫字母組成

D. 標識符可全部由大寫字母組成

【答案】A

【解析】C語言標識符只能由字母、數字、下劃線構成,且只能以字母、下劃線開頭,故答案選擇A選項。

9. 以下程序段中的變數已定義為int類型,則

sum=pAd=5;

pAd=sum++,++pAd,pAd++;

printf("%d ",pAd);

程序段的輸出結果是( )。

A. 6

B. 4

C. 5

D. 7

【答案】D

【解析】自增和自減運算符的兩種用法:前置運算,運算符放在變數之前,規則是先使變數的值增(或減)1,然後以變化後表達式的值參與其他運算;後置運算,運算符放在變數之後,規則是變數先參與其他運算,然後再使變數的值增(或減)1。執行pAd=sum++,sum++是後置自增,執行完後,pAd=5,sum=6。++pAd和pAd++語句中沒有其他運算,即效果相同,pAd分別加1,兩句執行完後,pAd7。答案選擇D選項。

;

② auto局部變數存儲在( )。(靜態存儲區、動態存儲區或寄存器)

程序的局部變數 全局變數 動態申請數據分別存儲在什麼地方?
量的類別:
根據作用域可分為全局變數和局部變數。
根據生存周期可分為靜態存儲方式和動態存儲方式,具體地又分為自動的(auto)、靜態的(static)、寄存器的(register)、外部的(extern)。
靜態存儲方式是指在程序運行期間分配固定的存儲空間的方式,動態存儲方式是在程序運行期間根據需要進行動態的分配存儲空間的方式。

每一個變數均有作用域和存儲類別兩個屬性,這些屬性共同用於描述一個變數,這些不同類型的變數與存儲位置的關系如下:
外部變數(全局變數)、靜態外部變數、靜態局部變數存儲在靜態存儲區。
自動局部變數(局部變數默認為自動局部變數)、函數形參存儲在動態存儲區,不論是靜態存儲區還是動態存儲區均屬於內存中的用戶區。
但是,寄存器變數是存儲在CPU寄存器中的而不是內存中。

首先說明一下與作用域相關的幾個屬性:
局部變數:在一個函數內部定義的變數是內部變數,它只在本函數范圍內有效,也就是說只有在本函數內才能使用它們,在此函數以外是不能使用這些變數的,這種類型的變數就稱為「局部變數」。
全局變數:在函數外定義的變數,可以為本源文件中其它函數所公用,有效范圍為從定義變數的位置開始到本源文件結束,這種類型的變數就稱為「全局變數」。

接下來說明一下與存儲類型相關的幾個屬性:
atuo:在聲明局部變數時,若不指定 static,默認均是 auto,這類變數都是動態分配存儲空間的,數據存儲在動態存儲區中。
static:在聲明局部變數時,使用關鍵字 static 將局部變數指定為「靜態局部變數」,這樣在函數調用結束後不消失而保留原值,即佔用的存儲單元不釋放,在下一次函數調用時,該變數已有值就是上次函數調用結束時的值。
register:在聲明動態局部變數或者函數形參時,可將變數聲明為register,這樣編譯系統就會為變數分配一個寄存器而不是內存空間,通過這種方式可提升對某些局部變數頻繁調用的程序的性能。(寄存器運算速度遠高於內存)
extern:用於擴展全局變數的作用域,比如如果函數想引用一個外部變數,但該外部變數在該函數後定義,那麼這個函數需要使用 extern 來聲明變數,這樣才能使用在該函數後面定義的全局變數。此外,extern 還可以在多文件的程序中聲明外部變數。

由於變數從不同維度劃分,形成了多種錯綜復雜的關系,在學習編程的時候需要重點關注。

③ c語言中形參的預設存儲類別是

c語言中形參或者說所有的變數,預設的存儲類別都是auto的。C語言中四種存儲類別:auto、static、extern、register 。

其中大部分均為auto,auto為默認的類別,一般未標明的都是auto;如果標明了哪種類別,那就按標明的來。

(3)c語言中形參的默認存儲類別是擴展閱讀:

形參的作用是實現主調函數與被調函數之間的聯系,通常將函數所處理的數據,影響函數功能的因素或者函數處理的結果作為形參。

沒有形參的函數在形參表的位置應該寫int main(void) 函數也可以有形參和返回值,其形參也稱為命令行參數,由操作系統在啟動程序時初始化,其返回值傳遞給操作系統。

形參的特點:

1、形參變數只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只在函數內部有效。函數調用結束返回主調用函數後則不能再使用該形參變數。

2、實參可以是常量、變數、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使參數獲得確定值。

3、實參和形參在數量上,類型上、順序上應嚴格一致,否則就會發生類型不匹配的錯誤。

4、在一般傳值調用的機制中只能把實參傳送給形參,而不能把形參的值反向地傳送給實參。因此在函數調用過程中,形參值發生改變,而實參中的值不會變化。而在引用調用的機制當中是將實參引用的地址傳遞給了形參,所以任何發生在形參上的改變實際上也發生在實參變數上。

熱點內容
postgresql預編譯語句 發布:2025-08-26 09:45:48 瀏覽:768
我的世界可刷物品的伺服器 發布:2025-08-26 09:37:56 瀏覽:274
db2導出sql 發布:2025-08-26 09:37:56 瀏覽:343
幫男人解壓的方法 發布:2025-08-26 09:22:10 瀏覽:331
提升訪問深度 發布:2025-08-26 09:03:50 瀏覽:638
教師種子磁力ftp 發布:2025-08-26 08:39:32 瀏覽:954
ftp多文件上傳 發布:2025-08-26 08:28:39 瀏覽:529
車險電子保單解壓密碼 發布:2025-08-26 08:23:23 瀏覽:608
山東濟寧dns伺服器地址 發布:2025-08-26 08:04:19 瀏覽:213
手機站火雞qq帳號密碼在哪裡看 發布:2025-08-26 08:02:44 瀏覽:949