華南農(nóng)業(yè)大學(xué)C語(yǔ)言實(shí)驗(yàn)上機(jī)實(shí)驗(yàn)第四版參考答案_第1頁(yè)
華南農(nóng)業(yè)大學(xué)C語(yǔ)言實(shí)驗(yàn)上機(jī)實(shí)驗(yàn)第四版參考答案_第2頁(yè)
華南農(nóng)業(yè)大學(xué)C語(yǔ)言實(shí)驗(yàn)上機(jī)實(shí)驗(yàn)第四版參考答案_第3頁(yè)
華南農(nóng)業(yè)大學(xué)C語(yǔ)言實(shí)驗(yàn)上機(jī)實(shí)驗(yàn)第四版參考答案_第4頁(yè)
華南農(nóng)業(yè)大學(xué)C語(yǔ)言實(shí)驗(yàn)上機(jī)實(shí)驗(yàn)第四版參考答案_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 C語(yǔ)言程序設(shè)計(jì) 上機(jī)實(shí)驗(yàn)指導(dǎo)與習(xí)題 參考答案(第四版) 實(shí)驗(yàn) 1 C語(yǔ)言程序初步 一、實(shí)驗(yàn)?zāi)康?(1)了解所用的計(jì)算機(jī)系統(tǒng)的基本操作方法,學(xué)會(huì)獨(dú)立使用該系統(tǒng)。 (2)了解在該系統(tǒng)上如何編輯、編譯、連接和運(yùn)行一個(gè)C程序。 (3)通過運(yùn)行簡(jiǎn)單的C程序,初步了解C程序的特點(diǎn)。 (4)在教師的指導(dǎo)下,學(xué)會(huì)使用在線評(píng)判系統(tǒng)。 二、實(shí)驗(yàn)內(nèi)容 1. 運(yùn)行第一個(gè)C程序 題目:The first C Program 將下列程序輸入visual c+ ,編譯、連接和運(yùn)行該程序。 #include"stdio.h"main() printf("The first C Programn

2、"); 具體操作步驟 (1)在編輯窗口中輸入程序。 (2)保存程序,取名為 a1.c。 (3)按照第一章中介紹的方法,編譯、連接和運(yùn)行程序。 (4)按照第三章介紹的方法,將代碼提交到在線評(píng)判系統(tǒng),系統(tǒng)返回“通過”,則該題完成。 2. 在在線評(píng)判系統(tǒng)中提交實(shí)現(xiàn)了計(jì)算a+b功能的程序 題目1001:計(jì)算a+b 由鍵盤輸入兩個(gè)整數(shù),計(jì)算并輸出兩個(gè)整數(shù)的和。實(shí)現(xiàn)該功能的程序如下, #include "stdio.h"main() int a, b; scanf("%d%d", &a, &b); printf("%d"

3、, a + b); (1)在程序編輯窗口中輸入程序。 (2)保存程序,取名為 a2.c。 (3)按照前二章中介紹的方法,編譯、連接和運(yùn)行程序。 (4)在程序運(yùn)行過程中,輸入 15 30 (表示輸入回車符) (5)如果看到如下輸出結(jié)果,則表明15+30 的結(jié)果正確,如果得不到如下結(jié)果,則需檢查并更正程序。 45 (6)按照第三章中介紹的方法進(jìn)入在線評(píng)判系統(tǒng)。 (7)顯示題目列表,點(diǎn)擊題號(hào)為1001,題名為“計(jì)算a+b”的題目。 (8)查看完題目要求后,點(diǎn)擊頁(yè)面下端的“sumbit” ,參照第二章提交程序的方法提交程序a2.c。 (9)查看評(píng)判結(jié)果,如果得到“accepted”則該題通過,否則返回

4、第一步檢查程序是否正確。 3 實(shí)驗(yàn) 2 基本數(shù)據(jù)類型、運(yùn)算和表達(dá)式 一、實(shí)驗(yàn)?zāi)康?(1)掌握C語(yǔ)言數(shù)據(jù)類型,熟悉如何定義一個(gè)整型和實(shí)型的變量,以及對(duì)它們賦值的方法。 (2)掌握不同的類型數(shù)據(jù)之間賦值的規(guī)律。 (3)學(xué)會(huì)使用C的有關(guān)算術(shù)運(yùn)算符,以及包含這些運(yùn)算符的表達(dá)式,特別是自加(+)和自減(-)運(yùn)算符的使用。 (4)進(jìn)一步熟悉C程序的編輯、編譯、連接和運(yùn)行的過程。 二、實(shí)驗(yàn)內(nèi)容 1. 變量的定義 題目 1117:變量定義,按要求完成程序 下面給出一個(gè)可以運(yùn)行的程序,但是缺少部分語(yǔ)句,請(qǐng)按右邊的提示補(bǔ)充完整缺少的語(yǔ)句。 #include "stdio.h" main() i

5、nt a, b; /*定義整型變量 a和 b*/ int i, j; /*定義實(shí)型變量i和 j*/ a=5; b=6; i=3.14; j=i*a*b; printf("a=%d,b=%d,i=%f,j=%fn", a, b, i, j); 具體操作步驟 (1)將代碼補(bǔ)充完整; (2)在codeblocks或 VC+上運(yùn)行通過; (3)在在線評(píng)判系統(tǒng)上提交;題目6568:在顯示屏上顯示指定字符要求編寫一個(gè)程序,在顯示屏上顯示如下內(nèi)容(全為半角字符,且不包括空格):C:ABC.TXT提示注意轉(zhuǎn)義字符在程序中的使用。參考程序:#include "stdio.h&quo

6、t;int main()printf("C:ABC.TXT"); 2. 賦值表達(dá)式與賦值語(yǔ)句 題目 1118:賦值表達(dá)式與賦值語(yǔ)句,寫出程序運(yùn)行結(jié)果 閱讀下面程序,寫出運(yùn)行結(jié)果: #include "stdio.h"int main() float a; int b, c; char d, e; a=3.5; b=a; c=330; d=c; e='141; printf("%f,%d,%d,%c,%c", a,b,c,d,e); 運(yùn)行結(jié)果為: 3.500000,3,330,J,a 提示賦值語(yǔ)句具有類型轉(zhuǎn)換的功能,但可能會(huì)改變

7、數(shù)據(jù)。 3. 基本運(yùn)算 題目 1119:基本運(yùn)算,寫出程序運(yùn)行結(jié)果 閱讀下面程序,寫出運(yùn)行結(jié)果: #include "stdio.h"main() int a, b, c; float d=15, e, f; a=35%7; b=15/10; c=b+; e=15/10; f=d/10; printf("%d,%d,%d,%f,%f,%f", a,b,c,d,e,f); 運(yùn)行結(jié)果為: 0,2,1,15.000000,1.000000,1.500000 提示除法分整除與普通除法之分。 5 實(shí)驗(yàn) 3 基本輸入與輸出 一、實(shí)驗(yàn)?zāi)康?(1)熟練掌握putchar

8、、getchar、printf、scanf函數(shù)的使用方法。 (2)掌握各種類型數(shù)據(jù)的輸入輸出的方法,能正確使用各種格式轉(zhuǎn)換符。 二、實(shí)驗(yàn)內(nèi)容 題目 1126:字符的輸入與輸出 編程實(shí)現(xiàn)由鍵盤輸入一個(gè)字符后,在屏幕上輸出該字符。 第一組自測(cè)數(shù)據(jù) 鍵盤輸入 a 正確輸出 a 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 + 正確輸出 +參考程序: #include "stdio.h" main() char ch; ch = getchar(); putchar(ch); 題目 1127:計(jì)算加法 編程實(shí)現(xiàn)由鍵盤輸入一個(gè)加法式,輸出正確的結(jié)果。(兩個(gè)加數(shù)均為整數(shù)) 第一組自測(cè)數(shù)據(jù) 鍵盤輸入 10+

9、20 正確輸出 30 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 -15+60 正確輸出 45 參考程序: #include "stdio.h" main() int a, b; scanf("%d%d", &a,&b); printf("%d", a+b); 題目 1014:求圓面積 由鍵盤輸入圓半徑r,請(qǐng)計(jì)算該圓的面積。(注:取3.14159,結(jié)果保留兩位小數(shù)位;另外,程序只要能對(duì)r在0 到10000 范圍的情況輸出正確答案即可) 第一組自測(cè)數(shù)據(jù) 鍵盤輸入 2 65.2 正確輸出 13355.02 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 11.2

10、 正確輸出 394.08 提示結(jié)果保留兩位小數(shù)可采用printf函數(shù)的格式控制字符來(lái)實(shí)現(xiàn)。 參考程序: #include "stdio.h" main() float area,r; scanf("%f",&r); area=3.14159*r*r; printf("%0.2f",area); 3 題目 1015:計(jì)算攝氏溫度值 從鍵盤輸入一個(gè)華氏溫度值,要求按格式輸出其對(duì)應(yīng)的攝氏溫度值,精確到小數(shù)點(diǎn)后兩位。 數(shù)學(xué)公式描述為: C=5*(F-32)/9第一組自測(cè)數(shù)據(jù) 鍵盤輸入 100 正確輸出 37.78 第二組自測(cè)數(shù)據(jù) 鍵盤

11、輸入 100 正確輸出 37.78 提示注意公式中的除為普通除法。 參考程序: #include "stdio.h" main() float f,c; scanf("%f",&f); c=5.0/9*(f-32); printf("%.2f",c); 題目11127:各個(gè)數(shù)字 從鍵盤輸入一個(gè)3位數(shù)的正整數(shù),要求先后輸出該數(shù)字的百位數(shù)字與個(gè)位數(shù)字,各占一行。第一組自測(cè)數(shù)據(jù) 第一組自測(cè)數(shù)據(jù)鍵盤輸入 鍵盤輸入 123 654正確輸出 正確輸出1 63 4提示合理使用整除與求模(即求余)運(yùn)算。參考程序:#include "

12、stdio.h"main()int n,i,j;scanf("%d",&n);i=n/100;j=n%10;printf("%dn%d",i,j); 實(shí)驗(yàn) 4 選擇結(jié)構(gòu)程序設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康?(1)了解C語(yǔ)言表示邏輯的方法(以0代表“假” ,以非 0 代表“真” )。 (2)學(xué)會(huì)正確使用邏輯運(yùn)算符和邏輯表達(dá)式。 (3)熟練掌握if語(yǔ)句和switch語(yǔ)句。 (4)結(jié)合程序掌握一些簡(jiǎn)單的算法。 二、實(shí)驗(yàn)內(nèi)容 題目 1018:數(shù)的排序 由鍵盤輸入三個(gè)整數(shù)a、b、c,按從小到大的順序輸出這三個(gè)數(shù)。 第一組自測(cè)數(shù)據(jù) 鍵盤輸入 65,45,90 正

13、確輸出 45,65,90 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 9,6,3 正確輸出 3,6,9 參考程序: #include "stdio.h"main() int a,b,c,t; scanf("%d,%d,%d",&a,&b,&c); if(a>b) t=a;a=b;b=t; if(a>c) t=a;a=c;c=t; if(b>c) t=b;b=c;c=t; printf("%d,%d,%d",a,b,c); 題目 1016:字符變換 由鍵盤輸入5個(gè)字符,將其中的大寫字母變成小寫,其它類型的字符不變

14、,并按輸入順序逐個(gè)輸出。 第一組自測(cè)數(shù)據(jù) 鍵盤輸入 ApPLe 正確輸出 apple 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 a+B=5 正確輸出 a+b=5 提示下面代碼實(shí)現(xiàn)由鍵盤讀入一個(gè)字符,并按題意處理后輸出 char a; a=getchar(); if(a>='A' && a<='Z') a=a+32; putchar(a); 6 現(xiàn)在,題目要求處理5個(gè)字符,怎么做呢?請(qǐng)自己思考 參考程序: #include "stdio.h"main() char a,b,c,d,e; scanf("%c%c%c%c%c&

15、quot;,&a,&b,&c,&d,&e); if(a<='Z'&&a>='A') a=a+32; if(b<='Z'&&b>='A') b=b+32; if(c<='Z'&&c>='A') c=c+32; if(d<='Z'&&d>='A') d=d+32; if(e<='Z'&&

16、;e>='A') e=e+32; printf("%c%c%c%c%c",a,b,c,d,e); 題目 1019:數(shù)的整除 由鍵盤輸入 5 個(gè)整數(shù),逐個(gè)判斷它們能否被 27 整除,能的輸出“YES”,不能的輸出“NO”(注意,輸出時(shí),一個(gè)判斷結(jié)果占一行,5個(gè)數(shù)的判斷共占 5行)。 第一組自測(cè)數(shù)據(jù) 鍵盤輸入 8 27 17577 325 54 正確輸出 NO YES YES NO YES 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 8 27 17577 325 54 正確輸出 NO YES YES NO YES 提示整除即除得余數(shù)為0 參考程序: #include &qu

17、ot;stdio.h" main() int a,b,c,d,e; scanf("%d %d %d %d %d",&a,&b,&c,&d,&e); if(a%27=0) printf("YESn");else printf("NOn"); if(b%27=0) printf("YESn");else printf("NOn"); if(c%27=0) printf("YESn");else printf("NOn&q

18、uot;); if(d%27=0) printf("YESn");else printf("NOn"); if(e%27=0) printf("YESn");else printf("NOn"); 題目 1020:正負(fù)奇偶判斷 由鍵盤輸入非零整數(shù) x,判斷該數(shù)正負(fù),正數(shù)輸出 positive,負(fù)數(shù)輸出 negative,接著判斷該數(shù)的奇偶性,奇數(shù)輸出odd,偶數(shù)輸出 even。 第一組自測(cè)數(shù)據(jù) 鍵盤輸入 -43 正確輸出 negative odd 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 7 98 正確輸出 positive ev

19、en 參考程序: #include "stdio.h" main() int n; scanf("%d",&n); if(n<0) printf("negativen"); else printf("positiven"); if(n%2=0) printf("evenn"); else printf("oddn"); 題目 1023:簡(jiǎn)單計(jì)算器 下面程序是實(shí)現(xiàn)一個(gè)簡(jiǎn)單的運(yùn)算器(保留兩位小數(shù)點(diǎn)) ,如果由鍵盤輸入10+50,計(jì)算機(jī)可以輸出結(jié)果60.00;如果輸入

20、86,計(jì)算機(jī)輸出48.00;如果輸入20/4,計(jì)算機(jī)輸出 5.00;如果輸入 8-6,計(jì)算機(jī)輸出2.00,請(qǐng)?jiān)诳仗幪钌线m當(dāng)?shù)拇a,運(yùn)行通過后并提交。 #include "stdio.h" void main() float a,b,c; char op; scanf("%f%c%f", ); switch (op) case '+': ; case '-': _; case '*': _; case '/': _ ; default: printf("error"); r

21、eturn ; printf("result= ", c); 第一組自測(cè)數(shù)據(jù) 鍵盤輸入 45*2 正確輸出 90 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 50.1-23 正確輸出 27.10 8 參考程序: #include "stdio.h"int main() float a,b,c; char op; scanf("%f%c%f",&a,&op,&b); switch(op) case '+':c=a+b;break; case '-':c=a-b;break; case '*&

22、#39;:c=a*b;break; case '/':c=a/b;break; default:printf("error"); break; printf("result=%.2f",c); 題目1007:判斷整數(shù)是否為平方數(shù) 由鍵盤輸入一個(gè)正整數(shù),判斷該數(shù)是否為平方數(shù),是輸出Y,否輸出N。 第一組自測(cè)數(shù)據(jù) 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 鍵盤輸入36 18正確輸出 正確輸出Y N參考程序:#include"stdio.h"#include "math.h"main()int a,b;scanf(&qu

23、ot;%d",&a);b=(int)sqrt(a);if(b*b=a) printf("Y");else printf("N"); 題目 1017:求數(shù)的位數(shù) 由鍵盤輸入一個(gè)不多于 9位的正整數(shù),要求輸出它是幾位數(shù)。 第一組自測(cè)數(shù)據(jù) 鍵盤輸入 349213 正確輸出 6 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 10000 正確輸出 5 提示劃定一位數(shù)、二位數(shù)、九位數(shù)的范圍,然后用 if else if else語(yǔ)句實(shí)現(xiàn)判斷。 5 參考程序: main() int n,place; scanf("%ld",&n); if(n

