C - C++语言同步习题 - 2007(答案和分析zeng)(4)

2019-08-03 11:55

main( ) {

int x,y;

scanf(―%d‖,&x);

if ( 错误!未找到引用源。 x>2&&x<=10 ) x>2&&x<=10

y=x*(x+2);

else if ( 错误!未找到引用源。x>-1&&x<=2 ) x>-1&&x<=2

y=2*x;

else if (x<= -1)

y=x-1;

else y= -1;

if (y!=-1)

printf(―%d‖,y);

else

printf(―error‖);

}

7. 根据以下函数关系,对输入的每个x值,计算出相应的y值。

x y x<0 0<=x<10 10<=x<20 20<=x<40 0 x 10 -0.5x+20 main( ) {

int x,c,m;

float y;

scanf(―%d‖,&x);

if( 错误!未找到引用源。 x<0 ) x<0

c=-1;

else

c= 错误!未找到引用源。 x/10 ; x/10

switch(c) {

case –1: y=0; break;

case0 : y=x; break; case1 : y=10;break; case2 :

case3 : y=-0.5*x+20;break; default : y= -2; }

16

if( 错误!未找到引用源。 y>=0或x<40 ) x<40

printf(―y=%f‖,y);

else

printf(―error\\n‖);

}

8. 下面程序根据以下函数关系,对输入的每个x值,计算相应的y值。

x y

x=a或x=-a 0

-a x<-a或x>a x

#include ―math.h‖

main( ) {

int x,a;

float y;

scanf(―%d %d‖,&x,&a);

if( x= =a||x= =-a 错误!未找到引用源。 ) (x= =a)||(x= =-a)

y=0;

else if( 错误!未找到引用源。 ) (x>-a)&&(x

y=sqrt(a*a-x*x); else y=x;

printf(―%f‖,y); }

9. 以下程序的功能是计算一元二次方程ax2?bx?c?0的根,完成下面程序内容。

#include ―math.h‖ main( ) {

float a,b,c,t,disc,twoa,term1,term2;

printf(―enter a,b,c:‖);

scanf(―%f %f %f ‖,&a,&b,&c);

if( 错误!未找到引用源。 a= =0 ) a= =0

if ( b= = 0) printf(―no answer due to input error \\n‖); else printf(―the single root is %f \\n‖,c/b); else

{ disc=b*b-4*a*c; twoa=2*a; term1= -b/twoa; t=abs(disc);

17

term2=sqrt(t)/twoa; if( 错误!未找到引用源。 disc<0或b*b-4*a*c<0 ) disc<0

printf(―complex root \\n real part=%f imag part=%f\\n‖,term1,term2);

else printf(―real root\\n root1=%f root2=%f\\n‖,term1+term2,term1-term2);

}

}

10. 以下程序的功能是判断输入的年份是否是闰年。 main( ) {

int y,f;

scanf(―%d‖,&y); if(y@0= =0)

f=1;

else if( y%4==0&&y0!==0 错误!未找到引用源。 ) (y%4= =0)&&(y0!=0)

f=1;

else

错误!未找到引用源。 f=0 ; f=0

if(f)

printf(―%d is‖,y);

else

printf(―%d is not‖,y);

printf(―a leap year\\n‖)

}

四、编程题

1. 编程实现以下功能:读入两个运算数(data1和data2)及一个运算符(op),计算表达式data1 op data2的值,其中op可为‘+’,‘-’,‘*’,‘/’(用switch语句实现)。

2. 试编程判断输入的正数是否既是5又是7的倍数。若是,则输出yes,否则输出no。

第五章 循环控制

一、单项选择题

1. C语言中while与do—while语句的主要区别是( A )。A

A)do—while的循环体至少无条件执行一次 B)do—while允许从外部转到循环体内 C)do—while的循环体不能是复合语句

D)while的循环控制条件比do—while的循环控制条件严格 2. C语言中( D )。D

A)不能使用do while语句构成的循环;

18

B)do while语句构成的循环必须用break语句才能退出;

C)do while语句构成的循环,当while语句中的表达式值为非零时结束循环;

D)do while语句构成的循环,当while语句中的表达式值为零时结束循环; 3. 设有程序段

int k=10;

while (k=0) k=k-1;

则下面描述中正确的是( C )。C

A)while循环执行10次 B)循环是无限循环

C)循环体语句一次也不执行 D)循环体语句执行一次 4. 语句while(!e);中的表达式!E等价于( A )。A

A)E= =0 B)E!=1 C)E!=0 D)E= =1 5. 假定a和b为int型变量,则执行以下语句后b的值为( D )。

D

a=1;b=10;

a b b=b-a a++ b<0 b— do

1 10 9 2 8 { b- =a;a++; }

while (b--<0);

A)9 B)-2 C)-1 D)8 5.

6. 下面程序的输出结果为( C )。 C

main( ) {

int x=5;

do

x x=x-4 --x !(--x) printf(\

5 1 0 T while(!(--x));

0 -4 -5 F }

A)1 B)1 C)1 D)死循环 0 - 4 7. 设有程序段

t=0;

while (printf(―+‖)) {

t++;

if(t<3) break; }

下面描述正确的是( B )。B A)其中循环控制表达式与0等价 B)其中循环控制表达式与‘0’等价 C)其中循环控制表达式是不合法的 D)以上说法都不对 8. 以下程序段( C )。C

19

x x=x*x !x -1 1 0 x=-1; do {

x=x*x; }while(!x);

A)是死循环 B)循环执行两次 C)循环执行一次 D)有语法错误 9. 下面程序段的运行结果是( D )。D int x=0,y=0; x y y++ ++y x=x+y while(x<15) 0 0 1 2 2 { 2 2 3 4 6 y++; 6 4 5 6 12 x+=++y; 12 6 7 8 20 }

printf(―%d,%d‖,y,x);

A)20,7 B)6,12 C)20,8 D)8,20 10. 若有如下语句

int x=3; do {

printf(―%d\\n‖,x- =2); }while(!(--x));

则下面程序段( B )。B

A)输出的是1 B)输出的是1和-2 C)输出的是3和0 D)是死循环 11. 下面程序的运行结果是( D )。D

#include main( )

y y-- --y y-- {

int y=10; do {

y--; }while(--y);

printf(―%d\\n‖,y--); }

A)-1 B)1 C)8 D)0 12. 下列程序段不是死循环的是( A )。A

A) k=0; B) i=100; C)s=3379; D)for (; ;);

do while(1) while(s++%2+s%2) { { s++;

++k; i=i0+1; }while (k>=0); if(i>100) break;

}

13. 以下有WHILE构成的循环执行的次数是( A )。A

int ks=0;

20


C - C++语言同步习题 - 2007(答案和分析zeng)(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:反应釜液位控制电路信号变换综合设计课程设计 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: