C语言复习 第四章.3

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言程序设计
1-5
main()
{int m=0,n=0,r,t,a,b;
scanf(“%d%d”,&m,&n);
a=m;b=n;
/**/ if(a<b)
/**/
{t=a;a=b;b=t;}
/*实现大数在前小数在后*/
/**/ r=a%b; while(r) { a=b; b=r; r=a%b;} /**/ /*实现辗转相除算法*/
(因子只有1及其本身,其值大于1的自然数)。
#include <math.h>
Hale Waihona Puke Baidu
main()
k=sqrt(n);
{
for(i=2;i<=k;i++)
int n,i,k; clrscr();
{ if(n%i==0)break;} if(i==k+1 && n>1)
printf("Input n (n>p=ri2n)t:f("")%; d is a prime number.",n);
/**/
getch();}
C语言程序设计
1-3
【例】古典问题:有一对兔子,从出生后第3个月起每个月都生一对 兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不 死,问每个月的兔子总对数为多少?(40个月后) 分析:兔子对数的规律为数列1,1,2,3,5,8,13,21…… ,即 从第三个数开始其值都为前两个数之和。
A. 36 B. 7 C. 16 D. 12
C语言程序设计
1 - 12
课堂小测试
4、以下程序的运行结果是( )。
void main( )
{int sum = 0, item = 0;
while(item < 5)
{item++;
if(item == 2)
continue;
sum += item;
} printf("%d\n",sum);
}
A. 10 B. 13 C. 15 D. 1
C语言程序设计
1 - 13
4.5 循环结构的嵌套
一个循环体内又包含另一个完整的循环结构称为循 环的嵌套。内嵌的循环中还可以嵌套循环,这就是 多层循环。 三种循环(while循环、do-while循环和for循环)可以互 相嵌套。 正常情况下:应先执行内层的循环体操作,然后是 外层循环。例如:对于双重循环,内层循环被执行 的次数应为:内层次数×外层次数。
A. 6 B. 3 C. 0 D. 5
C语言程序设计
1 - 10
课堂小测试
2、以下程序段运行后变量n的值为( )。 int i=1,n=1; for (;i<3;i++)
{continue;n=n+i;} A. 4 B. 3 C. 2 D. 1
C语言程序设计
1 - 11
课堂小测试
3、以下程序的运行结果是( )。 void main() {int s = 0, i = 0; while(i< 8) {i++; if(i%2==0) continue; s+=i; } printf("%d\n",s); }
《C语言程序设计》
第4章 循环结构程序设计
C语言程序设计
【例题】输入一个正整数n,把它分解成1及其质因子 相乘的形式。 如: 19=1×19 36=1×2×2×3×3 1024=1×2×2×2×2×2×2×2×2×2×2
分析:本题即找出所有能整除n的数,可以尝试分别用2到n的整 数去除n,如某时刻的值为i,能除尽n则取出此时的数i,再把n 除以i的商作为新的n,但要注意下次尝试的时候还应该用此时的 i去除n(因为如2是8的一个因子,同时也是8/2=4的一个因 子)。如n不能被i整除则用i+1去除n看能否整除,如此反复直到 i的值为n为止。
printf("%d & %d greatest common divisor is %d",m,n,b); printf("%d & %d lowest common multiple is %ld.",
m,n,(long)m*n/b); getch();
C语言程序设计
1-6
【例】从键盘任意输入一个正数n,判断其是不是素数
main()
{long m1=1,m2=1;int i;
for(i=0;i<20;i++)
{if(i%2==0) /*目的每输出2组数后加一个回车符*/
printf("\n");
printf("%-12ld%-12ld",m1,m2);
/**/ m1=m1+m2;
m2=m1+m2;
/**/
}getch();}
scanf("%d",&n); else
/**/ /**/ }
printf("%d is not a prime number.",n getch();
C语言程序设计
1-7
continue语句
【例】分析如下程序,给出程序执行结果。 main() { int i; for(i=0;i<10;i++) { if(i%2==0) continue ; printf("%d ",i) ; } getch(); }
/**/}while(/**/ ch!='\n' /**/); printf("The number of spaces is %d.\n",count); getch();}
C语言程序设计
1-9
课堂小测试
1、以下程序段运行后变量a的值为( )。 int i=1,a=0; for( ;i<3;i++) { continue; a+=i; }
C语言程序设计
1-4
【例】题目:输入两个正整数m和n,求其最大公约数 和最小公倍数。 最大公约数算法也称“辗转相除法”,又称欧几里得
算 法 ”, 其算法如下:
1. a ÷ b(a>=b),令r为所得余数(0≤r<b) 若 r = 0,算法结束;b 即为答案。
2. 互换:置 a←b,b←r,并返回第一步。
C语言程序设计
1-8
【例】随机输入多个字符,直到输入回车结束,统计键入空格 字符的次数。
#include <stdio.h> main() {int count=0;char ch; printf("Input chars:"); do{/**/ ch=getchar();
if (ch!=' ')continue; count++;}
C语言程序设计
1-2
程序如下: main()
{long i, n;
printf("Input n: ");
scanf("%ld",&n);
printf("%ld=1",n);
for(i=2;i<=n;i++)
/**/ {if(n%i==0)
{printf("*%ld",i);
n/=i;
i--;}}
相关文档
最新文档