C語(yǔ)言程序設(shè)計(jì)試驗(yàn)及代碼_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)試驗(yàn)及代碼_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)試驗(yàn)及代碼_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)試驗(yàn)及代碼_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)試驗(yàn)及代碼_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余29頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、西南林業(yè)大學(xué)C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)題、代碼、輸出結(jié)果編寫(xiě)目的: 學(xué)生的痛,大家都明白,特別是學(xué)渣的痛。呃,不過(guò)我漸漸從學(xué)渣成功逆襲,所以最后才會(huì)整理下這 些信息,為了讓后面的人在面對(duì)這 C 語(yǔ)言時(shí)不會(huì)那么腦大,不用像我們開(kāi)始時(shí)候的茫然。認(rèn)真享受在課堂上 GET知識(shí)的過(guò)程,接下去的事:作業(yè)考試也是水到渠成的事情,有的課程的卻要花點(diǎn)時(shí)間,但就像那句話(huà)說(shuō)的: No pain,no get. 付出不一定會(huì)有收獲,但是不付出一定會(huì)讓你后悔。所以, 認(rèn)真聽(tīng)課 ,不僅僅只是 C 語(yǔ)言, 還有其他的課程。實(shí)驗(yàn)題 目及代 碼、輸出結(jié)果實(shí)驗(yàn)題目目錄目錄 P1P6Printf 簡(jiǎn)單輸出三角形 P6給定圓半徑值為 5,編

2、程求圓面積和圓周長(zhǎng) P6編寫(xiě)一個(gè)攝氏溫度與華氏溫度之間的轉(zhuǎn)換程序 P6編寫(xiě)程序,從鍵盤(pán)上輸入兩個(gè)電阻值,求它們并聯(lián)電阻值和串聯(lián)電阻值, 輸出結(jié)果保留兩位小數(shù)。P7 (有主函數(shù)子函數(shù)P26)使用兩種指定的方法打印正三角形數(shù)陣 P7從鍵盤(pán)輸入 3 個(gè)數(shù)字字符,將它們分別轉(zhuǎn)換為對(duì)應(yīng)的整數(shù)值 (即字符' 0' 轉(zhuǎn)換為整數(shù) 0,字符' 1'轉(zhuǎn)換為整數(shù) 1,依次類(lèi)推) ,然后求 3 個(gè)整數(shù)的 平均值。 P8從鍵盤(pán)輸入兩個(gè)兩位的正整數(shù),按照以下格式組裝成一個(gè)四位的正整數(shù)。 P8 (指針變量 P19) 輸入三角形的三條邊長(zhǎng),求三角形的面積。 P9從鍵盤(pán)任意輸入 3 個(gè)整數(shù),選出

3、其中的最大數(shù)并打印。 -P10 從鍵盤(pán)輸入三個(gè)正整數(shù),判斷否能構(gòu)成三角形的三邊? -P10從鍵盤(pán)輸入一個(gè)合法的算術(shù)運(yùn)算符(+、-、*、/)及兩個(gè)實(shí)數(shù),使用if 語(yǔ)句編寫(xiě)程序,根據(jù)輸入的運(yùn)算符判斷對(duì)這兩個(gè)實(shí)數(shù)進(jìn)行何種運(yùn)算,并打印運(yùn)算結(jié)果(要求結(jié)果保留兩位小數(shù))。P11 (有主函數(shù)子函數(shù)P21)從鍵盤(pán)輸入一個(gè)年份和一個(gè)月份,使用switch語(yǔ)句編程判斷并打印該月的天數(shù)P12從鍵盤(pán)輸入1個(gè)整型的分?jǐn)?shù),使用switch語(yǔ)句編程,判斷如果分?jǐn)?shù)介于 0 59分之間就打印“不及格”;如果介于6079分之間就打印“及格”; 如果介于8089之間就打印“良好”;如果介于90100之間就打印“優(yōu) 秀”。P13使用

4、while語(yǔ)句編程求100以?xún)?nèi)能被5整除但不能同時(shí)被7整除的數(shù),并 統(tǒng)計(jì)找到的數(shù)的個(gè)數(shù)。P13從鍵盤(pán)輸入一個(gè)正整數(shù),使用while語(yǔ)句編程求該整數(shù)是一個(gè)幾位數(shù)。P14使用while語(yǔ)句編程求 = 的前n項(xiàng)和P14使用for語(yǔ)句編程求= 的前n項(xiàng)和P15使用for語(yǔ)句編程求=的前 n項(xiàng)和P16使用for語(yǔ)句的嵌套結(jié)構(gòu)編程打印九-九乘法表P16定義一個(gè)大小為10的整型一維數(shù)組,初始化所有數(shù)組元素,編程查找數(shù)組中的所有奇數(shù),并統(tǒng)計(jì)奇數(shù)的個(gè)數(shù) P17定義一個(gè)大小為10的整型一維數(shù)組,初始化其中的9個(gè)元素,這9個(gè)元素已經(jīng)按照降序排列。從鍵盤(pán)再輸入1個(gè)整數(shù),將該整數(shù)插入到已有的元素中,需保證這10個(gè)數(shù)仍然

