1.【单选题】
可以跳出循环的语句是?
A goto
B continue
C break
解析:goto
是一个跳转语句,它可以跳转到程序中的某个标签位置,但它并不直接用于跳出循环。continue
用于跳过当前循环的剩余部分,并开始下一次迭代。它不会完全跳出循环,而只是跳过当前迭代。break
用于完全跳出当前的循环(无论是 for
、while
还是 do-while
)。所以选C。
2.【单选题】
int i {};
for( ; ; ) i++;
std::cout << i;
屏幕输出内容是
A. 0 B. -1 C. 无输出
解析:for(;;)i++;
是一个无限循环,因为它没有循环条件(即没有 while
或 for
语句中的条件表达式),也没有 break
语句来跳出循环。因此,i
将在循环中不断增加,但由于没有退出条件,这个循环将永远执行下去。所以无输出。
3.【单选题】
for( int i {}; i < 100; i += 2) std::cout << i;
屏幕上输出的内容是:
A 100以内奇数
B 100 以内偶数
C 100 以内整数
解析:这道题很简单,i初始化为0,然后递增条件为 i+= 2;也就是0, 2, 4.....,所以屏幕输出内容为100 以内偶数。
4.【单选题】
for( int i = 9 ; i ; i-- ) std::cout << i;
屏幕上的输出内容是:
A 987654321
B 无输出
C 999999999
解析:for(int i=9;i;i--)std::cout<<i;
是一个 for
循环,其中初始化部分将 i
设置为 9
,条件部分简单地是 i
(在C++中,任何非零整数都被视为真,因此循环将继续执行,直到 i
变为 0
),而迭代部分将 i
递减。每次循环迭代时,std::cout
将输出 i
的当前值。因此,当 i
从 9
开始递减到 1
时,输出将是:987654321。
5.【单选题】
for(int i = 9; i ; i++ ) std::cout << i << std::endl;
以下说法正确的是?
A 这是一个无限循环,应该把i++改成i--
B 屏幕上最后一行的值是-1
C 以上说法都不正确
解析:这道题有点难,很多人会选择A,但是这是错的。因为int有取值范围,当超过取值范围的时候就等于-1了,然后再i++等于0,跳出循环,所以结果选B。
6.【单选题】
int i {};
for(int x {}; x < 100; x++)
for(int y {} ; y < 100; y++ ) i++;
i = ?
A 100 B 10000 C0
解析:这道题选择B。因为这是一个嵌套循环,x执行100次,y再x内部再执行100次,结果执行了10000次。
7.【单选题】
int i {};
for( int x {}; x < 100; x++ ) i++;
for( int y {}; y < 100; y++ ) i++;
i = ?
A 10000 B 200 C 10100
解析:这道题选B。因为第一个循环后面有分号;,所以这是两个单独的循环,一共执行了200次。
8.【单选题】
int i {};
for( int y {} ; y < 100; y++)
{
if( y==5 ) continue;
i++;
}
i = ?
A. 99 B. 5 C. 100
解析:continue
用于跳过当前循环的剩余部分,并开始下一次迭代。它不会完全跳出循环,而只是跳过当前迭代。所以答案选A。
9.【单选题】
int i {};
for(int y {}; y < 100; y++)
{
if( y == 5) break;
i++;
}
i = ?
A 5 B 100 C 99
解析:break
用于完全跳出当前的循环,所以当y == 5时,循环结束,i = 5,选A。
10.【单选题】
int i{};
for(int x {};x < 100; x++)
for(int y {};y < 100; y++)
{
if(y==5) goto lend;
i++;
}
lend:
std::cout<<i++;
这段代码结束时,i = ?
A. 5 B. 6 C. 105
解析:goto
是一个跳转语句,它可以跳转到程序中的某个标签位置,所以会跳出循环结果i等于5。