21xrx.com
2024-11-08 21:18:09 Friday
登录
文章检索 我的文章 写文章
黑马程序员c++程序设计教程第二版课后题答案
2023-07-06 02:16:53 深夜i     --     --
黑马程序员 C++程序设计 第二版 课后题 答案

《黑马程序员C++程序设计教程第二版》是一本针对初学者的C++编程教材,该教程涵盖了从C++基础到面向对象、数据结构、算法等方面的知识点。为帮助读者更好地掌握C++编程知识,教材中设置了大量的课后题,本文为大家提供该教程第二版的课后题答案解析。

第3章 常量、变量与数据类型

1. 下面的哪个标识符不合法?

(1)_name; (2)class; (3)1str; (4)long;

答:(3)1str不合法,标识符不能以数字开头。

2. 下列常量中,哪个是整数常量?

(1)3.14159; (2)'a'; (3)10L; (4)3e+5;

答:(3)10L是整数常量,L后缀表示长整型。

3. 下列哪个运算符的优先级最高?

(1)~; (2)*; (3)<; (4)?:;

答:(1)~运算符的优先级最高,表示按位取反。

4. 下列哪个标识符是C++关键字?

(1)Set; (2)for; (3)callable; (4)a1 ;

答:(2)for是C++关键字,表示循环语句。

第4章 运算符和表达式

1. 下列哪个表达式是错误的?

(1)x = y + z; (2)x = y * z; (3)x = y - z; (4)x = y % z / w;

答:(4)x = y % z / w是错误的,C++中%和/的优先级相同,应该添加括号: x = y % (z / w)。

2. int a = 10, b = 20, c = 30;以下代码的输出结果是什么?

(1)cout << (a > b || c < b) << endl; (2)cout << (a > b && c < b) << endl;

答:(1)输出0,因为a > b为假且c < b为真,使用||运算符时只需满足一边为真即可,所以结果为1 || 0 = 1,最后取反为0;(2)输出0,因为a > b为假,所以整个表达式的值为假,即为0。

3. 以下代码的输出结果是什么?

(1)int x = 5, y = 7; cout << (x > y ? ++x : ++y) << endl;

(2)int x = 5, y = 7; cout << (x < y ? ++x : ++y) << endl;

答:(1)输出8,因为x > y为假,所以执行++y,y变为8,输出8;(2)输出6,因为x < y为真,所以执行++x,x变为6,输出6。

第5章 控制语句

1. 下列语句中,哪个是if语句?

(1)for(int i = 0; i < 10; i++); (2)int i = 0; while(i < 10) { i++; };

(3)if (a > b) cout << "a > b" << endl; (4)do { i++; } while(i < 10);

答:(3)if (a > b) cout << "a > b" << endl;是if语句。

2. 以下代码的输出结果是什么?

(1)int a = 10; if(a > 5) cout << "a > 5" << endl; else cout << "a <= 5" << endl;

(2)int a = 10, b = 20; if(a > b) cout << "a > b" << endl; else if(a == b) cout << "a == b" << endl; else cout << "a < b" << endl;

答:(1)输出a > 5;(2)输出a < b,因为a > b为假且a == b也为假,所以执行else分支。

3. 以下代码的执行次数是多少?

for(int i = 0; i < 10; i++){ for(int j = 0; j < 5; j++) cout << i << " " << j << endl; }

答:外层循环执行10次,内层循环执行5次,所以整个循环体执行10 * 5 = 50次。

第6章 数组、指针和字符串

1. 以下代码中,a和*p的值分别是多少?

int a[3] = 1; int *p = a;

答:a和p都代表数组a的首地址,即a[0]的地址,a的值为1,p的值也为1。

2. 下述代码的输出结果是什么?

char str1[] = "Hello"; char str2[] = "World"; strcat(str1, str2); cout << str1 << endl;

答:输出字符串"HelloWorld",因为strcat()函数将str2中的字符串连接到str1的末尾。

3. 以下代码的输出结果是什么?

char str[] = "Hello World"; for(int i = 0; str[i] != '\0'; i++){ cout << str[i] << " "; }

答:输出字符串"Hello World",以及空格符。

第7章 函数和程序结构

1. 以下哪个函数声明是正确的?

(1)int compare(int a, int b); (2)compare(int a, int b) int;

(3)int compare(int a, int b) int; (4)compare a, b;

答:(1)int compare(int a, int b);是正确的。

2. 以下代码的执行结果是什么?

int a = 10; int *p = &a; add(p, 5); cout << a << endl;

答:输出15,因为add()函数将p所指向的变量值加5之后,a的值也为15。

3. 以下代码的输出结果是什么?

for(int i = 1; i <= 9; i++){ for(int j = 1; j <= i; j++){ cout << i << "*" << j << "=" << i*j << " "; } cout << endl; }

答:输出乘法口诀表。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复