5、按照降序排序。P18利用指針編程,其功能是求電阻的并聯(lián)值和串聯(lián)值。 P18利用指針編程,其功能是利用“除號(hào)”和“求余號(hào)”將輸入的兩個(gè)兩位的正整數(shù)組合成一個(gè)新的四位的正整數(shù)。 P16定義一個(gè)大小為10的整型一維數(shù)組并初始化數(shù)組元素,再定義一個(gè)指針 變量讓其指向該數(shù)組,利用指針編程查找數(shù)組中的所有奇數(shù)。P20輸入三角形的三條邊長(zhǎng),定義一個(gè)子函數(shù)fun()求三角形的面積P21定義一個(gè)子函數(shù)fun()打印菱形。P22定義一個(gè)子函數(shù)fun(),其功能是求1累加到100的和P23定義一個(gè)子函數(shù)fun(),求表達(dá)式二一的前n項(xiàng)和P23定義一個(gè)fun()函數(shù),其功能是:求兩個(gè)整數(shù)的和、差、積、商。P26在主函

6、數(shù)中輸入一元二次方程ax2+bx+c=0的三個(gè)系數(shù)a、b、c,求方程的實(shí)根。定義三個(gè)子函數(shù)fun 1( )、fun2( )、fun3()分別處理方程有無(wú)實(shí)根、 有兩個(gè)相同實(shí)根、有兩個(gè)不同實(shí)根的情況P27從鍵盤(pán)上輸入一個(gè)的字符串,輸出所有ASCII碼為奇數(shù)的字符,并統(tǒng)計(jì)這些字符的個(gè)數(shù)。 P28從鍵盤(pán)上輸入一個(gè)由大寫(xiě)字母、小寫(xiě)字母、數(shù)字字符、其它字符構(gòu)成的字符串,統(tǒng)計(jì)字符串中的大寫(xiě)字母?jìng)€(gè)數(shù)、小寫(xiě)字母?jìng)€(gè)數(shù)、數(shù)字字符個(gè)數(shù)、其它字符個(gè)數(shù)。P28從鍵盤(pán)輸入兩個(gè)字符串,分別存到字符數(shù)組a和字符數(shù)組b中,編程將第二個(gè)字符串連接到第一個(gè)字符串末尾,形成一個(gè)新字符串。(不使用#includevstring.h&g

7、t; 庫(kù)函數(shù))P29使用while語(yǔ)句編程求 =(n從0開(kāi)始)前n項(xiàng)值,直到某一項(xiàng)的值小于10-6就結(jié)束循環(huán)。 P30使用for語(yǔ)句的嵌套結(jié)構(gòu)編程打印行數(shù)為奇數(shù)的對(duì)稱(chēng)三教菱形P31從鍵盤(pán)輸入一個(gè)正整數(shù) x,編程求比x大的,最臨近x的n個(gè)素?cái)?shù),例如, 為x和n分別輸入數(shù)值10和15,就表示求出比10大的,最臨近10的15個(gè)素 數(shù)。P31題目及答案printf()函數(shù)的編程練習(xí)格式1編程輸出如圖所示的三角形。void mai n()prin tf("*n ");prin tf("* n ");prin tf("*n ");prin tf(

8、"* n "); 給定圓半徑值為5,編程求圓面積和圓周長(zhǎng)提示:(1) 本題需定義三個(gè)浮點(diǎn)型變量,如double r = 5, s, l;(2) 輸出浮點(diǎn)型數(shù)據(jù)的格式說(shuō)明符是%lf(3) C語(yǔ)言中沒(méi)有n這個(gè)符號(hào),編寫(xiě)程序時(shí)直接使用3.14159(4) C語(yǔ)言中沒(méi)有求次方的運(yùn)算符,求次方可用連乘的方法#in clude<stdio.h>#define PI 3.14159int mai n()float r=5;printf("圓半徑=%lfn 圓面積=%fn 圓周長(zhǎng)=%fn",r,PI*r*r,2*PI*r);(其中一個(gè)數(shù)的n次方可以用數(shù)學(xué)運(yùn)算

9、來(lái)算pow(r,n), “ r”為底數(shù),n為次數(shù))sea nf()函數(shù)、運(yùn)算符編程練習(xí)編寫(xiě)一個(gè)攝氏溫度與華氏溫度之間的轉(zhuǎn)換程序,轉(zhuǎn)換 公式是: 提示:該公式中的C'是一個(gè)從鍵盤(pán)輸入的已知量;F” 是通過(guò)公式計(jì)算并打印出來(lái)的未知量#in elude <stdio.h>void mai n()double F,C;printf(”請(qǐng)輸入一個(gè)攝氏溫度值:",C);scan f("%lf",&C);F=1.8*C+32;或F=9/5*C+32若定義類(lèi)型為int,則需要變?yōu)?F=9.0/5*C+32或F=9/5.0*C+32或用強(qiáng)制類(lèi)型轉(zhuǎn)換F=

10、(double)( 9/5)*C+32 ;原因是除號(hào)“ /”在運(yùn)算時(shí)為整型運(yùn)算printf("對(duì)應(yīng)的華氏溫度值是2lf",F);編寫(xiě)程序,從鍵盤(pán)上輸入兩個(gè)電阻值,求它們并聯(lián)電阻值和串聯(lián)電阻值,輸出結(jié)果保留兩 位小數(shù)。運(yùn)行結(jié)果如圖所示:注:并聯(lián)和串聯(lián)的電阻值計(jì)算公式如下。(1)并聯(lián)電阻RP =R1*R2R1+R2(2)串聯(lián)電阻 RS = R1+R2提示:(1) scanf()函數(shù)可以寫(xiě)成 scanf("%d,%d", &r1, &r2);(2) 結(jié)果保留兩位小數(shù)的格式說(shuō)明符是“ .2lf”。#in clude <stdio.h>

