大题.docx
《大题.docx》由会员分享,可在线阅读,更多相关《大题.docx(17页珍藏版)》请在冰点文库上搜索。
大题
1》求两个数中的较大者。
#include
voidmain()
{
intmax(intx,inty);
inta,b,c;
scanf(“%d,%d,”,&a,&b);
c=max(a,b);
printf(“max=%d\n”,c);
}
intmax(intx,inty)
{
iIntz;
if(x>y)z=x;
elsez=y;
return(z);
}
2》输出实数时指定小数位数
#include
voidmain()
{
floatf=123.456;
printf(“%f%10f%10.2f%.2f%-10.2f\n”,f,f,f,f,f);
}
输出结果如下:
123.456001123.456001123.46123.46123.46
3》用scanf函数输入数据
#include
voidmain()
{
inta,b,c;
scanf(“%d%d%d”,&a,&b,&c);
printf(“%d,%d,%d\n”,a,b,c);
}
4》输入三角形的三边长,求三角形面积。
#include
#include
voidmain()
{
floata,b,c,s,area;
scanf(“%f,%f,%f”,&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(“a=%7.2f,b=%7.2,c=%7.2f,s=%7.2f,s=%7.2f\n”,a,b,c,s);
printf(“area=%7.2f\n”,area);
}
5>输入两个实数,按代数值有小到大的顺序输出这两个数。
#include
voidmain()
{
floata,b,t;
scanf(“%f,%f”,&a,&b);
if(a>b)
{
t=a;
a=b;
b=t;
}
printf(“%5.2f,%5.2f\n”,a,b);
}
运行情况如下:
3.6,-3.2
-3.20,3.60
5》有一函数;
Y=-1,(x<0)
Y=0,(x=0)
Y=1,(x>0)
编一程序,输入一个x值,输出y值。
#include
voidmain()
{
intx,y;
scanf(“%d”,&x)
if(x<0)
Y=-1;
else
if(x==0)y=0;
elsey=1;
printf(“x=%d,y=%d\n”,x,y);
}
6》输入一个字符,判别它是否大写字母,如果是,将它转成小写字母;如果不是,不转换,
然后输出最后得到的字符。
#include
voidmain()
{
charch;
scanf(“%c”,&ch);
ch=(ch>=’A’&&ch<=’z’)?
(ch+32):
ch;
printf(“%c\n”,ch);
}
运行结果如下:
A
a
7》输入两个正整数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);
}
运行情况:
请输入两个正整数:
12,8
它们的最大公约数为:
4
它们的最大公倍数为:
24
8》输入一行字符,分别统计出其中英文字母,空格,数字,和其他字符的个数。
#include
voidmain()
{
charc;
intletter=0,space=0,digit=0,other=0;
printf(“请输入一行字符:
\n”);
while((c=getchar())!
=‘A’&&c<=’Z’)
{
if(c>=’a’&&c<=’z’||c>=’A’&&c<=’Z’)
letters++;
elseif(c==’’)
space++;
elseif(c>=’0’&&c<=’9’)
digit++;
else
other++;
}
Printf(“字母数:
%d\n空格数:
%d\n数字数:
%d\n其他字符数:
%d\n”,letters,space,digit,other);
}
运行结果:
请输入一行字符:
Myteacher’saddressis“#123BeijingRoad,Shanghai”.
字母数:
38
空格数:
6
数字数:
3
其他字符数:
6
9>>”水仙花数:
指一个三位数,其各位数字立方和等于该数本身。
#include
Voidmain()
{
IntI,j,k,n;
Printf(“narcissusnumbersare”);
For(n=100;n<1000;n++)
{
I=n/100;
J=n/10—i*10;
K=n%10;
If(n==i*i*i+j*j*j+k*k*k)
Printf(“%d”,n);
}
Printf(“\n”);
}
运行结果:
Narcissusnumbersare153370371407
10>将一维数组行和列的元素互换,存到拎一个二维数组中。
#include
voidmain()
{
inta[2][3]={1,2,3},{4,5,6}};
intb[3][2],i,j;
printf(“arraya:
\n”);
for(i=o;i<=1;i++)
{
for(j=o;j<=2;j++)
{
pritf(“%5d”,a[i][j]);
b[j][i]=a[i][j];
}
printf(“\n”);
}
printf(“arrayb:
\n”);
for(i=0;i<=2;i++)
{
for(j=0;j<=1;j++)
printf(“%5d”,b[i][j]);
printf(“\n”);
}
}
运行结果如下:
arraya:
123
456
arrayb:
14
25
36
11,有3个整数a,b,c,由键盘输入,输出其中最大的数。
#include
voidmain()
{
inta,b,c;
printf
scanf(“%d,%d,%d”,&a,&b,&c);
if(a
if(bprintf(“max=%d\n”,c);
else
printf(“max=%d\n”,b);
elseif(aprintf(“max=%d\n”,c);
else
printf(“max=%d\n”,a);
}
运行结果:
请输入3个整数:
12,34,9
max=34
方法二:
使用条件表达式,可以使程序更加简明清晰。
#include
voidmain()
{inta,b,c,temp,max;
printf;
scanf(“%d,%d,%d”,&a,&b,&c);
temp=(a>b)?
a:
b;
max=(temp>c)?
temp:
c;
printf
}
运行结果:
12,34,9
34
12,有一函数,当x<1时,y=x;当1==10时y=3x-11.写一程序输入X值,输出Y值。
#include
voidmain()
{intx,y;
printf(“输入x:
”);
scanf(“%d”,&x);
if(x<1)
{y=x;
printf(“x=%3d,y=x=%d\n”,x,y);
}
elseif(x<10)
{y=2*x-1;
printf(“x=%3d,y=2*x-1=%d\n”,x,y);
}
else
{y=3*x-11;
printf(“x=%3d,y=3*x-11=%d\n”,x,y);
}
}
13>,求1+2+3+……+99+100的和。
#include
voidmain()
{
inti,sum=0;
i=1;
while(i<=100)
{
sum=sum+i;
i++;
}
printf(“%d\n”,sum);
}
14>>.有一个3*4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
#include
voidmain()
{
inti,j,row=0,colum=0,max;
inta[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
max=a[0][0];
for(i=0;i<=2;i++)
for(j=0;j<=3;j++)
if(a[i][j]>max)
{
max=a[i][j];
row=i;
colum=j;
}
printf(“max=%d,row=%d,colum=%d\n”,max,row,colum);
}
输出结果为:
max=10,row=2,colum=1
15>>,将一个数组的值按逆序重新存放,例如原来的顺序为:
8,6,5,4,1.要求改为:
1,4,5,6,8.
#include
#defineN5
voidmain()
{inta[N],I,temp;
printf(“enterarraya:
\n”);
for(i=0;iscanf(“%d”,&a[i]);
printf(“arraya:
\n”);
for(i=0;iprintf(“%4d”,a[i]);
for(i=0;i<=N/2;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”);
}
运行结果如下:
enterarraya:
86541
arraya:
86541
Now,arraya:
14568
16》》,用递归方法求n!
.
#include
voidmain()
{
floatfac(intn);
intn;
floaty;
printf(“inputaninintegernumber:
”);
scanf(“%d”,&n);
y=fac(n);
printf(“%d!
=%10.0\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);
}
运行结果如下:
inputanintegernumber:
10
10!
=3628800.
17>>,
有5个人坐在一起,问第5个人多少岁?
他说比第4个人大两岁。
问第4个人的岁数,他说比第3个人大两岁……..问第一个人,他说是十岁。
请问第5个人多大?
#include
voidmain()
{
intage(intn)
{
intc;
if(n==1)
c=10;
else
c=age(n-1)+2;
return(c);
}
printf(“%d\n”,age(5));
}
运行结果如下:
18
18>>,
输入一个华氏温度,要求输出摄氏温度。
公式为C=5/9(F-32),输出要有文字说明,取两位小数。
#include
voidmain()
{floatc,f;
printf(“请输入一个华氏温度:
”);
scanf(“%f”,&f);
c=(5.0/9.0)*(f-32);
printf(“摄氏温度为:
%5.2f\n”,c);
}
运行结果如下:
请输入一个华氏温度:
78
摄氏温度为:
25.56
19>>,判断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
17isaprimenumber
20,调用函数时的数据传递。
#include
Voidmain()
{
Intmax(intx,inty);
Inta,b,c;
Scanf(“%d,%d”,&a,&b);
C=max(a,b);
Printf(“Maxis%d”,c);
}
Intmax(intx,inty)
{
Intz;
Z=x>y?
x:
y;
Return(z);
}
运行情况如下:
7,8
Maxis8
21>>,求1!
+2!
+3!
+。
。
。
+20!
#include
Voidmain()
{floats=0,t=1;
Intn;
For(n=1;n<=20;n++)
{
T=t*n;
S=s+t;
}
Printf(“1!
+2!
+…+20!
=%e\n”,s);
}
运行结果如下:
1!
+2!
+…+20!
=2.561327e