2012-2013 C語言程序設(shè)計期末試卷(上學(xué)期3學(xué)分版)_第1頁
2012-2013 C語言程序設(shè)計期末試卷(上學(xué)期3學(xué)分版)_第2頁
2012-2013 C語言程序設(shè)計期末試卷(上學(xué)期3學(xué)分版)_第3頁
2012-2013 C語言程序設(shè)計期末試卷(上學(xué)期3學(xué)分版)_第4頁
2012-2013 C語言程序設(shè)計期末試卷(上學(xué)期3學(xué)分版)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、一、選擇題(每小題2分,共34分) 1. 以下不合法的用戶標識符是_C_。 A、j2_KEY B、Double C、4d D、_8_ 復(fù)習(xí)要點: 標識符的定義: 首字符必須是字母或下劃線;后續(xù)字符可以是字母、數(shù)字或下畫線。 C、4d 中用了4做首字符,所以不合法 2以下敘述中正確的是_A_。 A、C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方 B、花括號“”和“”只能作為函數(shù)體的定界符 C、構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名(庫函數(shù)) D、分號是C語言之間的分隔符,不是語句的一部分 復(fù)習(xí)要點: A、C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方。對, 注釋由/* */包含

2、B、花括號“”和“”只能作為函數(shù)體的定界符,不對。還可以用做復(fù)合語句的定界符,也可以做結(jié)構(gòu)體的定界符 C、構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名(庫函數(shù)),不對。庫函數(shù)聲明和主函數(shù)聲明已經(jīng)給定,只可以調(diào)用 D、分號是C語言之間的分隔符,不是語句的一部分,不對。分號是語句的結(jié)束,是語句的組成部分 3設(shè)int a=12,則執(zhí)行完語句a+=a-=a*a后,a的值是_D_。 A、0 B、264 C、144 D、-264 原因: 賦值運算賦”=”和符合賦值運算賦都是右結(jié)合性,所以,先執(zhí)行a=12然后執(zhí)行a-=a*a,即a=a-a*a, a的值為-132。最后執(zhí)行a+=a,即a=a+a.

3、4假定x和y為double型,表達式x=2,y=x+3/2的值是_D_。 A、3.500000 B、3 C、2.000000 D、3.000000 復(fù)習(xí)要點: 各種類型數(shù)據(jù)運算后的數(shù)據(jù)類型 在算術(shù)運算時,數(shù)據(jù)運算時的類型按照數(shù)據(jù)類型自動轉(zhuǎn)換的原則進行。 就這道體來說,3/2是整數(shù)和整數(shù)相除,計算結(jié)果還是整數(shù),且沒有4舍5入的概念。 所以3/2的結(jié)果為1。則x+1是double類型和 int類型的和,結(jié)果的類型應(yīng)該為double類型。 即2.0+1的最后結(jié)果3.000000 5語句:printf(%d,(a=2)&(b=-2);的輸出結(jié)果是_B_。 A、2 B、1 C、-4 D、-2 復(fù)習(xí)要點:

4、邏輯運算符” &”是”與”運算,即只有兩個操作數(shù)為真,結(jié)果才為真。在判斷兩個操作a和b數(shù)的值時,都是非0,即a和b為真。運算結(jié)果為真用1表示,故B 對, 6若變量c為char類型,能正確判斷出c為小寫字母的表達式是_D_。 A、a=c=a)|(c=z) C、(a=c) D、(c=a)&(c=z) 原因: A)錯,不可能用兩個運算符“=”表達一個數(shù)值的范圍,學(xué)生常常犯這個錯誤 B)錯,邏輯運算符”|”是”或”運算,即只要有一個操作數(shù)為真,結(jié)果為真,這里顯然要兩個操作數(shù)都為真,所以不可以用 C)錯,and 不是一個C語言運算符 復(fù)習(xí)要點:邏輯運算符” &”是”與”運算,即只有兩個操作數(shù)為真,結(jié)果才

5、為真。 7在嵌套使用if語句時,C語言規(guī)定else總是_C_。 A、和之前與其具有相同縮進位置的if配對 B、和之前與其最近的if配對 C、和之前與其最近的且不帶else的if配對 D、和之前的第一個if配對 這道題出得不太好,正確回答應(yīng)該是:在語法允許的情況下,和之前與其最近的且不帶else的if配對。 例如: if(a) if(b a=1; else b=2; 這里else 只能和if(a) 配對。 不可以和if(b,因為在語法上, if(b a=1; 是一條復(fù)合語句,語法上不可能和復(fù)合語句外的語句 配對 8以下循環(huán)體的執(zhí)行次數(shù)是_C_。 main() int i,j; for (i=0,

6、j=1; i=j+1;i+=2,j-) printf(%d n,i); A、3 B、2 C、1 D、0 原因:循環(huán)控制表達式 i=j+1為假時,循環(huán)結(jié)束 第一次判斷 :i=0, j=1:i=j+1為真。執(zhí)行1次 第二次判斷 :i=2, j=0:i=j+1為假,退出 9int a23=1,2,3;,則a01的值是_D_。 A1 B. 2 C. 3 D. 0 復(fù)習(xí)要點:數(shù)組的初始化,給部分數(shù)組元素賦值時,沒有賦值的數(shù)組元素的值為0 10. 以下對二維數(shù)組a的正確說明是_B_。 A. int a5; B. float a54; C. double a4; D. float a(5)(4); 復(fù)習(xí)要點

7、:數(shù)組的定義: 元素個數(shù)國定,類型相同的元素集合。 即數(shù)組定義時,下標運算符中必須時整型常量表達式。 所以:A和B 顯然錯,下標運算符中無值且沒有初始化 D. 錯,下標運算符不可以用() 11有以下程序 main() int i,t3=9,8,7,6,5,4,3,2,1; for(i=0;i=0b=0)&(a0b=0&b=0)&(a0&b0)&(a+b0 原因:A、錯 (a=0b=0)表示a和b不一定同時為正。 (a0b0) 表示a和b 二、填空題(每小題2分,共16分) 1表示條件:10x100或x0的C語言表達式是_(10x&x100)| (x0)_。 2. 若函數(shù)調(diào)用語句為f(a, b,

8、 f(a+b,a-b,b);,則函數(shù)f的參數(shù)個數(shù)是_3_。 分別為a, b和f(a+b,a-b,b)。第三個參數(shù)是一個函數(shù)調(diào)用 3若有以下整型的a數(shù)組:int a10=9,4,12,8,2,10,7,5,1,3; 則:aa9的值為_8_; aa4+a8的值為_8_。 計算過程: a9 的值 3 aa9即為 a3. 其值為8 a4+a8為 21 aa4+a8即為 a3,其值為8 4若有以下程序段: int a5=2,4,6,8,10, *p, k, m; p = &a2; k = *(p-); m = *(p-); 則程序段執(zhí)行完后k的值為_6_; m的值為_4_。 計算過程: p = &a2;

9、 p指向 a2 k = *(p-); p是后綴減。 先把a2的值6賦給k, 然后 p-,指向 a1 m = *(p-); 這時,先把a1的值4賦給m 5下面程序的功能是輸出以下形式的金字塔圖案是: * * * * 在下劃線處填入的正確的表達式。 main() int i,j; for(i=1;i=4;i+) for(j=1;j=4-i;j+) printf( ); for(j=1;j=_2*i-1_;j+) printf(*); printf(n); *的個數(shù)是隨行變量i每次增加2,填 2*i-1 6以下程序的功能是計算:1+12+123+1234+12345。請?zhí)羁铡?Main() int

10、t= 0,s=0,I; for (I=1;I=5;I+) t=I + _t*10_ ; s=s+t; printf(“s=%dn”,s); 當前項t得值為已經(jīng)得到前一項值乘10再加循環(huán)變量I值 , t=t*10+I 7.下面的程序用指針變量輸出數(shù)值,其中兩條語句有語法錯誤,請在空格處填上正確語句。 #include void main() int a =1,2,3,4,5,6,7,8,9,10,*p; *p=a; /*語句錯誤*/ _p=a_ printf(%fn,*p+9); /*語句錯誤*/ _ printf(%dn,*p+9); _ printf(%fn,*p+9); 改為 printf

11、(%dn,*p+9); 格式符d 用于輸出整數(shù) 8下面的程序采用輾轉(zhuǎn)相除法與函數(shù)求兩個整數(shù)的最大公約數(shù),其中兩條語句有語法或算法錯誤,請在空格處填上正確語句。 #include void main() int gcd(int a, int b); int a,b,abd; printf(intput data a b:n); scanf(%d,%d,a,b); /*語句錯誤*/ _ scanf(%d,%d,&a,&b); _ abd=gcd(a,b); printf(abd=%dn,abd); int gcd(int x,int y) int t; if(xy) t=x;x=y;y=t; wh

12、ile(y!=0) t=x%y;x=y;x=t; /*語句錯誤*/ _y=t_ return x; 三、程序分析題(每題5分,共25分) 1.寫出下面程序的運行結(jié)果。 #include int a=10, b=20; a+=b; b=a-b; a-=b; printf(a=%d,b=%dn,a,b); 2. 寫出下面程序的運行結(jié)果。 #include main() int i; for(i=1;i7;i+) if(i%2) printf(*); else continue; printf(#); printf($n); 3. 寫出下面程序的運行結(jié)果。 main( ) int a33=1,2,3

13、,4,5,6,7,8,9; int x=0,y=0; for(i=0;i3;i+) for(j=0;j3;j+) if(i=j) x +=aij; for(i=0;i=0;j-) if(i+j=2) y +=aij; printf(x=%d,y=%dn,x,y); 4. 寫出下面程序的運行結(jié)果。 #include int a=100; fun() static int a =20; a+; printf(%dn,a); void main() int i; for(i=1;i=3;i+) a+; printf(%d,a); fun(); 5. 寫出下面程序的運行結(jié)果。 main() int a=1,2,3,4,5,6,7,8,9,10,*p; p=a; *(p+3)+=2; printf(%d,%dn,*p,*(p+3); p+=3; printf(%d,%dn,*p,*(p+3); 四、程序設(shè)計(共25分)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論