A、0
B、1
C、2
D、3
执行以下代码,输出的结果是( )。
char a[6] = {'a', 'b', 'c', 'd'}; cout << sizeof(a);
A、4
B、6
C、8
D、12
【答案】B
【解析】sizeof(数组名) 返回数组长度(所占的字节数,不是数组元素个数),一个char 类型变量占一个字节。
关于C++中的一维数组,以下描述正确的是( )。
A、数组中的元素类型可以不相同
B、数组在内存中有一段连续的单元
C、数组中的最后一个元素的下标(索引)为 -1
D、静态数组中的元素的个数可以大于数组初始时设定的长度
【答案】B
【解析】数组是一定数量的同类型变量组成的整体,在内存中占用一段连续的存储单元,数组中第一个元素的下标为 0,最后一个元素的下标为 数组长度-1,静态数组(即我们经常使用的数组,例如 int a[10010]; )的长度是预先定义好的,在整个程序中,一旦给定大小后就无法改变。
以下关于 while 和 do…while 循环语句描述不正确的是( )。
A、do…while 的循环条件可以是 1
B、while 的循环体可以是复合语句
C、do…while 的循环体至少执行一次
D、执行 do…while 语句,首先判断循环条件,当满足循环条件,开始执行循环体
中的语句
【答案】D
【解析】while 语句,先判断循环条件,当满足循环条件,才会执行循环体中的语句;do…while 语句,先执行一次循环体中的语句,再判断循环条件,当满足循环条件,才会继续执行循环体中的语句。
已知:int a, b = 5, *p = &a ,下列表达式哪一个可以将 b 赋值给 a ?( )。
A、*p = *&b;
B、a = *p;
C、a = &b;
D、a = **p;
【答案】A
【解析】
&a 表示变量 a 的地址,int *p; 表示定义一个指向 int 类型变量的指针p (即用来存储某一个 int 类型变量的内存地址)。
解引用运算符 * 的作用是将一个指针解引用,也就是获取指针指向内存地址的内容,定义一个指针之后使用 *p 表示 p 这个指针指向的内存地址中存放的内容,即*p 表示一个变量,存储的是一个值。
A 选项中, &b 表示变量 b 的地址, *&b 等价于变量 b , int *p = &a; 表示定义一个 int 类型的指针,初始值为变量 a 的地址, *p 等价于变量 a ,那么 *p = *&b; 等价于将变量 b 赋值给变量 a 。
B 选项中, a = *p; 等价于将变量 a 赋值给变量 a 。
C 选项中, a = &b; 等价于将变量 b 的地址赋值给变量 a ,类型不匹配。
D 选项中, a = **p; 将指针 p 是一个一级指针,不能被解引用两次。
【题目描述】
刀互不重合。计算出蛋糕被切割成了几块。
【输入格式】
【输出格式】
【输入样例1】
2
【输出样例1】
9
#include <iostream> using namespace std; int main() { int n; cin >> n; cout << (n + 1) * (n + 1) << endl; return 0; }
【题目描述】
【输入格式】
【输出格式】
【输入样例1】
A
【输出样例1】
Apple
#include <iostream> using namespace std; int main() { char c; cin >> c; if (c == 'A') cout << "Apple" << endl; if (c == 'B') cout << "Banana" << endl; if (c == 'O') cout << "Orange" << endl; if (c == 'P') cout << "Pear" << endl; return 0; }
【解析】
【题目描述】
【输出格式】
【输入样例1】
7
3 5 2 4 7 1 6
【输出样例1】
6
#include <iostream> using namespace std; int n, q[10], x; int main() { cin >> n; for (int i = 1; i <= n; i++) { cin >> x; int t = 1; if (q[2] < q[t]) t = 2; if (q[3] < q[t]) t = 3; q[t] += x; } cout << min(q[1], min(q[2], q[3])) << endl; return 0; }
【解析】
【题目描述】
【输入格式】
【输出格式】
【输入样例1】
【输出样例1】
5
#include <iostream> using namespace std; int main() { int n, m; cin >> n >> m; n = m - n + 1; int a = 1, b = 1, c = a + b; for (int i = 2; i <= n; i++) { c = a + b; a = b; b = c; } cout << a << endl; return 0; }
【解析】
【题目描述】
小明有N(4≤N≤60)个玻璃球,他想将N个玻璃球拆分成若干份(份数≥2,且每份中的数量互不相等),从而使拆分后的每份玻璃球数量的乘积最大。请你编写程序帮助小明计算出最大乘积是多少。
例如:N = 5,5个玻璃球有2种符合条件的拆分方法:(4,1)、(3,2);
其中,能得到最大乘积的拆分方法为(3,2),最大乘积为6(6=3*2)。
【输入格式】
输入一个正整数N(4≤N≤60),表示玻璃球的总数量
【输出格式】
输出一个整数,表示最大乘积
【输入样例1】
5
【输出样例1】
6
#include<iostream> using namespace std; int n, a[30]; int main() { cin >> n; int x = 2; while (x <= n) { a[x] = x; n -= x; x++; } if (n == x - 1) a[x - 1]++; for (int i = x - 1; n >= 1 && i >= 2; i--) { a[i]++; n--; } int ans = 1; for (int i = 2; i < x; i++) ans *= a[i]; cout << ans << endl; return 0; }
【解析】
-
扫码下载安卓APP
-
微信扫一扫关注我们
微信扫一扫打开小程序
手Q扫一扫打开小程序
-
返回顶部
发表评论