C语言教材前15章书上例题代码

2023-3-22 来源:不详 浏览次数:

第一章无

第二章

程序代码

#includestdio.h

#includestdlib.h

intmain(void)

{

inta;//用关键int指定变量a的类型

floatb;//用关键字float指定变量b的类型

charc;//用关键字char指定变量c的类型

a=1;//为int型变量a赋值整形常量1

b=2.5;//为float型变量b赋值实型常量2.5

c=A;//为char型变量c赋值字符型常量‘A’

return0;

}

例2.1a可修改如下:

intmain()

inta=1;//定义整型常量a并对其初始化

floatb=2.5;//定义实型变量b并对其初始化

charc=A;//定义字符型变量c并对其初始化

程序代码

inta=1;

floatb=2.5;

charc=A;

printf("a-%d\n",a);

printf("b=%f\n",b);

printf("c=%c\n",c);

printf("Endofprogram\n");

运行结果

a-1

b=2.

c=A

Endofprogram

程序代码

printf("DatetypeNumberofbytes\n");

printf("------------------------\n");

printf("char%d\n",sizeof(char));

printf("int%d\n",sizeof(int));

printf("shortint%d\n",sizeof(short));

printf("longint%d\n",sizeof(long));

printf("longlongint%d\n",sizeof(longlong));

printf("float%d\n",sizeof(float));

printf("double%d\n",sizeof(double));

printf("longdouble%d\n",sizeof(longdouble));

DatetypeNumberofbytes

------------------------

char1

int4

shortint2

longint4

longlongint8

float4

double8

longdouble12

程序代码

floata;

doubleb;

a=.e4;

b=.e4;

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

7936.

0.

第三章

程序代码

intx=,b0,b1,b2,sum;

b2=x/;//计算百位数字

b1=(x-b2*)/10;//计算十位数字

b0=x%10;//计算个位数字

sum=b2+b1+b0;

printf("b2=%d,b1=%d,b0=%d,sum=%d\n",b2,b1,b0,sum);

b2=1,b1=5,b0=3,sum=9

程序代码

doubler=5.3;//圆的半径

printf("circumference=%f\n",2*3.*r);

printf("area=%f\n",3.*r*r);

circumference=33.

area=88.

程序代码

doubler;

printf("Inputr:");//提示用户输入半径的值

scanf("%lf",r);//以双精度实型从键盘输入x的值

Inputr:5.3

运行代码

#definePI3.//定义宏常量

printf("Inputr:");

scanf("%lf",r);

printf("circumference=%f\n",2*PI*r);//编译时PI被替换为3.

printf("area=%f\n",PI*r*r);//编译时PI被替换为3.

程序代码

constdoublePI=3.;//定义实型的const常量PI

printf("circumference=%f\n",2*PI*r);

printf("area=%f\n",PI*r*r);

程序代码

intm=5;

printf("m/2=%d\n",m/2);

printf("(float)(m/2)=%f\n",(float)(m/2));

printf("(float)m/2=%f\n",(float)m/2);

printf("m=%d\n",m);

m/2=2

(float)(m/2)=2.

(float)m/2=2.

m=5

程序代码

#includemath.h

floata,b,c,s,area;

printf("Inputa,b,c:");

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

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

area=(float)sqrt(s*(s-a)*(s-b)*(s-c));

printf("area=%f\n",area);

Inputa,b,c:3,4,5

area=6.

第四章

程序代码

charch;

printf("PressakeyandthenpresstheEnter:");

ch=getchar();//从键盘中输入一个字符,按回车键结束输入,该字符被存入变量ch

ch=ch+32;//将大写英文字母转化为小写英文字母

putchar(ch);//在屏幕上显示变量ch中的字符

putchar(\n);//输出一个人回车换行控制符

PressakeyandthenpresstheEnter:B

B

程序代码

printf("PressakeyandthenpressEnter:");

ch=getchar();

ch=ch+32;

printf("%c,%d\n",ch,ch);//分别输出变量ch中的字符及ASCII码值

PressakeyandthenpressEnter:B

b,98

程序代码

constdoublepi=3.;

doubler,circum,area;

circum=2*pi*r;

area=pi*r*r;

printf("printfWITHOUTWIDTHorprecisionspecifications:\n");

printf("circumference=%f,area=%f\n",circum,area);

printf("printfWITHwidthandprecisionspecifications:\n");

printf("circumference=%7.2f,area=%7.2f\n",circum,area);

printfWITHOUTWIDTHorprecisionspecifications:

circumference=33.,area=88.

