一、選擇題(每小題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是位是指為...