C語言程序設(shè)計(jì)優(yōu)化(提速)_第1頁
C語言程序設(shè)計(jì)優(yōu)化(提速)_第2頁
C語言程序設(shè)計(jì)優(yōu)化(提速)_第3頁
C語言程序設(shè)計(jì)優(yōu)化(提速)_第4頁
C語言程序設(shè)計(jì)優(yōu)化(提速)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:scanf("%c", &ch);printf("%c", ch);改:用getchar(),putchar();2 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:if (m / n >9) printf("okn"); 改:乘法運(yùn)算比除法速度快3 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:intn=5,m=6;n=n+1;m=m-1;改: n+; m更快4 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:scanf("%d",&num1);scan

2、f("%d",&num2);scanf("%d",&num3);scanf("%d",&num4);scanf("%d",&num5);scanf("%d",&num6);改:可寫成一個(gè):scanf(“%d%d%d” , & )5 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:double x=2;printf( "%.0f 的 4次方等于%.0fn", x, pow(x, 4);改:將 pow(x,4)改作: x*x*x*x;6

3、 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:for (i=0; i<n; i+) scanf("%d %d", &num1, &num2);sumi = add(num1, num2);int add(int n1, intn2)returnn1+ n2;改:去掉函數(shù)調(diào)用,直接表達(dá)。7 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:int i, n, sum, num;n = 0;sum = 0;num = 0;scanf("%d", &n);for (i=1;i<=n;i+) scanf("%d"

4、, &num); sum += num;改:去掉多余的賦值:n=0 和 num=0; sum=0 寫成初始化形式8 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:if (num >= 0)printf("num 是大于或等于0 的數(shù) n");if (num < 0)printf("num 是負(fù)數(shù) n");改:換成if() else 形式,效率更高9 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:if (num > 0)printf("num 是正數(shù) n");if (0= num)printf("num

5、的值為零n");if (num < 0)printf("num 是負(fù)數(shù) n");改:用 if else if else形式10 對(duì)以下程序代碼進(jìn)行調(diào)整,減少程序中的比較次數(shù),增加程序的可維護(hù)性:if (n1>=n2 && n1>=n3 && n1>=n4)printf(" 最大值為%dn",n1);if (n2>=n1&& n2>=n3 && n2>=n4)printf(" 最大值為%dn",n2);if (n3>

6、=n1&& n3>=n2 && n3>=n4)printf(" 最大值為%dn",n3);if (n4>=n1&& n4>=n2 && n4>=n3)printf(" 最大值為%dn",n4);改: max = n1; if(); if(); if();11 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:for (i=0;i<5;i+)scanf("%d"szi);%改:由于個(gè)數(shù)較少,可用一個(gè)scanf()完成12 對(duì)以下程序代碼進(jìn)行調(diào)整

7、,提升程序的運(yùn)行速度:for (i=0;i<5;i+)printf("%4d", n+i);改:不用循環(huán),寫成一個(gè)printf();13 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:for (i=0;i<4;i+)for (j=0;j<5;j+)printf("%4d", n + i + j); putchar('n');改:內(nèi)循環(huán)用一個(gè)scanf(“ %4d%4d%4d ” , k, kk+1, kk +2, ),在內(nèi)循環(huán)前添kk = nn+i%4d14 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:for (i=1;i

8、<=3;i+) for (j=1;j<=5;j+)printf("*"); printf("n");改:三個(gè)printft( “*n ”);或?qū)懗梢粋€(gè)printf(“*n*n” )15 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:for (i=0;i<n/5;i+) sum += numi; 改:中間條件轉(zhuǎn)為乘法,效率更高16 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:for (i=2; i<=sqrt(m); i+)if (m % i = 0) printf("%d ",i);改:在循環(huán)前添加kk = sq

