一.制作思维导图
二.对以下语法的认识
1.if-else语句
if(条件){
语句1;}
else(条件){
语句2;}
使用方法:首先判断if后面的条件是否成立,成立则执行语句1,反之执行语句2。注意:1.if()后面不能有;否则无法判断。2.单个语句时可不加{},else跟离它最近的if使用。
2.swith语句
switch(表达式){
case 常量表达式1:语句段1;break;
case 常量表达式2:语句段2;break;
case 常量表达式3:语句段3;break;
default :语句;break;
}
使用方法:与if-else类似。注意:1.表达式和常量表达式的值一般是整型或字符型。2.default可以省略,省略时若不满足条件则什么也不执行。3.case后先空一格再写常量表达式且case后面是:而不是;
3.for语句
for(表达式1;表达式2;表达式3){
循环体语句;}
使用方法:表达式1对循环变量赋值,指定循环起点,表达式2给出循环条件,通常判断循环变量是否超出循环的终点,表达式3改变循环变量的量从而改变表达式2的结果,循环体语句只能是一条语句。注意:表达式用;分隔而不是用,
4.while语句
while(表达式){
循环体语句;
}
使用方法:表达式给出循环的条件,条件不满足则退出循环
5.do-while语句
do{
循环体语句;}
while(条件)
使用方法:先执行循环体,后判断循环条件,满足则继续循环。注意:与for和while不同,do-while至少进行一次循环
6.break continue
switch(表达式)
{
case 表达式: 语句;break;
…
case 表达式: 语句;break;
default: 语句;
}
for(表达式1; 表达式2; 表达式3)
{
语句1;
continue;
语句2;
}
区别:break强制结束循环,continue跳过后面的语句直接进入下一次循环,break除可以终止循环外还可以用于switch语句,而continue只能用于循环。
三.pta分数截图
四.pta代码分析
题目1.
思路:1.由题可知lower,upper,fahr用int,celsius用double。2.输入lower和upper。 3.判断不同输入范围对应的输出结果。4.运用for循环改变变量。
通过这题我学到了遇到条件不同输出不同时应冷静分析,列出该条件对应的输出,一步一步写。
题目2.
思路:1.输入实际车速与限速用int,输入超出范围用double。列式表达超出范围。2.按照题目要求范围输出结果。
这一题我忽略了实际车速可能比限速小,所以一直答案错误,应在实际车速减限速这里加绝对值符号。通过这一题我学会了不能只看题目条件,要结合实际生活来解决问题。
题目3.
思路:1.要知道素数是只能被1和它本身整除的正整数。2.定义一个函数表达素数。
#include<stdio.h> #include<math.h> int isPrime(int i); int main() { int m,n,i; int cnt=0,sum=0; scanf("%d%d",&m,&n); for(i=m;i<=n;i++){ if(isPrime(i)){ cnt++; sum+=i; } } printf("%d %d",cnt,sum); return 0; } int isPrime(int i){ int flag=1,j; if(i==1) flag=0; for(j=2;j<=sqrt(i);j++){ if(i%j==0) flag=0; } return flag; }
一开始没有定义一个函数为素数时,光靠给出条件计算素数很复杂混乱,所以我选择定义一个函数,这个方法要简便很多。