| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 846 人关注过本帖
标题:请教:C语言练习题...................................................... ...
只看楼主 加入收藏
JENNET
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-5-28
收藏
 问题点数:0 回复次数:6 
请教:C语言练习题.............................................................

谢谢各位上次的解答,继续我的问题:


1 

对于FOR语句FOR(........;i++)中的i++换为别的表达式也一样成立对吗?比如把i++换成2i或15-4i或

i+++i或i---i时赋值执行和i++时的一样吗?


2

#include<stdio.h>
main()
{ int a,y;
a=10;y=0;
do
{ a+=2;y+=a;
if(y<50)break;
}while(a=14);
printf("a=%d y=%d\n",a,y);
}
  
习题答案为a=16,y=60......请教此题何解.......
语句while(a=14)是当做给a赋值??改为a=13也一样吗???还是说满足a=14的条件时才执行do语句
或者说括号里的语句为真值时都可以执行,相当于while(1)???

搜索更多相关主题的帖子: C语言 练习题 FOR 语句 
2006-06-03 23:50
game0319
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-6-4
收藏
得分:0 

先回答第一个问题:
在一般情况下是不行的,因为i++是完成i=i+1的功能,如果写成其他的形式的话,就不能保证变量i的值改变,这构成一个死循环。
第二个问题:
当y>=50时,程序才会退出do循环,因为表达式(a=14)的值为14,一直为真,不起作用,所以就12+14+16<50和12+14+16+18>50符合条件!

你今后在遇到如while(a=14)时,它就是while(1)了,注意!

2006-06-04 00:36
JENNET
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-5-28
收藏
得分:0 

那a的值呢? a+=2,y+=0;

a=12,y=12
a=14,y=26
a=16,y=42
a=18,y=60.....

if(y>50) break

y的值可以满足,那a为何等于16(习题答案)这样循环a应该为18.


CGCHINA REVOLUTION.....
2006-06-04 18:11
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
以下是引用JENNET在2006-6-3 23:50:00的发言:

谢谢各位上次的解答,继续我的问题:


1 

对于FOR语句FOR(........;i++)中的i++换为别的表达式也一样成立对吗?比如把i++换成2i或15-4i或

i+++i或i---i时赋值执行和i++时的一样吗?


2

#include<stdio.h>
main()
{ int a,y;
a=10;y=0;
do
{ a+=2;y+=a;
if(y<50)break;
}while(a=14);
printf("a=%d y=%d\n",a,y);
}
  
习题答案为a=16,y=60......请教此题何解.......
语句while(a=14)是当做给a赋值??改为a=13也一样吗???还是说满足a=14的条件时才执行do语句
或者说括号里的语句为真值时都可以执行,相当于while(1)???

第二题的答案应该是12 12吧?


对不礼貌的女生收钱......
2006-06-04 18:22
JENNET
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-5-28
收藏
得分:0 
更正一下:程序段中的 if(y<50)break;---->if(y>50)break;

习题答案为a=16,y=60

CGCHINA REVOLUTION.....
2006-06-04 22:20
JENNET
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-5-28
收藏
得分:0 
我的问题还没解决呢,a=16是怎么得的?

CGCHINA REVOLUTION.....
2006-06-04 22:21
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
最后一次执行时判断while(a=14)后执行a+=2;y+=a;使得a为16,y的值足以出循环

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-06-04 22:29
快速回复:请教:C语言练习题................................................. ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025348 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved