一、目的
1、C程序设计的基本语句表达方式
2、C程序设计的基本语句结构
3、C程序中输入、输出函数的基本功能
二、要点
1.表达式是什么
表达式是由常量、变量、运算符、函数组合,计算以后返回一个结果值。表达式的结束标志是分号,在分号出现之前语句是不完整的。
表达式本身什么事情都不做,只是返回结果值。在程序不对返回的结果值做任何操作的情况下,返回的结果值不起任何作用,表达式的作用有两点:
(一)、放在赋值语句的右边;
(二)、作为函数的参数;
表达式返回的返回值是有类型的。表达式隐含的数据类型取决于组成表达式的常量和变量类型。因此,表达式的返回值有可能是某种大小的整型,或者某精度的浮点型,或者是某种指针类型。
每一种表达式的返回值都具有逻辑特性。如果返回为非0,则该表达式为真,否则为假,这种逻辑特性可以用在程序流程的控制语句中。
2.语句
(一)赋值语句
赋值语句的作用是把某种常量或者变量或者表达式的值赋值给另一个变量。赋值语句左边的变量在程序的其他地方必须要声明。
count=5;
sum1=sum2=0;
sum1=0;//读的第一步
sum2=sum1;//读的第二步
图1
第一个赋值语句应该都能理解
第二个把0同时赋给两个变量,但它的读法是从右往做读,就是如图1所示。
那肯定有人会想前面带个括号呢,可以这样吗?
(sum1=sum2)=0;
图二
像图二这样是不可以的,因为先要算括号里面的,这是sum1=sum2是一个表达式,而赋值语句右边是不允许表达式存在的。
(二)可以用逗号隔开的声明语句
C语言和大多数语言一样,运行用逗号分隔声明语句中的标识符列表,说明这些运算符是同一变量类型,类如:
int x , y , z;
在声明的时候,也可以直接给变量赋值,这叫做变量的初始化。
(三)标准的输入输出语句
1.标准输入语句
scanf()函数
用来从标准设备上读取数据,其调用格式为:
表达式为:scanf(<格式化字符串>,<地址表>);
格式化字符串包括以下三类不同的字符:
(一)、空白字符:它会使scanf()函数在读操作中略去输入中的一个或者多个空白字符;
(二)、非空白字符:一个非空白字符会使scanf()函数在读取时剔除掉与这个非空白字符相同的字符。
(三)、格式化说明符:以%开始后跟一个或者几个规定字符,用来确定内容的输出格式。
符号 | 作用 | 符号 | 作用 |
%d | 十进制有符号整数 | %c | 单个字符 |
%u | 十进制无符号整数 | %p | 指针的值 |
%f | 浮点数 | %x | 无符号以16进制表示的整数 |
%s | 字符串 | %o | 无符号以八进制表示的整数 |
例如:
scanf("%d,%d",&a,%b);
scanf()说明
(a)、对于各个变量,类型说明符是什么,输入格式化说明符就应该用对应的类型。否则会出现程序错误或输入数据和理想不一样
(b)、对于字符串数组或者字符串指针变量,由于数组名和指针变量名本身就是地址,因此在使用scanf()函数时,不需要在它们前面加上&操作符。
(c)、可以在格式化字符串中的%各格式化规定符之间加入一个整数,表示任何读操作中的最大位数。
2.标准输出语句
printf()函数
用来向标准输出设备(屏幕)写程序。
表达式:printf(<格式化字符串>,<参量表>);
其中格式化字符包括两个部分,一部分是正常字符,这些字符将原样输出:,;另一部分是格式化规定字符,以%开始,后跟一个或几个规定字符,用来确定输出内容格式。其中要输出的一系列参数必须与格式化字符串所说明的输出参数个数一样多,个参数之间用,分开,且顺序一一对应,否则会出现不可思议的错误。
对于输出语句还有一些有意思的格式化说明符
符号 | 作用 | 符号 | 作用 |
%e | 指数形式的浮点数 | %g | 自动选择合适的表示法 |
printf()说明:
(a)可以在%和字母之间插进数字表示最大场宽;
如果字符串的长度或者整型数位数超过说明的场宽,将按其实际长度输出。但对浮点数,若整数部分位数超过了说明的整数位数宽度,将按实际整数位输出;若小数位超过,按四舍五入输出。
另外,若想在输出值前面加一些0,就应在场宽项前加0。例如%05d,表示在输出一个小时5位数的值时,将在前面补0使其总宽度为4位。
如果用浮点数表示字符或整型量的输出格式,小数点前的数字代表最小宽度,小数点后的数字代表最大宽度。例如%6.9s表示显示一个长度不小于6且不大于9的字符串。
(b)可以在%和字符之家加小写字母l,表示输出的是长型数;
例如:%ld表示输出long整数;%lf表示输出double浮点数。
(c)可以控制输出左对齐或者右对齐,即在%和字母之间加入一个-号可说明输出为左对齐,否则为右对齐;
例如:%-7d表示7位整数左对齐;%10-s表示输出10个字符左对齐。