C语言程序设计优化(提速)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1对以下程序代码进行调整,提升程序的运行速度:
scanf("%c", &ch);
printf("%c", ch);
改:用getc har(),putchar();
2对以下程序代码进行调整,提升程序的运行速度:
if (m / n > 9)
{
printf("ok\n");
}
改:乘法运算比除法速度快
3对以下程序代码进行调整,提升程序的运行速度:
int n=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对以下程序代码进行调整,提升程序的运行速度:
double x=2;
printf( "%.0f的4次方等于%.0f\n", x, pow(x, 4)); 改:将pow(x,4)改作:x*x*x*x;
6对以下程序代码进行调整,提升程序的运行速度:
for (i=0; i { scanf("%d %d", &num1, &num2); sum[i] = add(num1, num2); } int add(int n1, int n2) { return n1 + n2; } 改:去掉函数调用,直接表达。 7对以下程序代码进行调整,提升程序的运行速度: int i, 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 (num < 0) { printf("num是负数\n"); } 改:换成if()…else形式,效率更高 9对以下程序代码进行调整,提升程序的运行速度: if (num > 0) { printf("num是正数\n"); } if (0 == num) { printf("num的值为零\n"); } if (num < 0) { printf("num是负数\n"); } 改:用if … else if … 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; i<5; i++) { scanf("%d"sz[i]);% } 改:由于个数较少,可用一个scanf()完成 12对以下程序代码进行调整,提升程序的运行速度: for (i=0; i<5; i++) { printf("%4d", n+i); } 改:不用循环,写成一个printf(); 13对以下程序代码进行调整,提升程序的运行速度: for (i=0; i<4; i++) { for (j=0; j<5; j++) { printf("%4d", n + i + j); } putchar('\n'); } 改:内循环用一个scanf(“%4d%4d%4d…”, k, kk+1, kk +2, …),在内循环前添kk = nn+i %4d 14对以下程序代码进行调整,提升程序的运行速度: for (i=1; i<=3; i++) { for (j=1; j<=5; j++) { printf("*"); } printf("\n"); } 改:三个printft(“*****\n”); 或写成一个printf(“*****\n*****\n…”) 15对以下程序代码进行调整,提升程序的运行速度: for (i=0; 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)改成i 17对以下程序代码进行调整,提升程序的运行速度: for (i=0; i {