以下是例题:
【例1】:从键盘输入a和b的值,计算(a+b)的值并输出至屏幕.
【例3.1】有人用温度计测量出用华氏法表示的温度(如 64华氏摄氏度),今要求把它转换为以摄氏法表示的温度(如 17.8摄氏度)。
【例3.2】:计算存款利息,有1000元,想存一年。有三种方法可选
【例3.3.1】:给定一个大写字母,要求用小写字母输出。
【例3.3.2】:从键盘输入一个整数,经过计算后,将它的结果强制转换为(double)类型。
【例3.4】: 给出三个数判断能否构成三角形,若能,求三角形的面积,若不能,输出不能构成三角形。
【例3.5】:求ax²+bx+c=0的根。a,b,c由键盘输入,设b²-4ac>0。
【例3.6】:用%f输出实数,只能得到6位小数。
【例3.8】:先后输出BOY三个字符。
【例3.9】:从键盘输入BOY三个字符,然后把它们输出到屏幕。
【例3.10】:改写例3.3程序,使之可以适用于任何大写字母。从键盘输入一个大写字母,在显示屏上显示对应的小写字母
用"scanf"函数将数据输入,用"printf"将结果输出至屏幕;
例如下面的这个例子。
【例1】:从键盘输入a和b的值,计算(a+b)的值并输出至屏幕.
代码如下:
#include <stdio.h>
int main ()
{
int a,b,sum;
printf("请输入a和b的值:\n");
scanf("%d %d",&a,&b);
sum = a + b;
printf("输出的值是:%d",sum);
return 0;
}
运行结果如下:
3.1 顺序程序设计举例
【例3.1】:有人用温度计测量出用华氏法表示的温度(如 64华氏摄氏度),今要求把它转换为以摄氏法表示的温度(如 17.8摄氏度)。
提示:解题的关键在于找到两者的转换表达式。表达式是c = 5/9(f - 32)其中f代表华氏温度,c代表摄氏温度。据此可以写下如此代码:
#include <stdio.h>
int main ()
{
float f,c;
f = 64;
c = (5.0/9)*(f-32);
printf("经过奕佳的计算得出:\n");
printf("f=%f\nc=%f\n",f,c);
return 0;
}
运行结果如下:
【例3.2】 计算存款利息,有1000元,想存一年。有三种方法可选
- 活期,年利率为r1;
- 一年期定期,年利率为r2;
- 存两次半年定期,年利率为r3.
请分别计算出一年后按三种方法所得到的本息和。
以下是运行代码:
#include <stdio.h>
int main ()
{
float p0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3;//定义变量;
p1=p0*(1+r1); //计算活期本息和;
p2=p0*(1+r2); //计算一年定期本息和;
p3=p0*(1+r3/2)*(1+r3/2); //计算存两次半年定期的本息和;
printf("p1=%f\np2=%f\np3=%f\n",p1,p2,p3); //输出结果;
return 0;
}
以下是运行结果:
3.2 数据的表现形式及其运算
3.2.1 常量和变量
1.常量
(1)整型常量 如1000,12345,0,-345等都是整型常量。
(2)实型常量 有两种表现形式:
1.十进制小数形式:由数字和小数点组成。如123.456,0.456,-3.1415等。
2.指数形式:如12.34e3(代表12.34*10^3)还有用“E”表示的。由于在计算机输入或输出的时候无法表示上角或下角,故规定以字母e或E代表以10为底的指数。但应注意:E或e之前必须有数字,且e或E后面必须为整数。
3.字符常量:用单撇号括起来的一个字符,如’z’,‘x’,‘c’,‘3’,’!’,’#’,‘a’等,不能写成’ab’,‘12’。字符常量只能是一个字符,不包括单撇号。一般来说,字符在计算机存储单元中是以ASCII代码形式存储的。
以下是转义字符表:
3.3 运算符和表达式.
【例3.3.1】:给定一个大写字母,要求用小写字母输出。
以下是代码:
#include<stdio.h>
int main ()
{
char c1,c2;
c1='A'; //将字符'A'的ASCII代码放到c1变量中;
c2=c1+32; //得到字符'a'的ASCII代码,放在c2变量中;
printf("%c\n",c2); //输出c2的值,是一个字符;
printf("%d\n",c2); //输出c2的值,是字符'a'的ASCII代码;
return 0;
}
接下来是运行结果
’a’与’A’的ASCII代码就相差32,在ASCII代码表中,所有的小写字母和大写字母都相差32.
接下来说一下强制转换(其一般形式表现为(类型名)(表达式))
【例3.3.2】:从键盘输入一个整数,经过计算后,将它的结果强制转换为(double)类型。
代码如下:
#include <stdio.h>
int main ()
{
int a,sum,i;
printf("请输入两个数:\n");
scanf("%d,%d",&a,&i); //从键盘输入两个数;
printf("输入的数是%d,%d\n",a,i); //显示输入的两个数;
sum = a/i; //进行两个数的除法运算;
printf("输出的数是:%f\n",(double)sum); //最后输出结果;
return 0;
}
运行结果如下
最后,sum实现了强制转换,由原来的(int)型变为了(double)型。
3.4 C 语 句
【例3.4】: 给出三个数判断能否构成三角形,若能,求三角形的面积,若不能,输出不能构成三角形。
代码如下:
#include<math.h>
#include<stdio.h>
int main()
{
float a,b,c,p,s;
printf("请输入一个三边:\n");
scanf("%f,%f,%f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("能构成三角形,面积为:%f\n",s);
}
else
printf("不能构成三角形");
return 0;
}
运行结果如下:
3.5 数据的输入和输出
【例3.5】求ax²+bx+c=0的根。a,b,c由键盘输入,设b²-4ac>0。
解题思路:首先要知道求根的方法。有数学只是已知:如果b²-4ac≥0,则一元二次方程有两个实根。
代码如下:
#include <stdio.h>
#include <math.h> //程序中要调用求平方根的函数sqrt
int main ()
{
double a,b,c,disc,x1,x2,p,q; //disc用来存放判别式(b * b-4ac)的值
printf("请输入三个数:\n");
scanf("%lf%lf%lf",&a,&b,&c); //输入双精度型变量的值要用格式声明“%lf”
disc = b*b-4*a*c;
p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1 = p+q;
x2=p-q; //求出方程的两个根
printf("x1=%7.2f\nx2=%7.2f\n",x1,x2); //输出方程的两个根
return 0;
}
运行结果如下:
要
注
意
的
是
,
在
输
入
数
据
时
,
1
,
2
,
3
这
三
个
数
之
间
用
空
格
分
隔
,
最
后
按
“
回
车
”
键
。
要注意的是,在输入数据时,1,2,3这三个数之间用空格分隔,最后按“回车”键。
要注意的是,在输入数据时,1,2,3这三个数之间用空格分隔,最后按“回车”键。
用“printf”输出一个数
【例3.6】:用%f输出实数,只能得到6位小数。
代码如下:
#include <stdio.h>
int main ()
{
double a=1.0;
printf("%f\n",a/3);
return 0;
}
运行结果如下:
【例3.8】:先后输出BOY三个字符。
以下是代码:
#include <stdio.h>
int main ()
{
char a='B',b='O',c='Y'; //定义三个字符变量并初始化
putchar(a); //向显示器输出字符B
putchar(b); //向显示器输出字符O
putchar(c); //向显示器输出字符Y
putchar('\n'); //向显示器输出一个换行符
return 0;
}
运行结果如下:
【例3.9】:从键盘输入BOY三个字符,然后把它们输出到屏幕。(用getchar函数输入)
代码如下:
#include <stdio.h>
int main ()
{
char a,b,c; //定义三个字符变量
a=getchar(); //从键盘输入一个字符,送给字符变量a
b=getchar(); //从键盘输入一个字符,送给字符变量b
c=getchar(); //从键盘输入一个字符,送给字符变量c
putchar(a); //将变量a的值输出
putchar(b); //将变量b的值输出
putchar(c); //将变量c的值输出
putchar('\n'); //向显示器输出一个换行符
return 0;
}
运行结果如下:
【例3.10】:改写例3.3程序,使之可以适用于任何大写字母。从键盘输入一个大写字母,在显示屏上显示对应的小写字母
代码如下:
#include <stdio.h>
int main ()
{
char c1,c2;
c1=getchar(); //从键盘输入一个大写字母,赋给字符变量c1
c2=c1+32; //求对应小写字母的ASCII代码,放在字符变量c2中
putchar(c2); //输出c2的值,是一个字符
putchar('\n');
return 0;
}
运行结果如下:
或者是这样
#include <stdio.h>
int main ()
{
char c1,c2;
c1=getchar(); //从键盘输入一个大写字母,赋给字符变量c1
c2=c1+32; //求对应小写字母的ASCII代码,放在字符变量c2中
putchar(c2); //输出c2的值,是一个字符
printf("大写字母是:%c\n小写字母是:%c\n",c1,c2);//输出c1,c2的值
return 0;
}
运行结果如下: