有以下程序段 int k=0; while(k=1) k++; 则while循环执行的次数是

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有以下程序段 int k=0; while(k=1) k++; 则while循环执行的次数是相关的知识,希望对你有一定的参考价值。

A.无限次 B.有语法错,不能执行 C.一次也不执行 D.执行1次

程序段 int k=0; while(k=1) k++; while循环体执行的次数为无限次。

理由:在执行while(k=1)时,会先执行赋值语句,令 k 的值等于 1,然后再判断while的循环条件,此时 while(k=1)相当于 while(1),循环条件始终为真,无限循环执行。

再举一个与上面条件差不多的例子:

#include <stdio.h>

int main(int argc, char *argv[])

int k=0;

while(k=1)

++k;

printf("%d\\n",k);

;

return 0;

控制台会不断输出2,如下图:

扩展资料:

do-while循环语句

一般形式如下:do  语句; while(表达式);

for循环语句

一般形式如下:for ( [表达式 1]; [表达式 2 ]; [表达式3] )

其中:

表达式1:一般为赋值表达式,给控制变量赋初值;

表达式2:关系表达式或逻辑表达式,循环控制条件;

表达式3:一般为赋值表达式,给控制变量增量或减量;

语句:循环体,当有多条语句时,必须使用复合语句。

参考资料:百度百科-C语言循环控制语句

参考技术A A.无限次

#include <stdio.h>
int main(int argc, char *argv[])

int k=0;
while(k=1)

k++;
printf("%d\n",k);
;
return 0;


你会发现一直输出:2

原因:
k=1 是一条赋值语句,令 k 的值等于 1。语句 k = 1 的结果是 永远是 1 , while(k=1) = while(1) ,是死循环,执行无限次

k == 1 才是一条逻辑语句,判断 k 的值是否等于1 。如果 k 的值等于 1 , k==1 的结果是1,否则是0。
参考技术B 试题解析循环条件是" k=1",该表达式恒为真,所以程序构成死循环 答案选 A。 参考技术C A
因为循环条件 k=1 一直为真。
赋值语句的值为其等号右侧的值,也就是说 k=1 的值为1,也就是为真。
参考技术D 一样的如果k=2呢循环了几次

第k个素因子只有3 5 7 的数

题目描述

有一些数的素因子只有3、5、7,请设计一个算法,找出其中的第k个数。

给定一个数int k,请返回第k个数。保证k小于等于100。

测试样例:
3
返回:7

int findKth(int k) {
        // write code here
        if (k <= 0) return -1;

    vector<int> num;
    num.push_back(1);
    int p3 = 0, p5 = 0, p7 =0;
    while (num.size()<k + 1){

        int minnum = min((num[p3]) * 3, min((num[p5]) * 5, (num[p7]) * 7));
        num.push_back(minnum);
        while ((num[p3]) * 3 <= minnum)
            ++p3;
        while ((num[p5]) * 5 <= minnum)
            ++p5;
        while ((num[p7]) * 7 <= minnum)
            ++p7;
    }
    return num.back();
        
    }

 

以上是关于有以下程序段 int k=0; while(k=1) k++; 则while循环执行的次数是的主要内容,如果未能解决你的问题,请参考以下文章

跪求C语言大神解决这些C语言选择题

若K为整型,以下while循环执行( )次K=0while (K=0) K=K-1

若k为整型,以下while循环执行( )次.

c语言的题目

一道C语言题,帮帮忙.

Java后缀自增/自减表达式的返回值