当前位置:文档之家› 第3章 简单C语言程序 (2)

第3章 简单C语言程序 (2)


如果上题改为
int a=-1,b=4,k; k=(a++<=0)||(!(b--<=0)) 结果k,a,b分别等于?
++和--运算符放在后面是先取值运算后 +/-1,所以a++<+0值为1(真);b-<=0值为0(假),!(非)运算后值为1 ,1&&1(与运算)后值为1,运算后 a+1;b-1因此最终结果:k=1,a=0,b=4
求求反反
6.C运算符
(6) 条件运算符 (?:) <表达式1>?<表达式2>:<表达式3>
6.C运算符
(7) 逗号运算符
(,)
(8) 指针运算符
(*和&)
(9) 求字节数运算符
(sizeof)
(10) 强制类型转换运算符 ( (类型) )
(11) 成员运算符
(.->)
(12) 下标运算符
([ ])
复习:运算符和表达式
3. 算术表达式和运算符的优先级与结合性: 1)用算术运算符和括号将运算对象(也称操 作数)连接起来的、符合C语法规则的式子, 称为C算术表达式 2)运算对象包括常量、变量、函数等 3)C语言规定了运算符的优先级和结合性
复习: 运算符和表达式
4.不同类型数据间的混合运算:
(1) +、-、*、/ 运算的两个数中有一个数为float或 double型,结果是double型。系统将float型数 据都先转换为double型,然后进行运算(float型数
printf标志字符
字符
意义
输出结果左对齐,右边填空格;
- 缺省则输出结果右对齐,左边填
空格或零
+ 输出值为正时冠以“+”号,为
负时冠以“-”号
# 八进制输出时加前缀o;十六进
制输出时加前缀0x
例如,以下语句输出六位十 进制整数:
printf(“%6d\n”,111); printf(“%-6d\n”,111); 输出结果为: ┗┛┗┛┗┛111 (输出右对 齐,左边填空格) 111┗┛┗┛┗┛ (输出左对 齐,右边填空格)
C语言程序设计 第3章 简单C语言程序(二)
·校内自编教材 ·
学习目标
掌握数据输入输出方式 掌握输入输出函数的运用 进一步掌握数据类型 进一步掌握各种运算
复习:运算符和表达式
1.基本的算术运算符:
+ :正号运算符(单目运算符) - :负号运算符(单目运算符) * :乘法运算符 / :除法运算符 % :求余运算符 + :加法运算符 - :减法运算符
15赋予变量y。 ⑶ 宽度指示符:用十进制整数指定输入数据的宽度。
例如: scanf(“5d”,&x);
输入数据“661020”,把前五位数66102赋予变量x,其余 部分被截去。
使用scanf函数注意事项
复习运算符和表达式
说明
两个整数相除的结果为整数 – 如5/3的结果值为1,舍去小数部分 – 如果除数或被除数中有一个为负值,舍入方向 不固定。例如,-5/3,有的系统中得到的结果 为-1,在有的系统中则得到结果为-2 – VC++采取“向零取整”的方法 如5/3=1,-5/3=-1,取整后向零靠拢
语句与表达式的区别
表达式语句是由表达式和分号构成。 例如: a=3 是表达式 a=3;是语句。 只有分号的语句是空语句。
3.1 输入/输出函数
在C程序中用来实现输出和输入的,主要是 printf函数和scanf函数
这两个函数是格式输入输出函数 用这两个函数时,必须指定格式
用printf函数输出数据
printf(“%g\n”,888.88); 888.88(%f格式比采用%e格式输出宽度小)
printf(“%8g\n”,888.88); ┗┛┗┛888.88(输出右对齐,左边填空格)
精度指示符
以“.”开头,用十进制整数指精度。对于 float或double类型的浮点数可以用 “m.n”的形式在指定宽度的同时来指定其 精度。其中,“m”用以指定输出数据所占 总的宽度,“n”称为精度。
scanf函数
1. scanf scanf(格式控制,地址表列)
含义同printf函数
scanf函数
1. scanf scanf(格式控制,地址表列)
可以是变量的地址,或字 符串的首地址
【例2-14】 用scanf函数输入数据。 main( ) { int x,y; scanf(“%d%d”,&x,&y); printf(“%d,%d \n”,x,y); }
输出八进制或十六进制时, 可以使用以下形式: printf(“%#o,%#x\n”,10,1 6); 输出结果为: 012,0x10
宽度指示符
宽度指标符:用来设置输出数据项的最小 宽度,通常用十进制整数来表示输出的位 数。如果输出数据项所需实际位数多于指 定宽度,则按实际位数输出,如果实际位 数少于指定的宽度则用空格填补。
横向跳格(即跳到下一个输出区, 9 一个输出区占8列)
退格,将当前位置移到前一列
8
Enter,将当前位置移到本行开头 13
换页,将当前位置多到下页开头
12
反斜杠字符“\”
92
单引号字符
39
双引号字符
34
1到3位8进制数所代表的字符
1到2位16进制数所代表的字符
printf函数的调用
【例2-12】 示例程序 main( ) { char c1='x',c2='y'; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); }
u 以无符号十进制形式输出整数
c 以字符形式输出,只输出一个字符
s 输出字符串
f
以小数形式输出单、双精度数,隐含输出6位小数。
e,E 以指数“e”或“E”形式输出实数。(如1.2e+02或 1.2E+02)
g,G 选用%f或%e格式中输出宽度较短的一种格式,不输出无 意义的0。用G时,若以指数形式输出,则指数以大写表示
输入实数,可以用以小数形式或指数形式输入 与f作用相同,e与f,g可以互相替换
scanf函数的格式说明
(2)抑制字符“*”:表示该输入项读入后不赋予相应 的变量,即跳过该输入值。 例如: scanf(“%d%*d%d”,&x,&y); 输入10┗┛12┗┛15后,把10赋予变量x,12被跳过,
示例程序
输出语句
输出结果
printf(“%d\n”,888);
888(按实际需要宽度输出)
printf(“%6d\n”,888);
┗┛┗┛┗┛888(输出右对齐,左边填空格)
printf(“%f\n”,888.88); 888.880000(按实际需要宽度输出)

printf(“%12f\n”,888.88); ┗┛┗┛888.880000(输出右对齐,左边填空格)
程序运行结果为: c1=x,c2=y c1=120,c2=121
printf格式字符
格式字符
说明
d,i 以带符号的十进制形式输出整数(正数不输出符号)
o 以八进制无符号形式输出整数(不输出前导符0)
x,X 以十六进制无符号形式输出整数(不输出前导符0x),用 x则输出十六进制数的a~f时以小写形式输出;用X时,则 以大写字母输出
据在运算时一律先转换成双精度型,以提高运算精度(即使 是两个float型数据相加,也先都化成double型,然后再
相加)
(2) 如果int型与float或double型数据进行运算,先 把int型和float型数据转换为double型,然后进 行运算,结果是double型
(3)字符型数据与整型数据进行运算,就是把字符的 ASCII代码与整型数据进行运算
(13) 其他
(如函数调用运算符())
练习
int a=-1,b=4,k; k=(a++<=0)&&(!(b--<=0)) 结果k,a,b分别等于?
++和--运算符放在后面是先取值运算后 +/-1,所以a++<+0值为1(真);b-<=0值为0(假),!(非)运算后值为1 ,1&&1(与运算)后值为1,运算后 a+1;b-1因此最终结果:k=1,a=0,b=3
示例程序
输出语句 printf(“%.5d\n”,888); printf(“%.0d\n”,888); printf(“%8.3f\n”,888.88); printf(“%8.1f\n”,888.88); printf(“%8.0f\n”,888.88); printf(“%.5s\n”,”abcdefg”); printf(“%5s\n”,”abcdefg”);
用printf函数输出数据
1.printf函数的一般格式 printf(格式控制,输出表列)
例如: printf(”i=%d,c=%c\n”,i,c);
可以是常量、变量或表达式
转义字符
字符形式 \n \t
\b \r \f \\ \’ \” \ddd \xhh
含义
ASCII代码
换行,将当前位置移到下一行开头 10
输出结果如下: 123,┗┛┗┛┗┛123,123┗┛┗┛┗┛,123 1234567,┗┛1234567,1234567 123.456700,123.456700,┗┛┗┛┗┛┗┛123.46,123.46┗┛┗┛┗┛┗┛
student,┗┛┗┛┗┛┗┛┗┛stude,stude┗┛┗┛┗┛┗┛┗┛
相关主题