C程序设计编程题.docx
《C程序设计编程题.docx》由会员分享,可在线阅读,更多相关《C程序设计编程题.docx(53页珍藏版)》请在冰豆网上搜索。
C程序设计编程题
1.abc为一位整数求满足abc加cba等于1333的各值
#include
voidmain()
{
inta,b,c;
for(a=0;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
if(100*(a+c)+20*b+a+c==1333)
printf("a=%db=%dc=%d\n",a,b,c);
}
2,a加a的平方加到a的n次方
#include
voidmain()
{
inta,n,i;
longk=1,s=0;
scanf("%d%d",&a,&n);
for(i=1;i<=n;i++)
{
k=k*a;
s=s+k;
}
printf("a=%dn=%d\ns=%ld\n",a,n,s);
}
3,插入数据到数组
#include
voidmain()
{
inta[11]={1,4,6,9,13,16,19,28,40,100};
inttemp1,temp2,num,end,i,j;
printf("初始数组如下:
");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
printf("输入插入数据:
");
scanf("%d",&num);
end=a[9];
if(num>end)
a[10]=num;
else
{
for(i=0;i<10;i++)
if(a[i]>num)
{
for(j=9;j>=i;j--)
a[j+1]=a[j];
a[i]=num;
break;
}
}
for(i=0;j<11;i++)
printf("%5d",a[i]);
printf("\n");
}
4,从键盘输入一个字符串,再输入两个正整数m和n,输出字符串中从m开始,连续n个字符。
例如:
输入abcdefg,2,3,输出bcd
#include
voidmain()
{
chara[100];
gets(a);
intm,n,i;
scanf("%d%d",&m,&n);
for(i=m-1;iprintf("%c",a[i]);
printf("\n");
}
5,大小写字母的转换
#include
voidmain()
{
charc1,c2;
c1='a';
c2='b';
c1=c1-32;
c2=c2-32;
printf("%c%c",c1,c2);
}
6,递归法求n!
#include
voidmain()
{
floatfac(intn);
intn;
floaty;
printf("inputanintegernumber:
");
scanf("%d",&n);
y=fac(n);
printf("%d!
=%10.0f\n",n,y);
}
floatfac(intn)
{
floatf;
if(n<0)
{
printf("n<0,dataerror!
");
}
else
if(n==0||n==1)
f=1;
else
f=fac(n-1)*n;
return(f);
}
7,对角线元素之和
#include
voidmain()
{
inta[3][3],sum=0;
inti,j;
printf("请输入矩阵元素:
\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%f",a[i][j]);
for(i=0;i<3;i++)
sum=sum+a[i][i];
printf("对角元素之和=6.2f",sum);
}
8,给一个不多于5位的正整数,要求1求它是几位数2分别打印出每一位数字
#include
voidmain()
{
longintnum;
intplace;
printf("请输入一个整数(0~99999):
");
scanf("%ld",&num);
if(num>9999)
place=5;
elseif(num>999)
place=4;
elseif(num>99)
place=3;
elseif(num>9)
place=2;
elseplace=1;
printf("place=%d\n",place);
printf("每位数字为:
");
}
9,猴子摘桃
#include
voidmain()
{
intday,x1,x2;
day=9;
x2=1;
while(day>0)
{
x1=(x2+1)*2;
x2=x1;
day--;
}
printf("total=%d\n",x1);
}
10,计算并输出1—200之间不能被5整除的整数之和
#include
voidmain()
{
inti,sum=0;
for(i=1;i<=200;i++)
if(i%5!
=0)sum=sum+i;
printf("%d\n",sum);
}
11,将输入的一个字符串中的a用xinghao代替输出
#include
voidmain()
{
charstr[10];
inti;
scanf("%s",str);
for(i=0;i<10;i++)
if(str[i]=='a')
str[i]='*';
puts(str);
}
12,将一个大写字母改用小写输出
#include
voidmain()
{
charc1,c2;
c1=getchar();
printf("%c,%d\n",c1,c1);
c2=c1+32;
printf("%c,%d\n",c2,c2);
}
13,将一个数组逆序存放
#include
#defineN5
voidmain()
{
inta[N]={8,6,5,4,1},i,temp;
printf("enterarray:
\n");
for(i=0;iscanf("%d",&a[i]);
printf("arraya:
\n");
for(i=0;iprintf("%4d",a[i]);
for(i=0;i{
temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
printf("\nNow,arraya:
\n");
for(i=0;iprintf("%4d",a[i]);
printf("\n");
}
14,矩阵的行列互换
#include
#defineN3
intarray[N][N];
voidmain()
{
voidconvert(intarray[][3]);
inti,j;
printf("intputarray:
\n");
for(i=0;ifor(j=i+1;jscanf("%d",array[i][j]);
printf("\noriginalarray:
\n");
for(i=0;i{
for(j=0;jprintf("%5d",array[i][j]);
printf("\n");
}
}
voidconvert(intarray[][3])
{
inti,j,t;
for(i=0;ifor(j=i+1;j{
t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}
15,连接两个字符串
#include
voidmain()
{
chars1[80],s2[40];
inti=0,j=0;
printf("\n请输入字符串1:
");
scanf("%s",s1);
printf("\n请输入字符串2:
");
scanf("%s",s2);
while(s1[i]!
='\0')
i++;
while(s2[j]!
='\0')
s1[i++]=s2[j++];
s1[i]='\0';
printf("\n连接后字符串为:
%s",s1);
}
16,判断m是否为素数
#include
#include
voidmain()
{
intm,i,k;
scanf("%d",&m);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>k)printf("%disaprimenumber\n",m);
elseprintf("%disnotaprimenumber\n",m);
}
17,判断整数是否为素数
#include
voidmain()
{
intprime(int);
intn;
printf("\nintputaninteger:
");
scanf("%d",&n);
if(prime(n))
printf("\n%disaprime.\n",n);
else
printf("\n%disnotaprime.\n",n);
}
intprime(intn)
{
intflag=1,i;
for(i=2;iif(n%i==0)
flag=0;
return(flag);
}
18,起泡法排序
#include
#include
#defineN10
charstr[N];
voidmain()
{
voidsort(char[]);
inti,flag;
for(flag=1;flag==1;)
{
printf("intputstring:
\n");
scanf("%s",&str);
if(strlen(str)>N)
printf("stringtoolong,intputagain!
");
else
flag=0;
}
sort(str);
printf("stringsorted:
");
for(i=0;iprintf("%c",str[i]);
printf("\n");
}
voidsort(charstr[])
{
inti,j;
chart;
for(j=1;jfor(i=0;(i='\0');i++)
if(str[i]>str[i+1])
{
t=str[i];
str[i]=str[i+1];
str[i+1]=t;
}
}
19,求1!
+2!
+++20!
#include
voidmain()
{
floats=0,t=1;
intn;
for(n=1;n<=20;n++)
{
t=t*n;
s=s+t;
}
printf("1!
+2!
+3!
+...+20!
=%e\n",s);
}
20,求1到100的和
#include
voidmain()
{
inti,sum=0;
i=1;
while(i<=100)
{
sum=sum+i;
i++;
}
printf("%d\n",sum);
}
21,求1到100的和加上1到50的平方和再加上1到10的倒数和
#include
voidmain()
{
intn1=100,n2=50,n3=10;
floatk;
floats1=0,s2=0,s3=0;
for(k=1;k<=n1;k++)
s1=s1+k;
for(k=1;k<=n2;k++)
s2=s2+k*k;
for(k=1;k<=n3;k++)
s3=s3+1/k;
printf("sum=%8.2f\n",s1+s2+s3);
}
22,求5!
#include
voidmain()
{
intt=1,i=2;
do
{
t=t*i;
i++;
}
while(i<=5);
printf("t=%d\n",t);
}
23,求100~200间的全部素数
#include
#include
voidmain()
{
intm,k,i,n=0;
for(m=101;m<=200;m=m+2)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>=k+1)
{
printf("%d",m);
n=n+1;
}
if(n%10==0)
printf("\n");
}
printf("\n");
}
24,求100之内能被17整除的最大的数
#include
voidmain()
{
inti;
for(i=100;i>=1;i--)
if(i%17==0)
{
printf("%d\n",i);
break;
}
}
25,求Fibonacci数列的前40个数
一、
#include
voidmain()
{
longintf1,f2;
inti;
f1=1;f2=1;
for(i=1;i<=20;i++)
{
printf("%12ld%12ld",f1,f2);
if(i%2==0)
printf("\n");
f1=f1+f2;
f2=f2+f1;
}
}
二、
#include
voidmain()
{
longintf1,f2,t;
inti;
f1=1;f2=1;
printf("%12ld%12ld",f1,f2);
for(i=3;i<=40;i++)
{
t=f1+f2;
printf("%12ld",t);
if(i%4==0)
printf("\n");
f1=f2;
f2=t;
}
}
26,求m和n的最大公约数和最小公倍数
#include
voidmain()
{
intp,r,n,m,temp;
printf("请输入两个正整数:
");
scanf("%d,%d",&n,&m);
if(n{
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!
=0)
{
r=n%m;
n=m;
m=r;
}
printf("它们的最大公约数为:
%d\n",n);
printf("它们的最小公倍数为:
%d\n",p/n);
}
27.求Sn的值
#include
voidmain()
{
intp,r,n,m,temp;
printf("请输入两个正整数:
");
scanf("%d,%d",&n,&m);
if(n{
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!
=0)
{
r=n%m;
n=m;
m=r;
}
printf("它们的最大公约数为:
%d\n",n);
printf("它们的最小公倍数为:
%d\n",p/n);
}
28、求两数之和
#include
voidmain()
{
floatadd(floatx,floaty);
floata,b,c;
scanf("%f,%f",&a,&b);
c=add(a,b);
printf("sumis%f\n",c);
}
floatadd(floatx,floaty)
{
floatz;
z=x+y;
return(z);
}
29,求满足1到n的平方的和小于等于800的最大的n值
#include
voidmain()
{
inti,n,sum=0;
for(i=1;;i++)
{
sum+=i*i;
if(sum>800)break;
}
n=i-1;
printf("最大n=%d\n",n);
}
29,求数列的前20项之和
#include
voidmain()
{
inti,t,n=20;
floata=2,b=1,s=0;
for(i=1;i<=n;i++)
{
s=s+a/b;
t=a;
a=a+b;
b=t;
}
printf("sum=%9.6f\n",s);
}
30,求五个数是几位数,各位数字逆序输出
#include
voidmain()
{
inti,a,b,c,d,e;
scanf("%d",&i);
if(i>=100000)printf("error\n");
elseif(i>9999)printf("它是一个五位数");
elseif(i>999)printf("它是一个四位数");
elseif(i>99)printf("它是一个三位数");
elseif(i>9)printf("它是一个二位数");
elseprintf("它是一个一位数");
printf("\n");
a=i/10000,b=i/1000-a*10,c=i/100-b*10-a*100,
d=i/10-c*10-b*100-a*1000,e=i%10;
if(a==0)
{
if(b==0)
{
if(c==0)
{
if(d==0)printf("%d",e);
elseprintf("%d%d",e,d);
}
elseprintf("%d%d%d",e,d,c);
}
elseprintf("%d%d%d%d",e,d,c,b);
}
elseprintf("%d%d%d%d%d",e,d,c,b,a);
printf("\n");
}
31,求一维数组内10个学生的平均成绩
#include
voidmain()
{
floataverage(floatarray[10]);
floatscore[10],aver;
inti;
printf("input10scores:
\n");
for(i=0;i<10;i++)
scanf("%f",&score[i]);
printf("\n");
aver=average(score);
printf("averagescoreis%5.2f\n",aver);
}
floataverage(floatarray[10])
{
inti;
floataver,sum=array[0];
for(i=1;i<10;i++)
sum=sum+array[i];
aver=sum/10;
return(aver);
}
32,求~~~的前十五项之和
#include
voidmain()
{
floata[16],b[15],sum=0.0;
inti;
a[0]=1,a[1]=2;
for(i=2;i<16;i++)
a[i]=a[i-1]+a[i-2];
for(i=0;i<15;i++)
b[i]=a[i+1]/a[i];
for(i=0;i<15;i++)
sum+=b[i];
printf("sum=%f\n",sum);
}
33,求圆周长圆面积圆球表面积圆球体积圆柱体积
#include
voidmain()
{
floath,r,l,s,sq,vq,vz;
floatpi=3.1415926;
printf("请输入圆半径r,圆柱高h:
");
scanf("%f,%f",&r,&h);
l=2*pi*r;
s=r*r*pi;
sq=4*pi*r*r;
vq=4.0/3.0*pi*r*r*r;
vz=pi*r*r*h;
printf("圆周长为:
l=%6.2f\n",l);
printf("圆面积为:
s=%6.2f\n",s);
printf("圆球表面积为:
sq=%6.2f\n",sq);
printf("圆球体积为:
vq=%6.2f\n",vq);
printf("圆柱体积为:
vz=%6.2f\n",vz);
}
34、球从高处落下的反弹
#include
voidmain()
{
floatsn=100,hn=sn/2;
intn;
for(n=2;n<=10;n++)
{
sn=sn+2*hn;
hn=hn/2;
}
printf("第十次落地时共经过%fm。
\n",sn);
printf("第十次反弹%fm。
\n",hn);
}
35、三个学生四门成绩,求每个学生的总成绩和平均成绩
#include
voidmain()
{
inta[3][4]={60,70,65,75,75,80,75,90,95,