版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上5.4 實(shí)驗(yàn)五 函數(shù)與預(yù)處理一、實(shí)驗(yàn)?zāi)康呐c要求 1. 掌握C語(yǔ)言函數(shù)的定義方法、函數(shù)的聲明及函數(shù)的調(diào)用方法。2. 理解函數(shù)實(shí)參與形參的對(duì)應(yīng)關(guān)系以及“值傳遞”的方式。3. 掌握全局變量和局部變量動(dòng)態(tài)變量、靜態(tài)變量的概念和使用方法。4. 掌握動(dòng)態(tài)存儲(chǔ)分配的方法。5. 掌握宏定義和文件包含處理方法。6. 實(shí)驗(yàn)4學(xué)時(shí)二、實(shí)驗(yàn)內(nèi)容1程序驗(yàn)證與改錯(cuò)題(1) 程序驗(yàn)證題 下面程序執(zhí)行的結(jié)果是什么 void swap(int x, int y) int temp; temp=x; x=y; y=temp;void main() int a,b; scanf(“%d%d”, &
2、a,&b); if(a>b) swap(a, b); printf(“%dt %d”, a,b);思考:為什么a,b的值沒(méi)有交換?答:修改后的函數(shù)為#include<stdio.h>void swap(int &x, int &y)int temp;temp=x;x=y;y=temp;void main()int a,b;scanf("%d%d",&a,&b); swap(a,b); /if語(yǔ)句被去掉/printf("%dt %dn", a,b); 因?yàn)檎{(diào)用函數(shù)中改變的是形參而非實(shí)參,加上&
3、;,其意義是改變實(shí)參的地址。If語(yǔ)句中,只有當(dāng)a>b時(shí)才交換a,b的值 去掉后 在任何情況下都交換a,b的值 調(diào)用函數(shù)fun計(jì)算:m=1+2+3+4+9+10,并輸出結(jié)果。請(qǐng)驗(yàn)證下面的程序是否符合題目要求。#include”stdio.h”int fun(int n) int m, i;for (i=1; i<=n; i+) m+=i;return m;void main() printf("m=%dn", fun(10);在上面程序的基礎(chǔ)上,修改程序. 計(jì)算m=1-2+3-4+9-10。答:#include<stdio.h>int fun(int
4、n) int m=0,i;for (i=1;i<=n;i+)if(i%2=1)m+=i;elsem-=i;return m;void main()printf("m=%dn",fun(10);(2)程序改錯(cuò)題 下列程序的功能是利用自定義函數(shù)計(jì)算一無(wú)符號(hào)的整數(shù)各位數(shù)字的乘積。#include<stdio.h>unsigned f(unsigned num) unsigned k=0; do k*=num/10; num/=10; while(k); return k; void main() int x; printf(“input x=:n”); scan
5、f(“%d”, x); printf(“%d”, f(x);答:#include<stdio.h>unsigned f(unsigned num) unsigned k=1; do k*=num%10; num/=10; while(num!=0); return k; void main() int x; printf("input x=:n"); scanf("%d",&x); printf("%d", f(x);2一般編程題編程題1 編寫(xiě)一函數(shù),把輸入的4個(gè)數(shù)字字符轉(zhuǎn)換成一個(gè)int數(shù)據(jù)存放,如輸入4123這字
6、符轉(zhuǎn)換為4123這個(gè)整數(shù),并通過(guò)主函數(shù)驗(yàn)證結(jié)果。答:#include<stdio.h>int f(char c)int a;a=int(c)-48;return a;void main()int a,b=0;char c;while(c=getchar()!='n')a=f(c);b=b*10+a;printf("%dn",b);printf("%d+%d=%dn",b,b,b+b);printf("n");編程題2 編寫(xiě)程序求:1*1*1+2*2*2+3*3*3+4*4*4+5*5*5提示:主函數(shù)用來(lái)現(xiàn)實(shí)
7、結(jié)果,f1( )函數(shù)用來(lái)求一個(gè)數(shù)的立方,f2( )函數(shù)用來(lái)求和。#include <stdio.h>int f1(int n)int f2(int m)void main() 答:1解(使用庫(kù)函數(shù))#include<stdio.h>void main()int i=4;char temp;int result=0;temp=getchar();while(temp!='n')result*=10;result+=(int)temp-48);temp=getchar();printf("%cn",temp);printf("%
8、dn",result);2解(使用stdlib 庫(kù)函數(shù)中的atoi ()函數(shù))# include <stdio.h># include <stdlib.h>void main ()int num;char str30;gets(str);num = atoi(str);printf("num to int:%dn",num);編程題3 定義兩個(gè)帶參數(shù)的宏,將兩個(gè)參數(shù)的值相加和相減,并寫(xiě)出程序,輸入兩個(gè)數(shù)作為使用宏時(shí)的實(shí)參。輸出相加和相減后的和與差。答:#include <stdio.h>#define P(m,n) m+n;#d
9、efine Q(m,n) m-n;void main()int m,n,p,q;scanf("%d %d",&m,&n);p=P(m,n);q=Q(m,n);printf("%d=%d+%dn",p,m,n);printf("%d=%d-%dn",q,m,n);編程題4 編程輸出2到10000之間的所有完數(shù)。所謂完數(shù)是指因子之和與它本身相等的數(shù)。如6=1+2+3,6是一個(gè)完數(shù)。要求:定義函數(shù) factor(m) 判斷m是否為完數(shù);由主函數(shù)調(diào)用它,來(lái)對(duì)所有2到10000之間的所有數(shù)進(jìn)行判斷。#include <st
10、dio.h>#include <math.h>int factor(int m) int i,s=0; void main() int i,m,sum; 答:#include <stdio.h>#include <math.h>int factor(int m) int i,s=0;for(i=1;i<m;i+)if(m%i=0)s+=i;if(s=m)return s;elsereturn 0;void main() int i,m,sum;m=10000;for(i=2;i<=m;i+)sum=factor(i);if(sum>0
11、)printf("%d ",sum);printf("n");3較難編程題編程題1 用函數(shù)調(diào)用實(shí)現(xiàn)求兩個(gè)數(shù)的最大公因子和最小公倍數(shù)答:#include <stdio.h>#include <math.h>int f(int m,int n) int i;for(i=1;i+)if(m=n)break;if(m>n)m=m-n;elsen=n-m;return n;int g(int x,int y,int z)int i;i=x*y/z;return i;void main()int a,b,c,d;scanf("
12、%d %d",&a,&b);c=f(a,b);d=g(a,b,c);printf("最大公因子:%dn",c);printf("最小公倍數(shù):%dn",d);編程題2 用遞歸方法求1+2+3+并將其中素?cái)?shù)去除后之和。#include <stdio.h>#include <math.h>int isprime (int number) long fact(int n) void main() int m,sum; 答:#include <stdio.h>#include <math.h>int isprime (int number) int i;for(i=2;i<number;i+)if(number%i=0)break;if(i=number)return 0;elsereturn number;l
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 昆明市官渡區(qū)云南大學(xué)附屬中學(xué)星耀學(xué)校2026年校園招聘?jìng)淇碱}庫(kù)及答案詳解參考
- 2025年興業(yè)銀行總行安全保衛(wèi)部反洗錢(qián)中心招聘?jìng)淇碱}庫(kù)及一套參考答案詳解
- 2025年邵東市中醫(yī)醫(yī)院編外合同制專(zhuān)業(yè)技術(shù)人員招聘38人備考題庫(kù)及參考答案詳解1套
- 清遠(yuǎn)市公安局公開(kāi)招聘警務(wù)輔助人員200人備考題庫(kù)及一套答案詳解
- web課程設(shè)計(jì)題目青少年教育
- 2025年福州高速交警支隊(duì)關(guān)于招聘警務(wù)輔助人員備考題庫(kù)含答案詳解
- 2025 九年級(jí)語(yǔ)文下冊(cè)寫(xiě)作細(xì)節(jié)真實(shí)性指導(dǎo)課件
- 2025天津市政建設(shè)集團(tuán)有限公司面向社會(huì)選聘總法律顧問(wèn)1人筆試重點(diǎn)試題及答案解析
- 2026重慶市萬(wàn)州區(qū)長(zhǎng)坪鄉(xiāng)人民政府非全日制公益性崗位招聘1人筆試重點(diǎn)試題及答案解析
- 基于3D打印的航空發(fā)動(dòng)機(jī)葉片冷卻系統(tǒng)設(shè)計(jì)優(yōu)化與熱流控制教學(xué)研究課題報(bào)告
- 2025年重慶市大渡口區(qū)事業(yè)單位考試試題
- 管道施工圍擋施工方案
- 銷(xiāo)售費(fèi)用申請(qǐng)與報(bào)銷(xiāo)流程標(biāo)準(zhǔn)化手冊(cè)
- 城市綠化生態(tài)修復(fù)項(xiàng)目實(shí)施方案
- 小學(xué)數(shù)學(xué)奧賽8-10-火柴棒游戲.教師版
- 西藏酥油茶的課件
- 安裝預(yù)制檢查井施工方案
- DB11T 2491-2025 文物保護(hù)工程勘察規(guī)范 長(zhǎng)城
- 急性心肌梗死治療課件
- 小兒危重癥的早期識(shí)別及護(hù)理
- 樹(shù)木砍伐安全培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論