C语言谭浩强第四版例题.docx

上传人:b****7 文档编号:9912971 上传时间:2023-02-07 格式:DOCX 页数:123 大小:84.55KB
下载 相关 举报
C语言谭浩强第四版例题.docx_第1页
第1页 / 共123页
C语言谭浩强第四版例题.docx_第2页
第2页 / 共123页
C语言谭浩强第四版例题.docx_第3页
第3页 / 共123页
C语言谭浩强第四版例题.docx_第4页
第4页 / 共123页
C语言谭浩强第四版例题.docx_第5页
第5页 / 共123页
点击查看更多>>
下载资源
资源描述

C语言谭浩强第四版例题.docx

《C语言谭浩强第四版例题.docx》由会员分享,可在线阅读,更多相关《C语言谭浩强第四版例题.docx(123页珍藏版)》请在冰豆网上搜索。

C语言谭浩强第四版例题.docx

C语言谭浩强第四版例题

例1.1要求在屏幕上输入以下一行信息.

ThisisaCprogram.

编写程序:

#include〈stdio。

h〉//这是编译预?

处理命令

intmain()//定义主函数

{//函数开始的标志

printf(”ThisisaCprogram。

\n”);//输出所指定的一行信息

return0;//函数执行完毕时返回函数值0

}

例1.2求两个整数之和.

编写程序:

#include//这是编译预处理命令

intmain()//定义主函数

{//函数开始

inta,b,sum;//本行是程序的声明部分,定义a、b、sum为整型变量

a=123;//对变量a赋值

b=456;//对变量b赋值

sum=a+b;//进行a+b的运算,并把结果存放在变量sum中

printf("sumis%d\n",sum);//输出结果

return0;//使函数返回值为0

}//函数结束

例1.3求两个整数的较大者.

编写程序:

#include〈stdio.h>

intmain()//定义主函数

{//主函数体开始

intmax(intx,inty);//对被调用函数max的声明

inta,b,c;//定义变量a,b,c

scanf(”%d,%d”,&a,&b);//输入变量a和b的值

c=max(a,b);//调用max函数,将得到的值赋给c

printf(”max=%d\n”,c);//输出c的值

return0;//返回函数值为0

intmax(intx,inty)//定义max函数,函数值为整型,形式参数x和y为整型

intz;//max函数中的声明部分,定义本函数中用到的变量z为整型

if(x>y)z=x;

elsez=y;

return(z);//将z的值返回,通过max带回到调用函数的位置

}

例2.1求1×2×3×4×5

编写程序:

#include〈stdio.h>

intmain()

inti,t;

t=1;

i=2;

while(i<=5)

t=t*i;

i=i+1;

}

printf("%d\n”,t);

return0;

}

例2.2有50个学生,要求将成绩在80分以上的学生的学号和成绩输出。

编写程序:

例2.19求

编写程序:

#include〈stdio。

h>

intmain()

intsign=1;

doubledeno=2.0,sum=1。

0,term;//定义deno,sum,term为双精度变量

while(deno〈=100)

sign=—sign;

term=sign/deno;

sum=sum+term;

deno=deno+1;

printf(”%f\n",sum);

return0;

}

