C語言程序設(shè)計(jì)實(shí)驗(yàn)及代碼_第1頁
C語言程序設(shè)計(jì)實(shí)驗(yàn)及代碼_第2頁
C語言程序設(shè)計(jì)實(shí)驗(yàn)及代碼_第3頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

西南林業(yè)大學(xué)C語言程序設(shè)計(jì)實(shí)驗(yàn)題、代碼、輸出結(jié)果編寫目的:學(xué)生的痛,大家都明白,特別是學(xué)渣的痛。呃,不過我漸漸從學(xué)渣成功逆襲,所以最C語言時(shí)不會(huì)那么腦大,不用像我們開始時(shí)候的茫然。GET時(shí)間,但就像那句話說的:Nopain,noget.付出不一定會(huì)有收獲,但是不付出一定會(huì)讓你后悔。所以,認(rèn)真聽課,不僅僅只是C語言,還有其他的課程。實(shí)驗(yàn)題目及代碼、輸出結(jié)果實(shí)驗(yàn)題目目錄目錄 P1 P6Printf簡單輸出三角形 P6給定圓半徑值為5編程求圓面積和圓周長 P6編寫一個(gè)攝氏溫度與華氏溫度之間的轉(zhuǎn)換程序 P6編寫程序從鍵盤上輸入兩個(gè)電阻值求它們并聯(lián)電阻值和串電阻值,輸出結(jié)果保留兩位小數(shù)。 P7(有主函數(shù)子函數(shù)----------P26)使用兩種指定的方法打印正三角形數(shù)陣 P7從鍵盤輸入3個(gè)數(shù)字字符將它們分別轉(zhuǎn)換為對(duì)應(yīng)的整數(shù)(即字符’0’轉(zhuǎn)換為整數(shù)0,字符’1’轉(zhuǎn)換為整數(shù)1,依次類推然后求3個(gè)整數(shù)的平均值。 P8從鍵盤輸入兩個(gè)兩位的正整數(shù)按照以下格式組裝成一個(gè)四位正整數(shù)。------------------------P8(指針變量 P19)輸入三角形的三條邊長,求三角形的面積。 P9從鍵盤任意輸入3個(gè)整數(shù),選出其中的最大數(shù)并打印。 P10從鍵盤輸入三個(gè)正整數(shù),判斷否能構(gòu)成三角形的三邊? P10從鍵盤輸入一個(gè)合法的算術(shù)運(yùn)算符(*、/)使用if。---------------------P11(有主函數(shù)子函數(shù) P21)從鍵盤輸入一個(gè)年份和一個(gè)月份使用switch語句編程判斷并印該月的天數(shù) P12從鍵盤輸入1個(gè)整型的分?jǐn)?shù)使用switch語句編程判斷如果數(shù)介于0~59分之間就打“不及格如果介于60~79分之就打印“及格;如果介于80~89之間就打印“良好;如果介于90~100之間就打印“優(yōu)秀。 P13使用while語句編程求100以內(nèi)能被5整除但不能同時(shí)被7整的數(shù),并統(tǒng)計(jì)找到的數(shù)的個(gè)數(shù)。 P13從鍵盤輸入一個(gè)正整數(shù),使用while語句編程求該整數(shù)是一個(gè)幾位數(shù)n使用while語句編程a=∑n1的前n項(xiàng)和 P14n1n1使用for語句編程求an=∑n的前n項(xiàng)和 P151n使用for語句編程求an= 1 的前n項(xiàng)和 P16n∑i=0n∑使用for語句的嵌套結(jié)構(gòu)編程打印九-九乘法表 P16定義一個(gè)大小為10的整型一維數(shù)組,初始化所有數(shù)組元素,程查找數(shù)組中的所有奇數(shù),并統(tǒng)計(jì)奇數(shù)的個(gè)數(shù) P17109個(gè)元素,91數(shù)插入到已有的元素中,需保證這10個(gè)數(shù)仍然按照降序排序。--------------------------------------------------------------P18利用指針編程,其功能是求電阻的并聯(lián)值和串聯(lián)值。 P18利用指針編程,其功能是利用“除號(hào)”和“求余號(hào)”將輸入的個(gè)兩位的正整數(shù)組合成一個(gè)新的四位的正整數(shù)。 P16定義一個(gè)大小為10的整型一維數(shù)組并初始化數(shù)組元素,再定義一個(gè)指針變量讓其指向該數(shù)組利用指針編程查找數(shù)組中的所奇數(shù)。 P20輸入三角形的三條邊長,定義一個(gè)子函數(shù)fun()求三角形的面積--------------------P21定義一個(gè)子函數(shù)fun()打印菱形。 P22定義一個(gè)子函數(shù)fun()其功能是求1累加到100的和 P23n定義一個(gè)子函數(shù)fun(),求表達(dá)式a=1的前n項(xiàng)和 P23nn!定義一個(gè)fun()函數(shù),其功能是:求兩個(gè)整數(shù)的和、差、積、商。----------------P26ax2+bx+c=0abc,求方程的實(shí)根。定義三個(gè)子函數(shù)fun1(fun2(fun3()分別處理方程有無實(shí)根、有兩個(gè)相同實(shí)根、有兩個(gè)不同實(shí)根的情況----------------------------------------------------------------P27從鍵盤上輸入一個(gè)的字符串,輸出所有ASCII碼為奇數(shù)的字符并統(tǒng)計(jì)這些字符的個(gè)數(shù)。 P28從鍵盤上輸入一個(gè)由大寫字母、小寫字母、數(shù)字字符、其它字構(gòu)成的字符串,統(tǒng)計(jì)字符串中的大寫字母個(gè)數(shù)、小寫字母個(gè)數(shù)數(shù)字字符個(gè)數(shù)、其它字符個(gè)數(shù)。 P28從鍵盤輸入兩個(gè)字符串,分別存到字符數(shù)組a和字符數(shù)組b中編程將第二個(gè)字符串連接到第一個(gè)字符串末尾形成一個(gè)新字符串(不使用#include<string.h>庫函數(shù)) P29使用while語句編程求

=xn(n從0開始)前n項(xiàng)值,直到某一項(xiàng)n!的值小于10-6就結(jié)束循環(huán)。 P30使用for語句的嵌套結(jié)構(gòu)編程打印行數(shù)為奇數(shù)的對(duì)稱三教菱形----------------------------------------------P31從鍵盤輸入一個(gè)正整數(shù)x,編程求比x大的,最臨近x的n個(gè)素?cái)?shù)例如為x和n分別輸入數(shù)值10和就表示求出比10大的最臨近10的15個(gè)素?cái)?shù)。 P31題目及答案printf()函數(shù)的編程練習(xí)——格式1編程輸出如圖所示的三角形。voidmain(){printf("*\n");printf("**\n");printf("***\n");printf("****\n");}給定圓半徑值為5,編程求圓面積和圓周長提示:doubler5sl;%lf(3)C語言中沒有∏這個(gè)符號(hào),編寫程序時(shí)直接使用3.14159(4)C語言中沒有求次方的運(yùn)算符,求次方可用連乘的方法#include<stdio.h>#definePI3.14159intmain(){floatr=5;printf("圓半徑=%lf\n圓面積=%f\n圓周長=%f\n",r,PI*r*r,2*PI*r);}(其中一個(gè)數(shù)的n次方可以用數(shù)學(xué)運(yùn)算來算rn)scanf()函數(shù)、運(yùn)算符編程練習(xí)編寫一個(gè)攝氏溫度與華氏溫度之間的轉(zhuǎn)換程序,轉(zhuǎn)換公式是:

F9C325提示:該公式中的“C”是一個(gè)從鍵盤輸入的已知量;“F”是通過公式計(jì)算并打印出來的未知量。#include<stdio.h>voidmain(){doubleF,C;printf("請(qǐng)輸入一個(gè)攝氏溫度值:",C);scanf("%lf",&C);或2若定義類型為2或或用強(qiáng)制類型轉(zhuǎn)換(”在運(yùn)算時(shí)為整型運(yùn)算printf(":%.2lf",F);}果保留兩位小數(shù)。運(yùn)行結(jié)果如圖所示:注:并聯(lián)和串聯(lián)的電阻值計(jì)算公式如下。并聯(lián)電阻RP

R1*R2R1+R2串聯(lián)電阻RSR1+R2提示:scanf函數(shù)可以寫成scanf("%d,%d"&r1&r2);結(jié)果保留兩位小數(shù)的格式說明符是“%.2lf”。#include<stdio.h>voidmain(){doubleR1,R2,RP,RS;printf("請(qǐng)輸入兩個(gè)電阻值:",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()函數(shù)的“%c”格式打印圖形。提示:一個(gè)“%c”只能打印一個(gè)字符。方法二:使用printf()函數(shù)的“%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方法二的類似(運(yùn)用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個(gè)數(shù)字字符,將它們分別轉(zhuǎn)換為對(duì)應(yīng)的整數(shù)值(即字符’0’轉(zhuǎn)換為整數(shù)0,字符’1’轉(zhuǎn)換為整數(shù)1,依次類推然后求3運(yùn)行結(jié)果如圖所示:提示:本題的變量定義可參考如下:chara,bc; //變量a,b,c入的3個(gè)數(shù)字字符intx,y,z; //變量x,y,z換后的3個(gè)整數(shù)doubleaver;//變量aver保存求出的平均值#include<stdio.h>#include<math.h>voidmain(void){double a,b,c,d;printf("請(qǐng)輸入三個(gè)數(shù)字字符:");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("請(qǐng)輸入三個(gè)數(shù)字字符:");x=a-48;z=c-48;aver=(x+y+z)/3.0;printf("平均值為:%2lf",aver)從鍵盤輸入兩個(gè)兩位的正整數(shù),按照以下格式組裝成一個(gè)四位的正整數(shù)。例如:輸入12和34,組裝成的四位數(shù)是1324。運(yùn)行效果如右圖所示:提示:首先利用“除號(hào)”和“求余號(hào)”分別把兩個(gè)兩位正整數(shù)的十位數(shù)、個(gè)位數(shù)分離開;再經(jīng)過數(shù)學(xué)運(yùn)算組裝成一個(gè)四位數(shù)。scanf函數(shù)可以寫成scanf("%d%d"&a&b);#include<stdio.h>#include<math.h>voidmain(void){inta,b,z;printf("請(qǐng)輸入兩個(gè)兩位數(shù)的正數(shù):");scanf("%d%d",&a,&b);z=a/10*1000+b/10*100+a%10*10+b%10;printf("合成的四位正整數(shù)是:%d\n",z);}數(shù)學(xué)函數(shù)的使用1、輸入三角形的三條邊長,求三角形的面積。運(yùn)行結(jié)果如圖所示:提示:本題的變量定義可參考如下:inta,b,c;doublex,s;scanf函數(shù)可以寫成scanf("%d,%d,%d",&a,&b,&c);計(jì)算三角形面積的公式是:

x1

(abc)s x(xa)(xb)(xc) 2其中x的開方值的庫函數(shù)是sqrt(x),使用時(shí)需包含頭文件math.h#include<stdio.h>voidmain(void){inta,b,c;doublex,s;printf("請(qǐng)輸入三角形的三邊:");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語句編程練習(xí)從鍵盤任意輸入3個(gè)整數(shù),選出其中的最大數(shù)并打印。提示:要判斷最大數(shù),需對(duì)每兩個(gè)數(shù)作兩兩比較。3個(gè)if語句編寫程序。2a、bab中。#include<stdio.h>voidmain(){inta,b,c,t;printf("請(qǐng)輸入三個(gè)整數(shù):");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("運(yùn)行結(jié)果:a=%d,b=%d\n",a,b);}elseprintf(" 運(yùn) 行 果:a=%d,b=%d\n",a,b);}printf("最大數(shù)是:%d\n",a); }從鍵盤輸入三個(gè)正整數(shù)息。提示:該題屬于“if-else語句”結(jié)構(gòu)。能構(gòu)成三角形的邏輯條件是:任意的兩邊之和均要大于第三邊。計(jì)算三角形面積的公式是:x(xx(xa)(xb)(xc)

x12

(abc)本題的變量定義可參考如下:inta,b,c; doublex,s;xsqrt(x),需包含頭文件math.h#include<stdio.h>voidmain(void){intdoublex,s;printf("請(qǐng)輸入三角形的三邊:");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("構(gòu)成的三角形面積是:%.2lf\n",s);}elseprintf("不能構(gòu)成三角形\n");}從鍵盤輸入一個(gè)合法的算術(shù)運(yùn)算符-*及兩個(gè)實(shí)數(shù)if語句編寫程序(要求結(jié)果保留兩位小數(shù))。程序運(yùn)行效果如下圖所示:提示:該題屬于“if語句”結(jié)構(gòu)。本題的變量定義可參考如下:charfu; //fu變量用來存放運(yùn)算符doublexyz; //x、y2個(gè)實(shí)數(shù),z存放運(yùn)算結(jié)果輸入字符型數(shù)據(jù)的格式說明符是%c,實(shí)型數(shù)據(jù)的格式說明符是%lf。2位小數(shù)的格式說明符是%.2lf。P613.7switch語句編寫該題程序。voidmain(){charfu;doublex,y,z;intt,a;printf("請(qǐng)輸入一個(gè)算數(shù)運(yùn)算符和兩個(gè)浮點(diǎn)數(shù)");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程序運(yùn)行效果如下所示:提示:本題先使用if判斷年份和月份是否有效。如果年份和月份有效,再嵌套switch語句判斷每個(gè)月份的天數(shù)。對(duì)于2參考教材P62例3.8。#include<stdio.h>voidmain(){intyear,month,day;printf("請(qǐng)輸入一個(gè)年份和一個(gè)月份:");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個(gè)整型的分?jǐn)?shù),使用switch語句編程,判斷如果分?jǐn)?shù)介于0~590~9~90~0#include<stdio.h>voidmain(){inta,b;printf("請(qǐng)輸入一個(gè)分?jǐn)?shù)介于<0~100>間:");scanf("%d",&a);if(a>0&&a<=100){b=a/10;

break;case9:case10:printf("優(yōu)秀\n");break;default:printf("不及格\n");break;switch(b){case6:case7:

printf("及格\n");

}else

}printf("輸入的分?jǐn)?shù)份值無效!\n");break;case8: }printf("良好\n");使用while語句編程求100以內(nèi)能被5整除但不能同時(shí)被7整除的數(shù),并統(tǒng)計(jì)找到的數(shù)的個(gè)數(shù)。提示:該題變量可定義為:int i=1,n=0;//i是循環(huán)變量, n是統(tǒng)計(jì)個(gè)數(shù)的變量整除問題應(yīng)使用求余號(hào)“/#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以內(nèi)能被5整除但不能i++;同時(shí)被7整除的數(shù)是:\n");}while(i<=100){printf("符合條件的數(shù)有%d 個(gè)b=i%5;\n",n);c=i%7;}從鍵盤輸入一個(gè)正整數(shù),使用while語句編程求該整數(shù)是一個(gè)幾位數(shù)。程序運(yùn)行效果如下所示:提示:該題變量可定義為 intx,n=0,m;其中,x保存輸入的正整數(shù),n統(tǒng)計(jì)位數(shù),m暫存x的值。每次循環(huán)將x10倍,直到x0整數(shù)的位數(shù)。#include<stdio.h>voidmain(){intx,n,m,i;n=0;printf("請(qǐng)輸入一個(gè)正整數(shù):");i=x;while(m!=0){n++;x=m;}printf("%d是一個(gè)%d位數(shù)\n",i,n);}使用while語句編程求以下表達(dá)式的值,程序運(yùn)行結(jié)果如圖所示:1 1 1sum11

...2 123

12...10提示:該題變量可定義為:int i;double mu,t,sum;本題的循環(huán)體里有3個(gè)通式:①分母的通式、②當(dāng)前項(xiàng)的通式、③求和的通式、④i自增的通式。#include<stdio.h>voidmain()sum=1/mu+t;{t=sum;inti;i++;doublemu,t,sum;mu=mu+i;mu=1;t=0;}printf("表達(dá)式的值為:\n");i=1;printf("sum=%f\n",sum);while(i<=10)}{for語句編程練習(xí)1、使用for語句編程求以下表達(dá)式的值,如果從鍵盤輸入20賦值給變量n,則運(yù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("請(qǐng)輸入整數(shù)值:");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語句編程求以下表達(dá)式的值,程序運(yùn)行結(jié)果如圖所示:1 1 1sum11提示:

...2 123 12...10注意觀察可知相鄰兩項(xiàng)中,后一項(xiàng)的分母是前一項(xiàng)的分母加i值。該題變量可定義為: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)式的總和。#include<stdio.h>voidmain(){inti;mu=mu+i;t=1/mu;sum=sum+t;doublet=0,sum=0,mu=0;}printf("表達(dá)式值為:\n");for(i=1;i<=10;i++)printf("sum=%lf\n",sum);{}循環(huán)的嵌套編程練習(xí)使用for語句的嵌套結(jié)構(gòu)編程打印九-九乘法表,程序運(yùn)行效果如圖所示:#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");}}定義一個(gè)大小為10的整型一維數(shù)組,初始化所有數(shù)組元素,編程查找數(shù)組中的所有奇數(shù),并統(tǒng)計(jì)奇數(shù)的個(gè)數(shù)。運(yùn)行效果如圖所示:提示:本題變量定義可參考如下inta[10]={2,4,5,6,9,11,13,16,17,19},i,sum=0;首先用一個(gè)for10個(gè)數(shù)組元素的初值。再用一個(gè)循環(huán)嵌套if語句查找并打印數(shù)組中的奇數(shù)。(1)源程序粘貼在此處。#include<stdio.h>printf("數(shù)組中的奇數(shù)是:");//#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("數(shù)組中的初始值是:");n++;}for(i=0;i<10;i++){}printf("%d",a[i]);printf("\n");}printf("\n");printf("\n");printf("奇數(shù)個(gè)數(shù)是:%d\n",n);printf("\n");}1099個(gè)元素已經(jīng)1這10個(gè)數(shù)仍然按照降序排序。程序運(yùn)行效果如下圖所示:提示:本題變量定義可參考如下inta[10]={20,18,15,12,10,9,7,5,2}, i, j, t;本題使用冒泡法排序,先將鍵盤輸入的1個(gè)整數(shù)放到數(shù)組元素a[9]使用排序算法對(duì)這10個(gè)數(shù)進(jìn)行降序排序。#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("請(qǐng)輸入一個(gè)整數(shù):");printf("降序排序后的整數(shù)為:");scanf("%d",&a[9]);for(i=0;i<10;i++)printf("\n");數(shù)組中的0{printf("%d",a[i]);for(i=0;i<10;i++)}{printf("\n");printf("%d",a[i]);}利用指針編程,其功能是求電阻的并聯(lián)值和串聯(lián)值。程序運(yùn)行效果如圖所示:要求:輸入電阻值;計(jì)算并聯(lián)串聯(lián)值;打印結(jié)果都必須使用指針完成。提示:該題的變量可定義為intr1,r2,*p1,*p2; doublerp,rs,*pp,*ps;其中指針p1、p2用來指向并操作變量r1、r2;指針pp、ps用來指向并操作變量rp、rs。在利用指針編程之前,應(yīng)將指針指向?qū)?yīng)的變量。#include<stdio.h>voidmain(){intr1,r2,*p1,*p2;doublerp,rs,*pp,*ps;printf("請(qǐng)輸入兩個(gè)電阻值");scanf("%d%d",&r1,&r2);p1=&r1;p2=&r2;rp=(double)(*p1**p2)/(double)(*p1+*p2);rs=*p1+*p2;pp=&rp;ps=&rs;printf("并聯(lián)電阻組織=%lf\n",*pp);printf("串聯(lián)電阻組織=%lf\n",*ps);}利用指針編程,其功能是利用“除號(hào)”和“求余號(hào)”將輸入的兩個(gè)兩位的正整數(shù)組合成一個(gè)新的四位的正整數(shù)。要求:輸入整數(shù)值;計(jì)算;打印結(jié)果都必須使用指針完成。提示:該題的變量可定義為inta,b,c,*pa,*pb,*pc;其中指針pa、pb、pc分別用來指向并操作變量a、b、c。變量a、b用來存放輸入的兩個(gè)兩位正整數(shù),變量c用來存放組合后的四位的正整數(shù)。{方法一}#include<stdio.h>voidmain(){inta,b,c,*pa,*pb,*pc;printf("請(qǐng)輸入兩個(gè)兩位數(shù)的正整數(shù):");scanf("%d%d",&a,&b);pa=&a;pb=&b;pc=&c;printf("組合成的四位正整數(shù)是:%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前不能空行,不然無法識(shí)別。定義一個(gè)大小為10指向該數(shù)組,利用指針編程查找數(shù)組中的所有奇數(shù)。運(yùn)行效果如圖所示:提示:該題變量可定義為inta[10]={2,4,5,6,9,11,13,16,17,19},*p,i;p指向數(shù)組。要求:使用“下標(biāo)法”編程,即使用“p[i]”的形式引用數(shù)組元素。[方法一]#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("數(shù)組中的初始值是:");}}for(p=a,i=0;i<10;i++) {printf("%d",p[i]);

