课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,实践要求见http://blog.csdn.net/sxhelijian/article/details/39493833

课程资源在云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。

【项目1】以下是最经典和最简单的C++程序。在ideone.com中执行程序,并在能正确执行的程序基础上,“捣乱”制造些错误,对此进行观察。经验是从错误中得来的,这个项目就是要让大家积累这一类经验。

#include <iostream>
using namespace std;
int main( )
{
int a,b,sum;
cin>>a>>b;
sum=a+b;
cout<<"a+b="<<sum<<endl;
return 0;
}

(1)将第6行cin>>a>>b; 一行末尾的分号去掉要制造的错误例如以下(一项“捣乱”结束后。将程序再改正过来,继续“捣乱”):
(2)将第5行int a,b,sum;改为int a, b;。即声明变量时,未声明sum
(3)将第8行cout<< 写为 Cout<<,注意前面表述中的大写和小写
(4)将第8行cout<< 写为了 cout>>
(5)将第7行sum=a+b; 改为 sum=ab; 即漏写了加号
(6)将第10行程序最后的右花括号 } 删除
(7)将第5行int a,b,sum; 改为imt a,b,sum; 注意,可能小手一哆嗦,int成了imt
(8)你是个比贺老师还坏的坏孩子。还想到什么捣乱,自己来

參考解答:

说明:

  • 以下的提示,是ideone.com中的提法出现的错误提示,在其它平台中。可能会有不同的描写叙述,但意思一般同样。
  • 鉴于同学们刚学。不能用太专业和深入的解释。以下的提示仅仅追求让同学有体会就可以,随着学习的进展。你自己能够给出完整的解释。

各种乱改后的解释:

(1)将第6行cin>>a>>b; 一行末尾的分号去掉
系统提示“編譯失敗(CE)”详细地:
1. prog.cpp: In function ‘int main()’:
2. prog.cpp:7:5: error: expected ‘;’ before ‘sum’
3.     sum=a+b; 
4.     ^
  第1行提示“In function ‘int main()’”,指出在函数int main()中出现错误了
  第2行提示“7:5:”指这个错误出现的原因,与第7行上溯第5行的程序有关,这是一个错误(error),原因是“expected ‘;’ before ‘sum’”,即“在sum前希望有个分号”。程序中每个语句后都得有分号。第6行末缺分算,算帐算到第7行。这个事实要接受。

改动方法。按提示。sum前,即上一行末,加上分号。

  第3行指出,错误是在“sum=a+b”这儿发现的
  第4行的“^”指向了出问题的详细位置

(2)将第5行int a,b,sum;改为int a, b;。即声明变量时。未声明sum
“編譯資訊”部分提示
1. prog.cpp: In function ‘int main()’:
2. prog.cpp:7:5: error: ‘sum’ was not declared in this scope
3.     sum=a+b; 
4.     ^
  第1行提示“In function ‘int main()’”,指出在函数int main()中出现错误了
  第2行提示“7:5:”指这个错误出现的原因,与第7行上溯第5行的程序有关,这是一个错误(error),原因是“‘sum’ was not declared in this scope”。即“sum在这个范围内没有被声明”,的确。程序中第7行要用sum。但之前未声明,错误和第7行有关;程序第5行是个声明语句,要是在此声明了,也不会出错误,说和第5行有关。也算合理。
  第3行指出。错误是在“sum=a+b”这儿发现的
  第4行的“^”指向了出问题的详细位置

(3)将第8行cout<< 写为 Cout<<。注意前面表述的大写和小写
  提示的第2行是:
  prog.cpp:8:5: error: ‘Cout’ was not declared in this scope
  C++的词汇中,大写和小写严格区分,编译器认识“cout”,遇到“Cout”不认识了,就说“Cout在这个范围内没有声明。”冷静点,不要按提示声明Cout去。而是把大写改成小写。

(4)将第8行cout<< 写为了 cout>>
  提示的第2行指出:
  prog.cpp:8:9: error: no match for ‘operator>>’(#@#&*!$#……)
  这是操作符不匹配。cout应该与<<匹配,与>>匹配的是cin。

(5)将第7行sum=a+b; 改为 sum=ab; 即漏写了加号
  提示的第2行指出
  prog.cpp:7:9: error: ‘ab’ was not declared in this scope
  漏写了加号,ab连起来是一个新的变量名,这个变量逃不脱“未被声明”。

(6)将第10行程序最后的右花括号 } 删除
  提示的第2行指出
  prog.cpp:9:13: error: expected ‘}’ at end of input
  有左括号,必须有右括号匹配,这个提示相当精准。

(7)将第5行int a,b,sum; 改为imt a,b,sum; 注意,可能小手一哆嗦,int成了imt
  出现了一堆的提示。“一错百错”?int 是数据类型的名字,写成imt,系统以为是变量名,是变量名。得提前声明,然而却没有,于是第一个提示:
  prog.cpp:5:5: error: ‘imt’ was not declared in this scope
  于是这一行也就不能当作为声明变量讲了。须要有分号啦、a、b、sum“未被声明”啦之类的错误,接踵而来。

  注意到int写对时,是蓝色的。这叫为语言本身的成份进行的“语法着色”。imt没有这种特点,这也是待积累的经验。

