C++ 程序的输出 |设置 50
预测以下 C++ 程序的输出:
- 问题 1 :
CPP
#include
#include
using namespace std;
int main()
{
int ran = rand();
cout << ran << endl;
return 0;
}
CPP
#include
#include
using namespace std;
int main()
{
cout << RAND_MAX << endl;
return 0;
}
CPP
#include
using namespace std;
int main()
{
void a = 10, b = 10;
int c;
c = a + b;
cout << c;
return 0;
}
CPP
#include
using namespace std;
int array1[] = { 1200, 200, 2300, 1230, 1543 };
int array2[] = { 12, 14, 16, 18, 20 };
int temp, result = 0;
int main()
{
for (temp = 0; temp < 5; temp++) {
result += array1[temp];
}
for (temp = 0; temp < 5; temp++) {
result += array2[temp];
}
cout << result;
return 0;
}
CPP
#include
using namespace std;
int main()
{
int a = 5, b = 10, c = 15;
int arr[3] = { &a, &b, &c };
cout << *arr[*arr[1] - 8];
return 0;
}
CPP
#include
using namespace std;
int main()
{
int array[] = { 10, 20, 30 };
cout << -2 [array];
return 0;
}
CPP
#include
using namespace std;
int main()
{
int const p = 5;
cout << ++p;
return 0;
}
CPP
#include
using namespace std;
int main()
{
char arr[20];
int i;
for (i = 0; i < 10; i++)
*(arr + i) = 65 + i;
*(arr + i) = '\0';
cout << arr;
return (0);
}
CPP
#include
using namespace std;
int Add(int X, int Y, int Z)
{
return X + Y;
}
double Add(double X, double Y, double Z)
{
return X + Y;
}
int main()
{
cout << Add(5, 6);
cout << Add(5.5, 6.6);
return 0;
}
CPP
#include
using namespace std;
#define PR(id) cout << "The value of " #id " is " << id
int main()
{
int i = 10;
PR(i);
return 0;
}
- 输出:
1804289383
- 说明:由于声明的数字是一个整数,它会产生从 0 到 RAND_MAX 的随机数。 RAND_MAX 的值取决于库,但在任何标准库实现上保证至少为 32767。
- 问题2 :
CPP
#include
#include
using namespace std;
int main()
{
cout << RAND_MAX << endl;
return 0;
}
- 输出:
2147483647
- 说明:输出依赖于编译器。 RAND_MAX 是编译器用来创建最大随机数的函数。
- 问题 3 :
CPP
#include
using namespace std;
int main()
{
void a = 10, b = 10;
int c;
c = a + b;
cout << c;
return 0;
}
- 输出:
Compile time error
- 说明: void 不接受任何类型的值。
- 问题 4 :
CPP
#include
using namespace std;
int array1[] = { 1200, 200, 2300, 1230, 1543 };
int array2[] = { 12, 14, 16, 18, 20 };
int temp, result = 0;
int main()
{
for (temp = 0; temp < 5; temp++) {
result += array1[temp];
}
for (temp = 0; temp < 5; temp++) {
result += array2[temp];
}
cout << result;
return 0;
}
- 输出:
6553
- 说明:在这个程序中,我们将两个数组的每个元素相加。 array1[] 和 array2[] 的所有元素将相加,总和将存储在 result 中,因此输出为 6553。
- 问题 5 :
CPP
#include
using namespace std;
int main()
{
int a = 5, b = 10, c = 15;
int arr[3] = { &a, &b, &c };
cout << *arr[*arr[1] - 8];
return 0;
}
- 输出:
Compile time error!
- 说明:此数组中的转换无效。数组 arr[] 被声明为保存整数类型的值,但我们试图将引用(地址)分配给数组,因此会出现错误。将引发以下编译错误:
cannot convert from ‘int *’ to ‘int’
- 问题 6 :
CPP
#include
using namespace std;
int main()
{
int array[] = { 10, 20, 30 };
cout << -2 [array];
return 0;
}
- 输出:
-30
- 说明: -2[array]:这个语句等价于-(array[2])。在零索引处存储 30,因此由于一元运算运算符(-),将打印 30 的否定。
- 问题 7 :
CPP
#include
using namespace std;
int main()
{
int const p = 5;
cout << ++p;
return 0;
}
- 输出:
Compile time Error!
- 解释:常量变量是那些在整个执行过程中其值不能改变的变量。 ++p 语句尝试更改该值,因此编译器将引发错误。
- 问题 8 :
CPP
#include
using namespace std;
int main()
{
char arr[20];
int i;
for (i = 0; i < 10; i++)
*(arr + i) = 65 + i;
*(arr + i) = '\0';
cout << arr;
return (0);
}
- 输出:
ABCDEFGHIJ
- 解释:每次我们分配 65 + i。在第一次迭代中,i = 0 并且分配了 65。所以它会从 A 打印到 J。
- 问题 9 :
CPP
#include
using namespace std;
int Add(int X, int Y, int Z)
{
return X + Y;
}
double Add(double X, double Y, double Z)
{
return X + Y;
}
int main()
{
cout << Add(5, 6);
cout << Add(5.5, 6.6);
return 0;
}
- 输出:
Compile time error!
- 说明:在这里我们要增加两个元素,但在给定的功能,我们需要3 arguments.So编译器不会获得所需的函数(函数有2个参数)
- 问题 10 :
CPP
#include
using namespace std;
#define PR(id) cout << "The value of " #id " is " << id
int main()
{
int i = 10;
PR(i);
return 0;
}
- 输出:
The value of i is 10
- 说明:在这个程序中,我们只是通过宏打印声明的值。仔细观察宏中没有分号(;)用作终止语句。