文档库 最新最全的文档下载
当前位置:文档库 › 广工 c语言 经典例题

广工 c语言 经典例题

【习题5.012】请仅在程序空缺处填入合适内容,使其
实现功能:依次输入5个整数,计算它们之和并输出。
**********/

#include <stdio.h>
void main()
{ int i,sum=0, n;
for (i=1;i<=5;i++)
{ scanf("%d",&n );
sum=sum+n ;
}
printf("sum = %d",sum);
}



【习题5.029】请仅在程序空缺处填入合适内容,使其
实现功能:输入大于1的整数到n,在同一个循环语句中
分别计算1到n之间的奇数和偶数之和。
**********/

#include<stdio.h>
void main()
{ int odd,even,i,n;
scanf("%d", &n);
for(i=1,odd=0,even=0;i<=n;i+=2)
{
odd+=i;
if(i+1<=n)
even+=i+1;
}
printf("sum of odd=%d ",odd); /*奇数之和*/
printf("sum of even=%d\n", even);/*偶数之和*/
}


【习题5.030】系统给定外部整型变量n和长整型变量f
(不需要自行定义)。编写程序,求n的阶乘n!,并将
结果存放到f。例如,当n=6时,f=6!=1*2*...*6=720。
注意:0!=1。
**********/
void main()
{
int a=1;
f=1;
if(n==0) f=1;
do
{
f=f*a;
a+=1;
}
while(a<=n);
}


【习题5.032】系统给定外部整型变量n和长整型变量f(不
需要自行定义)。编写程序,求n的双阶乘n!!,并将结果
存放到f。双阶乘的定义是:
当n是奇数时,n!为不大于n的所有奇数的乘积,
如:7!!=1×3×5×7。
当n为偶数时表示不大于n的所有偶数的乘积(0除外),
如:8!!=2×4×6×8。
**********/
void main()
{
int a;
f=1;
if(n==0) f=1;
else if(n%2==0) a=2;
else a=1;
do
{
f=f*a;
a+=2;
}
while(a<=n);
}


【习题5.034】系统给定外部整型变量n和浮点变
量f(不需要自行定义)。编写程序,求负整数n
的阶乘n!,并将结果存放到f。假设m是正整数,
负整数-m的阶乘定义是:(-m)!=1/(m+1)!。
**********/
void main()
{
int a,b;
for(a=1,b=1;a<=(-n+1);a+=1)
{
b*=a;
}
f=1.0/b;
}


【习题5.040】m,n和s是系统定义的外部整型变量(不需要
自行定义)。编写程序,根据m的值求满足1+2+...+n>=m的
最小n,并将1+2+...+n的结果存放到s。例如,若m=50,则
n=10,s=55。
**********/
void main()
{
s=0,n=0;
while(s<m)
{
n+=1;
s+=n;
}
}

【习题5.042】m,n和s是系统定义的外部整型变量(不需要
自行定义)。编写程序,根据m的值求满足1+2+...+n<m的
最大n,并将1+2+...+n的结果存放到s。例如,若m=50,则
n=9,s=45。
**********/
void main()
{
for(s=0,n=1;s<m;n++)
{s+=n;}
n-=1;
s-=n;
n-=1;
if(m==0||m==1) s=0,n=0;
}



【习题5.050】n和s分别是系统给定的外部整型变量和浮点型
变量(不需要自行定义)。编写程序,求1+1/2+1/3+...+1/n,
并将结果存放到s。
**********/
void main()
{
int a;
for(a=1,s=0;a<n+1;a++

)
{s+=1.0/a;}
}

void main()
{

int a,b;
for(a=1,b=1,s=0;a<n+1;a++)
{s+=(1.0*b)/a;b*=(-1);}
}


【习题5.053】系统给定外部整型变量n和浮点型变量s(不
需要自行定义)。编写程序,求1+1/(1+2)+1/(1+2+3)+...
+1/(1+2+...+n),并将结果存放到s。
**********/
void main()
{
int a,b;
for(a=1,b=0;a<=n;a++)
{if(n==0) {s=0;break;}
b+=a;
s+=1.0/b;
}
}

【习题5.055】系统给定外部整型变量n和浮点型变量pi(不需要
自行定义)。编写程序,求序列4,-4/3,4/5,-4/7,4/9,-4/11...
的前n项和,并将结果存放到pi。
**********/
void main()
{
int a=1,b=1;
if(n==0) pi=0;
else
do
{
pi+=(4.0*b)/(2*a-1);
a++;
b*=(-1);
}
while(a<=n);
}