=================== 迂者 贺利坚 CSDN博客专栏=================
|== IT学子成长指导专栏 专栏文章的分类文件夹(不定期更新) ==|
|== C++ 课堂在线专栏  贺利坚课程教学链接(分课程年级) ==|
|== 我写的书——《逆袭大学——传给IT学子的正能量》    ==|
===== 为IT菜鸟起飞铺跑道。和学生一起享受快乐和激情的大学 =====

2014秋C++第5周项目1參考-见识刚開始学习的人常见错误的更多相关文章

  1. 2014秋C++ 第7周项目 数据类型和表达式

    课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课 ...

  2. 2014秋C++ 第8周项目 分支程序设计

    课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703.课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课 ...

  3. 2014秋C++ 第9周项目 循环程序设计

    课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703.课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课 ...

  4. Surprise团队第三周项目总结

    Surprise团队第二周项目总结 项目进展 这周我们小组的项目在上周的基础上进行了补充,主要注重在注册登录界面的实现,以及关于数据库的一些学习. 在设计注册登录界面时,每一块的地方控件都不一样,比如 ...

  5. Surprise团队第二周项目总结

    Surprise团队第二周项目总结 项目进展 已实现五子棋人人模式部分 人人模式: 基本方式:采取黑棋先行,黑白交替的下棋顺序. 模式:通过鼠标点击相应棋盘中的"交叉点",在lay ...

  6. Surprise团队第一周项目总结

    Surprise团队第一周项目总结 团队项目 基本内容 五子棋(Gobang)的开发与应用 利用Android Studio设计一款五子棋游戏,并丰富其内涵 预期目标 实现人人模式:2个用户可以在同一 ...

  7. JavaEDU614 团队第三周项目总结

    JavaEDU614 团队第三周项目总结 本周,根据项目计划完成模块的设计代码 本项目主要是完成俄罗斯方块的基本操作.用户可以自己练习和娱乐.需要满足以下几点要求. (1)界面控制游戏开始.暂停和结束 ...

  8. FromBottomToTop第十三周项目博客

    FromBottomToTop第十三周项目博客 本周项目计划 完成游戏核心算法以及界面相关类和怪物类 项目进展 用户可选择游戏模式,共有20张不同的地图. 炮台的建立和升级. 小怪的路径算法. 参考资 ...

  9. FromBottomToTop第十二周项目博客

    FromBottomToTop第十二周项目博客 本周项目计划 设计整体架构,收集素材,制作出静态界面部分 项目进展 已完成游戏整体架构设计 已完成游戏界面.背景音乐等素材的收集 正在进行静态界面部分的 ...

随机推荐

  1. hdu5076

    好题,首先观察可得w[i][j]选择只有可能两种,一种比阀值大,一种比阀值小 比阀值大就一定选满足条件最大的w,比阀值小同样一定选满足条件最大的w 那么一个最小割模型就呼之欲出了,注意w可能是负数那么 ...

  2. AC日记——斐波那契数列(升级版) 洛谷 P2626

    斐波那契数列(升级版) 思路: 水题: 代码: #include <cmath> #include <cstdio> #include <cstring> #inc ...

  3. AC日记——病毒侵袭 hdu 2896

    2896 思路: 好题: 代码: #include <queue> #include <cstdio> #include <cstring> using names ...

  4. HDU 多校1.7

    Function Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...

  5. hdu6231

    hdu6231 题意 给出一些数字,对于任意长度不小于 \(k\) 的区间,把第 \(k\) 大数加入到一个新的数组 \(B\) 中,求 \(B\) 数组第 \(m\) 大数. 分析 二分答案 \(x ...

  6. hdu6162(树链剖分)

    hdu6162 题意 给出一颗带点权的树,每次询问一对节点 \((u, v)\),问 \(u\) 到 \(v\) 的最短路径上所有节点权值在 \([c1, c2]\) 区间内的和. 分析 树链剖分,那 ...

  7. Spfa+DP【p2149】[SDOI2009]Elaxia的路线

    Description 最近,Elaxia和w**的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间. Elaxia和w**每天都要奔波于宿舍和实验室之间 ...

  8. []End of 2017OI

    今年大概到此为止了,现在这个算是做一个简短的阶段性总结吧 今年打的第一场大概是省赛,当时整个人处于(迷茫,不知道选物理还是选信息+备战中考+持续摸鱼OI颓废)的状态,KMP都不会导致签到题都没有分,然 ...

  9. 【数论】【素数判定】CODEVS 2851 菜菜买气球

    素数判定模板. #include<cstdio> #include<map> using namespace std; ],ans=-,l,r,n,sum[]; bool is ...

  10. 【块状树】bzoj3720 Gty的妹子树

    块状树.教程见:http://z55250825.blog.163.com/blog/static/1502308092014163413858/将树按一定大小分块,分成许多子树,在每个子树的根节点记 ...