二级C语言-循环结构、数组(一)

合集下载

C语言全国计算机二级等级考试教程第一二章(章节带习题)

C语言全国计算机二级等级考试教程第一二章(章节带习题)
10
2.2 标识符、常量和变量
2.2.3 符号常量
在C语言中,可以用一个符号名来代表一个常量,称为符号常
量。但是这个符号名必须在程序中用(#define)进行特别的“
指定"。 例2.2 计算圆面积和周长,此程序中将如何教大家使用符号常量。
#include “stdio.h” /*包含头文件*/
#define PI 3.14159 /*定义符号常量,符号常量名为PI,用PI来代表3.14159*/
main()
/*主函数,程序的入口*/
{double r,s,l;
/*声明部分,定义了3实型个变量*/
r
r=5.0;
/*给变量r赋值*/
函 s=PI*r*r;
数 体
l=2*PI*r;
/*计算圆的面积*/ /*计算圆的周长*/
s
printf(“s=%f,l=%f\n”,s,l/)*;分别圆的面积和周长*/
/*给变量b赋值*/
数 体
area=a*b;
/*将a*b的结果赋值给变量area*/
printf(“a=%f,b=%f,area=%f\n”,a,b,area/)*;分别输出矩形的两条边长和面积*/
1.2
}
3.6
a=1.200000,b=3.600000,area=4.320000
4.32
注意:
1. C程序由函数组成,一个程序必须有一个且只能有一个主函数(main),C程
a
b
1.5000002.500000 2.5000003.500000
a b
内存空间
2.在程序中,声明变量就是在计算机内存中申请了某个内存单元。对变量 进行赋值,实质上就是把数据存入该变量所代表的存储单元中。

计算机等级二级C语言模拟试题1(五)

计算机等级二级C语言模拟试题1(五)

⼀、选择题((1)~(10)每⼩题2分,(11)~(50)每⼩题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有⼀个选项是正确的,请将正确选项涂写 在答题卡相应位置上,答在试卷上不得分。

(1)算法⼀般都可以⽤________控制结构组合⽽成。

A)循环、分⽀、递归 B)顺序、循环、嵌套 C)循环、递归、选择 D)顺序、选择、循环 答案:D 评析:算法的控制结构给出了算法的基本框架,不仅决定了算法中各操作的执⾏顺序,也直接反映了算法的设计是否符合结构化原则。

⼀个算法⼀般都可以⽤顺序、选择、循环三种基本控制结构组合⽽成。

(2)数据的存储结构是指________。

A)数据所占的存储空间量 B)数据的逻辑结构在计算机中的表⽰ C)数据在计算机中的顺序存储⽅式 D)存储在外存中的数据 答案:B 评析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构。

(3)设有下列⼆叉树: 对此⼆叉树中序遍历的结果为________。

A)ABCDEF B)DBEAFC C)ABDECF D)DEBFCA 答案:B 评析:中序遍历是指⾸先遍历左⼦树,然后访问根结点,最后遍历右⼦树;并且在遍历左、右⼦树时,仍然先遍历左⼦树,然后访问根结点,最后遍历右⼦树的⼀种⼆叉树遍历算法。

(4)在⾯向对象⽅法中,⼀个对象请求另⼀对象为其服务的⽅式是通过发送________。

A)调⽤语句 B)命令 C)⼝令 D)消息 答案:D 评析:⾯向对象的世界是通过对象与对象间彼此的相互合作来推动的,对象间的这种相互合作需要⼀个机制协助进⾏,这样的机制称为消息。

消息是⼀个实例与另⼀个实例之间传递的信息,它请求对象执⾏某⼀处理或回答某⼀要求的信息,它统⼀了数据流和控制流。

(5)检查软件产品是否符合需求定义的过程称为________。

A)确认测试 B)集成测试 C)验证测试 D)验收测试 答案:A 评析:确认测试的任务是验证软件的功能和性能及其他特性是否满⾜了需求规格说明中的确定的各种需求,以及软件配置是否完全、正确。

c语言数组1

c语言数组1
1、循环30次
① 输入->x ② s+x->s 2、算平均分ave 3、循环30次
数组
1.能保存所有的数据 2.能用循环结构处理数据
① 输入->x
② 如果x>ave 输出x。
定义 有序数据的集合 特点 所有元素类型相同 要素 数组名 下标
第五章
5.1 5.2 5.3 5.4
数组
一维数组 二维数组 字符型数据 数组常用算法举例
4
5 6
5
4 3
7
8 9
2
1 0
算法: for(i=0;i<n/2;i++) { t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; }
例2 产生n个[0,70]之间的随机整数,并 按逆序重放在数组中。(n<50)
#include "stdlib.h" main( ) { int a[50], t, n, i; scanf("%d", &n); randomize(); for(i=0;i<n;i++) { a[i]=random(71); printf("%5d",a[i]); } printf("\n"); for(i=0;i<=n/2-1;i++) { t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; } for(i=0;i<n;i++) printf("%5d",a[i]); }
21 0
34 0
55 0
.........
f[2]=f[1]+f[0]; f[3]=f[2]+f[1]; f[i]=f[i-1]+f[i-2];

二级C语言复习课件

二级C语言复习课件
2.1 C程序的数据类型—基本数据类型的存储长度
类型 整型
实型 字符型
关键字 int short long
float double char
字节数 位数
数的表示范围
2
16 -32768—32767
2
16 -32768—32767
4
32 -2147483648—
2147483647
4
32 3.4e-38—3.4e38
判断一个表达式是否真: 0代表“假”, 非0代表
条“件真表”达式
逗号表达式
表达式1?表达式2 :表达式3
k=5>6 ? 1:0
•15
计算机与信息工程分院
2 基本数据类型与运算(10)
2.4 混合运算的数据类型转换
C语言程序设计
①整型变量与实型变量之间的转换 ②不同精度实型变量之间的转换 ③不同精度整型变量之间的转换
C语言程序设计
例如: int max(int x,int y) {int z; z=x>y?x:y; return(z);}
类型标识符 函数名(形式参数表列) { 声明部分
语句 }
•30
计算机与信息工程分院
7 函数(3)
C语言程序设计
7.2 局部变量和全局变量 省略的标识符为auto
float f1(int a)
(类型)
分量运算符
. ->ห้องสมุดไป่ตู้
下标运算符
[]
其他
如函数调用运算符( )
•12
计算机与信息工程分院
C语言程序设计
2 基本数据类型与运算(7)
2.3 基本运算和表达式—运算符的优先级
< <= > >= == !=

国家二级C语言选择结构循环结构机试模拟试卷1_真题(含答案与解析)-交互

国家二级C语言选择结构循环结构机试模拟试卷1_真题(含答案与解析)-交互

国家二级C语言(选择结构、循环结构)机试模拟试卷1(总分66, 做题时间90分钟)1. 选择题1.下列选项中,当x为大于1的奇数时,值为0的表达式是( )。

SSS_SINGLE_SELA x%2==0B x/2C x%2!=0D x%2==1分值: 2答案:A解析:算术运算符的优先级高于关系运算符的优先级,所以当x为大于1的奇数时,A选项的值为假,即0。

B选项的值为不定值,但绝对不是O。

C选项的值为真,即1。

D选项的值为真,即1。

2.若a是数值类型,则逻辑表达式(a==1)‖(a!=1)的值是( )。

SSS_SINGLE_SELA 1B 0C 2D 不知道a的值,不能确定分值: 2答案:A解析:逻辑或“‖”要求只要两边的运算对象有一个非零,结果就为真。

虽然不知道a的值,但是若a为l,则左边运算对象为1;若a的值不是l,则右边运算对象的值为1,所以总能保证一边非零。

3.当变量e的值不为2、4、6时,值为“真”的表达式是( )。

SSS_SINGLE_SELA (c>=2&&e<=6)&&(c%2 1=1)B (c==2)‖(c==4)‖(c==6)C (c>=2&&c<=6)&&!(c%2)D (c>=2&&c←6)‖(c!=3)lI(c!=5)分值: 2答案:D解析:逻辑或运算符中只要有一个运算量为真,结果就是真,当c>=2&&c<=6条件不成立时,c的值肯定不是2、3、4、5、6,所以c!:3与c!:5均成立,所以D选项的结果一定为真。

4.有以下程序: #include main() { int a=1,b=2,c=3,d=0;if(a==1&&b++==2) if(b!=2‖c一!=3) prinff(“%d,%d,%d\n”,a,b,c);else prinff(“%d,%d,%d\n”,a,b,c);else prinff(“%d,%d,%d\n”,a,b,c); } 程序的运行结果是( )。

计算机二级考试C语言例题(1)

计算机二级考试C语言例题(1)

第一套给定程序的功能是:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:圆面积公式为:2,在程序中定义的变量名要与公式的变量相同)。

例如,输入圆的半径值:19.527,输出为:s=598.949991。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。

试题程序:#include <stdio.h>double fun( double r){return 3.14159*【1】/2.0;}void main(){double x;printf("Enter x: ");scanf("%lf",【2】);printf("s=%lf\n",fun(【3】));}【参考答案】 (1)r*r (2)&x (3)x【考点分析】本题考查:圆面积计算公式*r*r;scanf( )函数的形式,其一般形式为"scanf("格式控制字符串",地址表列);",注意地址是由地址运算符"&"后跟变量名组成的;printf( )函数的形式,其一般形式为"printf("格式控制字符串",输出表列);";函数实参调用,函数作为另一个函数调用的实际参数出现。

【解题思路】填空1:计算圆的面积,公式为:*r。

填空2:scanf( )函数一般形式为scanf(格式控制,地址表列),因此填入&x。

填空3:函数的实际参数是圆的半径x。

下列给定程序中,函数fun的功能是:计算S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…f(n)的值。

例如,当n为5时,函数值应为10.407143。

f(x)函数定义如下:f(x)=请改正程序中的错误,使它能得出正确的结果。

C语言)二级考复习资料(1)

C语言)二级考复习资料(1)

1. 下述循环的循环次数是()int k=2;while(k=0)printf("%d",k);k--;printf("\n");A、无限次B、0次C、1次D、2次2. 在下列选项中,没有构成死循环的程序段是()A、int i=100;B、for(;;)while(1){i=i%100+1;if(i>100)break;}C、int k=1000;D、int s=36;do {++k;} while(k>=10000);while(s);--s;3. 若有以下定义和语句,且0<=i<10,则对数组元素的错误引用是()int a[]={0,1,2,3,4,5,6,7,8,9},*p,i;p=a;A、*(a+i)B、a[p-a]C、p+iD、*(&a[i])4. 下面能正确将字符串"Boy"进行完整赋值操作的语句是()A、char s[3]={'B','o','y'};B、char s[ ]="Boy";C、char s[3]={"Boy"};D、char s[3];s[0]='B';s[1]='o';s[2]='y';5. 以下程序段的输出结果是()char arr[ ]="ABCD";char*ptr;for(ptr=arr;ptr<arr+4;ptr++)printf("%s\n",ptr);A、ABCDB、AC、DD、ABCDBCDCDD6. C语言的auto型变量是()A、存储在动态存储区中。

B、存储在静态存储区中。

C、存储在计算机CPU的寄存器中。

D、存储在外存储器中。

7. 测试文件是否结束函数的函数名是()A、feofB、EOFC、eofD、FEOF8. 下面程序段的输出结果是()int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[4];p=a;printf(“%d\n”,*(*(p)+2));A、1B、5C、3D、79. C语言规定:在一个源程序中,main函数的位置是()A、必须在最开始B、必须在系统调用的函数的后面C、可以任意D、必须在最后10. 一个C程序的执行是从()A、本程序的main函数开始,到main函数结束B、本程序的第一个函数开始,到本程序文件的最后一个函数结束C、本程序的main函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序main函数结束11. 下面的四个选项中,均是不合法的用户标识符的选项是()A、AB、floatC、b-aD、_123P_0 la0 goto tempdo _A int INT12. 下面四个选项中,均是合法转义字符的选项是()A、’\’B、’\’C、’\018’D、’\\0’‘\\’‘\017’‘\f’‘\101’‘\n’‘\”’‘xab’‘x1f’13. sizeof(float)是()A、一个双精度型的表达式B、一个整型表达式C、一种函数调用D、一个不合法的表达式16. 若二维数组a有m列,则在a[i][j]前的元素个数为()A、j*m+iB、i*m+jC、i*m+j-1D、i*m+j+117. 对两个数组a和b进行如下初始化char a[ ]=”ABCDEF”;char b[ ]={‘A’,’B’,’C’,’D’,’E’,’F’};则以下叙述正确的是()A、a与b 数组完全相同B、a 与b 长度相同C、a 和b中都存放字符串D、a数组比b 数组长度长18. C语言中有关全局变量的说法,正确的是()A、在使用到它的所有文件中均需定义B、在函数体外定义一次C、在main函数中定义E、在main函数外定义19. 若有数组名作为函数调用时的实参,则传递给该函数形参的是()A、数组的首地址B、数组的第一个元素的值C、数组中全部元素的值D、数组元素的个数20. 下面程序段的输出结果是()int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*p)[3];p=a;printf(“%d\n”,*(*(p+1)+2));A、3B、4C、6D、721. 不属于C语言程序基本结构的是( )A)顺序结构B)选择结构C)函数结构D)循环结构22. 若有定义及赋值:int a[6][6],*p;p=*a;则下列各式中能表示元素a[1][0]行地址的表达式是。

全国计算机二级考试C语言(最全复习资料)

全国计算机二级考试C语言(最全复习资料)

第一部分 C语言知识复习资料第一章C语言基本知识【考点1】C程序用C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c”。

源程序经编译后生成后缀名为“.obj”的目标文件,再把目标文件与各种库函数连接起来,生成“.exe”可执行文件。

C语言有三种基本结构:顺序结构、选择结构、循环结构。

【考点2】main函数又称主函数,是C程序的入口。

main后面跟一对小括号和一对花括号,花括号括起来的部分称为main 函数的函数体。

一个C程序从main函数开始执行,到main函数体执行完结束,而不论main函数在整个程序中的位置如何。

每一个程序有且仅有一个main函数,其他函数都是为main函数服务的。

【考点3】存储形式计算机在电脑中保存数据是采用二进制形式,由0或1构成的二进制称为位(bit),八个位构成一个字节(Byte),1个Byte=8个bit。

二进制、八进制、十六进制转化为十进制采用乘法,十进制转化为二进制、八进制、十六进制采用除法。

数据的存放位置就是它的地址。

【考点4】注释是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行,注释不可以嵌套。

【考点5】书写格式每条语句的后面必须有一个分号,分号是语句的一部分。

一行内可写多条语句,一个语句可写在多行上。

【考点6】标识符是标识名字的有效字符序列,可以理解为C程序中的单词。

标识符的命名规则是:(1)标识符只能由字母、数字和下划线组成,字母区分大小写。

(2)标识符的第一个字符必须是字母或下划线,不能为数字。

C语言标识符分如下3类(1)关键字。

它们在程序中有固定的含义,不能另作他用。

如int、for、switch等。

(2)预定义标识符。

预先定义并具有特定含义的标识符。

如define、include等。

(3)用户标识符。

用户根据需要定义的标识符,符合命名规则且不与关键字相同。

【考点7】常量与变量常量是指在程序运行过程中,其值不能改变的量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二级C语言-循环结构、数组(一)(总分:100.00,做题时间:90分钟)一、{{B}}选择题{{/B}}(总题数:40,分数:100.00)1.在下列选项中,没有构成死循环的是______。

∙ A. int i=100; while(1) { i=i % 100+1; if(i>100) break; }∙ B. for(;;)∙ C. int k=10000; do{k++;}while(k>10000);∙ D. int s=36; while(s) --s;(分数:2.50)A.B.C.D. √解析:[解析] 选项A的循环表达式的条件永为1,并且小于100的数与100取余不超过99,所以在循环体内表达式i%100+1的值永远不会大于100,break语句永远不会被执行,所以是死循环;选项B的括号内没有能使循环停下来的变量增量,是死循环。

选项C中先执行k++,使k=10001,从而使循环陷入死循环。

2.以下程序的输出结果是______。

