📜  C 程序的输出 |设置 57(用于循环)

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

C 程序的输出 |设置 57(用于循环)

先决条件: for循环

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

#include 
using namespace std;
int main()
{
    for (5; 2; 2)
        printf("Hello\n");
    return 0;
}

选项
a) 编译错误
b) 你好
c) 无限循环
d) 以上都不是

ans: c

说明:在条件部分放置一个非零值使其无限。

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



#include 
using namespace std;
int main()
{
    static int i;
    for (i++; ++i; i++) {
        printf("%d ", i);
        if (i == 6)
            break;
    }
    return 0;
}

选项
选项:
a) 2 4 6
b) 编译错误
c) 垃圾值
d) 没有输出

ans : a

解释:第一次迭代后,程序看起来像 (0, 2, 2)。当 i = 6 时它会中断。

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

#include 
using namespace std;
int fun();
int main()
{
    for (fun(); fun(); fun()) {
        printf("%d ", fun());
    }
    return 0;
}
int fun()
{
    int static num = 10;
    return num--;
}

选项
a) 编译错误
b) 无法预测
c) 8 5 2
d) 以上都不是

ans: c

解释 :

At first iteration:
        for(10; 9; fun()) //condition true
        printf("%d", 8) //8 prints
    At second iteration:
        for(10; fun(); 7)
        for(7; 6 ;fun()) //condition true
        printf("%d", 5) //5 prints
    At third iteration:
        for(7; fun(); 4)
        for(4; 3; fun()) //condition true
        printf("%d", 2) //2 prints
    At fourth iteration:
        for(4; fun(); 1)
        for(1; 0; fun()) //condition false 
    Program terminates

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

#include 
using namespace std;
int main()
{
    for (;;)
        printf("%d ", 10);
    return 0;
}

选项
a) 编译错误
b) 运行时错误
c) 10
d) 无限循环

ans : d

说明:由于没有提供任何条件,所以循环无限运行。



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

#include 
using namespace std;
int main()
{
    char i = 0;
    for (; i++; printf("%d", i))
        ;
    printf("%d", i);
    return 0;
}

选项

一)0
b) 1
c) 无限循环
d) 编译错误

ans: b

说明:以下条件第一次失败,因此循环终止并且 i 的值增加到 1。

for(; 0; printf("%d", i)) 


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

#include 
using namespace std;
int main()
{
    int i;
    for (i = 0; i < 0, 5; i++)
        printf("%d ", i);
    return 0;
}

选项a) 错误
b) 1、3
c) 程序永无止境
d) 这些都不是

ans: c

解释 :-
考虑两个条件:
(a)i<0 第一次迭代失败
(b)5 在条件部分使它无限循环,因为它永远不会变成 0。