版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
玄以大挙基于譚浩強(qiáng)《C程序設(shè)計(jì)上機(jī)實(shí)驗(yàn)指
導(dǎo)》(實(shí)驗(yàn)二、五、七、九、十二)
實(shí)驗(yàn)操作與運(yùn)行檢驗(yàn)學(xué)術(shù)型科研分
析與論證2016年12月年級:2015級專業(yè):自動化專業(yè)班級:04班姓名:肖樂樂教學(xué)號:52150429指導(dǎo)教師:溫泉實(shí)驗(yàn)使用軟件:基于吉林大學(xué)南嶺校區(qū)第一教學(xué)樓溫泉老師推薦軟件,由于VisualC++6.0所占內(nèi)存較大,同時(shí)由于TurboC3.0又比較復(fù)雜,該軟件安裝都是在DOS環(huán)境下完成的,顯得比較麻煩,因此,鑒于老師推薦,選擇內(nèi)存較小,操作性較好,且可以反復(fù)提示的編譯器,如下圖:^00I理晶 ?業(yè)Aus/g[”*“ vvタ餌?◎晚報(bào) 孰以WW/C爐。図、陛駆由誣V字? 同父尋"i亞爺安—ー券:徐龕儂エ使用我的電腦上的MinGWDeveloper即可,因此,該軟件可以適用于初步學(xué)習(xí)者。C程序?qū)嶒?yàn)的意義所在:鑒于自動化專業(yè)偏向于控制與電氣,因此學(xué)習(xí)C語言必不可少,吉林大學(xué)南嶺校區(qū)自動化專業(yè)與測控專業(yè)是僅有的需要紙質(zhì)版考試的2個(gè)專業(yè),顯得C語言的極端重要性,而學(xué)習(xí)C語言必須以實(shí)驗(yàn)為核心,C語言程序設(shè)計(jì)實(shí)驗(yàn)是面向計(jì)算機(jī)相關(guān)專業(yè)學(xué)生開設(shè)的《C語言程序設(shè)計(jì)》實(shí)驗(yàn)課,是配合《C語言程序設(shè)計(jì)》課程而開設(shè)的實(shí)驗(yàn)性教育環(huán)節(jié)。C語言課程的主要任務(wù)是讓我們充分掌握C語言程序設(shè)計(jì)的基本概念、各種數(shù)據(jù)類型的使用技巧、模塊化程序設(shè)計(jì)的方法等。C語言程序設(shè)計(jì)實(shí)驗(yàn)對課程中所涉及的知識進(jìn)行驗(yàn)證,同時(shí)也是我們很好地學(xué)習(xí)課程的輔助手段。通過c語言上機(jī)實(shí)驗(yàn)的教學(xué)活動,使我們真正全面掌握c語言的基礎(chǔ)知識,培養(yǎng)和提高我們的程序開發(fā)能力。實(shí)驗(yàn)預(yù)期達(dá)到目的:.基于多次輸入程序,不斷調(diào)試,完成若干準(zhǔn)確無誤的精準(zhǔn)程序。.發(fā)現(xiàn)程序運(yùn)行問題,同時(shí)ーー解決,從而學(xué)到新東西,新知識。.進(jìn)ー步熟悉C程序的編輯、編譯、連接、運(yùn)行的過程。.參加2017年吉林省藍(lán)橋杯軟件大賽,計(jì)算機(jī)設(shè)計(jì)大賽等省級、國家級學(xué)科學(xué)術(shù)競賽打好基礎(chǔ),進(jìn)ー步熟悉C,因?yàn)镃是競賽的基礎(chǔ)。實(shí)驗(yàn)2數(shù)據(jù)類型、運(yùn)算符和表達(dá)式.實(shí)驗(yàn)?zāi)康蘑耪莆誄語言數(shù)據(jù)類型,熟悉如何定義一個(gè)整型、字符型和實(shí)型的變量,以及對它們賦值的方法。⑵掌握運(yùn)行一個(gè)C程序的步驟,理解并學(xué)會C程序的編輯、編譯、鏈接方法。⑶掌握不同的類型數(shù)據(jù)之間賦值的規(guī)律。⑷學(xué)會使用C的有關(guān)算術(shù)運(yùn)算符,以及包含這些運(yùn)算符的表達(dá)式,特別是自加(++)和自減(-)運(yùn)算符的使用。(5)進(jìn)ー步熟悉C程序的編輯、編譯、連接和運(yùn)行的過程。⑹掌握數(shù)據(jù)的輸入輸出方法,能正確使用各種格式控制符。.實(shí)驗(yàn)內(nèi)容和步驟(1)輸入并運(yùn)行下面的程序:基于編譯器輸入下面程序:#include<stdio.h>voidmain(){charcl,c2;cl=,a;c2='b';printf(*%c%c\n*,cl,c2);}截屏如下:運(yùn)行結(jié)果截屏可得:6SP6\Debug\Cpp1.exeabPressanykeytocontinue1.1運(yùn)行此程序1.2在上面printf語句的下面再增加一個(gè)printf語句:printf("%d%d\n,/,cl,c2);再運(yùn)行,并分析結(jié)果。
#include<stdio_h>voidmain{charcl,cl=*a'ic2="b';print"f(**%c%c\n“,c1,c2);printi=(w%d%d\n",c1,c2);結(jié)果運(yùn)行如下:スb"98^ressanykeytocontinue我通過查表得知:'a,的ASCII碼為97,'b'的ASCII碼是98,%d代表的是整數(shù)輸出,ー個(gè)字符數(shù)據(jù)既可以以字符形式輸出,也可以以整數(shù)形式輸出。以字符形式輸出時(shí),需要先將存儲單元中的ASCH碼轉(zhuǎn)換成相應(yīng)的字符,然后輸出。以整數(shù)形式輸出時(shí),直接將ASCII碼作為整數(shù)輸出。因此,程序運(yùn)行第8行輸出2個(gè)整數(shù),分別是97 98〇1-3將第3行改為intcl,c2;再使之運(yùn)行,并分觀察結(jié)果。#include<stdio.h>voidmain(){intcl,c2;c2='b';printf("%c%c\n",cl,c2);printf(M%d%d\n**,cl,c2);)結(jié)果如下:abg798Pressanykeytocontinue1.4再將第4ヽ5行改為:c2=b;/?不用單撇號?/再使之運(yùn)行,分析其運(yùn)行結(jié)果。#include<stdio.h>voidmain(){intcl,c2;cl=a;c2=b;printf("%c%c\n",cl,c2);printf("%d%d\n",cl,c2);)結(jié)果如下:?5ClassV...!ヨFHeView|[(Sp - Configuration:Cpp1Win32Debug Conpiling...Cppl.c叩D:\VC6SP6\Cpp1.cpp(^):errorC2N5:’ザ:undecUredidentifierO:\VC6SP6\Cpp1.cpp(5):errorC2B6S:'ザ:undeclaredidentifierErrorexecutingcl.exe.Cpp1.exe-2error(s),IMrning(s)レ]Build/D?bu(スFindinFilet】スFindinFilet2スRerultt、池D?bu((in(<Ready無法完成編譯,因?yàn)閏l=a;c2=b;這樣的調(diào)用顯然是違規(guī)的,因此編譯器無法完成正常編譯。1.5再將第4、5行改為:cl=a;c2="b〃!/?不用單撇號?/*j#include<stdio.h>voidmain(){charcl,c2;cl="a";c2="bM;printf("%c%c\n",cl,c2);printf(M%d%d\n",cl,c2);)結(jié)果如下:?式lassV...I皂FiluView|レ(2dll>:\UC6SP6\Cpp1.cpp(5):errorC2440:":cannotconvertfron*char[2]*to-'char*Thisconversionrequiresareinterpret_cast,aC-stylecastorfunction-stylecastErrorexecutingcl.exe.Cpp1.exe-2error(s),0wdrning(s)ヽBuild/'Debug1XFindinFiles丄スFindinFiles2ヽResultsヽSQLDebugging<顯然還是上面的問題,啟示我們學(xué)習(xí)C,正確的格式顯得格外關(guān)鍵。1.6再將第4、5行改為:cl=300;c2=400;/?用大于255的整數(shù)?/Iglobalmembers?main"ヌ▼歩倒!111通d#include<stdio.h>voidmain(){charcl,c2;cl=300;c2=400;printf(M%c%c\n,cl?c2);printf(M5Ud%d\n">cl,c2);)結(jié)果如下:[1IE9"D:\VC6SP6\Debug\Cpp1.exeI?-112[Pressanykeytocontinue出現(xiàn)了奇怪的現(xiàn)象,發(fā)現(xiàn)運(yùn)行結(jié)果是44,-112,原來經(jīng)過查閱資料得知,大于255就會造成“溢出”現(xiàn)象,溢出現(xiàn)象網(wǎng)上有詳盡的介紹,這里不再累贅,說明c語言學(xué)科內(nèi)涵豐富,掌握的カ度還需要加強(qiáng),正如溫泉老師所說“掌握C語言是ー個(gè)不斷學(xué)習(xí),不斷豐富的過程,只有不斷學(xué)習(xí),不斷的去試,不斷的錯,不斷的改,才能真正學(xué)會C語言!”(2)輸入并運(yùn)行教材第三章習(xí)題3.6給出的程序:#include<stdio.h>voidmain(){charcl=,a,c2-b*,c3='c',c4=>\10T,c5=,\116,;printf(*a%cb%c\tc%c\tabc\n*,cl,c2,c3);printf(*\t\b%c%c*,c4,c5);剛開始我在a%cb%c之間沒有分開,即lobalmembers|.main刃盤▼國讎あ!國四#include<stdio.h>voidmain(){charcl=,a',c2=,b,,c3='c",c4='\101,,c5='\116,;printf("a%cb%c\tc%c\tabc\nH,cl,c2,c3);printf("\t\b%c%c",c4,c5);}程序運(yùn)行結(jié)果如下所示:?ラ?D:\VC6SP6\Debug\Cpp1.exe"aabb cc abcANPressanykeytocontinue接著發(fā)現(xiàn)課本后面的程序?qū)嶋H是a%cb枇分開的,即a枇b%c,程序如下:llobalmembersv|.main:!旦▼國讎!招!B!四#include<stdio.h>voidmain(){charcl='a',c2='b',c3='c*,c4='\101しc5='\116]printf("a%cb%c\tc%c\tabc\n",cl,c2,c3);printf("\t\b%c%c",c4,c5);)這次程序運(yùn)行結(jié)果如下:aabb ccabc|ANPressanykeytocontinue雖然只是aabb與aa,bb分開這一點(diǎn)不同,但是我認(rèn)為科學(xué)研究務(wù)必要嚴(yán)謹(jǐn)認(rèn)真,既然存在問題,就必須解決問題!基于此,進(jìn)ー步優(yōu)化程序,同時(shí)對程序進(jìn)行解釋與說明,這樣可以使程序更加普通平實(shí),更加易于理解,程序注釋優(yōu)化如下:#includeくstdio.h〉/?文件包含,輸入輸出庫函數(shù)?/main。/?主函數(shù),程序執(zhí)行入口?/{charcl=,a,c2='b',c3='c',c4='\101',c5='\116';/?定義字符cl,c2,c3,c4,c5*/printf(*a%cb%c\tc%c\tabc\n*,cl,c2,c3);/*輸出字符cl,cl,c3*/printf(*\t\b%c%c”,c4,c5);/?輸出轉(zhuǎn)義字符c4,c5*/)截屏如下:#include<stdio.h>/?文件包含,卷入輸出毘函數(shù)?/main。/?主函數(shù),程序執(zhí)行入口”/(charcl='a',c2='b',c3プピ,c4メ、101,,c5プゝ116';/"定義字符cl,c2,c3,c4,c5*/printf("a%cb9k\tdk\ttbc\natcl,c2>c3)printf("\t\bXc紀(jì)-メ4メ5);/*輸出轉(zhuǎn)義字符°4/5ツ)這樣直接將V0id去掉,同時(shí)將程序?qū)R,顯得整潔。程序運(yùn)行結(jié)果如下:B3'D:\VC6SP6\Debuq\Cpp1.exe'aabbcc abcANPressanykeytocontinue結(jié)果沒有發(fā)生變化,因此該優(yōu)化顯得較為合理。(3)輸入并運(yùn)行下面的程序#include<stdio.h>voidmain(){inta,b;unsignedc,d;longe,f;a=100;b=-100;e=50000;f=32767;c=a;d=b;printf(*%d,%d\n”,a,b);printf(*%u,%u\n”,a,b);printf(*%u,%u\n*,c,d);c=a=e;d=b=f;printf("%d,%d\n”,a,b);printf(*%u,%u\n”,c,d);)程序編寫如下:llobalmembers“?main叢▼鬱圈!到刈#include<stdio.h>voidmain(){intb;unsignedc’d;longe,f;a=100jb=-100?e=50000;f=32767;c=a;d=b;printf(”%d,%d\n\a,b);printf("%u,%u\n",a,b);printf(M%uJ%u\nllJc>d);c=a=e;d=b=f;printf("%d,%d\nn,a,b);printf(M%u,%u\nMJc,d);」<■
程序運(yùn)行如下:S3'D:\VC6SP6\Debug\Cpp1.exeB100,-100100,4294967196100,429496719650000,3276750000,32767Dressanykeytocontinue由于實(shí)驗(yàn)要求改變程序中各變量的數(shù)值,例如:a=65580,b=-40000,e=65535,f=65580〇?就也??就也?ilobalmember;J?main#include<stdio.h>voidmain()(inta,b;unsignedc,d;longe,f;a=65580;b=-4000e;e=65535;f=65580;c=a;d=b;printf("%d,%d\n",a,b);printf(nXu>%u\n"Ja>b);printf("%u,%u\n",c,d);c=a=e;d=b=f;printf("%d,Xd\n",a,b);printf("Xu,Xu\n-,c,d);小.程序運(yùn)行如下:S3"D:\VC6SP6\Debug\Cpp1.exe'65580,-4000065580,4294927296165580,4294927296165535,6558065535,65580iPressanykeytocontinue(4)輸入習(xí)題3.10〇即:#include<stdio.h>voidmain(){inti,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d\n"/i,j,m,n);}運(yùn)行程序,注意i,j,m,n各變量的值。分別做以下改動并運(yùn)行:#include<stdio.h>voidmain(){inti=8;j=10;m=++i)n=j++;printf("%d,%d,%d,%d\n",i,)程序運(yùn)行結(jié)果如下:£3'D:\VC6SP6\Debug\Cpp1.exe'9,11,9,10Pressanykeytocontinue將第6、7行改為:m=i++;n=++j;再運(yùn)行。程序如下:#include<stdio.h>voidmain(){inti,i=8;j=l。;m=i++;n=++j;printf("Xd,Xd,Xd,%d\n",i,j,?,n);}運(yùn)行結(jié)果如下:!■DVC6SP6\Debuq\Cpp1.exe'p,11,8,11Pressanykeytocontinue程序改為:#include<stdio.h>voidmain(){inti,j;i=8;j=10;printf("%d,%d\n"j++,j++);}程序如下:#include<stdio.h>voidmain()(inti,j;i=8;3=10;printf("Xd,Xd\n*,i++,j++);}程序運(yùn)行結(jié)果如下:5SP6\Debug\Cpp1.exe8,10Pressanykeytocontinue在4.3的基礎(chǔ)上,將printf語句改為printf("%d,%d\n",i++,++j);程序如下:llobalmembersv,main:豆▼國讎メ1虱e#include<stdio.h>voidmain()(inti,j;i=8;3=10;printf("Xd,Xd\n",i++,++j);}結(jié)果如下:5再將f語句改為printf("%d,%cl\n",ij,i++,j++);程序如下lobalmembersprintf(*%d程序運(yùn)行結(jié)果如下6程序改為#include<stdio.h>{inti,j,m=0,n=0;5再將f語句改為printf("%d,%cl\n",ij,i++,j++);程序如下lobalmembersprintf(*%d程序運(yùn)行結(jié)果如下6程序改為#include<stdio.h>{inti,j,m=0,n=0;#include<stdiovoidnain(){inti,j;continuecontinuej=io;m+=i++;n-=--j;printf("i=%cl,j=%d,m=%cl,n=%d\n"?ij,m,n);}程序如下:llobalmembersv|main亙”多管甚!理円#include<stdio.h>voidmain(){inti=8;m*=i++;n-=--j;printf(wi=%dJ=%d,m=Xd,n=Xd\nR>iJ>m>n);)程序運(yùn)行結(jié)果如下:圖["D:\VC6SP6\Debug\Cpp1.exe"i=9,j=9,m=8,n=-9Dressanykeytocontinue(5)按照習(xí)題3.7的要求編好程序。程序如下:#include<stdio.h>voidmain(){charcl=lCl,c2=,hl,c3=li,,c4=,n',c5=,a';cl+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf("passwordis%c%c%c%c%c\n",cl;c2,c3,c4,c5);}程序如下:balmemberミ.main D大▼盤倒メ1到。#include<stdio.h>voidmain(){charcl='C',c2='h'メ3=?丁,c4二'n',c5='a';,cl+=4;c2+=4;c3+=4;c4+=4;c5+=4;printf("passwordis%c%c%c%c%c\n",cl,c2>c3,c41c5);}程序運(yùn)行如下:£3"D:\VC6SP6\Debug\Cpp1.exepasswordisGlinrePressanykeytocontinue實(shí)驗(yàn)5 循環(huán)控制.實(shí)驗(yàn)?zāi)康?1)熟悉用while語句、do-wile語句和for語句實(shí)現(xiàn)循環(huán)的方法。(2)掌握在程序設(shè)計(jì)中用循環(huán)方法實(shí)現(xiàn)的算法。(3)掌握在程序設(shè)計(jì)中基本的循環(huán)方法,比如窮舉,迭代等。(4)進(jìn)ー步學(xué)習(xí)并理解調(diào)試程序。.實(shí)驗(yàn)內(nèi)容編程序并上機(jī)調(diào)試運(yùn)行。(1)輸入2個(gè)正整數(shù)n,m,求它們的最小公倍數(shù)與最大公約數(shù)。分析思路:可以采用輾轉(zhuǎn)相除法解決程序如下:#include<stdio.h>voidmain(){intp,r,n,m,temp;printf("請輸入兩個(gè)正整數(shù):”);scanf("%d,%d,",&n,&m);if(n<m)n=m;m=temp;)p=n*m;while(m!=0){r=n%m;n=m;m=r;)printf("它們的最大公約數(shù)為:%d\n",n);printf("它們的最小公倍數(shù)為:%d\n*,p/n);)程序運(yùn)行如下:globalmembers▼?main ▼見▼多讎\Si#include<stdio.h>voidmain()(intp,n,m,temp;printf("請輸入兩個(gè)正整數(shù):");scanf(,,%dJ%d/',&nJ&m);if(n<m){temp=n;n=m;m=temp;}p=n*m;while(m!=0){r=n%m;n=m;m=r;)printf("它們的最大公約數(shù)為:%d\n",n);printf("它們的最小公倍數(shù)為:%d\n*\p/n);程序運(yùn)行結(jié)果如下:K3'D:\VC6SP6\Debug\Cpp1,exe度輛A酉個(gè)正整製ン12,8闘噬暴ネ合憲ゆ:4它イ]的最小公倍數(shù)為:24-1ressanykeytocontinue但是我認(rèn)為教材給出的程序過于深奧,而且對于輾轉(zhuǎn)相除法,我們對這種方法顯然缺乏了解,因此我改進(jìn)了一下程序,基于教材程序之上,改正的較為通俗理解,但是其本質(zhì)還是ー樣的。程序改進(jìn)如下:#includeくstdio.h>/?文件包含輸入輸出庫函數(shù)?/voidmain。/?主函數(shù),程序執(zhí)行的入口?/{inta,b,numl,num2,temp;/?定義變量?/printf(*pleaseinputtwonumbers:\n);scanf("%d,%d,”,&numl,&num2);/?獲取numl與num2的值?/if(numl)/?判斷numl是否0*/{temp=numl;/?交換num!與num2*/numl=num2;num2=temp;)a=numl;b=num2;/?分別為a,b賦值?/while(b!=O)/?利用輾轉(zhuǎn)法,直到b為〇為止?/temp=a%b;/*a對b求余?/a=b;/?將b的值賦給a*/b=temp;)printfC'gongyueshu:%d\n”,a);/?輸出最大公約數(shù)?/printf(^goingbeishu:%d\n”,numl*num2/a);/?輸出最小公倍數(shù)?/)程序如下:lobalmembersy|?main川皂▼8圜!E!起#include〈stdio.h〉/?文件包含輸入輸出庫函數(shù)?/voidmain。/?主函數(shù),程序執(zhí)行的入口?/{inta,b,numl,num2,temp;/*定義變量?/printf("pleaseinputtwonumbers:\nM);scanf("%d>%d>”>&numlj&num2);/*獲取numl與num2的值?/if(numl)/*判斷numl是否0*/{temp=numl;/?交換numl與num2*/numl=num2;num2=temp;}a二numl;b二num2;/*分別為a?b量值*/while(b!=0)/?利用輾轉(zhuǎn)法,直到b為0為止?/(temp=a%b;/*a對b求余?/a=b;/*將b的值賦給a*/b=temp;printf("gongyueshu:%d\n”,a);/*輸出最大公約數(shù)?/printf("goingbeishu:%d\n"?numl*num2/a);/?輸出最小公倍數(shù)?/}程序運(yùn)行結(jié)果如下:S3"D:\VC6SP6\Debug\Cpp1.exe-pleaseinputtwonumbers:12,8gongyueshu:4goingbeishu:24Pressanykeytocontinue(2)輸入一行字符,分別統(tǒng)計(jì)出其中的英文字母、空格、數(shù)字和其他字符的個(gè)數(shù)。#include<stdio.h>voidmain()(charc;intletters=0,space=0,digit=0,other=0;printf("請輸入一行字符:、n");while((c=getchar())!='\n')(if(c>='a'&&c<='z'11c>='A'&&c<='Z')letters++;elseif(c==")space++;elseif(c>='0'&&c<='91)digit++;elseother++;}print"I字母數(shù):%d\n空格數(shù):%d\n數(shù)字?jǐn)?shù):%d\n其他字符數(shù):%d\n",letters,space,digit,other);}這是按照譚浩強(qiáng)教材詳解得出的答案,但是程序運(yùn)行結(jié)果如下:lobalmember:.main "去,段窗!§1も#indude<stdio.h>voidmain()(charc;intIetters=0,space=0,digit=0,other=0;printf("請輸入一行字符:\n");while((c=getchar())I=*\n')(if(O='a'&&c<='z'||c>='A'&&c<='Z')letters++;elseif(c=='')space++;elseif(c>='0"&&c<='9,)digit++;elseother”;)printf("字母數(shù):%d\n空格數(shù):%d\n數(shù)字?jǐn)?shù):%d\n其他字符數(shù):%d\n",letters,space,digit,other);)結(jié)果如下:■sClassV...1uFileViewJII<F Configuration:Cppl-Win32Debug Compiling...Cpp1.cppD:\UC6SP6\Cpp1.cpp(11):errorC2137:emptycharacterconstantErrorexecutingcl.exe.Cpp1.exe-1error(s)f0warning(s)[TT\Build/DebugゝFindinFiles1ヽFindinFiles2,ヽResults'SQLDebugging1<顯然教材解答有問題,基于此,求教吉大南區(qū)計(jì)算機(jī)學(xué)院的同學(xué)最終解決了該問題,必須在:elseif(c==")中添加?xùn)|西,這里不妨添加0,即:elseif(c=='0')o接著運(yùn)行程序:globalmembersjJ*mainし區(qū)??野ン!鼠も#include<stdio.h>voidmain()(charc;intIetters=0,space=0,digit=0lother=0;printf(“請輸入一行字原"11);while((c=getchar())!=*\n*){if(cx'a'&8?='z'||cX'A'&&c<='Z')letters**;elseif(c==*0,)space”;elseif(O=,0'&&c<=,9,)digit**;elseother**;)printf("字母數(shù):%d\n空格數(shù):%d\n數(shù)字?jǐn)?shù):%d\n其他字符數(shù):%d\n\lettersバpacefigit,other);}程序輸出結(jié)果如下:
,青輸入ー仃于符:,青輸入ー仃于符:Byteacher'saddressis開123BeijingRord,Shanghaiz,.38其穆貓數(shù):13Pressanykeytocontinue(3)用牛頓迭代法求解方程2バー4/+3スー6=0在1.5附近的根。程序如下:#include<stdio.h>#include<math.h>intmain()(doublex0,x1,f,f1;x1=1.5;do(xO=x1;f=2*x0*x0*x0-4*xO*xO+3*xO-6;f1=6*xO*xO-8*xO+3;x1=xO-f/f1;}while(fabs(xO-x1)>=1e-5);printf("Therootofequationis%5.2f\n",x1);/*Therootofequationis表示方程的根?/return0;)globalmember;main 丫ヌ?圖酋!王e#indude<stdio.h>#indude<Rath.h>intmain()(doublex0,xl,f,fl;xl:1.5;do(X0:xl;f=2?x0?xe?xe-4?X0?X0+3?x0-6;fl=6?x0*x0-8?x0+3;xl=x0-f/fl;}while(fabs(x0-xl)>=le-5);printf("TherootofequationisX5.2f\n",xl);/*Therootofequationis表示方程的根?/return0;結(jié)果運(yùn)行如下:S1-D:\VC6SP6\Debug\Cpp1.exe"Therootofequationis2.00Pressanykeytocontinue(4)猴子吃桃問題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,然后又多吃了一個(gè)。第二天早上又將剩下的桃子吃掉一半,又多吃了ー個(gè),以后每天早上都吃了前一天剩下的一半零一個(gè)。到第10天早上想再吃時(shí),就只剩一個(gè)桃子了。求第一天共摘多少個(gè)桃子?程序如下:ttinclude<stdio.h>intmain(void)inti;intsum=1;for(i=1;iく=10;i++){printf(*the%02dthdayeat%5dpeaches!\n*,i,sum);sum=(sum+1)*2;}return0;)即:jlobalmembersy||main▼穆窗!!!也#include<stdio.h>intmain(void)(inti;intsum=1;for(i=1;i<=10;i++){printf("the%02dthdayeat%5dpeaches!\n",i,sum);sum=(sum+1)*2;)return0;結(jié)果如下:E"D:\VC6SP6\Debug\Cpp1.exe"the01thdayeat1peaches!the02thdayeat4peaches!the03thdayeat10peaches!the04thdayeat22peaches!the05thdayeat46peaches!the06thdayeat94peaches!the07thdayeat190peaches!the08thdayeat382peaches!the09thdayeat766peaches!the10thdayeat1534peaches!Pressanykeytocontinue但是猴子吃桃問題解法比較多,經(jīng)過查閱資料,得知:#include<stdio.h>intmain()Iinti,s;S=1;for(i=2;iく=10;i++)s=s*2+2;printf("原來采摘的桃子數(shù)為9^'ぺ,s);這種解法較為通俗易懂,因此,該方法比較值得學(xué)習(xí)。程序如下:#include<stdio.h>intmain(){inti,s;s=l;for(i=2;i<=10;i++)(s=s*2+2;)printf("原來采摘的桃子數(shù)為%d\n,s);)結(jié)果如下:E3,D:\VC6SP6\Debug\Cpp1.exe'原來采摘的桃子數(shù)為153?Pressanykeytocontinue當(dāng)然還有其他的方法,我閱讀了不少關(guān)于C程序設(shè)計(jì)的課外讀物,發(fā)現(xiàn)以下程序,也值得借鑒:ttinclude"stdio.h*intfun(int);main()intcount;count=fun⑴;printf(*count=%d\n*,count);intfun(intday)if(day=10)return1;elsereturn(fun(day+1)+1)*2;)這個(gè)程序最獨(dú)特的地方在于使用遞歸的方法,顯得更加高明。程序如下:globalmemberss2J.funT區(qū)▼多餾 ,國I型#includeRstdio.h"intfun(int);main(){intcount;count=fun(l);p「intf("count=%d\n",count);)intfun(intday)(if(day==10)return1;elsereturn(fun(day+l)+l)*2;}基于此,程序運(yùn)行結(jié)果如下:IS3"D:\VC6SP6\Debug\Cpp1.exe"kount=1534Pressanykeytocontinue程序正確。實(shí)驗(yàn)7函數(shù).實(shí)驗(yàn)?zāi)康?1)掌握定義函數(shù)的方法;(2)掌握函數(shù)實(shí)參與形參的對應(yīng)關(guān)系,以及“值傳遞”的方式;(3)掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用的方法:(4)掌握全局變量和局部變量、動態(tài)變量、靜態(tài)變量的概念和使用方法;(5)學(xué)習(xí)對多種文件的程序的編譯和運(yùn)行。(6)學(xué)會利用函數(shù)的相關(guān)概念解決問題。(7)學(xué)會使用函數(shù)的方法設(shè)計(jì)程序。.實(shí)驗(yàn)內(nèi)容(1)寫一個(gè)判別素?cái)?shù)的函數(shù),在主函數(shù)輸入ー個(gè)整數(shù),輸出是否素?cái)?shù)的信息。程序如下;#include<stdio.h>intis_primer(intn)//;;{inti;//if(n<2)return0;//for(i=2;i<n;i++){//if(n%i=0)return0;//)//return1;//)intmain()(intnum;while(scanf("%d”,&num)!=EOF)(if(is_primer(num))puts("YES");elseputs("NO");)return0;)程序運(yùn)行如下:#include<stdio.h>intis_primer(intn)//;;(inti;//if(n<2)return0;//for(i=2;i<n;i++){〃if(nXi==0)return0;//)//return1;//)intmain()(intnum;while(scanf("%d",&num)!=EOF){if(is_primer(num))puts(-YES-);elseputs("NO");}return0;程序結(jié)果如下:B?D:\VC6SP6\Debug\Cpp1.exe"17YES譚浩強(qiáng)老師的教材里給出以下程序:ttinclude<stdio.h>intmain(){intprime(int);intn;printf(*inputaninteger:*);scanf(*%d*,&n);if(prime(n))printf(*%disaprime.\n*,n);elseprintf(*%disnotaprime.\n*,n);return0;}intprime(intn){intflag=l,i;for(i=2;i<n/2&&flag==l;i++)if(n%i==0)flag=0;return(flag);}程序如下:二豆▼?倒メ!イ起IglobalmembersvIprime二豆▼?倒メ!イ起intn;printf("inputaninteger:");scanf("%d",&n);if(prime(n))printf("%disaprime.\n",n);elseprintf("%disnotaprime.\n",n);return0;)intprime(intn){intflag=l,i;for(i=2;i<n/2&&flag==l;i++)if(n%i==0)flag=0;return(flag);)程序運(yùn)行結(jié)果如下:E3'D:\VC6SP6\Debug\Cpp1.exe,Inputaninteger:1717isaprime.3ressanykeytocontinueV'D:\VC6SP6\Debug\Cpp1.exe'inputaninteger:2525isnotaprime.Pressanykeytocontinue(2)用ー個(gè)函數(shù)來實(shí)現(xiàn)將一行字符串中最長的單詞輸出。此行字符串從主函數(shù)傳遞給該函數(shù)。程序如下:#include<stdio.h>#include<string.h>intmain(){intalphabetic(char);intlongest(charロ);inti;charline[100];printf(*inputoneline:\n*);gets(line);printf(*Thelongestwordis:");for(i=longest(line);alphabetic(line[i]);i++)printf('%c”,line[i]);printf('\n");return0;)intalphabetic(charc){if((c〉='a&&cく='z*)II(c>='A'&&cく='z'))return(1);elsereturn(0);)intlongest(charstring[]){intlen=0,i,length=0,flag=l,place=0,point;for(i=0;i<=strlen(string);i++)if(alphabetic(string[i]))if(flag){point=i;flag=0;}elselen++;else{flag=l;if(len>=length){length=len;place=point;len=0;)}return(place);程序如下:globalmembers?longest 」貝▼鬱圜士]!國l刊#include<stdio.h>#include<string.h>intmain(){intalphabetic(char);intlongest(char[]);inti;charline[100];printf("inputoneline:\nH);gets(line);printf("Thelongestwordis:");for(i=longest(line);alphabetic(line[i]);i++)printf(wXcH,line[i]);printf("\n");return0;}intalphabetic(charc){if((c>='a'&&c<=,z,)||(c>=,A*&8c<=,z,))return(l);elsereturn(0);}intlongest(charstring[]){intlen=0,i,length=0,flag=l,place=0,point;for(i=0;i<=strlen(string);i++)if(alphabetic(string[i]))if(flag){point=i;flag=0;intlongest(charstring[]){intlen=0,i,length=0Jflag=l,place=0,point;for(i=0;i<=strlen(string);i++)if(alphabetic(string[i]))if(flag){point=i;flag=0;)elselen++;else{flag=l;if(len>=length)(length=len;place=point;len=0;))return(place);)程序運(yùn)行結(jié)果如下:inputoneline:lamastudentThelongestwordis:studentPressanykeytocontinue但是譚浩強(qiáng)老師的教材關(guān)于這個(gè)實(shí)驗(yàn)所用程序,篇幅過多,顯得程序冗雜,這樣就造成所占內(nèi)存較大,因此,尋找ー種所占內(nèi)存較小,而且較為易懂的程序顯得十分必要,因此采用一下程序解決該問題:程序如下:ttinclude<stdio.h>voidfun(char*s){char*p=s;inti,pos,npos,maxlen=0,len;while(*p){npos=p-s;len=0;while((*p!=',')&&(*p!='.')&&(*p!='')&&(*p!='!')&&(*p)){len++;p++;}if(len>maxlen){maxlen=len;pos=npos;}if(*p)p++;}printf("最長的單詞是:〃);for(i=0;i<maxlen;i++)putchar(s[pos+i]);putchar('\n');)intmain(){chars[1024];printf("請輸入ー個(gè)串:gets(s);fun(s);return0;)程序如下:]loba£members[fun義▼専欝!8!也#include<stdio.h>voidfun(char*s){char*p=s;inti,pos,npos,maxlen=while(*p){npos=p-s;len=0;while((*p!=?/)&&(*p!=二?)&&(*p!=,り&&(*p!=T)&&(*p)){len++;p++;)if(len>maxlen){maxlen=len;pos=npos;)if(*p)p++;}_printf("最長的單詞是:");for(i=0;i<maxlen;i++)putchar(s[pos+i]);putchar('\n*)j)intmain(){chars[1024];printf("請輸入ー個(gè)串Z");gets(s);fun(s);return0;)程序運(yùn)行結(jié)果如下:S3'D:\VC6SP6\Debug\Cpp1.exew請輸入一個(gè)里:Iainastudent取k的單詞疋:studentPressanykeytocontinue該結(jié)果毫無疑問十分正確,而且該程序顯得較為整潔。(3)用遞歸法將一個(gè)整數(shù)n轉(zhuǎn)換成字符串。程序如下:ttinclude<stdio.h>intmain(){voidconvert(intn);intnumber;printf(*inputaninteger:");scanf("%d”,&number);printf(*output:");if(number<0){putchar('-');putchar ; /?先輸出ー個(gè)號和空格?/number=-number;)convert(number);printf('\n");return0;voidconvert(intn){inti;if((i=n/10)!=0)convert(i);putchar(n%10+’〇');putchar(32);)程序如下:lobalmemberミconvert豆▼怎齡!圓媽#include<stdio.h>intmain(){voidconvert(intn);intnumber;printf("inputaninteger:");scanf("%d"^Snumber);printf("output:");if(number<0){putchar(*-*);putchar(*1); /?先輸出ー個(gè)"-’號和空格*/number=-number;}convert(number);printf("\n");return0;}voidconvert(intn){inti;if((i=n/10)!=0)convert(i);putchar(n%10+'0');putchar(32);程序運(yùn)行結(jié)果如下:E'D:\VC6SP6\Debug\Cpp1.exe'inputaninteger:2345678output:2345678Pressanykeytocontinue但是還是有其他方法解決該問題的,因此,進(jìn)ー步采取如下程序:#include<stdio.h>intgnn(inte){intj;intlast=l;for(j=0;j<e;j++){last=10*last;)returnlast;)voidfun(longintn,intN)intnext;if(N<l)printf("ヽ”");return;}else{next=n/gnn(N-l);printfnext);fun(n%gnn(N-1),N-1);)}voidmain(){longintn;printf("請輸入所要轉(zhuǎn)換的數(shù)字:“);scanf&n);intN=1;longintk=n/10;for(inti=0;k!=0;i++)(k=k/10;N++;printf(“轉(zhuǎn)換后的輸出為:〃);printf(“ヽ”");fun(n,N);printf("\n");//getchO;程序如下:llobalmember-[.hinリ皂▼0蠹甚!圓河#include<stdio.h>intgnn(inte){intj;intlast=l;for(j=0;j<e;j++){last=10*last;)returnlast;)voidfun(longintn,intN){intnext;if(N<l){printf("\"");return;)else{next=n/gnn(N-l);printf("Xd",next);fun(n%gnn(N-l),N-l);)}voidmain(){longintn;else{next=n/gnn(N-l);printfC'Xd",next);fun(n%gnn(N-l),N-l);)}voidmain()(longintn;printf(“請輸入所要轉(zhuǎn)換的數(shù)字:");scanf(M%d",&n);intN=1;longintk=n/10;for(inti=0;kI=0;i++){k=k/10;N++;)printf("轉(zhuǎn)換后的輸出為:-);printf("\"");fun(n,N);printf("\n");//getch();)結(jié)果如下:$?D:\VC6SP6\Debug\CpPressanykeytocontinue(4)求2個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù),用一個(gè)函數(shù)求最大公約數(shù)。另ー個(gè)函數(shù)根據(jù)求出的最大公約數(shù)求最小公倍數(shù)。程序如下:ttinclude<stdio.h>intmain(){inthcf(int,int);intlcd(int,int,int);intu,v,h,1;scanf("%d,%d",&u,&v);h=hcf(u,v);printf("H.C.F=%d\n”,h);l=lcd(u,v,h);printf("L.C.D=%d\n*,1);return0;)inthcf(intu,intv){intt,r;if(v>u){t=u;u=v;v=t;}while((r=u%v)!=0){u=v;v=r;}return(v);intlcd(intu,intv,inth){return(u*v/h);}程序運(yùn)行如下:#include<stdio.h>intmain(){inthcf(int,int);intlcd(int>int,int);intscanf1"%d,%d\&Uj&v);h=hcf(u,v);printf("H.C.F=%d\n",h);l=lcd(uJv^h);printf("L.C.D=%d\n"Jl);return0;}inthcf(intu,intv){intt,r;if(v>u){t=u;u=v;v=t;}while((r=u%v)!=0){u=v;v=r;}return(v);)intlcd(intu,intv,inth){return(u*v/h);}程序運(yùn)行結(jié)果如下:E?D:\VC6SP6\Debug\Cpp1.exe"24,16H.C.F=8LC.D=48pressanykeytocontinue但是除了課本中介紹的這種方法,還有其他方法:程序如下:#include<stdio.h>intmax,min;voidhcf(inta,intb)(intc;while(b){c=b;b=a%b;a=c;}min=a;)voidled(inta,intb,intc){max=b*c/a;}voidmain()inta,b;scanf("%d%d”,&a,&b);hcf(a,b);led(min,a,b);printf("%d,%d\n”,max,min);)程序運(yùn)行如下:jiuumiiiciiiuc!之「[-iiidiii vIr▼ 浦應(yīng)min=a;}voidlcd(inta,intb,intc){max=b*c/a;}voidmain()(inta,b;scanf(M%d%d",&a,&b);hef(a,b);led(min,a,b);I printf("%d,%d\n",max,min);}程序結(jié)果如下:甲 ベ№r>宀.c\,cci?.?*241648,8Pressanykeytocontinue這體現(xiàn)出學(xué)習(xí)C語言,更應(yīng)該重視C的靈活性,C是ー門特別靈活的語言,我們更多的應(yīng)該進(jìn)行實(shí)驗(yàn)與總結(jié)反思。(5)寫ー個(gè)函數(shù),輸入ー個(gè)十六進(jìn)制數(shù),輸出相應(yīng)的十進(jìn)制數(shù)。#include<stdio.h>ttdefineMAX1000intmain(){inthtoi(charsロ);intc,i,flag,flagl;chart[MAX];i=0;flag=0;flagl=l;printf(*inputaHEXnumber:");while((c=getchar())!='\0'&&i<MAX&&flagl){if(c>=’〇'&&c<='9'IIc>='a'&&c<=*f'||c>='A'&&cく='F'){flag=l;t[i++]=c;}elseif(flag){t[i]=>\0,;printf("decimalnumber%d\n",htoi(t));printf("continueornot?*);c=getchar();if(c='N'IIc='n')flagl=0;else{flag=0;i=0;printf(*\ninputaHEXnumber:*);)}}return0;}inthtoi(charsロ){inti,n;n=0;for(i=0;s[i]!=>\0*;i++){if(s[i]〉='0'&&s[i"='9')n=n*16+s[i]-‘〇';if(s[i]>='a'&&s[i]<=*f*)n=n*16+s[i]-'a+10;if(s[i]>=,A'&&s[i]<=*F*)n=n*16+s[i]-'A'+10;}return(n);程序如下: ! 11JJ ,#include<stdio.h>#defineMAX1000intmain(){inthtoi(charsロ);intc,i,flag,flagl;chart[MAX];i=0;flag=0;flagl=l;printf("inputaHEXnumber:");while((c=getchar())!=*\0'&&i<MAX&&flagl){if(c>='0'&&c<='9,||c>='a'&&c<='f'I|c>=*A'&&c<{flag=l;t[i++]=c;)elseif(flag){t[i]='\0';printf("decimalnumber%d\n",htoi(t));printf("continueornot?");c=getchar();if(c==,N,||c=='n,)flagl=0;else{flag=0;i=0;printf("\ninputaHEXnumber:");)))return0;else{flag=0;i=0;printf(w\ninputaHEXnumber:w);}})return0;)inthtoi(chars[]){inti,n;n=0;for(i=0;s[i]l='\0';i++){if(s[i]>='0'&&s[i]<='9")n=n<16+s[i]-'0';if(s[i]>=,a,&8s[i]<='f')n=n*16+s[i]-'a*+10;if(s[i]>='A'&&s[i]<=*F,)n=n*16+s[i]-'A,+10;)return(n);)程序運(yùn)行結(jié)果如下:■1-D:\VC6SP6\Debug\Cpp1.exeinputaHEXnumber:alliecimalnumber10continueornot?inputaHEXnumber:y10.Iecimalnumber16:ontinueornot?finputaHEXnumber:15iecimalnumber21zontinueornot?實(shí)驗(yàn)9指針.實(shí)驗(yàn)?zāi)康?1)通過實(shí)驗(yàn)進(jìn)ー步掌握指針的概念,會定義和使用指針變量;(2)能正確使用數(shù)組的指針和指向數(shù)組的指針變量;(3)能正確使用字符串的指針和指向字符串的指針變量;(4)了解指向指針的指針的概念及其使用方法。(5)掌握ー維數(shù)組的定義,賦值和輸入輸出的方法。(6)掌握二維數(shù)組有關(guān)的定義,賦值和輸入輸出的方法。(7)掌握與數(shù)組有關(guān)的非數(shù)值計(jì)算方法。.實(shí)驗(yàn)內(nèi)容編寫程序并上機(jī)調(diào)試運(yùn)行程序(均要求使用指針處理)(1)輸入3個(gè)整數(shù),按從小到大的順序輸出,然后程序改為:輸入3個(gè)字符串,按從小到大的順序輸出。輸入三個(gè)整數(shù),從小到大的程序是:#include<stdio.h>intmain(){voidswap(int*pl,int*p2);intnl,n2,n3;int*pl,*p2,*p3;printf(*inputthreeintegernl,n2,n3:*);scanf("%d,%d,%d*?&nl,&n2,&n3);pl=&nl;p2=&n2;p3=&n3;if(nl>n2)swap(pl,p2);if(nl>n3)swap(pl,p3);if(n2>n3)swap(p2,p3);printf(*Now,theorderis:%d,%d,%d\n*,nl,n2,n3);return0;}voidswap(int*pl,int*p2){intp;p=*pl;*pl=*p2;*p2=p;}程序如下:#include<stdio.h>intmain(){voidswap(int*pl,int*p2);intnl,n2,n3;int*pl,*p2,*p3;printf("inputthreeintegernl,n2,n3:scanf("%dJ%d,%d",&nl,gn2,&n3);pl=&nl;p2=&n2;p3=&n3;if(nl>n2)swap(pl/p2);if(nl>n3)swap(pl,p3);if(n2>n3)swap(p2Jp3);printf("Now,theorderis:%d,%d,%d\n",nl,n2,n3);return0;}voidswap(int*pl,int*p2){intp;p=*pl;*pl=*p2;*p2=p;程序運(yùn)行結(jié)果如下:E*D:\VC6SP6\[>eb<jg\Cpp1.exe'Inputthreeintegernl,n2>n3:34,21,25Vow,theorderis:21,25,343ressanykeytocontinue輸入三個(gè)字符串,按從小到大的順序輸出。#include<stdio.h>#include<string.h>intmain(){voidswap(char*,char*);charstrl[20],str2[20],str3[20];printf(*inputthreeline:\n*);gets(strl);gets(str2);gets(str3);if(strcmp(strl,str2)>0)swap(strl,str2);if(strcmp(strl,str3)>0)swap(strl,str3);if(strcmp(str2,str3)>0)swap(str2,str3);printf(*Now,theorderis:\n");printf("%s\n%s\n%s\n”,strl,str2,str3);return0;}voidswap(char*pl,char*p2){charp[20];strcpy(p,pl);strcpy(pl,p2);strcpy(p2,p);#include<stdio.h>#include<string.h>intmain(){voidswap(char*,char*);charstrl[20],str2[20],str3[20];printf(Minputthreeline:\n");gets(strl);gets(str2);gets(str3);if(strcmp(strl,str2)>0)swap(strl>str2);if(strcmp(strl,str3)>0)swap(strl,str3);if(strcmp(str2,str3)>0)swap(str2,str3);printf(?'Now,theorderis:\nH);printf(M%s\n%s\n%s\nw,strl,str2,str3);return0;voidswap(char*pl,char*p2){charp[20];strcpy(p,pl);strcpy(pl,p2);strcpy(p2,p);)程序運(yùn)行如下:A.*D:\VC6SP6\Debu9\Cpp1.exepnputthreeline:Ilstudyveryhardlanguageisveryinterestingfaeisaprofessfor(2)將一個(gè)3行3列的矩陣轉(zhuǎn)置,用ー函數(shù)實(shí)現(xiàn)之。程序如下:#include<stdio.h>intmain(){voidmove(int*pointer);inta[3][3],*p,i;printf(*inputmatrix:\n*);for(i=0;i<3;i++)scanf("%d%d%d*,&a[i][0],&a[i][1],&a[i][2]);p=&a[0][0];move(p);printf("Now,matrix:\n");for(i=0;i<3;i++)printf("%d%d%d\n*,a[i][0],a[i][1],a[i][2]);return0;)voidmove(int*pointer){inti,j,t;for(i=0;i<3;i++)for(j=i;jく3;j++){t=*(pointer+3*i+j);(pointer+3*i+j)=*(pointer+3*j+i);(pointer+3*j+i)=t;程序如下:#include<stdio.h>intmain(){voidmove(int*pointer);inta[3][3],*p,i;printf("inputmatrix:\n");for(i=0;i<3;i++)scanf("%d%d%d",&a[i][0],&a[i][l],&a[i][2]);p=&a[0][0];move(p);printf("Now,matrix:\n");for(i=0;i<3;i++)printf("%d%d%d\n",a[i][0],a[i][l],a[i][2]);return0;}voidmove(int?pointer){inti,j,t;for(i=0;i<3;i++)for(j=i;j<3;j++){t=*(pointer+3*i+j);*(pointer+3*i+j)=*(pointer+3*j+i);*(pointer+3*j+i)=t;})程序運(yùn)行如下:D:\VC6SP6\Debug\Cpp1.einputmatrix:1357911131519Now,matrix:1713391551119Pressanykeytocontinue(3)有n個(gè)人圍成一圈,順序排號。從第1個(gè)人開始報(bào)數(shù)(從1到3報(bào)數(shù)),凡是報(bào)到3的人退出圈子,問最后留下的是原來第幾號的人。程序如下:由于編譯器運(yùn)行不太正常,無法執(zhí)行C程序,因此,將編譯器卸載之后重新安裝,接下來的實(shí)驗(yàn)用的均為新的工程。ttinclude<stdio.h>intmain(){inti,k,m,n,num[50],*p;printf(*\ninputnumberofperson:n=");scanf("%d",&n);p=num;for(i=0;i<n;i++)*(p+i)=i+l;i=0;k=0;m=0;while(m<n-l){if(*(p+i)!=0)k++;if(k==3){*(p+i)=0;k=0;m++;}i++;if(i==n)i=0;)while(*p==0)p++;printf(*ThelastoneisNO.%d\n*,*p);return0;}程序運(yùn)行如下:|(Globals)y|(Allglobalmembersゝ.main魚#include<stdio.h>intmain(){inti,k,n,num[50J,*p;printf(M\ninputnumberofperson:n=M);scanf(“%d\&n);p=num;for(i=0;i<n;i++)*(p+i)=i+l;i=0;k=0;m=0;while(m<n-l){if(*(p+i)!=0)k++;if(k==3)(*(p+i)=0;k=0;m++;}i++;if(i==n)i=0;)while(*p==0)p++;printf("ThelastoneisNO.%d\n",*p);return0;程序運(yùn)行結(jié)果如下:\■"D:\VC6SP6\Debug\ccc.exe"(inputnumberofperson:n=8ThelastoneisNO.1Pressanykeytocontinue(4)用ー個(gè)函數(shù)實(shí)現(xiàn)兩個(gè)字符串的比較。程序如下:#include<stdio.h>intmain(){intstrcmp(char*pl,char*p2);intm;charstrl[20],str2[20],*pl,*p2;printf(*inputtwostrings:\n*);scanf("%s”,strl);scanf('%s”,str2);pl=&strl[0];p2=&str2[0];m=strcmp(pl,p2);printf(*resu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 多元文化社區(qū)活動合同(2篇)
- 14《故都的秋》《荷塘月色》對比閱讀說課稿 2024-2025學(xué)年統(tǒng)編版高中語文必修上冊
- 2024戊己雙方城市供水供電供氣合同
- 建筑安裝工程承包合同
- 2024年門窗制作及施工承攬協(xié)議版B版
- 超高清數(shù)字內(nèi)容生產(chǎn)與合作推廣合同
- 2024年環(huán)保植樹活動組織與實(shí)施合同3篇
- 2025高考生物備考說課稿:第二章 細(xì)胞的基本結(jié)構(gòu)和物質(zhì)的運(yùn)輸 課時(shí)4 物質(zhì)出入細(xì)胞的方式及影響因素
- 2 祖父的園子 說課稿-2024-2025學(xué)年語文五年級下冊統(tǒng)編版
- 2024年銷售業(yè)績獎金合同3篇
- 財(cái)務(wù)情況說明書
- 無人值守汽車衡解決方案
- 動脈瘤介入術(shù)后護(hù)理查房課件
- 淄博市張店區(qū)預(yù)防接種工作現(xiàn)狀及其影響因素分析中期報(bào)告
- 初中英語2023年中考專題訓(xùn)練任務(wù)型閱讀-完成表格篇
- 技術(shù)通知單(新模版-0516)
- (完整)(整理)光伏發(fā)電工程施工組織設(shè)計(jì)
- 醫(yī)院布草洗滌服務(wù)方案(技術(shù)標(biāo))
- 全國各城市的50年一遇雪壓和風(fēng)壓
- 寧夏農(nóng)產(chǎn)品物流發(fā)展現(xiàn)狀的探究 物流管理專業(yè)
- 《青蛙賣泥塘》說課課件
評論
0/150
提交評論