int n=10;while(n>7){ n--;printf("% d#", n);}∙ A.10 9 8∙ B.9 8 7∙ C.10 9 8 7∙ D.9 8 7 6(分数:2.50)A.B. √C.D.解析:[解析] 以上程序段只包含了一个while循环,循环的控制表达式是n>7,只要n的值大于7,循环体就不断执行。

在进入循环时,n的值为10。

循环体内只有两条语句,每循环一次,首先n的值减1,然后输出n的值;由于n的初值为10,所以执行循环中的n--; 后, n的值依次为9、8、7,并进行输出,printf 每执行一次就在最后输出一个空格。

当n的值为7时,while的控制表达式n>7的值已为0,因此退出循环。

3.有以下程序:#include <stdio.h>main(){ int i=5;{ if(i % 3==1)if(i % 5==2){ printf("* % d", i); break}i++;} while(i !=0);printf("/n");}程序的运行结果是______。

∙ A.*7∙ B.*3*5∙ C.*5∙ D.*2*6(分数:2.50)A. √B.C.D.解析:[解析] 整个程序中只有时i增加的语句没有对i减少的语句,所以2、3都不可能出现,选项B和D错误。

而i=5时第一个if语句的表达式为假,所以选项C也错误。

4.若变量已正确定义,有以下程序段:i=0;do printf("% d,", i); while(i++);printf("% d/n", i);其输出结果是______。

∙ A.0,0∙ B.0,1∙ C.1,1∙ D.程序进入无限循环(分数:2.50)A.B. √C.D.解析:[解析] 对于do...while循环,程序先执行一次循环体,再判断循环是否继续。

本题先输出一次i 的值“0”,再接着判断表达式i++的值,其值为0,所以循环结束。

此时变量i的值经过自加已经变为1,程序再次输出i的值“1”。

5.以下叙述正确的是______。

∙ A.do...while语句构成的循环不能用其他语句构成的循环代替∙ B.只有do...while语句构成的循环能用break语句退出∙ C.用do...while语句构成循环时,在while后的表达式为零时不一定结束循环∙ D.用do...while语句构成循环时,在while后的表达式为零时结束循环(分数:2.50)A.B.C.D. √解析:[解析] do...while语句构成的循环可以用其他语句构成的循环来代替。

但要注意,for和while语句构成的循环,循环体是否执行取决于时循环控制条件的设置;而do...while构成的循环不管循环控制的条件如何设置,循环体总要执行一次。

无论是哪种循环,break语句都可以退出循环。

用do...while语句构成的循环和while语句构成的循环一样,都是在while后的表达式为零时结束循环,非零时循环继续。

6.有以下程序:#include <stdio.h>main(){ int y=9;for(; y>0; y--)if(y % 3==0) printf("% d", --y);}程序的运行结果是______。

∙ A.7 4 1∙ B.9 6 3∙ C.8 5 2∙ D.8 7 5 4 2 1(分数:2.50)A.B.C. √D.解析:[解析] 本题考查for循环和自加“++”、自减“--”的问题。

当y的值为9、6或3时,if语句的条件成立,执行输出语句,输出表达式--y的值,y的自减要先于输出语句执行,故输出结果为8 5 2。

7.以下程序的输出结果是______。

#include <stdio.h>main(){ int i, sum;for(i=1; i<6; i++)sum+=sum;printf("% d/n", sum);}∙ A.15∙ B.14∙ C.不确定∙ D.0(分数:2.50)A.B.C. √D.解析:[解析] 本题中包含一个for循环,循环变量由1变化到5,所以其循环体执行5次。

for循环体内只有一条语句“sum+=sum;”,它相当于“sum=sum+sum;”,此表达式的值只与变量sum有关,并执行5次。

观察sum的值,可以发现程序没有给它赋初值,因此在第一次执行sum+sum时,sum的值是不确定的;在运行此程序时,系统会给出警告信息,提示用户:sum在使用前没有确定的值。

8.若x是int型变量,以下程序的输出结果是______。

for (x=3; x<6; x++)printf((x% 2)? ("* * % d/n"):(" ##% d/n"), x);∙ A. * *3##4* *5∙ B.##3* *4##5∙ C. ##3 * *4 ##5∙ D. * *3 ##4 * *5(分数:2.50)A.B.C.D. √解析:[解析] 以上for循环的循环控制变量x的值依次为3、4、5,因此循环体执行3次。

