main()
{
inta,z;
printf("pleaseinputa\n");
scanf("%d",&z);
z=(a+=a-=a*a,5*a);
printf("%d,%d",a,z);
getch();
}
5.编程求解表达式(a=3*5,a*4),a+5的值和变量a的值
main()
{
intx,a;
x=((a=3*5,a*4),a+5);
printf("%d,%d",x,a);
getch();
}
6.编程求解表达式x+a%3*(int)(x+y)%2/4的值,式中x=2.5,y=4.7,a=7.
main()
{
inta;
floatx,y,z;
x=2.5,y=4.7;
a=7;
z=x+a%3*(int)(x+y)%2/4;
printf("%.1f",z);
getch();
}
7.编程求解表达式(float)(a+b)/2+(int)x%(int)y的值式中a=2,b=3,x=3.5,y=2.5.
解main()
{
floatx,y,z;
inta,b;
a=2;b=3;
x=3.5;y=2.5;
z=(float)(a+b)/2+(int)x%(int)y;
printf("z=%f\n",z);
getch();
}
8.编程求解表达式m=++i和n=j++的值,式中i=8,j=10打印输出运行结果I,j,m,n的值.
main()
{
inti,j,m,n;
i=8,j=10;
m=++i,n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
getch();
}
9.已定义inta=12,写出经表达式a+=a运算后a的值.
main()
{
inta;
a=12;
a+=a;
printf("%d",a);
getch();
}
10.已定义inta=12,写出经表达式a-=2运算后a的值.
main()
{
inta;
a=12;
a-=2;
printf("%d",a);
getch();
}
11.已定义inta=12,n=5,写出经表达式a%=(n%=a)运算后的a的值
main()
{
inta=12,n=5;
a%=(n%=a);
printf("%d",a);
getch();
}
12.已定义inta=12,写出经表达式a*=2+3运算后a的值.
main()
{
inta,n;
a=12;
a*=2+3;
printf("%d",a);
getch();
}
13.已定义inta=12,写出经表达式a/=a+a运算后a的值.
main()
{
inta,n;
a=12;
a/=a+a;
printf("%d",a);
getch();
}
14.已定义inta=12,写出经表达式a+=a-=a*=a运算后a的值
main()
{
inta;
a=12;
a+=a-=a*=a;
printf("%d",a);
getch();
}
15.将教材上例2.23编写成一个C程序,分析这个程序的运行过程
main()
{
intx=4,b=5,y;
y=++x>b?
x:
b-->++x?
++b:
x;
printf("%d,%d,%d",x,b,y);
getch();
}
16.参考教材上的例3.1,绘制求n!
的阶乘的流程图,并写出C语言源程序。
main()
{
intn,i,s=1;
printf("inputn\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
s*=i;
printf("%d",s);
getch();
}
main()
{
intn,i=1,s=1;
printf("inputn\n");
scanf("%d",&n);
while(i<=n)
{
s*=i;
i++;
}
printf("%d",s);
getch();
}
main()
{
intn,i=1,s=1;
printf("inputn\n");
scanf("%d",&n);
do
{
s*=i;
i++;
}
while(i<=n);
printf("%d",s);
getch();
}
17.编写教材上例3.2的C语言源程序。
main()
{
inti=2,w=0,n;
scanf("%d",&n);
while(i<=n-1)
{
if(n%i!
=0)
w=0;
else
{w=1;break;}
i++;
}
if(w==1)
printf("NO\n");
else
printf("YES\n");
getch();
}
18.将教材上的例3.4改写为:
#include”stdio.h”
main()
{
intcocks,hens,chicks;
cocks=0;
while(cocks<=19)
{
hens=0;
while(hens<=33)
{
chicks=100-cocks-hens;
if(5*cocks+3*hens+chicks/3.0==100)
printf(“%d,%d,%d\n”,cocks,hens,chicks);
else
hens++;
}
cocks++;
}
getch();
}
行否?
为什么?
如果一定要写成if-else语句的形式,源程序该怎么写?
19.若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,cl=’a’。
想得到以下的输出格式和结果,请编写一个程序实现这个任务。
要求输出结果如下:
a=□3□□b=□4□□c=5□
x=1.200000,y=2.400000,z=-3.600000
cl=’a’□or□97(ASCⅡ)
main()
{
inta=3,b=4,c=5;
floatx=1.2,y=2.4,z=-3.6;
charcl='a';
printf("a=%2db=%2dc=%-2d\n",a,b,c);
printf("x=%f,y=%f,z=%f\n",x,y,z);
printf("cl='%-2c'or%3d",cl,cl);
getch();
}
20.20.若x=1.2,y=2.4,z=-3.6,u=5.1274,n=128765,cl=’b’。
想得到以下的输出格式和结果,请编写一个程序实现这个任务。
要求输出结果如下:
x+y=□3.60□□y+z=-1.20□□z+x=-2.40
U=□51274□□n=□□□128765
Cl=’b’□or□98(ASCⅡ)
main()
{
floatx=1.2,y=2.4,z=-3.6,u=51274,n=128765;
charcl='b';
printf("x+y=%5.2fy+z=%.2fz+x=%.2f\n",x+y,y+z,z+x);
printf("u=%7.4fn=%9.0f\n",u,n);
printf("cl='%-2c'or%3d",cl,cl);
getch();
}
21.写出下面程序的输出结果,并运行这个程序检验自己的分析结果:
main()
{
inta=5,b=7;
floatx=67.8564,y=-789.124;
longn=1234567;
unsignedu=65535;
printf(“%d%d\n”,a,b);
printf(“%3d%3d\n”,a,b);
printf(“%f%,f\n”,x,y);
printf(“%-10f,%-10f\n”,x,y);
printf(“%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n”,x,y,x,y,x,y)
printf(“%e,%10.2e\n”,x,y);
}
22.写出下面程序的输出结果,并运行这个程序检验自己的分析结果:
main()
{
charc=’A’;
longn=1234567;
unsignedu=65535;
printf(“%c,%d,%o,%x\n”,c,c,c,c);
printf(“%1d,%1o,%x\n”,n,n,n);
printf(“%u,%o,%x,%d\n”,u,u,u,u);
printf(“%s,%5.3s\n”,”COMPUTER”,”COMPUTER”);
}
A,65,101,41
-10617,22,d687
65535,177777,ffff,-1
COMPUTER,COM
23.用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,cl=’A’,c2=’a’,问在键盘是该如何输入?
main()
{
inta,b;floatx,y;charcl,c2;
scanf(“a=%d□b=%d”,&a,&b);
scanf(“□x=%f□y=%e”,&x,&y);
scanf(“□cl=%c□c2=%c”,&cl,&c2);
}
解main()
{
inta,b;floatx,y;charcl,c2;
scanf(“a=%db=%d”,&a,&b);
scanf(“x=%3.1fy=%5.2f”,&x,&y);
scanf(“c1=%cc2=%c”,&c1,&c2);
printf("a=%db=%d\n",a,b);
printf("x=%3.1fy=%5.2e\n",x,y);
printf("c1=%cc2=%c\n",c1,c2);
getch();
}
在键盘上输入35
8.571.82
Aa
24.用下面的scanf函数输入数据,使a=10,b=20,x=1.5,y=-3.75,z=67.8,cl=’A’,c2=’a’,请问在键盘上该如何输入?
scanf(“%5d%5d%c%c%f%f%f%f’,&a,&b,&cl,&c2,&x,&y,&z);在键盘上输入1020Aa1.5-3.7567.8
25.设圆半径r=1.5,求这个圆的周长和面积。
编一程序,用scanf输入数据,输出计算结果,且输出时要有文字说明,计算结果取小数点后两位数字。
main()
{
floatr=1.5,p=3.14,l,s;
scanf("%f,%f\n",&l,&s);
l=2*p*r,s=p*r*r;
printf("l=%.2f,s=%.2f\n",l,s);
printf("circul'slands");
getch();
}
26.设球半径r=1.5,求这个球体的表面面积和球体积。
编一程序,用scanf输入数据,输出计算结果,且输出时要有文字说明,计算结果取小数点后两位数字。
main()
{
floatr=1.5,p=3.14,s,v;
scanf("%f,%f\n",&s,&v);
s=4*p*r*r,v=4/3*p*r*r*r;
printf("s=%.2f,v=%.2f\n",s,v);
printf("circul'ssandv");
getch();
}
27.设圆柱体底面半径r=1.5,高h=3,求这个圆柱体的表面积和体积。
编一程序,用scanf输入数据,输出计算结果,且输出时要有文字说明,计算结果取小数点后两位数字。
main()
{
floatr=1.5,p=3.14,h=3,s,v;
scanf("%f,%f\n",&s,&v);
s=2*p*r*r+2*p*r*h,v=p*r*r*h;
printf("s=%.2f,v=%.2f\n",s,v);
printf("circul'ssandv");
getch();
}
28.编一个程序,任意输入三个数,均按大小顺序输出。
main()
{
inta,b,c,max,m,min;
printf("inputa,b,c\n");
scanf("%d,%d,%d",&a,&b,&c);
if(a>b)
{max=a;min=b;}
else
{max=b;min=a;}
if(max{max=c;m=max;min=min;}
else
{if(min>c)
{max=max;m=min;min=c;}
else
{max=max;m=c;min=min;}
}
printf("%d,%d,%d",max,m,min);
getch();
}
29.有一函数:
y=1(x>0),y=0(x=0),y=-1(x<0)编一程序,输入一个x值,输出y值。
main()
{
intx;
inty;
printf("inputx\n");
scanf("%d",&x);
if(x!
=0)
{if(x<0)
y=-1;
else
y=1;}
else
y=0;
printf("x=%d,y=%d",x,y);
getch();
}
30输入一个字符,判断它是否为大写字母,如果是,将它换成小写字母。
如果不是不转换。
最后输出所得到的字符。
main()
{
charch;
printf("inpurch\n");
scanf("%c",&ch);
ch=((ch>='A')&&(ch<='Z'))?
ch+32:
ch;
printf("%c",ch);
getch();
}
31.输入一个华氏温度,要求输出摄氏温度。
公式为c=5/9(F-32)输出要有文字说明,取两位小数。
main()
{
floatc,F;
printf("inputF\n");
scanf("%f",&F);
c=(5.0/9.0)*(F-32);
printf("c=%.2f",c);
getch();
}
32.编程序用getchar函数读入两个字符给c1,c2然后分别用putchar函数和printf函数输出两个字符。
并思考以下两个问题:
(1)变量c1,c2,是否可定义为字符型和整型?
(2)要求输出c1和c2值的ASCⅡ码应如何处理?
输出时是用putchar函数还是用printf函数?
(3)整型变量与字符型变量是否在任何情况下都可以互相替代?
如charc1,c2与intc1,c2;是否无条件地等价?
#include"stdio.h"
main()
{
charch1,ch2;
ch1=getchar();
ch2=getchar();
putchar(ch1);
putchar(ch2);
putchar('\n');
printf("%c%c",ch1,ch2);
getch();
}
(1)变量c1,c2,可定义为字符型和整型
(2)#include"stdio.h"
main()
{
charch1,ch2;
ch1=getchar();
ch2=getchar();
putchar(ch1);
putchar(ch2);
putchar('\n');
printf("%d%d",ch1,ch2);
getch();
}
(3)因计算机上ASCⅡ码为0-255的字符,故整型变量在此范围内相互转换;但若整数超出上述范围,则不能代替。