Exercise 2.11:
编写程序,要求用户输入两个数——底数(base)和指数(exponent),输出底数的指数次方的结果。
int base,expond,result = 1;
std::cin>>base>>expond;
for (expond;expond > 0;expond--)
{
result *= base;
}
std::cout<<result;
Exercise 2.12:
区分左值和右值,并举例说明。
变量是左值,因此可以出现在赋值语句的左边。数字字面值是右值,因此不能被赋值。int a = 0; //right
1 = 2; //wrong
Exercise 2.13:
举出一个需要左值的例子。
变量赋值Exercise 2.14:
下面哪些(如果有)名字是非法的?更正每个非法的标识符名字。
(a) int double = 3.14159; (b) char _; (c) bool catch-22; (d) char 1_or_2 ='1'; (e) float Float = 3.14f;
(b)不能以_定义变量开头
(c)变量中不能包括-
Exercise 2.15:
下面两个定义是否不同?有何不同?
int month = 9, day = 7; int month = 09, day = 07;如果上述定义有错的话,那么应该怎样改正呢?
正确的
Exercise 2.16:
假设 calc 是一个返回 double 对象的函数。下面哪些是非法定义?改正所有的非法定义。
(a) int car = 1024, auto = 2048; (b) int ival = ival; (c) std::cin >> int input_value; (d) double salary = wage = 9999.99; (e) double calc = calc();
b:不可对初始化变量赋值给一个未初始化的变量
c:使用变量时应该先定义
Exercise 2.17:
下列变量的初始值(如果有)是什么?
std::string global_str; int global_int; int main() { int local_int; std::string local_str; // ... return 0; }
golbal_str:""
golbal_int:0
local_int:0
local_str:""
Exercise 2.18:
解释下列例子中 name 的意义
extern std::string name; std::string name("exercise 3.5a"); extern std::string name("exercise 3.5a");name被声明
赋值name
错,必须先声明
Exercise 2.19:
下列程序中 j 的值是多少?
int i = 42; int main() { int i = 100; int j = i; // ... }100
Exercise 2.20:
下列程序段将会输出什么?
int i = 100, sum = 0; for (int i = 0; i != 10; ++i) sum += i; std::cout << i << " " << sum << std::endl;i:100,sum:45
Exercise 2.21:
下列程序合法吗?
int sum = 0; for (int i = 0; i != 10; ++i) sum += i; std::cout << "Sum from 0 to " << i << " is " << sum << std::endl;不合法,最后一个i未定义,sum = 45