printfWITHwidthandprecisionspecifications:

circumference=33.30,area=88.25

(1)程序代码

inta,b;

scanf("%d%d",a,b);

printf("a=%d,b=%d\n",a,b);

a=12,b=34

(2)程序代码

scanf("%d,%d",a,b);

12,34

(3)程序代码

scanf("a=%d,b=%d",a,b);

(4)程序代码

scanf("%2d%2d",a,b);

(5)程序代码

printf("a=\"%d\",b=\"%d\"\n",a,b);

12

34

a="12",b="34"

(6)程序代码

scanf("%d%*c%d",a,b);

运行结果(无论以何种形式输出,均能得到相同结果)

(1)

(2)

(3)

(4)

(7)程序代码

scanf("%2d%*2d%2d",a,b);

a=12,b=56

(8)程序代码

a

a=12,b=3

(9)程序代码

a=,b=8

(10)错误代码

scanf("%d%d",a,b);//未对a,b取址

程序代码

intdate1,date2;

charop;

printf("Pleaseentertheexpressiondate1+date2\n");

scanf("%d%c%d",date1,op,date2);

printf("%d%c%d=%d\n",date1,op,date2,date1+date2);

Pleaseentertheexpressiondate1+date2

12+3

12+3=15

程序代码

inta;

charb;

floatc;

printf("Pleaseinputaninteger:");

scanf("%d",a);

printf("integer:%d\n",a);

printf("Pleaseinputacharacter:");

scanf("%c",b);

printf("characte:%c\n",b);

printf("Pleaseinputafloatnumber:");

scanf("%f",c);

printf("float:%f\n",c);

Pleaseinputaninteger:12

integer:12

Pleaseinputacharacter:characte:

Pleaseinputafloatnumber:3.5

float:3.

改进(1)

getchar();/*将存于缓存区中的回车符读入,避免在后面作为有效字符读入*/

Pleaseinputacharacter:a

characte:a

改进(2.)

scanf("%c",b);/*在%c前面加一个空格,将存在缓存区中的回车符读入*/

printf("character:%c\n",b);

character:a

第五章

程序代码

inta,b,max;

printf("Inputa,b:");

if(ab)max=a;

if(a=b)max=b;

printf("max=%d\n",max);

Inputa,b:3,5

max=5

程序代码

elsemax=b;//相当与a小于等于b的情况

程序代码

max=ab?a:b;//用条件表达式计算两整数的最大值

程序代码

#defineEPS1e-6

floata,b,c,disc,p,q;

printf("Pleaseenterthecoeficientsa,b,c:");

if(fabs(a)=EPS)//a=0是输出“不是二次方程”

printf("Itisnotaquadraticequation!\n");

exit(0);

disc=b*b-4*a*c;/*计算判别式*/

p=-b/(2*a);

q=sqrt(fabs(disc))/(2*a);

if(fabs(disc)=EPS)/*判别式等于0,输出两相等实根*/

printf("x1=x2=%.2f\n",p);

else

if(discEPS)/*判别式大于0时,输出两不相等实根*/

printf("x1=%.2f,x2=%.2f\n",p+q,p-q);

else/*判别式小于0,输出两共轭负根*/

printf("x1=%.2f+%.2fi",p+q,p-q);

printf("x2=%.2f-%.2fi\n",p,q);

运行结果(1)

Pleaseenterthecoeficientsa,b,c:0,10,2

Itisnotaquadraticequation!

Pleaseenterthecoeficientsa,b,c:1,2,1

x1=x2=-1.00

Pleaseenterthecoeficientsa,b,c:2,6,1

x1=-0.18,x2=-2.82

Pleaseenterthecoeficientsa,b,c:2,3,2

x1=-0.09+-1.41ix2=-0.75-0.66i

程序代码

printf("Pleaseenteranexpression:");

scanf("%d%c%d",date1,op,date2);//输入运算表达式

switch(op)//根据输入的运算符确定实行的运算

case+://加法运算

printf("%d+%d=%d\n",date1,date2,date1+date2);

break;

case-://减法运算

printf("%d-%d=%d\n",date1,date2,date1-date2);

case*://乘法运算

printf("%d*%d=%d\n",date1,date2,date1*date2);

case/://除法运算

if(0==date2)//为避免除0错误,检验除数是否为0

printf("Divisionbyzero!\n");

printf("%d/%d=%d\n",date1,date2,date1/date2);

;break;

default://处理非法运算符

printf("Invalidopreator!\n");

Pleaseenteranexpression:22+12

22+12=34

Pleaseenteranexpression:22-12

22-12=10

Pleaseenteranexpression:22*12

22*12=

Pleaseenteranexpression:22/12

22/12=1

(5)

Pleaseenteranexpression:22/0

Divisionbyzero!

(6)

Pleaseenteranexpression:22\12

Invalidopreator!

程序代码

floatdate1,date2;

scanf("%f%c%f",date1,op,date2);//输入运算表达式

printf("%f+%f=%f\n",date1,date2,date1+date2);

printf("%f-%f=%f\n",date1,date2,date1-date2);

printf("%f*%f=%f\n",date1,date2,date1*date2);

if(fabs(date2)=1e-7)//实数与0比较

printf("%f/%f=%f\n",date1,date2,date1/date2);

Pleaseenteranexpression:1.2+0.3

1.+0.=1.

Pleaseenteranexpression:1.2-0.3

1.-0.=0.

Pleaseenteranexpression:1.2*0.3

1.*0.=0.

Pleaseenteranexpression:1.2/0.3

1./0.=4.

Pleaseenteranexpression:1.2/0

Pleaseenteranexpression:1.2\3

程序代码

#defineEPS1e-1

floata,b,c;

intflag=1;//置标志变量flag为非0值

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

if(a+bcb+caa+cb)//如果满足三角形的基本条件

if(fabs(a-b)=EPS

fabs(b-c)=EPS

fabs(c-a)=EPS)

printf("等腰");//等腰

flag=0;//标志变量flag为0值

elseif(fabs(a-b)=EPSfabs(b-c)=EPSfabs(c-a)=EPS)

printf("等边");//等边

flag=0;

if(fabs(a*a+b*b-c*c)=EPS

fabs(a*a+c*c-b*b)=EPS

fabs(b*b+c*c-a*a)=EPS)

printf("直角");//直角

flag=0;//置标志变量flag为0值

if(flag)//若标志变量flag非0,则是一般三角形

printf("一般");

printf("三角形\n");

printf("不是三角形\n");

直角三角形

Inputa,b,c:4,4,5

等腰三角形

Inputa,b,c:3,4,6

一般三角形

Inputa,b,c:3,4,9

不是三角形

(5)Inputa,b,c:10,10,14.4

等腰直角三角形

Inputa,b,c:4,4,4,

等边三角形

程序代码

intscore,mark;

printf("pleaseenterthescore:");

scanf("%d",score);

mark=score0

score?-1:score/10;

switch(mark)

case10:

case9:printf("%d--A\n",score);

case8:printf("%d--B\n",score);

case7:printf("%d--C\n",score);

case6:printf("%d-D\n",score);

case5:

case4:

case3:

case2:

case1:

case0:printf("%d--E\n",score);

default:printf("Inputerror!\n");

pleaseenterthescore:0

0—E

pleaseenterthescore:15

15—E

pleaseenterthescore:25

25—E

pleaseenterthescore:35

35—E

pleaseenterthescore:45

45—E

pleaseenterthescore:55

55—E

(7)

pleaseenterthescore:65

65-D

(8)

pleaseenterthescore:75

75—C

(9)

pleaseenterthescore:85

85—B

(10)

pleaseenterthescore:95

95—A

(11)

pleaseenterthescore:

—A

(12)

pleaseenterthescore:-10

Inputerror!

(13)

pleaseenterthescore:

程序代码

printf("%Inputa,b:");

max=ab?a:b;

Inputa,b:3.2,1

max=53

Inputa,b:1,3.2

max=3

Inputa,b:q

程序代码

inta,b,max,ret;

ret=scanf("%d,%d",a,b);//记录scanf()韩束的返回值

if(ret!=2)//根据scanf()函数返回值,判断输入数据个数或者格式是否错误

printf("Inputdatequantityorformaterror!\n");

fflush(stdin);//清除输入缓冲区中的错误数据

else//以此可以是正确读入数据后应该执行的操作

Inputa,b:1.2

Inputdatequantityorformaterror!

Inputa,b:13

程序代码

shortx=12,y=8;

printf("%5hd%5hd%5hd\n",x,x

y,xy);

printf("%5hu%5hd%5hd\n",~x,x

y,xy);

printf("%5hd%5hd%5hd\n\n",~x,x

y,xy);

-

转载请注明:
http://www.wanruiguanye.com/bzcs/77435578.html
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 网站首页 版权信息 发布优势 合作伙伴 隐私保护 服务条款 网站地图 网站简介

    温馨提示:本站信息不能作为诊断和医疗依据
    版权所有 2014-2024
    今天是: