标识符:由字母、数字和下划线组成,其中第一个字符必须是字母或者下划线。 常量:有整型常量123,实型常量12.34,字符常量'a',字符串常量"Hello World!"等。 运算符:有+(加)、-(减)、*(乘)、/(除)、%(求余)、>(大于)、**>=(大于等于)**、**==(等于)**、**=(赋值)**等。 分隔符:有;、[、]、(、)和#等。
学习了解C语言中的数据类型,包括int(整型),char(字符型),float(单精度浮点型),double(双精度浮点型)。 学习了数据格式化输出函数printf(),数据格式化输入函数scanf(),字符输出函数putchar(),字符输入函数getchar()。
学习如何运用if语句和switch语句来解决各类问题。
优先级:赋值运算符<关系运算符<算数运算符。安全
if(表达式) { 语句1 } else { 语句2; }
注意:
if语句表达式能够接收全部的数据类型。
if语句后面不能加分号。
else子句是if语句的一部分,必须与if配对使用,不能单独使用。
else与最靠近它的、没有与别的else匹配过的if相匹配。ide
switch(表达式) { case '值1'://若值1==表达式的值,执行语句1 语句1;break;//阻止当前程序的执行 case '值2': 语句2;break; case '值3': 语句3;break; default://若表达式的值不知足case的任何一种状况,则执行default下的语句 }
注意:
case后面注意有一个空格。
case后面的常量表达式不能相同。
break语句只能用于循环语句和switch语句中,不能单独使用。函数
for(表达式1;表达式2;表达式3) { 循环体语句; }
注意:
若循环体语句由多条语句组成,必须用大括号括起来。
必须用两个分号分隔三个表达式,但for后面无分号。学习
代码量为497行。测试
数据处理:
表达式:N>=100&&N<=999,N==pow(N%10,3)+pow((N/10)%10,3)+pow(N/100,3)
流程结构:输入一个整数N,若N知足表达式N>=100&&N<=999则进入if语句,不然直接输出"Invalid Value!"当N再知足表达式N==pow(N%10,3)+pow((N/10)%10,3)+pow(N/100,3)输出"Yes"不然进入其else子句,输出"No"。ui
本题可扩展为输出100到999之间的水仙花数及个数
3d
N==pow(N%10,3)+pow((N/10)%10,3)+pow(N/100,3)中第三个pow()里把%改成/。code
数据处理:
表达式:item>= 0.00001,number = number * x,product = product * i,i++,sum = sum + item,item=number/product。
流程结构:输入一个实数x,当item>= 0.00001时,进入while循环,当item< 0.00001时,跳出循环,累加各项,输出sum的值。blog
使用for语句循环及if语句
字符串
在item类型前面加上long
数据处理:
表达式:s=(a+b+c)1.0/2,area=sqrt(s(s-a)(s-b)(s-c)),perimeter=a+b+c,(a+b>c)&&(a+c>b)&&(b+c>a)
流程结构:输入三个整数a,b,c,若是知足表达式(a+b>c)&&(a+c>b)&&(b+c>a)则输出面积和周长,不然输出"These sides do not correspond to a valid triangle"。
本题可扩展为在三条边能构成三角形的条件下,能构成何种三角形。若三条边知足表达式(a^2+b^2=c^2||a^2+c^2=b^2||c^2+b^2=a^2),则三条边能构成直角三角形;若三条边知足表达式(a==b||a==c||b==c),则三条边能构成等边三角形;若以上都不知足则为锐角三角形。
printf("area = %.2f; perimeter = %.2f",area,perimeter)中间漏了分号。
代码优势: 使用eps控制迭代精度,以避免double类型不精确,不能和0直接比较。 使用多个if语句和while语句,逻辑清晰,井井有条。 使用了const ,便于进行类型检查,消除了一些隐患。 代码写得很规范,没有明显的安全问题。