C語(yǔ)言入門學(xué)習(xí)-C上機(jī)試驗(yàn)九要求_第1頁(yè)
C語(yǔ)言入門學(xué)習(xí)-C上機(jī)試驗(yàn)九要求_第2頁(yè)
C語(yǔ)言入門學(xué)習(xí)-C上機(jī)試驗(yàn)九要求_第3頁(yè)
C語(yǔ)言入門學(xué)習(xí)-C上機(jī)試驗(yàn)九要求_第4頁(yè)
C語(yǔ)言入門學(xué)習(xí)-C上機(jī)試驗(yàn)九要求_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

上機(jī)實(shí)驗(yàn)九函數(shù)綜合練習(xí)一【實(shí)驗(yàn)八參考答案見后】目的和要求:(1)熟練掌握參數(shù)傳遞的要領(lǐng);(2)掌握全局變量的使用要領(lǐng);(3)了解靜態(tài)局部變量的特點(diǎn)。實(shí)驗(yàn)內(nèi)容:一、完善程序題.求10;【提示:本程序利用靜態(tài)局部變量保留每次調(diào)用函數(shù)的結(jié)果?!?include<stdio.h>#defiiieN10niam(){mti;longf;fbr(i=1;i<=N;i++)4 pnntf("%d!=%ld\ii",N,f);jc^jc*n;retumjc;}.以下程序中的trap函數(shù)是一個(gè)用梯形法求定枳分的通用函數(shù),梯形法求定積分s的公式為:s=((f(a)+f(b))/2+£f(a+i*h))*h.其中n為積分小區(qū)間數(shù),以下程序調(diào)用trap函數(shù)求定積分,被積函數(shù)是:f(x)=x*x+3*x+2,且n=1000,a=0,b=4°(程序運(yùn)行結(jié)果參考:53.333344)#include<stdio.h>#include<niath.h>doublemypoly(doublex){return(x*x+3.0*x+2.0);}doubletiap(doublea.doubleb){doublet,h;intLn=1000;t=0.5*(mypoly(a)+mypoly(b));/(double)(n);fbr(i=1;i<=n-l;i++)t=t+;t=t*h;retuni(t);}{doubley;y= ;y);}.下列程序完成的功能是:調(diào)用子函數(shù)求得數(shù)組a中所有的降序素?cái)?shù),即某正整數(shù)既是素?cái)?shù),又是降序數(shù)(所謂降序數(shù),或是一位整數(shù);或該數(shù)的高位數(shù)字大于等于低位數(shù)字,例如:-852。)#include<stdio.h>#defiiieN5intSS(iiitx);intx);niaiii(){mti,n=0;mta[N]=[-852,4321,9887,5,64};fbr(i=O:i<N;i-H-)if( ){n++;printf(H%6dM,a[i]);}if(n==O)prmtf(HAiTayahasnoJXSS!\iT);}HitSS(mtX)/*此函數(shù)判斷X是否素?cái)?shù)*/{mtk,flag=l;if(x<2);fbr(k=2;k<=x-l;k++)if(x%k==0){flag=O;break;}retuniflag;}mtJX(mtx)/*此函數(shù)判斷x是否降序數(shù)*/{ints[20],i,k;intflag=l;if(x<0)x=-x;if(x<10)return1;k=0;while(){s[k++]=x%10;x=x110;}