9、rt(m),再i<=sqrt(m) 改成i<kk,可減少函數(shù)調(diào)用次數(shù)17 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:for (i=0; i<n; i+)sum += (numi * 300.0/(100* 25)* 2;改: 循環(huán)前加語句:kk = 300.0 / (100 * 25) * 2;簡(jiǎn)化 sum += (numi * 300.0 / (100 * 25) * 2 為 sum += (numi * kk18 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:for (i=0; i<m; i+)for (j=0; j<n; j+)printf("%4

10、d", m*n + 2*i+ j);printf("n");改: 將 kk = m*n 放到循環(huán)前,在內(nèi)循環(huán)前添語句:ss =kk + 2 *i,printf("%4d", m*n + 2*i + j) 改為 printf("%4d", ss + j);19 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:for(i=0; i<n;i+)if (0= dataType)sum += num1i;elsesum += num2i; 改: 將判斷條件外置,可減少運(yùn)算次數(shù)20 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:for

11、(i=0, count=0; i<n; i+) if (9= numi) count+;if (count > 0)printf(" 數(shù)組 num中,存在值為9的數(shù) n");改:循環(huán)中的判斷改為:count = 1; break; 減少不必要的運(yùn)算21 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:maxVal = Sz0;for (i=0; i<n; i+) if (Szi >= maxVal) maxVal = Szi; 改:循環(huán)控制變量初值可為1,減少處理次數(shù)22 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:for (i=1, sum=0; i&

12、lt;=n;i+)scanf("%d", &num); sum += num; avg = sum / n;改:把語句avg = sum / n;放到循環(huán)之后,減少運(yùn)算23 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:for (i=0, count=0; i<n; i+) scanf("%d", &numi); if (-1= numi)break; count+;printf(" 一共讀入了%d 個(gè)數(shù) n", count);改:去掉count+;改在循環(huán)外寫成:count = i;24 對(duì)以下程序代碼進(jìn)行調(diào)整,

13、提升程序的運(yùn)行速度:for (i=1, sum=0; i<=n;i+)scanf("%d", &num);sum += num;*pSum = sum;改:將 *pSum = sum;移至循環(huán)之后。25 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:for (i=0; i<n; i+)if (numi >= 0) zhengShu += numi; else fuShu += numi; sum += numi;改:將 sum += numi;移至循環(huán)之后。26 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度( 約定 n 是 >=1 的數(shù) ) :f

14、or (i=0; i<n; i+)if (i < n-1) printf("%d, ", numi); else printf("%dn", numi);改:將 i<n 改為 i<n-1,循環(huán)體中只留printf("%d, ", numi),循環(huán)之后再添上語句:printf("%dn", numn-1);27 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度( 約定 n 是 >=1 的數(shù) ) :for (i=0; i<n; i+)if (0= i) printf("*n&qu

15、ot;); elseprintf("*n");改:將 0=i 時(shí)的語句移至循環(huán)之前,28 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度( 約定 n 是 >=6 的數(shù) ) :for (i=0; i<n; i+)if (i< 5) printf("%d ", numi); else printf("%dn", numi);改:先處理前5 個(gè)(用一個(gè)printf) ,再進(jìn)行循環(huán)29 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:i = 0;doscanf("%d", &arri);if (0=i|

16、arri > arri-1)i+; while (i < 10);改:i = 0;scanf("%d", &arri);i+;while (i < 10) scanf("%d",&arri);if (arri> arri-1) i+;30 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:for(row=0;row<10000; row+)for(col=0;col<50; col+)sum += arowcol; 改:改變內(nèi)外位置,可使運(yùn)算減少31 以下函數(shù)isPrime 的功能是判斷m是否為素?cái)?shù),是則返回

17、1 、 否則返回0, 請(qǐng)對(duì)程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:int isPrime(intm)inti;for(i=2;i<m; i+)if (m % i 0)return 0;return1; 改:循環(huán)前添加語句:for (i=0;stri!='0'i+)if('A'=stri|'a'=stri)kk= sqrt(m); 將 i<m 改為 i<kk32 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:count0+;if('B'=stri|'b'=stri)count1+;if('C&#

18、39;=stri|'c'=stri)count2+;if('D'=stri|'d'=stri) if if if if改:利用密碼原則:count3+;('E'=stri|'e'=stri)count4+;('F'=stri|'f'=stri)count5+;('G'=stri|'g'=stri)count6+;('H'=stri|'h'=stri)count7+;stri > countstri A 或 stri

19、 > countstri a33 對(duì)以下程序代碼進(jìn)行調(diào)整,提升程序的運(yùn)行速度:for (i=0;stri!='0'i+)if ('1'=stri)sum += 1;if ('2'=stri)sum += 2;if ('3'=stri)sum += 3;if ('4'=stri)sum += 4;if ('5'=stri)sum += 5;if ('6'=stri)sum += 6;if ('7'=stri) sum += 7;if ('8'=stri) su

溫馨提示

  • 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)論