0.展示PTA总分
顺序结构
分支结构
1.本章学习总结
1.1学习内容总结
1.学会了注释要用注释符:/* */
'''
int celsius,fahr;/*定义两个整型变量,celsius表示摄氏度,fahr表示华氏度*/
fahr=100;/*对变量fahr赋值*/
celsius=5*(fahr-32)/9;/*温度转换计算*/
'''
2.学习了几个c语言中常用的数据类型
int(整型)、char(字符型)、float(单精度浮点型)、double(双精度浮点型)
float和double区别:double型数据占用空间更大,精度更高,取值范围更大。
浮点型数据:%f(保留6位小数)、%.2f(保留2位小数)
3.学习了几个运算符
双目算术运算符:+(加)、-(减)、*(乘)、/(除)、%(求余)
关系运算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、!=(不等于)
逻辑运算符:!(非)、&&(与)、||(或)
4.学会使用if-else语句
```
if (x >= 0)
{
y = sqrt(x);
}
else
{
y = pow(x + 1, 2) + 2 * x + 1.0 / x;
}
```
5.学会了格式化输入函数
变量名前加&,如&x。
格式控制说明:int型数据使用%d,float型数据使用%f,double型数据使用%lf.
6.学习了几个常用数学函数
平方根函数sqrt(x)。如sqrt(4.0)的值为2.0。
绝对值函数fabs(x)。如fabs(-3.56)的值为3.56。
幂函数pow(x)。如pow(1.1,2)的值为1.21。
指数函数exp(x)。如exp(2.3)的值为9.974182。
以e为底的对数函数log(x)。如log(123.45)的值为4.815836。
7.学习了for语句
for语句中的fahr++相当于fahr=fahr+1。
for(表达式1;表达式2;表达式3)
循环体语句
例:
```
for (i = 1; i <= n; i++)
{
number = number * 10 + a;
sum = sum + number;
}
```
8.学会了二分支结构和多分支结构
二分支结构一般形式:
if (表达式)
语句1;
else
语句2;
例:
```
if (x % 2 == 0)
{
printf("yes");
}
else
{
printf("no");
}
```
多分支结构的一般形式:
if (表达式1)
语句1;
else if (表达式2)
语句2;
...
else if (表达式n-1)
语句n-1;
else
语句n;
例:
```
if (x >= 90
{
printf("A");
}
else if (x < 90 && x >= 80)
{
printf("B");
}
else if (x < 80 && x >= 70)
{
printf("C");
}
else if (x < 70 && x >= 60)
{
printf("D");
}
else if (x < 60)
{
printf("E");
}
```
9.学习了字符型数据
字符型常量表示如:'a'、'9'、'$'
字符型变量:定义时用类型名char,例如:char op;
10.学会了swith语句
1.每个语句段中都使用break语句,一般形式为:
swith (表达式) {
case 常量表达式1:语句段1; break;
case 常量表达式2:语句段2; break;
...
case 常量表达式n:语句段n; break;
default: 语句段n+1; break;
}
例:
```
switch (month)
{
case 01:
days = day;
break;
case 02:
days = 31 + day;
break;
case 03:
days = 31 + 29 + day;
break;
case 04:
days = 31 * 2 + 29 + day;
break;
case 05:
days = 31 * 2 + 30 + 29 + day;
break;
case 06:
days = 31 * 3 + 30 + 29 + day;
break;
case 07:
days = 31 * 3 + 30 * 2 + 29 + day;
break;
case 8:
days = 31 * 4 + 30 * 2 + 29 + day;
break;
case 9:
days = 31 * 5 + 30 * 2 + 29 + day;
break;
case 10:
days = 31 * 5 + 30 * 3 + 29 + day;
break;
case 11:
days = 31 * 6 + 30 * 3 + 29 + day;
break;
case 12:
days = 31 * 6 + 30 * 4 + 29 + day;
break;
}
```
2.不使用break语句,一般形式为:
swith (表达式) {
case 常量表达式1:语句段1;
case 常量表达式2:语句段2;
...
case 常量表达式n:语句段n;
default: 语句段n+1;
}
11.学习了嵌套的if-else语句
一般形式为:
if (表达式1)
if (表达式2) 语句1;
else 语句2;
else
if (表达式3) 语句3;
else 语句4;
例:
```
if (x>=85 && y>=55 && z>=55 && m>=85 && x+y+z+m>=305)
if (x + y + z + m >= 370)
{
printf("A");
}
else
{
printf("B");
}
else
{
printf("C");
}
```
else和if的匹配原则:
else与最靠近它的、没有与别的else匹配过的if相匹配。
1.2本章学习体会
通过这两三周的学习,让我初步了解了c语言,学会了一些简单的编程,不在像假期那样一无所知。随着知识的不断深入,我渐渐感觉到了有点吃力,开始问同学,希望在以后我能慢慢追赶上来!
pta上的题目让我改正了许多编程上的错误和不规范,同时也让我对vs的使用更加熟练。
我的代码量
4,5周:535行
2.PTA实验作业
2.1 判断一个三位数是否为水仙花数
2.1.1数据处理
1.定义整型数据个位g、十位s、百位b、输入数据N。
2.输入一个整数N。
3.利用表达式g = N % 10;s = N / 10 % 10;b = N / 100;算出个位、十位、百位。
4.利用嵌套的if-else结构判断输入的数是否是水仙花数。先判断是否是三位数,若是,则继续判断是否是水仙花数;若是水仙花数,输出Yes,若不是,输出No;若不是三位数,输出Invalid Value!
2.1.2代码截图
2.1.3本题可扩展功能
本题还可用swith语句替换嵌套的if-else语句。
2.1.4PTA提交列表及说明
虽然一次就提交成功,但是是在同学的帮助下在VS上经过多次调试最终才搞定的!
2.2 输出三角形面积和周长
2.2.1数据处理
1.定义整型变量边长a、b、c和浮点型变量area、s、perimeter。
2.输入边长a、b、c。
3.运用if-else结构判断是否是三角形。若是,则运用公式area=√s(s−a)(s−b)(s−c),其中s=(a+b+c)/2算出area和perimeter,保留两位小数输出area和perimeter;若不是三角形,输出These sides do not correspond to a valid triangle。
2.2.2代码截图
2.2.3本题可扩展功能
本题可判断是否是直角三角形
2.2.4PTA提交列表及说明
一开始公式写错,我通过观察,又添加监视之后找到错误。
后来又是有一个小数位数不对,我通过调试之后发现错误。
2.3 判断偶数
2.3.1数据处理
1.定义整型变量a、yes、no。
2.输入一个整数a。
3.运用if-else结构判断是否是偶数。若是,输出yes;若不是,输出no。
2.3.2代码截图
2.3.3本题可扩展功能
本题可判断是否为奇数
2.3.4PTA提交列表及说明
一开始编译错误,后来问了同学才改过来;
然后又通过VS调试才改正确。
3.阅读代码
功能:把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?
优点:有注释;代码结构整齐紧凑;变量名规范;大括号换行规范。