资源描述
《C语言程序设计》复习题库
1、计算下面公式的值。T=l/l!+l/2!+l/3!+……+1!当m=5时的结果(按四舍五入保留3 位小数)。(注:所有变量用float数据类型定义!)答案:1.717
2、程序填空:用*号输出字母C的图案。
#iiiclude Hstdio.hM
#include "conio.h”
main()
prmtf(n F');
getchQ;
}
3、8232和9678,它们的个、十、百、千各位数字之和是15的倍数,8+2+3+2=15,9+6+7+8=30。 编写程序,求四位数的所有奇数中,这样的数(各位数字之和是15的倍数)的总和。(注:所 有变量用long数据类型定义!)答案:1533459
4、/*下面程序的功能是:计算并输出7以内的最大的10个能被13或者17整除的自然 数之和。请改正程序中的错误,并运行,最后给出程序运行的正确结果。(注:只有一处错 误!)*/答案:6591
#iiiclude <stdio.h>
void main()
{
mt total=0, mc=l, k=7;
hit pm[10],count=0;
wliile( (k>=2) && mc<=10 )
{
if((k%13=0) || (k%17=0))
{
pm[mc] = k;
mc++;
}
k--;
)
fbr( k=l;k<=10;k++ )
total += pm[k-l];
printf(M %d\n”,total);
}
5、求x=1+1/5+1/7+1/9+…的近似值,直到最后一项的绝对值小于IO。为止。
6、计算如下公式的 A20 值。Al=l, A2=1/(1+A1), A3=l/(1+A2), A4=l/(1+A3),(按
四舍五入保留10位小数)。答案:0.6180339850
7、求E10, 16]之间能被7整除的奇数之和。答案:90965
8、函数mystilen(char *s)的功能是求字符串s的长度。请填空。
hit mystiien(chai *s)
{mt num=O;
whileCJ (;)
return (_;
}
9、[1,5]之间同时满足除以7余5,除以5余3,除以3余1的整数之和。答案:1042
10、求[1,999]之间所有的素数的个数。答案:143
11、编写程序,求满足下列条件的所有四位数ABCD的个数,该四位数是8的倍数,且A+B=B+C, 即第1位数加上第2位数等于第2位数加上第3位数。答案:110
12、/*数列1,2,1,4,7,12,23…具有这样的特征,从第四项(也就是4)开始,每一项是前三 项之和,4=1+2+1, 7=2+1+4, 12=1+4+7-.o下列程序的功能是求出该数列前10项的和。
请改正程序中的错误,并运行修改后的程序,给出程序结果。(注:只有一处错误!)*/ 答案:311
^include <stdio.h>
void main()
{
long sum=0,a[30]={ 1,2,1);
mt kj;
foi( k=3;k<10;k-H-)
a[k] = a[k-l]+a[k-2]+a[k-3];
foi(j=lj<=10;j++)
sum += a|j];
pnntf(" %ld^n",sum);
}
13、/*求1到20之间的双胞胎数的对数。双胞胎数:两素数差为2称为双胞胎数。例如
227和229是一对双胞胎数,它们都是素数旦差为2。*/ 答案:61
#iiiclude <stdio.h>
mt prime(int x)
{
mt k;
fbr(k=2;k<x;k++)
iff) break;
if(k==x) return 1;
else retuin 0;
}
void main()
( int a,b,n=0;
mt piiine(mt x);
fbr(a=2;a<= 1998;a++)
(
if(prime(a)==l)
{b=a+2;
iR)n++;
}
}
%d \n”,n);
}
14、编写程序,统计2~4之间的所有满足三个数字之积为42,三个数字之和为12的数的 个数。答案:4
15、有30个学生一起买小吃,共花钱50元,其中每个大学生花3元,每个中学生花2元,每个 小学生花1元,问大、中、小学生的人数分配共有多少种不同的解(去掉某类学生数为0的解)? 答案:9
16、爱因斯坦走台阶:有一台阶,如果每次走两阶,最后剩一阶;如果每次走三阶,最后剩两阶; 如果每次走四阶,最后剩三阶;如果每次走五阶,最后剩四阶;如果每次走六阶,最后剩五阶; 如果每次走七阶,刚好走完.求满足上述条件的最小台阶数是多少?答案:119
17、/*求10以内最大的10个素数的和。*/ 答案:9664
#iiiclude <stdio.h>
hit prime(long n)
{
long k;
foi(k=2 ;k<=n-l;k++)
if() return 0;
return 1;
}
void main()
{
long tjotal=0,num=0;
mt prmie(long n);
fbr(t=10;t>=2;t-)
(
)
(
total=total+t; num++;
}
if(num== 10)break;
}
printf("\n%ld”,total);
} _
18、/*求 l!+2!+3!+…+7!, 7!表示 7 的阶乘。*/ 答案:5913
#iiiclude <stdio.h>
long jc( long x)
{
long k.fac=l;
fbr(k= 1;;k++)
fac *=k;
void main()
long n,sum=0;
longjc(long x);
foi(n=l;n<=7;n-H-)
pnntf(,'\n%ld",sum);
}
19、求1以内所有完数之和,”完数”是指:一个数如果刚好与它所有的真因子(不包括 该数本身)之和相等,如:6=1+2+3,则6就是一个完数。(注:所有变量用int数据类型定 义!)答案:8658
20、/*数列1,2,1,4,7,12,23…具有这样的特征,从第四项(也就是4)开始,每一项是前三项 之和,4=1+2+1, 7=2+1+4, 12=1+4+7-.o T列程序先给出数列的第一项(1)、第二项(2)、 第三项(1),再逐步计算其它项并保存在数组a中,最后求出该数列的第25项。请改正程 序中的错误,并运行修改后的程序,给出程序结果。(注:只有一处错误!)*/答案:1323525 #iiiclude <como.h>
^include <stdio.h>
^define N 30
void main()
{
long a[N];
mt k;
cliscrQ;
a[0] = l; a[l] = 2;a[2]=l;
for( k=3;kv=20;k++ )
a[k] = a[k-l]+a[k-2]+a[k-3];
pnntf(M %ld\n”,a[k-l]);
}
21、/*求区间[2,30]中所有回文数的和,回文数是正读与反读都是一样的数,如525,1551。
*/ 答案:87970
#iiiclude <stdio.h>
mt hws(long n)
{
long x=n,t=0,k;
wlule(x>0)
{
k=x%10;
t = t*10 + k;
x=x/10;
)
if() return 1;
else retuin 0;
}
void main()
long k.s=O;
mt hws(long n);
fbr(k=2; k<=20;k++)
】f()
s=s+k;
pnntf(”\n%ld”,s);
}
22、/*下面的程序是求表达式的值:
s=l+l/3+(l*2)/(3*5)+(l*2*3)/(3*5*7)+…+(l*2*3*..・*n)/(3*5*7*...(2*n+l))请将程序补充完整, 并给出当n=25时,程序的运行结果(按四舍五入保留10位小数)。*/答案:1.5707963267 ^include <stdio.h>
double fun(mt n)
{
double s=L0, t=1.0;
mt k;
double rtn=1.0;
fbr(k= 1 ;kv=n; k++)
{
t = t*k;
s = s*(2*k+l);
}
return rtn;
}
void main()
{
double sum;
}
23、己知:Sn=2/l+3/2+4/3+・"+(n+l)/n,求Sn不超过50的最大值(按四舍五入的方式精确 到小数点后第三位)。答案:49.395
24、计算Y=X/l!-X"3/3!+X“5/5!-X"7/7!+……前20项的值(己知:X=2)。要求:按四舍五入 的方式精确到小数点后第二位。答案:0.91
25、若某正整数平方等于某两个正整数平方之和,称该正整数为弦数。例:3涉+厂2=5“2,则 5为弦数,求[131, 2]之间最小的弦数。答案:135
26、己知X,Y,Z为三个正整数,旦X"2+Y"2+Z"2=25"2,求X+Y+Z的最大值。答案:43
27、猴吃桃:有一天小猴子摘下了若干个桃子,当即吃掉一半,还觉得不过瘾,又多吃了一 个。第二天接着吃了剩下的桃子中的一半,仍不过瘾,又多吃了一个。以后每天都是吃尚存 桃子的一半零一个。到第10天早上小猴子再去吃桃子时,看到只剩下一个桃子了。问小猴子 第一天共摘下了多少个桃子。答案:1534
28、求[1, 50]之间的所有整数能构成直角三角形的三边的组数。例如:3*3+4*仁5*5,它们 构成直角三角形,所以{3, 4, 5}作为一组,但{4, 3, 5}视为跟{3, 4, 5}相同的一组。答
案:20
29、15元钱换成1元、2元、5元的票面,问有多少种不同的兑换方法?输出所有的兑换方法。 答案:18种
30、用迭代法求x等于a开平方的正数值。
迭代公式为:xP.-1=l/(2*(xr+a/xn)),要求直到前后两次求出的x的差的绝对值小于10“为止。
A的值从键盘输入。
31、求最大的水仙花数,所谓水仙花数,指的是一个三位数,其各个数字的立方之和等于该 数。答案:407
32、一球从1米的高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10 次落地时,共经过多少米?第10次反弹多高?
答案:299. 6093750. 097656
33、编写程序,完成如下功能,输入8个float类型的实数,分别求最大值和最小值,保留 三位小数输出最大值和最小值。
34、编写程序输出如下字符图形:
@ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @
• • •
@ @
@
35、计算:s=f (-30) +f (-29) ++f(T)+f(0)+f(l)++f(30)的值。其中函数定义
如下:f (x) = (x+1)/(x-2)如果 x>l; f (x) =0 如果 x=0 或 x=2 ; f (x) = (x~l)/(x~2)如 果x<0o (按四舍五入保留6位小数)答案:65. 223018
36、编写程序输出如下字符图形(最后一行19颗星):
♦ * *
37、企业发放的奖金根据利润提成。利润①低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提 成7.5%: 20万到40万之间时,高于20万元的部分,可提成5%: 40万到60万之间时高于 40万元的部分,可提成3%: 60万到1万之间时,高于60万元的部分,可提成1.5%,高 于1万元时,超过1万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总 数?
38、计算下面公式的值。T=l+l/(2*3)+l/(3*4)+……+l/(m*(m+l)),当m=50时的结果(按四
舍五入保留6位小数)。(注:所有变量用double数据类型定义!)答案:1.480392
39、程序填空:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
程序分析:利用while语句,条件为输入的字符不为,
^include "stdio.h"
^include "conio.h"
maiiiQ
chai c;
mt letters=0,space=0,digit=0,others=0;prmtf(nplease input some characters\nM);
while((c=getcharQ) !=r\n*)
(
iRc>='a'&&cv=,z'||c>='A'&&cv=Z)
else iRc=='')
else if(c>='0'&&cv=9) else
)
piintff'all in all:chai-%d space=%d digit=%d others=%dW',letters, spacejigit,others); getch();
)
40、打印出如下图案(菱形)
*
***
• 若 N= 10,求 Y o *1304735
•• 1• • 1 •
***
*
41、求出[2, 478]以内的:
*467
*91
*19580
(1)最大的素数。
(2)素数数目。
(3)所有素数之和。
42、已知:
N
),二跛-底)2
/=1
12
(,为奇数) fl2
b-= <
。为偶数) 尸
(,为奇数)
(,为偶数)
mainQ
(iiit a, b, c, t;
printf(nEnter a, b, c: ");
scanf(”%d%d%d”,:
: a=b:;:
printf(na= % d b= % d c= % d\n”,a, b, c):
)
45、卜.面ftm函数的功能是从a数组中查找值为y的元素;若找到,返回该元素的下标值, 若不存在值为y的元素,返回0;数列放在a数组的a[l]到a[n]中,a[0]元素用来作为临时存 储单元。请填空。
a[],int yiiit n)
(mt k=0;
a[0]=y;k=n;
while() k-;
return(;
)
46、/*下列程序的功能是求出二阶Fibonacci数列前10之和,1,1,2,3,5,8…。请改正程序中 的错误,并运行修改后的程序,给出程序结果。(注:只有一处错误! 3是第四项,5是第五 项。)*/答案:143
#iiiclude <stdio.h>
void main()
{
long sum=0,a[30]={l』,2};
hit k;
fbr( k=2;k<10;k++)
a[k] = a[k-l]+a[k-2];
fbr( k=l;k<=10;k++ )
sum += a[k];
pnntf(M %ld\n”,sum);
}
47、20,160]之间的所有偶数的平方和。答案:694380
48、求[10,20]之间能被2或3或5整除的数之和。答案:67795
49、求8以内的最大的20个素数之和。答案:14510
50、求当 n=60 时下式的和:s=l+l/(1+2)+1/(1+2+3)++1/(1+2+3++n)(按四舍
五入保留6位小数)。答案:1.967214
51、编写程序:输入x的值,按照下列公式计算cos (x)
cos(x)=l-x2/2!+ x4/4!- x6/6!+...精确到 10%
/*C11.717*/
main 0 int i; long jc=l;
float s=0;
for(i=l;i<=5;i++)
jc=jc*i;
s=s+l. 0/jc;
}
printf s);
}
/♦C31533459*/
mainO
{
long i, c=0, t=0, g, s, b, q;
for(i=11;i<=9999;i=i+2)
{
g=i%10;
s=i/10%10;
b=i/1%10;
q二i/10;
if((g+s+b+q)%15==0)
{
C++;
t=t+i;
}
}
printft);
}
/*C16591*/
mainO
{
int i, s=0, c=0;
for(i=7;i>=l;i—)
if(i%13==0||i%17==0)
{
c++;
s+=i;
if(c==10)break;
}
printfs);
}
/*C56.058311*/
mainO
(
long i=5;
double s=l;
while(l. 0/i>=le-5)
{
s=s+l. 0/i;
i=i+2;
}
printf("%lf", s);
/*C60. 6180339850 */
mainO { int i;
double a=l;
for(i=2;i<=20;i++)
{ a=l. 0/ (1+a);
} printf (z,%. 101f〃,a);
}
/*C790965*/
mainO
{
long i,s=0;
for(i=U;i<=16;i=i+2)
if(i%7=0)
s=s+i;
printfs);
}
/♦C91042 */
mainO
long i,s=0;
for(i=1;i<=5;i++)
i f (i %5=3&& i%7=5&& i%3=1) s=s+i;
printf("%ld〃,s);
}
/*C10143*/
mainO {
int c=0, i, j, p; for(i=1;i<=999;i++) { p=l;
for(j=2;j<i;j++)
if(i%j==0)(p=0;break;} if (p=l)c++;
} printf c);
}
/*CU 110*/
mainO
{
int c=0, i, q, b, s;
for(i=10;i〈=9999;i=i+8)
{
q二i/10;
b=i/1%10;
s=i/10%10;
if (q+b=b+s) c++;
}
printf c);
}
/*C1361*/
#include,,fun. c〃
main() int a, b,n二0;
int prime(int x);
for (a=2;a〈=1998;a++)
if(prime(a)==l&&prime(a+2) ==1) n++;
printf n);
}
/*C144*/
mainO
{
int c=0, i, g, s, b;
for(i=2;i<=4;i++)
{
g=i%10;
s=i/10%10;
b=i/1;
if(g+s+b==12&&g*s*b==42)
C++;
}
printfc);
}
/*C159*/
mainO
{
int d, z, x, c=0;
for(d=l:d<=17;d++)
for(z=l;z<=25;z++)
{
x=30-d-z;
if (x>=0&&d*3+z*2+x=50)
C++;
}
printfc);
/*C16119*/
mainO {
int tj, i, j;
for(tj=l;tj>=0;tj++)
i f (t j%2=l&&t j%3=2&&t j%4==3&&t j%5==4&&t j%6==5&&t j%7==0) break; printf t j);
}
/*C198658*/
mainO
{
int i, s=O, w, j ;
for(i=l;i<=1;i++)
{
w二 0;
for(j=l;j<i;j++) if(i%j==O)w+=j;
if(w==i)s+=i;
}
printfs);
}
/*C201323525*/
mainO
{
long a[25]={l, 2, 1);
int i;
for(i=3;i<25;i++)
a[i]=a[iT]+a[i-2]+a[i-3];
printf (z,%ld,z, a[24]);
}
/*C221.5707963166*/
#define N 24 mainO int i, j;
double s=l,si,s2; for(i=l;i<=N;i++)
{
sl = l; s2=l;
for(j=l;j<=i;j++)
{
si*二j; s2*=(2*j+l);
}
s+=(sl/s2);
} printf (z,%. 101f〃,s);
}
/*C23 49.395*/ mainO {
int i=l;
double s=0; do
{
s+=(l+l.0/i);
printf (,z\n%0. 31f〃,s); i++; }
while(s<50); }
/*C240.91*/
#include<math. h> mainO int x=2, i,j;
double jc (int i);
double y=0, fz;
for(i=l;i<=20;i++)
{
fz二pow(-1, i+l)*pow(x, 2*i~l);
y+=fz/jc(2*i~l);
printfC\n%d, %. 01 f/%. Olf”, i, fz, jc(2*iT));
}
printf ("\n%. 21f〃,y);
}
double jc (int i)
{
int j;
double r=l;
for (j=l; j<=i; j++)
r*二 j;
return r;
}
/*C25135*/
#include<math. h>
mainO
{
long a, b, c;
int xs=0;
for(c=131;c<=2;c++)
{
xs=0;
for(a=l;a〈c;a++)
{
b=sqrt(c*c~a*a);
if(b*b+a*a==c*c) xs=l;
break;
) if(xs==l)
{
printf("%ld〃, c); break;
}
}
}
/*C2643♦/
mainO {
int d=25;
int x, y, z, max二0;
for (x=l;x<d;x++)
for (y=l;y<d;y++)
for (z=l;z<d;z++)
if(x*x+y*y+z*z==d*d&&max<x+y+z) max=x+y+z;
printfmax); }
/*C2820*/
#include<math. h>
mainO
{int a, b, c, n=0;
int xs=0;
for (c=l;c<=50;c++)
for (a=l;a<c;a++)
for (b=l;b<a;b++)
if (b*b+a*a==c*c)n++;
printf n);
}
/♦C30*/
#include<math. h>
mainO {
double xl=l. 0,x2;
double a;
scanf ("%lf”, &a);
while (1)
xl=l. 0/2* (xl+a/xl);
if(fabs(x2-xl)<=le~5) break;
else x2=xl;
}
printfxl);
}
/*C3567. 223018♦/
mainO {
double f(double x),s=0; int i;
for(i=-30;i<=30;i++) s=s+f (i);
printfs);
}
double f(double x)
{
double y;
if (x==0| x==2)y=0;
else if (x>l)y=(x+1)/(x~2); else if (x<0)y=(x~l)/(x~2); return y;
}
/*C381.480392*/
mainO { double t=l;
int m;
for (m=2: m<=50; m++) t=t+l. 0/(m* (m+1));
printf t); }
/*C11467,91, 19580*/
#includez/fun. c〃
mainO int i,c=O,s=Ot max;
for(i=2;i<=478;i++)
if(prime(i))
{
max=i;
C++; s+= i;
}
printf ("%d, %d, %d”, max, c, s); }
/*C421304735*/
#define N 10 mainO ( int i;
double a,b, y=0;
for (i=l;i<=N;i++)
{
if(i%2==0)
(a=i/2. 0;b=i*i*i;} else
(a=i;b=i*i;} y=y+(a~b)*(a-b);
}
printfC%lf,z,y);
}
/♦Cl 37*/
^define X 0. 25 #include<math. h>
mainO
{
double y=l, s=l. 28767;
int i;
for(i=l;y<=s;i++)
y=y+ (double)pow(X, i)/i ; printf i);
}
/♦C16 143*/
#include <stdio. h> void mainO {
long sum=0, a[30]={1, 1, 2}; int k;
for( k=2;k<10;k++ )
a[k]= a [kT] +a [k-2];
for( k=0;k<=10;k++ ) sum += a[k];
printf C %ld\nz/, sum);
}
/♦Cl7 694380*/ mainO {
long i,s=0;
for (i=20 ;i<=160;i+=2)
s=s+i*i;
printfs);
}
/*C48 1466295♦/
mainO { long i,s=0; for(i=10;i<=20;i++)
if (i%2=01 | i%3=0 | i%5==0) s=s+i;
printfs); }
/♦Cl9 14510*/ #includez,fun. c” mainO
int i, c=0, s=0; for(i=8;i>=l;i—)
if(prime(i)&&c<20) { C++; s=s+i;
} printf("\n%d",s);
}
/*C50 1.967213*/
#define N 60 mainO { int i; double s; for(i=l;i<=60;i++) s=s+l. 0/((l+i)*i/2);
printf s); }
/*fun. c自定义函数判断素数*/
int prime(int x)
{
int k;
for(k=2;k<x;k++)
if(x%k==0) break;
if(k==x) return 1;
else return 0;
}
c语言程序设计习题库(含答案)
1、设圆半径r=1.5,圆柱iff h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。 用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include <stdio.h>
main () (
float r,h,Cl,Sa,Sb,Va,Vb;
scanf (_" %f ” _, &r);
scanf (〃岩d〃,_&h_);;
Cl=2*3.14*r;
Sa=3.14*r*r;
Sb=4*Sa;
Va=4*3.14*r*r*r/3;
Vb=Sa*h;
printf (” Cl=%. 2fSa=%. 2fSb=%. 2fVa=%. 2fVb=%. 2f ”,Cl, Sa, Sb, Va, Vb);
} 一
2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F.32)/9
输出要求有文字说明,取位2小数。
#include <stdio.h>
main () ( float Fz c;
scanf (!,%f!,z &F);
c=5* (F-32) /9;
printf(nc=% ・2f”,c);
}
X X<1
3、有一函数:y = hx-l l<x<10写一程序,输入x值,输出y值。
3sll x>10
#include <stdio.h>
main () (
int x,y;
printf (n输入 x:n);
scanf (n%d!,z &x);
if (x<l) {/* x<l */
y=x; printf(nx=%3dz y=x=%d\nn,x,y);
) else if (x<10) {/* 1*10 */
y=2*x-1;
printf(nx=%3dz y=2*x-l=%d\nn,x, y);
) else(/* x^lO */
y=3*x-ll; printf (nx=%3dz y=3*x-ll=%d\nHz x# include nstdio .h,T main () {
int x,y;
scanf&x); if(x<l)
( y=x;} else if(x>=l && x<10)
( y=2*x-l; ) else
( y=3*x-ll;) printf (,1%dl,zy);
)# include nstdio.h!, main ()
{
int x,y;
scanf&x);
if(x<l)
( y=x;)
else if(x>=l && x<10)
( y=2*x-l; )
else
( y=3*x-ll;) printf (,f%d\nn,y);
)# include nstdio.h!,
main ()
{
int x,y;
scanf("%d”,&x);
if(x<l)
( y=x;) else if(x>=l &&
( y=2*x-l;) else
( y=3*x-ll;) printf (,f%d!,zy);
} scanf (n%df,z &x);
if (x<l)
( y=x;) else if(x>=l &&
( y=2*x-l;) else
( y=3*x-ll;} # main ()
{
int x,y;
scanf("%d”,&x);
if(x<l)
y=x;
else if(x>=l &&
y=2*x-l;
else
y=3*x-ll;
printf (,f%d!,zy) },y);
x<10)
x<10)
include !,stdio.hn
x<10)
4、给定一个不多于5位的正整数,要求:①求它是几位数;②按逆序打印出各位数字。 例如原数为321,应输出123。
#include <stdio.h>
main (){
long int numzm=0;
int i=0;
scanf (,T%ldnz &num);
while(num>0)(
i++; /*统计长度*/ m=m*10+num%10;
num =num/10;
}
printf (*'数字长度为:;
printf (n逆序数字为:%d\nnzm); }
5、以下程序实现的功能:求三个数的最大值
#include<stdio.h>
main ()(
int azbz c,max;
scanf(n%d %d&b,&c);
if (a>b)(
if (a>c) max=a;
else max=c;
} else(
if (b>c) max=b;
else
max=c;
}
printf (,fmax= %dn,max);
}
#include <stdio.h>
main (){
int x,y,z,t=0;
scanf (!,%d %d &x, &y,&z);
if(x>y)
{t=y;y=x;x=t;} if(x>z)
{t=z;z=x;x=t;} if(y>z)
{t=z;z=y;y=t;)
printf(H%d\nnzz);
6、输入两个正整数m和n,求其最大公约数和最小公倍数。
/*枚举法*/
#include<stdio.h>
main () (
long m,n,i=l,j,s;
scanf(n%ld,%ldnz&m,&n);
for(;i<=m&&i<=n;i++) (
if (m%i=0&&n%i=0) s=i;
}
if (m>=n) j=m;
else j=n;
for(;! (j %m==0&&j %n==0);j++);
printf (ns=%ldz j=%ld\nf,z s, j );
}
#include <stdio.h>
main (){
int a,b, k,temp,i,p;
scanf (”号d, %dlf, &a, &b);
if(a>b)
temp=b;
else
temp=a;
for (i=2;i<=temp;i++)
{ if(a%i==0 && b%i==0)
k=i;
)
printf (fl%d\n!\k);
p=a*b/k;
printf (f,%d\nHzp);
}
〃辗转相除¥/
#include<stdio.h>
main () (
int m,nz kz j zp,r=l;
scanf (!,%dz %dlfz &n);
k= m>n?m:n;
j= m>n? n:m;
do(
r=k%j;
k=j;
j=r;
)while (r!=0);
printf(n%dz %d”,kzm*n/k); )
〃反复减法〃
#include<stdio.h>
main () (
int m,nz kz j,p,r=l;
scanf (!,%dz %d,Tz &m, &n);
k= m>n? m:n;
j= m>n?n :m;
do (
p=k-j;
if (j>P){ k=j; j=p; } else k=p;
} while (p!=0);
printf(n%dz kzm*n/k);
}
7、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
#includef,stdio .hH
main () (
char c;int i=0,j=0,k=0,1=0;
while((c=getchar())!='\nz) (
if(c>=* A' &&c<=, Z' ||c>='a'z')
i++;//英文字母统计
else if (c>=' O' &&c〈=’9')
j++; //数字统计else if (c=‘ ')
k++;//空格统计
else 1++;
}
printf(ni=%d,j=%dz k=%d,l=%d\nn, iz j z k, 1);
}
8、求Sn=a+aa+aaa+ +aa••• aaa (有
展开阅读全文