1.1 编译错误
1.2 编译警告,提示没有这个转义符
1.3 代码如下
1.4 稍微改动一下 1.3 的代码既可
1.5 对1.3的代码稍微改动
1.6 为1(true)
1.7 为-1
1.8
1.9 " "与' '还是有区别的……
1.10
1.11 边界条件最容易查出BUG,比如下面的程序如果头为空格 或者 尾为空格都会产生一个比正确大1的统计
1.12
1.13
1.14 忽略
1.15
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;
}