c语言编程复习资料Word文档格式.docx
《c语言编程复习资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《c语言编程复习资料Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
![c语言编程复习资料Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-10/29/22b5cf6f-f4da-4d7f-ba29-7f7281abd2c6/22b5cf6f-f4da-4d7f-ba29-7f7281abd2c61.gif)
i!
=j&
j!
=k)/*确保i、j、k三位互不相同*/
%d,%d,%d\n"
i,j,k);
}
getch();
/*2、题目:
企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;
利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;
20万到40万之间时,高于20万元的部分,可提成5%;
40万到60万之间时高于40万元的部分,可提成3%;
60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
longinti;
intbonus1,bonus2,bonus4,bonus6,bonus10,bonus;
/*bonus意思为奖金*/
scanf("
%ld"
&
i);
bonus1=100000*0.1;
bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
if(i<
=100000)
bonus=i*0.1;
elseif(i<
=200000)
bonus=bonus1+(i-100000)*0.075;
=400000)
bonus=bonus2+(i-200000)*0.05;
=600000)
bonus=bonus4+(i-400000)*0.03;
=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
bonus=%d"
bonus);
/*3、题目:
求1+2!
+3!
+...+20!
的和*/
main()
intk,i,j,sum,a;
sum=0;
a=1;
k=20;
for(i=1;
=k;
i++)
{
for(j=1;
=i;
a=a*j;
sum+=a;
}
printf("
%d"
sum);
/*4、题目:
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
math.h"
longinti,x,y,z;
for(i=1;
100000;
x=sqrt(i+100);
/*x为加上100后开方后的结果;
sqrt为开方号*/
y=sqrt(i+268);
/*y为再加上168后开方后的结果*/
if(x*x==i+100&
y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方
数*/
\n%ld\n"
i);
/*5、题目:
输入三个整数x,y,z,请把这三个数由小到大输出。
intx,y,z,t;
%d%d%d"
x,&
y,&
z);
if(x>
y)
{t=x;
x=y;
y=t;
}/*交换x,y的值*/
if(x>
z)
{t=z;
z=x;
x=t;
}/*交换x,z的值*/
if(y>
{t=y;
y=z;
z=t;
}/*交换z,y的值*/
从小到大:
%d%d%d\n"
x,y,z);
/*6、题目:
输出9*9口诀。
#include<
stdio.h>
//标准输入输出头文件
intmain()/*主函数,int是函数返回类型
,意思就是这个函数的执行结果是个整数。
inti,j;
//声明两个整形变量
=9;
i++)//for循环,i从1开始,每次加1,一直到9
j++)//for循环,j从一开始,每次加1,一直到i
%d*%d=%-4d"
j,i,j*i);
/*输出乘法口诀,-4d表示左对齐,占4位*/
/*每一行后换行*/
return0;
//函数返回0
/*7、题目:
古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
#include<
voidmain()
inta[100],i,n;
请输入月数:
scanf("
n);
a[0]=a[1]=1;
for(i=2;
n;
a[i]=a[i-1]+a[i-2];
%d\n"
a[n-1]);
longf1,f2;
inti;
f1=f2=1;
=20;
%12ld%12ld"
f1,f2);
if(i%2==0)printf("
/*控制输出,每行四个*/
f1=f1+f2;
/*前两个月加起来赋值给第三个月*/
f2=f1+f2;
/*8、题目:
判断101-200之间有多少个素数,并输出所有素数。
*/教材P101,例3-16*/
intm,i,k,h=0,leap=1;
for(m=101;
m<
=200;
m++)
k=sqrt(m+1);
for(i=2;
if(m%i==0)
leap=0;
break;
if(leap)
%-4d"
m);
h++;
if(h%10==0)
leap=1;
\nThetotalis%d"
h);
/*9、题目:
打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
main()/*教材P99,例3-15*/
inti,j,k,n;
水仙花数目:
"
for(n=100;
n<
1000;
n++)
i=n/100;
/*分解出百位*/
j=n/10%10;
/*分解出十位*/
k=n%10;
/*分解出个位*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
%-5d"
n);
/*10、题目:
输入两个正整数m和n,求其最大公约数和最小公倍数。
intGcd(intm,intn)/*最大公约数*/
intt;
if(m<
n)
t=n,n=m,m=t;
if(n==0)returnm;
elsereturnGcd(n,m%n);
intA,B,gys,gbs;
%d%d"
A,&
B);
gys=Gcd(A,B);
gbs=A*B/gys;
最大公因数为:
%d,最小公倍数为%d\n"
gys,gbs);
/*11、题目:
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
voidmain()/*另外教材105,例3-21*/
inti,j,k;
intchars=0,nums=0,spaces=0,elses=0;
chara[100]="
"
;
请输入一字符串:
gets(a);
for(i=0;
strlen(a);
if(a[i]>
='
A'
a[i]<
Z'
)chars++;
elseif(a[i]>
a'
z'
0'
9'
)nums++;
elseif(a[i]=='
'
)spaces++;
elseelses++;
\n字母:
%d数字:
%d空格:
%d其它:
chars,nums,spaces,elses);
/*12、题目:
有5个人坐在一起,问第五个人多少岁?
他说比第4个人大2岁。
问第4个人岁数,他说比第3个人大2岁。
问第三个人,又说比第2人大两岁。
问第2个人,说比第一个人大两岁。
最后问第一个人,他说是10岁。
请问第五个人多大?
intmain()
inti,age[6];
//age[i]表示第i个人的年龄
age[1]=10;
for(i=2;
i<
=5;
++i)//从第2个人开始一直到第5个人,他们都比上一个人大2岁
age[i]=age[i-1]+2;
age[5]);
/**/
/*教材P114,例4-5*/
inta[10],i,j,t;
输入十个:
10;
scanf("
a[i]);
10-1;
for(j=0;
10-1-i;
if(a[j]>
a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
printf("
从小到大的顺序:
for(i=0;
printf("
%4d"
a[i]);
/*14、题目:
将一个数组逆序输出。
#defineN10
inta[N],i,temp;
请输入10个整数:
N);
N;
printf(