📜  C 程序的输出 |设置 56(While 循环)

📅  最后修改于: 2022-05-13 01:56:11.224000             🧑  作者: Mango

C 程序的输出 |设置 56(While 循环)

先决条件:While 循环
Q.1这个程序的输出是什么?

#include 
using namespace std;
int main()
{
    unsigned int x = 3;
    while (x-- >= 0) {
        printf("%d  ", x);
    }
    return 0;
}

选项
a) 3 2 1 0
b) 2 1 0 -1
c) 无限循环
d) -65535

Answer : C

解释:这里 x 是一个无符号整数,它永远不会变成负数。因此表达式 x–>=0 将始终为真,因此它是一个无限循环。

Q.2这个程序的输出是什么?

#include 
using namespace std;
int main()
{
    int x = 3, k;
    while (x-- >= 0) {
        printf("%d  ", x);
    }
    return 0;
}

选项:-
a) 3 2 1 0
b) 2 1 0 -1
c) 无限循环
d) -65535



Answer: b 

解释:这里 x 是一个值为 3 的整数。循环运行直到 x>=0 ; 2, 1, 0 将被打印出来,在 x>=0 之后,条件再次变为真,假之后打印 -1。

Q.3这个程序的输出是什么?

#include 
using namespace std;
int main()
{
    int x = 0, k;
    while (+(+x--) != 0) {
        x++;
    }
    printf("%d  ", x);
    return 0;
}

选项
一)1
b) 0
c) -1
d) 无限

Answer : C 

说明一元 + 是 C++ 中唯一的虚拟运算符。所以它对表达没有影响。

Q.4这个程序的输出是什么?

#include 
using namespace std;
int main()
{
    int x = -10;
    while (x++ != 0)
        ;
    printf("%d  ", x);
    return 0;
}

选项
一)0
b) 1
c) -1
d) 无限

Answer: b 

说明:分号在 while 循环之后。当 x 的值变为 0 时,它从 while 循环中出来。由于 x 上的后增量,打印时 x 的值变为 1。

Q.5这个程序的输出是什么?

#include 
using namespace std;
int main()
{
    while (1) {
        if (printf("%d", printf("%d")))
            break;
        else
            continue;
    }
    return 0;
}

选项
a) 垃圾值
b) 1
c) 0
d) 错误

Answer : a 

说明:内部 printf 执行并打印一些垃圾值。