c++Primer学习笔记之七:第二章课后习题
2014-08-29 15:08
357 查看
//ex2.10 #include <iostream> int main() { std::cout<<"2M\n" <<"2\tM" <<std::endl; return 0; }
//ex2.11 /*第一次编译通过,测试数据3^3是1875563862?发现是初始化的问题 *果断给result附初值1; */ #include <iostream> int main() { int base,exponent,result=1; std::cout<<"Please input a number for base:"<<std::endl;; std::cin>>base; std::cout<<"Please input a number for exponent"<<std::endl; std::cin>>exponent; for (int cnt = 0;cnt != exponent; ++cnt){ result *= base; } std::cout<<"the result of " <<base<<"^"<<exponent <<"is "<<result<<std::endl; return 0; }
result未初始化时:
result初始化为1:
//ex2.15 /*前两个month和day定义正确 *后面的month和day定义是错误的 *编写程序运行,看看编译报错的信息 *发现错误原因在后面的09代表定义的是八进制数,但是八进制中没有数字9 *如果要定义9月7号,应改为int month1 = 011, day1 = 07; */ #include <iostream> int main() { int month = 9, day = 7; int month1 = 011, day1 = 07; std::cout<<"month="<<month<<"\n" <<"day="<<day<<"\n" <<"month1="<<month1<<"\n" <<"day1="<<day1; return 0; }
//ex2.16 //编译几个定义看看输出信息 #include <iostream> int main() { //auto是c++关键字,不能用作变量标识符 int car = 1024, auto = 2048; //定义格式正确,定义的时候系统会随机给ival一个比较大的值 //然后用这个值给本身初始化,理论上没错,但是逻辑上不提倡这样 int ival = ival; //cin输入流变量要在之前指定类型 std::cin >> int input_value; //wage没有定义 double salary = wage = 9999.99; //()是函数调用符,在这里表示将calc()函数的返回值用作calc的初始化 //但是在这个cpp中calc函数没有定义。 double calc = calc(); return 0; }
//ex2.17 //输出变量看看结果 #include <iostream> std::string global_str; int global_int; int main() { int local_int; std::string local_str; std::cout<<"global_str:"<<global_str<<"\n" //空 <<"global_int:"<<global_int<<"\n" // 0 <<"local_int:"<<local_int<<"\n" // 4201982 一个不清楚具体值的整数 <<"local_str:"<<local_str<<std::endl; // 空 return 0; }
//ex2.18 /* 1、声明一个string类型的变量,变量名是name 2、定义一个string类型的变量,变量名是name,并初始化为”exercise 3.5a“ 3、声明并初始化,只能在函数体外部使用,意义与2相同 */
//ex2.20 /* *输出i=100,sum=45 *i在for语句作用域中重新命名了 *for循环结束后,输出语句输出的i是局部作用域下的i=100 *而sum在语句作用域中没有重新定义 *也就是for循环中的sum就是局部作用域下的sum,sum值改变为45 *最后输出sum=45 */ #include <iostream> int main() { int i = 100, sum = 0; for (int i = 0; i != 10; ++i) sum += i; std::cout << i << " " << sum << std::endl; return 0; }
//ex2.21 /* *不合法 *i只在语句作用域中定义,for循环结束后i也消失 */ #include <iostream> int main() { int sum = 0; for (int i = 0; i != 10; ++i) sum += i; std::cout << "Sum from 0 to " << i << " is " << sum << std::endl; return 0; }
//ex2.22 /* * int i是在for循环定义和处理的 * 在语句for循环外面经没法访问, * 因此这个变量i对我们来说没有意义 * 最好将i在for循环外面定义 */
//ex2.23 /* *1、不合法,const是不可改变的变量,在声明的时候就需要初始化 *2、正确,没有问题 *3、sz是const类型,他的值是不可改变的 */
//ex2.24 /* *1、合法,强制转化为int行,值为1; *2、不合法,引用类型要和数据类型一样,但这里是double *3、正确,ival在初始化的时候就自动变为int型了 *4、正确 */
//ex2.25 /* *1、合法,编译通过; *2、编译通过 *3、编译通过 *4、不合法,const 类型的rval3不能被赋值 */
//ex2.26 /* *a、int类型的ival和int类型的const引用 *b、第一个正确,const可以做右值,第二个不对,不能给const赋值 */
//ex2.27 // 输出10 10 #include <iostream> int main() { int i, &ri = i; i = 5; ri =10; std::cout << i << " " << ri << std::endl; return 0; }
//ex2.31 /* *(a)定义,虽然是extern,但在后面初始化了,即已经定义 *(b)定义,系统会随机赋值 *(c)声明 *(d)定义,虽为extern,但在声明为const型的时候就必须初始化,因此 * 应该是已经初始化了的extern */
//ex2.32 /* *(a)放在源文件中,是定义 *(b)放在头文件中,使用常量表达式定义的const型,在编译的时候就知道值是多少, *(c)定义,放在源文件中 *(d)放在源文件中,编译的时候不知道const的具体值 */
相关文章推荐
- C++程序设计(第二版)谭浩强----程序题课后习题答案第二章
- 计算机网络教程第二章物理层课后习题答案
- 关于《C++程序设计教程》(第二版)钱能著 第二章课后习题第5题的解答程序
- Pytho 4000 n核心编程第二章课后习题
- 《C++ Primer》第五版课后习题解答_第二章(5)(39-42)
- 算法导论课后习题解析 第二章
- Python核心编程(第三版)课后习题解答——第二章
- 第二章 从C到C++ 课后习题
- 《C++ Primer》第五版课后习题解答_第二章(1)(01-08)
- C++程序设计课后习题及解答(第二章)
- 鸟哥的Linux私房菜基础学习篇(第二版)第二章课后习题与答案
- 《现代操作系统(中文第三版)》课后习题——第二章 进程与线程
- 算法导论课后习题解析 第二章
- 教材第二章课后习题
- 《Python编程 从入门到实践》第二章课后习题
- Linux操作系统(第二章课后习题)
- 谭浩强C语言程序设计课后习题解答(第二章)
- 算法竞赛入门经典第二版课后习题答案第二章
- 算法导论课后习题第二章(1)
- 面向对象程序设计教程(c++语言描述)第二章课后习题解题