谭浩强C语言程序设计习题集(6)

2019-04-14 20:10

4.41 设x,y,z均为int型变量,请写出描述―x或y中有一个小于z‖的表达式( )。 参考答案:x

*4.42设x,y,z均为int型变量,请写出描述―x,y,z中有两个为负数‖的表达式( )。 参考答案:x*y*z>=0&&((x<0&&y<0)||(x<0&&z<0)||(y<0&&z<0))

参考分析:原书提供的答案是(x<0&&y<0)||(x<0&&z<0)||(y<0&&z<0),但当三个变量均为负数时不合适,后来本人思考了一个试图简化一些的答案,即x*y*z>0&&(x<0||y<0||z<0) 可是若有一个变量为零,其他为负数时也不合适,只有参考答案才无懈可击。

4.43 已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是( )。 参考答案:0

参考分析:在本表达式的计算过程中A

4.44 若int a=6,b=4,c=2;表达式!(a-b)+c-1&&b+c/2的值是( )。 参考答案:1

4.45 若a=2,b=4,则表达式!(x=a)||(y=b)&&0的值是( )。 参考答案:0

4.46 若a=1,b=4,c=3,则表达式!(a

4.47 若a=6,b=4,c=3,则表达式a&&b+c||b-c的值是( )。 参考答案:1

4.48 若a=5,b=2,c=1,则表达式a-b

4.49 若a=3,b=4,c=5,则表达式a||b+c&&b的值是( )。 参考答案:1

4.50 条件―22&&x<3||x<-10

4.51 当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!=b)&&(n=b>c)后,n的值为( ),m的值为( )。 参考答案:0 1

4.52 以下程序的运行结果是 。

main() {int x,y,z; x=1;y=2;z=3; x=y--<=x||x+y!=z; printf(\}

参考答案:1,1

参考分析:这是两个表达式的或运算,第一个表达式y--<=x相当于2<=1为假,y变量增为1,第二表达式x+y!=z相当于1+1!=3为真,故x的值为1。 4.53 以下程序的运行结果是 。

main()

{int a1,a2,b1,b2; int i=5,j=7,k=0; a1=!k; a2=i!=j;

printf(\b1=k&&j;

b2=k||j;

printf(\}

参考答案:a1=1 a2=1 b1=0 b2=1

*4.54 以下程序的运行结果是 。

main() {int x,y,z; x=1;y=1;z=0; x=x||y&&z;

printf(\}

参考答案:1,0

参考分析:本题采用短路算法,由于x为真,后面的或和与运算均被短路。 4.55 有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为( )。 参考答案:1

4.56 有int x,y,z;且x=3,y=-4,z=5,则表达式!(x>y)+y!=z)||(x+y)&&(y-z)的值为(参考答案:1

4.57有int x,y,z;且x=3,y=-4,z=5,则表达式x++-y+(++z)的值为( )。 参考答案:13

4.58 有int a=3,b=4,c=5;则表达式a||b+c&&b==c的值为( )。 参考答案:1

4.59 有int a=3,b=4,c=5,x,y;则表达式!(x=a)&&(y=b)&&0的值为( )。 参考答案:0

4.60 有int a=3,b=4,c=5;则表达式!(a+b)+c-1&&b+c/2的值为( )。 参考答案:1

4.61 若运行时输入:16,则以下程序的运行结果是 。

#include void main(void) {int year;

printf(\scanf(\if (year>=18)

printf(\else

printf(\}

参考答案:your $3.0 yuan/xiaoshi

4.62 若运行时输入:2,则以下程序的运行结果是 。

#include void main(void) {char class;

printf(\scanf(\if (class=='1')

printf(\else

printf(\

。 )

}

参考答案:2nd class postage is 14p

4.63 若运行时输入:4.4,则以下程序的运行结果是 。

#include void main(void)

{float costprice,sellingprice; printf(\scanf(\if(costprice>=5)

{sellingprice=costprice+costprice*0.25;

printf(\} else

{sellingprice=costprice+costprice*0.30;

printf(\} }

参考答案:Selling Price(0.30)$ 5.72 4.64 以下程序的运行结果是 。

main()

{if (2*2==5<2*2==4) printf(\else

printf(\}

参考答案:F

*4.65 请阅读以下程序,若运行时输入:1605时,程序的运行结果是 。

main() {int t,h,m;

scanf(\h=t/100; if(h==0) h=12; printf(\m=t0;

if(m<10) printf(\printf(\if (t<1200||t==2400) printf(\else

printf(\}

参考答案:4:05PM

4.66 以下程序实现:输入园的半径r和运算标志m,按照运算标志进行指定计算,请填空。

标志 运算 a 面积 c 周长

b 二者均计算

#define pi=3.14159 main() {char m; float r,c,a;

printf(\scanf(\if (【1】) {a=pi*r*r;printf(\if (【2】) {c=2*pi*r;printf(\if (【3】) {a=pi*r*r;c=2*pi*r;

printf(\ } }

参考答案:【1】m=='a' 【2】m=='c' 【3】m=='b'

4.67 若运行时输入:5999,则以下程序的运行结果是 。

main() {int x; float y;

scanf(\

if(x>=0&&xx<=2999) y=18+0.12*x; if(x>=3000&&x<=5999) y=36+0.6*x; if(x>=6000&&x<=10000)y=54+0.3*x; printf(\}

参考答案:3635.4

4.68 以下程序实现输出x,y,z三个数中的最大者。请分析程序填空。

main()

{int x=4,y=6,z=7;; int 【1】; if(【2】) u=x; else u=y;

if (【3】) v=u; else v=z;

printf(\}

参考答案:【1】u,v 【2】x>y【3】u>z

4.69 以下程序将输入的三个整数按从大到小顺序输出,请分析程序填空。

main() {int x,y,z,c;

scanf(\if(【1】)

{c=y;y=z;z=c;} if(【2】)

{c=x;x=z;z=c;} if(【3】)

{c=x;x=y;y=c;}

printf(\}

参考答案:【1】y

4.70 以下程序对输入的两个整数,按从大到小顺序输出,请分析程序填空。

main() {int x,y,z;

scanf(\if(【1】)

{z=x;【2】}

printf(\}

参考答案:【1】x

*4.71 以下程序对输入的一个小写字母进行循环后移5个位臵后输出。如'a'变成'f','w'变成'b'。请分析程序填空。

#include main() {char c; c=getchar();

if (c>='a'&&c<='u') 【1】; else if (c>='v'&&c<='z') 【2】; putchar(c); }

参考答案:【1】c=c+5【2】c=c+6-26

*4.72 输入一个字符,如果它是大写字母,则把它变成小写字母,如果它是一个小写字母,则把它变成大写字母,其它字符不变。请分析程序填空。

main() {char ch;

scanf(\if(【1】) ch=ch+32;

else if(ch>='a'&&ch<='z') 【2】; printf(\}

参考答案:【1】ch>='A'&&ch<='Z'【2】ch=ch-32 4.73 以下程序的运行结果是 。

main() {int a,b,c; int s,w,t; s=w=t=0; a=-1;b=3;c=3; if(c>0) s=a+b; if(a<=0) {if(b>0)

if(c<=0) w=a-b; }

else if(c>0) w=a-b; else t=c;

printf(\}


谭浩强C语言程序设计习题集(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:第一章 线性规划

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

马上注册会员

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