实验C语言例题.docx
《实验C语言例题.docx》由会员分享,可在线阅读,更多相关《实验C语言例题.docx(11页珍藏版)》请在冰豆网上搜索。
实验C语言例题
1.已知:
a=2,b=3,x=3.9,y=2.3(a,b整型
,x,y浮点),计算算术表达式(float)(a+b)/2
+(int)x%(int)y的值:
main()
{inta=2,b=3;
floatx=3.9,y=2.3;
floatr;
r=(float)(a+b)/2+(int)x%(int)y;
printf("%f\n",r);
}
参考结果:
3.500000
根据圆柱体的半径和高,计算圆周长、圆
面积、圆柱体表面积、圆柱体体积
voidmain()
{floatr,h,pi=3.1415926;
floatc0,s0,s,v;
printf("Inputr,h(m):
");
scanf("%f,%f",&r,&h);
c0=2*pi*r;
s0=pi*r*r;
s=2*pi*r*h+2*pi*r*r;
v=pi*r*r*h;
printf("c0=%.3f(m)\ns0=%.3f(m2)\ns=%
.3f(m2)\nv=%.3f(m3)\n",c0,s0,s,v);
}
输入1-7之间的任意数字,程序按照用户的
输入输出相应的星期值
main()
{intweek;
printf("Input(1-7):
");
scanf("%d",&week);
switch(week)
{case1:
printf("Mon.\n");break;
case2:
printf("Tue.\n");break;
case3:
printf("Wed.\n");break;
case4:
printf("Tur.\n");break;
case5:
printf("Fri.\n");break;
case6:
printf("Sat.\n");break;
case7:
printf("Sun.\n");break;
default:
printf("Theinputiswrong!
\n");
}
}
3、工资计算。
main()
{floats0,s;inty;
printf("Inputs0,y:
");
scanf("%f,%d",&s0,&y);
if(y>=20)
{if(s0>=2000)s=s0+200;
elses=s0+180;
}else
{if(s0>=1500)s=s0+150;
elses=s0+120;
}printf("s=%f\n",s);
}
4.Y=|X|,X<0X2,0≤X<10
:
LogX,X≥10
#include
main()
{floatx,y;
scanf("%f",&x);
if(x<0)y=fabs(x);
elseif(x<10)y=x*x;
elsey=log10(x);
printf("%f\n",y);
}
5..用三种循环结构,求1000以内奇数的和。
(1)用while结构实现
voidmain()
{longsum;inti,item;
sum=0,i=0,item=2*i+1;
while(item<1000)
{sum=sum+item;
i++;item=2*i+1;
}printf("1+3+5+...999=%ld\n",sum);
}
(2)用do-while结构实现
voidmain()
{longsum;inti,item;
sum=0,i=0,item=2*i+1;
do{sum=sum+item;
i++;item=2*i+1;}
while(item<1000);
printf("1+3+5+...999=%ld\n",sum);}
(3)用for结构实现
voidmain()
{longsum;inti,item;
for(sum=0,i=0,item=2*i+1;
item<1000;i++,item=2*i+1)
sum=sum+item;
printf("1+3+5+...999=%ld\n",sum);
}运行结果:
1+3+5+...999=250000
5..用while,do-while循环求i-10的连加和,
i由用户输入。
(1)用while循环实现
main()
{intsum=0,i;
printf("Inputi:
");scanf("%d",&i);
while(i<=10)
{sum+=i;i++;
}printf("sum=%d\n",sum);
}
(2)用do-while循环实现
main()
{intsum=0,i;
printf("Inputi:
");scanf("%d",&i);
do{sum+=i;i++;}
while(i<=10);
printf("sum=%d\n",sum);
}
3、穷举法搜索计算零件总数
零件(100-200个之间)分组
main()
{intx,flag=0;
for(x=100;x<=200;x++)
if(x%4==2&&x%7==3&&x%9==5)
{flag=1;break;
}
if(flag)printf("x=%d\n",x);
elseprintf("noanswer!
\n");
}
运行结果:
x=122
编制程序,输出由“*”组成的正三角形
#include
main()
{intn,i,j;
printf("n=");scanf("%d",&n);
for(i=0;i{for(j=0;jfor(j=0;j<2*i+1;j++)printf("*");
printf("\n");
}
}
7、求任意两个整数之间所有的素数。
#include
voidmain()
{inti1,i2,i,j,flag;
printf("inputtwointeger(>2)i1,i2:
");
scanf("%d%d",&i1,&i2);
printf("primenumber:
\n");
for(i=i1;i<=i2;i++)
{flag=1;
for(j=2;j<=i-1;j++)
{if(i%j==0)
{flag=0;
break;
}
}if(flag==1)printf("%d\t",i);
}printf("\n");
}
1、求Fibonachi数列的前10项
main()
{
intf[11]={0,1,1},n;
for(n=3;n<=10;n++)
f[n]=f[n-1]+f[n-2];
for(n=1;n<=10;n++)
printf("%d",f[n]);
printf("\n");
}
程序结果:
11235813213455
、找出1-100之间能被7或11整除的所有整数
main()
{intn=0,a[100],i;
for(i=1;i<=100;i++)
{if(i%7==0||i%11==0)
{a[n]=i;
n++;
}
}
printf("n=%d\n",n);
for(i=0;i{printf("%d\t",a[i]);
if((i+1)%5==0)printf("\n");
}printf("\n");
}
9..方阵求出
(1)主对角线上元素之和;
(2)辅对角线上元素之积;
(3)方阵中最大的元素。
4*4
#include
#defineN4
main()
{inta[N][N],s1=0,s2=1,max=0,i,j;
for(i=0;ifor(j=0;jscanf("%d",&a[i][j]);
max=a[0][0];
for(i=0;ifor(j=0;j{if(i==j)s1+=a[i][j];
if(i+j==N-1)s2*=a[i][j];
if(a[i][j]>max)max=a[i][j];
}printf("s1=%d,s2=%d,max=
%d\n",s1,s2,max);
}
10.字符串进行逆序
main(){charstr[100];
intn,i,j;gets(str);
n=0;while(str[n])n++;
for(i=0,j=n-1;i{chark=str[i];str[i]=str[j];
str[j]=k;
}
puts(str);
}
、两个字符串进行连接
main()
{chars1[100],s2[100];
inti,j;
gets(s1);
gets(s2);
i=0;
while(s1[i])i++;
j=0;
while(s2[j])
{s1[i++]=s2[j++];
}s1[i]='\0';
puts(s1);
}
11..大写变小写,小写变大写
#include
main()
{chars[100];inti;
gets(s);
for(i=0;s[i]!
='\0';i++)
{if(s[i]>='A'&&s[i]<='Z')s[i]+=32;
elseif(s[i]>='a'&&s[i]<='z')s[i]-=32;
}puts(s);
}
11.字符串排序(采用选择法排序)
#include#defineN4
main()
{chars[N][20];inti,j;
for(i=0;ifor(i=0;i{for(j=i+1;jif(strcmp(s[i],s[j])>0)
{chart[20];strcpy(t,s[i]);
strcpy(s[i],s[j]);strcpy(s[j],t);
}
}for(i=0;i}
1.删除字符串中指定的字符
#include
voidfun(char[],char);
voidmain()
{chars[100],c;gets(s);
c=getchar();fun(s,c);
puts(s);
}
voidfun(chars[],charc)
{inti,j;
for(i=0;s[i]!
='\0';i++)
{if(s[i]==c)
{for(j=i;s[j]!
='\0';j++)
s[j]=s[j+1];
}
}
}
2.字符串进行排序(选择法)
#include
voidsortstr(chars[][20],intn)
{inti,j;for(i=0;i{for(j=i+1;jif(strcmp(s[i],s[j])>0)
{
chart[20];strcpy(t,s[i]);
strcpy(s[i],s[j]);strcpy(s[j],t);
}
}
}
voidmain()
{chars[5][20];inti;
for(i=0;i<5;i++)gets(s[i]);
sortstr(s,5);
for(i=0;i<5;i++)puts(s[i]);
}