2014秋C++第5周项目1參考-见识刚開始学习的人常见错误
2016-03-27 21:49
621 查看
课程主页在/article/1353164.html,实践要求见/article/1353163.html。
课程资源在云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。
【项目1】以下是最经典和最简单的C++程序。在ideone.com中执行程序,并在能正确执行的程序基础上,“捣乱”制造些错误,对此进行观察。经验是从错误中得来的,这个项目就是要让大家积累这一类经验。
(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没有这种特点,这也是待积累的经验。
课程资源在云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。
【项目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菜鸟起飞铺跑道。和学生一起享受快乐和激情的大学 ===== |
相关文章推荐
- 一个简单的程序教你区分C++中strlen与sizeof
- C++学习日志第三篇
- python 赋值 浅拷贝 深拷贝 与c++ 比较
- 详解MVP矩阵之齐次坐标和ModelMatrix
- 环形缓存区bufferC语言实现
- c++设计模式之原型模式(protoptype)
- C++各数据类型取值范围(备忘)--32位操作系统
- 贪心算法 problem M
- base64编码、解码的C语言实现
- C语言的EOF
- qt c++对象头文件如何相互包含
- 浅谈const限定符——c++
- C++游戏系列1-角色类
- C++项目参考解答:三角形类
- 2015级C++第5周项目 类和对象
- 利用责任链模式模拟加薪请求 C++
- 树莓派瞎玩~6~控制GPIO之C语言
- 笔试真题-计算大位数的乘积
- C语言中main函数的参数
- C++中有关多态和继承的那些事