




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C語言練習題一、 填空題1. C語言程序的三種基本結(jié)構(gòu)是_順序 _、_分支_、_循環(huán)_。2. C語言程序的三種邏輯運算符是_&&_、_|_、_!_。為了避免嵌套的條件語句if else 的二義性,C語言規(guī)定else與_最近的且沒有和其他else匹配過的_if配對。3. C語言沒有邏輯數(shù)據(jù),在給出邏輯運算結(jié)果時,以_1_代表“真”,以_0_代表“假”,但在判斷一個量是否為真時,以_非0_代表“真”,以_0_代表“假”。4. 條件“2<x<4或x<-20”的C語言表達式是_x>2&&x<4|x<-20_。5. 執(zhí)行下列語句后,a,
2、b,c值依次為_8_、_8_、_10_。int x=10,y=9;int a,b,c;a=(-x=y+)?-x:+y;b=x+;c=y;6. 設(shè)i為整型變量,則for(i=2;i=0;) printf(“%d”,i-);循環(huán)_0_次。二、 選擇題1. 若要求在if后面一對圓括號中表示a不等于0的關(guān)系,則能正確表示這一關(guān)系的表示式為 ( D)A. a<>0 B. !a C. a=0 D. a2. C語言中while與dowhile語句的區(qū)別是 ( A )A. dowhile 的循環(huán)體至少無條件執(zhí)行一次B. dowhile 允許從外部轉(zhuǎn)到循環(huán)體內(nèi)C. dowhile 的循環(huán)體不能是復(fù)合
3、語句D. while的循環(huán)控制條件比dowhile 的循環(huán)控制條件嚴格3. 以下的for 循環(huán) ( B ) for (x=0,y=0;(y!=123)&&(x<4);x+)A. 循環(huán)3次 B. 執(zhí)行4次 C. 循環(huán)次數(shù)不定 D. 無限循環(huán)4. 若 w=1,x=2,y=3,z=4則條件表達式w<x?w:y<z?y:z的結(jié)果是 ( D )A. 4 B. 3 C. 2 D. 15. 邏輯運算符兩側(cè)運算對象的數(shù)據(jù)類型 ( D )A. 只能是0或1 B. 只能是0或非0正數(shù) C.只能是整型或字符型數(shù)據(jù) D.可以是任何類型數(shù)據(jù)6. while (!x) 中的(!x)與下面
4、條件 ( C )等價A. (x!=1) B. (x=1) C. (x=0) D. (x!=0)7. 以下關(guān)于switch語句和break語句的描述,只有( C )是正確的。A. 在switch語句中必須使用break語句B. break 語句中只能用于switch語句中C. 在switch語句中,可以根據(jù)需要使用或不使用break語句D. break語句是switch語句一部分8. 若a為int變量,則執(zhí)行以下語句后的結(jié)果為 (A )a=5;do printf(“%2dn”,a-);while (!a);A. 5 B. 不打印任何內(nèi)容 C. 4 D. 陷入死循環(huán)9. 下面程序段的運行結(jié)果是 (
5、 C )a=1;b=2;c=3while (a<b<c) t=a;a=b;b=t;c-;printf(“%d,%d,%d”,a,b,c);A. 1,2,0 B. 2,1,0 C. 1,2,1 D. 2,1,110. 若x是int型變量,則執(zhí)行下列語句后結(jié)果是 ( C ) for(x=1;x<=100;x+) if (+x%2=0) if (+x%3=0) if (+x%5=0) printf(“%d “,x);A. 30 60 90 B. 29 50 89 C. 不打印任何內(nèi)容 D. 31 61 91三、寫出下列程序的運行結(jié)果1. #include <stdio.h&g
6、t; main() int i,j=4; for(i=j;i<=2*j;i+) switch (i/j) case 0: case 1:printf(“*”);break; case 2:printf(“#”);*#2. main() int i,j,k; char space= ; for (i=0; i<=5;i+) for (j=1;j<=i;j+) printf(“%c”,space); for(k=0;k<=5;k+) printf(“%c”,*); printf(“n”); * * * * *3. main() int x=18,i; for(i=2;i&l
7、t;9;i+) if(x%i=0) printf(“%d",i); x=x/i-; if(x=0) break; 23330004 程序填空,不要改變與輸入輸出有關(guān)的語句。輸入一個正整數(shù) repeat (0<repeat<10),做 repeat 次下列運算:輸入五級制成績(AE),輸出相應(yīng)的百分制成績(0100)區(qū)間,要求使用switch語句。五級制成績對應(yīng)的百分制成績區(qū)間為:A(90-100)、B(80-89)、C(70-79)、D(60-69)和E(0-59),如果輸入不正確的成績,顯示"Invalid input"。輸出使用以下語句:print
8、f("90-100n"); printf("80-89n"); printf("70-79n"); printf("60-69n");printf("0-59n");printf("Invalid inputn");輸入輸出示例:括號內(nèi)是說明輸入6ABCDEj (repeat=6,輸入的五級成績分別為A、B、C、D、E和無效的字符j) 輸入時不要空格或回車輸出90-10080-8970-7960-690-59Invalid input (輸入數(shù)據(jù)不合法)#include &l
9、t;stdio.h>int main(void) char ch; int repeat, ri; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri+) ch = getchar(); switch(ch) case 'A':printf("90-100n"); break; case 'B':printf("80-89n"); break; case 'C':printf("70-79n");
10、break; case 'D':printf("60-69n");break; case 'E':printf("0-59n");break; default:printf("Invalid inputn"); 30005查詢水果的單價。有4種水果,蘋果(apples)、梨(pears)、桔子(oranges)和葡萄(grapes),單價分別是3.00元/公斤,2.50元/公斤,4.10元/公斤和10.20元/公斤。在屏幕上顯示以下菜單(編號和選項),用戶可以連續(xù)查詢水果的單價,當查詢次數(shù)超過5次時,自
11、動退出查詢;不到5次時,用戶可以選擇退出。當用戶輸入編號14,顯示相應(yīng)水果的單價(保留1位小數(shù));輸入0,退出查詢;輸入其他編號,顯示價格為0。輸入輸出示例:括號內(nèi)是說明輸入3 (oranges的編號) 0 (退出查詢) 輸出1 apples2 pears3 oranges4 grapes0 Exitprice = 4.11 apples2 pears3 oranges4 grapes0 Exit#include <stdio.h>int main(void) int choice, i; double price; for(i = 1; i <= 5; i+) printf
12、("1 applesn"); printf("2 pearsn"); printf("3 orangesn"); printf("4 grapesn"); printf("0 Exitn"); scanf("%d", &choice); if(choice = 0) break; else switch(choice) case 1:price=3;break; /*注意是整型值而不應(yīng)用字符常量,如1*/ case 2:price=2.5;break; case 3:
13、price=4.1;break; case 4:price=10.2;break; default:price=0.0; printf("price = %0.1fn", price); 30009輸入一個正整數(shù) n,再輸入 n 個學生的百分制成績,統(tǒng)計各等級成績的個數(shù)。成績等級分為五級,分別為A(90-100)、B(80-89)、C(70-79)、D(60-69)和E(0-59)。輸入輸出示例:括號內(nèi)是說明輸入5 (n=5)77 54 92 73 60輸出Number of A(90-100): 1Number of B(80-89): 0Number of C(70-7
14、9): 2Number of D(60-69): 1Number of E(0-59): 1#include <stdio.h>int main(void) int i, mark, n; int na, nb, nc, nd, ne; scanf("%d",&n); na = nb = nc = nd = ne = 0; for(i = 1; i <= n; i+) scanf("%d", &mark); switch(mark/10) case 10:case 9: na+;break; case 8:nb+;bre
15、ak; case 7:nc+;break; case 6:nd+;break; case 5:case 4:case 3:case 2:case 1:case 0:ne+;break; printf("Number of A(90-100): %dn", na); printf("Number of B(80-89): %dn", nb); printf("Number of C(70-79): %dn", nc); printf("Number of D(60-69): %dn", nd); printf(&qu
16、ot;Number of E(0-59): %dn", ne);30061輸入一個正整數(shù) repeat (0<repeat<10),做 repeat 次下列運算:某城市普通出租車收費標準如下:"起步里程3公里,起步費10元;超起步里程后10公里內(nèi),每公里租費2元,超過10公里以上的部分加收50%的回空補貼費,即每公里租費3元。營運過程中,因路阻及乘客要求臨時停車的,每5分鐘按1公里租費計收。運價計費尾數(shù)四舍五入,保留到元。"。編寫程序,輸入行駛里程(公里)與等待時間(分鐘),計算并輸出乘客應(yīng)支付的車費(元)。提示:先將等待的時間折算成公里數(shù),與原公里數(shù)
17、相加后再處理。輸入輸出示例:括號內(nèi)是說明輸入3 (repeat=3) 1.6 2 52 (行駛1.6公里,等待2分52秒)3.1 6 15 (行駛3.1公里,等待6分15秒)11.8 2 30 (行駛11.8公里,等待2分30秒)輸出cost = 10cost = 13cost = 31注意點:1先將時間折算成公里數(shù).2 無須加0.5,輸出時自動四舍五入的.#include <stdio.h>int main(void) int repeat, ri; int minutes, seconds; double cost, mile; scanf("%d", &a
18、mp;repeat); for(ri = 1; ri <= repeat; ri+) scanf("%lf%d%d", &mile, &minutes, &seconds);mile=mile+(seconds/60.0+minutes)/5.0;if(mile<=3) cost=10; else if(mile<=10) cost=10+(mile-3)*2;elsecost=24+3*(mile-10);printf("cost = %.0fn", cost); 40012程序填空,不要改變與輸入輸出有關(guān)的語
19、句。輸入一個正整數(shù)repeat (0<repeat<10),做repeat次下列運算:讀入1個正實數(shù) eps,計算并輸出下式的值,精確到最后一項的絕對值小于 eps(保留6位小數(shù))。請使用 while 語句實現(xiàn)循環(huán)。計算:11/41/71/101/131/16輸入輸出示例:括號內(nèi)是說明輸入2 (repeat=2)2E-4 (eps=2E-4)0.02 (eps=0.02)輸出sum = 0.835549sum = 0.826310#include <stdio.h>#include <math.h>int main(void) int denominator
20、, flag; int repeat, ri; double eps, item, sum; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri+) scanf("%le", &eps); sum=0; flag=1; item=1; denominator=1; while(fabs(item)>=eps) item=flag*1.0/denominator; sum=sum+item; denominator=denominator+3; flag=-flag; print
21、f("sum = %.6fn", sum); 40013輸入一個正整數(shù)repeat (0<repeat<10),做repeat次下列運算:讀入一批正整數(shù)(以零或負數(shù)為結(jié)束標志),求其中的奇數(shù)和。請使用while語句實現(xiàn)循環(huán)。輸入輸出示例:括號內(nèi)是說明輸入2 (repeat=2)1 3 90 7 08 7 4 3 70 5 6 101 -1輸出The sum of the odd numbers is 11.The sum of the odd numbers is 116.#include <stdio.h>int main(void) int x,
22、 sum; int repeat, ri; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri+) scanf("%d", &x); sum=0; while(x>0) if(x%2=1) sum=sum+x; scanf("%d",&x); printf("The sum of the odd numbers is %d.n", sum); 40014輸入一個正整數(shù) repeat (0<repeat<10),做 re
23、peat 次下列運算:輸入一個整數(shù) in,求它的位數(shù)。例如123的位數(shù)是3。請使用do-while語句實現(xiàn)循環(huán)。輸入輸出示例:括號內(nèi)是說明輸入4 (repeat=4) 12345 (in=12345) -100 (in=-100) -1 (in=-1) 1290 (in=1290) 輸出count = 5 (12345的位數(shù)是5)count = 3 (-100的位數(shù)是3)count = 1 (-1的位數(shù)是1)count = 4 (99的位數(shù)是2)注意點:負數(shù)和0#include <stdio.h>int main(void) int count, in; int repeat, r
24、i; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri+) scanf("%d", &in); count=0; if(in<0) in=-in; do in=in/10; count+; while(in!=0); printf("count = %dn", count); 40019輸入一個正整數(shù) repeat (0<repeat<10),做 repeat 次下列運算:皮球從 height(米)高度自由落下,觸地后反彈到原高度的一半,再落下
25、,再反彈,如此反復(fù)。問皮球在第 n 次落地時,在空中一共經(jīng)過多少距離?第 n 次反彈的高度是多少?(輸出保留1位小數(shù)) 輸入輸出示例:括號內(nèi)是說明輸入3(repeat=3)10 2(height=10m, n=2)4 1(height=2m, n=1)100 8(height=100m, n=8)輸出distance=20.0, height=2.5(第2次落地時,空中經(jīng)過距離為20米, 第2次反彈高度為2.5米)distance=4.0, height=2.0(第1次落地時,空中經(jīng)過距離為4米,第1次反彈高度為2米)distance=298.4, height=0.4(第8次落地時,空中經(jīng)過
26、距離為298.4米,第8次反彈高度為0.4米)#include <stdio.h>int main(void) int i, n; int repeat, ri; double distance, height; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri+) scanf("%lf%d", &height, &n); distance=height;height=0.5*height;for(i=2;i<=n;i+) distance= distan
27、ce+height*2.0;height=0.5*height; printf("distance = %.1f, height = %.1fn", distance, height); 40024輸入一個正整數(shù) repeat (0<repeat<10),做 repeat 次下列運算:輸入兩個正整數(shù) m 和 n(1<=m, n<=1000),輸出 m 與 n之間(含m,n)的所有滿足各位數(shù)字的立方和等于它本身的數(shù)。例如153的各位數(shù)字的立方和是 135333153 ,這里ab表示a的b次方。輸出使用語句:printf("%dn", i);輸入輸出示例:括號內(nèi)為說明輸入:2 (repeat=2)100 400 (m=100, n=400)1 100 (m=1, n=100)輸出:result:153 (1*1*1+5*5*5+3*3*3=153)370 (3*3*3+7*7*7=370)371 (3*3*3+7*7*7+1*1*1=371)result:1 (1*1*1=1)#include "stdio.h"int main(void) int i, digit, m, n, number, sum; int repeat, ri; s
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 出門演出合同范本
- 低價改造廠房合同范本
- 農(nóng)家葡萄售賣合同范本
- 保險分銷服務(wù)合同范本
- 個人過橋資金合同范本
- 協(xié)議酒店價格合同范本
- 保險變更合同范本
- 企業(yè)對外投資合同范本
- 個人門店裝修合同范本
- 醫(yī)療公司供貨合同范本
- 森林害蟲防治方法課件
- 《國際金融》課件國際金融導論
- 各種el34名膽電子管評測
- 超分子化學-杯芳烴課件
- 車標識別 課講義件課件
- 一年級下學期安全教育教案
- 哈薩克斯坦共和國勞動法解讀
- 送達地址確認書(樣本)
- 甘肅省酒泉市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細
- 壓力容器考試審核考試題庫(容標委-氣體協(xié)會聯(lián)合)
- 學校食堂操作流程圖
評論
0/150
提交評論