




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、西南林業(yè)大學C語言程序設計實驗題、代碼、輸出結果編寫目的:學生的痛,大家都明白,特別是學渣的痛。呃,不過我漸漸從學渣成功逆襲,所以最后才會整理下這些信息,為了讓后面的人在面對這C語言時不會那么腦大,不用像我們開始時候的茫然。 認真享受在課堂上GET知識的過程,接下去的事:作業(yè)考試也是水到渠成的事情,有的課程的卻要花點時間,但就像那句話說的:No pain,no get. 付出不一定會有收獲,但是不付出一定會讓你后悔。所以,認真聽課,不僅僅只是C語言,還有其他的課程。實驗題目及代碼、輸出結果實驗題目目錄目錄 P1-P6Printf簡單輸出三角形-P6給定圓半徑值為5,編程求圓面積和圓周長-P6編
2、寫一個攝氏溫度與華氏溫度之間的轉換程序-P6編寫程序,從鍵盤上輸入兩個電阻值,求它們并聯(lián)電阻值和串聯(lián)電阻值,輸出結果保留兩位小數。-P7(有主函數子函數-P26)使用兩種指定的方法打印正三角形數陣-P7從鍵盤輸入3個數字字符,將它們分別轉換為對應的整數值(即字符0轉換為整數0,字符1轉換為整數1,依次類推),然后求3個整數的平均值。-P8從鍵盤輸入兩個兩位的正整數,按照以下格式組裝成一個四位的正整數。-P8(指針變量-P19)輸入三角形的三條邊長,求三角形的面積。-P9從鍵盤任意輸入3個整數,選出其中的最大數并打印。-P10從鍵盤輸入三個正整數,判斷否能構成三角形的三邊?-P10從鍵盤輸入一個
3、合法的算術運算符(+、-、*、/)及兩個實數,使用if語句編寫程序,根據輸入的運算符判斷對這兩個實數進行何種運算,并打印運算結果(要求結果保留兩位小數)。-P11(有主函數子函數-P21)從鍵盤輸入一個年份和一個月份,使用switch語句編程判斷并打印該月的天數-P12從鍵盤輸入1個整型的分數,使用switch語句編程,判斷如果分數介于0 59分之間就打印“不及格”;如果介于60 79分之間就打印“及格”;如果介于80 89之間就打印“良好”;如果介于90 100之間就打印“優(yōu)秀”。-P13使用while語句編程求100以內能被5整除但不能同時被7整除的數,并統(tǒng)計找到的數的個數。-P13從鍵盤
4、輸入一個正整數,使用while語句編程求該整數是一個幾位數。-P14使用while語句編程求an=1n1n的前n項和-P14使用for語句編程求an=1nn的前n項和-P15使用for語句編程求an=1i=0nn的前n項和-P16使用for語句的嵌套結構編程打印九-九乘法表-P16定義一個大小為10的整型一維數組,初始化所有數組元素,編程查找數組中的所有奇數,并統(tǒng)計奇數的個數-P17定義一個大小為10的整型一維數組,初始化其中的9個元素,這9個元素已經按照降序排列。從鍵盤再輸入1個整數,將該整數插入到已有的元素中,需保證這10個數仍然按照降序排序。-P18利用指針編程,其功能是求電阻的并聯(lián)值和
5、串聯(lián)值。-P18利用指針編程,其功能是利用“除號”和“求余號”將輸入的兩個兩位的正整數組合成一個新的四位的正整數。-P16定義一個大小為10的整型一維數組并初始化數組元素,再定義一個指針變量讓其指向該數組,利用指針編程查找數組中的所有奇數。-P20輸入三角形的三條邊長,定義一個子函數fun( )求三角形的面積-P21定義一個子函數fun( )打印菱形。-P22定義一個子函數fun( ),其功能是求1累加到100的和-P23定義一個子函數fun( ) ,求表達式an=1n!的前n項和-P23定義一個fun( )函數,其功能是:求兩個整數的和、差、積、商。-P26在主函數中輸入一元二次方程ax2+
6、bx+c=0的三個系數a、b、c,求方程的實根。定義三個子函數 fun1( )、fun2( )、fun3( ) 分別處理方程有無實根、有兩個相同實根、有兩個不同實根的情況-P27從鍵盤上輸入一個的字符串,輸出所有ASCII碼為奇數的字符,并統(tǒng)計這些字符的個數。-P28從鍵盤上輸入一個由大寫字母、小寫字母、數字字符、其它字符構成的字符串,統(tǒng)計字符串中的大寫字母個數、小寫字母個數、數字字符個數、其它字符個數。-P28從鍵盤輸入兩個字符串,分別存到字符數組a和字符數組b中,編程將第二個字符串連接到第一個字符串末尾,形成一個新字符串。(不使用#include<string.h>庫函數)-P
7、29使用while語句編程求an=xnn!(n從0開始)前n項值,直到某一項的值小于10-6就結束循環(huán)。-P30使用for語句的嵌套結構編程打印行數為奇數的對稱三教菱形-P31從鍵盤輸入一個正整數x,編程求比x大的,最臨近x的n個素數,例如,為x和n分別輸入數值10和15,就表示求出比10大的,最臨近10的15個素數。-P31題目及答案printf( )函數的編程練習格式1編程輸出如圖所示的三角形。void main()printf("*n ");printf("*n ");printf("*n ");printf("*n
8、");給定圓半徑值為5,編程求圓面積和圓周長提示: (1)本題需定義三個浮點型變量,如 double r = 5, s, l;(2)輸出浮點型數據的格式說明符是 %lf (3)C語言中沒有這個符號,編寫程序時直接使用3.14159(4)C語言中沒有求次方的運算符,求次方可用連乘的方法#include<stdio.h>#define PI 3.14159int main()float r=5;printf("圓半徑=%lfn圓面積=%fn圓周長=%fn",r,PI*r*r,2*PI*r);(其中一個數的n次方可以用數學運算來算pow(r,n),“r”為底
9、數,n為次數)scanf( )函數、運算符編程練習編寫一個攝氏溫度與華氏溫度之間的轉換程序,轉換公式是:提示:該公式中的“C”是一個從鍵盤輸入的已知量;“F”是通過公式計算并打印出來的未知量。#include <stdio.h>void main()double F,C;printf("請輸入一個攝氏溫度值:",C);scanf("%lf",&C);F=1.8*C+32;/或F=9/5*C+32若定義類型為int,則需要變?yōu)镕=9.0/5*C+32或F=9/5.0*C+32或用強制類型轉換F=(double)(9/5)*C+32;原因
10、是除號“/”在運算時為整型運算printf("對應的華氏溫度值是:%.2lf",F); 編寫程序,從鍵盤上輸入兩個電阻值,求它們并聯(lián)電阻值和串聯(lián)電阻值,輸出結果保留兩位小數。運行結果如圖所示:R1+R2R1*R2注:并聯(lián)和串聯(lián)的電阻值計算公式如下。(1)并聯(lián)電阻 RP = (2)串聯(lián)電阻 RS = R1+R2提示:(1)scanf( )函數可以寫成 scanf("%d,%d", &r1, &r2);(2)結果保留兩位小數的格式說明符是“%.2lf”。#include <stdio.h>void main()double R1,
11、R2,RP,RS;printf("請輸入兩個電阻值:",R1,R2);scanf("%lf,%lf",&R1,&R2); RP=(R1*R2)/(R1+R2); RS=R1+R2;printf("并聯(lián)電阻值:%.2lf n串聯(lián)電阻阻值:%.2lf",RP,RS);字符的輸入和輸出1、使用兩種指定的方法打印如圖所示圖形。方法一:使用printf( )函數的“%c”格式打印圖形。 提示:一個“%c”只能打印一個字符。方法二:使用printf( )函數的“%d”格式打印圖形。方法一:#include<stdio.h&g
12、t;void main()printf("%4dn %4dn %dn",1,222,33333);方法二:#include<stdio.h>void main()char a,b,c;a='1'b='2'c='3'printf(" %cn", a);printf(" %c%c%cn", b,b,b);printf("%c%c%c%c%cn",c,c,c,c,c);方法二的類似(運用ASCLL碼)#include<stdio.h>void mai
13、n() int a,b,c; a=49; b=50 c=51; printf(" %cn", a);printf(" %c%c%cn", b,b,b);printf("%c%c%c%c%cn",c,c,c,c,c);1、從鍵盤輸入3個數字字符,將它們分別轉換為對應的整數值(即字符0轉換為整數0,字符1轉換為整數1,依次類推),然后求3個整數的平均值。運行結果如圖所示:提示:本題的變量定義可參考如下:char a, b, c; /變量a,b,c保存輸入的3個數字字符int x, y, z; /變量x,y,z保存轉換后的3個整數doubl
14、e aver; /變量aver保存求出的平均值#include<stdio.h>#include<math.h>void main(void)double a,b,c,d;printf("請輸入三個數字字符:");scanf("%lf,%lf,%lf",&a,&b,&c);d=(a+b+c)/3;printf("平均值=%lfn",d);#include <stdio.h>void main(void)char a,b,c;int x,y,z;double aver;prin
15、tf("請輸入三個數字字符:");scanf("%c,%c,%c",&a,&b,&c);x=a-48;y=b-48;z=c-48;aver=(x+y+z)/3.0;printf("平均值為:%2lf",aver);fuchu水到渠成的事情,有的可999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999從鍵盤輸入兩個兩位的正整數,按照以下格式組裝成一個四位的正整數。例如:輸
16、入12和34,組裝成的四位數是1324。運行效果如右圖所示:提示:(1)首先利用“除號”和“求余號”分別把兩個兩位正整數的十位數、個位數分離開;再經過數學運算組裝成一個四位數。(2)scanf( )函數可以寫成 scanf("%d%d", &a, &b);#include<stdio.h>#include<math.h>void main(void)int a,b,z;printf("請輸入兩個兩位數的正數:");scanf("%d %d",&a,&b);z=a/10*1000+
17、b/10*100+a%10*10+b%10;printf("合成的四位正整數是:%dn",z);數學函數的使用1、輸入三角形的三條邊長,求三角形的面積。運行結果如圖所示:提示:(1)本題的變量定義可參考如下:int a, b, c; double x, s; (2)scanf( )函數可以寫成 scanf("%d,%d,%d", &a, &b, &c); (3)計算三角形面積的公式是:其中(4)求x的開方值的庫函數是 sqrt(x),使用時需包含頭文件 math.h#include<stdio.h>#include&l
18、t;math.h>void main(void)int a,b,c;double x,s;printf("請輸入三角形的三邊:");scanf("%d %d %d",&a,&b,&c);x=(a+b+c)/2;s=sqrt(x-a)*(x-b)*(x-c)*x);printf("s=%lfn",s);單分支if語句編程練習從鍵盤任意輸入3個整數,選出其中的最大數并打印。提示:(1) 要判斷最大數,需對每兩個數作兩兩比較。(2) 可以使用3個單分支if語句編寫程序。(3) 從鍵盤輸入2個整數到變量a、b中,
19、編程總是把較小的數放入a中,較大的數放入b中。#include <stdio.h>void main()int a,b,c,t;printf("請輸入三個整數:");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("最大數是:%dn",a);#include <stdio.h>void main()int a,b,t;printf
20、("請輸入兩個整數到變量a,b中");scanf("%d%d",&a,&b);printf("a=%d,b=%dn",a,b);if(a>b)t=a;a=b;b=t;printf("運行結果:a=%d,b=%dn",a,b);elseprintf("運行結果:a=%d,b=%dn",a,b);從鍵盤輸入三個正整數,判斷否能構成三角形的三邊?如果能,就按照以下提示的數學公式計算三角形的面積;如果不能,就輸出“不能構成三角形”的提示信息。提示:(1) 該題屬于“雙分支if-el
21、se語句”結構。(2) 能構成三角形的邏輯條件是:任意的兩邊之和均要大于第三邊。其中 (3) 計算三角形面積的公式是:(4)本題的變量定義可參考如下:int a, b, c;double x, s;(5)本題要用到求x開方值的數學庫函數sqrt(x),需包含頭文件 math.h#include<stdio.h>#include<math.h>void main(void)int a,b,c,m,n,t;double x,s;printf("請輸入三角形的三邊:");scanf("%d %d %d",&a,&b,&a
22、mp;c);m=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("構成的三角形面積是:%.2lfn",s);elseprintf("不能構成三角形n");從鍵盤輸入一個合法的算術運算符(+、-、*、/)及兩個實數,使用if語句編寫程序,根據輸入的運算符判斷對這兩個實數進行何種運算,并打印運算結果(要求結果保留兩位小數)。程序運行效果如下圖所示:提示:(1)該題屬于“多分支if語句”結構。(2)本題
23、的變量定義可參考如下:char fu;/fu變量用來存放運算符double x, y, z;/x、y變量用來存放輸入的2個實數,z存放運算結果(3)輸入字符型數據的格式說明符是 %c,實型數據的格式說明符是 %lf。(4)輸出實數保留2位小數的格式說明符是 %.2lf。(5)本題可參考教材P61例3.7,但是不允許使用switch語句編寫該題程序。#include<stdio.h>void main()char fu;double x,y,z;int t,a;printf("請輸入一個算數運算符和兩個浮點數");scanf("%c %lf %lf&qu
24、ot;,&fu,&x,&y);t=47-fu;if(t=4)z=x+y;printf("%.2lf %c %.2lf = %.2lfn",x, fu ,y ,z);else if(t=5)z=x*y;printf("%.2lf %c %.2lf = %.2lfn",x, fu ,y ,z);else if(t=2)z=x-y;printf("%.2lf %c %.2lf = %.2lfn",x, fu ,y ,z);else if(t=0)z=x/y;printf("%.2lf %c %.2lf =
25、%.2lfn",x, fu ,y ,z);elseprintf("運算符非法,無法參與運算n");從鍵盤輸入一個年份和一個月份,使用switch語句編程判斷并打印該月的天數。程序運行效果如下所示:提示:(1)本題先使用if語句判斷年份和月份是否有效。(2)如果年份和月份有效,再嵌套switch語句判斷每個月份的天數。(3)對于2月份的處理需要判斷閏年,閏年的判斷方法請參考教材P62例3.8。#include<stdio.h>void main()int year,month,day;printf("請輸入一個年份和一個月份:");s
26、canf("%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%100!=0)|(y
27、ear%400=0)printf("2月有29天n");elseprintf("2月有28天n");break;elseprintf("輸入的月份值無效!");從鍵盤輸入1個整型的分數,使用switch語句編程,判斷如果分數介于0 59分之間就打印“不及格”;如果介于60 79分之間就打印“及格”;如果介于80 89之間就打印“良好”;如果介于90 100之間就打印“優(yōu)秀”。#include<stdio.h>void main()int a,b;printf("請輸入一個分數介于<0 100>間:&q
28、uot;);scanf("%d",&a);if(a>0&&a<=100)b=a/10;switch(b)case 6:case 7:printf("及格n");break;case 8:printf("良好n");break;case 9:case 10:printf("優(yōu)秀n");break;default:printf("不及格n");break;elseprintf("輸入的分數份值無效!n");使用while語句編程求100以內能被
29、5整除但不能同時被7整除的數,并統(tǒng)計找到的數的個數。提示:(1)該題變量可定義為:int i=1, n=0; / i 是循環(huán)變量, n是統(tǒng)計個數的變量(2)整除問題應使用求余號“%”,而不能使用除號“/”。#include<stdio.h>void main()int i,n,b,c;i=1;n=0;printf("100以內能被5整除但不能同時被7整除的數是:n");while(i<=100)b=i%5;c=i%7;if(b=0&&c!=0)printf("%d ",i);n=n+1;i+;printf("符
30、合條件的數有%d個n",n);從鍵盤輸入一個正整數,使用while語句編程求該整數是一個幾位數。程序運行效果如下所示:提示:(1)該題變量可定義為 int x, n=0, m; 其中,x保存輸入的正整數,n統(tǒng)計位數,m暫存x的值。(2)每次循環(huán)將x的值縮小10倍,直到x縮小為0即結束循環(huán),循環(huán)次數就是整數的位數。#include<stdio.h>void main()int x,n,m,i;n=0;printf("請輸入一個正整數:");scanf("%d",&x);i=x;while(m!=0)m=x/10;n+;x=m;
31、printf("%d 是一個 %d 位數n",i,n);使用while語句編程求以下表達式的值,程序運行結果如圖所示:提示:(1)該題變量可定義為:int i; double mu, t, sum;(2)本題的循環(huán)體里有3個通式:分母的通式、當前項的通式、求和的通式、i自增的通式。#include<stdio.h>void main()int i;double mu,t,sum;mu=1;t=0;i=1;while(i<=10)sum=1/mu+t;t=sum;i+;mu=mu+i;printf("表達式的值為:n");printf(&
32、quot;sum= %fn",sum);for語句編程練習1、使用for語句編程求以下表達式的值,如果從鍵盤輸入20賦值給變量n,則運行效果如圖所示:提示:(1)該題變量可定義為int i, n; double t, sum;(2)本題需用到求開方值的數學函數sqrt( ),并包含頭文件 math.h#include<stdio.h>#include<math.h>void main()int i,n;double t,sum,b=0;printf("請輸入整數值:");scanf("%d",&n);sum=0;
33、for(i=0;i<=20;i+)t=sqrt(i,2);b=b+t;sum=sum+b;printf("sum=%lfn",sum);使用for語句編程求以下表達式的值,程序運行結果如圖所示:提示:(1)注意觀察可知相鄰兩項中,后一項的分母是前一項的分母加 i 值。(2)該題變量可定義為:int i; double mu, t, sum; 其中i是循環(huán)變量,mu保存每一次循環(huán)的當前項的分母,t保存每一次循環(huán)的當前項,sum保存N項式的總和。#include<stdio.h>void main()int i;double t=0,sum=0,mu=0;fo
34、r(i=1;i<=10;i+)mu=mu+i;t=1/mu;sum=sum+t;printf("表達式值為:n");printf("sum = %lfn",sum);循環(huán)的嵌套編程練習使用for語句的嵌套結構編程打印九-九乘法表,程序運行效果如圖所示:#include<stdio.h>void main()int i,m,n;for(i=1 ;i<10;i+)for(m=1;m<=i;m+)n=i*m;printf("%d*%d=%d ",m,i,n);printf("n");定義一個
35、大小為10的整型一維數組,初始化所有數組元素,編程查找數組中的所有奇數,并統(tǒng)計奇數的個數。運行效果如圖所示:提示:(1) 本題變量定義可參考如下int a10=2,4,5,6,9,11,13,16,17,19, i, sum=0; (2) 首先用一個for循環(huán)打印10個數組元素的初值。(3) 再用一個for循環(huán)嵌套if語句查找并打印數組中的奇數。(1)源程序粘貼在此處。#include<stdio.h>/#define N 10void main()int a10=2,4,5,6,9,11,13,16,17,19, i,n=0;printf("數組中的初始值是:"
36、;);for(i=0;i<10;i+)printf("%d ",ai);printf("n");printf("n");printf("數組中的奇數是:");for(i=0;i<=10;i+)if(ai%2!=0)printf("%d ",ai);n+;printf("n");printf("n");printf("奇數個數是:%dn",n);定義一個大小為10的整型一維數組,初始化其中的9個元素,這9個元素已經按照降序排列
37、。從鍵盤再輸入1個整數,將該整數插入到已有的元素中,需保證這10個數仍然按照降序排序。程序運行效果如下圖所示:提示:(1)本題變量定義可參考如下 int a10= 20, 18, 15, 12, 10, 9, 7, 5, 2, i, j, t;(2)本題使用冒泡法排序,先將鍵盤輸入的1個整數放到數組元素a9中,然后使用排序算法對這10個數進行降序排序。#include<stdio.h>/#define N 10void main()int a9= 20, 18, 15, 12, 10, 9, 7, 5, 2;int i,j,t;printf("數組中前面9個元素是:n&q
38、uot;);for(i=0;i<9;i+)printf("%d ",ai);printf("n");printf("n");printf("請輸入一個整數:");scanf("%d",&a9);printf("n");printf("數組中的10個元素是:n");for(i=0;i<10;i+)printf("%d ",ai);printf("n");printf("n");f
39、or(i=0;i<10;i+)for(j=0;j<9-i;j+)if(aj<aj+1)t=aj;aj=aj+1;aj+1=t;printf("降序排序后的整數為:");for(i=0;i<10;i+)printf("%d ",ai);printf("n");利用指針編程,其功能是求電阻的并聯(lián)值和串聯(lián)值。程序運行效果如圖所示:要求:輸入電阻值;計算并聯(lián)串聯(lián)值;打印結果都必須使用指針完成。提示:(1)該題的變量可定義為int r1, r2, *p1, *p2;double rp, rs, *pp, *ps;其中指針
40、p1、p2用來指向并操作變量r1、r2;指針pp、ps用來指向并操作變量rp、rs。(2)在利用指針編程之前,應將指針指向對應的變量。#include<stdio.h>void main()int r1, r2, *p1, *p2;double rp, rs, *pp, *ps;printf("請輸入兩個電阻值");scanf("%d %d",&r1,&r2);p1=&r1;p2=&r2;rp=(double)(*p1 * *p2) / (double)(*p1 + *p2);rs=*p1+*p2;pp=&am
41、p;rp;ps=&rs;printf("并聯(lián)電阻組織 = %lfn",*pp);printf("串聯(lián)電阻組織 = %lfn",*ps);利用指針編程,其功能是利用“除號”和“求余號”將輸入的兩個兩位的正整數組合成一個新的四位的正整數。要求:輸入整數值;計算;打印結果都必須使用指針完成。提示:該題的變量可定義為int a, b, c, *pa, *pb, *pc;其中指針pa、pb、pc分別用來指向并操作變量a、b、c。變量a、b用來存放輸入的兩個兩位正整數,變量c用來存放組合后的四位的正整數。方法一#include<stdio.h>v
42、oid main() int a,b,c,*pa,*pb,*pc;printf("請輸入兩個兩位數的正整數:");scanf("%d %d",&a,&b);pa=&a;pb=&b;c=*pa/10*1000+*pb/10*100+*pa%10*10+*pb%10;pc=&c;printf("組合成的四位正整數是:%dn",*pc);方法二#include<stdio.h>void main()int a,b,c,*pa,*pb,*pc;printf("請輸入兩個兩位數的正整
43、數:");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前不能空行,不然無法識別。定義一個大小為10的整型一維數組并初始化數組元素,再定義一個指針變量讓其指向該數組,利用指針編程查找數組中的所有奇數。運行效果如圖所示:提示:(1) 該題變量可定義為int a10=2,4,5,6,9,11,13,16,17,19, *p, i;(2)在使用指針編程之前,應先將指
44、針p指向數組。要求:使用“下標法”編程,即使用“pi”的形式引用數組元素。方法一#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("數組中的初始值是:");for(p=a,i=0;i<10;i+) (for(i=0;i<10;i+)printf("%d ",pi);printf("n");printf("n");printf("數組中的奇數是:&q
45、uot;);for(p=a,i=0;i<=9;i+) (for(i=0;i<=9;i+)if(pi%2!=0)printf("%d ",pi); n+;printf("n");printf("n");printf("奇數個數是:%dn",n);方法二#include<stdio.h>void main()int a10=2,4,5,6,9,11,13,16,17,19,*p,i,n=0;p=a;printf("數組中的初始值是:");for(i=0;i<10;i+)
46、printf("%d ",pi);printf("n");printf("n");printf("數組中的奇數是:");for(i=0;i<=9;i+)if(pi%2!=0)printf("%d ",pi); n+;printf("n");printf("n");printf("奇數個數是:%dn",n);輸入三角形的三條邊長,定義一個子函數fun( )求三角形的面積。運行結果如圖所示:要求:(1)數據輸入和結果打印都必須在mai
47、n( )函數中完成。(2)fun( )函數的功能是求三角形的面積。提示:(1)計算三角形面積的公式是:其中計算x的開方值的庫函數是 sqrt(x),使用時需包含頭文件 math.h(2)fun( )函數的函數首部可參考如下 double fun(int a, int b, int c) /該函數有3個形參,返回值類型為double#include<stdio.h>#include<math.h>double fun(int a,int b,int c)double m;double d,s;d=(a+b+c)/2;s=sqrt(d-a)*(d-b)*(d-c)*d);r
48、eturn(s);void main()int a,b,c;double m;printf("請輸入三角形的三邊:");scanf("%d %d %d",&a,&b,&c);m=fun(a,b,c);printf("三角形面積=%lfn",m);定義一個子函數fun( )打印菱形。運行結果如圖所示:要求:菱形的行數在main( )函數中輸入,根據輸入的行數決定菱形打印幾行。提示:(1)fun( )函數的函數首部可參考如下 void fun(int x) /該函數有1個形參,無返回值(2)在fun( )函數內部,
49、首先根據形參x的值計算出正三角和倒三角的行數,然后再執(zhí)行循環(huán)的嵌套結構分別打印正三角和倒三角。#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+)print
50、f(" ");for(j=1;j<=x-2*i;j+)printf("*");printf("n");void main()int a;printf("請輸入菱形的行數(注意:行數為奇數):");scanf("%d",&a);fun(a);定義一個子函數fun( ),其功能是求1累加到100的和。要求:結果在子函數打印。提示:(1)fun( )函數寫在前,main( )函數寫在后。(2)fun( )函數定義為無參、無返回值形式。#include<stdio.h>void
51、 fun() int i,sum=0;for(i=1;i<=100;i+)sum=sum+i;printf("1+2+3+.+100=%dn",sum);printf("n");void main()fun();定義一個子函數fun( ) ,求表達式 的值。主函數定義如下所示,請完成fun( )函數。#include<stdio.h>double fun(int n);void main()int n;double sum;printf("請輸入n的值:");scanf("%d",&n);
52、sum=fun(n);printf("sum=%lfn",sum); double fun(int 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、定義一個子函數fun( )求算術表達式的解。要求:運算符(+, -, *, /, %)和兩個整數在主函數輸入,結果也在主函數打印。提示:(1)主函數內先判斷運算符的有效性,如果運算符有效,就調用fun( )函數。如果運算符非法,就打印錯誤提示信息,不調用fun( )函數。(2)fun( )函數的函數首部可以參考如下double fun(char fu, int a, int b)其中形參 fu 代表運算符,形參a、b代表參與運算的兩個數,函數返回類型為double,表示函數的運行結果是實數。double fun(char fu, double x, double y ,int t)d
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉儲物流安全承包服務合同
- 倉庫租賃合同安全責任及消防設施協(xié)議書
- 部編人教版三年級語文下冊《7.鹿角和鹿腿》示范公開課教學課件
- 動詞(短語)-2023年中考英語高頻易錯點解題技巧(解析版)
- 腎癌護理指南
- 護理安全質控檢查
- 2025年中國液晶材料市場調查研究報告
- 2025年中國扣式電池市場調查研究報告
- 2025年中國厚料單針平縫針車市場調查研究報告
- 助學義工培訓體系構建
- 企業(yè)食品安全知識培訓
- 中審眾環(huán)測評題
- 簡短高三勵志小短文閱讀【5篇】
- 急性左心衰急救情景演練劇本
- 布朗運動課件
- 福建石獅鴻山熱電廠二期工程(噪聲、固廢類)監(jiān)測報告
- 正常分娩(9版婦產科學)課件
- 《市場營銷》課程章節(jié)習題及答案(完整課程版)
- 高考英語高頻重點詞匯1000個
- 鐵尾礦綜合利用歸納
- 新生兒敗血癥護理查房查房
評論
0/150
提交評論