【习题5.056】系统给定外部整型变量n和浮点型变量pi2(不需要
自行定义)。编写程序,求1+1/3+1*2/(3*5)+1*2*3/(3*5*7)+
1*2*3*4/(3*5*7*9)+...+1*2*...*n/(3*5*7*...*(2n+1)),
并将结果存放到pi2。
**********/
void main()
{
long a;
double b,c;
if(n==0) pi2=1;
else
{
pi2=1;
for(a=1,b=1.0,c=1.0;a<=n;a++)
{
b*=a;
c*=(2*a+1);
pi2+=(b/(1.0*c));
}
}
}

【习题5.095】n和s是分别是系统给定的外部整型变量和
实型变量(不需要自行定义)。编写程序,求分数序列
2/1,3/2,5/3,8/5,13/8,21/13,...的前n项和,并将结
果存放到s。
**********/
void main()
{
int a,b,c,d;
if(n==0) s=0;
else
for(a=1,b=2,s=0,d=1;d<=n;d++)
{
s+=(b*1.0)/a;
c=a,a=b,b=a+c;
}
}


【习题5.112】请仅在程序空缺处填入合适内容,使其
实现功能:计算输入正整数n并计算其各位数字之和。
例如,输入n的值是12345时,1+2+3+4+5=15,输出sum=15。
**********/

#include <stdio.h>
void main()
{ int n,sum=0;
scanf("%d",&n);
do
{ sum=sum+(n-n/10*10);
n=n/10;
}while(n);
printf("sum = %d",sum);
}


【习题5.125】请仅在程序空缺处填入合适内容,使其
实现功能:从键盘输入一批整数,直到输入0时结束,
输出其中百位数字是3的整数之和。
**********/

#include <stdio.h>
void main()
{ int num,sum=0;
scanf("%d",&num);
do
{ if(num/100-num/1000*10==3) sum+=num;
scanf("%ld",&num);
}while(num!=0);
printf("sum = %ld",sum);
}


【习题5.161】n和s是分别是系统给定的外部整型变量和长整型变
量(不需要自行定义)。编写程序,求1!+2!+3!+4!+5!+…+n!,
并将结果存放到s。
**********/
void main()
{
long a,b,c;
s=0;
if(n==0) s=0;
else
for(a=1;a<=n;a++)
{
for(b=1,c=1;b<a+1;b++)
{
c*=b;
}
s=s+c;
}
}

【习题5.163】n和e是分别是系统给定的外部整型变量和浮点型变量
(不需要自行定义)。编写程序,求1+1/1!+1/2!+1/3!+…+1/n!,
并将结果存放到e。
**********/
void main()
{
int a=1,b,c;
e=1;

if(n==0) e=1;
else
while(a<=n)
{
for(b=1,c=1;b<=a
;b++)
{c*=b;}
e+=1.0/c;
a++;
}
}

【习题5.165】系统给定外部整型变量n和浮点型变量x和e(不需
要自行定义)。编写程序,求1+x/1!+x^2/2!+x^3/3!+…+x^n/n!,
并将结果存放到e,其中,^是幂运算,x^2表示x的平方,x^n表示
x的n次方。
**********/
void main()
{
int a,b,d,g,f;
double c;
e=1.0;
if(n==0) e=1.0;
else
for(a=1;a<=n;a++)
{
c=d=g=f=1;
do
{c*=x;d++;}
while(d<=a);
while(g<=a)
{f*=g;g++;}
e+=(1.0*c)/f;
}
}


【习题5.172】系统给定外部长整型变量s,整型变量a和n,
且a和n的值均在0和9之间(不需要自行定义)。编写程序,
求a+aa+aaa+…+aa…aaa(有n个a)之值,并将结果存放
到s。例如:a=3和n=5时,求3+33+333+3333+33333。
**********/
void main()
{
int i,t,p,v,y;
if(a==0||n==0) s=0;
else
{
v=0,s=0;
for(i=1;i<=n;i++) //控制相加的次数
{
for(t=1,p=1;t<i;t++) //得到1,11,111,......
{p*=10;}
v+=p,y=a*v,s+=y;
}
}
}



【习题5.175】系统给定外部长整型变量s,整型变量a、m
和n,1<=a<=9且1<=m<=n<=9(不需要自行定义)。编写程
序,求数列a,aa,aaa,…,aa…a(第n项为n个a)中,第m项
至第n项之和,并将结果存放到s。例如:当a=8,m=3且
n=6时,置s=888+8888+88888+888888。
**********/
void main()
{
int e,f,g,h,i;
if(a==0||n==0) s=0;
else
{
i=0,s=0;
for(e=1;e<=n;e++)
{
for(f=1,g=1;f<e;f++)
{g*=10;}
i+=g;
if(f>=m) h=a*i,s+=h;
}
}
}