11、void mai n()double R1,R2,RRRS;printf("請(qǐng)輸入兩個(gè)電阻值:",R1,R2);scan f("%lf,%lf",&R1,&R2);RP=(R1*R2)/(R1+R2);RS=R1+R2;printf(”并聯(lián)電阻值:%.2lf n串聯(lián)電阻阻值:.2lf",RP,RS);1、使用兩種指定的方法打印如圖所示圖形字符的輸入和輸出方法一:使用printf()函數(shù)的C格式打印圖形提示:一個(gè)c”只能打印一個(gè)字符。方法一:#in clude<stdio.h> void mai n()方法二:使用pr

12、intf()函數(shù)的d”格式打印圖形prin tf("%4dn %4dn %dn",1,222,33333);void mai n()方法二:#in clude<stdio.h>int a,b,c;void mai n()a=49;b=50沙 *C:ItestDebugprog. ese"char a,b,c;c=51;待輸乂誦木瞄檢的正堂級(jí)噸34a='1'雖苔成的四位正樂(lè)數(shù)是:1324b='2'printf("Press flin# key to< cont inueHc=3;%cnprintf(&quo

13、t; %cn",a);",a);7printf(" %c%c%c n", b,b,b);priprin tf("%c%c%c%c%cn",c,c,c,c,c);ntf(” %c%c%cn", b,b,b);prin tf("%c%c%c%c%c n",c,c,c,c,c);方法二的類(lèi)似(運(yùn)用 ASCLL碼)#in clude<stdio.h>1、從鍵盤(pán)輸入3個(gè)數(shù)字字符,將它們 分別轉(zhuǎn)換為對(duì)應(yīng)的整數(shù)值(即字符 '' 轉(zhuǎn)換為整數(shù)0,字符''轉(zhuǎn)換為整數(shù)1, 依次類(lèi)推)

14、,然后求3個(gè)整數(shù)的平均值。 運(yùn)行結(jié)果如圖所示:double a,b,c,d;printf(”請(qǐng)輸入三個(gè)數(shù)字字符:”); scan f("%lf,%lf,%lf", &a,&b,&c); d=(a+b+c)/3;printf(” 平均值=%lfn",d);#in clude <stdio.h>提示:本題的變量定義可參考如下:char a, b, c;/ 變量 a,b,c保 存輸入的3個(gè)數(shù)字字符int x, y, z; / 變量 x,y,z保存轉(zhuǎn)換后的3個(gè)整數(shù)double aver; / 變量 aver保 存求出的平均值#in cl

15、ude<stdio.h>#in clude<math.h>void mai n(void)");char a,b,c;int x,y,z; double aver;printf("請(qǐng)輸入三個(gè)數(shù)字字符:sca nf("%c,%c,%c",&a,&b,&c); x=a-48;y=b-48;z=c-48;aver=(x+y+z)/3.0;printf("平均值為:%2lf",aver)void ma in (void)從鍵盤(pán)輸入兩個(gè)兩位的正整數(shù),按照以下格式組裝成一個(gè)四位的正整數(shù)。例如:輸入1

16、2和34,組裝成的四位數(shù)是1324。運(yùn)行效果如右圖所示:提示:(1)首先利用 除號(hào)”和求余號(hào)”分別把兩個(gè)兩位正整數(shù)的十位數(shù)、個(gè)位數(shù)分離開(kāi); 再經(jīng)過(guò)數(shù)學(xué)運(yùn)算組裝成一個(gè)四位數(shù)。(2)scanf(函數(shù)可以寫(xiě)成 scanf("%d%d", &a, &b);#in clude<stdio.h>#in clude<math.h> void mai n(void)int a,b, z;printf(”請(qǐng)輸入兩個(gè)兩位數(shù)的正數(shù):");sca nf("%d %d",&a, &b); z=a/10*1000+b

17、/10*100+a%10*10+b%10; printf(”合成的四位正整數(shù)是:%dn",z);數(shù)學(xué)函數(shù)的使用1、輸入三角形的三條邊長(zhǎng),求三角形的面積。運(yùn)行結(jié)果如圖所示: 提示:(1) 本題的變量定義可參考如下:int a, b, c; double x, s;(2) scanf(函數(shù)可以寫(xiě)成scan f("%d,%d,%d", &a, &b, &c);(3) 計(jì)算三角形面積的公式是:(4)求x的開(kāi)方值的庫(kù)函數(shù)是 sqrt(x),使用時(shí)其中包含頭文件 math.h#in clude<stdio.h>#in clude<ma

18、th.h>void mai n(void)int a,b,c;double x,s;printf("請(qǐng)輸入三角形的三邊:”);scan f("%d %d %d",&a,&b,& c);x=(a+b+c)/2;s=sqrt(x-a)*(x-b)*(x-c)*x); prin tf("s=%lfn",s);單分支if語(yǔ)句編程練習(xí)從鍵盤(pán)任意輸入3個(gè)整數(shù),選出其中的最大數(shù)并打印。提示:(1) 要判斷最大數(shù),需對(duì)每?jī)蓚€(gè)數(shù)作兩兩比較。(2) 可以使用3個(gè)單分支if語(yǔ)句編寫(xiě)程序。(3) 從鍵盤(pán)輸入2個(gè)整數(shù)到變量a、b中,編程總是

19、把較小的數(shù)放入a中,較大的數(shù)放入b中#i nclude <stdio.h>a=b;void mai n()b=t;int a,b,c,t;if(a<c)printf("請(qǐng)輸入三個(gè)整數(shù):”);t=a;scan f("%d%d%d", &a,&b,&c);a=c;if(a<b)c=t;t=a;if(b<c)t=b;b=c;c=t;printf("最大數(shù)是:%dn",a);#i nclude <stdio.h>void mai n()int a,b,t;printf("請(qǐng)輸入

20、兩個(gè)整數(shù)到變量a,b中");scan f("%d%d",&a,&b);prin tf("a=%d,b=%dn",a,b); if(a>b) t=a; a=b; b=t;printf("運(yùn)行結(jié) 果:a=%d,b=%dn",a,b);elseprintf(”運(yùn)行結(jié) 果:a=%d,b=%dn",a,b);就按照以下提示該題屬于雙分支if-else語(yǔ)句”結(jié)構(gòu)。能構(gòu)成三角形的邏輯條件是:任意的兩邊之和均要大于第三邊。 計(jì)算三角形面積的公式是:本題的變量定義可參考如下:int a, b, c; 其中dou

21、ble x, s;本題要用到求x開(kāi)方值的數(shù)學(xué)庫(kù)函數(shù)sqrt(x),需包含頭文件 math.h從鍵盤(pán)輸入三個(gè)正整數(shù),判斷否能構(gòu)成三角形的三邊?如果能的數(shù)學(xué)公式計(jì)算三角形的面積;如果不能,就輸出“不能構(gòu)成三角形”的提示信息。 提示:(1)(2)(3)(4)(5)#in clude<stdio.h>#in clude<math.h>void mai n(void)int a,b,c,m, n,t; double x,s;printf("請(qǐng)輸入三角形的三邊:”);scan f("%d %d %d",&a,&b,& c);m=

22、a+b; n=b+c; t=a+c;if(m>c&&n >a&&t>b)x=(a+b+c)/2; s=sqrt(x-a)*(x-b)*(x-c)*x);printf("構(gòu)成的三角形面積是:%.2lfn",s);elseprintf("不能構(gòu)成三角形n"); 從鍵盤(pán)輸入一個(gè)合法的算術(shù)運(yùn)算符(+、-、*、/)及兩個(gè)實(shí)數(shù),使用if語(yǔ)句編寫(xiě) 程序,根據(jù)輸入的運(yùn)算符判斷對(duì)這兩個(gè)實(shí)數(shù)進(jìn)行何種運(yùn)算,并打印運(yùn)算結(jié)果(要求結(jié)果保留兩位小數(shù))。程序運(yùn)行效果如下圖所示: 提示:(1) 該題屬于多分支if語(yǔ)句”結(jié)構(gòu)。(2) 本題

23、的變量定義可參考如下:char fu; /fu變量用來(lái)存放運(yùn)算符double x, y,乙/x、y變量用來(lái)存放輸入的2個(gè)實(shí)數(shù),z存放運(yùn)算結(jié)果(3) 輸入字符型數(shù)據(jù)的格式說(shuō)明符是%c實(shí)型數(shù)據(jù)的格式說(shuō)明符是lfswitch 語(yǔ)句編寫(xiě)該題程序。4)輸出實(shí)數(shù)保留 2 位小數(shù)的格式說(shuō)明符是 %.2lf。( 5)本題可參考教材 P61 例 3.7,但是不允許使用#include<stdio.h>void main()char fu; double x,y,z; int t,a;printf(" 請(qǐng)輸入一個(gè)算數(shù)運(yùn)算符和兩個(gè)浮點(diǎn)數(shù) scanf("%c %lf %lf"

24、,&fu,&x,&y); t=47-fu;if(t=4) z=x+y; printf("%.2lf %c else if(t=5) z=x*y; printf("%.2lf else if(t=2) z=x-y; printf("%.2lf else if(t=0) z=x/y; printf("%.2lf%.2lf%c%c%.2lf%.2lf%.2lfn",x, fu%c %.2lf%.2lfn",x,%.2lfn",x,");,yfufu%.2lfn",x,z);,y,yfu,

25、z);,z);,y,z);elseprintf(" 運(yùn)算符非法,無(wú)法參與運(yùn)算 n");從鍵盤(pán)輸入一個(gè)年份和一個(gè)月份, 使用 switch 語(yǔ)句編程判斷并打印該月的天數(shù)。 程序運(yùn)行效果如下所示:提示:(1) 本題先使用if語(yǔ)句判斷年份和月份是否有效。(2) 如果年份和月份有效,再嵌套switch語(yǔ)句判斷每個(gè)月份的天數(shù)。(3) 對(duì)于2月份的處理需要判斷閏年,閏年的判斷方法請(qǐng)參考教材P62例3.8#include<stdio.h>void main()int year,month,day;printf(" 請(qǐng)輸入一個(gè)年份和一個(gè)月份: ");scan

26、f("%d %d",&year,&month); if(month>0&&month<=12)switch(month)case 1:case 3:case 5:case 7:case 8:case 10:case 12:printf("%d 月有 31 天 n",month); break;case 4:case 6:case 9:case 11:printf("%d 月有 30 天 n",month); break;default: if(year%4=0&&year%1

27、00!=0)|(year%400=0)printf("2 月有 29 天n");elseprintf("2 月有 28 天n");break;elseprintf(" 輸入的月份值無(wú)效! ");從鍵盤(pán)輸入1個(gè)整型的分?jǐn)?shù),使用switch語(yǔ)句編程,判斷如果分?jǐn)?shù)介于0 59分之間就打印“不及格;”如果介于 60 79 分之間就打印“及格;”如果介于 80 89之間就打印“良好;”如果介于 90 1 00之間就打印“優(yōu)秀?!?include<stdio.h>case 8:void main()printf(" 良好 n

28、");break;int a,b;case 9:printf(" 請(qǐng)輸入一個(gè)分?jǐn)?shù)介于 <0 100>case 10:間:");printf(" 優(yōu)秀 n");scanf("%d",&a);break;if(a>0&&a<=100)default:printf(" 不及格 n");b=a/10;break;switch(b)case 6:elsecase 7:printf(" 輸入的分?jǐn)?shù)份值無(wú)效! n");printf(" 及格

