- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
石油、天然气工业
第 11卷 第 2期 重庆科技学院学报 (自然科学版) 2009年4月
C语言教学中遇到的问题及解决办法
刘 伟 支联合
(周 口师范学院,周 口466001)
摘 要 :介绍C语言教学实践中遇到的各种疑难 问题及其解决方案 .其中涉及赋值和等于运算符 、逻辑元算符、宏、输
入和输 出函数的使用和表达式的求解顺序等 问题 。
关键词 :C语言编程 ;解析 ;解决办法
中图分类号 :G642:TP3l2 文献标识码 :A 文章编号:1673—1980(2009)02—0136—03
C语言的最大特点是功能强、使用方便灵活。C “比较”将一直为真,因此这个循环会吃尽整个文件 。
语言编译的程序对语法检查并不像其他高级语言那 此后会发生什么将取决于特定的实现是否允许一个
么严格 ,这就给编程人员留下 “灵活的余地”,但也是 程序读取超过文件尾部的部分。如果允许 ,此循环会
由于这个灵活给程序的调试带来 了许多不便 。在此 , 一 直运行。一些C编译器会对形如e。 的条件给出一
探讨C语言在教学实践中的相关问题及解决办法。 个警告以提醒用户 。当你确实需要先对一个变量进
行赋值之后再检查变量是否非零时。为了在这种编
1 数据运算符
译器中避免警告信息,应考虑显式给出比较符。即:
1.1 “=”不是 “==” if(x=y)
从Algol派生 出来的语言 ,~IPascal和Ada,用 “: foo();
= ”表示赋值 ,而用 “=”表示比较。而C语言则是用 “=” 改写为 :
表示赋值 ,而用 =“=”表示比较 。这是因为赋值的频 if((=y)!=0)
率要高于比较 。因此为其分配更短的符号。此外 ,C foo();
还将赋值视为一个运算符 .因此可以很容易地写出 这样可以清晰地表达我们 的意图。
多重赋值 (~tla=b=c),并且可以将赋值嵌入到一个大 1.2 “”和 “l”不是 “”和 “
的表达式中。这种便捷存在潜在的问题 ,即可能将 C语言中有两种逻辑运算符 ,在某些情况下是
需要 比较的地方写成了赋值。因此,下面的语句看 可以交换的:按位运算符 “”、“l”和 “一”,以及逻辑
起来好像是要检查 是否等于y: 运算符 “”、“I1和 “!”。一个程序员如果用某一类
if(x=y) 运算符替换相应的另一类运算符会得到某些奇怪的
foo(); 结果 ,比如程序可能会正确地工作 ,但这纯属偶然。
而实际上是将 设置为Y的值并检查结果是否非零。 “”、“I1和 “!”运算符将它们 的参数视为仅有 “真”
接下来再考虑下面的一个希望跳过空格、制表 或 “假”,通常约定0代表 “假 ”。而其他的任意值都代
符和 表 “真”。这些运算符返 回l表示 “真”,而返 回0表示
while(c==”Ilc= lIc==,1 “假 ”,而且 “”和 “运算符当可以通过左边的操
c=getc(f); 作数确定其返回值时,就不会对右边的操作数进行
在与 “’”进行 比较的地方程序员错误地使用 =“”代 求值。因此:
替了 =“=”。这个 “比较”实际上是将 “’”赋给c,然后
文档评论(0)