c语言4 amp amp 0 2的值,C语言习题 答案讲解

列开始输入数据时,正确的数据输入方式是( A )。

int a1,a2; char c1,c2; scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2); A)10A 20BB)10 A 20 BC)10A20BD)10A20 B

11、已有定义int x; float y;且执行scanf(“=%f”,&x,&y);语句,若从第一列开始输入数据12345

678,则x的值为( B ) ,y的值为( B )。

(1) A)12345 B)123 C)45 D)345 (2) A)无定值 B)45.000000 C)678.000000 D)123.000000 三、编程:

1、 编写程序,从键盘上输入三个数分别给变量a、b、c,求它们的平均值。并按如下形式输出: average of **、** and ** is **.** 。其中,三个**依次表示a、b、c的值,**.**表示a,b,c的平均值。

2、输入9时23分并把它化成分钟后输出。(从零点整开始计算)。 1、参考答案 main ( )

{ float a, b, c, t;

printf(“please input a,b,c:\\n”); scanf (\ t=(a+b+c)/3;

printf (\、%6.2f and %6.2f is %6.2f\\n”,a,b,c,t); }

2、参考答案 main ( )

{ int h,m,s;

printf(“please input h,m:\\n”); scanf (\ s=h*60+m;

printf (\ %d minute\\n”,s); }

第五章 选择结构程序设计

基础练习(A)

一、填空题

1、关系表达式的运算结果是 逻辑 值。C语言没有逻辑型数据,以 1 代表“真”,以 0代表“假”。

2、逻辑运算符!是 单目 运算符,其结合性是由 右结合性 。 3、C语言提供的三种逻辑运算符是 && 、 || 、 ! 。其中优先级最高的为 ! ,优先级最低的为 | | 。

4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。系统最终以 0 和 非0 来判定它们属于“真”或“假”。 5、设y为int型变量,请写出描述“y是偶数”的表达式 (y%2==0) 。

6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式 x2&&x<3 。

8、判断char型变量ch是否为大写字母的正确表达式是 (ch>=‘A’)&&(ch<=‘Z’) 。 9、当a=3,b=2,c=1时,表达式f=a>b>c的值是 0 。 10、当a=5,b=4,c=2时,表达式a>b!=c的值是 1 。

9 / 44

11、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是 0 。 12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是 1 。 13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为 1 。 14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为 1 。 !(x>y)+(y!=z)||(x+y)&&(y-z)

15、有int a=3,b=4,c=5,x,y;,则以下表达式的值为 0 。 !(x=a)&&(y=b)&&0

16、if (!k) a=3;语句中的!k可以改写为 k= =0 ,使其功能不变。 二、选择题

1、逻辑运算符两侧运算对象的数据类型( D )。 A)只能是0或1

B)只能是0或非0正数 C)只能是整型或字符型数据 D)可以是任何类型的数据

2、以下关于运算符优先顺序的描述中正确的是( C )。 A)关系运算符

4、为判断字符变量c的值不是数字也不是字母时,应采用下述表达式( D )。 A)c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122 B)!(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122) C)c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122 D)!(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)

5、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表达式是

( C )。

A) (x>=1)&&(x<=100)&&(x>=200)&&(x<=300) B) (x>=1)||(x<=100)||(x>=200)||(x<=300) C) (x>=1)&&(x<=100)||(x>=200)&&(x<=300) D) (x>=1)||(x<=100)&&(x>=200)||(x<=300)

6、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是( D )。 A)‘x’&&‘y’ B) x<=y

C) x||y+z&&y-z D) !((x7、已知x=43,ch=‘A’,y=0;则表达式(x>=y&&chb)&&(n=c>d)后n的值为( B )。 A)1 B)2 C)3 D)4 9、以下不正确的if语句形式是( C )。 A) if(x>y&&x!=y); B) if(x==y) x+=y;

C) if(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y); D) if(x10、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是( B )。 if(x>y) z=x; x=y; y=z; A)x=10,y=20,z=30 B)x=20,y=30,z=30 C)x=20,y=30,z=10 D)x=20,y=30,z=20

10 / 44

11、以下if语句语法正确的是( B ) 。 A) if(x>0)

printf(“%f”,x)

else printf(“%f”,-x); B) B) if(x>0)

{ x=x+y; printf(“%f”,x); } else printf(“%f”,-x); C) C) if(x>0)

{ x=x+y; printf(“%f”,x); }; else printf(“%f”,-x); D) D) if(x>0)

{ x=x+y; printf(“%f”,x) } else printf(“%f”,-x); 12、请阅读以下程序: main() { int a=5,b=5,c=0; if(a==b+c) printf(“***\\n”); else printf(“$$$\\n”); } 以下程序( C )。 A)有语法错不能通过编译 B)可以通过编译但不能通过连接 C)输出*** D)输出$$$ 三、写出下列程序的运行结果

1、若运行时输入:2,则以下程序的运行结果是 2nd class postage is 14p 。 #include void main(void) { char Class; printf(“Enter 1 for 1st class post or 2 for 2nd post”); scanf(“%c”,&Class); if(Class==‘1’) printf(“1st class postage is 19p”); else printf(“2nd class postage is 14p”); }

2、若运行时输入:4.4,则以下程序的运行结果是 Selling Price(0.30)$5.72 。 #include void main(void) { float CostPrice,SellingPrice; printf(“Enter Cost Price $:”); scanf(“%f”,&CostPrice); if(CostPrice>=5) { SellingPrice=CostPrice+CostPrice*0.25; printf(“Selling Price(0.25)$%6.2f”,SellingPrice); } else { SellingPrice=CostPrice+CostPrice*0.30; printf(“Selling Price(0.30)$%6.2f”,SellingPrice); } }

11 / 44

3、以下程序的运行结果是 F 。 main() { if(2*2==5<2*2==4) print(“T”); else printf(“F”); }

能力提高(B)

一、选择题

1、若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以

下不能满足要求的表达式是( D )。

A)A%2==1 B)!(A%2==0) C)!(A%2) D)A%2 2、下列运算符中优先级最低的( A ),优先级最高的是( C )。 A)?: B)&& C)+ D)!= 3、请阅读以下程序: main() { int a=5,b=0,c=0; if(a=b+c) printf(“***\\n”); else printf(“$$$\\n”); } 以下程序( D )。 A)有语法错不能通过编译 B)可以通过编译但不能通过连接 C)输出*** D)输出$$$ 4、以下程序的运行结果是( C )。 main() { int m=5; if(m++>5) printf(“%d\\n”,m); else printf(“%d\\n”,m--); } A)4 B)5 C)6 D)7 二、根据程序的功能,将以下程序补充完整

1、以下程序对输入的四个整数,按从小到大的顺序输出。请在 内填入正确内容。 main() { int t,a,b,c,d;

printf(“input a,b,c,d:”) scanf(“%d,%d,%d,%d”, &a,&b,&c,&d ); if(a>b) { t=a;a=b;b=t; } if ( a>c ) {t=a;a=c;c=t;}

if (a>d) {t=a;a=d;d=t;}

if ( b>c ) {t=b;b=c;c=t;} if (b>d) {t=b;b=d;d=t;} if (c>d) {t=c;c=d;d=t;}

printf(“%d,%d,%d,%d”,a,b,c,d); } 三、编程:

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

2、编制程序要求输入整数x、y和z,若x2+y2+z2大于1000,则输出x2+y2+z2千位以上的数字,否则输出三数之和。

12 / 44

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值