C語言期中試卷答卷_第1頁
C語言期中試卷答卷_第2頁
C語言期中試卷答卷_第3頁
C語言期中試卷答卷_第4頁
C語言期中試卷答卷_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程名稱: C 考試試卷一、選擇題(每題2分,20題,共計(jì)40分)分值40得分1( A )是構(gòu)成C語言程序的基本單位。A、函數(shù) B、過程 C、子程序 D、子例程2C語言程序從 C 開始執(zhí)行。 A) 程序中第一條可執(zhí)行語句    B) 程序中第一個函數(shù)   C) 程序中的main函數(shù)          D) 包含文件中的第一個函數(shù)3表達(dá)式: 10!=9的值是_ D _.A) true B) 非零值 C) 0 D) 14.下列關(guān)于C語言的說法錯誤的是

2、( B ) 。A) C程序的工作過程是編輯、編譯、連接、運(yùn)行 B) C語言不區(qū)分大小寫。C) C程序的三種基本結(jié)構(gòu)是順序、選擇、循環(huán) D) C程序從main函數(shù)開始執(zhí)行5.下列C語言用戶標(biāo)識符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union選項(xiàng)A中的標(biāo)識符以數(shù)字開頭不滿足(2);選項(xiàng)C,E均為為關(guān)鍵字,不滿足(3);選項(xiàng)D中的“-”不滿足(1);6. 在C語言中,以 D 作為字符串結(jié)束標(biāo)志A)n B) C) 0 D)0 7.下列數(shù)據(jù)中屬于“字符串常量”的是(A )。A.“a” B.ABC C.abc0 D.a8.C語言中的簡單數(shù)據(jù)類型包括(D )。 A、整型

3、、實(shí)型、邏輯型 B、整型、實(shí)型、邏輯型、字符型C、 整型、字符型、邏輯型 D、整型、實(shí)型、字符型9、若x為int型變量,則執(zhí)行以下語句后,x的值為(B )。 x=6; x+=x-=x*x; A. 36 B. -60 C. 60 D. -2410.在C語言程序中,表達(dá)式5%2的結(jié)果是 C 。A)2.5 B) 2 C) 1 D) 311如果int a=3,b=4;則條件表達(dá)式"a<b? a:b"的值是_A_。A) 3 B) 4 C) 0 D) 1表達(dá)式1?表達(dá)式2:表達(dá)式3先計(jì)算表達(dá)式1,若表達(dá)式1成立, 則選擇計(jì)算表達(dá)式2,并表達(dá)式2的值作為整個大表達(dá)式的值;若表達(dá)式1

4、不成立,則選擇計(jì)算表達(dá)式3,并將表達(dá)式3的值作為整個大表達(dá)式的值此題中的a<b相當(dāng)于表達(dá)式1,a相當(dāng)于表達(dá)式2,b相當(dāng)于表達(dá)式3.a為3,b為4。a<b表達(dá)式1成立,因此計(jì)算表達(dá)式2,并將表達(dá)式2的值即a中的值,并作為整個表達(dá)式的值,因此整個表達(dá)式的值為312C語言中,關(guān)系表達(dá)式和邏輯表達(dá)式的值是( B ) 。A) 0 B) 0或1 C) 1 D) T或F13. 下面( D )表達(dá)式的值為4.   A) 11/3           B) 11.0/3 

5、  C) (float)11/3    D) (int)(11.0/3+0.5)(1)相同數(shù)據(jù)類型的元素進(jìn)行數(shù)學(xué)運(yùn)算(+、-、*、/)得到結(jié)果還保持原數(shù)據(jù)類型。(2)不同數(shù)據(jù)類型的元素進(jìn)行數(shù)學(xué)運(yùn)算,先要統(tǒng)一數(shù)據(jù)類型,統(tǒng)一的標(biāo)準(zhǔn)是低精度類型轉(zhuǎn)換為高精度的數(shù)據(jù)類型。選項(xiàng)A,11與3為兩個整數(shù),11/3結(jié)果的數(shù)據(jù)類型也應(yīng)為整數(shù),因此將3.666666的小數(shù)部分全部舍掉,僅保留整數(shù),因此11/3=3.選項(xiàng)B,11.0為實(shí)數(shù),3為整數(shù),因此首先要統(tǒng)一數(shù)據(jù)類型,將整型數(shù)據(jù)3轉(zhuǎn)換為3.0,轉(zhuǎn)換后數(shù)據(jù)類型統(tǒng)一為實(shí)型數(shù)據(jù),選項(xiàng)B變?yōu)?1.0/3.0,結(jié)果的數(shù)據(jù)類型也應(yīng)為實(shí)

