百度C语言题目精品收藏2.docx
《百度C语言题目精品收藏2.docx》由会员分享,可在线阅读,更多相关《百度C语言题目精品收藏2.docx(14页珍藏版)》请在冰豆网上搜索。
XXC语言题目精品收藏2
41.编程序,求方程aX2+bX+c=0的解;输入a,b,c.
#include
#include
voidmain()
{
floata,b,c,t;
doublex1,x2;
printf("请由高次到低次顺序输入系数:
\n");
scanf("%f%f%f",&a,&b,&c);
t=b*b-4*a*c;
if(t<0)printf("方程无实根\n");
if(t==0)
{
x1=-(b/2/a);
printf("方程有两个相等实根,x1=x2=%5.2f\n",x1);
};
if(t>0)
{
x1=-(b+sqrt(t))/2/a;
x2=-(b-sqrt(t))/2/a;
printf("方程有两个不等实根,x1=%5.2f,x2=%5.2f\n",x1,x2);
}
}
42.编程序,输入4个整数,按由小到大的顺序输出。
#include
#defineN4
voidmain()
{
inta[N],t,i,j;
printf("输入四个整数:
\n");
for(i=0;i scanf("%d",&a[i]);
printf("\n");
for(i=0;i {
for(j=0;j if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
printf("排序后:
\n");
for(i=0;i printf("%d\n",a[i]);
}
43.求满足1+2+3+…+n<500中最大的N,并求其和,编写程序实现。
#include
voidmain()
{
intn=0,sum=0;
while(sum<500)
{
++n;
sum+=n;
}
printf("NֵΪ:
%d\n",n-1);
printf("1+2+3+4+......+%d<500\n",n-1);
}
44.把100~200之间的不能被3整除的数输出。
#include
voidmain()
{
inta;
for(a=100;a<=200;a++)
if(a%3!
=0)printf("%d\t",a);
}
45.求Fibonacci数列前40个数,每行输出5个,将40个Fibonacci数输出。
#include
longf(int);
voidmain()
{
intn,i=0;
for(n=1;n<41;n++)
{
printf("%ld\t",f(n));
i++;
if(i%5==0)printf("\n");
}
}
longf(intm)
{
if(m==0)
return0;
if(m==1)
return1;
else
returnf(m-1)+f(m-2);
}
46.按以下规律翻译密码:
将每一个字母变成它后面的字母,例如,将A变成B,B变成C,…,Z变成A,非字母字符不变,“!
”作为电文结束标志。
#include
voidmain()
{
charch;
printf("输入字符串:
\n");
while((ch=getchar())!
='!
')
{
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
if(ch=='z')ch='a';
elseif(ch=='Z')ch='A';
elsech=ch+1;
printf("%c",ch);
}
printf("\n");
}
47.百元买百鸡问题:
公鸡每只5元,母鸡每只3元,小鸡3只一元,问一百元买一百只鸡有几种买法。
#include
voidmain()
{
inta,b,c,n=0;
for(a=0;a<=20;a++)
for(b=0;b<=33;b++)
for(c=0;c<=100;c++)
if(5*a+3*b+c==100)n++;
printf("一共有%d种\n",n);
}
48.使用数组编程,计算出前20项fibonacci数列,要求一行打印5个数。
#include
longf(int);
voidmain()
{
intn,i=0;
for(n=1;n<21;n++)
{
printf("%ld\t",f(n));
i++;
if(i%5==0)printf("\n");
}
}
longf(intm)
{
if(m==0)
return0;
if(m==1)
return1;
else
returnf(m-1)+f(m-2);
}
49.编程序求出两个3*4矩阵的和并将原矩阵和求出的和矩阵按原矩阵的形式分别输出。
#include
voidmain()
{
inta[3][4],b[3][4],s[3][4],n,m;
printf("输入数组A:
\n");
for(n=0;n<3;n++)
{
printf("第%d行\n",n+1);
for(m=0;m<4;m++)
scanf("%d",&a[n][m]);
}
printf("输入数组B:
\n");
for(n=0;n<3;n++)
{
printf("第%d行\n",n+1);
for(m=0;m<4;m++)
scanf("%d",&b[n][m]);
}
for(n=0;n<3;n++)
{
for(m=0;m<4;m++)
s[n][m]=a[n][m]+b[n][m];
}
printf("原数组A:
\n");
for(n=0;n<3;n++)
{
for(m=0;m<4;m++)
printf("%5d",a[n][m]);
printf("\n");
}
printf("\n");
printf("原数组B:
\n");
for(n=0;n<3;n++)
{
for(m=0;m<4;m++)
printf("%5d",b[n][m]);
printf("\n");
}
printf("\n");
printf("所得数组:
\n");
for(n=0;n<3;n++)
{
for(m=0;m<4;m++)
printf("%5d",s[n][m]);
printf("\n");
}
}
50.将一个4*3的矩阵转置,并将原矩阵和求出的转置矩阵按原矩阵的形式分别输出。
#include
voidmain()
{
inta[4][3],b[4][3],s[4][3],n,m;
printf("输入数组A:
\n");
for(n=0;n<4;n++)
{
printf("第%d行\n",n+1);
for(m=0;m<3;m++)
scanf("%d",&a[n][m]);
}
printf("输入数组B:
\n");
for(n=0;n<4;n++)
{
printf("第%d行\n",n+1);
for(m=0;m<3;m++)
scanf("%d",&b[n][m]);
}
for(n=0;n<4;n++)
{
for(m=0;m<3;m++)
s[n][m]=a[n][m]+b[n][m];
}
printf("原数组A:
\n");
for(n=0;n<4;n++)
{
for(m=0;m<3;m++)
printf("%5d",a[n][m]);
printf("\n");
}
printf("\n");
printf("原数组B:
\n");
for(n=0;n<4;n++)
{
for(m=0;m<3;m++)
printf("%5d",b[n][m]);
printf("\n");
}
printf("\n");
printf("所得数组:
\n");
for(n=0;n<4;n++)
{
for(m=0;m<3;m++)
printf("%5d",s[n][m]);
printf("\n");
}
}
51.输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是小写字母,则把它变成大写字母;其它字符不变,请编程。
#include
voidmain()
{
charch;
ch=getchar();
if((ch>=65)&&(ch<=90))ch=ch+32;
elseif((ch>=97)&&(ch<=122))ch=ch-32;
printf("%c\n",ch);
}
52.已知x和y存在下列对应关系,要求对输入的每个x值,计算出y值,请编程。
y=x*(x+2),2#include
voidmain()
{
floatx,y;
printf("输入X值:
");
scanf("%f",&x);
if(x<=-1)
{
y=x-1;
printf("Y=%6.2f\n",y);
}
elseif(x<=2)
{
y=2*x;
printf("Y=%6.2f\n",y);
}
elseif(x<=10)
{
y=x*(x+2);
printf("Y=%6.2f\n",y);
}
elseprintf("取值范围出错\n");
}
53.已知x和y存在下列对应关系,要求对输入的每个x值,计算出y值,请编程。
y=0,x=a||x=-a; y=sqrt(a*a-x*x),-aa.
#include
#include
voidmain()
{
floatx,y,a;
printf("输入A值[A>0]:
");
scanf("%f",&a);
printf("输入X值:
");
scanf("%f",&x);
if((x==a)||(x==-a))y=0;
elseif((x-a))y=sqrt(a*a-x*x);
elseif((x<-a)||(x>a))y=x;
printf("Y=%6.2f\n",y);
}
54.编程判断对输入的任何一个年份是否是闰年,将结果输出。
#include
voidmain()
{
intn;
printf("输入年份:
");
scanf("%d",&n);
if(n%4==0&&n%100!
=0||n%400==0)printf("闰年\n");
elseprintf("不是闰年\n");
}
55.请编制程序要求输入整数a和b,若a*a+b*b大于100,则输出a*a+b*b百位以上的数字,否则输出两数之和。
#include
voidmain()
{
inta,b,c,d;
printf("请输入两个整数:
\n");
scanf("%d,%d",&a,&b);
printf("你输入的两个数为:
%d,%d\n",a,b);
c=a*a+b*b;
if(c>=100)
{
d=c/100;
printf("a*a+b*b的百位以上的数为:
%d\n",d);
}
else
printf("a*a+b*b=%d/n",c);
}
56.请编制程序判断输入的正整数是否既是5又是7的整倍数。
若是,则输出yes;否则输出no.
#include
voidmain()
{
inta;
printf("请输入要验证的数:
\n");
scanf("%d",&a);
if(a%5==0&&a%7==0)
printf("Yes\n");
else
printf("No\n");
}
57.编程实现:
计算1到100之间的奇数之和及偶数之和。
#include
voidmain()
{
intn,even=0,odd=0;
for(n=1;n<=50;n++)
{
even+=2*n;
odd+=2*n-1;
}
printf("1到100间的偶数的和为%d:
\n",even);
printf("1到100间的奇数的和为%d:
\n",odd);
}
58.请编程实现:
求100个任意整数的累加和。
59.请编程实现:
求1到100之间所有能被3整除,但不能被5整除的数的和。
60.请编程实现:
输入任意正整数n,计算n!
并将结果输出,输出结果中没有小数部分。
61.请编程实现:
计算1至50中是7的倍数的数值之和。
62.请编程实现:
对任意100个整数,统计0的个数及正数的累加和。
#include
#defineN100
voidmain()
{
inta,sum=0,i,frequency=0;
ints[N];
printf("请输入数据:
\n");
for(i=0;i scanf("%d",&s[i]);
printf("\n原始数据为:
\n");
for(i=0;i printf("%d\n",s[i]);
for(i=0;i {
if(s[i]==0)
frequency+=1;
if(s[i]>0)
{
a=s[i];
sum+=a;
}
}
printf("这些数中0的个数为%d\n",frequency);
printf("这些数中所有正数的和为%d\n",sum);
}
63.请编程实现:
输入两个整数,判断它们之间的关系(=,<,>等),并清楚地将比较结果输出。
64.请编程实现:
输入几个整数,判断其中偶数的个数,并输出结果(要求:
数据的个数及原始数据由键盘输入)。
#include
#defineN20
voidenter(inta[],intn)
{
inti;
printf("请输入数据:
\n");
for(i=0;i scanf("%d",&a[i]);
printf("\n原始数据为:
\n");
for(i=0;i printf("%d",a[i]);
printf("\n");
}
voidmain()
{
voidenter(int[],int);
inti;
inta[N],n;
printf("\n输入你所要的数组元素个数:
\n");
scanf("%d",&n);
enter(a,n);
for(i=0;i {
if(a[i]%2==0)
printf("其中的偶数是%d\n",a[i]);
}
}
65.请编程实现:
输入几个整数,判断其中奇数的个数,并输出奇数的累加和。
(要求:
数据的个数及原始数据由键盘输入)
#include
#defineN20
voidenter(inta[],intn)
{
inti;
printf("请输入数据:
\n");
for(i=0;i scanf("%d",&a[i]);
printf("\n原始数据为:
\n");
for(i=0;i printf("%2d",a[i]);
printf("\n");
}
voidmain()
{
voidenter(int[],int);
inti;
inta[N],n,sum=0;
printf("\n输入你所要的数组元素个数:
\n");
scanf("%d",&n);
enter(a,n);
for(i=0;i {
if(a[i]%2==1)
{printf("其中的奇数是%d\n",a[i]);
sum=sum+a[i];}
}printf("奇数和是%d\n",sum);
}
66.有一个两位数XY,X是十位,Y是个位;给出X+Y的值和X*Y的值;编程实现让用户猜测这个两位数十多少?
根据猜测给出不同的提示。
#include
voidmain()
{
printf("x+y=2\n");
printf("x*y=1\n");
printf("请输入你所猜得数字\n");
inta;
scanf("%d",&a);
for(;a!
=11;)
{printf("youarenotright\n");
scanf("%d",&a);}
printf("youareright\n");
}
67.键盘输入的一个两位数XY,X是十位,Y是个位;请编程计算X+Y的值和X*Y的值。
#include
voidmain()
{
printf("请输入一个两位数\n");
inta,x,y;
scanf("%d",&a);
x=a/10;
y=a%10;
printf("x+y=%d\n",x+y);
printf("x*y=%d\n"x*y);
}
68.用for循环语句计算1到20的和,并将结果输出。
#include
voidmain()
{
inti=1,sum=0;
for(;i<=20;)
{
sum=sum+i;
i++;
}
printf("1到20的和是%d\n",sum);
}
69.从键盘输入一行字符,统计出输入的字符个数(注:
不要使用strlun函数编程)。
#include
voidmain()
{ intalphabet=0,i=0;
charstr[100];
printf("请输入一个字符串\n");
gets(str);
for(i=0;str[i]!
='\0';i++)
++alphabet;
printf("有%d个字母\n",alphabet);
}
70.编程实现:
任意输入10个数,计算所有正数的和,负数的和以及10个数的和。
#include
voidmain()
{ inti;
floata[10];
printf("请输入任意十个数\n");
for(i=0;i<10;i++)
{
printf("a[%d]=",i);
scanf("%f",&a[i]);
}
printf("\n");
printf("\n原始数据为:
\n");
for(i=0;i<10;i++)
printf("%3f",a[i]);
floatsum1=0,sum2=0,sum3=0;
for(i=0;i<10;i++)
{if(a[i]>0)sum1=sum1+a[i];
else sum2=sum2+a[i];
sum3=sum1+sum2;}
printf("正数的和是%f",sum1);
printf("负数的和是%f",sum2);
printf("总和是%f",sum3);
}
71.编程实现:
求任意20个数中的正数之和及正数的个数,并将结果输出。
#include
voidmain()
{ inti;
floata[20];
printf("请输入任意二十个数\n");
for(i=0;i<20;i++)
{
printf("a[%d]=",i);
scanf("%f",&a[i]);
}
intm=0;
floatsum=0;
for(i=0;i<20;i++)
{
if(a[i]>0)
m++;
}
for(i=0;i<20;i++)
sum=sum+a[i];
printf("正数的个数是%d",m);
printf("所有数的和是%f",sum);
}
72.编程实现:
对键盘输入的任意一个四位正整数,计算各位数字平方和。
如:
2345则:
计算2*2+3*3+4*4+5*5
#include
#include
voidmain()
{
printf("请输入一个四位数\n");
intx,a,b,c,d,s;
scanf("%d",&x);
a=x/1000;
b=x/100-10*a;
c=x/10-100*a-10*b;
d=x%10;
printf("a=%d\n",a);
printf("b=%d\n",b);
printf("c=%d\n",c);
printf("d=%d\n",d);
s=a*a+b*b+c*c+d*d;
printf("各位数字的平方和是%d\n",s);
}
73.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完,请编程。
#include
voidmain()
{