您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言程序设计优化(提速)
1对以下程序代码进行调整,提升程序的运行速度:scanf(%c,&ch);printf(%c,ch);改:用getchar(),putchar();2对以下程序代码进行调整,提升程序的运行速度:if(m/n9){printf(ok\n);}改:乘法运算比除法速度快3对以下程序代码进行调整,提升程序的运行速度:intn=5,m=6;n=n+1;m=m-1;改:n++;m—更快4对以下程序代码进行调整,提升程序的运行速度:scanf(%d,&num1);scanf(%d,&num2);scanf(%d,&num3);scanf(%d,&num4);scanf(%d,&num5);scanf(%d,&num6);改:可写成一个:scanf(“%d%d%d…”,&…)5对以下程序代码进行调整,提升程序的运行速度:doublex=2;printf(%.0f的4次方等于%.0f\n,x,pow(x,4));改:将pow(x,4)改作:x*x*x*x;6对以下程序代码进行调整,提升程序的运行速度:for(i=0;in;i++){scanf(%d%d,&num1,&num2);sum[i]=add(num1,num2);}intadd(intn1,intn2){returnn1+n2;}改:去掉函数调用,直接表达。7对以下程序代码进行调整,提升程序的运行速度:inti,n,sum,num;n=0;sum=0;num=0;scanf(%d,&n);for(i=1;i=n;i++){scanf(%d,&num);sum+=num;}改:去掉多余的赋值:n=0和num=0;sum=0写成初始化形式8对以下程序代码进行调整,提升程序的运行速度:if(num=0){printf(num是大于或等于0的数\n);}if(num0){printf(num是负数\n);}改:换成if()…else形式,效率更高9对以下程序代码进行调整,提升程序的运行速度:if(num0){printf(num是正数\n);}if(0==num){printf(num的值为零\n);}if(num0){printf(num是负数\n);}改:用if…elseif…else形式10对以下程序代码进行调整,减少程序中的比较次数,增加程序的可维护性:if(n1=n2&&n1=n3&&n1=n4){printf(最大值为%d\n,n1);}if(n2=n1&&n2=n3&&n2=n4){printf(最大值为%d\n,n2);}if(n3=n1&&n3=n2&&n3=n4){printf(最大值为%d\n,n3);}if(n4=n1&&n4=n2&&n4=n3){printf(最大值为%d\n,n4);}改:max=n1;if();if();if();11对以下程序代码进行调整,提升程序的运行速度:for(i=0;i5;i++){scanf(%dsz[i]);%}改:由于个数较少,可用一个scanf()完成12对以下程序代码进行调整,提升程序的运行速度:for(i=0;i5;i++){printf(%4d,n+i);}改:不用循环,写成一个printf();13对以下程序代码进行调整,提升程序的运行速度:for(i=0;i4;i++){for(j=0;j5;j++){printf(%4d,n+i+j);}putchar('\n');}改:内循环用一个scanf(“%4d%4d%4d…”,k,kk+1,kk+2,…),在内循环前添kk=nn+i%4d14对以下程序代码进行调整,提升程序的运行速度:for(i=1;i=3;i++){for(j=1;j=5;j++){printf(*);}printf(\n);}改:三个printft(“*****\n”);或写成一个printf(“*****\n*****\n…”)15对以下程序代码进行调整,提升程序的运行速度:for(i=0;in/5;i++){sum+=num[i];}改:中间条件转为乘法,效率更高16对以下程序代码进行调整,提升程序的运行速度:for(i=2;i=sqrt(m);i++){if(m%i==0){printf(%d,i);}}改:在循环前添加kk=sqrt(m),再i=sqrt(m)改成ikk,可减少函数调用次数17对以下程序代码进行调整,提升程序的运行速度:for(i=0;in;i++){sum+=(num[i]*300.0/(100*25))*2;}改:循环前加语句:kk=300.0/(100*25))*2;简化sum+=(num[i]*300.0/(100*25))*2为sum+=(num[i]*kk18对以下程序代码进行调整,提升程序的运行速度:for(i=0;im;i++){for(j=0;jn;j++){printf(%4d,m*n+2*i+j);}printf(\n);}改:将kk=m*n放到循环前,在内循环前添语句:ss=kk+2*i,printf(%4d,m*n+2*i+j)改为printf(%4d,ss+j);19对以下程序代码进行调整,提升程序的运行速度:for(i=0;in;i++){if(0==dataType){sum+=num1[i];}else{sum+=num2[i];}}改:将判断条件外置,可减少运算次数20对以下程序代码进行调整,提升程序的运行速度:for(i=0,count=0;in;i++){if(9==num[i]){count++;}}if(count0){printf(数组num中,存在值为9的数\n);}改:循环中的判断改为:count=1;break;减少不必要的运算21对以下程序代码进行调整,提升程序的运行速度:maxVal=Sz[0];for(i=0;in;i++){if(Sz[i]=maxVal){maxVal=Sz[i];}}改:循环控制变量初值可为1,减少处理次数22对以下程序代码进行调整,提升程序的运行速度:for(i=1,sum=0;i=n;i++){scanf(%d,&num);sum+=num;avg=sum/n;}改:把语句avg=sum/n;放到循环之后,减少运算23对以下程序代码进行调整,提升程序的运行速度:for(i=0,count=0;in;i++){scanf(%d,&num[i]);if(-1==num[i]){break;}count++;}printf(一共读入了%d个数\n,count);改:去掉count++;改在循环外写成:count=i;24对以下程序代码进行调整,提升程序的运行速度:for(i=1,sum=0;i=n;i++){scanf(%d,&num);sum+=num;*pSum=sum;}改:将*pSum=sum;移至循环之后。25对以下程序代码进行调整,提升程序的运行速度:for(i=0;in;i++){if(num[i]=0){zhengShu+=num[i];}else{fuShu+=num[i];}sum+=num[i];}改:将sum+=num[i];移至循环之后。26对以下程序代码进行调整,提升程序的运行速度(约定n是=1的数):for(i=0;in;i++){if(in-1){printf(%d,,num[i]);}else{printf(%d\n,num[i]);}}改:将in改为in-1,循环体中只留printf(%d,,num[i]),循环之后再添上语句:printf(%d\n,num[n-1]);27对以下程序代码进行调整,提升程序的运行速度(约定n是=1的数):for(i=0;in;i++){if(0==i){printf(*\n);}else{printf(**\n);}}改:将0==i时的语句移至循环之前,…28对以下程序代码进行调整,提升程序的运行速度(约定n是=6的数):for(i=0;in;i++){if(i5){printf(%d,num[i]);}else{printf(%d\n,num[i]);}}改:先处理前5个(用一个printf),再进行循环29对以下程序代码进行调整,提升程序的运行速度:i=0;do{scanf(%d,&arr[i]);if(0==i||arr[i]arr[i-1]){i++;}}while(i10);改:i=0;scanf(%d,&arr[i]);i++;while(i10){scanf(%d,&arr[i]);if(arr[i]arr[i-1]){i++;}}30对以下程序代码进行调整,提升程序的运行速度:for(row=0;row10000;row++){for(col=0;col50;col++){sum+=a[row][col];}}改:改变内外位置,可使运算减少31以下函数isPrime的功能是判断m是否为素数,是则返回1、否则返回0,请对程序代码进行调整,提升程序的运行速度:intisPrime(intm){inti;for(i=2;im;i++){if(m%i==0){return0;}}return1;}改:循环前添加语句:kk=sqrt(m);将im改为ikk32对以下程序代码进行调整,提升程序的运行速度:for(i=0;str[i]!='\0';i++){if('A'==str[i]||'a'==str[i]){count[0]++;}if('B'==str[i]||'b'==str[i]){count[1]++;}if('C'==str[i]||'c'==str[i]){count[2]++;}if('D'==str[i]||'d'==str[i]){count[3]++;}if('E'==str[i]||'e'==str[i]){count[4]++;}if('F'==str[i]||'f'==str[i]){count[5]++;}if('G'==str[i]||'g'==str[i]){count[6]++;}if('H'==str[i]||'h'==str[i]){count[7]++;}}改:利用密码原则:str[i]—count[str[i]–‘A’]或str[i]—count[str[i]–‘a’]33对以下程序代码进行调整,提升程序的运行速度:for(i=0;str[i]!='\0';i++){if('1'==str[i]){sum+=1;}if('2'==str[i]){sum+=2;}if('3'==str[i]){sum+=3;}if('4'==str[i]){sum+=4;}if('5'==str[i]){sum+=5;}if('6'==str[i]){sum+=6;}if('7'==str[i]){sum+=7;}if('8'==str[i]){sum+=8;}if('9'==str[i]){sum+=9;}}改:密码原则:str[i]str[i]–‘0’;for(i=0;str[i]!='\0';i++){if(str[i]=‘1’&&str[i]=‘9’){sum+=str[i]–‘0’;}}34对以下程序代码进行调整,提升程序的运行速度:for(i=0;str[i]!='\0';i++){if('A'==str[i]){putchar('1');}if('B'==str[i]){putchar('x');}if('C'==str[i]){putchar('m');}if('D'==str[i]){putchar('y');}if('E'==str[i]){putchar('c');}if('F'==str[i]){putchar('K');}if('G'==str[i]){putchar('9');}}改:循环前先给语句如:kk[]=“1xmycK9”,再用密码原则,即改为:charss[]=“lxmyck9”;for(i=0;str[i]!='\0
本文标题:C语言程序设计优化(提速)
链接地址:https://www.777doc.com/doc-2305496 .html