24、>99999999) place=9; else if(n>9999999) place=8; else if(n>999999) place=7; else if(n>99999) place=6; else if(n>9999) place=5; else if(n>999) place=4; else if(n>99) place=3; else if(n>9) place=2; else place=1; printf("%ldn",place); 1120:判斷點(diǎn)是否在圓上 由鍵盤輸入一個(gè)點(diǎn)的坐標(biāo), 要求編程判斷這個(gè)

25、點(diǎn)是否在單位圓上,點(diǎn)在圓上輸出 Y, 不在圓上輸出N。使用小數(shù)點(diǎn)后3位精度進(jìn)行判斷。 第一組自測(cè)數(shù)據(jù) 鍵盤輸入 0.707,0.707 正確輸出 Y 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 0.5,0.5 正確輸出 N 提示(1)平面上的點(diǎn)與圓的關(guān)系分為在圓內(nèi)、在圓上、在圓外三種,本題要求判斷是否在圓上; (2)判斷兩實(shí)數(shù)相等采用判斷這兩實(shí)數(shù)的差的絕對(duì)值小于規(guī)定誤差精度(本題為0.001)的方法實(shí)現(xiàn)。 參考程序: #include "stdio.h" #include "math.h" int main() float a,b; scanf("%f,%f&q

26、uot;,&a,&b); if(fabs(a*a+b*b-1)<1e-3) printf("Yn"); else printf("Nn"); 實(shí)驗(yàn) 5 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(一) 一、實(shí)驗(yàn)?zāi)康?(1)熟悉掌握用while語(yǔ)句、do-while語(yǔ)句和 for 語(yǔ)句實(shí)現(xiàn)循環(huán)的方法。 (2)掌握在程序設(shè)計(jì)中用循環(huán)實(shí)現(xiàn)一些常用算法(如窮舉、迭代、遞推等)。 二、實(shí)驗(yàn)內(nèi)容 題目 1024:計(jì)算階乘 輸入正整數(shù)n,計(jì)算 n!,結(jié)果用長(zhǎng)整型數(shù)表示(注 n!=1*2*3*.*n) 第一組自測(cè)數(shù)據(jù) 鍵盤輸入 5 正確輸出 120 第二組自測(cè)數(shù)據(jù) 鍵盤輸入

27、 8 正確輸出 40320 參考程序: #include"stdio.h"main() long i,n=1,a; scanf("%ld",&a); for(i=1;i<=a;i+) n=n*i; printf("%ldn",n); 題目 1025:計(jì)算數(shù)列和 有數(shù)列1,3,5,7,9,11, 現(xiàn)要求由鍵盤輸入n,計(jì)算輸出該數(shù)列的前 n項(xiàng)和。 第一組自測(cè)數(shù)據(jù) 鍵盤輸入 2 正確輸出 4 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 5 正確輸出 25 10 參考程序: #include<stdio.h> main() long

28、n,sum=0,i,t=1; scanf("%ld",&n); for(i=1;i<=n;i+) sum=sum+t; t=t+2; printf("%ldn",sum); 或 #include <stdio.h> main() long n,sum; scanf("%ld",&n); sum=n*n; printf("%ld",sum); 注:評(píng)判系統(tǒng)不對(duì)程序?qū)崿F(xiàn)細(xì)節(jié)進(jìn)行分析,只對(duì)運(yùn)行結(jié)果進(jìn)行評(píng)測(cè)(考試就未必了)。 題目 1026:累加一行字符中的數(shù)字 由鍵盤輸入一行字符(總字符

29、個(gè)數(shù)從1個(gè)至80 個(gè)均有可能,以回車符表示結(jié)束),將其中每個(gè)數(shù)字字符所代表的數(shù)值累加起來(lái),輸出結(jié)果。 第一組自測(cè)數(shù)據(jù) 鍵盤輸入 abc123 正確輸出 6 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 A6H7T+65 正確輸出 24 提示(1)可以使用下面程序段逐個(gè)讀入鍵盤輸入的一行字符 char ch; while(ch=getchar()!='n') (2)數(shù)字字符轉(zhuǎn)為對(duì)應(yīng)的數(shù)值可用a=ch-'0' 參考程序: #include"stdio.h"main() char c; int s=0,a; while(c=getchar()!='n'