6、型數(shù)據(jù),因此選項(xiàng)B 11.0 /3=3.666666選項(xiàng)C,先將整數(shù)11強(qiáng)制類型轉(zhuǎn)換,轉(zhuǎn)換為實(shí)型11.0,因此選項(xiàng)C變?yōu)?1.0/3,其后計(jì)算過程、結(jié)果與選項(xiàng)B同選項(xiàng)D,首先計(jì)算11.0/3,其計(jì)算過程、結(jié)果與選項(xiàng)B同,得到3.666666;再計(jì)算3.666666+0.5=4.166666,最后將4.166666強(qiáng)制類型轉(zhuǎn)換為整型,即將其小數(shù)部分全部舍掉,結(jié)果為414. 在C語言中,函數(shù)的數(shù)據(jù)類型是指( A )A 函數(shù)返回值的數(shù)據(jù)類型 B. 函數(shù)形參的數(shù)據(jù)類型C 調(diào)用該函數(shù)時(shí)的實(shí)參的數(shù)據(jù)類型 D.任意指定的數(shù)據(jù)類型15. 在函數(shù)調(diào)用時(shí),以下說法正確的是( B)A.函數(shù)調(diào)用后必須帶回返回值B.實(shí)

7、際參數(shù)和形式參數(shù)可以同名C.函數(shù)間的數(shù)據(jù)傳遞不可以使用全局變量D.主調(diào)函數(shù)和被調(diào)函數(shù)總是在同一個文件里16. 在C語言中,表示靜態(tài)存儲類別的關(guān)鍵字是: ( C )A) auto B) register C) static D) extern17未指定存儲類別的變量,其隱含的存儲類別為( A )。 A)auto B)static C)extern D)register18、程序段如下:則以下說法中正確的是:( B )。int k=-20;while(k=1) k=k+1;A. while循環(huán)執(zhí)行20次 B. 循環(huán)是無限循環(huán)C. 循環(huán)體語句一次也不執(zhí)行 D. 循環(huán)體語句執(zhí)行一次19、C語言中表示“

8、在使用x之前,先使x的值加1”的正確方式是( A ) 。A. +x B. x+ C. +x D. +x+20、三種基本程序結(jié)構(gòu)不包括( D )。A. 順序結(jié)構(gòu) B. 選擇結(jié)構(gòu) C. 循環(huán)結(jié)構(gòu) D. 函數(shù)結(jié)構(gòu)二、填空(每空2分,共計(jì)20分)分值40得分1、已知整型變量a=6,b=7,c=1,則表達(dá)式 (a*3-b+c)/5 的值是 2 。2、 當(dāng)a=3,b=4,c=3時(shí),表達(dá)式 a=c的值為 1 。3、break只能用于 switch 和循環(huán)語句中。4、數(shù)學(xué)公式 , 寫成C語言表達(dá)式是 y=1.0/2*(a+b) +pow(a,b) 。5、若w=5,x=2,y=3,z=4,則條件表達(dá)式w<

9、x?y:z的結(jié)果為 4 。6、下列程序的功能是從輸入的整數(shù)中,統(tǒng)計(jì)大于零的整數(shù)個數(shù)和小于零的整數(shù)個數(shù)。用輸入0來結(jié)束輸入,用i,j來放統(tǒng)計(jì)數(shù),請?zhí)羁胀瓿沙绦颉?void main() int n,i=0,j=0; printf(“input a integer,0 for endn”); scanf(“%d”,&n); while (答案為 n或n!=0 ) if(n>0) i= i+1 ; else j=j+1; printf(“i=%4d,j=%4dn”,i,j); 此題用i來記錄大于零的整數(shù),用j記錄小于零的整數(shù)。所以循環(huán)條件是n(或者n!=0)即當(dāng)n不為0時(shí)執(zhí)行循環(huán)體。在

10、循環(huán)體中是一個選擇語句。如果n>0,則令i加1,相當(dāng)于令正整數(shù)的個數(shù)加1;否則(即n<0),令j加1,相當(dāng)于令負(fù)整數(shù)的個數(shù)加1。7、編程計(jì)算135+101的值#include <stdio.h>void main()int i, sum = 0;for (i = 1; i<=101 ; i=i+2; )sum = sum + i;printf("sum=%dn", sum); for語句的一般形式.表達(dá)式1為i = 1,為循環(huán)變量賦初值,即循環(huán)從1開始,本題從1到101,因此終值是101,表達(dá)式2是循環(huán)條件,用來控制循環(huán)的結(jié)束,因此循環(huán)條件為i

11、<=101;表達(dá)式3為循環(huán)變量的自增三、讀程序(每題4分,6題,共計(jì)24分)分值得分#include <stdio.h>main() int a=12, b= -34, c=56, min=0;min=a; if(min>b) min=b; if(min>c) min=c;printf("min=%d", min);運(yùn)行結(jié)果為: min=-34詳見教材p89 選擇結(jié)構(gòu)本題考點(diǎn)是選擇結(jié)構(gòu)3種基本形式的第一種一共包含了兩個選擇結(jié)構(gòu)(兩個if語句)定義變量,并賦值 此時(shí)a=12, b= -34, c=56, min=0將a中值拷貝,賦給min,覆蓋了

12、min中的0,此時(shí)min中的值被更新為12。若min>b成立,則執(zhí)行min=b;若min>c成立,則執(zhí)行min=c;輸出min中的值12大于-34,第一個if語句的表達(dá)式成立,因此執(zhí)行min=b; 執(zhí)行后min中的值被更新為-34.-34小于56,第二個if語句的表達(dá)式不成立,因此不執(zhí)行min=c;最后輸出min中的值,為-34.1、#include <stdio.h>main() int a=12, b= -34, c=56, min=0;min=a; if(min>b) min=b; if(min>c) min=c;printf("min=%d

13、", min);運(yùn)行結(jié)果為: min=-34詳見教材p89 選擇結(jié)構(gòu)本題考點(diǎn)是選擇結(jié)構(gòu)3種基本形式的第一種一共包含了兩個選擇結(jié)構(gòu)(兩個if語句)定義變量,并賦值 此時(shí)a=12, b= -34, c=56, min=0將a中值拷貝,賦給min,覆蓋了min中的0,此時(shí)min中的值被更新為12。若min>b成立,則執(zhí)行min=b;若min>c成立,則執(zhí)行min=c;輸出min中的值12大于-34,第一個if語句的表達(dá)式成立,因此執(zhí)行min=b; 執(zhí)行后min中的值被更新為-34.-34小于56,第二個if語句的表達(dá)式不成立,因此不執(zhí)行min=c;最后輸出min中的值,為-34

14、.2、#include <stdio.h>main() int x=2,y= -1,z=5; if(x<y)if(y<0) z=0;else z=z+1; printf(“%dn”,z); 運(yùn)行結(jié)果為:5遇到選擇結(jié)構(gòu),首先要明確條件表達(dá)式成立時(shí)執(zhí)行哪些操作。本題中,第一個if語句,其后的復(fù)合語句沒有大括號 ,說明復(fù)合語句中只包含一條語句,進(jìn)而省略了 。內(nèi)層的if.else.是選擇結(jié)構(gòu)的第二種基本形式,在結(jié)構(gòu)上視為一條語句。因此內(nèi)層的if.else.作為第一個if語句的復(fù)合語句。若表達(dá)式x<y成立,則繼續(xù)判斷 若y<0,則執(zhí)行z=0;否則(即y>=0),

15、執(zhí)行z=z+1;輸出z2>-1,表達(dá)式x<y不成立,因此不執(zhí)行內(nèi)層的ifelse.進(jìn)而z中的值沒有被改變。輸出z中的值為53、#include<stdio.h> main( ) char ch; ch=getchar( ); switch(ch) case A : printf(“%c”,A); case B : printf(“%c”,B); break; default: printf(“%sn”,”other”); 當(dāng)從鍵盤輸入字母A時(shí),運(yùn)行結(jié)果為:AB詳見教材p103,switch語句switch(表達(dá)式) case 常量1 :語句1 case 常量2 :語句2

16、 case 常量n :語句n default : 語句n+1 其中表達(dá)式,常量1,常量n都為整型或字符型case相當(dāng)于給出執(zhí)行程序的入口和起始位置,若找到匹配的常量,則從此處開始往下執(zhí)行程序,不再匹配常量,直至遇到break或switch結(jié)束本題過程:首先從鍵盤接收一個字符A并將其放在變量ch中。執(zhí)行switch語句。Switch后面的條件表達(dá)式為ch,因此表達(dá)式的值即為字符A. 用字符A依次與下面的 case中的常量匹配。與第1個case后的常量匹配,則從其后的語句開始往下執(zhí)行程序(在執(zhí)行過程中不再進(jìn)行匹配。)因此先執(zhí)行printf(“%c”,A),屏幕上輸出A;再往下繼續(xù)執(zhí)行printf(

17、“%c”,B),屏幕上輸出B;再繼續(xù)執(zhí)行break, 此時(shí)跳出switch語句。4、#include <stdio.h>main( ) int sum=10,n=1;while(n<3) sum=sum-n; n+; printf(“%d,%d”,n,sum); 運(yùn)行結(jié)果為:3,7當(dāng)循環(huán)條件n<3成立的時(shí)候,執(zhí)行循環(huán)體sum=sum-n; n+; 中的語句。循環(huán)初值sum為10,n為1;循環(huán)條件n<3成立第1次循環(huán):執(zhí)行sum=sum-n=10-1=9;執(zhí)行n+,即將n中的值加1,執(zhí)行后n為2;此時(shí)n中的值為2,sum中的值為9,循環(huán)條件n<3成立,繼續(xù)執(zhí)行

18、循環(huán)第2次循環(huán):執(zhí)行sum=sum-n=9-2=7;執(zhí)行n+,即將n中的值加1,執(zhí)行后n為3;輸出此時(shí)n,sum中的值,即為3,7。需要注意,在printf(“%d,%d”,n,sum); 中要求輸出的數(shù)據(jù)彼此間用逗號間隔,因此結(jié)果的兩個數(shù)據(jù)間一定要有逗號5、#include <stdio.h>main() int x, y =0;for(x=1;x<=10;x+) if(y>=10) break; y=y+x; printf(“%d %d”,y,x);運(yùn)行結(jié)果為:10 5詳見教材p86 for語句詳見教材p103 break,continue語句for( 表

19、達(dá)式1;表達(dá)式2;表達(dá)式3)(1) 先求解表達(dá)式1 (2) 求解表達(dá)式2,若其值為真,執(zhí)行循環(huán)體,然后執(zhí)行 (3). 若為假,則結(jié)束循環(huán),轉(zhuǎn)到(5)(3) 求解表達(dá)式3 (4) 轉(zhuǎn)回上面 (2)繼續(xù)執(zhí)行(5) 循環(huán)結(jié)束,執(zhí)行for語句下面的一個語句 break ,跳出循環(huán)體;continue,結(jié)束本次循環(huán)(第i次循環(huán)),繼續(xù)執(zhí)行下一次循環(huán)(第i+1次循環(huán))此題 表達(dá)式1為x=1,表達(dá)式2(循環(huán)條件)為x<=10,表達(dá)式3為x+初值x為1,y為0,循環(huán)條件(即表達(dá)式2)x<=10成立,進(jìn)入循環(huán)體第1次循環(huán)執(zhí)行if語句。0小于10,if語句的條件表達(dá)式不成立,不執(zhí)行break

20、;執(zhí)行y=y+x; y=0+1=1轉(zhuǎn)向表達(dá)式3,執(zhí)行x+, x=x+1=1+1=2。循環(huán)條件x<=10成立,進(jìn)入第2次循環(huán)第2次循環(huán)執(zhí)行if語句。1小于10,if語句的條件表達(dá)式不成立,不執(zhí)行break;執(zhí)行y=y+x; y=1+2=3轉(zhuǎn)向表達(dá)式3,執(zhí)行x+, x=x+1=2+1=3。循環(huán)條件x<=10成立,進(jìn)入第3次循環(huán)第3次循環(huán)執(zhí)行if語句。3小于10,if語句的條件表達(dá)式不成立,不執(zhí)行break;執(zhí)行y=y+x; y=3+3=6轉(zhuǎn)向表達(dá)式3,執(zhí)行x+, x=x+1=3+1=4。循環(huán)條件x<=10成立,進(jìn)入第4次循環(huán)第4次循環(huán)執(zhí)行if語句。6小于10,if語句的條件表達(dá)式

21、不成立,不執(zhí)行break;執(zhí)行y=y+x; y=6+4=10轉(zhuǎn)向表達(dá)式3,執(zhí)行x+, x=x+1=4+1=5。循環(huán)條件x<=10成立,進(jìn)入第5次循環(huán)第5次循環(huán)執(zhí)行if語句。10等于10,if語句的條件表達(dá)式成立,執(zhí)行break,跳出循環(huán)。從break跳出至for語句的下一條語句。執(zhí)行printf(“%d %d”,y,x);輸出當(dāng)前的y與x.結(jié)果為10 56、#include<stdio.h> func(int x) x=10; printf(“%d, ”,x); main( ) int x=20; func(x); printf(“%d”, x); 運(yùn)行結(jié)果為:10, 20在main函數(shù)中調(diào)用函數(shù)func,main函數(shù)將20作為實(shí)參穿給func,并轉(zhuǎn)向開始執(zhí)行func.main()對應(yīng)的內(nèi)存 func()對應(yīng)的內(nèi)存 20 x 20 x func()執(zhí)行x=10;,其內(nèi)存中x變?yōu)?0. 10 x func()執(zhí)行printf(“%d, ”,x); 即輸出func函數(shù)對應(yīng)內(nèi)存中x的值,輸出的是10. 至此,func函數(shù)執(zhí)行結(jié)束,返回main函數(shù)。main函數(shù)執(zhí)行printf(“%d”, x);此時(shí)輸出main函數(shù)對應(yīng)內(nèi)存中的x,即20四

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論