谭浩强C语言程序设计习题集 下载本文

#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(\}

参考答案:2 0 0

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

main()

{int a,b,c,d; a=c=0; b=1; d=20;

if(a) d=d-10; else if(!b)

if(!c) d=15; else d=25; printf(\}

参考答案:20

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

#include main()

{int x,y=1,z; if(y!=0) x=5;

printf(\if(y==0) x=4; else x=5;

printf(\x=1; if(y<0)

if(y>0) x=4; else x=5;

printf(\}

参考答案: □□□□□□□□5 □□□□□□□□5 □□□□□□□□1

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

#include main()

{int x,y=-2,z=0; if((z=y)<0) x=4; else if(y==0) x=5; else x=6;

printf(\if(z=(y==0)) x=5; x=4;

printf(\if(x=z=y) x=4;

printf(\}

参考答案:

□□□□□□□□4□□□□□□□-2 □□□□□□□□4□□□□□□□0 □□□□□□□□4□□□□□□□-2

*4.77 请阅读以下程序,为使输出时t值为4,输入量a和b应满足的条件是 。

main() {int s,t,a,b;

scanf(\s=1;t=1;

if(a>0) s=s+1; if(a>b) t=s+t; else if(a==b) t=5;

else t=2*s;

printf(\}

参考答案:00&&a

4.78 请阅读下面的程序,为使输出s=1,t=5的结果,输入量a和b应满足的条件是 a=b<=0 。

main() {int s,t,a,b;

scanf(\s=1;t=1;

if(a>0) s=s+1; if(a>b) t=s+t; else if(a==b) t=5; else t=2*s;

printf(\

4.79 下面程序根据以下函数关系,对输入的每个x值,计算出y值。请分析程序填空。

x y

2

-1

x≤-1 x-1

main() {int x,y;

scanf(\if(【1】) y=x*(x+2); else if(【2】) y=x-1; else 【3】;

if(y!=-1) printf(\else printf(\}

参考答案:【1】2

4.80下面程序根据以下函数关系,对输入的每个x值,计算出y值。请分析程序填空。