例3.1 求华氏温度100°F对应的摄氏温度
#include<stdio.h>
int main(void)
{
/*定义2个整型变量,celsius表示摄氏温度,fahr表示华氏温度*/
int celsius, fahr;
scanf_s("%d", &fahr);
printf("输入华氏温度:");
celsius = 5 * (fahr - 32) / 9;
printf("华氏温度为%d,摄氏温度为:%d\n", fahr, celsius);
return 0;
}
运行结果
例3.2 由键盘输入一个小写字母,将其转换成大写字母输出
#include<stdio.h>
int main()
{
char c1, c2;
printf("请输入一个小写字母:");
c1 = getchar();
printf("%c,%d\n", c1, c1);
c2 = c1 - 32;
printf("%c,%d\n", c2, c2);
return 0;
}
运行结果
3.2 C 语言的语句
1.说明语句(用于定义程序所使用的变量与类型)
2.表达式语句(由表达式加上分号“,”组成)
3.分支语句(实现分支控制过程,根据条件成立与否执行不同语句。有两种分支结构,即双分支if-eles语句与多分支的switch语句)
4.循环语句(有3种,即for语句、while语句和do-while语句)
5.转向语句(break语句、goto语句、continue语句、return语句)
6.复合语句(用一对大括号{}将若干语句顺序组合在一起所形成的语句称为复合语句)
7.空语句(只由一个分号构成)
8.函数定义与调用(函数是完成特定功能的小模版,是C语言中唯一的一种子程序,常常在一个C程序在包含若干给函数,复杂的任务通过调用这些函数来完成)
9.输入与输出(C语言没有提供用于数据输入及输出的语句,所有的输入与输出都是通过系统提供y有关函数(如scanf()和printf()函数)来实现的)
3.3 数据的输入与输出
3.3.1 输入函数(printf()和输入函数(scanf())
1.printf()函数
(1)格式控制说明:按指定的格式输出数据,其格式为以%开头的格式控制字符,不同类型的数据采用不同格式控制字符,以说明输出数据的类型、形式、长度、小数位数等。例如,int型数据采用%d,float型和double型数据都采用%f。
(2)普通字符:在输出数据时,需要原样输出的字符。
例3.3 按指定格式输出整型数据示例
#include<stdio.h>
int main()
{
int a = 1, b = 2, c = 3;
printf("a=%d,c=%d\n", a, b, c);
return 0;
}
运行结果
2.scanf()函数、
(1)格式控制说明:按指定的格式输入数据,其格式为以%开头的格式控制字符,不同类型的数据采用不同的格式控制字符。例如,int型数据采用%d,float型数据采用%f,而double型数据采用%If(%If其中的l是longd的首字母,不是数字1)。
(2)普通字符:在输入数据时,需要原样输入的字符。
3.3.2 整型数据的输入与输出
表3.1 printf()、scanf()函数中的格式字符(整型数据)
表3.2 printf()函数中的格式修饰符
例3.4 整型数据的输出示例
#include<stdio.h>
int main()
{
int a = 123;
long int b = 32770;
printf("a=%d,b=%ld\n", a, b);
printf("a=%o,b=%lo\n", a, b);
printf("a=%#x,b=%#lx\n", a, b);
printf("a=%d,b=%ld\n", a);
printf("a+b=%ld", a + b, b);
printf("输出结束!\n");
return 0;
}
运行结果
例3.5整型数据的输入示例
#include<stdio.h>
int main()
{
int a, b;
long int c;
scanf_s("%d%d%ld",&a, &b, &c);
printf("a=%d,b=%d,c=%ld\n",a,b,c);
return 0;
}
运行结果
例3.6 带有修饰符的整型数据的输入输出示例
#include<stdio.h>
int main()
{
int a, b, c, d;
scanf_s("%2d3%d*d,%d%d", &a, &b, &c, &d);
printf("a=%d,b=%d,c=%d,d=%d\n", a, b, c, d);
printf("a=%4d,b=%-4d,c=%-4d,d=%4d\n", a, b, c, d);
printf("a=%+4d,b=%+4d,c=%+4d,d=%+4d\n", a, b, c, d);
return 0;
}
运行结果
3.3.3 实型数据的输入和输出
例3.7 实型数据的输入输出示例
#include<stdio.h>
int main()
{
float f;
double d;
scanf_s("%f,%lf", &f, &d);
printf("f=%f,d=%f\n", f, d);
printf("f=%e,d=%e\n", f, d);
printf("f=%4.2f,d=%.3f\n", f, d);
return 0;
}
运行结果
3.3.4字符型数据的输入和输出
1.使用scanf()函数和printf()函数对字符型数据进行输入输出
例3.8 字符型数据的输入输出示例
#include<stdio.h>
int main()
{
char a, b, c;
scanf_s("%c%c%c", &a, &b, &c);
printf("a=%3c,b=%c,c=%c\n", a, b, c);
return 0;
}
运行结果
2.使用 getchar()函数和 putchar()函数对字符型数据进行输入输出
(1) getchar()的一般调用格式为:
ch=getchar();
运行时从键盘输入缓冲区读取一个字符,并赋值给变量ch。
(2)putchar()的一般调用格式为:
putchar(输出参数)
输出一个字符,输出参数是字符型变量或字符型常量。
例3.9 由键盘输入一个字符,将其输出到屏幕
#include<stdio.h>
int main()
{
char ch;
ch = getchar();
putchar(ch);
return 0;
}
运行结果
3.4 数学库函数
常用的数学库函数有:
1.指数函数exp(x):计算。如exp(2.3)的值为9.974182。
2.绝对值函数fabs(x):计算|x|。如fabs(-2.8)的值为2.8。
3.以e为底的对数函数log(x):计算lnx。如log(123.45)的值为4.815836。
4.幂函数pow(x,y):计算。如pow(1.3,2)的值为1.69。
5.平方根函数sqrt(x):计算。如sqrt(4.0)的值为2.0。
例3.10 输入一个球的半径,根据公式计算并输出球的体积
#include<stdio.h>
#include<math.h>
#define PI 3.14
int main()
{
float r, v;
printf("输入半径r:");
scanf_s("%f", &r);
v = 4.0 / 3 * PI * pow(r, 3);
printf("体积为:%.2f\n", v);
return 0;
}
运行结果
例3.11 求一元二次方程a+bx+c=0的根
#include<stdio.h>
#include<math.h>
#define PI 3.14
int main()
{
float a, b, c, x1, x2, p, q;
printf("请输入三个系数:");
scanf_s("a=%f,b=%f,c=%f", &a, &b, &c);
p = -b / (2 * a);
q = sqrt(b * b - 4 * a * c) / (2 * a);
x1 = p + q; x2 = p - q;
printf("x1=%5.2f\n", a, b, c);
return 0;
}
运行结果