有以下程序段:vark=0;while(k=1)k++;下列选项

题目

有以下程序段:vark=0;while(k=1)k++;下列选项中关于该程序段的描述正确的是()。

  • A、语句不存在语法错误,但while循环将执行无限次,引发错误
  • B、语句存在语法错误,while循环不能执行
  • C、语句不存在语法错误,但while循环一次也不执行
  • D、while循环执行1次
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

以下程序运行后的输出结果是【 9 】

#include <stdio.h>

main()

{ int k=1,s=0;

do{

if((k%2)!=0) continue;

s+=k;k++;

}while(k>10);

printf("s=%d\n",s);

}


正确答案:

第2题:

现有如下程序段

#include "stdio.h"

#include "string.h"

main()

{ char a[]="acfijk"; /*这里是有序的字符序列*/

char b[]="befijklqswz"; /*这里是有序的字符序列*/

char c[80],*p;

int i=0,j=0,k=0;

while(a[i]!=′\0′&&b[j]!= ′\0′)

{ if(a[i]<b[j])c[k++]=a[i++];

else if(a[i]>b[j])c[k++]=b[j++];

else { c[k++]=b[j++];

i++;}}

while(a[i]==′\0′&&b[j]!= ′\0′)

c[k++]=b[j++];

while(a[i]!=′\0′&&b[j]== ′\0′)

c[k++]=a[i++];

c[k]=′\0′;

puts(c);}

则输出结果是

A.acfijkbefijklqswz

B.abceffiijjkklqswz

C.befijklqswz acfijk

D.abcefijklqswz


正确答案:D
解析:这个题目的功能是实现两个有序字符串,合并成一个新的有序的字符串。

第3题:

有以下程序段 , 且变量已正确定义和赋值

for(s=1.0,k=1;k<=n;k++) s=s+1.0/(k*(k+1));

printf("s=%f\n\n",s);

请填空 , 使下面程序段的功能为完全相同

s=1.0;k=1;

while( _[10]_______ ){ s=s+1.0/(k*(k+1)); _[11]_______ ;}

printf("s=%f\n\n",s);


正确答案:

 

第4题:

以下程序正确计算p=n!(n=0)的是()。

A.for(p=1.0,k=1;k=n;)p*=k++;

B.p= 1.0;k=0;while(kn)p*=++k;

C.p= 1.0;k=1;do{++k;p*=k;}while(k=n);

D.p=1.0;for(k=n;k=1;k--)p*=k--;


正确答案:AB

第5题:

以下程序运行后的输出结果是【】。includemain(){int k=1,s=0; do{ if((k%2)!=0)continue;

以下程序运行后的输出结果是【 】。

include<stdio.h>

main()

{ int k=1,s=0;

do{

if((k%2)!=0) continue;

s+=k; k++;

}while(k>10);

printf("s+%d\n",s);

}


正确答案:s=0
s=0 解析:do-while循环结构的形式如下:
do
循环体
while(表达式);
循环的执行过程如下:
①执行do后面循环体中的语句。
②计算while后—对圆括号中表达式的值。当值为非0时,转去执行步骤1;当值为0时,执行步骤3。
③退出do-while循环。
在本题中先判断k是否为偶数,如果不是则结束本次循环,进行下—次的循环条件判定,由于没有改变k的值,k>10的不成立,退出do-while循环,执行后面的printf("s=%d\n",s);语句,因为s=0,所以输出结果为s=0。

第6题:

有以下程序:void main(){ int k=0,n=0; while(k<5) { switch(k) { default: break; case 1:n+=k; case 2: case 3:n+=k; } k++;}printf("%d\n",n); } 程序运行后的输出结果是( )。A)0 B)4C)6 D)7


正确答案:D
首先k=0,执行default,退出switch,k++,执行case 1,2,3后,n=2,k++,执行case2,3,n=4,k++,执行case 3,n=7.执行k++,执行default,k++,退出循环。

第7题:

在下列选项中,没有构成死循环的是

A.int i=100;

while(1)

{i=i0+1;

if(i>100)break;

}

B.for(;;);

C.int k=10000;

do{k++;}while(k>10000);

D.int s=36;while(s)--s;


正确答案:D

第8题:

(9)以下程序运行后的输出结果是【9】

#include <stdio.h>

main( )

{int k=1,s=0;

do{

if{((k&2)!=0)continue;

s+=k;k++;

}while(k)10);

printf(“s=&d/n”,s);

}


正确答案:

9s=0

第9题:

有以下程序: #include<stdio.h> void fun(int*s) { static int i=0; do{s[J]=s[J]+s[j+I];}while(++j<2); } main( ) { int k.a[l0]={1,2,3,4,5}; for(k=1;k<3;k++)fun(a); for(k=0;k<5;k++)pfintf("%d",a[k]); printf("\n"); } 程序运行后的输出结果是( )。

A.12345

B.23445

C.34756

D.35745


正确答案:D
本题考查静态变量,静态变量有储存已经操作过的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案选择D。

第10题:

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

A.无限次

B.有语法错,不能执行

C.一次也不执行

D.执行1次


正确答案:A
解析:C语言里关系表达式的等于应该是“=”。一个等于号表示赋值,即这里面重复的把1赋给k,自然表达式k=1的值总为1,while后面的表达式恒为真,当然会进入死循环。

更多相关问题