循环结构
一、选择
1、以下程序段(C)。
x=-1; do { x=x*x; } while (!x); A)是死循环 B)循环执行两次 C)循环执行一次 D)有语法错误
2、对下面程序段描述正确的是(B)。
int x=0,s=0; while (!x != 0) s+=++x; printf(\"%d\A) 运行程序段后输出0 B) 运行程序段后输出1
C) 程序段中的控制表达式是非法的 D) 程序段循环无数次
3、下面程序的运行结果是(B)。
#include 4、函数pi的功能是根据以下近似公式求π值:(C)。 (π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n) 请填空,完成求π的功能。 #include 5、下面程序段的运行结果是(B)。 for(x=10;x>3;x--) { if(x%3) x--; --x; --x; printf(\"%d \ } A) 6 3 B) 7 4 C) 6 2 D) 7 3 6、有如下程序 #include A) 321 B) 23 C) 不输出任何内容 D) 陷入死循环 7、以下程序段的执行结果是(C)。 int i,j,m=0; for(i=1;i<=15;i+=4) for(j=3;j<=19;j+=4) m++; printf(\"%d\\n\A) 12 B) 15 C) 20 D) 25 8、下面程序的输出结果是(A)。 #include 9、有如下程序 #include A) 6 B) 3 C) 死循环 D) 0 10、在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为(B)。 #include 11、下面程序是计算n个数的平均值,请填空(B)。 #include 12、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空(D)。 #include if (i>100) break; } C) int k=1000; D) int s=36; do {++k;} while (k>=1000); while (s) --s; 14、下面程序段中,循环体的执行次数是(C)。 int a=10,b=0; do {b+=2;a-=2+b;} while(a>=0); A) 4 B) 5 C) 3 D) 2 15、对于for(表达式1;;表达式3)可理解为(B)。 A) for(表达式1;0;表达式3) B) for(表达式1;1;表达式3) C) for(表达式1;表达式1;表达式3) D) for(表达式1;表达式3;表达式3) 16、以下程序段的输出结果是(C)。 int k,n,m; n=10;m=1;k=1; while (k<=n) {m*=2;k+=4;} printf(\"%d\\n\A) 4 B) 16 C) 8 D) 32 17、下面程序的输出结果是(D)。 #include 18、有如下程序 #include A) 987 B) 876 C) 8765 D) 9876 19、以下程序运行后的输出结果是(D)。 #include 20、下面程序的输出结果是(D)。 int main( ) { int i,k=0, a=0, b=0; for(i=1;i<=4;i++) { k++; if (k%2==0) {a=a+k; continue;} b=b+k; a=a+k; } printf(\"k=%d a=%d b=%d\\n\return 0; } A) k=5 a=10 b=4 B) k=3 a=6 b=4 C) k=4 a=10 b=3 D) k=4 a=10 b=4 21、关于break语句的正确说法是(A)。 A)switch-case中可根据需要使用或不使用break语句 B)while循环中的break语句可结束本次循环, 继续下一次循环 C)do-while循环中不允许使用break语句 D)for循环中必须使用break语句来结束循环 22、与以下程序段功能等价的赋值语句是(B) s=a; for(b=1;b<=c;b++) s=s+1; A)s=a+b; B)s=a+c; C)s=s+c; D)s=b+c; 23、以下循环体的执行次数是(A ) int main() { int i,j; for(i=0,j=1;i<=j+1;i+=2,j--) printf(“%d\\n”,i); return 0; } A)1 B)3 C)2 D)0 24、语句while (!e);中的条件!e等价于(A) A) e==0 B) e!=1 C)e!=0 D) ~e 25、下面有关for循环的正确描述是( D) A)for循环只能用于循环次数已经确定的情况 B)for循环是先执行循环体语句,后判定表达式 C)在for循环中,不能用break语句跳出循环体 D)for循环体语句中,可以包含多条语句,但要用花括号括起来 26、C语言中( D) A)不能使用do-while语句构成循环 B)do-while语句构成的循环必须用break语句才能退出 C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环 27、C语言中while和do-while循环的主要区别是( A) A)do-while的循环体至少无条件执行一次 B)while的循环控制条件比do-while的循环控制条件严格 C)do-while允许从外部转到循环体内 D)do-while的循环体不能是复合语句 28、以下程序段( C) int x=-1; do { x=x*x; } while (!x); A)是死循环 C)循环执行一次 B)循环执行二次 D)有语法错误 二、填空 1、C语言中用于实现循环的三种语句是for, while, do-while。 2、以下程序的运行结果是 S=7。 #include 三、判断 1、while语句的循环体至少执行一次。F 2、do-while语句的循环体至少执行一次。T 3、只用三种基本结构就可以表示任何复杂的算法。T 四、程序填空 1、下面程序的功能是输出1到100之间数位上数字的乘积大于数位上数字之和的数。例如数字26,数位上数字的乘积12大于数字之和8。请在空白处填写适当内容, 完成程序。 #include { int n, k=1, s=0,m; for (n=1; ⑥ ;n++) { k=1; s=0; ⑦ while ( ⑧ ) { k*=m%10; s+=m%10; ⑨ ; } if ( ⑩ ) printf(\"n=%d\\n\ } return 0; } 参考解答:(6)n<=100(7)m=n (8) m 或 m!=0 (9) m/=10 (10) k>s 2、下面函数的功能是用于计算: f(n)完成程序。 1111...请在空白处填写适当内容, n2482, #include double f(int n) { double y, p; int k, s; y = 0.0; p = ⑥ ; k = 1; while ( ⑦ ) { y = ⑧ ; k++; p = ⑨ ; } return ⑩ ; (6)0.5或 2(7)k<=n (8) y+p 或 y+1.0/p (9) p/2或2*p (10) y 3、下面程序的功能是输入多个实数,求这些实数的最大值和最小值。当输入为0时结束输入。请在空白处填写适当内容, 完成程序。 #include float x,amax,amin; scanf(\"%f\ (1) ; (2) ; while( (3)) { if( (4) ) amax=x; if( (5) ) amin=x; scanf(\"%f\ } printf(\"amax=%f,amin=%f\\n\} 参考解答:(1)amax=x (2)amin=x (3) x (4) x>amax (5) x * *** ***** ******* ********* 六、程序设计 1、编写程序, 输入整数n, 输出n行由星号组成的直角三角形。 例如: (虚线部分为用户输入的内容) n = ? 5 * ** *** **** ***** 参考代码: #include x2x4x6x2n......, -∞ < x < +∞ 2、编写程序,计算数学函数f(x)12!4!6!(2n)!要求精度达到10-6。 参考代码: #include 3、编写程序,判断任一整数是否是素数。 参考代码: #include 因篇幅问题不能全部显示,请点此查看更多更全内容