第三章 顺序程序设计
1、putchar函数
#include <stdio.h>
int main()
{
char a,b,c;
a='B',b='O',c='Y';
putchar(a); // B
putchar(b); // O
putchar(c); // Y
putchar('\n');
return 0;
}
#include <stdio.h>
int main()
{
int a,b,c;
a=66;b=79;c=89;
putchar(a); // B
putchar(b); // O
putchar(c); // Y
putchar('\n');
return 0;
}
2、getchar函数
#include <stdio.h>
int main()
{
char a,b,c;
a=getchar();
b=getchar();
c=getchar();
putchar(a);
putchar(b);
putchar(c);
putchar('\n');
return 0;
}
#include <stdio.h>
int main()
{
putchar(getchar());
putchar(getchar());
putchar(getchar());
putchar('\n');
return 0;
}
3、printf函数
#include <stdio.h>
int main()
{
char c='a';
int i=97;
printf("c=%c,c=%d\n",c,c);
printf("i=%c,i=%d\n",i,i);
return 0;
}
#include <stdio.h> int main() { float a,b; a=111111.111;b=222222.222; printf("%f\n",a+b); return 0; } // 333333.328125 保证6-7位的精度
#include <stdio.h>
int main()
{
double a,b;
a=11111111.11111111;
b=22222222.22222222;
printf("%lf\n",a+b);
return 0;
}
//33333333.33333333 double类型 保证16位的精度
4、scanf函数
#include <stdio.h>
#include <math.h>
int main()
{
double a,b,c,s,area;
scanf("%lf,%lf,%lf",&a,&b,&c);
s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%lf\nb=%lf\nc=%lf\narea=%lf\n",a,b,c,area);;
return 0;
}
例子:
1、计算出三角形面积Area
#include <stdio.h>
#include <math.h>
int main()
{
double a,b,c,s,area;
scanf("%lf,%lf,%lf",&a,&b,&c);
s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%lf\nb=%lf\nc=%lf\narea=%lf\n",a,b,c,area);
return 0;
}
2、输入一个大写字母转为小写字母
#include <stdio.h>
int main()
{
char c1,c2;
c1=getchar();
printf("%c,%d\n",c1,c1);
c2=c1+32;
printf("%c,%d\n",c2,c2);
}
#include <stdio.h>
int main()
{
printf("%c\n",getchar()+32);
return 0;
}
#include <stdio.h>
int main()
{
putchar(getchar()+32);
putchar('\n');
return 0;
}
3、求ax2+bx+c=0方程的根。a、b、c由键盘输入,设b2-4ac>0。
这里省略了求根公式,需要的可以自行查询!
#include <stdio.h>
#include <math.h>
int main()
{
double a,b,c,x1,x2,p,q,disc; //disc为判别式
scanf("a=%lf,b=%lf,c=%lf",&a,&b,&c);
disc=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(disc)/(2*a);
x1=p+q;
x2=p-q;
printf("x1=%5.2f\nx2=%5.2f\n",x1,x2);
return 0;
}
提高部分
1、将有符号整数赋值给长度相同的无符号整型变量,数据会失真
#include <stdio.h>
int main()
{
short int a;
unsigned short b;
a=-1;
b=a;
printf("%u\n",b);
return 0;
}
2、将无符号整数赋值给长度相同的有符号整型变量
#include <stdio.h>
int main()
{
unsigned short a;
short int b;
a=65535;
b=a;
printf("%d\n",b);
return 0;
}
3、无符号数据的输出
#include <stdio.h>
int main()
{
unsigned short a=65535;
short int b=-2;
printf("a=%d,%o,%x,%u\n",a,a,a,a);
printf("b=%d,%o,%x,%u\n",b,b,b,b);
return 0;
}
4、字符串的输出
#include <stdio.h>
int main()
{
printf("%10s,%-10s,%-6.3s,%6.2s\n","CHINA","CHINA","CHINA","CHINA");
return 0;
}
// CHINA, CH,CHIN,CHI

%ms,指定输出的字符串占m列,如果字符串长度大于m,则突破m限制,输出全部;
%-ms,如果字符串长小于m,则在m列范围内,字符串向左靠,右补空格;
%m.ns,输出占m列,只取字符串左侧的n个字符,左侧补空格;
%-m.ns,输出占m列,只取字符串左侧的n个字符,右侧补空格;
5、求3个圆的周长,输出结果时上下按小数点对齐,取两位数。
#include <stdio.h>
#define PI 3.1415926
int main()
{
double r1=1.53,r2=21.83,r3=123.71,s1,s2,s3;
s1=2.0*PI*r1;
s2=2.0*PI*r2;
s3=2.0*PI*r3;
printf("r1=%10.2f\nr2=%10.2f\nr3=%10.2f\n",r1,r2,r3);
// %10.2f 正 统一右对齐 左填补空格
return 0;
}
习题
1、设圆半径r=15,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后两位数字。
#include <stdio.h>
#include <math.h>
#define PI 3.1415926
int main()
{
float r,h,z,s,v,bs,sh;
printf("Please input r and h:\n");
scanf("%f,%f",&r,&h);
z=2*PI*r; // 计算周长
s=PI*pow(r,2); // 计算面积
v=(4/3)*PI*pow(r,3); // 计算体积
bs=4*PI*r*pow(r,2); // 计算表面积
sh=s*h; // 计算圆柱体积
printf("圆的周长为:%12.2f\n",z);
printf("圆的面积为:%12.2f\n",s);
printf("圆球体积为:%12.2f\n",v);
printf("圆的表面积为:%10.2f\n",bs);
printf("圆柱的体积为:%10.2f\n",sh);
}

浙公网安备 33010602011771号