30、) if(c>='0'&&c<='9') a=c-48; s=s+a; printf("%d",s); 11 題目 1029:求最大公約數(shù) 由鍵盤輸入兩個(gè)正整數(shù)m、n(m、n用長(zhǎng)整數(shù)表示) ,計(jì)算它們的最大公約數(shù)。 第一組自測(cè)數(shù)據(jù) 鍵盤輸入 16,24 正確輸出 8 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 17,25 正確輸出 1 提示公約數(shù)是既能整除m又能整除n的數(shù),題目要求滿足這一條件的最大的一個(gè)。 參考程序: #include"stdio.h"main() long r,m,n,temp; scanf(

31、"%ld,%ld",&m,&n); while(m!=0) r=n%m; n=m; m=r; printf("%ldn",n); 或 #include"stdio.h" main() long m,n,t,i,s; scanf("%ld,%ld",&m,&n); t=m>n?n:m; for (i=t-1;i>=1;i-) if (m%i=0&&n%i=0) s=i; break; printf("%d",s); 題目 1044:輸出最

32、小值 從鍵盤輸入十個(gè)整數(shù),輸出最小值 自測(cè)數(shù)據(jù) 鍵盤輸入 12 45 76 87 5 87 43 55 99 21 正確輸出 5 13 參考程序: #include "stdio.h" main() int i,t,min; scanf("%d", &min); for(i=1;i<10;i+) scanf("%d", &t); if(t<min) min=t; printf("%dn",min); 題目 1030:字符變換 由鍵盤輸入一個(gè)句子(總字符個(gè)數(shù)從 1個(gè)至 80 個(gè)均有可能,以

33、回車符表示結(jié)束),將其中的大寫字符變成小寫(其它類型的字符不變),最后輸出變換后的句子。 第一組自測(cè)數(shù)據(jù) 鍵盤輸入 How Are You? 正確輸出 how are you? 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 ThiS IS My fIrSt C ProgrAm! 正確輸出 this is my first c program! 12 參考程序: #include "stdio.h" main() char c; while(c=getchar()!='n') if(c>='A'&&c<='Z') c=c

34、+32; putchar(c); 題目 1037:計(jì)算數(shù)列和 有數(shù)列: 編程實(shí)現(xiàn),由鍵盤輸入n,計(jì)算輸出數(shù)列前n項(xiàng)和。 (結(jié)果保留四位小數(shù)) 第一組自測(cè)數(shù)據(jù) 鍵盤輸入 20 正確輸出 32.6603 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 30 正確輸出 88.0403 參考程序: #include"stdio.h" main() int i,t,n; float a=2,b=1,s=0; scanf("%d",&n); for(i=1;i<=n;i+) s=s+a/b; t=a;a=a+b;b=t; printf("%.4fn",s

35、); 題目 1031:統(tǒng)計(jì)單詞個(gè)數(shù) 由鍵盤輸入一個(gè)句子(總字符個(gè)數(shù)從1 個(gè)至 80個(gè)均有可能,以回車符表示結(jié)束),以空格分割單詞,要求輸出單詞的個(gè)數(shù)。 第一組自測(cè)數(shù)據(jù) 鍵盤輸入 How Are You? 正確輸出 3 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 There are many students and many trees! 正確輸出 7 參考程序: #include"stdio.h" main() int i,num=0,word=0; char c; for(i=0;(c=getchar()!='n'i+) if(c=' ') word=0;