也就是说,循环体中的printf语句进行3次输出。

调用printf进行输出时,其后面的括号中的第一项应当是一个格式控制字符串。

在本题的printf()函数调用中,第一项似乎是一个条件表达式,但进一步分析可知,在?号之前“表达式1”的值无论是1还是0,此条件表达式的值总是一个字符串,或者为“* *d”,或者为“##%d/n”,因此是符合printf()函数调用的语法的。

根据以上分析,当x的值为奇数时,使(x%2)的值为1,输出所用的格式串是“* *%d”;当x的值为偶数时,(x%2)的值为0,输出所用的格式串是“##%d/n”。

已知X的值是3、4、5,当x的值为3时,输出* *3,且不输出换行符,接着输出##4,输出一个换行符,最后当x的值为5时,从新的一行开始输出* *5,然后退出循环。

9.设i和x都是int类型,则以下for循环语句______。

for(i=0, x=0; i<=9&ax!=876; i++) scanf("% d", x);∙ A.最多执行10次∙ B.最多执行9次∙ C.是无限循环∙ D.循环体一次也不执行(分数:2.50)A. √B.C.D.解析:[解析] 此题中for循环的执行次数取决于关系表达式(i=0, x=0; i<=9&&x!=876; i++)的结果。

只要i<=9且x!=876,循环就将继续执行。

结束循环取决于两个条件:或者i>9,或者x=876。

只要在执行scanf语句时,从终端输入876,循环就将结束。

如果从终端一直未输入876,则i值的增加使i>9,从而结束循环。

按照题中所给定的for语句,每执行一次循环,i自动增1,因此执行10次循环后,i的值为10,循环最终也将结束。

10.以下for循环语句______。

int i, k ;for(i=0, k=-1; k=1; i++, k++)printf("* * *");∙ A.判断循环结束的条件非法∙ B.是无限循环∙ C.只循环一次∙ D.一次也不循环(分数:2.50)A.B. √C.D.解析:[解析] 本例的关键是赋值表达式k=1。

由于表达式2是赋值表达式k=1,为真,因此执行循环体,使k增1,但循环再次计算表达式2时,又使k为1,如此反复循环。

11.以下是计算n!值的程序,空格处应选______。

#include <stdio.h>main(){ int i, s, n;s=1;printf("Enter n:");scanf("% d", &n);for(i=1; i<=n; i++)______;printf("s=% d", s);}∙ A.s=s*i∙ B.s*i∙ C.s=s+i∙ D.s+i(分数:2.50)A. √B.C.D.解析:[解析] 以上程序是典型的连乘算法。

与累加一样,连乘也是程序设计中基本的算法之一,程序中i 从1变化到n,每次增1。

在循环体内应该有一个能表达连乘的式子。

变量s的初值为1,可以用此变量存放每次i增1后连乘的结果。

在上述空格处填上s=s*i就可以满足要求。

12.以下程序的输出结果是______。

#include <stdio.h>main(){ int x, i;for(i=1; i<=100; i++){ x=i;if(++x% 2==0)if(++x% 3==0)if(++x% 7==0)printf("% d", x);}printf("/n");}∙ A.3981∙ B.4284∙ C.2668∙ D.2870(分数:2.50)A.B.C.D. √解析:[解析] for循环的循环控制变量i由1变化到100,循环体将执行100次。

循环体每执行一次,首先把i的值赋给了x,即在循环的过程中,x的值由1变化到100。

接着执行了一条嵌套的if语句,在各层的条件表达式中,x的值在增1后,如果满足了指定的条件,才能执行到最内层的printf语句。

在执行最外层的if语句时,若条件表达式++x%2==0的值为1,这时的x中的值为偶数。

执行第二层if语句时,若条件表达式++x%3==0的值为1,这时的x中的值必定是上述偶数加1后能被3除尽的奇数,这些数是3,9,15,21,27,33,39,45,51,57,63,69,75,81,87,93,99。

相关文档
最新文档