谭浩强 《C程序设计》 第三版 第五章习题答案 (修正)
2010-03-02 17:26
459 查看
第五章习题答案
5.1
所谓关系运算实际上是比较运算,例如a>3是一个关系表达式,大于号是一个关系运算符,如果a的值是5,则满足给定的”a>3”条件,因此关系表达式的值“真“。。。
用逻辑运算符将关系表达式或逻辑表达式连接起来的式子就是逻辑表达式。
5.2 C语言编译系统在表示逻辑运算结果时,以数值1代表“真“,以0代表”假“,但在判断一个量是否为”真“时,以0代表”假“,以非0代表”真“,即将一个非零的数值认作为”真“。
5.3
0
1 1 0
1
5.4
//practice 5.4
void main()
{
int a,b,c,t,max;
scanf("%d%d%d",&a,&b,&c);
max=a;
if(max<b)
{
t=max;
max=b;
b=t;
}
if(max<c)
{
t=max;
max=c;
c=t;
}
printf("%2d/n",max);
}
void main()
{
int a,b,c,temp,max;
scanf("%d%d%d",&a,&b,&c);
temp=(a>b)?a:b;
max=(temp>c)?temp:c;
printf("%3d/n",max);
}
//practice 5.5
void main()
{
double x,y;
scanf("%lf",&x);
if(x-1<1e-6)
{
y=x;
}
else if( x-1>=1e-6 && x-10<1e-6)
{
y=2*x-1;
}
else if( x-10>=1e-6)
{
y=3*x-11;
}
printf("%3lf/n",y);
}
//practice 5.6
void main()
{
double score;
char grade;
printf("请输入成绩:/n");
scanf("%lf",&score);
while(score>100 || score<0)
{
printf("/n 输入有误,请重新输入:/n");
scanf("%lf",&score);
}
switch((int)score/10)
{
case 9:grade='A';break;
case 8:grade='B';break;
case 7:grade='C';break;
case 6:grade='D';break;
default:grade='E';
}
printf("输入的成绩是%lf,相应的等级是%c/n",score,grade);
}
//pra 5.7
//第一种方法
void main()
{
int num,i;
char str[200];
sprintf(str,"%d",num);
printf("the size of the integer is %d/n",strlen(str));
puts(str);
putchar('/n');
i=strlen(str)-1;
while(i>=0)
{
putchar(*(str+i));
i--;
}
putchar('/n');
}*/
//第二种方法
//pra 5.7
void main()
{
int num,size;
int indiv,ten,hundred,thousand,ten_thousand;
scanf("%d",&num);
while(num>99999 || num<=0)
{
printf("/n输入有误,请重新输入:/n");
scanf("%d",&num);
}
if(num>9999)
{
size=5;
}
else if(num>999)
{
size=4;
}
else if(num>99)
{
size=3;
}
else if(num>9)
{
size=2;
}
else
{
size=1;
}
printf("size=%2d/n",size);
printf("每位数字为:/n");
ten_thousand=num/10000;
thousand=num%10000/1000;
hundred=num%10000%1000/100;
ten=num%10000%1000%100/10;
indiv=num%10000%1000%100%10;
switch(size)
{
case 5:printf("%2d,%2d,%2d,%2d,%2d/n",ten_thousand,thousand,hundred,ten,indiv);
printf("反序为:/n");
printf("%2d,%2d,%2d,%2d,%2d/n",indiv,ten,hundred,thousand,ten_thousand);
break;
case 4:printf("%2d,%2d,%2d,%2d/n",thousand,hundred,ten,indiv);
printf("反序为:/n");
printf("%2d,%2d,%2d,%2d/n",indiv,ten,hundred,thousand);
break;
case 3:printf("%2d,%2d,%2d/n",hundred,ten,indiv);
printf("反序为:/n");
printf("%2d,%2d,%2d/n",indiv,ten,hundred);
break;
case 2:printf("%2d,%2d/n",ten,indiv);
printf("反序为:/n");
printf("%2d,%2d/n",indiv,ten);
break;
case 1:printf("%2d/n",indiv);
printf("反序为:/n");
printf("%2d/n",indiv);
break;
default :printf("ERROR/n");
}
}
//pra 5.8
//IF
语句的写法
/*int main()
{
double I;//Interest
double J;//奖金
printf("单位
万元 /n");
scanf("%lf",&I);
if(I<=10)
{
J=10*0.1;
}
else if((I>10)&&(I<=20))
{
J=10*0.1+(I-10)*0.075;
}
else if((I>20)&&(I<=40))
{
J=10*0.1+10*0.075+(I-20)*0.05;
}
else if((I>40)&&(I<=60))
{
J=10*0.1+10*0.075+20*0.05+(I-40)*0.03;
}else if((I>60)&&(I<=100))
{
J=10*0.1+10*0.075+20*0.05+20*0.03+(I-60)*0.015;
}
else if(I>100)
{
J=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(I-100)*0.01;
}/
printf("%2lf/n",J);
return 0;
}*/
int main()
{
double I;//Interest
double J;//奖金
int c;
printf("单位
万元 /n");
scanf("%lf",&I);
c=(int)I/10;
if(c>10)
{
c=10;
}
switch(c)
{
case 0:J=10*0.1;break;
case 1:J=10*0.1+(I-10)*0.075;break;
case 2:
case 3:J=10*0.1+10*0.075+(I-20)*0.05;;break;
case 4:
case 5:J=10*0.1+10*0.075+20*0.05+(I-40)*0.03;break;
case 6:
case 7:
case 8:
case 9:J=10*0.1+10*0.075+20*0.05+20*0.03+(I-60)*0.015;break;
case 10:J=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(I-100)*0.01;break;
default:printf("error/n");
} printf("%2lf/n",J);
return 0;
}
5.9
此题就是两两排序。。。略
5.10
// 5.10
void main()
{
double x,y;
scanf("%lf%lf",&x,&y);
if(fabs(x)>=1 && fabs(x)<=3 && fabs(y)>=1 && fabs(y)<=3)
{
printf("height is 10/n");
}
else
{
printf("height is 0/n");
}
}
5.1
所谓关系运算实际上是比较运算,例如a>3是一个关系表达式,大于号是一个关系运算符,如果a的值是5,则满足给定的”a>3”条件,因此关系表达式的值“真“。。。
用逻辑运算符将关系表达式或逻辑表达式连接起来的式子就是逻辑表达式。
5.2 C语言编译系统在表示逻辑运算结果时,以数值1代表“真“,以0代表”假“,但在判断一个量是否为”真“时,以0代表”假“,以非0代表”真“,即将一个非零的数值认作为”真“。
5.3
0
1 1 0
1
5.4
//practice 5.4
void main()
{
int a,b,c,t,max;
scanf("%d%d%d",&a,&b,&c);
max=a;
if(max<b)
{
t=max;
max=b;
b=t;
}
if(max<c)
{
t=max;
max=c;
c=t;
}
printf("%2d/n",max);
}
void main()
{
int a,b,c,temp,max;
scanf("%d%d%d",&a,&b,&c);
temp=(a>b)?a:b;
max=(temp>c)?temp:c;
printf("%3d/n",max);
}
//practice 5.5
void main()
{
double x,y;
scanf("%lf",&x);
if(x-1<1e-6)
{
y=x;
}
else if( x-1>=1e-6 && x-10<1e-6)
{
y=2*x-1;
}
else if( x-10>=1e-6)
{
y=3*x-11;
}
printf("%3lf/n",y);
}
//practice 5.6
void main()
{
double score;
char grade;
printf("请输入成绩:/n");
scanf("%lf",&score);
while(score>100 || score<0)
{
printf("/n 输入有误,请重新输入:/n");
scanf("%lf",&score);
}
switch((int)score/10)
{
case 9:grade='A';break;
case 8:grade='B';break;
case 7:grade='C';break;
case 6:grade='D';break;
default:grade='E';
}
printf("输入的成绩是%lf,相应的等级是%c/n",score,grade);
}
//pra 5.7
//第一种方法
void main()
{
int num,i;
char str[200];
sprintf(str,"%d",num);
printf("the size of the integer is %d/n",strlen(str));
puts(str);
putchar('/n');
i=strlen(str)-1;
while(i>=0)
{
putchar(*(str+i));
i--;
}
putchar('/n');
}*/
//第二种方法
//pra 5.7
void main()
{
int num,size;
int indiv,ten,hundred,thousand,ten_thousand;
scanf("%d",&num);
while(num>99999 || num<=0)
{
printf("/n输入有误,请重新输入:/n");
scanf("%d",&num);
}
if(num>9999)
{
size=5;
}
else if(num>999)
{
size=4;
}
else if(num>99)
{
size=3;
}
else if(num>9)
{
size=2;
}
else
{
size=1;
}
printf("size=%2d/n",size);
printf("每位数字为:/n");
ten_thousand=num/10000;
thousand=num%10000/1000;
hundred=num%10000%1000/100;
ten=num%10000%1000%100/10;
indiv=num%10000%1000%100%10;
switch(size)
{
case 5:printf("%2d,%2d,%2d,%2d,%2d/n",ten_thousand,thousand,hundred,ten,indiv);
printf("反序为:/n");
printf("%2d,%2d,%2d,%2d,%2d/n",indiv,ten,hundred,thousand,ten_thousand);
break;
case 4:printf("%2d,%2d,%2d,%2d/n",thousand,hundred,ten,indiv);
printf("反序为:/n");
printf("%2d,%2d,%2d,%2d/n",indiv,ten,hundred,thousand);
break;
case 3:printf("%2d,%2d,%2d/n",hundred,ten,indiv);
printf("反序为:/n");
printf("%2d,%2d,%2d/n",indiv,ten,hundred);
break;
case 2:printf("%2d,%2d/n",ten,indiv);
printf("反序为:/n");
printf("%2d,%2d/n",indiv,ten);
break;
case 1:printf("%2d/n",indiv);
printf("反序为:/n");
printf("%2d/n",indiv);
break;
default :printf("ERROR/n");
}
}
//pra 5.8
//IF
语句的写法
/*int main()
{
double I;//Interest
double J;//奖金
printf("单位
万元 /n");
scanf("%lf",&I);
if(I<=10)
{
J=10*0.1;
}
else if((I>10)&&(I<=20))
{
J=10*0.1+(I-10)*0.075;
}
else if((I>20)&&(I<=40))
{
J=10*0.1+10*0.075+(I-20)*0.05;
}
else if((I>40)&&(I<=60))
{
J=10*0.1+10*0.075+20*0.05+(I-40)*0.03;
}else if((I>60)&&(I<=100))
{
J=10*0.1+10*0.075+20*0.05+20*0.03+(I-60)*0.015;
}
else if(I>100)
{
J=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(I-100)*0.01;
}/
printf("%2lf/n",J);
return 0;
}*/
int main()
{
double I;//Interest
double J;//奖金
int c;
printf("单位
万元 /n");
scanf("%lf",&I);
c=(int)I/10;
if(c>10)
{
c=10;
}
switch(c)
{
case 0:J=10*0.1;break;
case 1:J=10*0.1+(I-10)*0.075;break;
case 2:
case 3:J=10*0.1+10*0.075+(I-20)*0.05;;break;
case 4:
case 5:J=10*0.1+10*0.075+20*0.05+(I-40)*0.03;break;
case 6:
case 7:
case 8:
case 9:J=10*0.1+10*0.075+20*0.05+20*0.03+(I-60)*0.015;break;
case 10:J=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(I-100)*0.01;break;
default:printf("error/n");
} printf("%2lf/n",J);
return 0;
}
5.9
此题就是两两排序。。。略
5.10
// 5.10
void main()
{
double x,y;
scanf("%lf%lf",&x,&y);
if(fabs(x)>=1 && fabs(x)<=3 && fabs(y)>=1 && fabs(y)<=3)
{
printf("height is 10/n");
}
else
{
printf("height is 0/n");
}
}
相关文章推荐
- 谭浩强 《C程序设计》 第三版 第三章习题答案 (修正)
- 谭浩强 《C程序设计》 第三版 第四章习题答案 (修正)
- 谭浩强《C程序设计》(第三版)部分习题答案—第六章
- 谭浩强《C程序设计》(第三版)部分习题答案—第七章
- (原创)谭浩强C程序设计(第三版)-习题答案02
- 算法导论第五章习题答案(第三版) Introduction to Algorithm
- C语言程序设计第三版 谭浩强课后习题答案完整版
- 谭浩强C程序设计(第三版)-习题答案
- neuq oj 1038: 谭浩强C语言(第三版)习题4.8 C语言
- neuq oj 1043: 谭浩强C语言(第三版)习题5.7 C语言
- neuq oj 1047: 谭浩强C语言(第三版)习题6.3 C++
- 算法导论第二章习题答案(第三版) Introduction to Algorithm
- 谭浩强C程序设计的课后习题答案
- neuq oj 1062: 谭浩强C语言(第三版)习题8.2 C++
- C程序设计谭浩强版课后习题答案
- C++程序设计(第三版)谭浩强 一章习题
- python核心编程v2.0 第五章习题答案
- NEUQ1051: 谭浩强C语言(第三版)习题6.7
- [原创] C语言位运算和bit位操作程序题目答案 -- 谭浩强C语言习题答案
- neuq oj 1036: 谭浩强C语言(第三版)习题1.6 求最大值 C++