下列程序的功能为:用辗转相除法求两个正整数的最大公约数。
提示:
“辗转相除法” 求两个正整数的最大公约数的算法如下: ① 将两数中大的那个数放在m中,小的放在n中。 ② 求出m被n除后的余数r。 ③ 若余数为0则执行步骤(7);否则执行步骤(4)。 ④ 把除数作为新的被除数;把余数作为新的除数。 ⑤ 求出新的余数r。
⑥ 重复步骤(3)到(5)。
⑦ 输出n,n即为最大公约数。 #include 下列程序的功能为:计算1020个西瓜几天后能卖完(第一天卖了一半多两个,以后每天卖剩的一半多两个); #include int day,x1,x2; day=0; x1=1020; while(x1) { x2=x1/2-2; x1=x2; day++; } printf(\ } 10 编写程序,编写一个程序实现如下功能:用下列近似公式计算e值,误差应小于10-5 e?1?1111????? 1!2!3!n!#include { double e, a; /* a为通项,e为和 */ int i=1; e = 1.0; a = 1.0; do { a /= i; e+= a; i = i + 1; } while ( a>=1e-6 ); /*(1e-6 ) 表示10^-6 */ printf( \} 编写一个程序实现如下功能:验证下列结论:任何一个自然数n的立方都等于n个连续奇数之和。例如: 13 =1 ; 23 =3+5 ; 33 =7+9+11 。 要求:程序对每个输入的自然数计算并输出相应的连续奇数,直到输入的自然数为 0 时止。 #include \main() { long n,s; int i,j; scanf(\for(i=1;;i++) { for(s=0,j=i;j { printf(\ for(j=i;j printf(\ break; } } } 11 下列程序的功能为:计算1000!的末尾有多少个零。 #include \int main() { int m, i, k; for(k=0, i=5; i<=1000; i+=5) { m=i; while(m%5==0) { k++; m=m/5; } } printf(\} 下列程序的功能为:接收键盘上的输入,直到按↙键为止,这些字符被原样输出,但若有连续的一个以上的空格时只输出一个空格。 #include char cx; while ((cx=getchar()) !='\\n') { if (cx!=' ') putchar(cx) ; if (cx==' ') if (( cx=getchar())==' ' ) putchar( cx ); } } 编写一个程序实现如下功能:计算1~100之间所有含8的数之和。 答案: #include int i, sum=0; for(i=1;i<=100;i++) if(i==8||i/10==8) sum=sum+i; printf(\} 12 将一张面值为100元的人民币等值换成100张5元、1元和0.5元的零钞,要求每种零钞不少于1张,问有哪几种组合? #include \#include \ main() void main() { {int x,y,z,s=0; int x, y, z,s=0; for(x=0;x<100;x++) for (x=1;x<20; x++) {for(y=0;y<100;y++) for (y=100-5*x;y>=1; y--) for(z=0;z<100;z++) {z=(100-5*x-y)/2; if(z&&x*5+y+z*2==100) s++; if((x+y+z==100)&&(x*50+y*10+z*5= } =1000)) printf(\ } { printf(\ x,y,z); s++;}} printf(\ 下列程序的功能为: (1)输入若干个学生成绩,若输入数据大于100或小于0(除 -999外),则不作记录,重新输入;当输入 –999, 则输入结束。(2) 统计所有输入成绩的最大值、最小值、成绩个数、平均值,并输出之。请纠正程序中存在错误(程序中有8处错误),使程序实现其功能。 #include #include printf(\结束输入:\\n\ for( ; ; ) { scanf(\ if (mark==-999) break; else if (mark >100 || mark<0) { printf(\ exit(0); } n++;sum += mark; if ( mark>max ) max = mark; else if(mark 13 下列程序的功能为:查找100至999之间所有符合以下条件的数:是另一数的平方;至少有两位数是相同的。如数144,它是12的平方,其中有两位4。 #include \main() { int n,m,a,b,c; for ( n = 10; n <= 31; n++ ) { m = n*n; a = m; b = m / 10 % 10; c = m / 100 % 10; if ( a==b || b==c || a==c ) printf( \ } } 程序的功能为:输出如下的图形,要求顶端的*定位在第21字符位置。 * *** ***** ******* #include for (i=0;i<4;i++) { for (j=0;j<=20-i;j++) printf(\ for (j=0;j<2*i+1;j++) printf(\ } } 程序的功能为:打印九九乘法表。 #include for (i=1;i<10;i++) { for (j=1;j<=i;j++) { printf(\ printf(\ \ if (i*j<10)printf(\ } printf(\ } } 14 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库C语言习题汇编 适合初学者(3)在线全文阅读。
相关推荐: