C語言期末考試樣題

2023-01-08 15:54:03 字數 4023 閱讀 3219

一、選擇題(每小題1分,共30分)

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

a) 在c程式中,main函式必須位於程式的最前面

b) c程式的每行中只能寫一條語句

c) c語言本身沒有輸入輸出語句

d) 在對乙個c程式進行編譯的過程中,可發現注釋中的拼寫錯誤

2.乙個c語言程式的基本單位是( )

a) 函式b) 子程式 c) 過程d) 命令

3.乙個c語言的語句必須使用的結束符號是( )

abcd) ;

4.下列選項中,可以作為c語言識別符號的是( )

a) 3stu b) #stu c) stu3d) stu.3

5.設有說明:char w; int x; float y; double z;則表示式w*x+z-y值的資料型別為( )

a) floatb) charc) intd) double

6.下列敘述正確的是( )

a)賦值語句中的「=」是表示左邊變數等於右邊表示式

b)賦值語句中左邊的變數值不一定等於右邊表示式的值

c)賦值語句是由賦值表示式加上分號構成的

d)x+=y;不是賦值語句

7.若x為int型變數,則執行x=6; x+=x-=x*x; 語句後,x的值為( )

a) 36b) -60c) 60d) -24

8.若有a=2,b=3,c=4,則表示式a= =3和a=3的值分別為( )

a) 0和0 b)1和3 c)3和3 d)0和3

9.使條件表示式(year%4==0&&year%100!=0)||(year%400==0)結果為假的值是( )

a) 1950b) 2000c) 1996d) 2004

10. 若x、i、j、k都是int型變數,則計算下面表示式後,x的值為( )。

x=(i=4,j=16,k=32)

a) 4b) 16c) 32 d) 52

11. 邏輯運算子兩側運算物件的資料型別( )

a) 只能是0和1b) 只能是0或非0正數

c) 只能是整型或字元型資料d) 可以是任何型別的資料

12. 若希望當a的值為奇數時,表示式的值為「真」,a的值為偶數時,表示式的值為「假」。則以下不能滿足要求的表示式是( )

a) a%2==1 b) !(a%2==0) c) !(a%2d) a%2

13.語句while(!e);中的表示式!e等價於( )。

a) e==0 b)e!=1 c)e!=0 d)e==1

14.下面程式段的執行結果是( )

a=1;b=2;c=2

while (a printf(%d,%d,%d」,a,b,c);

a) 1,2,0 b) 2,1,0 c)1,2,1 d) 2,1,1

15.以下程式段( )

x=-1;

do while(!x);

a)是死迴圈b)迴圈執行二次

c)迴圈執行一次d)有語法錯誤

16.以下正確的函式原形說明語句是( )

a) void fun (int xb) float fun (void y);

c) double fun (xd) int (char ch);

17.在c語言中,形參必須是( )

a) 常量 b) 變數 c.)數值d)表示式

18.c語言的函式( )

a) 可以巢狀呼叫,不能遞迴呼叫b) 可以巢狀定義

c) 既可以巢狀呼叫,也可以遞迴呼叫 d) 不可以巢狀呼叫

19.合法的陣列定義是( )

a)int a[ ]=」stringb)int a[5]=;

c)char a=」stringd)char a[ ]=;

20.表示式strlen(「string」)+strlen(「c」)的運算結果為( )

a)9b)10c)7d)8

21.若有定義和語句:char s[10]; s=「abcd」; printf(「%s\n」,s); 則結果是( )(以下u代表空格)

a)abcdb)a

c)abcd u u u u ud)編譯不通過

22.若已定義:int a[9],*p=a;並在以後的語句中未改變p的值,不能表示a[1]位址的表示式是( )

a)p+1b)a+1c)ad)++p

23.若有int x, *pb; 則正確的賦值表示式是

a)pb=&x b)pb=x; c)*pb=&x; d)*pb=*x

24.設有程式段:char s[ ]=」china」; char *p ; p=s ;則下面敘述正確的是( )

a)s和p完全相同

b)陣列s中的內容和指標變數p中的內容相等

c)*p與s[0]相等

d)s陣列長度和p所指向的字串長度相等

25.下面對結構變數的敘述中錯誤的是( )

a)相同型別的結構變數間可以相互賦值

b)通過結構變數,可以任意引用它的成員

c)結構變數中某個成員與這個成員型別相同的簡單變數間可相互賦值

d)結構變數與簡單變數間可以賦值

26.若有結構型別定義如下:

struct bd

r,*p=&r;

那麼,對r中的成員x的正確引用是( )

a)(*p). b)(*p).x c)p-> d)

27.在乙個函式裡不能說明( )

a)全域性變數b)靜態變數

c)區域性變數d)靜態區域性變數

28.以下關於檔案包含的說法中錯誤的是( )

a)檔案包含是指乙個原始檔可以將另乙個原始檔的全部內容包含進來。

b)檔案包含處理命令的格式為

#include 「包含檔名」 或 #include 《包含檔名》

c)一條包含命令可以指定多個被包含檔案

d)檔案包含可以巢狀,即被包含檔案中又包含另乙個檔案。

29.下列語句中,將c定義為檔案型指標的是( )

a)file cb)file *c;

c)file cd)file *c;

30.下面對typedef的敘述中不正確的是( )

a)用typedef可以定義各種型別名,但不能用來定義變數

b)用typedef可以增加新型別

c)用typedef只是將已存在的型別用乙個新的識別符號來代表

d)使用typedef有利於程式的通用和移植

二、寫出下列程式的執行結果(每小題3分,共24分)

1. 以下程式的輸出結果是 。

#include ""

main()

}2.以下程式的輸出結果是 。

#include <>

void main()

printf(「x=%d\n」,x)

}3. 以下程式的輸出結果是 。

#include ""

static int x=20;

void f1(int x)

void f2()

void main()

4.以下程式的輸出結果是 。

#include <>

#define s 『 』

void main()

putchar(『\n』);

}}5. 以下程式的輸出結果是 。

#include <>

void main()

;int *p=a;

++p;

printf(「%d %d %d %d\n」,*a,*(a+2),*(p+1),p[1]);

}6.下面程式的執行結果是( )

#include 「

void main()

7. 下面程式的執行結果是( )

#include 「

void main()

{ int *p,i;

i=100;

c語言期末考試程式題總結

1.字串連線 6.13 編寫乙個程式,將兩個字串連線起來,不要用strcat函式。include intmain 2.函式的遞迴呼叫 7.13 p219 include int main float p intn,int x 3.冒泡法排序 7.11 寫乙個函式,用 起泡法 對輸入的十個字元按由小到...

C語言期末考試試題 A

忻州師範學院電腦科學與技術系 2005 2006學年第二學期 c語言 期末試題 a卷 考試班級 2005本16班考試時間 110分鐘 一 填空題 每空3分,共30分 1 若從鍵盤輸入58,則以下程式輸出的結果是 main 2 以下程式的輸出結果是 main 3 以下程式的輸出結果是 main 以下程...

大一C語言期末考試參考

c語言總複習 總體上必須清楚的 1 程式結構是三種 順序結構,迴圈結構 三個迴圈結構 選擇結構 if和switch 2 讀程式都要從main 入口,然後從最上面順序往下讀 碰到迴圈做迴圈,碰到選擇做選擇 3 計算機的資料在電腦中儲存是以二進位制的形式.資料存放的位置就是他的位址.4 bit是位是指為...