0.展示PTA总分
顺序结构
选择结构
1.本章学习总结
1.1 学习内容总结
第一章
- printf(“···”)输出语句会把“”中的字符串原样输出,也可以加%进行四则运算,即%d或者%f是求值,求printf(“···”,···)中,后面的值。
- \n是在输出内容后再空一行。
- 自定义或者其他变量都有自己的数据类型,比如四种整数类型(byte、short、int、long)、两种浮点数类型(float、double)、一种字符类型(char)等。
- c语言程序设计基本由数据表达和数据处理来构成,数据表达即定义数据以供使用,数据处理是程序主体,在流程控制中,我们已经见到了顺序、分支(if else等)和循环(for、while、do while)3种基本控制结构。
- 标识符(标识符由字母、下划线、数字这三个方面组成,但开头必须是字母或下划线。
另外,关键字不能是标识符,如main等)有:byte、short、int、long、float、double、char、boolean、n等。 - 常量有数据类型,常量是指在程序运行中不能改变的数据,有整型常量、实型常量、字符常量等。
- 运算符有:+、-、*、/、&&、>、<、||等,有优先等级之分。
- 每条语句最后要加分号;来执行运算。
- 用一对大括号{}将若干语句顺序组合在一起就形成了一个复合语句。
- scanf输入语句的基本形式是scanf(“%d或者%f”,&输入内容),&非常重要。
第二章
- 可以用来注释文本的符号有:/```/和//。
- return 0;的作用是结束主函数的运行,并向系统返回0,作为程序的结束状态。
- float和double的区别在于double型数据占用空间和精确度都更大。
- C语言中变量的含义和数学中变量的含义不同。C语言中的变展在数学上是错误的,在C语言中却表示把变量x的值加1,然后再保存到x中。例如,x=x+1。
- C语言区分大小写字母, 它认为fahtr 和Fahr是不一样的。
- 赋值表达式:变量=表达式; 赋值运算符的左边必须是一个变量。=是赋值运算符。
- printf(“%d %f”,a,b)中%d、f和a、b是一一对应的。
- ==是关系运算符,用于比较两个操作数是否相等;而=是赋值运算。
- if else语句的一般形式为:
if (表达式)
语句1;
else
语句2; - for循环语句基本形式:
for(表达式1;表达式2;表达式3)(注意这里没有分号)
循环体语句
表达式3在循环语句后执行。还要有变量的初始值。 - %求余运算在整数间进行。
- 平方根函数sqrt (x),绝对值函数fabs (x),幂函数pow(x,n),指数函数exp (x),以e为底的对数函数log (x): 计算Inx。
第三章
- if else语句适用于二分支结构,而else-if语句适用于多分支结构;else-if的一般形式为:
if (表达式1)
语句1;
else if (表达式2)
语句2;
···
else if (表达式n-1)
语句n-1;
···
else
语句n; - 要区分数字和数字字符, 例如,1是整型数字,而1是字符。2字符型变量
字符型变量在定义时用类型名char,例如:
char op;
定义了一个字符型变量op,它的值是字符型数据。op='+'将字符型常量'+"赋给字符型变量op。 - 字符输人函数getchar ()
调用字符输人函数getchar ()可以从键盘输人一个字符。设c是是字符型变量,函数getchar ( )的一般调用格式为:ch=getchar ();
其功能是从键盘输人一个字符,并赋值给变量ch。
由于函数gelchar ()只能读人一个字符,如果要输人多个字符,就需要多次调用该函数,-般采用循环调用的方式。例如以下程序段:
char ch;
for (i=0; i< 10; i++)
ch=getchar ( );
语句ch=getchar ()被循环调用了10次,共读入10个字符。 - 字符输出函数putchar()
调用字符输出函数putchar ()可以输出一个字符。函数putchar ()的般调用格式 为:
putchar (输出参数);
其功能是输出参数是字符型变量或字符型常量。 - switch语句:
在swich语句的每个语句段中都使用break语句这是switch语句的主要使用方法,一般形式为:
switch (表达式){
case常量表达式1:语句段1; break;
case常量表达式2:语句段2; break;
···
case: 常量表达式n:语句段n; break;
default: 语句段n+1; break;
}
如果不使用break,不但执行对应语句,还执行后面的语句。
第四章
- while语句和do-while语句:
while语句是先判断条件,条件满足后才执行循环体; do while语句是先执行循环体,后判断循环条件,
do while语句至少执行一次,但while语句可能1次都不执行。
*contimue语句和break语句:
contimue语句和break语句的区别在于,break结束循环,而continue 只是跳过后物语句继续循环。break 除了可以中止循环外,还用手switch语句,而continue只能用于
循环。
1.2 本章学习体会
可能是对文字理解能力的下降,感觉c语言的学习有些吃力,但是努力在跟,感觉还是很容易遗漏一些很重要哦的知识点,比如scanf语句中常常遗漏&导致出错,感觉可能此专业是真的需要每天都要投入大量时间来练习代码,然后熟练度达到一定水平之后可能就比较容易游刃有余,对此专业真的有点爱恨交织,会更加严格的要求自己。
2.PTA实验作业
2.1 7-7 计算银行存款的本息
- 本题目要求计算银行存款的本息,计算公式为sum=money×(1+rate)
year
,其中sum为存款到期时的本息合计(税前),money是存款金额,year是存期,rate是年利率。
2.1.1 数据处理
- 数据表达:
1.int money,存储输入的存款金额数;
2.int year;存储输入的存期;
3.double rate,存储输入的年利率;
4.double sum,为本息合计做存储准备; - 数据处理:
一个输入语句,一个赋值表达式,一个输出出口;
2.1.2 代码截图
2.1.3 pta提交列表及说明
Q1.第一次提交时忘记了&符号,
A.改正后进行第二次提交,
Q2.发现没有带空格,
A.改正后答案正确。
2.1.4本题可扩展功能
可以根据所知的数据来计算所得的利润:
2.2 7-6 出租车计价
本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
起步里程为3公里,起步费10元;
超起步里程后10公里内,每公里2元;
超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)
2.2.1 数据处理
- 数据表达:
1.double distance;存储里程数;
2.int time;存储时间;
3.double money1;存储情况一的可能结果;
4.double money2;存储情况二的可能结果;
5.double money3;存储情况三的可能结果; - 数据处理:
一个输入语句,两个else-if结构,一个输出出口;
2.2.2 代码截图
2.2.3 pta提交列表及说明
Q1.time的条件搞错;
A.把time改成如图的两种情况;
Q2.第三个语段用的else;
A.改成了else if;
2.2.4 本题可扩展功能
可以用来计算t>10时每5分钟3元的情况:
2.3 7-12 判断一个三位数是否为水仙花数
本题要求编写程序,判断一个给定的三位数是否为水仙花数。三位水仙花数,即其个位、十位、百位数字的立方和等于该数本身。
2.3.1 数据处理
- 数据表达
1.int N;定义输入的整数;
2.int bit;储存个位数;
3.int hundred;存储百位数;
4.int ten;存储十位数; - 数据处理
一个输入语句,两个if else结构,3条输出语句。
2.3.2 代码截图
2.3.3 pta提交列表及说明
Q1.最后的输出语句没有加!
A.加上了感叹号以后提交。
Q2.if()中的条件没有用&&连接,
A.添加&&后答案正确。
2.3.4 本题可扩展功能
可以利用这个原理计算更多整数的定义也可以换平方的定义:
3.阅读代码
题目:
题解:
- 代码功能:
对于给定的采用”yyyy/mm/dd”加24小时制(用短横线”-”连接)来表示日期和时间的字符串,将其转换成”mm/dd/yyyy”加12小时制格式的字符串。 - 优点:用了getchar语法,比其他语法要相对简单一点,
每个变量对应的语法都是唯一的,简单易懂。