【习题5.176】系统给定外部长整型变量s,整型变量a、m和
k,1<=a<=9,1<=m<=9且m+k<=9(不需要自行定义)。编写
程序,求数列a,aa,aaa,…,aa…a,…(第i项为i个a)中,第
m项起的k项之和,并将结果存放到s。例如:当a=6,m=4且
k=3时,置s=6666+66666+666666。
void main()
{
int e,f,g,h,i;
if(a==0||k==0) s=0;
else
{
i=0,s=0;
for(e=1;e<=m+k-1;e++)
{
for(f=1,g=1;f<e;f++)
{g*=10;}
i+=g;
if(f>=m) h=a*i,s+=h;
}
}
}



【习题5.184】系统给定外部长整型变量s和整型变量n,
且n的值在0和9之间(不需要自行定义)。编写程序,
求1+21+321+…+n…21之值,并将结果存放到s。例如,
n=5时,置s=1+21+321+4321+54321。
**********/
void main()
{
int e,f,g,i,j;
if(n==0) s=0;
else
for(e=1,s=0;e<=n;e++)
{
for(f=1,g=1,j=0;f<=e;f++)
{
i=g*f,j+=i,g*=10;
}
s+=j;
}
}



【习题5.186】系统给定外部长整型变量s,整型变量m
和n,且1<=m<=n<=9(不需要自行定义)。编写程序,
求12…m+12…(m+1)+…+12…n之值,并将结果存放到s。
例如,m=3且n=6时,置s=123+1234+12345+123456。
**********/
void main()
{
int e,f,g,h,i,j;
if(n==0) s=0;
else
for(e=1,s=0;e<=n;e++)
{
for(f=1,g=1,h=

e,j=0;f<=e;f++)
{
i=g*h,j+=i,g*=10,h--;
}

if(e>=m) s+=j;
}
}

【习题5.187】系统给定外部长整型变量s,整型
变量m和n,且1<=m<=n<=9(不需要自行定义)。
编写程序,求m…21+(m+1)…21+…+n…21之值,
并将结果存放到s。例如,m=3且n=6时,置
s=321+4321+54321+654321。
**********/
void main()
{
int e,f,g,i,j;
if(n==0) s=0;
else
for(e=1,s=0;e<=n;e++)
{
for(f=1,g=1,j=0;f<=e;f++)
{
i=g*f,j+=i,g*=10;
}
if(e>=m) s+=j;
}
}


【习题5.223】请仅在程序空缺处填入合适内容,使其实现
功能:输入并计算一个只包含加减运算的表达式,其中每个
运算数都是正整数,运算符都是“+”或“-”,除第一个数
以外,数前面都有一个运算符,当运算数为0时表
达式终止。 其余每个
**********/

#include<stdio.h>
void main()
{ int term,result;
char ch;
scanf("%d",&result);//result等于第一个数
ch=getchar();//ch为第一个符号
term=result;//若term的值不能确定,会跳过循环
while(term!=0)
{
scanf("%d",&term);
if(ch=='-') term*=-1;
result+=term;
ch=getchar();
}
printf("result: %d\n",result);
}

【习题5.225】请仅在程序空缺处填入合适内容,使其实现
功能:输入并计算一个只包含加减运算的表达式,其中每个
运算数都是正整数,运算符都是“+”或“-”,除第一个数
以外,其余每个数前面都有一个运算符,表达式以分号“;”
终止,例如“23+43-234+157;”。
**********/

#include<stdio.h>
void main()
{ int term,result;
char ch;
scanf("%d",&result);
ch=getchar();//可以使用while循环
term=result;
while(ch!=';')
{
scanf("%d",&term);
if(ch=='-') term*=-1;
result+=term;
ch=getchar();
}


printf("result: %d\n",result);
}

【习题5.233】请仅在程序空缺处填入合适内容,使其实现
功能:输入并计算一个只包含乘除运算的表达式,其中每个
运算数都是正整数,运算符都是“*”或“\”,除第一个数
以外,其余每个数前面都有一个运算符,表达式以分号“;”
终止,例如“9/3*7;”。
**********/

#include<stdio.h>
void main()
{ int term,result;
char ch;
scanf("%d",&result);
ch=getchar();//可以使用while循环
term=result;
while(ch!=';')
{
scanf("%d",&term);
if(ch=='*') result*=term;
else result/=term;
ch=getchar();
}


printf("result: %d\n",result);
}


【习题6.050】系统给定外部字符串s和整型数组c[26](不需要
自行定义)。编写程序,将字符串s中26个小写字母出现的次数
依次统计到数组c中。例如,当s=“abcijkabcdexyzuvwx

”时,
数组c的26个元素值依次为:2 2 2 1 1 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 1 1 1 2 1 1。
**********/
void main()
{
char a,b,e,i;

for(a='a',b=0;a<='a'+25;a++)
{
for(e=0,i=0;s[i]!='\0';i++)
if(s[i]==a) e++;
c[b]=e,b++;
}
}

相关文档
相关文档 最新文档