printf("\n");printf("\n");printf("奇數(shù)個(gè)數(shù)是:%d\n",n);}printf("\n");printf("\n");printf("數(shù)組中的奇數(shù)是:");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("數(shù)組中的初始值是:");printf("\n");printf("奇數(shù)個(gè)數(shù)是:%d\n",n);for(i=0;i<10;i++){printf("%d",p[i]);}}fun所示::數(shù)據(jù)輸入和結(jié)果打印都必須在main()函數(shù)中完成。fun提示:計(jì)算三角形面積的公式是:s x(xa)(xb)(xc)

x12

(abc)計(jì)算x的開方值的庫函數(shù)是sqrt(x),使用時(shí)需包含頭文件math.hfun函數(shù)的函數(shù)首部可參考如下doublefun(inta,intb,intc)//該函數(shù)有3個(gè)形參,返回值類型為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("請(qǐng)輸入三角形的三邊:");scanf("%d%d%d",&a,&b,&c);m=fun(a,b,c);printf("三角形面積=%lf\n",m);}定義一個(gè)子函數(shù)fun()打印菱形。運(yùn)行結(jié)果如圖所示:要求:菱形的行數(shù)在main()函數(shù)中輸入,根據(jù)輸入的行數(shù)決定菱形打印幾行。提示:fun函數(shù)的函數(shù)首部可參考如下voidfun(intx)//1回值在fun函數(shù)內(nèi)部,首先根據(jù)形參x后再執(zhí)行循環(huán)的嵌套結(jié)構(gòu)分別打印正三角和倒三角。#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("請(qǐng)輸入菱形的行數(shù)(注意:行數(shù)} 為奇數(shù):voidmain(){inta;

scanf("%d",&a);fun(a);}定義一個(gè)子函數(shù)fun(),其功能是求1累加到100的和。要求:結(jié)果在子函數(shù)打印。(1)函數(shù)寫在前,()函數(shù)寫在后。(2)fun()函數(shù)定義為無參、無返回值形式。#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();定義一個(gè)子函數(shù)fun(),求表達(dá)式 S 1 n

1n!的值。主函數(shù)定義如下所示,請(qǐng)完成fun()函數(shù)。#include<stdio.h>doublefun(intn);voidmain(){intn;doublesum;printf("請(qǐng)輸入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、定義一個(gè)子函數(shù)fun()求算術(shù)表達(dá)式的解。要求:運(yùn)算符(*/)和兩個(gè)整數(shù)在主函數(shù)輸入,結(jié)果也在主函數(shù)打印。(1)數(shù)。如果運(yùn)算符非法,就打印錯(cuò)誤提示信息,不調(diào)用fun()函數(shù)。(2)fun()函數(shù)的函數(shù)首部可以參考如下double fun(char fu, int a, int b)其中形參fuabdouble,表示函數(shù)的運(yùn)行結(jié)果是實(shí)數(shù)。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("運(yùn)算符非法,無法參與運(yùn)算\n");*/}return(ans);}