fbr(i=;if(s[i]<s[i-l]){flag=O;break:}.以下程序中的fiin函數(shù)對(duì)二維數(shù)組中存儲(chǔ)的n階方陣做如下操作:先將每一行中值最大的元素與該行位于主對(duì)角線處的元素交換值,然后對(duì)主對(duì)角線上的所有元素排序使其左上角到右卜角升序排列,最后輸出排序后主對(duì)角線上各元素的值。例如有:10252413231025241323原數(shù)組15191618處理后的數(shù)組原數(shù)組15191618處理后的數(shù)組24 5 35 9 4 193179 4 5 35 9 4 1932 16 7 82 1 6 7 25輸出結(jié)果為:9171925輸出結(jié)果為:9171925#include<stdio.h>#definen5voidmain(){mta[n][n]={{10,25,24,13,23},{4,3,6,9,7},{2,15,19,16,18},117,9,4,5,3},{2,1,6,7,8}};inti;fun(a);for(i=0;i<n;i++)pnntf(M\nH);}voidfun(){inti,j,t,air,col;foi(i=0;i<n;i++){a"=;col=0;for(j=l;j<n;j++)if(x[i][j]>=arr){an=x[i][j];)t=; =X[1][col];x[i][col]=t;}for(i=0;i<n-l;i++)〃選擇法變形foi(J=;j<n;J++)lf()仕= ; ; =t;}}二、編程題使用全局變量完成下列任務(wù):任意讀入10個(gè)整數(shù),調(diào)用子函數(shù)求得它們的平均值、最大值、最小值后由主函數(shù)輸出?!緦?shí)驗(yàn)八參考答案】一、完善程序題1.以下程序統(tǒng)計(jì)指定句子(即只含有字母、空格、句號(hào)的字符串)中的單詞個(gè)數(shù),并輸出每個(gè)單詞。【本題的思路是:將每個(gè)單詞存放到二維數(shù)組的每一行,則存放的行數(shù)即為單詞的個(gè)數(shù)?!?include<striiig.h>#include<ctype.h>niaiii(){char*text=MIwillpasstheexaniniationintliesummerholiday/*;iiitn,i,j,word;chaia[20][80];while(*text=*1)text++;/*去掉前導(dǎo)空格*/n=0;j=0;fbr(i=O:i<strlen(text);i++)if(isalpha(*(text+i)))/*isalpha函數(shù)的功能是判斷其參數(shù)是否為字母,要加"ctype.h"*/{a[n][j-H-]=%tuxt+i);word=0:}elseif(word=0){word=l;皿;n"H~; j=0;}piiiitf(nIthas%dword.\ii\ii,\n);fbr(i=O;i<n;i++)puts(a[i]);}2.用指針完成下列任務(wù):輸出如下矩陣:12 3 4

5 6 7 89 101112【法一:使用列指針完成,雙重循環(huán)】并include"stdio.h"niam(){mta[3][4]j.j,k=l;lilt*p;p=a[0]; /*或&a[0][0]*/fbr(i=0;i<3;i++)for(j=0;j<4j++)*(p+ )=k++:fbr(i=0;i<3;i++){ford=0j<4j++)pnntf("%3d",a[i][j]);}【法二:使用列指針完成,單循環(huán)】并include"stdio.1Tniam(){mta[3][4],i.j=l;lilt*p;for(i=0;i<12;i++)a[i/4][i%4]^j++;P=a[0];for(i=0;i<3;i++){for(j=0j<4j++)pnntf("%3d“,*e+產(chǎn)4+j));}【法三:使用行指針完成】并include"stdio.h"niam(){mta[3][4],i,j,k=l;int(*q)「41:q=a;for(i=0;i<3;i++)fbr(j=0j<4j++)*(*(_q+L)+尸k++;for(i=0;i<3;i++)/*或a[i][j]或*(*(q+i)+j){forO=Oj<4j++)pnntf("%3d",—q[i]U]_);printf(/*或a[i][j]或*(*(q+i)+j)}3.任意讀入3.任意讀入5個(gè)字符串,用選擇法降序排列后輸出,并將最大串和最小串連接后輸出。例如,讀入:loveyouveiymuch則輸出:youveiymuchloveI合并后的串:youl【程序如下,請(qǐng)?zhí)羁眨骸?include<stdio.h>#include<striiig.h>#defuieN5main。{chars[N][20];〃假設(shè)每個(gè)串的串長(zhǎng)都小于20chai-h[40]="";chai-*p[N];〃借助指針數(shù)組,可以只交換指向串的指針,不交換串本身mtij,k;for(i=0;i<N;i++)〃讓指針數(shù)組p的每一個(gè)元素依次存放s每行的首地址P[i]=s[i];for(i=0;i<N;i++)〃讀入5個(gè)串,存放到s的每一行中g(shù)ets(s[i]);〃以下用選擇法排序fbr(i=0;i<=N-2;i++){k=i;fbi(j=i+lJ<=N-1j-h-)if(sticmp(p[j],p[k])>O)k=j;if(k!=i){char*t;t=p[i];p[i]=pK;P[k]=t;})puts("降序排列后:)fbr(i=0;i<N;i-H-)puts(p[i]);strcat(sticat(h,p[O]),p[N-1]);pnntf("合并后的串:}4.任意讀入兩個(gè)正整數(shù),調(diào)用子函數(shù)求得二者的最大公約數(shù)和最小公倍數(shù)。#include<stdio.h>main。{intx,y,gys,gbs;voidGYS_GBS(inta,hitb,int*gy,int*gb);doscanf(”%d%d”,&x,&y);while(x<=0||y<=0);GYS_GBS(x,y,&gys,&gbs);pnntf("%d和%(1的最大公約數(shù)是%"最小公倍數(shù)是%小\11”區(qū)丫記丫$35);}voidGYS_GBS(iiita,intb,int*gy,mt*gb){intc,r;c=a*b;r=a%b;while(r!=0){a=b;b=r;r=a%b;}*gy=b;字gb=c/b;}二、編程題任意讀入一個(gè)大偶數(shù)(24),可以拆分成兩個(gè)素?cái)?shù)之和。編程按“x=sl+s2”的格式輸出所有的素?cái)?shù)對(duì)?!疽螅核?cái)?shù)判斷由子函數(shù)完成。并且結(jié)果不能出現(xiàn)兩個(gè)相同的素?cái)?shù)對(duì),例如:輸入28,則輸出結(jié)果為:28=5+2328=11+17若輸出結(jié)果中還有“28=17+11”就重復(fù)了果#include<stdio.h>intPDSS(iiita){mtflag=l;lonek;fbr(k=2;k<a/2;k++)if(a%k==O){

溫馨提示

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