C语言程序设计优化提速演示教学.docx

上传人:b****7 文档编号:16487841 上传时间:2023-07-14 格式:DOCX 页数:14 大小:16.92KB
下载 相关 举报
C语言程序设计优化提速演示教学.docx_第1页
第1页 / 共14页
C语言程序设计优化提速演示教学.docx_第2页
第2页 / 共14页
C语言程序设计优化提速演示教学.docx_第3页
第3页 / 共14页
C语言程序设计优化提速演示教学.docx_第4页
第4页 / 共14页
C语言程序设计优化提速演示教学.docx_第5页
第5页 / 共14页
C语言程序设计优化提速演示教学.docx_第6页
第6页 / 共14页
C语言程序设计优化提速演示教学.docx_第7页
第7页 / 共14页
C语言程序设计优化提速演示教学.docx_第8页
第8页 / 共14页
C语言程序设计优化提速演示教学.docx_第9页
第9页 / 共14页
C语言程序设计优化提速演示教学.docx_第10页
第10页 / 共14页
C语言程序设计优化提速演示教学.docx_第11页
第11页 / 共14页
C语言程序设计优化提速演示教学.docx_第12页
第12页 / 共14页
C语言程序设计优化提速演示教学.docx_第13页
第13页 / 共14页
C语言程序设计优化提速演示教学.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计优化提速演示教学.docx

《C语言程序设计优化提速演示教学.docx》由会员分享,可在线阅读,更多相关《C语言程序设计优化提速演示教学.docx(14页珍藏版)》请在冰点文库上搜索。

C语言程序设计优化提速演示教学.docx

C语言程序设计优化提速演示教学

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; i

{

        if (0 == i)

        {

                printf("*\n");

        }

        else

        {

                printf("**\n");

        }

}

改:

将0==i时的语句移至循环之前,…

28对以下程序代码进行调整,提升程序的运行速度(约定n是>=6的数):

for (i=0; i

{

        if (i < 5)

        {

                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 (i < 10);

改:

i = 0;

scanf("%d", &arr[i]);

i++;

while (i < 10)

{

scanf("%d", &arr[i]);

   if (arr[i] > arr[i-1])

   {

      i++;

   }

30对以下程序代码进行调整,提升程序的运行速度:

for (row=0; row<10000; row++)

{

    for (col=0; col<50; col++)

    {

        sum += a[row][col];

    }

}

改:

改变内外位置,可使运算减少

31以下函数isPrime的功能是判断m是否为素数,是则返回1、否则返回0,请对程序代码进行调整,提升程序的运行速度:

int isPrime(int m)

{

        int i;

        for (i=2; i

        {

                if (m % i  ==  0)

                {

                        return 0;

                }

        }

        return 1;

}

改:

循环前添加语句:

kk=sqrt(m);将i

32对以下程序代码进行调整,提升程序的运行速度:

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'; i++)

{

        if (str[i])=‘A’&&str[i]<=‘G’)

        {

                putchar(ss[str[i]–‘A’]);

        }

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2