您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页C语言练习题11

C语言练习题11

来源:爱go旅游网
C语言程序设计复习题

循环结构

一、选择

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 int main() { int s=0,i=1; while (s<=10) { s=s+i*i; i++; } printf(\"%d\ return 0; } A) 4 B) 3 C) 5 D) 6

4、函数pi的功能是根据以下近似公式求π值:(C)。 (π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n) 请填空,完成求π的功能。

#include int main( ) { double s=0.0; int i,n; scanf(\"%ld\ for(i=1;i<=n;i++) s=s+_______ ; s=(sqrt(6*s)); printf(\"s=%e\ return 0; } A) 1/i*i B) 1.0/i*i C) 1.0/(i*i) D) 1.0/(n*n)

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 int main() { int x=23; do { printf(\"%d\ }while(!x); return 0; } 该程序的执行结果是(B)。

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 int main( ) { int i; for(i=1;i<6;i++) { if (i%2!=0) {printf(\"#\");continue;} printf(\"*\"); } printf(\"\\n\"); return 0; } A) #*#*# B) ##### C) ***** D) *#*#*

9、有如下程序

#include int main( ) { int i,sum=0; for(i=1;i<=3;sum++) sum+=i; printf(\"%d\\n\ return 0; } 该程序的执行结果是(C)。

A) 6 B) 3 C) 死循环 D) 0

10、在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为(B)。

#include int main( ) { char ch; while ((ch=getchar( ))!='\\n') { if (ch>='A' && ch<='Z') ch=ch+32; else if (ch>='a' && ch<'z') ch=ch-32; printf(\"%c\ } printf(\"\\n\"); return 0; } A) ABCdef B) abcDEF C) abc D) DEF

11、下面程序是计算n个数的平均值,请填空(B)。

#include int main( ) { int i,n; float x,avg=0.0; scanf(\"%d\ for(i=0;iavg/i avg/n avg/x avg/n

12、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空(D)。

#include int main( ) { float x,amax,amin; scanf(\"%f\ amax=x; amin=x; while (________ ) { if (x>amax) amax=x; if (______) amin=x; scanf(\"%f\ } printf(\"\\namax=%f\\namin=%f\\n\ return 0; } A) x<=0 B) x>0 C) x>0 D) x>=0 x>amin x<=amin x>amin x13、在下列选项中,没有构成死循环的程序段是(D)。 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>=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 int main( ) { int x=10,y=10,i; for(i=0;x>8;y=++i) printf(\"%d %d \ return 0; } A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1

18、有如下程序

#include int main( ) { int n=9; while(n>6) {n--;printf(\"%d\ return 0; } 该程序段的输出结果是(B)。

A) 987 B) 876 C) 8765 D) 9876

19、以下程序运行后的输出结果是(D)。

#include int main() { int i=10,j=0; do { j=j+1; i--; }while(i>2); printf(\"%d\\n\return 0; } A) 50 B) 52 C) 51 D) 8

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 int main() { int s=0,k; for (k=7;k>=0;k--) { switch(k) { case 1: case 4: case 7: s++; break; case 2: case 3: case 6: break; case 0: case 5: s+=2; break; } } printf(“%d”,s); return 0; } 3、以下程序的运行结果是____。 #include int main() { int i,j; for (i=4;i>=1;i--) { printf(\"*\"); for (j=1;j<=4-i;j++) printf(\"*\"); printf(\"\\n\"); } return 0; } 输出结果: * ** *** ****

三、判断

1、while语句的循环体至少执行一次。F 2、do-while语句的循环体至少执行一次。T

3、只用三种基本结构就可以表示任何复杂的算法。T

四、程序填空

1、下面程序的功能是输出1到100之间数位上数字的乘积大于数位上数字之和的数。例如数字26,数位上数字的乘积12大于数字之和8。请在空白处填写适当内容, 完成程序。

#include int main()

{ 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 int main() {

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、 #include #include int main() { float x,y,z; scanf(\"%f,%f\z=x/y; while(1) } { } printf(\"%f\return 0; if(fabs(z)>1.0) { } else break; x=y; y=z; z=x/y; 若输入的数据是3.6,2.4,则输出结果是1.600000 2、 #include int main() { */ int i,j,k; for(i=0;i<=4;i++) { for(j=0;j<=10-i;j++) printf(\" \"); /*输出一个空格 } } return 0; for(k=0;k<=2*i;k++) printf(\"*\"); printf(\"\\n\"); 输出结果为:

* *** ***** ******* *********

六、程序设计

1、编写程序, 输入整数n, 输出n行由星号组成的直角三角形。

例如: (虚线部分为用户输入的内容) n = ? 5 * ** *** **** ***** 参考代码: #include int main() { int n,i, j; printf(\"n = ? \"); scanf(\"%d\ for (i = 1; i <= n; i ++) { for (j = n - i; j >= 1; j --) { putchar(' '); } for (j = i; j >= 1; j --) { putchar('*'); } putchar('\\n'); } return 0; }

x2x4x6x2n......, -∞ < x < +∞ 2、编写程序,计算数学函数f(x)12!4!6!(2n)!要求精度达到10-6。

参考代码: #include #include #define epsilon 1e-6 int main() { double a, p = 1, y = p; int d = 0; printf(\"a = ? \"); scanf(\"%lg\ do { d += 2; p *= a * a / (d * (d - 1)); y += p; } while (fabs(p) >= epsilon); printf(\"y = %lg\\n\ return 0; }

3、编写程序,判断任一整数是否是素数。 参考代码:

#include int main() { int x,i,flag=1; } scanf(\"%d\for(i=2;i

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务