1.1 编译错误
1.2 编译警告,提示没有这个转义符
1.3 代码如下
#include <stdio.h>void print_table(){ float fahr,celsius; int lower,upper,step; lower=0; upper=300; step=20; while(fahr<=upper){ celsius=(5.0/9.0)*(fahr-32.0); printf("\t%3.0f\t%6.1f\n",fahr,celsius); fahr=fahr+step; }}int main(int argc,char *argv){printf("\t华氏\t摄氏\n");print_table();return 1;}
1.4 稍微改动一下 1.3 的代码既可
1 #include <stdio.h> 2 3 void print_table(){ 4 float fahr,celsius; 5 int lower,upper,step; 6 lower=-20; 7 upper=50; 8 step=5; 9 celsius=lower; 10 while(celsius<=upper){ 11 fahr=celsius*(9.0/5.0)+32.0; 12 printf("\t%3.0f\t%6.1f\n",celsius,fahr); 13 celsius=celsius+step; 14 15 } 16 17 } 18 int main(int argc,char *argv){ 19 printf("\t摄氏\t华氏\n"); 20 print_table(); 21 return 1; 22 }
1.5 对1.3的代码稍微改动
#include <stdio.h>void print_table(){ float fahr,celsius; int lower,upper,step; lower=0; upper=300; step=20; fahr=upper; while(fahr>=lower){ celsius=(5.0/9.0)*(fahr-32.0); printf("\t%3.0f\t%6.1f\n",fahr,celsius); fahr=fahr-step; }}int main(int argc,char *argv){printf("\t华氏\t摄氏\n");print_table();return 1;}
1.6 为1(true)
1.7 为-1
#include <stdio.h>int main(int argc,char *argv){ printf("%d\n",EOF);return 1;}
1.8
#include <stdio.h>int main(int argc,char *argv){ int c,nl; nl=0; while((c=getchar())!=EOF){ if(c=='\n'||c=='\t'||c=='\r'){ nl++; } } printf("%d\n",nl);return 1;}
1.9 " "与' '还是有区别的……
#include <stdio.h>int main(int argc,char *argv){ int c,nl; while((c=getchar())!=EOF){ if(c==' '){ putchar(c); while((c=getchar())==' '){ } } putchar(c); } return 1;}
1.10
#include <stdio.h>int main(int argc,char *argv){ int c,nl; while((c=getchar())!=EOF){ if(c=='\t'){ putchar('\\'); putchar('t'); } else if(c=='\\'){ putchar('\\'); } else if(c=='\b'){ putchar('\b'); } else{ putchar(c); } } return 1;}
1.11 边界条件最容易查出BUG,比如下面的程序如果头为空格 或者 尾为空格都会产生一个比正确大1的统计
#include <stdio.h>int main(int argc,char *argv){ int c,nl; nl=0; while((c=getchar())!=EOF){ if(c==' '){ putchar(c); while((c=getchar())==' '){ } nl++; } } nl++; printf("共有%d个单词\n",nl); return 1;}
1.12
#include <stdio.h>int main(int argc,char *argv){ int c,nl; nl=0; while((c=getchar())!=EOF){ if(c==' '){ putchar(c); while((c=getchar())==' '){ } putchar('\n'); } putchar(c); } return 1;}
1.13
#include <stdio.h>void print_table(int count[20]);int main(int argc,char *argv){ int c,nl; int count[20]; int i=0; for(i=0;i<20;i++){ count[i]=0; } int length=0; while((c=getchar())!=EOF){ if(c==' '){ putchar(c); while((c=getchar())==' '){ } count[length]++; length=0; } length++; } print_table(count); return 1;}void print_table(int count[]){ int i; for(i=0;i<20;i++){ printf("长度为%d的单词出现了:",i); int j=0; for(j=0;j<count[i];j++){ printf("*"); } printf("\n"); }
1.14 忽略
1.15
#include <stdio.h>float cal(float celsius){ return celsius*(9.0/5.0)+32.0;}int main(int argc,char *argv){float celsius;scanf("%f",&celsius);printf("%3.1f\n",cal(celsius));return 1;}
相关资源:敏捷开发V1.0.pptx