博客园作业1
一、思维导图
二、c语言语法
1.if-else语句
if(条件句){ 语句1; } else{ 语句2; }
注意事项:else总与离它最近的if相关联,也可以采用多个else-if进行多个条件的判断。
2.switch case语句
switch(表达式){ case 常量表达式1: 语句段1;break; ....... case 常量表达式n: 语句段n;break; default : 语句段n+1;break; }
注意事项:只要符合表达式就走下面的语句,遇到break时跳出循环。如果没有一个case可执行就会执行default,执行完就退出。
3、for语句
for(语句1;语句2;语句3){ 循环语句 }
注意事项:知道循环次数时for比较好用,语句1是变量的赋值,语句2用于判断变量是否可执行,语句三是最后对变量再赋值。
4、while语句
while(语句){ 循环语句 }
注意事项:当语句判断为真时执行循环语句,判断为假时跳出循环。
5、do-while语句
do{ 循环语句 }while(表达式)
注意事项:该语句的特点是必须执行一次,完了后再判断表达式,真则继续循环,假则退出循环。
6、break continue语句
注意事项:循环语句中遇到break会跳出循环。普通语句中遇到continue会跳过该语句执行后一条语句,但在for循环中会跳出这次循环,执行语句3后,判断再进入下一次循环。
三、PTA分数截图
2.3;2.4作业
第三章作业
4.1作业
四、PTA题目分析
1.
#include <stdio.h> int main(){ int i,n; double sum=0; scanf("%d",&n); for(i=1;i<=n;i++){ sum=sum+1.0/i; } printf("sum = %.6f",sum); return 0; }
思路:运用for循环,执行n次循环。
错误原因:把1.0/i写成1/i,因为1和i都是整形所以结果是0,因此得到错误答案。
收获:当看到整型除整型时,要注意题目的要求,避免得到错误答案。
2.
#include <stdio.h> int main(){ char a; int letter=0,blank=0,digit=0,other=0; for(int i=1;i<=10;i++){ a=getchar(); if(a>='0'&&a<='9'){ digit++; }else if(a==' '||a=='\n'){ blank++; }else if((a>='A'&&a<='Z')||(a>='a'&&a<='z')){ letter++; }else{ other++; } } printf("letter = %d, blank = %d, digit = %d, other = %d",letter,blank,digit,other); return 0; }
思路:结合for循环语句和多个else if判断语句,并熟练使用&&和||逻辑运算符。
错误原因:变量没有初始化,字母和数字忘记加单引号,对逻辑运算符&&和||的掌握不熟悉。
收获:写程序时要在大脑中先把大概框架构思出来,要熟练掌握&&和||运算符。
3.
#include <stdio.h> int main(){ int a,b=0,n=0; scanf("%d",&a); for(;a>0;n++){ b += a%10; a /= 10; } printf("%d %d",n,b); return 0; }
思路:通过for循环计算出该数的位数,通过结合%和/分离各个位数。
错误原因:没有熟练使用%和/,导致错误。
收获:理清思路,学会使用%和/分离各个位数。