C语言设计.docx
《C语言设计.docx》由会员分享,可在线阅读,更多相关《C语言设计.docx(34页珍藏版)》请在冰豆网上搜索。
C语言设计
1C语言设计
求5!
#include
voidmain()
{
inti=1,p=2;
while(p<=5)
{
i=i*p;
p++;
}
printf("%d\n",i);
}
2C语言设计
求1-1/2+1/3-1/4+……+1/99-1/100
#include
voidmain()
{
intsign;
sign=1;
floatdeno,sum,term;
deno=2.0;
sum=1.0;
while(deno<=100)
{
sign=-sign;
term=sign/deno;
sum=sum+term;
deno++;
}
printf("%f\n",sum);
}
3常量的使用
#definePRICE30;
#include
voidmain()
{
intnum,total;
num=10;
total=num*PRICE;
printf("%d\n",total);
}
4整型变量的定义与使用
#include
voidmain()
{
inta,b,c,d,u;
a=12;b=-24;u=10;
c=a+u;d=b+u;
printf("a+u=%d\n,b+u=%d\n",c,d);
}
5整型数据的溢出
#include
voidmain()
{
inta,b;
a=32767;
b=a+1;
printf("%d\n,%d\n",a,b);
}
6转义字符的使用#include
voidmain()
{
printf("abc\tde\rf\tg\n");
printf("h\ti\b\bjk\n");
}
7大小写字母转换
#include
voidmain()
{
charc1,c2;
c1='a';
c2='b';
c1=c1-32;
c2=c2-32;
printf("%c%c",c1,c2);
}
8强制类型的转换
#include
voidmain()
{
floatx;
inti;
x=32767.0;
i=(int)x%3;
printf("x=%f,i=%d\n",x,i);
}
9有符号数据传送给无符号变量
#include
voidmain()
{
unsigneda;
intb=-1;
a=b;
printf("%u\n",a);
}
10赋值表达式出现在输出语句
#include
voidmain()
{
intb=3;
inta;
printf("%d",a=b);
}
11输出单个字符
#include
voidmain()
{
chara,b,c,d;
a='L';b='O';c='V';d='E';
putchar(a);putchar(b);putchar(c);putchar(d);
}
12输入单个字符
#include
voidmain()
{
charb;
b=getchar();
putchar(b);
putchar('\n');
}
13无符号数据的输出
#include
voidmain()
{
unsignedinta=6535;
intb=-2;
printf("%d,%o,%x,%u\n",a,a,a,a);
printf("%d,%o,%x,%u\n",b,b,b,b);
}
14字符数据的输出
#include
voidmain()
{
charc='a';
inti=97;
printf("%d,%c\n",c,c);
printf("%d,%c\n",i,i);
}
15字符串的输出
#include
voidmain()
{
printf("%3s,%7.2s,%.4s,%-5.3s\n","CHINA","CHINA","CHINA","CHINA");
}
16输出实数的有效位数
#include
voidmain()
{
floatx,y;
x=111111.111;y=222222.222;
printf("%f\n",x+y);
}
17用scanf函数输入数据
#include
voidmain()
{
inta,b,c;
scanf("%d,%d,%d,%d",&a,&b,&c);
printf("%d,%d,%d\n",a,b,c);
}
18输入三角形的三边长,求三角形的面积
#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.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);
printf("area=%7.2f\n",area);
}
19输入三角形的三边长,求三角形的面积(自己写的程序)
#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=%f,b=%f,c=%f,s=%f,area=%f\n",a,b,c,s,area);
}
20输入一个大写字母,用小写字母输出
#include
#include
voidmain()
{
charc1;
c1=getchar();
c1=c1+32;
printf("%c\n",c1);
}
21求ax*x+bx+c=0的根,输入a,b,c,设b*b-4ac>0
#include
#include
voidmain()
{π
floata,b,c,x1,x2;
scanf("%f,%f,%f",&a,&b,&c);
x1=1.0/(2*a)*(-b+sqrt(b*b-4*a*c));
x2=1.0/(2*a)*(-b-sqrt(b*b-4*a*c));
printf("x1=%f,x2=%f\n",x1,x2);
}
22求圆周长,圆面积,圆球面积,体积
#definepi3.14
#include
voidmain()
{
floatr,h,l,s1,s2,v;
r=1.5;h=3;
l=2*pi*r;
s1=pi*r*r;
s2=l*h;
v=s1*h;
printf("圆周长l=%f,圆面积s1=%f,圆球面积s2=%f,体积v=%f\n",l,s1,s2,v);
}
23输入2个实数,按由小到大输出
1.#include
voidmain()
{
floata,b;
scanf("%f,%f",&a,&b);
if(a>b)
printf("b=%f,a=%f",b,a);
elseprintf("a=%f,b=%f",a,b);
}
2.#include
voidmain()
{
floata,b,t;
scanf("%f,%f",&a,&b);
if(a>b)
{
t=a;
a=b;
b=t;
}
printf("%f,%f\n",a,b);
}
24输入3个实数,按由小到大输出
#include
voidmain()
{
floata,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(b>c)
{t=b;b=c;c=t;}
printf("%f,%f,%f\n",a,b,c);
}
25有一个函数;y=-1(x<0),y=0(x=0),y=1(x>0),编一个程序,输入一个X值,输出一个y值
#include
voidmain()
{
floatx,y;
scanf("%f",&x);
if(x<0)
y=-1;
else
if(x==0)
y=0;
else
y=1;
printf("%f",y);
}
26输入一个字符,判别是否是大写字母,如果是,转换为小写,如果不是,不转换,输出最后的字符
1.#include
voidmain()
{
charc1;
scanf("%c",&c1);
c1=(c1>='A'&&c1<='Z')?
(c1+32):
c1;
printf("%c\n",c1);
}
2.#include
voidmain()
{
charc1;
scanf("%c",&c1);
if(c1>='A'&&c1<='Z')
printf("%c\n",c1+32);
else
printf("%c\n",c1);
}
27写程序,判断某一年是否闰年
1.#include
voidmain()
{
intyear,leap;
scanf("%d",&year);
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
leap=1;
else
leap=0;
}
else
leap=1;
}
else
leap=0;
if(leap)
printf("%disaleapyear.\n",year);
else
printf("%disnotaleapyear.\n",year);
}
2.#include
voidmain()
{
intyear,leap;
scanf("%d",&year);
if((year%4==0&&year%100!
=0)||year%400==0)
leap=1;
else
leap=0;
if(leap)
printf("%disaleapyear.\n",year);
else
printf("%disnotaleapyear.\n",year);
}
28运输公司对用户计算运费.路程skm越远每吨每千米越低.
#include
voidmain()
{
ints;
floatp,w,f;
scanf("%f,%f,%d",&p,&w,&s);
if(s<250)f=p*w*s;
elseif(s>=250&&s<500)f=p*w*s*(1-0.02);
elseif(s>=500&&s<1000)f=p*w*s*(1-0.05);
elseif(s>=1000&&s<2000)f=p*w*s*(1-0.08);
elseif(s>=2000&&s<3000)f=p*w*s*(1-0.1);
elseif(s>=3000)f=p*w*s*(1-0.15);
printf("%f\n",f)
29#include
voidmain()
{
inta;
scanf("%d",&a);
if(a)
printf("我爱林海燕\n");
else
printf("我爱林海燕\n");
}
30,输入3个整数a,b,c,输出最大的数
#include
voidmain()
{
inta,b,c,max;
scanf("%d,%d,%d",&a,&b,&c);
max=a>b?
a:
b;
max=max>c?
max:
c;
printf("%d\n",max);
}
31把100~200之间的不能被3整除的数输出.
#include
voidmain()
{
inti=100;
while(i<200)
{
if(i%3!
=0)
printf("%d",i);
i++;
}
printf("\n");
}
2#include
voidmain()
{
inti;
for(i=100;i<=200;i++)
if(i%3!
=0)
printf("%d\n",i);
}
32用π/4=1-1/3+1/5-1/7+…..公式求π的近似值,直到某一项的绝对值小于e-6为止.
#include
#include
voidmain()
{
ints;
floatsum,t,i,pi;
s=1;t=1;sum=0;i=1;
while(fabs(t)>1e-6)
{
s=-s;
t=s/i;
sum=sum+t;
i=i+2;
}
pi=4*sum;
printf("%10.6f\n",pi);
}
33求100~200间的全部素数.
#include
#include
voidmain()
{
intm,i,k;
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);
}
}
34数组元素的引用
#include
voidmain()
{
inti,a[10];
i=0;
for(i=0;i<=9;i++)
a[i]=i;
for(i=9;i>=0;i--)
printf("%d",a[i]);
}
35用数组来处理Fibonacci数列问题
#include
voidmain()
{
intn;
inta[40]={1,1};
for(n=2;n<40;n++)
a[n]=a[n-2]+a[n-1];
for(n=0;n<40;n++)
{
if(n%5==0)printf("\n");
printf("%12d",a[n]);
}
}
36将一个二微数组a的行和列的元素互换,存到另一个二维数组b中
#include
voidmain()
{
inta[2][3]={{1,2,3},{4,5,6}};
intb[3][2],i,j;
printf("arraya:
\n");
for(i=0;i<=1;i++)
{
for(j=0;j<=2;j++)
{
printf("%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");
}
}
37
#include
voidmain()
{
charstr[81];
inti,num=0,word=0;
charc;
gets(str);
for(i=0;(c=str[i])!
=0;i++)
if(c=='')word=0;
elseif(word==0)
{
word=1;
num++;
}
printf("%d\n",num);
}
38.3个字符串,找出其中最大者(有疑问)
#include
#include
voidmain()
{
charstring[20];
charstr[3][20];
inti;
gets(str[i]);
for(i=0;i<3;i++)
if(strcmp(str[0],str[1])>0)
strcpy(string,str[0]);
elsestrcpy(string,str[1]);
if(strcmp(str[2],string)>0)
strcpy(string,str[2]);
printf("\nthelargeststringis\n%s\n",string);
}
39函数调用
#include
voidmain()
{
voidprintstar();
voidprint_message();
printstar();
print_message();
printstar();
}
voidprintstar()
{printf("****************\n");}
voidprint_message()
{printf("*IloveLinhaiyanforever!
*\n");}
40调用函数时的数据传递
#include
voidmain()
{
intmax(intx,inty);
inta,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("%d\n",c);
}
intmax(intx,inty)
{intz;
z=x>y?
x:
y;
returnz;
}
41函数的递归调用
intage(intn)
{
intc;
if(n==1)
c=10;
else
c=age(n-1)+2;
return(c);
}
#include
voidmain()
{
printf("ageis%d\n",age(5));
}
42intage(intn)
{
intc;
if(n==1)
c=10;
else
c=age(n-1)+2;
return(c);
}
#include
voidmain()
{
inta,n;
scanf("%d",&n);
a=age(n);
printf("年龄是%d\n",a);
}
43求n的阶乘
#include
voidmain()
{
intf(intx);
inty,n;
printf("输入一个数:
");
scanf("%d",&n);
y=f(n);
printf("阶乘结果是%d\n",y);
}
intf(intn)
{
intc;
if(n==0||n==1)
c=1;
else
c=n*f(n-1);
return(c);
}
44将数组a和数组b对应的逐个比较
#include
voidmain()
{
intf(intx,inty);
inta[10],b[10],i,n=0,m=0,k=0;
printf("数组a\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
printf("数组b\n");
for(i=0;i<10;i++)
scanf("%d",&b[i]);
printf("\n");
for(i=0;i<10;i++)
{
if(f(a[i],b[i])==1)
n=n+1;
elseif(f(a[i],b[i])==0)
m=m+1;
else
k=k+1;
}
printf("a[i]>b[i]%d次\na[i]=b[i]%d次\na[i]
if(n>k)
printf("数组a大于数组b\n");
elseif(nprintf("数组a等于数组b\n");
else
printf("数组a小于数组b\n");
}
intf(intx,inty)
{
intflag;
if(x>y)
flag=1;
elseif(xflag=-1;
else
flag=0;
return(flag);
}
45有一个一维数组score,内放10个学生成绩,求平均成绩.
#include
voidmain()
{
floataverage(floatarry[10]);
floatscore[10],aver;
printf("输入10个数\n");
inti;
for(i=0;i<10;i++)
scanf("%f",&score[i]);
printf("\n");
aver=average(score);
printf("平均值是%5.2f",aver);
}
floataverage(floatarry[10])
{
inti;
floataver,sum=arry[0];
for(i=1;i<10;i++)
sum=sum+arry[i];
aver=sum/10;
return(aver);
}
46用选择法对数组中10个整数按由小到大排序
#include
voidmain()
{
voidsort(intarry[],intn);
inta[10],i;
printf("enterthearry\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
sort(a,10);
printf("thesortedarry\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
}
voidsort(intarry[],intn)
{
inti,j,k,t;
for(i