29、n");break;使用while語(yǔ)句編程求100以?xún)?nèi)能被5整除但不能同時(shí)被7整除的數(shù),并統(tǒng)計(jì)找到的數(shù)的個(gè)數(shù)提示:(1)該題變量可定義為:int i=1, n=0; / i是循環(huán)變量,n是統(tǒng)計(jì)個(gè)數(shù)的變量(2) 整除問(wèn)題應(yīng)使用求余號(hào)“ %,而不能使用除號(hào)“/#in clude<stdio.h>void mai n()int i,n ,b,c;i=1;n=0;printf("100以?xún)?nèi)能被5整除但不能同時(shí)被7整除的數(shù)是:n");while(i<=100)b=i%5;c=i%7;if(b=0&&c!=0)prin tf("%d

30、”,i);n=n+1;i+;printf(”符合條件的數(shù)有%d個(gè)n",n);從鍵盤(pán)輸入一個(gè)正整數(shù), 使用while語(yǔ)句編程求該整數(shù)是一個(gè)幾位數(shù)。程序運(yùn)行效果如下所示:提示:(1)該題變量可定義為intx, n=0, m;其中,x保存輸入的正整數(shù),n統(tǒng)計(jì)位數(shù),m暫存x的值。(2)每次循環(huán)將x的值縮小10倍,直到x縮小為0即結(jié)束循環(huán),循環(huán)次數(shù)就是整數(shù)的位數(shù)。#in clude<stdio.h>void mai n()int x,n ,m,i;n=0;printf("請(qǐng)輸入一個(gè)正整數(shù):”); scan f("%d",& x);i=x;whi

31、le(m!=0)m=x/10;n+;x=m;printf("%d 是一個(gè) %d 位數(shù) n”,i,n);匸*C: test Debu£a-. . .|sum = 1.818182Press any key to continueTinnr上使用while語(yǔ)句編程求以下表達(dá)式的值,程序運(yùn)行結(jié)果如圖所示:提示:(1)該題變量可定義為:int i;double mu, t, sum;(2)本題的循環(huán)體里有3個(gè)通式:分母的通式、當(dāng)前項(xiàng)的通式、求和的 通式、i自增的通式。printf(”表達(dá)式的值為: prin tf("sum= %fn ”,sum);n");I*C

32、: testDebuea| (Jk.如果從鍵盤(pán)輸入 20賦sum = 5珂伽胭4Press any key to cantinuev1 1 r sum=1/mu+t; t=sum; i+; mu=mu+i;#in clude<stdio.h>void mai n()int i;double mu,t,sum;mu=1;t=0;i=1;while(i<=10)for語(yǔ)句編程練習(xí)1、使用for語(yǔ)句編程求以下表達(dá)式的值,值給變量n,則運(yùn)行效果如圖所示: 提示:(1)該題變量可定義為inti, n; double t, sum;(2)本題需用到求開(kāi)方值的數(shù)學(xué)函數(shù)sqrt(),并包含頭

33、文件 math.h#in clude<stdio.h>#in clude<math.h>void mai n()int i,n;double t,sum,b=0;printf("請(qǐng)輸入整數(shù)值:”); scan f("%d",&n);sum=0;for(i=0;i<=20;i+)t=sqrt(i,2);b=b+t;sum=sum+b;prin tf("sum=%lfn",sum);使用for語(yǔ)句編程求以下表達(dá)式的值,程序運(yùn)行結(jié)果如圖所示:提示:(1)注意觀(guān)察可知相鄰兩項(xiàng)中,后一項(xiàng)的分母是前一項(xiàng)的分母加(2)該

34、題變量可定義為:int i;double mu, t, sum;其中i是循環(huán)變量,mu保存每一次循環(huán)的當(dāng)前項(xiàng)的分母,t保存每一次循 環(huán)的當(dāng)前項(xiàng),sum保存N項(xiàng)式的總和mu=mu+i;t=1/mu; sum=sum+t;printf(”表達(dá)式值為:n”); prin tf("sum = %lfn",sum);#in clude<stdio.h> void mai n()int i;double t=0,sum=0,mu=0; for(i=1;i<=10;i+) 循環(huán)的嵌套編程練習(xí) 使用for語(yǔ)句的嵌套結(jié)構(gòu)編程打印九-九乘法表,程序運(yùn)行效果如圖所示:#in c

35、lude<stdio.h>void mai n()int i,m, n;for(i=1 ;i<10;i+)for(m=1;m<=i;m+)n=i*m;prin tf("%d*%d=%d ",m,i, n);prin tf("n");定義一個(gè)大小為10的整型一維數(shù)組,初始化所有數(shù)組元素,編程查找數(shù)組中的 所有奇數(shù),并統(tǒng)計(jì)奇數(shù)的個(gè)數(shù)。運(yùn)行效果如圖所示: 提示:(1) 本題變量定義可參考如下int a10=2,4,5,6,9,11,13,16,17,19, i, sum=0;(2) 首先用一個(gè)for循環(huán)打印10個(gè)數(shù)組元素的初值。(1)源

36、程序粘貼在此處。#in clude<stdio.h>/#defi ne N 10void mai n()(3) 再用一個(gè)for循環(huán)嵌套if語(yǔ)句查找并打印數(shù)組中的奇數(shù)。int a10=2,4,5,6,9,11,13,16,17,19, i,n=0;printf("數(shù)組中的初始值是:”);for(i=0;i<10;i+) prin tf("%d ”,ai);prin tf("n ”);prin tf("n ”);printf(”數(shù)組中的奇數(shù)是:"); for(i=0;i<=10;i+)if(ai%2!=0) prin tf(

37、"%d ”,ai); n+;prin tf("n");prin tf("n");printf("奇數(shù)個(gè)數(shù)是:%dn",n);定義一個(gè)大小為10的整型一維數(shù)組,初始化其中的 9個(gè)元素,這9個(gè)元素已經(jīng) 按照降序排列。從鍵盤(pán)再輸入1個(gè)整數(shù),將該整數(shù)插入到已有的元素中,需保證這10個(gè)數(shù)仍然按照降序排序。程序運(yùn)行效果如下圖所示: 提示:(1)本題變量定義可參考如下int a10= 20, 18, 15, 12, 10, 9, 7, 5, 2, i, j, t;(2) 本題使用冒泡法排序,先將鍵盤(pán)輸入的1個(gè)整數(shù)放到數(shù)組元素a9中,然后使

38、用排序算法對(duì)這10個(gè)數(shù)進(jìn)行降序排序。#in clude<stdio.h>prin tf("%d ",ai);#defi ne N 10void mai n()prin tf("n");prin tf("n");int a9= 20, 18, 15, 12, 10, 9, 7, 5, 2;for(i=0;i<10;i+)int i,j,t;printf(”數(shù)組中前面9個(gè)兀素是:n");for(j=0;j<9-i;j+)for(i=0;i<9;i+)if(aj<aj+1)prin tf(&qu

39、ot;%d ",ai);t=aj;prin tf("n ”);aj=aj+1;prin tf("n ”);aj+1=t;printf("請(qǐng)輸入一個(gè)整數(shù):”);scan f("%d",&a9);prin tf("n");printf("數(shù)組中的10個(gè)兀素是:n");printf("降序排序后的整數(shù)為for(i=0;i<10;i+)for(i=0;i<10;i+)prin tf("n");prin tf("%d ”,ai);利用指針編程,其

40、功能是求電阻的并聯(lián)值和串聯(lián)值。程序運(yùn)行效果如圖所示:要求:輸入電阻值;計(jì)算并聯(lián)串聯(lián)值;打印結(jié)果都必須使用指針完成。 提示:(1)該題的變量可定義為int r1, r2, *p1, *p2; double rp, rs, *pp, *ps;其中指針pl、p2用來(lái)指向并操作變量r1、r2;指針pp、ps用來(lái)指向并操作變量rp、(2)在利用指針編程之前,應(yīng)將指針指向?qū)?yīng)的變量#in clude<stdio.h>void mai n()int r1, r2, *p1, *p2; double rp, rs, *pp, *ps;printf("請(qǐng)輸入兩個(gè)電阻值");sca

41、nf("%d %d",&r1,&r2);p仁&r1;p2=&r2;rp=(double)(*p1 * *p2) / (double)(*p1 + *p2);rs=*p1+*p2;pp=&rp;ps=&rs;printf(” 并聯(lián)電阻組織=%lfn",*pp);printf("串聯(lián)電阻組織=%lfn",*ps);利用指針編程,其功能是利用除號(hào)”和求'余號(hào)”將輸入的兩個(gè)兩位的正整數(shù)組合成一個(gè)新的四 位的正整數(shù)。要求:輸入整數(shù)值;計(jì)算;打印結(jié)果都必須使用指針完成 提示:該題的變量可定義為int

42、a, b, c, *pa, *pb, *pc;其中指針pa、pb、pc分別用來(lái)指向并操作變量a、b、c。變量a、b用來(lái)存放輸入的兩個(gè)兩 位正整數(shù),變量c用來(lái)存放組合后的四位的正整數(shù)方法一#in clude<stdio.h> void mai n()int a,b,c,*pa,*pb,*pc;printf(" 請(qǐng)輸入兩個(gè)兩位數(shù)的正整數(shù): ");scanf("%d %d",&a,&b);pa=&a;pb=&b; c=*pa/10*1000+*pb/10*100+*pa%10*10+*pb%10;pc=&c;

43、printf(" 組合成的四位正整數(shù)是: %dn",*pc);方法二#include<stdio.h>void main()int a,b,c,*pa,*pb,*pc;printf(" 請(qǐng)輸入兩個(gè)兩位數(shù)的正整數(shù): ");pa=&a;pb=&b;scanf("%d %d",pa,pb); c=*pa/10*1000+*pb/10*100+*pa%10*10+*pb%10;pc=&c;printf("%dn",*pc);/ Int 前不能空行,不然無(wú)法識(shí)別。定義一個(gè)大小為 10的整型

44、一維數(shù)組并初始化數(shù)組元素, 再定義一個(gè)指針變量讓其指向該數(shù)組,利用指針編程查找數(shù)組中的所有 奇數(shù)。運(yùn)行效果如圖所示:提示:1) 該題變量可定義為int a10=2,4,5,6,9,11,13,16,17,19, *p, i;2)在使用指針編程之前,應(yīng)先將指針 p 指向數(shù)組要求:使用下標(biāo)法”編程,即使用p'i ” 方法一 #include<stdio.h>void main()int a10=2,4,5,6,9,11,13,16,17,19,*p,i,n=0;p=&ai; ( p=a;)printf(" 數(shù)組中的初始值是: "); for(p=a,

45、i=0;i<10;i+) (for(i=0;i<10;i+) printf("%d ",pi);printf("n");printf("n");printf(" 數(shù)組中的奇數(shù)是: ");for(p=a,i=0;i<=9;i+) (for(i=0;i<=9;i+) if(pi%2!=0)的形式引用數(shù)組元素。 printf("%d ",pi); n+;printf("n");printf("n");printf(" 奇數(shù)個(gè)數(shù)是

46、: %dn",n);方法二 #include<stdio.h>void main()inta10=2,4,5,6,9,11,13,16,17,19,*p,i,n=0; p=a;printf(" 數(shù)組中的初始值是: ");for(i=0;i<10;i+)prin tf("%d ”,pi);prin tf("n ”);prin tf("n ”);printf(”數(shù)組中的奇數(shù)是:"); for(i=0;i<=9;i+)if(pi%2!=0) prin tf("%d ”,pi); n+;prin t

47、f("n");prin tf("n");printf("奇數(shù)個(gè)數(shù)是:%dn",n);輸入三角形的三條邊長(zhǎng),定義一個(gè)子函數(shù)fun()求三角形的面積。運(yùn)行結(jié)果如圖"C:DoctriEins ahd s. |溝輸入三角形的三邊:三角形面積-6.000000 Press anjy key to continue所示:要求:(1) 數(shù)據(jù)輸入和結(jié)果打印都必須在main()函數(shù)中完成。(2) fun()函數(shù)的功能是求三角形的面積。提示:(1)計(jì)算三角形面積的公式是:1 x=_(a + b+c)s x(x-a)(x-b)(x-c)其中 2計(jì)

48、算x的開(kāi)方值的庫(kù)函數(shù)是 sqrt(x);使用時(shí)需包含頭文件 math.h(2)fun()函數(shù)的函數(shù)首部可參考如下double fun(int a, int b, int c) /該函數(shù)有3個(gè)形參,返回值類(lèi)型為 double#in clude<stdio.h>#in clude<math.h>double fun (i nt a,i nt b,i nt c)double m;double d,s;d=(a+b+c)/2;s=sqrt(d-a)*(d-b)*(d-c)*d);return(s);void mai n()int a,b,c;double m;printf(&q

49、uot;請(qǐng)輸入三角形的三邊:”);scan f("%d %d %d",&a,&b,&c);m=fu n(a,b,c);printf("三角形面積=%lfn",m);定義一個(gè)子函數(shù) fun( )打印菱形。運(yùn)行結(jié)果如圖所示: 要求:菱形的行數(shù)在 main( )函數(shù)中輸入,根據(jù)輸入的行數(shù)決定菱形打印幾行 提示:( 1)fun( )函數(shù)的函數(shù)首部可參考如下 void fun(int x) / 該函數(shù)有 1 個(gè)形參, 無(wú)返 回值(2)在 fun( )函數(shù)內(nèi)部,首先根據(jù)形參 x 的值計(jì)算出正三角和倒三角的行數(shù),然后再執(zhí)行循環(huán)的嵌套結(jié)構(gòu)分別打印

50、正三角和倒三角。#include<stdio.h>void fun(int x)int i,j,k; for(i=1;i<=x/2+1;i+)for(k=1;k<=x/2+2-i;k+) printf(" ");for(j=1;j<=2*i-1;j+)printf("*");printf("n"); for(i=1;i<=x/2;i+)printf(" ");for(k=1;k<=i;k+)printf(" ");for(j=1;j<=x-2*i;

51、j+)printf("*");printf("n");void main()int a;printf(" 請(qǐng)輸入菱形的行數(shù)(注意:行數(shù) 為奇數(shù)):");scanf("%d",&a);fun(a);定義一個(gè)子函數(shù) fun( ),其功能是求 1累加到 100的和 要求:結(jié)果在子函數(shù)打印。提示:(1) fun()函數(shù)寫(xiě)在前,ma in ()函數(shù)寫(xiě)在后。(2) fun( )函數(shù)定義為 無(wú)參、無(wú)返回值 形式。 #include<stdio.h> void fun()int i,sum=0; for(i=1

