《C程序設(shè)計基礎(chǔ)及實驗》課程期中考試試卷試題參考答案_第1頁
《C程序設(shè)計基礎(chǔ)及實驗》課程期中考試試卷試題參考答案_第2頁
《C程序設(shè)計基礎(chǔ)及實驗》課程期中考試試卷試題參考答案_第3頁
《C程序設(shè)計基礎(chǔ)及實驗》課程期中考試試卷試題參考答案_第4頁
《C程序設(shè)計基礎(chǔ)及實驗》課程期中考試試卷試題參考答案_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、浙江大學(xué)C程序設(shè)計基礎(chǔ)及實驗課程期中考試試卷參考答案考試日期: 2017年 12 月 8 日,考試時間: 70 分鐘誠信考試,沉著應(yīng)考,杜絕違紀(jì)??忌彰?學(xué)號: 所屬院系: _(注意:答題內(nèi)容必須寫在答題卷上,寫在本試卷上無效)試題一、單選題(每小題2分,共20分)1. 以下正確的字符常量是_。A412B255C08D【解答】A 八進(jìn)制412超出了8位二進(jìn)制所能表示的范圍03ff;B 255是一個合法的整數(shù),可以表示一個字節(jié)的值;C 8不是一個合法的八進(jìn)制數(shù)字;D 是轉(zhuǎn)義字符,表示單個單引號字符本身,所以。字符常量缺少右單引號。2. 假設(shè)有定義:float x=16/5/2.0, y=16

2、/5.0/2; 則 x 和 y 的值分別為_。A1.5 1.6B1.6 1.6C1.5 1.5D1.6 1.5【解答】16/5/2.0 è (16/5)/2.0 è 3/2.0 è 1.516/5.0/2 è (16/5.0)/2 è 3.2/2 è 1.63. 下列語句中, _ 將輸出%d。Aprintf(“%d”);Bprintf(“%d”);Cprintf(“%d”);Dprintf(“%d”)【解答】A%d表示輸出十進(jìn)制整型量,但缺少相應(yīng)的輸出表達(dá)式,故輸出結(jié)果是隨機值;B%表示輸出一個%符號本身,d是普通字符,原樣輸出,所以

3、輸出%d;C%表示符號%,%d表示輸出十進(jìn)制整型值,故輸出結(jié)果是隨機值;D%表示輸出符號%本身,%d表示輸出十進(jìn)制整型值。4. 下列程序段輸出結(jié)果為 _。int x=1, y=012;printf(“%d”,y*x+);A12B10C20D24【解答】x+表達(dá)式的值是1,y*x+ è y*1 è y è 012 è 105. 下列程序段輸出結(jié)果為 _。int a=1,b=2,c=2,t;while(a<b<c) t=a; a=b; b=t; c-;printf(“%d,%d,%d”,a,b,c);A1,2,0B2,1,0C1,2,1D2,1,

4、1【解答】a=1,b=2,c=2(1) 表達(dá)式a<b<c è 1<2<2 è 1 < 2 è 1條件成立,則執(zhí)行循環(huán)體,結(jié)果為:a=2,b=1,c=1(2) 表達(dá)式a<b<c è 2<1<1 è 0 < 1 è 1條件成立,則執(zhí)行循環(huán)體,結(jié)果為:a=1,b=2,c=0(3) 表達(dá)式a<b<c è 1<2<0 è 1 < 0 è 0條件不成立,循環(huán)結(jié)束。6. 在下圖中,陰影部分區(qū)域可用表達(dá)式_來表示。 X a b cA

5、(x<=a)&&(x>=b)&&(x<=c)B(x<=a)|(b<=x<=c)C(x<=a)|(x>=b)&&(x<=c)D(x<=a)&&(b<=x<=c)【解答】(x<=a)| (x >=b) && (x <= c) è (x<=a)| (x>=b) && (x <= c)7. 下列程序段輸出結(jié)果為 _。int x = -3, y = 2; if(x>y); x = -x;

6、 if(x<y) y = -y; printf("x=%d,y=%dn", x, y);Ax=3,y=-2Bx=3,y=2Cx=-3,y=2Dx=-3,y=-2【解答】x=3,y=2;請注意:if(x>y);8. 對于循環(huán)while(!e) 語句,!e等價于_。Ae=0Be!=0Ce=1;De!=1【解答】!ee=0e!=0e=1e!=1e為011001e 為非00010/10/19. 循環(huán) for(i=0, j=5; +i!=-j; ) printf(“%d %d”, i, j); 將執(zhí)行_。A6次B3次C0次D無限次【解答】(1) i=0, j=5: +i

7、è 1 , -j è 4, i=1,j=4, 1 != 4成立;打印;i=1, j=4;(2) i=1,j=4: +I è 2 , -j è 3, i=2,j=3, 2 != 3成立;打??;i=2, j=3;(3) i=2,j=3: +I è 3, -j è 2, I = 3, j=2, 3 != 2成立;打印;i=3,j=2;(4) 10. 下列程序段執(zhí)行后s值為_。int i=5, s=0;do if (i%2) continue; else s+=i; while (-i);A15B9C6D以上均不是【解答】(1) I=5,s=

8、0: i%2è5%2è1成立:continue;-iè4, i=4;(2) I=4,s=0: i%2è4%2è0不成立:s=0+4=4;-iè3, i=3(3) I=3,s=4: i%2è3%2è1成立:continue;-iè2, i=2(4) I=2,s=4: i%2è2%2è0不成立:s=4+2=6; -iè1,i=1(5) I=1,s=6: i%2è1%2è1成立:continue;-iè 0試題二、填空題(每小題2分,共20分)1. 表

9、達(dá)式 1+4/5+15<7+4%5+(8,10) 的值為 _?!窘獯稹?+(4/5)+15<7+4%5+(8,10) è 1+0+15<7+4%5+(8,10)è1+15<7+4%5+(8,10)è16<7+4%5+(8,10)è16<7+4+(8,10)è16<11+(8,10)è16<11+10è16<21è12. 表達(dá)式 !5 的值為 _?!窘獯稹?5 è !(!5) è!0è1 3. 表達(dá)式 (10<<1)&am

10、p;4 的值為_?!窘獯稹?0: 0000101010<<1: 00010100(10<<1): 4: 00000100&- 00000000 即 04. 假設(shè)有定義:int x=10;則表達(dá)式 0<=x<=9 的值為 _?!窘獯稹?<=x<=9 è (0<=x)<=9 è (0<=10) <=9 è 1 <= 9 è 15. 下列 for循環(huán)語句將輸出: 0 1 2 0 1 2 0 1 2. for( i=1; i<=9; i+ ) printf("%

11、2d", _);【解答】 (i-1)%36. 對于定義: int m=5, y=2; 當(dāng)計算表達(dá)式y(tǒng)+=y-=m*=y 后,y的值為_?!窘獯稹縴+=y-=m*=y ó y += (y -= (m *=y)先計算m*=y: 由于m=5, y=2, 所以:m=m*y=5*2è10再計算y-=10: 由于y=2,所以:y = y-10=2-10è -8最后計算y += -8: 由于y=-8,所以:y = y+(-8)=(-8)+(-8)è-167. 對于char c; 若已知其值為小寫字母, 則將其轉(zhuǎn)換為相應(yīng)大寫字母的表達(dá)式為_。【解答】c-a+A

12、8. 下列語句的輸出結(jié)果為_。printf("%d#%x#", 027, 27);【解答】23#1b#9. 已知字符a的ASCII碼為97,則下列語句的輸出結(jié)果為_。printf("%c#%d#",98,c);【解答】b#99#10. 下列程序段將輸出_。unsigned char x=255,y=1;switch(!x) case 0: printf("*0*#");break;case 1:switch(y) case 0: printf("*1*#");break;case 1: printf("*

13、2*#");break;default: printf("*3*#");【解答】*2*#*3*#試題三、程序閱讀題(每小題6分,共30分)1. 下列程序?qū)⑤敵鯻。 #include <stdio.h> void swap(int x, int y) int t;t=x; x=y; y=t;return;void main(void) int a=3, b=2; swap(a, b); printf("%d#%d#", a, b);return;【解答】3#2#注:盡管在函數(shù)swap()里,形參x和y的值發(fā)生了交換,但根據(jù)函數(shù)參數(shù)的傳

14、遞原則“實參向形參單向傳值(即x向a賦值,y向b賦值),形參的改變不影響實參”,實參變量a和b的值未發(fā)生交換!2. 下列程序?qū)⑤敵鯻。# include <stdio.h>int s; int f(int m) static int k=0; for(; k<=m; k+) s+; return s;void main(void ) int s=1;s=f(2)+f(2); printf("%d#%d#", s, f(20);return;【解答】輸出結(jié)果為:6#21#注:(1)全局變量s的初始值為0; (2)在f函數(shù)中,s是全局變量有效,而在main函數(shù)

15、中,s是局部變量有效; (3)在f函數(shù)中,k是靜態(tài)變量,每次函數(shù)f調(diào)用結(jié)束后,其內(nèi)存單元和值仍然保留。3. 若輸入:1273 <回車>,以下程序的輸出結(jié)果是_。#include <stdio.h>void main(void)int n, m;scanf(“%d”, &n);m=0;while (n>0) m=m*10+n%10; n/=10;printf(“%d”, m);return;【解答】輸出結(jié)果是:37214. 若輸入 -6+15*3/5=<回車> , 以下程序的輸出結(jié)果是_。 #include <stdio.h> voi

16、d main() int m=0, sum=0; char c, oldc='+' do c=getchar(); if(c<='9'&&c>='0') m=10*m+c - '0' else if(oldc='+')sum += m; else sum -= m; m=0; oldc=c; printf("%d#", sum); while(c!='=');return;【解答】0#-6#9#6#1#程序的意思:對輸入的字符串掃描,若碰到數(shù)字字符序列

17、,求出相應(yīng)的整數(shù)值m;若碰到其它字符若字符是+號,則將m值加入到sum中去;若字符不是+號,則將從sum中減去m值。5. 若輸入:how are you <回車>,以下程序的輸出結(jié)果是_。#include <stdio.h>void main(void ) int word;char ch; word=0;while(ch=getchar()!='')if(ch=' ') word=0;else if(word=0)word=1;if(ch<='z'&&ch>='a') ch=c

18、h-'a'+'A'putchar(ch);return;【解答】How Are You該程序思路:碰到一個新單詞,則將該單詞首字母從小寫改為大寫,其它字符原樣輸出。提示:可借鑒統(tǒng)計單詞個數(shù)程序的算法。試題四、程序填空題(每空2分,共30分)1 輸入正整數(shù)n,計算s = 1/1! + 1/2! + 1/3! + + 1/n!的值。#include <stdio.h>void main( void) int j, k, n;double f, s;scanf("%d", &n); (1) ; s=0.0 for (k=1 ; k<=n; k+) (2) ; f=1.0 for(j=1; (3) ; j+) j<=k (4) ; f=f*j s=s+1.0/f; printf("sum=%fn", (5) ); return;2 輸入一個整數(shù),統(tǒng)計該數(shù)的位數(shù)。如:輸入12534,輸出5;輸入-99,輸出2;輸入0,輸出1。#include <stdio.h>void main(void)int count=0, number;scanf(“%d”, (6) ); &num

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論