c语言作业
一.思维导图
二.if-else;switch;for;while;do-while;
1.if_else语句 :
if(条件1)
{
语句1;
}
else
{
语句2;
}
遇到的问题:1.if后忘加{}2.对于多个if-else语句,else属于哪个if不确定。
解决方法:在编译器中运行代码,养成在if后添加{}的习惯。
2.switch语句 使用方法:
switch(常量)
{
case 表达式: 语句;break;
case 表达式: 语句;break;
…
case 表达式: 语句;break;
default: 语句;
}
遇到的问题:在case后忘加break,导致程序跳不出循环。
解决方法:注意在每个case语句后添加break。
3.for语句 使用方法:
for(表达式1; 表达式2; 表达式3)
{
语句
}
遇到的问题:由于代码错误或过于冗长,导致程序运行超时或答案错误。
解决方法:先在纸上写下该流程,计算无误后在输入。
4.while语句 使用方法:
while(循环条件)
{
循环体语句
}
与for一致。
5.do-while语句 使用方法:
do
{
循环体语句
}while(循环条件);
遇到的问题:分不清与while的区别,使用错误。
解决方法:记住do-while与while的区别:do-while至少会循环一次。
6.break以及continue 使用方法:
switch(表达式)
{
case 表达式: 语句;break;
…
case 表达式: 语句;break;
default: 语句;
}
for(表达式1; 表达式2; 表达式3)
{
语句1;
continue;
语句2;
}
注意事项:break用于跳出循环;continue用于跳过continue之后的语句,进入下一次循环。
三.pta分数
2.3,2.4作业
第3章作业
4.1作业
四.pta题目分析
1.
代码:#include<stdio.h>
include<math.h>、、调用数学函数
int main()
{int n,i;、、定义变量
double s;
scanf("%d",&n);、、输入变量
if(n>0){
for(i=0;i<=n;i++){
s=pow(3,i);
printf("pow(3,%d) = %.0f\n",i,s);}、、通过循环来实现乘方表
}else if(n==0){
printf("pow(3,0) = 1");}、、特殊情况
return 0;
}
收获:需输入调用实现函数的指示,可利用循环来生成乘方表。
2.
代码:#include<stdio.h>
include<math.h>、、调用数学函数
int main()
{int a,b,c;、、定义变量
double area,perimeter,s;
scanf("%d %d %d",&a,&b,&c);、、输入变量
if(a+b>c&&a+c>b&&b+c>a)、、判断是否可构成三角形
{
s=1.0(a+b+c)/2;
area=sqrt (s(s-a)(s-b)(s-c));、、输入公式
perimeter=a+b+c;
printf("area = %.2f; perimeter = %.2f",area,perimeter);
}
else{printf("These sides do not correspond to a valid triangle\n");}
return 0;
}
收获:要注意if条件的完整性,注意题目的要求来保留小数位。
3.
代码:#include <stdio.h>
int main(){
int n, count, sum;、、定义变量
sum = 0;
count = 0;
scanf("%d", &n);、、输入一个整数
while(n!=0){
count++;
sum += n%10;、、通过除商取余来统计整数位数及每个位数之和
n /= 10;
}
printf("%d %d\n", count, sum);
return 0;
}
收获:可通过除商取余数的方法来统计一个数的位数。