


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
西南林業大學C語言程序設計實驗題、代碼、輸出結果編寫目的:學生的痛,大家都明白,特別是學渣的痛。呃,不過我漸漸從學渣成功逆襲,所以最C語言時不會那么腦大,不用像我們開始時候的茫然。GET時間,但就像那句話說的:Nopain,noget.付出不一定會有收獲,但是不付出一定會讓你后悔。所以,認真聽課,不僅僅只是C語言,還有其他的課程。實驗題目及代碼、輸出結果實驗題目目錄目錄 P1 P6Printf簡單輸出三角形 P6給定圓半徑值為5編程求圓面積和圓周長 P6編寫一個攝氏溫度與華氏溫度之間的轉換程序 P6編寫程序從鍵盤上輸入兩個電阻值求它們并聯電阻值和串電阻值,輸出結果保留兩位小數。 P7(有主函數子函數----------P26)使用兩種指定的方法打印正三角形數陣 P7從鍵盤輸入3個數字字符將它們分別轉換為對應的整數(即字符’0’轉換為整數0,字符’1’轉換為整數1,依次類推然后求3個整數的平均值。 P8從鍵盤輸入兩個兩位的正整數按照以下格式組裝成一個四位正整數。------------------------P8(指針變量 P19)輸入三角形的三條邊長,求三角形的面積。 P9從鍵盤任意輸入3個整數,選出其中的最大數并打印。 P10從鍵盤輸入三個正整數,判斷否能構成三角形的三邊? P10從鍵盤輸入一個合法的算術運算符(*、/)使用if。---------------------P11(有主函數子函數 P21)從鍵盤輸入一個年份和一個月份使用switch語句編程判斷并印該月的天數 P12從鍵盤輸入1個整型的分數使用switch語句編程判斷如果數介于0~59分之間就打“不及格如果介于60~79分之就打印“及格;如果介于80~89之間就打印“良好;如果介于90~100之間就打印“優秀。 P13使用while語句編程求100以內能被5整除但不能同時被7整的數,并統計找到的數的個數。 P13從鍵盤輸入一個正整數,使用while語句編程求該整數是一個幾位數n使用while語句編程a=∑n1的前n項和 P14n1n1使用for語句編程求an=∑n的前n項和 P151n使用for語句編程求an= 1 的前n項和 P16n∑i=0n∑使用for語句的嵌套結構編程打印九-九乘法表 P16定義一個大小為10的整型一維數組,初始化所有數組元素,程查找數組中的所有奇數,并統計奇數的個數 P17109個元素,91數插入到已有的元素中,需保證這10個數仍然按照降序排序。--------------------------------------------------------------P18利用指針編程,其功能是求電阻的并聯值和串聯值。 P18利用指針編程,其功能是利用“除號”和“求余號”將輸入的個兩位的正整數組合成一個新的四位的正整數。 P16定義一個大小為10的整型一維數組并初始化數組元素,再定義一個指針變量讓其指向該數組利用指針編程查找數組中的所奇數。 P20輸入三角形的三條邊長,定義一個子函數fun()求三角形的面積--------------------P21定義一個子函數fun()打印菱形。 P22定義一個子函數fun()其功能是求1累加到100的和 P23n定義一個子函數fun(),求表達式a=1的前n項和 P23nn!定義一個fun()函數,其功能是:求兩個整數的和、差、積、商。----------------P26ax2+bx+c=0abc,求方程的實根。定義三個子函數fun1(fun2(fun3()分別處理方程有無實根、有兩個相同實根、有兩個不同實根的情況----------------------------------------------------------------P27從鍵盤上輸入一個的字符串,輸出所有ASCII碼為奇數的字符并統計這些字符的個數。 P28從鍵盤上輸入一個由大寫字母、小寫字母、數字字符、其它字構成的字符串,統計字符串中的大寫字母個數、小寫字母個數數字字符個數、其它字符個數。 P28從鍵盤輸入兩個字符串,分別存到字符數組a和字符數組b中編程將第二個字符串連接到第一個字符串末尾形成一個新字符串(不使用#include<string.h>庫函數) P29使用while語句編程求
=xn(n從0開始)前n項值,直到某一項n!的值小于10-6就結束循環。 P30使用for語句的嵌套結構編程打印行數為奇數的對稱三教菱形----------------------------------------------P31從鍵盤輸入一個正整數x,編程求比x大的,最臨近x的n個素數例如為x和n分別輸入數值10和就表示求出比10大的最臨近10的15個素數。 P31題目及答案printf()函數的編程練習——格式1編程輸出如圖所示的三角形。voidmain(){printf("*\n");printf("**\n");printf("***\n");printf("****\n");}給定圓半徑值為5,編程求圓面積和圓周長提示:doubler5sl;%lf(3)C語言中沒有∏這個符號,編寫程序時直接使用3.14159(4)C語言中沒有求次方的運算符,求次方可用連乘的方法#include<stdio.h>#definePI3.14159intmain(){floatr=5;printf("圓半徑=%lf\n圓面積=%f\n圓周長=%f\n",r,PI*r*r,2*PI*r);}(其中一個數的n次方可以用數學運算來算rn)scanf()函數、運算符編程練習編寫一個攝氏溫度與華氏溫度之間的轉換程序,轉換公式是:
F9C325提示:該公式中的“C”是一個從鍵盤輸入的已知量;“F”是通過公式計算并打印出來的未知量。#include<stdio.h>voidmain(){doubleF,C;printf("請輸入一個攝氏溫度值:",C);scanf("%lf",&C);或2若定義類型為2或或用強制類型轉換(”在運算時為整型運算printf(":%.2lf",F);}果保留兩位小數。運行結果如圖所示:注:并聯和串聯的電阻值計算公式如下。并聯電阻RP
R1*R2R1+R2串聯電阻RSR1+R2提示:scanf函數可以寫成scanf("%d,%d"&r1&r2);結果保留兩位小數的格式說明符是“%.2lf”。#include<stdio.h>voidmain(){doubleR1,R2,RP,RS;printf("請輸入兩個電阻值:",R1,R2);scanf("%lf,%lf",&R1,&R2);RP=(R1*R2)/(R1+R2);RS=R1+R2;printf("并聯電阻值:%.2lf\n串聯電阻阻值:%.2lf",RP,RS);}字符的輸入和輸出1、使用兩種指定的方法打印如圖所示圖形。方法一:使用printf()函數的“%c”格式打印圖形。提示:一個“%c”只能打印一個字符。方法二:使用printf()函數的“%d”格式打印圖形。方法一:#include<stdio.h>voidmain()}printf("%c%c%c\n",b,b,b);printf("%c%c%c%c%c\n",c,c,c,c,c);{printf("%4d\n%4d\n%d\n",1,222,33333方法二的類似(運用ASCLL碼));#include<stdio.h>}voidmain()方法二:{#include<stdio.h>inta,b,c;voidmain()a=49;{b=50chara,b,c;c=51;a='1';printf(" %c\n", a);b='2';printf("%c%c%c\n",b,b,b);c='3';printf("%c%c%c%c%c\n",c,c,c,c,c);printf("%c\n",a);}1、從鍵盤輸入3個數字字符,將它們分別轉換為對應的整數值(即字符’0’轉換為整數0,字符’1’轉換為整數1,依次類推然后求3運行結果如圖所示:提示:本題的變量定義可參考如下:chara,bc; //變量a,b,c入的3個數字字符intx,y,z; //變量x,y,z換后的3個整數doubleaver;//變量aver保存求出的平均值#include<stdio.h>#include<math.h>voidmain(void){double a,b,c,d;printf("請輸入三個數字字符:");scanf("%lf,%lf,%lf",&a,&b,&c);d=(a+b+c)/3;printf("平均值=%lf\n",d);}
#include<stdio.h>voidmain(void){chara,b,c;intx,y,z;doubleaver;printf("請輸入三個數字字符:");x=a-48;z=c-48;aver=(x+y+z)/3.0;printf("平均值為:%2lf",aver)從鍵盤輸入兩個兩位的正整數,按照以下格式組裝成一個四位的正整數。例如:輸入12和34,組裝成的四位數是1324。運行效果如右圖所示:提示:首先利用“除號”和“求余號”分別把兩個兩位正整數的十位數、個位數分離開;再經過數學運算組裝成一個四位數。scanf函數可以寫成scanf("%d%d"&a&b);#include<stdio.h>#include<math.h>voidmain(void){inta,b,z;printf("請輸入兩個兩位數的正數:");scanf("%d%d",&a,&b);z=a/10*1000+b/10*100+a%10*10+b%10;printf("合成的四位正整數是:%d\n",z);}數學函數的使用1、輸入三角形的三條邊長,求三角形的面積。運行結果如圖所示:提示:本題的變量定義可參考如下:inta,b,c;doublex,s;scanf函數可以寫成scanf("%d,%d,%d",&a,&b,&c);計算三角形面積的公式是:
x1
(abc)s x(xa)(xb)(xc) 2其中x的開方值的庫函數是sqrt(x),使用時需包含頭文件math.h#include<stdio.h>voidmain(void){inta,b,c;doublex,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=%lf\n",s);}單分支if語句編程練習從鍵盤任意輸入3個整數,選出其中的最大數并打印。提示:要判斷最大數,需對每兩個數作兩兩比較。3個if語句編寫程序。2a、bab中。#include<stdio.h>voidmain(){inta,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;
}#include<stdio.h>voidmain(){inta,b,t;printf("a,b中");scanf("%d%d",&a,&b);printf("a=%d,b=%d\n",a,b);if(a>b){t=a;a=b;b=t;printf("運行結果:a=%d,b=%d\n",a,b);}elseprintf(" 運 行 果:a=%d,b=%d\n",a,b);}printf("最大數是:%d\n",a); }從鍵盤輸入三個正整數息。提示:該題屬于“if-else語句”結構。能構成三角形的邏輯條件是:任意的兩邊之和均要大于第三邊。計算三角形面積的公式是:x(xx(xa)(xb)(xc)
x12
(abc)本題的變量定義可參考如下:inta,b,c; doublex,s;xsqrt(x),需包含頭文件math.h#include<stdio.h>voidmain(void){intdoublex,s;printf("請輸入三角形的三邊:");scanf("%d%d%d",&a,&b,&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("構成的三角形面積是:%.2lf\n",s);}elseprintf("不能構成三角形\n");}從鍵盤輸入一個合法的算術運算符-*及兩個實數if語句編寫程序(要求結果保留兩位小數)。程序運行效果如下圖所示:提示:該題屬于“if語句”結構。本題的變量定義可參考如下:charfu; //fu變量用來存放運算符doublexyz; //x、y2個實數,z存放運算結果輸入字符型數據的格式說明符是%c,實型數據的格式說明符是%lf。2位小數的格式說明符是%.2lf。P613.7switch語句編寫該題程序。voidmain(){charfu;doublex,y,z;intt,a;printf("請輸入一個算數運算符和兩個浮點數");scanf("%c%lf%lf",&fu,&x,&y);t=47-fu;if(t==4){z=x+y;printf("%.2lf %c %.2lf = %.2lf\n",x, fu ,y ,z);}elseif(t==5){z=x*y;printf("%.2lf %c %.2lf = %.2lf\n",x, fu ,y ,z);}elseif(t==2){z=x-y;printf("%.2lf %c %.2lf = %.2lf\n",x, fu ,y ,z);}elseif(t==0){}else}
z=x/y;printf("%.2lf %c %.2lf = %.2lf\n",x, fu ,y printf("\n");switch程序運行效果如下所示:提示:本題先使用if判斷年份和月份是否有效。如果年份和月份有效,再嵌套switch語句判斷每個月份的天數。對于2參考教材P62例3.8。#include<stdio.h>voidmain(){intyear,month,day;printf("請輸入一個年份和一個月份:");scanf("%d%d",&year,&month);if(month>0&&month<=12){switch(month){case1:case3:case5:case7:case8:case10:case12:printf("%d月有31天\n",month);break;case4:case6:case9:case11:printf("%d月有30天\n",month);break;default:if((year%4==0&&year%100!=0)||(year%400==0))printf("2月有29天\n");elseprintf("2月有28天\n");break;}else
}printf("輸入的月份值無效!");}從鍵盤輸入1個整型的分數,使用switch語句編程,判斷如果分數介于0~590~9~90~0#include<stdio.h>voidmain(){inta,b;printf("請輸入一個分數介于<0~100>間:");scanf("%d",&a);if(a>0&&a<=100){b=a/10;
break;case9:case10:printf("優秀\n");break;default:printf("不及格\n");break;switch(b){case6:case7:
printf("及格\n");
}else
}printf("輸入的分數份值無效!\n");break;case8: }printf("良好\n");使用while語句編程求100以內能被5整除但不能同時被7整除的數,并統計找到的數的個數。提示:該題變量可定義為:int i=1,n=0;//i是循環變量, n是統計個數的變量整除問題應使用求余號“/#include<stdio.h>voidmain(){if(b==0&&c!=0){printf("%d ",i);inti,n,b,c;n=n+1;i=1;n=0;}printf("100以內能被5整除但不能i++;同時被7整除的數是:\n");}while(i<=100){printf("符合條件的數有%d 個b=i%5;\n",n);c=i%7;}從鍵盤輸入一個正整數,使用while語句編程求該整數是一個幾位數。程序運行效果如下所示:提示:該題變量可定義為 intx,n=0,m;其中,x保存輸入的正整數,n統計位數,m暫存x的值。每次循環將x10倍,直到x0整數的位數。#include<stdio.h>voidmain(){intx,n,m,i;n=0;printf("請輸入一個正整數:");i=x;while(m!=0){n++;x=m;}printf("%d是一個%d位數\n",i,n);}使用while語句編程求以下表達式的值,程序運行結果如圖所示:1 1 1sum11
...2 123
12...10提示:該題變量可定義為:int i;double mu,t,sum;本題的循環體里有3個通式:①分母的通式、②當前項的通式、③求和的通式、④i自增的通式。#include<stdio.h>voidmain()sum=1/mu+t;{t=sum;inti;i++;doublemu,t,sum;mu=mu+i;mu=1;t=0;}printf("表達式的值為:\n");i=1;printf("sum=%f\n",sum);while(i<=10)}{for語句編程練習1、使用for語句編程求以下表達式的值,如果從鍵盤輸入20賦值給變量n,則運行效果如圖所示:提示:該題變量可定義為inti,n; doublet,sum;sqrt,并包含頭文件math.hS1 2) 2 3) 2 3 n)#include<stdio.h>voidmain(){inti,n;doublet,sum,b=0;printf("請輸入整數值:");scanf("%d",&n);sum=0;for(i=0;i<=20;i++){t=sqrt(i,2);b=b+t;sum=sum+b;}printf("sum=%lf\n",sum);}使用for語句編程求以下表達式的值,程序運行結果如圖所示:1 1 1sum11提示:
...2 123 12...10注意觀察可知相鄰兩項中,后一項的分母是前一項的分母加i值。該題變量可定義為:int i;double mu,t,sum;其中i是循環變量,mu保存每一次循環的當前項的分母,t保存每一次循環的當前項,sum保存N項式的總和。#include<stdio.h>voidmain(){inti;mu=mu+i;t=1/mu;sum=sum+t;doublet=0,sum=0,mu=0;}printf("表達式值為:\n");for(i=1;i<=10;i++)printf("sum=%lf\n",sum);{}循環的嵌套編程練習使用for語句的嵌套結構編程打印九-九乘法表,程序運行效果如圖所示:#include<stdio.h>voidmain(){inti,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");}}定義一個大小為10的整型一維數組,初始化所有數組元素,編程查找數組中的所有奇數,并統計奇數的個數。運行效果如圖所示:提示:本題變量定義可參考如下inta[10]={2,4,5,6,9,11,13,16,17,19},i,sum=0;首先用一個for10個數組元素的初值。再用一個循環嵌套if語句查找并打印數組中的奇數。(1)源程序粘貼在此處。#include<stdio.h>printf("數組中的奇數是:");//#defineN10for(i=0;i<=10;i++)voidmain(){{int a[10]={2,4,5,6,9,11,13,16,17,19},if(a[i]%2!=0)i,n=0;{ printf("%d",a[i]);printf("數組中的初始值是:");n++;}for(i=0;i<10;i++){}printf("%d",a[i]);printf("\n");}printf("\n");printf("\n");printf("奇數個數是:%d\n",n);printf("\n");}1099個元素已經1這10個數仍然按照降序排序。程序運行效果如下圖所示:提示:本題變量定義可參考如下inta[10]={20,18,15,12,10,9,7,5,2}, i, j, t;本題使用冒泡法排序,先將鍵盤輸入的1個整數放到數組元素a[9]使用排序算法對這10個數進行降序排序。#include<stdio.h>//#defineN10voidmain(){inta[9]={20,18,15,12,10,9,7,5,2};inti,j,t;printf("9for(i=0;i<9;i++){printf("%d",a[i]);}printf("\n");printf("\n");
}printf("\n");for(i=0;i<10;i++){for(j=0;j<9-i;j++){if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}printf("請輸入一個整數:");printf("降序排序后的整數為:");scanf("%d",&a[9]);for(i=0;i<10;i++)printf("\n");數組中的0{printf("%d",a[i]);for(i=0;i<10;i++)}{printf("\n");printf("%d",a[i]);}利用指針編程,其功能是求電阻的并聯值和串聯值。程序運行效果如圖所示:要求:輸入電阻值;計算并聯串聯值;打印結果都必須使用指針完成。提示:該題的變量可定義為intr1,r2,*p1,*p2; doublerp,rs,*pp,*ps;其中指針p1、p2用來指向并操作變量r1、r2;指針pp、ps用來指向并操作變量rp、rs。在利用指針編程之前,應將指針指向對應的變量。#include<stdio.h>voidmain(){intr1,r2,*p1,*p2;doublerp,rs,*pp,*ps;printf("請輸入兩個電阻值");scanf("%d%d",&r1,&r2);p1=&r1;p2=&r2;rp=(double)(*p1**p2)/(double)(*p1+*p2);rs=*p1+*p2;pp=&rp;ps=&rs;printf("并聯電阻組織=%lf\n",*pp);printf("串聯電阻組織=%lf\n",*ps);}利用指針編程,其功能是利用“除號”和“求余號”將輸入的兩個兩位的正整數組合成一個新的四位的正整數。要求:輸入整數值;計算;打印結果都必須使用指針完成。提示:該題的變量可定義為inta,b,c,*pa,*pb,*pc;其中指針pa、pb、pc分別用來指向并操作變量a、b、c。變量a、b用來存放輸入的兩個兩位正整數,變量c用來存放組合后的四位的正整數。{方法一}#include<stdio.h>voidmain(){inta,b,c,*pa,*pb,*pc;printf("請輸入兩個兩位數的正整數:");scanf("%d%d",&a,&b);pa=&a;pb=&b;pc=&c;printf("組合成的四位正整數是:%d\n",*pc);}{方法二}#include<stdio.h>voidmain(){inta,b,c,*pa,*pb,*pc;pa=&a;pb=&b;scanf("%d%d",pa,pb);c=*pa/10*1000+*pb/10*100+*pa%10*10+*pb%10;pc=&c;printf("%d\n",*pc);} //Int前不能空行,不然無法識別。定義一個大小為10指向該數組,利用指針編程查找數組中的所有奇數。運行效果如圖所示:提示:該題變量可定義為inta[10]={2,4,5,6,9,11,13,16,17,19},*p,i;p指向數組。要求:使用“下標法”編程,即使用“p[i]”的形式引用數組元素。[方法一]#include<stdio.h>{voidmain()if(p[i]%2!=0){{ printf("%d",p[i]);intn++;a[10]={2,4,5,6,9,11,13,16,17,19},*p,i,n=0;p=&a[i];(p=a;)printf("數組中的初始值是:");}}for(p=a,i=0;i<10;i++) {printf("%d",p[i]);
printf("\n");printf("\n");printf("奇數個數是:%d\n",n);}printf("\n");printf("\n");printf("數組中的奇數是:");for(p=a,i=0;i<=9;i++) (for(i=0;i<=9;i++))printf("\n");printf("\n");for(i=0;i<=9;i++){if(p[i]%2!=0)[方法二]#include<stdio.h>voidmain(){}printf("%d",p[i]);n++;{int}a[10]={2,4,5,6,9,11,13,16,17,19},*p,i,n=0;printf("\n");p=a;printf("數組中的初始值是:");printf("\n");printf("奇數個數是:%d\n",n);for(i=0;i<10;i++){printf("%d",p[i]);}}fun所示::數據輸入和結果打印都必須在main()函數中完成。fun提示:計算三角形面積的公式是:s x(xa)(xb)(xc)
x12
(abc)計算x的開方值的庫函數是sqrt(x),使用時需包含頭文件math.hfun函數的函數首部可參考如下doublefun(inta,intb,intc)//該函數有3個形參,返回值類型為double#include<stdio.h>#include<math.h>doublefun(inta,intb,intc){doublem;doubled,s;d=(a+b+c)/2;s=sqrt((d-a)*(d-b)*(d-c)*d);return(s);}voidmain(){inta,b,c;doublem;printf("請輸入三角形的三邊:");scanf("%d%d%d",&a,&b,&c);m=fun(a,b,c);printf("三角形面積=%lf\n",m);}定義一個子函數fun()打印菱形。運行結果如圖所示:要求:菱形的行數在main()函數中輸入,根據輸入的行數決定菱形打印幾行。提示:fun函數的函數首部可參考如下voidfun(intx)//1回值在fun函數內部,首先根據形參x后再執行循環的嵌套結構分別打印正三角和倒三角。#include<stdio.h>voidfun(intx)
printf("\n");}{inti,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("*");
for(i=1;i<=x/2;i++){printf("");for(k=1;k<=i;k++)printf("");for(j=1;j<=x-2*i;j++)printf("*");printf("\n");} printf("請輸入菱形的行數(注意:行數} 為奇數:voidmain(){inta;
scanf("%d",&a);fun(a);}定義一個子函數fun(),其功能是求1累加到100的和。要求:結果在子函數打印。(1)函數寫在前,()函數寫在后。(2)fun()函數定義為無參、無返回值形式。#include<stdio.h>voidfun(){inti,sum=0;for(i=1;i<=100;i++)sum=sum+i;printf("1+2+3+...+100=%d\n",sum);printf("\n");}voidmain(){fun();定義一個子函數fun(),求表達式 S 1 n
1n!的值。主函數定義如下所示,請完成fun()函數。#include<stdio.h>doublefun(intn);voidmain(){intn;doublesum;printf("請輸入n的值:");scanf("%d",&n);sum=fun(n);printf("sum=%lf\n",sum);}doublefun(intn){inti;doublea=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()函數。(2)fun()函數的函數首部可以參考如下double fun(char fu, int a, int b)其中形參fuabdouble,表示函數的運行結果是實數。doublefun(char fu, doubledouble y,intt){doubleans;{if(t==4)ans=x+y;elseif(t==5)ans=x*y;elseif(t==2)ans=x-y;elseif(t==0)ans=x/y;/* elseprintf("運算符非法,無法參與運算\n");*/}return(ans);}
printf("請輸入一個算數運算符和兩個浮點數");scanf("%c%lf%lf",&fu,&x,&y);t=47-fu;if(t==4||t==5||t==2||t==0){z=fun(fu,x,y,t);printf("%.2lf %c = %.2lf\n",x ,fu ,y ,z);}elseprintf("運算符非法,無法參與運算\n");}#include<stdio.h>voidmain(){charfu;doublex,y,z;intt;參數的“傳值”方式與“傳地址”方式編程練習1、在主函數中輸入2個電阻值,定義2提示:主函數中的變量定義可參考如下doublea,b,bing,chuan;#include<stdio.h>voidfun(doublea,doubleb){doublebing,chuan;bing=(a*b)/(a+b);chuan=a+b;printf("并聯電阻阻值=%lf\n",bing);printf("串聯電阻阻值=%lf\n",chuan);return;}voidmain(){doublea,b,bing,chuan;scanf("%lf%lf",&a,&b);fun(a,b);}2、定義一個fun()函數,其功能是:求兩個整數的和、差、積、商。程序運行效果如圖所示:
要求:兩個整數值在主函數中輸入,運算結果在主函數中輸進行運算。提示:main()inta,b,he,chaji;doubleshang;本題需使用參數的傳地址方式,fun()函數有6個參數。fun()函數首部為:voidfun(inta,intb,int*he,int*cha,int*ji,double*shang)#include<stdio.h>voidfun(inta,intb,int*he,int*cha,int*ji,double*shang){*he=a+b;*cha=a-b;*ji=a*b;*shang=(double)a/(double)b;}voidmain(){
inta,b,he,cha,ji;doubleshang;printf("scanf("%d%d",&a,&b);fun(a,b,&he,&cha,&ji,&shang);printf("和:%d+%d=%d\n",a,b,he);printf("差:%d-%d=%d\n",a,b,cha);printf("積:%d*%d=%d\n",a,b,ji);printf("商:%d/%d=%lf\n",a,b,shang);}在主函數中輸入一元二次方程ax2+bx+c=0的三個系數a、b、c,求方程的實根。定義三個子函數fun1()、fun2()、fun3()分別處理方程有無實根、有兩個相同實根、有兩個不同實根的情況。要求:(1)a、b、c值需在主函數中輸入;
main函數中打印提示:求方程實根的計算公式是#include<stdio.h>#include<math.h>
//fun3函數double
if(deta<0){//fun1函數voidfun1(){a,doubleb,doublec){doublex1,x2,deta;//doublem;fun1();printf("\n");return;deta=((b*b)-4*a*c);}}x1=(double)(-b+sqrt(deta))/(elseif(deta==0.0)//fun2函數double)(2*a);x2=(double)(-b-sqrt(deta))/({m=fun2(a,b,c);doublefun2(doubledouble)(2*a);printf("X1=X2=%lf\n",ma,doubleb,doublec)return(x1,x2););{}doublex1,deta;}//doublem;voidmain()elsedeta=((b*b)-4*a*c);{{x1=(double)(-b+sqrt(deta))/(doublea,b,c;m=fun3(a,b,c);double)(2*a);doubledeta;printf("X1=%lfreturn(x1);doublem;printf("請輸入一元二次方程組的系數\nabc:\n");X2=%lf\n",m);}}scanf("%lf%lf%lf",&a,&b,&c);deta=((b*b)-4*a*c);}從鍵盤上輸入一個的字符串,輸出所有ASCII碼為奇數的字符,并統計這些字符的個數。運行效果如圖所示:提示:gets函數。本題的變量可定義為chara[50];intn=0,i=0;#include<stdio.h>voidmain()printf("%c",a[i]);{n++;chara[50],b[50];}intn=0,i=0;printf("請輸入一個字符串:");gets(a);printf("ASCIIfor(i=0;i<=50;i++){if(a[i]%2!=0){
}printf("\n");printf("ASCII碼為奇數的字符個數是:%d\n",n);}從鍵盤上輸入一個由大寫字母、小寫字母、數字字符、其它字符構成的字符串,統計字符串中的大寫字母個數、小寫字母個數、數字字符個數、其它字符個數。運行效果如圖所示:要求:字符串的輸入/gets、puts提示:本題的變量可定義為chara[50];inti=0,da=0,xiao=0,shu=0,qi=0;a用來存放字符串;變量i作循環變daxiaoshu、qi其它字符的個數。#include<stdio.h>voidmain(){chara[50];int i=0,da=0,xiao=0,shu=0,qi=0;printf("gets(a);for(i=0;i<=50;i++){if(a[i]>=97&&a[i]<=122)xiao++;elseif(a[i]>=65&&a[i]<=90)da++;elseif(a[i]>=48&&a[i]<=57)shu++;elseif(a[i]>=33&&a[i]<=47)qi++;}printf("大寫字母個數是:%d\n",da);//puts(da);printf("\n");printf("小寫字母個數是:%d\n",xiao);//puts(xiao);printf("\n");printf("數字字符個數是:%d\n",shu);//puts(sh
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 系統集成項目中的信息管理技術試題及答案
- 學術規范的中級社會工作者考試試題及答案
- 17機械基礎試題及答案
- 雕刻印章美術考試題及答案
- 2025照明工程合同范本
- 老人能力測試題目及答案
- 征戰2025年系統集成試題及答案
- 安徽省vb二級考試試題及答案
- MSOffice表單設計試題及答案
- 急救相關護理試題及答案
- GB/T 42441-2023仿生學仿生材料、結構和構件
- 2023年中電信數智科技有限公司招聘筆試題庫及答案解析
- GB 1886.358-2022食品安全國家標準食品添加劑磷脂
- GB/T 1508-2002錳礦石全鐵含量的測定重鉻酸鉀滴定法和鄰菲啰啉分光光度法
- GA/T 1788.3-2021公安視頻圖像信息系統安全技術要求第3部分:安全交互
- 小學六年級信息技術復習題
- 食品安全培訓(食品安全知識)-課件
- 初二物理新人教版《功》公開課一等獎省優質課大賽獲獎課件
- 北京大學國際政治經濟學教學大綱
- 合肥市建設工程消防設計審查、消防驗收、備案與抽查文書樣式
- 《電氣工程基礎》熊信銀-張步涵-華中科技大學習題答案全解
評論
0/150
提交評論