怎样区分表达式和表达式语句? 可以参考教材P64 (3)表达式语句
C 语言为什么要设表达式语句?
什么时候用表达式?
当我们需要将表达式的值用于某些操作时,我们应该使用表达式
最简单的例子,就是用表达式的值进行语句的判断
int x = 3;
if(x > 3)
;
什么时候用表达式语句?
C语言为什么要把输入输出的功能作为函数,而不作为语言的基本部分?
用下面的scaf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=‘A’,c2=‘a’。如何在键盘上输入
#include
int main()
{
int a, b;
float x, y;
char c1, c2;
scanf("a = %d, b = %d", &a, &b);
scanf("%f %e", &x, &y);
scanf("%c %c", &c1, &c2);
return 0;
}
注意
书本中的第七行是没有那么多空格的,是a=%d b = %d
,在输入时要严格按照这个格式进行输入,否则无法输出
其次,在输入完71.82后,我们发现,其实%e和%c是紧挨着的,是不能加空格的,如果加了空格,空格是字符之一,那么scanf就会读入空格并赋给c1,看下方:
如果你发现在你的程序敲出了上述代码后,运行发现是空的,那是因为你没有加上输出函数,加上一个printf函数即可
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
int a, b;
float x, y;
char c1, c2;
scanf("a = %d, b = %d", &a, &b);
scanf("%f %e", &x, &y);
scanf("%c %c", &c1, &c2);
printf("输出为:\n");
printf("a = %d, b = %d\n%f %e\n%c %c", a, b, x, y, c1, c2);
return 0;
}
下面的scanf函数,输入数据,使a=10,b=20,c1=‘A‘,c2=‘a‘,x=1.5,y=-3.75,z=67.8,请问如何在键盘上输入数据
scanf("%5d%5d%c%c%f%f%*f,%f", &a, &b, &c1, &c2, &x, &y, &z);
注意事项:
设圆半径r=1.5,圆柱高 h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用 scanf输人数据,输出计算结果,输出时要求有文字说明,取小数点后 2 位数字。请编程序。
野鸡有话说:
这道题要想写对,首先你要知道圆上面的公式,整理如下:
圆的周长:
圆的面积:
圆球表面积:
圆柱体积:
知道了上述公式,编写程序手到擒来
代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
float r = 1.5;
float h = 3;
float pi = 3.1415926;
float c = 0;//圆周长
float s = 0;//圆面积
float sq = 0;//圆球表面积
float vq = 0;//圆球体积
float vz = 0;//圆柱体积
scanf("%f %f", &r, &h);
c = 2 * pi * r;
s = pi * r * r;
sq = 4 * pi * r * r;
vq = 4 / 3 * pi * r * r * r;
vz = pi * r * r * h;
printf("圆周长为: %.2f\n", c);
printf("圆面积为: %.2f\n", s);
printf("圆球表面积为: %.2f\n", sq);
printf("圆球体积为: %.2f\n", vq);
printf("圆柱体积为: %.2f\n", vz);
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
float f = 0;
float c = 0;
printf("请输入一个华氏温度:");
scanf("%f", &f);
c = 5.0 / 9 * (f - 32);
printf("摄氏度为:%.2f°C\n", c);
return 0;
}
用getchar函数读入两个字符给c1,c2,分别用putchar和printf输出这两个字符。思考以下问题:
(1)变量c1和c2定义为字符型还是整型?或二者皆可?
(2)要求输出c1和c2的ASCII码,应如何处理?
(3)整形变量和字符变量是否在任何情况下都可以互相代替?char c1, c2;和int c1, c2;是否无条件等价?
野鸡有话说:
具体的putchar和getchar的用法请参考书本P72 3.6部分
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
char c1 = 0;
char c2 = 0;
c1 = getchar();
c2 = getchar();
putchar(c1);
putchar(c2);
printf("\n");
printf("%c%c", c1, c2);
return 0;
}
注意事项:
回答:
(1)变量c1和c2定义为字符型还是整型?或二者皆可?
(2)要求输出c1和c2的ASCII码,应如何处理?
直接用printf函数输出即可,用%d格式符
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
char c1 = 0;
char c2 = 0;
c1 = getchar();
c2 = getchar();
printf("%c %c\n", c1, c2);
printf("%d %d\n", c1, c2);
return 0;
}
(3)整形变量和字符变量是否在任何情况下都可以互相代替?char c1, c2;和int c1, c2;是否无条件等价?
不是的。
整型变量要在可输出字符范围内(ASCII码为0-255字符)是可以互相转换的,但是如果整型变量的值在可输出字符范围之外,是不能代替字符变量的