c语言实验常见题目.docx
《c语言实验常见题目.docx》由会员分享,可在线阅读,更多相关《c语言实验常见题目.docx(42页珍藏版)》请在冰点文库上搜索。
c语言实验常见题目
C语言实验题答案
(仅供参考)
01.*****求圆柱体的体积、表面积、周长、底面积。
注意符号常量的使用。
#include
#definePI3.14
voidmain()
{
floatr,h;
doubleV,S,s,c;
printf("请输入圆柱体的半径r和高h:
");
scanf("%f%f",&r,&h);
V=PI*r*r*h;
S=2*PI*r*h;
s=PI*r*r;
c=2*PI*r;
printf("%f\t%f\t%f\t%f\n",V,S,s,c);
}
02.*****输入并运行下面的程序,注意变量的定义与赋值。
#include
voidmain()
{
inta=3,b=5;
floatx,y;
x=1.5;
y=1.5;
printf("%d\t%d\n",a,b);
printf("%f\t%f\n",x,y);
}
03.*****从键盘输入两个整数x,y.求x+y;x-yx*y;x/y;x%y.
#include
voidmain()
{
intx,y;
printf("请输入两个整数x,y:
");
scanf("%d%d",&x,&y);
printf("%d\t%d\t%d\t%d\n",x+y,x-y,x*y,x/y,x%y);
}
04.*****.鸡和兔的头数h,鸡和兔的脚的个数f.求多少鸡和兔。
#include
voidmain()
{
inta,b,h,f;
printf("请输入鸡和兔的头数为h头和鸡和兔的脚的个数为f个:
");
scanf("%d%d",&h,&f);
a=(4*h-f)/2;
b=(f-2*h)/2;
printf("鸡的只数a=%d\n,兔的只数b=%d\n",a,b);
}
05.*****A以15m/s的速度行驶十分钟后,B以20m/s的速度追赶,问多长时间能追上。
#include
voidmain()
{
floatu,v,t,x;
u=20,v=15,t=600;
x=v*t/(u-v);
printf("%f\n",x);
}
06.*****编写程序,输入三角形的边长,求三角形面积。
#include
#include
voidmain()
{
floata,b,c,area,s;
printf("请输入有效的三边长为a,b,c:
\n");
scanf("%f%f%f",&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("%f\n",area);
}
07.*****编写程序,分别求三个实数的整数部分与小数部分之和。
#include
voidmain()
{
floata,b,c;
intx,y,xs;
doublels;
printf("请输入三个实数a,b,c:
");
scanf("%f%f%f",&a,&b,&c);
x=(int)a;
y=(int)b;
xs=(int)a+(int)b+(int)c;
ls=(a-(int)a)+(b-(int)b)+(c-(int)c);
printf("%d\t%d\n",x,y);
printf("%d\t%f\n",xs,ls);
}
08.*****从键盘输入一个四位的整数,求该四位数的千位数,百位数,十位数,个位数。
#include
voidmain()
{
intx,qian,bai,shi,ge;
printf("请输入一个四位的整数x:
");
scanf("%d",&x);
qian=x/1000;
bai=x%1000/100;
shi=x%100/10;
ge=x%10;
printf("%d\t%d\t%d\t%d\n",qian,bai,shi,ge);
}
09.*****输入一个字符,如果为大写字母或在0到9之间则字符不变输出,其他字符,用*代替输出。
#include
voidmain()
{
chara,p;
scanf("%c",&a);
p=('A'<=a&&a<='Z'||'0'<=a&&a<='9')?
a:
'*';
printf("%c\n",p);
}
10..*****从键盘上输入一个四位整数x,分别获取四位数的千位,百位,十位,个位,组成新的一个四位整数y,它是由原四位数的百位,个位,千位,十位,顺序组成,在计算差值(y-x);
在组成两个三位数,m是由个位,百位,千位顺序组成,n是由千位,个位,百位组成。
#include
voidmain()
{
intge,shi,bai,qian,x,y,cha,m,n;
printf("请输入一个四位整数x:
");
scanf("%d",&x);
ge=x%10;
shi=x%100/10;
bai=x%1000/100;
qian=x/1000;
y=bai*1000+ge*100+qian*10+shi;
printf("%d\n%d\n%d\n%d\n",ge,shi,bai,qian);
m=ge*100+bai*10+qian;
n=qian*100+ge*10+bai;
cha=y-x;
printf("%d\t%d\t%d\t%d\n",y,cha,m,n);
}
11.*****用符号常量编程求解圆的周长和面积,球的体积和表面积,圆锥的体积,圆柱的体积。
输出时要有中文文字说明,且小数点后保留两位有效数字。
#include
#definePI3.14
voidmain()
{
floatr,h;
doublec,s,V1,S,V2,V3;
printf("请输入半径r和高h:
");
scanf("%f%f",&r,&h);
c=2*PI*r;
s=PI*r*r;
V1=4.0/3*PI*r*r*r;
S=4*PI*r*r;
V2=1.0/3*PI*r*r*r;
V3=PI*r*r*h;
printf("圆的周长c=%0.2f\n圆的面积s=%0.2f\n球的体积V1=%0.2f\n球的表面积S=%0.2f\n圆锥的体积V2=%0.2f\n圆柱的体积V3=%0.2f\n",c,s,V1,S,V2,V3);
}
12.*****将两个两位a,b正整数,形成一个四位数,a的十位做四位数的千位,a的个位做四位数的十位,b的个位做四位数的百位。
#include
voidmain()
{
intx,y,a,b,c,d,p;
printf("请输入两个两位正整数想x,y:
\n");
scanf("%d%d",&x,&y);
a=x/10;
b=x%10;
c=y/10;
d=y%10;
p=a*1000+d*100+b*10+c;
printf("%d\n",p);
}
13.*****从键盘上输入一个七个字母的单词,字母逆着顺序输出。
#include
voidmain()
{
charc1,c2,c3,c4,c5,c6,c7;
c1='s';c2='t';c3='u';c4='d';
c5='e';c6='n';c7='t';
putchar(c7);putchar(c6);putchar(c5);putchar(c4);
putchar(c3);putchar(c2);putchar(c1);putchar('\n');
}
14.*****从键盘输入x,求其绝对值。
#include
voidmain()
{
floatx;
printf("请输入一个数x:
\n");
scanf("%f",&x);
if(x>=0)
printf("%f\n",x);
if(x<0)
printf("%f\n",-x);
}
15.*****输入字符。
如果为a,输出(about).如果为r,输出(retry),如果为f,输出(fasil);
#include
voidmain()
{
charx;
printf("请输入一个字符x:
\n");
scanf("%c",&x);
if(x=='a')
printf("about\n");
if(x=='r')
printf("retry\n");
if(x=='f')
printf("fasil\n");
}
16.*****输入两个实数a,b,u=(r+s)*(r+s){a
a>br=b*b-a*as=a/b+4}
#include
voidmain()
{
floata,b,u,r,s;
printf("请输入两个实数a,b:
\n");
scanf("%f%f",&a,&b);
if(a
{r=a*a-b*b;
s=a/b;}
else
{r=b*b-a*a;
s=a/b+4;}
u=(r+s)*(r+s);
printf("%f\n",u);
}
17.*****求1+1/3+1/5+……+1/n+1的和。
#include
voidmain()
{
inti,n;
floatt=0,s=0;
printf("请输入n的值:
\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{t=i;
s=s+1/(2*t-1);}
printf("s=%f\n",s);
}
18.*****从键盘上输入12个数按每行3个输出并输出平均值、最大值、最小值
#include
voidmain()
{inti,j,max,min,a[4][3];
floatpin,sum=0;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
max=a[0][0];
min=a[0][0];
for(i=1;i<4;i++)
for(j=1;j<3;j++)
{if(a[i][j]>max)
max=a[i][j];
if(a[i][j]min=a[i][j];}
for(i=0;i<4;i++)
for(j=0;j<3;j++)
sum+=a[i][j];
for(i=0;i<4;i++)
{for(j=0;j<3;j++)
{printf("%5d",a[i][j]);}
printf("\n");}
pin=sum/12;
printf("最大值是:
%d\n",max);
printf("最小值是:
%d\n",min);
printf("平均值是:
%f\n",pin);
}
19.*****从键盘上输入n个整数,试编程序,使数组从大到小输出
#include
voidmain()
{inti,j,m,a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(j=0;j<10-i;j++)
if(a[j+1]>a[j])
{m=a[j];a[j]=a[j+1];a[j+1]=m;}
for(i=0;i<10;i++)
printf("%2d",a[i]);
}
20.*****统计全班某门功课的平均分及优良等级
#include
voidmain()
{inti,y=0,l=0,z=0,j=0,a[10];
floatpin,sum=0;
for(i=0;i<10;i++)
{scanf("%d",&a[i]);
}
for(i=0;i<10;i++)
sum+=a[i];
for(i=0;i<10;i++)
if(a[i]>=90)
y++;
elseif(a[i]>=80)
l++;
elseif(a[i]>=70)
z++;
elseif(a[i]>=60)
j++;
pin=sum/10;
printf("优秀人数是:
%d\n",y);
printf("良好人数是:
%d\n",l);
printf("中等人数是:
%d\n",z);
printf("及格人数是:
%d\n",j);
printf("平均成绩是:
%f\n",pin);
}
21.*****n*n转置矩阵
#include
#definen3
voidmain()
{inta[n][n]={{1,2,3},{4,5,6},{7,8,9}},b[n][n];
inti,j;
printf("arraya:
\n");
for(i=0;i{
for(j=0;j{printf("%5d",a[i][j]);
b[j][i]=a[i][j];}
printf("\n");}
printf("arrayb:
\n");
for(i=0;i{for(j=0;j{printf("%5d",b[i][j]);}
printf("\n");}
}
22.*****输出3*3矩阵的主、次对角线及上三角
#include
voidmain()
{inti,j,a[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
{printf("%5d",a[i][j]);}
printf("\n");}
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
{if(i+j<=2)
printf("%5d",a[i][j]);
elseprintf("");}//五个空格//
printf("\n");}
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
{if(i==j)
printf("%5d",a[i][j]);
elseprintf("");}//五个空格//
printf("\n");}
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
{if(i+j==2)
printf("%5d",a[i][j]);
elseprintf("");}//五个空格//
printf("\n");}
}
23.*****菱形
#include
#definen3
voidmain()
{inti,j;
for(i=1;i{for(j=1;j{if(j<=n-i)
printf("");
elseprintf("%2d",j+i-n);}
for(j=n;j>=1;j--)
{if(j<=n-i)
printf("");
elseprintf("%2d",j+i-n);}
printf("\n");}
for(i=n;i>=1;i--)
{for(j=1;j{if(j<=n-i)
printf("");
elseprintf("%2d",j+i-n);}
for(j=n;j>=1;j--)
{if(j<=n-i)
printf("");
elseprintf("%2d",j+i-n);}
printf("\n");}
}
24.*****用and替换the并统计the的个数
#include
#include
voidmain()
{inti=0,sum=0;
chara[81],c;
gets(a);
for(i=0;i<81;i++)
{if(i>3)
{if(a[i]==''&&a[i-1]=='e'&&a[i-2]=='h'&&a[i-3]=='t'&&a[i-4]=='')
{a[i-3]='a';a[i-2]='n';a[i-1]='d';sum++;}}
else
{if(a[i-1]=='e'&&a[i-2]=='h'&&a[i-3]=='t')
{a[i-3]='a';a[i-2]='n';a[i-1]='d';sum++;}}}
printf("%s\n",a);
printf("'the'的个数有%d个\n",sum);
}
25.*****用自定义函数求四个整数中的最大数。
程序如下:
#include
intmax(intx,inty)
{
intz;
z=(x>y)?
x:
y;
return(z);
}
voidmain()
{
inta,b,c,d,m;
printf("请输入四个数:
\n");
scanf("%d%d%d%d",&a,&b,&c,&d);
m=max(max(a,b),max(c,d));
printf("四个数中的最大数是:
%d\n",m);
}
26.*****用swap函数实现两个数的交换,要求在主函数中输入,输出交换结果。
程序如下:
#include
voidswap(floatx,floaty)
{
floattemp;
temp=x;x=y;y=temp;
printf("交换后的结果:
\nx=%fy=%f\n",x,y);
}
voidmain()
{
inta,b;
printf("请输入两个数:
\n");
scanf("%d%d",&a,&b);
swap(a,b);
}
27.*****编写函数输入一个四位数,判断是否满足以下条件:
是完全平方数,1、3位数之和是10,2、4位之积是12。
程序如下:
#include
#include
voidsiweishu(intx)
{
inta,b,c,d,m;
m=sqrt(x);
a=x/1000;
b=(x-a*1000)/100;
c=(x-a*1000-b*100)/10;
d=x-a*1000-b*100-c*10;
if(b+d==10&&a*c==12&&m*m==x)
printf("YES");
else
printf("NO");
}
voidmain()
{
intm;
printf("请输入一个四位数");
scanf("%d",&m);
siweishu(m);
}
28.*****从主函数输入一个数,判断是否是素数。
程序如下:
#include
voidsushu(intx)
{
inti,flag=1;
for(i=2;i{if(x%i==0)
{flag=0;break;}
}
if(flag)
printf("是素数!
\n");
else
printf("不是素数!
\n");
}
voidmain()
{
inta;
printf("请输入一个数:
\n");
scanf("%d",&a);
sushu(a);
}
29.*****编写两个函数,求三个数的最大公约数、最小公倍数。
程序如下:
#include
intgongyue(intm,intn)
{
intr;
if(m{r=m;m=n;n=r;}
r=m%n;
while(r!
=0)
{m=n;n=r;r=m%n;}
return(n);
}
intgongbei(intm,intn)
{
intr,p;p=m*n;
if(m{r=m;m=n;n=r;}
r=m%n;
while(r!
=0)
{m=n;n=r;r=m%n;}
return(p/n);
}
voidmain()
{
inta,b,c,zdgy,zxgb;
printf("请输入三个数:
\n");
scanf("%d%d%d",&a,&b,&c);
zdgy=gongyue(a,gongyue(b,c));
zxgb=gongbei(a,gongbei(b,c));
printf("最大公约数为:
%d\n",zdgy);
printf("最小公倍数为:
%d\n",zxgb);
}
?
?
?
30.*****编写5个函数分别用来求两个整数的加减乘除及余数。
制作一个菜单,列出这五种运算,每一种运算前面有数字序号,以便让用户能够用输入数字的方法选择要进行的运算。
程序如下:
#include
voidadd()
{
intx,y,z;
scanf(“%d%d”,&x,&y);
z=x+y;
printf(“两个数的和是:
%d”,z);
}
voidsub()
{
intx,y,z;
scanf(“%d%d”,&x,&y);
z=x-y;
printf(“两个数的差是:
%d”,z);
}
voidmul()
{
intx,y,z;
scanf(“%d%d”,&x,&y);
z=x*y;
printf(“两个数的积是:
%d”,z);
}
voiddiv()
{
intx,y,z;
scanf(“%d%d”,&x,&y);
z=x/y;
printf(“两个数的商是:
%d”,z);
}
voidrem()
{
intx,y,z;
scanf(“%d%d”,&x,&y);
z=x%y;
printf(“两个数的余数是:
%d”,z);
}
voidmain()
{
charc;
while
(1)
{
printf(“***********************\n”);
printf(“请选择一种运算\n”);
printf(“***********************\n”);
printf(“1.加法运算\n”);
printf(“2.减法运算\n”);
printf(“3.乘法运算\n”);
printf(“4.除法运算\n”);
printf(“5.求余运算\n”);
printf(“6.结束\n”);
do
{
printf(“请输入选择的序号1—6:
”);
c=getchar();getchar();
}
while(c<’1’|