C语言程序设计优化(提速).docx
- 文档编号:1257156
- 上传时间:2022-10-19
- 格式:DOCX
- 页数:12
- 大小:22.39KB
C语言程序设计优化(提速).docx
《C语言程序设计优化(提速).docx》由会员分享,可在线阅读,更多相关《C语言程序设计优化(提速).docx(12页珍藏版)》请在冰豆网上搜索。
1对以下程序代码进行调整,提升程序的运行速度:
scanf("%c",&ch);
printf("%c",ch);
改:
用getchar(),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…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; 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 { 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] *kk 18对以下程序代码进行调整,提升程序的运行速度: for (i=0; i { for (j=0; 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; i { if (0 == dataType) { sum += num1[i]; } else { sum += num2[i]; } } 改: 将判断条件外置,可减少运算次数 20对以下程序代码进行调整,提升程序的运行速度: for (i=0, count=0; i { if (9 == num[i]) { count++; } } if (count > 0) { printf("数组num中,存在值为9的数\n"); } 改: 循环中的判断改为: count=1;break;减少不必要的运算 21对以下程序代码进行调整,提升程序的运行速度: maxVal = Sz[0]; for (i=0; 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; 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; i { if (num[i] >= 0) { zhengShu += num[i]; } else { fuShu += num[i]; } sum += num[i]; } 改: 将sum += num[i];移至循环之后。 26对以下程序代码进行调整,提升程序的运行速度(约定n是>=1的数): for (i=0; i { if (i < n-1) { printf("%d, ", num[i]); } else { printf("%d\n", num[i]); } } 改: 将i printf("%d\n", num[n-1]); 27对以下程序代码进行调整,提升程序的运行速度(约定n是>=1的数): for (i=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 优化 提速