}
(1) A)n B)(n)*(n) C)n/10 D)(n/10)*(n/10) (2) A)n/1000 B)n/100 C)n/10 D)n 二、读懂程序,并按照程序的功能将程序补充完整
1、下面程序的功能是用“辗转想除法”求两个正整数的最大公约数。请填空。 #include 2、下面程序的功能是用do-while语句求1至1000之间满足“用3除余2;用5除余3; 用7除余2”的数,且一行只打印五个数。请填空。 #include 3、等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能被4整除 的所有的和。请填空。 #include 第2讲 基础练习(A) 一、 选择题 1、下面有关for循环的正确描述是 (D )。 A) for循环只能用于循环次数已经确定的情况 B) for循环是先执行循环体语句,后判断表达式 C) 在for循环中,不能用break语句跳出循环体 D) for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 2、对for(表达式1;;表达式3)可理解为( B )。 A) for(表达式1;0;表达式3) B) for(表达式1;1;表达式3) C)for(表达式1; 表达式1;表达式3) D)for(表达式1; 表达式3;表达式3) 3、下列说法中正确的是(C )。 A) break 用在switch语句中,而continue 用在循环语句中。 B) break 用在循环语句中,而continue用在switch语句中。 C) break 能结束循环,而continue只能结束本次循环。 D) continue能结束循环,而break只能结束本次循环。 4、以下正确的描述是(B )。 A) continue语句的作用是结束整个循环的执行 B) 只能在循环体内和switch语句体内使用break语句 C) 在循环体内使用break语句或continue语句的作用相同 D) 从多层循环嵌套中退出时,只能使用goto语句 5、若i为整型变量,则以下循环执行次数是(B )。 for(i=2;i==0;) printf(“%d”,i--); A)无限次 B)0次 C)1次 D)2次 6、以下for循环的执行次数是( C )。 for(x=0,y=0;(y=123)&&(x<4);x++) A)是无限循环 B)循环次数不定 C)执行4次 D)执行3次 7、以下不是无限循环的语句为( A )。 A) for(y=0,x=1;x>++y;x=i++) i=x B) for(;;x++=i); C) while(1) { x++; } D) for(i=10;;i--) sum+=i; 8、执行语句for(i=1;i++<4;);后变量i的值是( C )。 A)3 B)4 C)5 D)不定 9、下面程序段( D )。 for(t=1;t<=100;t++) { scanf(“%d”,&x); if(x<0) continue; printf(“=”,t); } A)当x<0时整个循环结束 B)x>=0时什么也不输出 C)printf函数永远也不执行 D)最多允许输出100个非负整数 10、下面程序段( C )。 x=3; do{ y=x--; if(!y) { printf(“x”); continue; } printf(“#”); }while(1<=x<=2); A)将输出## B)将输出##* C)是死循环 D)含有不合法的控制表达式 二、写出下列程序的运行结果 1、 #include else continue; printf(“#”); } printf(“$\\n”); } 2、 #include ###* ##** #*** main() { int i,j; for(i=4;i>=1;i--) { for(j=1;j<=i;j++) putchar(?#?); for(j=1;j<=4-i;j++) putchar(?*?); putchar(?\\n?); } } 3、 #include loop: printf(“%d,%d”,i,k); } 三、编程: 1、求1-3+5-7+ ?? -99+101的值。 解:main() { int i,t=1,s=0; for(i=1;i<=101;i+=2) { t=t*i; s=s+t; t=t>0?-1:1; } printf(\; } 能力提高(B) 一、写出下列程序的运行结果 1、 #include x++; for(j=0;j<=3;j++) { if(j%2) continue; x++; } x++; } printf(“x=%d\\n”,x); } 2、 #include 二、根据程序的功能将程序补充完整 下面程序的功能是求1至1000之间满足“用3除余2;用5除余3;用7除余2”的数,且一行只打印5个数。 #include 1、有一分数序列 2/1,3/2,5/3,8/5,13/8,21/13,…求出这个数列的前20项之和 2、输入n值,输出如图所示高为n的等腰三角形。 * *** ***** ******* ********* *********** 1、参考答案: main() {int n,t,number=20; float a=2,b=1,s=0; for(n=1;n } printf(“s=%9.6f\\n”,s); } 2、参考答案: #include int i,a; for(i=1;i<=10;i++) { scanf(“%d”,&a); if(a%7==0) { printf(“%d”,a); break ; } } if( i==11 ) printf(“not exist\\n”); }