量。
变量首地址的表示方法: &变量名其中\是地址运算符。 例如 \是指变量radius在内存中的首地址。 scanf()函数的功能:从键盘上接收格式化输入。 2、 格式指示符 格式指示符的一般形式为:
% [*] [宽度] [F|N] [h|l] 类型字符 1.类型字符
类型字符如表3-6所示。例如,在[案例3.7]的scanf()函数语句中,格式字符串\。
2.宽度n 指定该项输入数据所占列数为n。
换句话说,读取输入数据中相应的n位,但按需要的位数赋给相应的变量,多余部分被舍弃。
例如,scanf(\
printf(\ 假设输入\,则系统将读取的\中的\赋给变量ch1;将读取的\中的\赋给变量ch2,所以printf()函数的输出结果为:ch1=a,ch2=d。 3.赋值抑制字符*
表示本输入项对应的数据读入后,不赋给相应的变量(该变量由下一个格式指示符输入)。
例如,scanf(\ printf(\
假设输入\,则系统将读取\并赋值给num1;读取\、但舍弃掉(\的作用);读取\并赋值给num2。所以,printf()函数的输出结果为:num1=12,num2=567。 4.类型修饰符──h、l。
其含义与printf()中的一样,分别为短整型和长整型。
3、 数据输入操作1.如果相邻2个格式指示符之间,不指定数据分隔符(如逗号、冒号等),则相应的2个输入数据之间,至少用一个空格分开,或者用Tab键分开,或者输入1个数据后,按回车,然后再输入下1个数据。例如,scanf(\ 假设给num1输入12,给num2输入36,则正确的输入操作为:12□36↙ 或者:12↙
36↙
注:使用\↙\符号表示按回车键操作,在输入数据操作中的作用是,通知系统输入操作结束。
2.\格式字符串\中出现的普通字符(包括转义字符形式的字符),务必原样输入。例如,scanf(\
假设给num1输入12,给num2输入36,正确的输入操作为:12,36↙ 另外,scanf()函数中、格式字符串内的转义字符(如\\n),系统并不把它当转义字符来解释,从而产生一个控制操作,而是将其视为普通字符,所以也要原样输入。
例如:scanf(\
假设给num1输入12,给num2输入36,正确的输入操作为:
num1=12,num2=36\\n↙建议:为改善人机交互性,同时简化输入操作,在设计输入操作时,一般先用printf()函数输出一个提示信息,再用scanf()函数进
行数据输入。
例如,将scanf(\改为: printf(\ printf(\
3.输入数据时,遇到以下情况,系统认为该数据结束: (1)遇到空格,或者回车键,或者Tab键。
(2)遇到输入域宽度结束。例如\,只取3列。
(3)遇到非法输入。例如,在输入数值数据时,遇到字母等非数值符号(数值符号仅由数字字符0-9、小数点和正负号构成)。 4.使用格式说明符\输入单个字符时,空格和转 义字符均作为有效字符被输入。
例如,scanf(\
printf(\
假设输入:A□B□C↙,则系统将字母'A'赋值给ch1,空格'□'赋值给ch2,字母'B'赋值给ch3。
4.2 选择结构程序设计
一、关系运算符和关系表达式
1、C语言提供了6种关系运算符: < <= > >= == !=
说明:1)、所谓关系运算实际上是\比较运算\
2)、关系运算符是双目运算符,具有自左向右的结合性
3)、前四种关系运算符的优先级别相同,后两种相同。且前四种级别高于后两种
2、关系表达式及关系表达式的值
有关系运算符组成的表达式称为关系表达式。关系运算符两边的运算对象可以是C语言中任意合法的表达式。例如:(a=3)>(b=4)、a>c==c 关系表达式的值为逻辑值,结果为\或\。
注意:1)、若x和y都是实型数,应当避免使用x==y这样的关系表达式,因为通常存放在内存中的实型数是有误差的,不可能精确相等,表达式的值总为0 2)、表达式0
二、逻辑运算和逻辑表达式
1、 C语言提供了3种逻辑运算符 && 逻辑\与\逻辑\或\ !逻辑\非\
说明:1)、优先次序从高到低:逻辑非、算术运算、关系运算、逻辑与、逻辑或、赋值运算、逗号运算
2)、在C语言中,由&&或||组成的表达式,在特定的情况下会产生\短 路\的现象。例如当a的值为0时,对a++ && b++,系统将跳过
b++而不对它求值,在这种情况下,a的值自增变成1,b的值不变。同样当a的值为1时,表达式a++ || b++也是如此 三、if语句和if语句构成的选择结构 1、 不含else子句的if语句 形式:if(表达式) 语句
例如:if(a>b) {t=a;a=b;b=t;}
执行过程;略
ex1、输入两个整数,分别放入变量x和y中,若两数不相等,则输 出其中的大数,若相等则输出字符串\和它们的值 main(_) {int x,y;
printf(\、y:\ scanf(\ printf(\ if(x>y) printf(\ if(y>x) printf(\ if(x==y) printf(\ }
ex2、输入三个整数,分别放在变量a、b、c中。对它们重新按从小到大的顺序排序后再放入a、b、c中。然后输出a、b、c的值。 main() {int a,b,c,t;
scanf(\ printf(\ if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;} if(b>c) {t=b;b=c;c=t;}
printf(\2、 含else子句的if语句
形式:if(表达式) 语句1 else 语句2 例如:if(a!=0) printf(\ else printf(\ 执行过程:略
ex3、输入两个不等的整数分别给x和y,输出其中的大数 main()_ {int x,y;
scanf(\ printf(\ if(x>y) printf(\ else printf(\ }
ex4、输入一个数,判断它能否被3整除,若能打印YES,若不能打印NO main() {int n;
scanf(\ printf(\
if(n%3==0) printf(\ else printf(\ }
3、一、 if语句的嵌套的形式: 1、if(条件1) if(条件2) 语句1;
else 语句2; else 语句3; 2、if(条件1) 语句1; else
if(条件2) 语句2; else 语句3; 3、if(条件1) if(条件2) 语句1;
else 语句2; else
if(条件3) 语句3; else 语句4;
注意:在if的嵌套中else总是与最靠近的if配对,如果需要和前面的配对应加大括号实现。
二、 条件运算符
一般形式:表达式1?表达式2:表达式3 执行过程(略) 优先级别 结合性
条件运算符可以表示简单的if结构的程序
三、 switch语句和程序 一般格式:switch(表达式)
{case 值1:语句1; case 值2:语句2; . . .
case 值N:语句N; [default: 语句N+1;] }
执行过程(略)
4.3 循环结构程序设计