for语句构成的循环结构

文章通过实例解析了for循环结构中的算术运算,包括累加、判断和控制语句的应用,以及它们如何影响程序的执行流程和输出结果。
摘要由CSDN通过智能技术生成

一般形式

for(表达式1;表达式2;表达式3)
表达式一为初始化,表达式二为判断部分,表达式三为调整部分。

判断部分省略的情况

【例1】有以下程序:
#include <stdio.h>
main()
int a =1,b=1;
for(;a–;)b–;
printf(“d,d\n”, a, b);
程序运行后的输出结果是( )。
A)-1,0 B)0,0
C)-1,-1 D)1,1
如果判断部分省略,则printf的输出结果陷入死循环,该题为a–
【解析】题干中语句for(;a–;),条件a–!
=0,先判断a!=0成立,则进入循环,然后a减1,起始a=1不等于0,满足条件进入for循环,然后a自减1为0,b自减1为0,继续循环;再跳回for语句时,a!=0不成立,不会进入循环,但是a也要自减1为-1,循环结束;最后输出a=-1,b=0。因此答案为选项A。
【答案A

执行过程

【例2】有以下程序:
#include <stdio.h>
main()
int a=0,b=0;
for(;a<5;a++)
if(a%2==0) continue;
b+=a;
break;
)
printf(“d \n”,b);
程序运行后的输出结果是( )。
A)1 B)4
C)0 D)10
【解析】for语句中,当a=0时,满足for循环中 f语句的条件,执行continue继续下一次循环,a+1后再进入for语句循环,此时a=1不满足if语句,执行b=b+a为1,接着执行break语句,终止循环,最后输出b=1故答案为选项A。

算术运算

下面展示一些 内联代码片

#include<stdio.h>
int main()
int s,n;
S=0;
for(n=1;n<=100;n++)/*通过循环,产生1~100之间的所有整数*/
s+=n;/*保存所有满足条件的整数的累加和*/
printf("&d\n",s);
)

此类题目在实际考试中会经常出现,只要读者掌握其解题思路,再遇到。此类问题有两个共同特点:
第一是进行一定的算术运算,如累加、累积、求阶乘等;第二是算术表达式中的各项会按照一定的规律进行变化
那么,首先在程序一开始定义两个整型变量。其中==【s用于保存运算结果(累加租】n用于产生1~100的整数,然后通过for语句对所产生的各个整数进行累加,并赋值给变量s,==最后将累加结果通过屏幕显示出来。

#include<stdio.h>
int main()
( int a=1,b=0;
for(;a<5; a++)
if(a%2==0) break;
continue;
b+= a;
printf(“&d \n”,b);
)
程序运行后的输出结果是( )。
A)0 B)1
C)10 D)4
【解析】题干中 for 循环有break和continue语句,且均放在b+=a语句前面,无论if条件是否满足,b+=a都不会被执行,因此b值始终为0,答案为选项A。
【答案】A

难题

【例4】以下程序段中的变量已正确定义:
for(i=0;i<4;i++,i++)
for(k=1;k<3;k++);
printf("");
程序段的输出结果是( )。
A)** B)
***
C)* D)***
【解析】由于内层循环for(k=1;k<3;k++)后面直接跟了空语句“;”,所以在循环内部什么操作也不做,跳出外层循环后执行打印语句,所以打印了一个“*”,答案为选项C。
【答案】C
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值