c语言练习题?
以下程序的运行结果是().#include<stdio.h>voidmain(){inti=1,sum=0;while(i<10)sum=sum+1;i++;printf...
以下程序的运行结果是().
#include <stdio.h>
void main()
{
int i=1,sum=0;
while(i<10) sum=sum+1; i++;
printf("i=%d,sum=%d",i,sum);
}
得分/总分
A.
i=2,sum=1
B.
i=9,sum=9
C.
i=10,sum=9
D.
死循环,没有结果 展开
#include <stdio.h>
void main()
{
int i=1,sum=0;
while(i<10) sum=sum+1; i++;
printf("i=%d,sum=%d",i,sum);
}
得分/总分
A.
i=2,sum=1
B.
i=9,sum=9
C.
i=10,sum=9
D.
死循环,没有结果 展开
展开全部
选D,由于没有大花号确定while语句的管辖范围,循环体只有一条sum=sum+1的语句。由于i=1,i<10永真,不能结束循环。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、C语言的跳转语句中,对于break和continue说法正确的是_______。
A、continue语句只应用于循环体中
B、break语句只应用于循环体中
(switch也用)
C、break是无条件跳转语句,continue不是
(均无条件跳转)
D、break和continue的跳转范围不够明确,容易产生问题
(goto跳转范围不够明确)
2、对于do...while语句,下列说法中正确的是______。
A、用do...while语句可实现分支程序设计
(循环)
B、当循环条件不成立时,至少也要执行一次循环体
C、当循环条件不成立时,一次也不执行循环体
(至少执行一次)
D、do...while与while结构完全相同
(不同)
3、下列程序段执行时,若从键盘输入23,则输出为______。
int
c,num;
scanf("%d",&num);
do
{
c=num%10;
printf("%d",c);
num=num/10;
}while(num>0);
printf("\n");
解释:
第一次循环
23%10
=
3
输出3,23/10(整除)值为2
继续循环
第二次循环
2
%10
=
2
输出2
2/10值为0
退出循环
结果
32
4、若I,j已定义为int型,则以下for循环是(
)。
for(I=0,j=0;(j!=123)&&(I<4);I++);
A、无限循环
B、循环次数不定
C、执行4次
D、执行3次
解释:
j
!=
123
永远为真
上面一句等价为
for(I=0;I
<
4;I++);
所以4次
5、对于for(表达式1;;表达式3)可以理解为________。
A、for(表达式1;0;
表达式3)
B、for(表达式1;1;
表达式3)
C、for(表达式1;表达式1;表达式3)
D、for(表达式1;表达式3;表达式3)
解释:for(表达式1;;表达式3)
说明循环不判断循环条件永远为真所以
for(表达式1;1;
表达式3)
6、执行下列程序段后,I值是(
)。
int
I,x;
for(I=1,x=1;I<=20;I++)
{
if(x>=10)
语句1
break;
if(x%2==1)
语句2
{
x+=5;
continue;
}
x-=3;
}
第一次循环:语句1为假,语句2为真执行
x+
=
5
x值变成6
重新循环
第二次循环:语句1为假,语句2为假执行
x-
=
3
x值变成3
重新循环
第三次循环:语句1为假,语句2为真执行
x+
=
5
x值变成8
重新循环
第四次循环:语句1为假,语句2为假执行
x-
=
3
x值变成5
重新循环
第五次循环:语句1为假,语句2为真执行
x+
=
5
x值变成10
重新循环
第六次循环:语句1为真,退出循环
x值为10
7、下列程序的执行结果是(
)。
#include<stdio.h>
main(
)
{
int
s=0,
k;
for(k=7;k>=0;k--)
{
switch(k)
{
case
1:
case
4:
case
7:
s++;
break;
case
2:
case
3:
case
6:
break;
case
0:
case
5:
s+=2;
break;
}
}
printf("s=%d\n",s);
}
switch语句一旦匹配到case就不在匹配case了,直接按顺序执行下一个case中的代码。不难得出答案。
8、下列程序段执行结果是输出(
)。
x=3;
do
{
printf("%2d",x--);
}
while(!x);
x++
和++x
前缀和后缀的问题数上讲了很多。
第一次循环输出3
x的值变成2
!2
为假退出循环
9、以下程序的执行结果是(
)。
#include
#define
N
2
#define
M
N+1
#define
NUM
(M+1)*M/2
main(
)
{
int
I=1,n=0;
while(I<=NUM)
{
n++;
printf("%d",n);
I++;
}
printf("\n");
}
宏展开:
等价于
while(I
<=
(M+1)*M/2
)
等价于
while(I
<=
(N+1+1)*N+1/2
)
等价于
while(I
<=
(2+1+1)*2+1/2
)
等价于
while(I
<=
8
)
10、若I,j已定义为int型,则以下程序段中内循环体"printf("sd\n");"的执行次数是__________。
#include
main(
)
{
int
j,I;
for(I=5;I>=1;I--)
执行5次
for(j=0;j<4;j++)
执行4次
printf("sd\n");
执行5×4
=
20次
}
循环中条件变量x++
和++x
等效
结果我没验证
C语言学习推荐看
point
on
c
A、continue语句只应用于循环体中
B、break语句只应用于循环体中
(switch也用)
C、break是无条件跳转语句,continue不是
(均无条件跳转)
D、break和continue的跳转范围不够明确,容易产生问题
(goto跳转范围不够明确)
2、对于do...while语句,下列说法中正确的是______。
A、用do...while语句可实现分支程序设计
(循环)
B、当循环条件不成立时,至少也要执行一次循环体
C、当循环条件不成立时,一次也不执行循环体
(至少执行一次)
D、do...while与while结构完全相同
(不同)
3、下列程序段执行时,若从键盘输入23,则输出为______。
int
c,num;
scanf("%d",&num);
do
{
c=num%10;
printf("%d",c);
num=num/10;
}while(num>0);
printf("\n");
解释:
第一次循环
23%10
=
3
输出3,23/10(整除)值为2
继续循环
第二次循环
2
%10
=
2
输出2
2/10值为0
退出循环
结果
32
4、若I,j已定义为int型,则以下for循环是(
)。
for(I=0,j=0;(j!=123)&&(I<4);I++);
A、无限循环
B、循环次数不定
C、执行4次
D、执行3次
解释:
j
!=
123
永远为真
上面一句等价为
for(I=0;I
<
4;I++);
所以4次
5、对于for(表达式1;;表达式3)可以理解为________。
A、for(表达式1;0;
表达式3)
B、for(表达式1;1;
表达式3)
C、for(表达式1;表达式1;表达式3)
D、for(表达式1;表达式3;表达式3)
解释:for(表达式1;;表达式3)
说明循环不判断循环条件永远为真所以
for(表达式1;1;
表达式3)
6、执行下列程序段后,I值是(
)。
int
I,x;
for(I=1,x=1;I<=20;I++)
{
if(x>=10)
语句1
break;
if(x%2==1)
语句2
{
x+=5;
continue;
}
x-=3;
}
第一次循环:语句1为假,语句2为真执行
x+
=
5
x值变成6
重新循环
第二次循环:语句1为假,语句2为假执行
x-
=
3
x值变成3
重新循环
第三次循环:语句1为假,语句2为真执行
x+
=
5
x值变成8
重新循环
第四次循环:语句1为假,语句2为假执行
x-
=
3
x值变成5
重新循环
第五次循环:语句1为假,语句2为真执行
x+
=
5
x值变成10
重新循环
第六次循环:语句1为真,退出循环
x值为10
7、下列程序的执行结果是(
)。
#include<stdio.h>
main(
)
{
int
s=0,
k;
for(k=7;k>=0;k--)
{
switch(k)
{
case
1:
case
4:
case
7:
s++;
break;
case
2:
case
3:
case
6:
break;
case
0:
case
5:
s+=2;
break;
}
}
printf("s=%d\n",s);
}
switch语句一旦匹配到case就不在匹配case了,直接按顺序执行下一个case中的代码。不难得出答案。
8、下列程序段执行结果是输出(
)。
x=3;
do
{
printf("%2d",x--);
}
while(!x);
x++
和++x
前缀和后缀的问题数上讲了很多。
第一次循环输出3
x的值变成2
!2
为假退出循环
9、以下程序的执行结果是(
)。
#include
#define
N
2
#define
M
N+1
#define
NUM
(M+1)*M/2
main(
)
{
int
I=1,n=0;
while(I<=NUM)
{
n++;
printf("%d",n);
I++;
}
printf("\n");
}
宏展开:
等价于
while(I
<=
(M+1)*M/2
)
等价于
while(I
<=
(N+1+1)*N+1/2
)
等价于
while(I
<=
(2+1+1)*2+1/2
)
等价于
while(I
<=
8
)
10、若I,j已定义为int型,则以下程序段中内循环体"printf("sd\n");"的执行次数是__________。
#include
main(
)
{
int
j,I;
for(I=5;I>=1;I--)
执行5次
for(j=0;j<4;j++)
执行4次
printf("sd\n");
执行5×4
=
20次
}
循环中条件变量x++
和++x
等效
结果我没验证
C语言学习推荐看
point
on
c
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询