52、;i<=100;i+) sum=sum+i;printf("1+2+3+.+100=%dn",sum); printf("n");void main()fun ();定義一個(gè)子函數(shù)fun(),求表達(dá)式Sn = 1 * % * %! * % * %! *+ Tn!的值。主函數(shù)定義如下所示,請(qǐng)完成fun()函數(shù)。#in clude<stdio.h>double fun (i nt n);void mai n()int n;double sum;printf(”請(qǐng)輸入n的值:");scan f("%d",&

53、;n);sum=fun(n);prin tf("sum=%lfn",sum);double fun (i nt n)int i;double a=1,b,sum=1;for(i=1;i<=n ;i+)a=(double)a*i;b=(double)1/a;sum=sum+b;return(sum);2、定義一個(gè)子函數(shù)fun()求算術(shù)表達(dá)式的解。要求:運(yùn)算符(+, -, *, /, %)和兩個(gè)整數(shù)在主函數(shù)輸入,結(jié)果也在主函數(shù)打印。提示:(1)主函數(shù)內(nèi)先判斷運(yùn)算符的有效性,如果運(yùn)算符有效,就調(diào)用 fun()函數(shù)。如果運(yùn)算符非法,就打印錯(cuò)誤提示信息,不調(diào)用 fun()函數(shù)。

54、(2)fun()函數(shù)的函數(shù)首部可以參考如下double fun( char fu, int a, int b)其中形參fu代表運(yùn)算符,形參a、b代表參與運(yùn)算的兩個(gè)數(shù),函數(shù) 返回類(lèi)型為double,表示函數(shù)的運(yùn)行結(jié)果是實(shí)數(shù)ca ' T:De sktop 1 lDebugT ewt.J 直二 2, 3L.200000Press any key to continuedouble fun( char fu, double x, double y ,int t)double ans;if(t=4)an s=x+y;else if(t=5)an s=x*y;else if(t=2)an s=x-

55、y;else if(t=0)an s=x/y;/* elseprintf("運(yùn)算符非法,無(wú)法參與運(yùn)算 n");*/ return (an s);#i nclude<stdio.h>void mai n()char fu;double x,y, z;int t;printf("請(qǐng)輸入一個(gè)算數(shù)運(yùn)算符和兩個(gè)浮點(diǎn)數(shù)");sca nf("%c %lf %lf", &fu,&x,&y); t=47-fu;if(t=4|t=5|t=2|t=0)z=fu n(fu,x,y,t);printf("%.2lf

56、 %c %.2lf=%.2lfn",x ,fu ,y ,z);elseprintf("運(yùn)算符非法,無(wú)法參與運(yùn)算n");參數(shù)的“傳值”方式與“傳地址”方式編程 練習(xí)1、在主函數(shù)中輸入2個(gè)電阻值,定義一個(gè)子函數(shù)求這2個(gè)電阻 的并聯(lián)電阻值和串聯(lián)電阻值,并在主函數(shù)中輸出運(yùn)算結(jié)果。程序運(yùn)行效果 如圖所示: 提示:(1) 主函數(shù)中的變量定義可參考如下double a, b, bing, chua n;(2) 子函數(shù)為有參、無(wú)返回值的形式。#i nclude<stdio.h>void fun( double a,double b)double bin g,chua

57、n;bin g=(a*b)/(a+b);chuan=a+b;printf(” 并聯(lián)電阻阻值=%lfn",bing);printf(” 串聯(lián)電阻阻值=%lfn",chuan); return;void mai n()double a,b,b in g,chua n;printf(”請(qǐng)輸入兩個(gè)電阻值:”);void fun (i nt a, int b,s *C:Docu>ents an, . . |int *he, int *eha, intjh.*ji, double *sha ng)初;3 +4=7p: 3 - 4 - -13 * 4 - 12*he=a+b;商:3

58、 z 4 = 0.75Press amy key to coniioue*eha=a-b;*ji=a*b;#in clude<stdio.h>ax2+bx+c=0的三個(gè)系數(shù)a、b、e,求方程的實(shí)fun 1()、fun2( )、fun3()分別處理方程有無(wú)實(shí)根、有兩個(gè)相sea nf("%lf%lf", &a,&b);fun( a,b);2、定義一個(gè)fun()函數(shù),其功能是: 求兩個(gè)整數(shù)的和、差、積、商。程序 運(yùn)行效果如圖所示:要求:兩個(gè)整數(shù)值在主函數(shù)中輸入,運(yùn)算結(jié)果在主函數(shù)中輸出。子函數(shù)是進(jìn)行運(yùn)算。提示:(1) mai n()函數(shù)的變量定義為int a, b, he, eha, ji;double sha ng ;(2) 本題需使用參數(shù)的傳地址方式,fun()函數(shù)有6個(gè)參數(shù)。fun()函數(shù)首部為:在主函數(shù)中

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論