printf("請(qǐng)輸入一個(gè)算數(shù)運(yùn)算符和兩個(gè)浮點(diǎn)數(shù)");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("運(yùn)算符非法,無法參與運(yùn)算\n");}#include<stdio.h>voidmain(){charfu;doublex,y,z;intt;參數(shù)的“傳值”方式與“傳地址”方式編程練習(xí)1、在主函數(shù)中輸入2個(gè)電阻值,定義2提示:主函數(shù)中的變量定義可參考如下doublea,b,bing,chuan;#include<stdio.h>voidfun(doublea,doubleb){doublebing,chuan;bing=(a*b)/(a+b);chuan=a+b;printf("并聯(lián)電阻阻值=%lf\n",bing);printf("串聯(lián)電阻阻值=%lf\n",chuan);return;}voidmain(){doublea,b,bing,chuan;scanf("%lf%lf",&a,&b);fun(a,b);}2、定義一個(gè)fun()函數(shù),其功能是:求兩個(gè)整數(shù)的和、差、積、商。程序運(yùn)行效果如圖所示:

要求:兩個(gè)整數(shù)值在主函數(shù)中輸入,運(yùn)算結(jié)果在主函數(shù)中輸進(jìn)行運(yùn)算。提示:main()inta,b,he,chaji;doubleshang;本題需使用參數(shù)的傳地址方式,fun()函數(shù)有6個(gè)參數(shù)。fun()函數(shù)首部為: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);}在主函數(shù)中輸入一元二次方程ax2+bx+c=0的三個(gè)系數(shù)a、b、c,求方程的實(shí)根。定義三個(gè)子函數(shù)fun1()、fun2()、fun3()分別處理方程有無實(shí)根、有兩個(gè)相同實(shí)根、有兩個(gè)不同實(shí)根的情況。要求:(1)a、b、c值需在主函數(shù)中輸入;

main函數(shù)中打印提示:求方程實(shí)根的計(jì)算公式是#include<stdio.h>#include<math.h>

//fun3函數(shù)double

if(deta<0){//fun1函數(shù)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函數(shù)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("請(qǐng)輸入一元二次方程組的系數(shù)\nabc:\n");X2=%lf\n",m);}}scanf("%lf%lf%lf",&a,&b,&c);deta=((b*b)-4*a*c);}從鍵盤上輸入一個(gè)的字符串,輸出所有ASCII碼為奇數(shù)的字符,并統(tǒng)計(jì)這些字符的個(gè)數(shù)。運(yùn)行效果如圖所示:提示:gets函數(shù)。本題的變量可定義為chara[50];intn=0,i=0;#include<stdio.h>voidmain()printf("%c",a[i]);{n++;chara[50],b[50];}intn=0,i=0;printf("請(qǐng)輸入一個(gè)字符串:");gets(a);printf("ASCIIfor(i=0;i<=50;i++){if(a[i]%2!=0){

}printf("\n");printf("ASCII碼為奇數(shù)的字符個(gè)數(shù)是:%d\n",n);}從鍵盤上輸入一個(gè)由大寫字母、小寫字母、數(shù)字字符、其它字符構(gòu)成的字符串,統(tǒng)計(jì)字符串中的大寫字母個(gè)數(shù)、小寫字母個(gè)數(shù)、數(shù)字字符個(gè)數(shù)、其它字符個(gè)數(shù)。運(yùn)行效果如圖所示:要求:字符串的輸入/gets、puts提示:本題的變量可定義為chara[50];inti=0,da=0,xiao=0,shu=0,qi=0;a用來存放字符串;變量i作循環(huán)變daxiaoshu、qi其它字符的個(gè)數(shù)。#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("大寫字母個(gè)數(shù)是:%d\n",da);//puts(da);printf("\n");printf("小寫字母個(gè)數(shù)是:%d\n",xiao);//puts(xiao);printf("\n");printf("數(shù)字字符個(gè)數(shù)是:%d\n",shu);//puts(sh

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論