160 C语言程序设计上机指导与同步训练 int r, m,n scanf(w告dd”,m,&n); man: nr: r printf(3d\n”,n) 2.下面程序的功能是用do- while语句求1至1000之间满足“用3除余2:用5除余3 用7除余2”的数,且一行只打印5个数,请填空 #include <stdio. h> main() int i=l,j=0; if( printf(”4d”,i); j=j+1; ) printf(“n") }whi1e(i<1000); 3.等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能被4 整除的所有的和,请填空。 #include <stdio. h> main( int a, d. sum a=2: d=3, sum=( sum+=a ) printf("sdn”,sum); While(sum<200 三、编程题 1.从键盘输入任意的字符,按下列规则进行分类计数。 第一类v0y,"1,"2,3,"4,"5,6,"7","8,9 第三类其他字符 当输入字符时先计数,然后停止接收输入,打印计数的结果 2.求解爱因斯坦数学题。有一条长阶梯,若每步跨2阶,则最后剩余1阶,若每步跨 3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶,若每
·160· C 语言程序设计上机指导与同步训练 ·160· int r,m,n; scanf(“%d %d”,&m,&n); if(m<n) ; r=m%n; while(r) { m=n; n=r; r= ; } printf(“%d\n”,n); } 2. 下面程序的功能是用 do-while 语句求 1 至 1000 之间满足“用 3 除余 2;用 5 除余 3; 用 7 除余 2”的数,且一行只打印 5 个数,请填空。 #include <stdio.h> main() { int i=1,j=0; do{ if( ) { printf(“%4d”,i); j=j+1; if( ) printf(“\n”); } i=i+1; }while(i<1000); } 3. 等差数列的第一项 a=2,公差 d=3,下面程序的功能是在前 n 项和中,输出能被 4 整除的所有的和,请填空。 #include <stdio.h> main() { int a,d,sum; a=2; d=3; sum=0; do{ sum+=a; ; if( ) printf(“%d\n”,sum); }while(sum<200); } 三、编程题 1. 从键盘输入任意的字符,按下列规则进行分类计数。 第一类 '0','1','2','3','4','5','6','7','8','9' 第二类 '+','-','*','/','%','=' 第三类 其他字符 当输入字符'\'时先计数,然后停止接收输入,打印计数的结果。 2. 求解爱因斯坦数学题。有一条长阶梯,若每步跨 2 阶,则最后剩余 1 阶,若每步跨 3 阶,则最后剩 2 阶,若每步跨 5 阶,则最后剩 4 阶,若每步跨 6 阶则最后剩 5 阶,若每
第二部分¢语言程序设计同步训练 161 步跨7阶,最后才正好一阶不剩。请问,这条阶梯共有多少阶? 分析:据题意,阶梯数满足下面一组同余式 x mod 2==1 x mod 6==5 x mod 7==0 3.从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结 束输入。 第2讲 知识归纳 f。or语句 for循环的一般形式:for(表达式1,表达式2;表达式3) 语句} (1)for语句中的三个表达式,对应循环中的三要素: 表达式1——循环变量的初值 表达式2——循环结束的条件 表达式3——循环趋于结束语句。 (2)for语句中的三个表达式,可以变换位置,但功能不变 如:表达式1; for(;表达式2,表达式3) 语句} for(表达式1;表达式2,) 表达式3 语句} for(表达式1;;表达式3) if!(表达式2) break; 语句} 表达式1 for(;表达式2,) 表达式3 语句}
第二部分 C 语言程序设计同步训练 ·161· ·161· 步跨 7 阶,最后才正好一阶不剩。请问,这条阶梯共有多少阶? 分析:据题意,阶梯数满足下面一组同余式 x mod 2==1 x mod 3==2 x mod 5==4 x mod 6==5 x mod 7==0 3. 从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结 束输入。 第 2 讲 知识归纳 1. for 语句 for 循环的一般形式: for ( 表达式 1; 表达式 2; 表达式 3 ) { 语句 } (1) for 语句中的三个表达式,对应循环中的三要素: 表达式 1——循环变量的初值; 表达式 2——循环结束的条件; 表达式 3——循环趋于结束语句。 (2) for 语句中的三个表达式,可以变换位置,但功能不变: 如:表达式 1; for ( ; 表达式 2; 表达式 3 ) { 语句 } for ( 表达式 1; 表达式 2; ) { 表达式 3 ; 语句 } for ( 表达式 1; ; 表达式 3 ) { if ! (表达式 2) break ; 语句 } 表达式 1 ; for ( ; 表达式 2; ) { 表达式 3 ; 语句 }
C语言程序设计上机指导与同步训练 2.循环的嵌套 种循环可以互相嵌套 3. break和 continue (1) break语句作用:强行终止循环,转到循环体下面语句去执行。 (2) continue语句作用:结束本次循环,再去判断条件,根据条件决定循环是否继续 执行 二者区别: continue只是结束本次循环,而不是终止整个循环的执行。 break则是结束整个循环过程,不再判断执行循环的条件是否成立。 另外: continue只能用于循环体中,而 break即可用于循环体中,还可用于 switch语 句中。 基础训练(A 、选择题 1.下面有关for循环的正确描述是() A)for循环只能用于循环次数已经确定的情况 B)for循环是先执行循环体语句,后判断表达式 C)在for循环中,不能用 break语句跳出循环体 D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 2.对for(表达式1;表达式3)可理解为()。 A)for(表达式1,0,表达式3) B)for(表达式1;1;表达式3) C)for(表达式1;表达式1;表达式3) D)for(表达式1;表达式3表达式3) 3.下列说法中正确的是() A) break用在 witch语句中,而 continue用在循环语句中 B) break用在循环语句中,而 continue用在 switch语句中 C) break能结束循环,而 continue只能结束本次循环。 D) continue能结束循环,而 break只能结束本次循环 以下正确的描述是() A) continue语句的作用是结束整个循环的执行 B)只能在循环体内和 switch语句体内使用 break语句 C)在循环体内使用 break语句或 continue语句的作用相同 D)从多层循环嵌套中退出时,只能使用goto语句 5.若i为整型变量,则以下循环执行次数是()。 for(i-2; i==0, printf( -%d", i--; A)无限次 B)0次 1次 D)2次 6.以下for循环的执行次数是() for(x=0,y=0:(y=123)&&(x<4)x++)
·162· C 语言程序设计上机指导与同步训练 ·162· 2. 循环的嵌套 三种循环可以互相嵌套。 3. break 和continue (1) break 语句作用:强行终止循环,转到循环体下面语句去执行。 (2) continue 语句作用:结束本次循环,再去判断条件,根据条件决定循环是否继续 执行。 二者区别:continue 只是结束本次循环,而不是终止整个循环的执行。 break 则是结束整个循环过程,不再判断执行循环的条件是否成立。 另外:continue 只能用于循环体中,而 break 即可用于循环体中,还可用于 switch 语 句中。 基础训练(A) 一、选择题 1. 下面有关 for 循环的正确描述是( )。 A) for 循环只能用于循环次数已经确定的情况 B) for 循环是先执行循环体语句,后判断表达式 C) 在 for 循环中,不能用 break 语句跳出循环体 D) for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 2. 对 for(表达式 1;;表达式 3)可理解为( )。 A) for(表达式 1;0;表达式 3) B) for(表达式 1;1;表达式 3) C) for(表达式 1; 表达式 1;表达式 3) D) for(表达式 1; 表达式 3;表达式 3) 3. 下列说法中正确的是( )。 A) break 用在 switch 语句中,而 continue 用在循环语句中。 B) break 用在循环语句中,而 continue 用在 switch 语句中。 C) break 能结束循环,而 continue 只能结束本次循环。 D) continue 能结束循环,而 break 只能结束本次循环。 4. 以下正确的描述是( )。 A) continue 语句的作用是结束整个循环的执行 B) 只能在循环体内和 switch 语句体内使用 break 语句 C) 在循环体内使用 break 语句或 continue 语句的作用相同 D) 从多层循环嵌套中退出时,只能使用 goto 语句 5. 若 i 为整型变量,则以下循环执行次数是( )。 for(i=2;i==0;) printf(“%d”,i--); A) 无限次 B) 0 次 C) 1 次 D) 2 次 6. 以下 for 循环的执行次数是( )。 for(x=0,y=0;(y=123)&&(x<4);x++)