36、 else if(word=0) word=1; num+; printf("%d",num); 題目 1042:百萬(wàn)富翁 一個(gè)百萬(wàn)富翁遇到一個(gè)陌生人,陌生人找他談了一個(gè)換錢的計(jì)劃。該計(jì)劃如下:我每天給你 m元,而你第一天只需給我一分錢。第二天我仍給你 m元,你給我 2 分錢。第三天,我仍給你 m元,你給我 4分錢。依次類推,你每天給我的錢是前一天的兩倍,直到一個(gè)月(38)天。百萬(wàn)富翁很高興,欣然接受這個(gè)契約。現(xiàn)要求,編寫一個(gè)程序,由鍵盤輸入 m,計(jì)算多少天后,百萬(wàn)富翁開始虧錢。 第一組自測(cè)數(shù)據(jù) 鍵盤輸入 100 正確輸出 18 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 10000 14

37、正確輸出 25 參考程序: #include "stdio.h" #include "math.h" main() int n,m,i; scanf ("%d",&m); for (i=1;i<=38;i+) if (0.01*(pow(2,i-1)-1)-i*m>=0) break; printf("%d",i-1); 15 實(shí)驗(yàn) 6 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(二) 一、實(shí)驗(yàn)?zāi)康?(1)進(jìn)一步熟悉掌握用while語(yǔ)句、do-while語(yǔ)句和 for 語(yǔ)句實(shí)現(xiàn)循環(huán)的方法。 (2)掌握在程序設(shè)計(jì)中使用多重

38、循環(huán)。 二、實(shí)驗(yàn)內(nèi)容 題目 1035:打印菱形 由鍵盤輸入正數(shù)n,要求輸出2*n+1行的菱形圖案。要求菱形左邊緊靠屏幕左邊。第一組自測(cè)數(shù)據(jù) 鍵盤輸入 3 正確輸出 * * * * * * * 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 2 正確輸出 * * * * * 16 參考程序: #include "stdio.h" #include "math.h" main() int n,i,j,k; scanf("%d",&n); for(i=1;i<=2*n+1;i+) k=abs(n+1-i); for(j=1;j<=k;j+)

39、printf(" "); for(j=1;j<=2*n+1-2*k;j+) printf("*"); printf("n"); 題目1137:找到滿足要求的數(shù)字 輸出1到9999中能被7整除,而且至少有一個(gè)數(shù)字是5的所有數(shù)字。輸出時(shí)一行一個(gè)數(shù)字,且按由小到大的排序輸出。提示判斷一個(gè)數(shù)字中是否有數(shù)字5,首先要掌握拆數(shù)字的方法,一種算法如下: 一個(gè)整數(shù)a,使用a%10,可以得到a的個(gè)位數(shù),然后使用a=a/10,可以將a中的個(gè)位數(shù)字除去,上述過程重復(fù)則可以的到原數(shù)a中其他位上的數(shù)字。參考程序:#include "stdio.

40、h"main() int i, j; for(i=7; i<=9999; i=i+7) j=i; while(j!=0) if(j%10=5) break; j=j/10; if(j!=0) printf("%dn", i); 題目 1038:打印圖案 由鍵盤輸入正數(shù)n,要求輸出中間數(shù)字為n的菱形圖案。要求菱形左邊緊靠屏幕左邊。 第一組自測(cè)數(shù)據(jù) 鍵盤輸入 4 正確輸出 1 121 12321 1234321 12321 121 1 第二組自測(cè)數(shù)據(jù) 鍵盤輸入 3 正確輸出 1 121 12321 121 1 參考程序: # include "stdi

41、o.h" # include "math.h" main() int n,i,j,k,h; scanf("%d",&n); for(i=-n+1;i<=n-1;i+) for(j=0;j<abs(i);j+) printf(" "); for(k=1;k<=n-abs(i);k+) printf("%d",k); for(h=n-abs(i)-1;h>=1;h-) printf("%d",h); printf("n"); 實(shí)驗(yàn) 7 數(shù)

42、組 一、實(shí)驗(yàn)?zāi)康?(1)掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出方法。 (2)掌握與數(shù)組有關(guān)的算法。 二、實(shí)驗(yàn)內(nèi)容 題目 1039:倒序 由鍵盤輸入10 個(gè)整數(shù),倒序輸出。 (數(shù)字間由一個(gè)空格分隔) 自測(cè)數(shù)據(jù) 鍵盤輸入 70 5 14 20 19 2 99 67 13 66 正確輸出 66 13 67 99 2 19 20 14 5 70 參考程序: #include "math.h" main() int a10; int i; for(i=0;i<10;i+) scanf("%d",&ai); for(i=9;i>=0;i-)

43、 printf("%dn",ai); 題目 1062:打印矩陣 由鍵盤輸入一個(gè)3×4的矩陣,要求輸出它的轉(zhuǎn)置矩陣。 自測(cè)數(shù)據(jù) 鍵盤輸入 1 6 9 3 1 1 0 2 1 9 8 9 參考程序: 正確輸出 1 1 1 6 1 9 9 0 8 3 2 9 #include<stdio.h> main() int a34,b43,i,j; for(i=0;i<3;i+) for(j=0;j<4;j+) scanf("%d",&aij); bji=aij; for(i=0;i<4;i+) for(j=0;j<

44、;3;j+) printf("%d ",bij); printf("n"); 題目 1047:冒泡排序 由鍵盤輸入10個(gè)數(shù),用“冒泡法”對(duì)10個(gè)數(shù)從小到大排序,并按格式要求輸出。代碼如下,請(qǐng)?zhí)畛渫暾?數(shù)字間由一個(gè)空格分隔。 #incude "stdio.h" main() int a10, i, j, t; 19 for(i=0;i<10;i+) scanf("%d",_) ; for( _) for(j=0;j<_;j+) if (_) _ for(i=0;i<10;i+) printf(&q

45、uot;%d ",ai); 自測(cè)數(shù)據(jù) 鍵盤輸入 70 5 14 20 19 2 99 67 13 66 正確輸出 2 5 13 14 19 20 66 67 70 99 參考程序: #include "stdio.h" main() int a10; int i,j,t; for(i=0;i<10;i+) scanf("%d",&ai); for(i=0;i<9;i+) for(j=0;j<9-i;j+) if(aj>aj+1) t=aj; aj=aj+1; aj+1=t; for(i=0;i<10;i+)

46、 printf("%d ",ai); 題目 1040:統(tǒng)計(jì)不同數(shù)字個(gè)數(shù) 由鍵盤輸入20 個(gè)整數(shù),統(tǒng)計(jì)不同數(shù)字的個(gè)數(shù)。 自測(cè)數(shù)據(jù) 鍵盤輸入 70 5 14 22 19 2 99 67 13 66 5 93 44 38 22 11 39 22 33 11 正確輸出 16 提示上述答案中,因?yàn)?有1個(gè)重復(fù)數(shù)字,11有 1個(gè)重復(fù)數(shù)字,22 有 2個(gè)重復(fù)數(shù)字,故不同數(shù)字有 16個(gè),分別是70 5 14 22 19 2 99 67 13 66 93 44 38 11 39 33 18 參考程序: #include"stdio.h" main() int a20; i

47、nt i,t,p=0; for(i=0;i<20;i+) scanf("%d",&ai); for(t=0;t<i;t+) if(at=ai)break; if(t=i) p+; printf("%d",p); 題目 1046:計(jì)算高精度加法 由鍵盤輸入兩個(gè)位數(shù)很長(zhǎng)的整數(shù)(一行一個(gè)數(shù),每個(gè)數(shù)最長(zhǎng)不超過 80 位),試計(jì)算并輸出這兩個(gè)數(shù)的和。 自測(cè)數(shù)據(jù) 鍵盤輸入 1234567890123456789 987654321098765 正確輸出 1235555544444555554 20 參考程序: #include "std

48、io.h" #include "string.h" main() int a100=0,b100=0,c100=0; char s101; int i=0,n1=0,n2=0,max=0,e=0; gets(s); n1=strlen(s); for(i=n1-1;i>=0;i-) an1-1-i=si-'0' gets(s); n2=strlen(s); for(i=n2-1;i>=0;i-) bn2-1-i=si-'0' if(n1>n2) max=n1; else max=n2; for(i=0;i<=max;i+) ci=(ai+bi+e)%10; e=(ai+bi+e)/10; if(cmax>0) printf("%d",cmax); for(i=max-1;i>=0;i-) printf("%d&qu

溫馨提示

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

評(píng)論

0/150

提交評(píng)論