例3.1有人用温度计测量出用华氏法表示的温度(如F,今要求把它转换为以摄氏法表示的温度(如C)。

编写程序:

#include

intmain()

{

floatf,c;//定义f和c为单精度浮点型变量

f=64.;//指定f的值

c=(5。

0/9)*(f—32);//利用公式计算c的值

printf(”f=%f\nc=%f\n",f,c);//输出c的值

return0;

例3。

2计算存款利息.有1000元,想存一年.有三种方法可选:

(1)活期,年利率为r1

(2)一年期定期,年利率为r2

(3)存两次半年定期,年利率为r3

请分别计算出一年后按三种方法所得到的本息和。

编写程序:

#include

intmain()

floatp0=1000,r1=0。

0036,r2=0。

0225,r3=0。

0198,p1,p2,p3;

p1=p0*(1+r1);

p2=p0*(1+r2);

p3=p0*(1+r3/2)*(1+r3/2);

printf(”p1=%f\np2=%f\np3=%f\n”,p1,p2,p3);

return0;

}

例3.3给定一个大写字母,要求用小写字母输出。

编写程序:

#include

h〉

intmain()

{

charc1,c2;

c1=’A’;//将字符'A’的ASCII代码放到c1变量中

c2=c1+32;//得到字符’a'的ASCII代码,放在c2变量中

printf(”%c\n”,c2);//输出c2的值,是一个字符

printf(”%d\n",c2);//输出c2的值,是字符'a'的ASCII代码

return0;

例3。

10改写例3.3程序,使之可以适用于任何大写字母。

从键盘输入一个大写字母,在显示屏上显示对应的小写字母.

编写程序:

#include

intmain()

{

charc1,c2;

c1=getchar();//从键盘读入一个字符,赋给字符变量c1

c2=c1+32;//得到字符’a’的ASCII代码,放在字符变量c2中putchar(c2);//输出c2的值,是一个字符

putchar(’\n’);

return0;

}

 

#include

h>

intmain()

charc1,c2;

c1=getchar();//从键盘读入一个大写字符,赋给字符变量c1

c2=c1+32;//得到对应的小写字符的ASCII代码,放在字符变量c2中printf(”大写字母:

%c\n小写字母:

%c\n",c1,c2);//输出c1,c2的值-—-大小写字符

return0;

例3。

4给出三角形的三边长,求三角形面积.

编写程序:

#include〈stdio.h>

#include

h〉

intmain()

doublea,b,c,s,area;//定义各变量,均为double型

a=3.67;//对边长a赋值

b=5。

43;//对边长b赋值

c=6.21;//对边长c赋值

s=(a+b+c)/2;//计算s

area=sqrt(s*(s-a)*(s—b)*(s-c));//计算area

printf(”a=%f\tb=%f\t%f\n”,a,b,c);//输出三边a,b,c的值

printf(”area=%f\n",area);//输出面积area的值

return0;

}

例3.5求方程的根。

a、b、c由键盘输入

设>0

编写程序:

#include

#include〈math。

h>//程序中要调用求平方根函数sqrt

intmain()

{doublea,b,c,disc,x1,x2,p,q;//disc是判别式sqrt(b*b-4ac)

scanf("%lf%lf%lf",&a,&b,&c);//输入实型变量的值要用格式声明”%f"

disc=b*b—4*a*c;

if(disc<0)printf(”Thisequationhav’trealroots\n”);

else

{p=-b/(2.0*a);

q=sqrt(disc)/(2.0*a);

x1=p+q;x2=p—q;//求出方程的两个根

printf("x1=%7。

2f\nx2=%7.2f\n",x1,x2);//输出方程的两个根

return0;

例3.6用%f输出实数,只能得到6位小数.

编写程序:

#include

h>

intmain()

{doublea=1.0;

printf("%f\n”,a/3);

return0;

}

例3。

7float型数据的有效位数。

编写程序:

#include

intmain()

{doublea;

a=10000/3。

0;

printf("%f\n”,a);

return0;

}

例3。

8先后输出BOY三个字符。

编写程序:

#include

intmain()

chara=’B’,b=’O',c=’Y';//定义3个字符变量,并初始化

putchar(a);//向显示器输出字符B

putchar(b);//向显示器输出字符O

putchar(c);//向显示器输出字符Y

putchar('\n');//向显示器输出一个换行符

return0;

#include〈stdio。

h〉

intmain()

chara,b,c;//定义3个字符变量

a='B’;b=’O’;c='Y';//给3个字符变量赋值

putchar(a);//向显示器输出字符B

putchar(b);//向显示器输出字符O

putchar(c);//向显示器输出字符Y

putchar(’\n');//向显示器输出一个换行符

return0;

 

例3.9从键盘输入BOY三个字符,然后把它们输出到屏幕。

编写程序:

#include

h>

intmain()

{chara,b,c;//定义字符变量a,b,c

a=getchar();//从键盘输入一个字符,送给字符变量a

b=getchar();//从键盘输入一个字符,送给字符变量b

c=getchar();//从键盘输入一个字符,送给字符变量c

putchar(a);//将变量a的值输出

putchar(b);//将变量a的值输出

putchar(c);//将变量a的值输出

putchar(’\n');//换行

return0;

 

#include

h〉

intmain()

putchar(getchar());//将接收到的字符输出

putchar(getchar());//将接收到的字符输出

putchar(getchar());//将接收到的字符输出

putchar('\n');

return0;

例4。

1在例3。

5的基础上对程序进行改进。

题目要求是求方程的根。

由键盘输入a,b,c。

假设a,b,c的值任意,并不保证。

需要在程序中进行判别,如果,就计算并输出方程的两个实根,否则就输出“方程无实根"的信息。

编写程序:

#include

h>

#include〈math.h>//程序中要调用求平方根函数sqrt

intmain()

{doublea,b,c,disc,x1,x2,p,q;//disc是判别式sqrt(b*b—4ac)

scanf(”%lf%lf%lf”,&a,&b,&c);//输入双精度浮点型变量的值要用格式声明"%lf”

disc=b*b—4*a*c;

if(disc〈0)printf(”Thisequationhav'trealroots\n");

else

{p=—b/(2。

0*a);

q=sqrt(disc)/(2。

0*a);

x1=p+q;x2=p—q;//求出方程的两个根

printf(”realroots:

\nx1=%10.6f\nx2=%10。

6f\n”,x1,x2);//输出方程的两个根

}

return0;

例4.2输入两个实数,按代数值由小到大的顺序输出这两个数。

编写程序:

#include

intmain()

floata,b,t;

scanf("%f,%f",&a,&b);

if(a>b)

t=a;

a=b;

b=t;

}

printf("%5.2f,%5。

2f\n”,a,b);

return0;

}

例4。

3输入3个数a,b,c,要求按由小到大的顺序输出。

编写程序:

#include

intmain()

floata,b,c,t;

scanf("%f,%f,%f",&a,&b,&c);

if(a〉b)

{

t=a;

a=b;

b=t;

}//实现a和b的互换

if(a>c)

{

t=a;

a=c;

c=t;

}//实现a和c的互换

if(b〉c)

{

t=b;

b=c;

c=t;

}//实现b和c的互换

printf(”%5.2f,%5。

2f,%5.2f\n",a,b,c);

return0;

例4.4输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。

然后输出最后得到的字符。

编写程序:

#include

h〉

intmain()

{

charch;

scanf("%c",&ch);

ch=(ch>='A'&&ch〈=’Z’)?

(ch+32):

ch;

printf("%c\n”,ch);

return0;

例4。

5有一函数:

编一程序,输入一个x值,要求输出相应的y值。

编写程序:

程序1:

#include

intmain()

{

intx,y;

scanf("%d”,&x);

if(x<0)

y=—1;

else

if(x==0)y=0;

elsey=1;

printf(”x=%d,y=%d\n”,x,y);

return0;

}

程序2:

#include

h>

intmain()

{

intx,y;

scanf(”%d",&x);

if(x〉=0)

if(x〉0)y=1;

elsey=0;

elsey=-1;

printf("x=%d,y=%d\n",x,y);

return0;

例4。

6要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70~84分,C等为60~69分,D等为60分以下。

成绩的等级由键盘输入。

编写程序:

#include

h〉

intmain()

chargrade;

scanf(”%c",&grade);

printf("Yourscore:

”);

switch(grade)

{default:

printf(”dataerror!

\n");break;

case'A':

printf(”85~100\n”);break;

case'B’:

printf(”70~84\n");break;

case'C':

printf("60~69\n”);break;

case’D’:

printf("〈60\n");break;

}

return0;

例4.7编写程序,用switch语句处理菜单命令。

在许多应用程序中,用菜单对流程进行控制,

例如从键盘输入一个’A’或’a'字符,就会执行A操作,输入一个’B’或’b'字符,就会执行B操作,等等.

编写程序:

#include〈stdio。

h>

intmain()

{

voidaction1(int,int),action2(int,int);

charch;

inta=15,b=23;

ch=getchar();

switch(ch)

case’a’:

case’A’:

action1(a,b);break;

case'b’:

case'B':

action2(a,b);break;

default:

putchar('\a’);

return0;

voidaction1(intx,inty)

printf("x+y=%d\n”,x+y);

}

voidaction2(intx,inty)

printf("x*y=%d\n",x*y);

}

例4。

8写一程序,判断某一年是否闰年。

编写程序:

程序1:

程序2:

#include〈stdio.h>#include

h>

intmain()intmain()

{{

intyear,leap;intyear,leap;

scanf("%d”,&year);scanf(”%d",&year);

if(year%4==0)if(year%4!

=0)

{leap=0;

if(year%100==0)elseif(year%100!

=0)

{leap=1;

if(year%400==0)elseif(year%400!

=0)

leap=1;leap=0;

elseelse

leap=0;leap=1;

}if(leap)

elseprintf("%dis”,year);

leap=1;else

}printf("%disnot",year);

elseprintf("aleapyear.\n");

leap=0;return0;

if(leap)}

printf(”%dis",year);

else

printf(”%disnot",year);

printf(”aleapyear。

\n”);

return0;

#include

h>程序3:

intmain()

intyear,leap;

printf(”enteryear:

”);

scanf("%d”,&year);

if((year%4==0&&year%100!

=0)||(year%400==0))

leap=1;

else

leap=0;

if(leap)

printf(”%dis”,year);

else

printf(”%disnot",year);

printf("aleapyear.\n");

return0;

}程序4:

#include〈stdio.h>

#include

intmain()

{

intyear;

boolleap;

scanf(”%d”,&year);

if(year%4==0)

if(year%100==0)

if(year%400==0)

leap=true;

else

leap=false;

else

leap=true;

}

else

leap=false;

if(leap==true)

printf("%dis",year);

else

printf("%disnot”,year);

printf("aleapyear。

\n”);

return0;}

例4。

9求方程的解.

编写程序:

#include〈stdio。

h>

#include

h〉

intmain()

doublea,b,c,disc,x1,x2,realpart,imagpart;

scanf("%lf,%lf,%lf”,&a,&b,&c);

printf("Theequation”);

if(fabs(a)<=1e-6)

printf(”isnotaquadratic\n");

else

disc=b*b—4*a*c;

if(fabs(disc)〈=1e—6)

printf("hastwoequalroots:

%8.4f\n”,-b/(2*a));

else

if(disc〉1e—6)

{

x1=(-b+sqrt(disc))/(2*a);

x2=(—b—sqrt(disc))/(2*a);

printf(”hasdistinctrealroots:

%8.4fand%8。

4f\n”,x1,x2);

}

else

realpart=-b/(2*a);

imagpart=sqrt(—disc)/(2*a);

printf(”hascomplexroots:

\n”);

printf("%8。

4f+%8。

4fi\n",realpart,imagpart);

printf("%8。

4f—%8。

4fi\n”,realpart,imagpart);

return0;

}

例4.10运输公司对用户计算运输费用。

路程(skm)越远,每吨·千米运费越低.

编写程序:

#include〈stdio。

h〉

intmain()

intc,s;

floatp,w,d,f;

printf(”pleaseenterprice,weight,discount:

");//提示输入的数据

scanf(”%f,%f,%d",&p,&w,&s);//输入单价、重量、距离

if(s>=3000)c=12;//3000km以上为同一折扣

elsec=s/250;//3000km以下各段折扣不同,c的值不相同

switch(c)

case0:

d=0;break;//c=0,代表250km以下,折扣d=0

case1:

d=2;break;//c=1,代表250到500km以下,折扣d=2%

case2:

case3:

d=5;break;//c=2和3,代表500到1000km以下,折扣d=5%

case4:

case5:

case6:

case7:

d=8;break;//

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1