好好学习,天天向上,学科吧欢迎您!
当前位置:首页 >> 最新范文 内容页

请参照本章例题,编写一个C程序,输出以下信息

请参照本章例题,编写一个C程序,输出以下信息 本文关键词:例题,本章,参照,编写,输出

请参照本章例题,编写一个C程序,输出以下信息 本文简介:1.5请参照本章例题,编写一个C程序,输出以下信息:*************************VeryGood!*************************解:mian(){printf(“**************************”);printf(“/n”);printf

请参照本章例题,编写一个C程序,输出以下信息 本文内容:

1.5请参照本章例题,编写一个C程序,输出以下信息:*************************

Very

Good!*************************

解:

mian()

{printf(“**************************”);

printf(“/n”);

printf(“Very

Good!/n”);

printf(“/n”);

printf(“**************************”);

}

1.6

编写一个程序,输入a、b、c三个值,输出其中最大值。

解:

mian()

{int

a,b,c,max;

printf(“请输入三个数a,b,c:/n”);

scanf(“%d,%d,%d”,max=a;

if(max

main()

{

char

c1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’;

c1+=4;

c2+=4;

c3+=4;

c4+=4;

c5+=4;

printf(“密码是%c%c%c%c%c/n“,c1,c2,c3,c4,c5);

}

运行结果:

密码是Glmre

3.9求下面算术表达式的值。

(1)x+a%3*(int)(x+y)%2/4

设x=2.5,a=7,y=4.7

(2)(float)(a+b)/2+(int)x%(int)y

设a=2,b=3,x=3.5,y=2.5

(1)2.5

(2)3.5

3.10写出程序运行的结果。

main()

{int

i,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

printf(“%d,%d,%d,%d”,i,j,m,n);

}

解:

9,11,9,10

3.12

写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。

(1)a+=a

(2)

a-=2

(3)

a*=2+3

(4)a/=a+a

(5)

a%=(n%=2),n的值等于5

(6)a+=a-=a*=a

解:

(1)

24

(2)

10

(3)

60

(4)

0

(5)

0

(6)

0

第四章

4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。

a=_3_

_b=_4_

_c=_5

x=1.200000,y=2.400000,z=-3.600000

x+y=_3.600_

_y+z=-1.20_

_z+x=-2.40

c1=ˊaˊ_or_97(ASCII)

c2=ˊbˊ_or_98(ASCII)

main()

{int

a=3,b=4,c=5;

long

int

u=51274,n=128765;

float

x=1.2,y=2.4,z=3.6;

char

c1=’a’,c2=’b’;

printf(“a=%2d

b=%2d

c=%2d/n“,a,b,c);

printf(“x=%f,y=%f,z=%f/n“,x,y,z);

printf(“x+y=%5.2f

y+z=%5.2f

z+x=%5.2f/n“,x+y,y+z,z+x);

printf(“u=%6ld

n=%9ld/n“,u,n);

printf(“%s

%s

%d%s/n“,“c1=’a’“,“or“,c1,“(ASCII)“);

printf(“%s

%s

%d%s/n“,“c2=’a’“,“or“,c2,“(ASCII)“);

}

4.7用scanf下面的函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=ˊAˊ,c2=ˊaˊ,问在键盘上如何输入?

main()

{

int

a,b;float

x,y;char

c1c2;

scanf(“a=%d_b=%d“,

scanf(“%f,%f“,C1=2*3.14*r;

Sa=3.14*r*r;

Sb=4*Sa;

Va=4*3.14*r*r*r/3;

Vb=Sa*h;

printf(“C1=%.2f/n“,C1);

printf(“Sa=%.2f/nSb=%.2f/nVa=%.2f/nVb=%.2f/n“,Sa,Sb,Va,Vb);

}

4.9输入一个华氏温度,要求输出摄氏温度。公式为

c=5(F-32)/9

输出要求有文字说明,取位2小数。

main()

{float

F,c;

scanf(“%f“,c=5*(F-32)/9;

printf(“c=%.2f“,c);

}

4.10编程序,用getchar函数读入两个字符给c1、c2,然后分别用函数和函数输出这两个字符。并思考以下问题:(1)变量c1、c2应定义为字符型或整形?抑二者皆可?(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?(3)整形变量与字符变量是否在任何情况下都可以互相代替?如:

char

c1,c2;

int

c1,c2;

是否无条件的等价?

#include“stdio.h“main()

{char

c1,c2;

c1=getchar();c2=getchar();

putchar(c1);putchar(’/n’);putchar(c2);putchar(’/n’);

}

#include“stdio.h“main()

{char

c1,c2;

c1=getchar();c2=getchar();

printf(“c1=%d

c2=%d/n“,c1,c2);

printf(“c1=%c

c2=%c/n“,c1,c2);

}

第五章

5.1

什么是算术运算?什么是关系运算?什么是逻辑运算?

解:略。

5.2

C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?

解:设有一个逻辑表达式,若其结果为“真”,则以1表示;若其结果为“假”,则以0表示。但是判断一个逻辑量的值时,以0代表“真”,以非0代表“假”。例如3

printf(“请输入3个整数:“);

scanf(“%d,%d,%d“,if(a

main()

{

int

a,b,c,temp,max;

printf(“请输入3个整数:“);

scanf(“%d,%d,%d“,temp=(a>b)?a:b;

/*

将a和b中的大者存人temp中/

max=(temp>c)?temp:c;

/*

将a和b中的大者与c比较,取最大者*/

printf(“3个整数的最大数是%d/n”,max);

}

5.5

有一函数:

写一程序,输入x值,输出y值。

解:

#include

main()

{int

x,y;

printf(“输入x:“);

scanf(“%d“,if(x

main()

{

float

score;

char

grade;

printf(“请输入学生成绩:“);

scanf(“%f“,while(score>100||(score

main()

{

long

int

num;

int

indiv,ten,hundred,thousand,ten_thousand,place;

/*分别代表个位、十位、百位、千位、万位和位数*/

printf(“请输入一个整数(0~99999):“);

scanf(“%ld“,if

(num>9999)

place=5;

else

if(num>999)

place=4;

else

if(num>99)

place=3;

else

if(num>9)

place=2;

else

place=1;

printf(“place

=%d/n“,place);

ten_thousand=num/10000;

thousand=num/1000%10;

hundred=num/100%10;

ten=num%100/10;

indiv=num%10;

switch(place)

{

case

5:

printf(“%d,%d,%d,%d,%d“,ten_thousand,thousand,hundred,ten,indiv);

printf(“/n反序数字为;“);

printf(“%d%d%d%d%d/n“,indiv,ten,hundred,thousand,ten_thousand);

break;

case

4:

printf(“%d,%d,%d,%d“,thousand,hundred,ten,indiv);

printf(“/n反序数字为:“);

printf(“%d%d%d%d/n“,indiv,ten,hundred,thousand);

break;

case

3:

printf(“%d,%d,%d“,hundred,ten,indiv);

printf(“/n反序数字为:“);

printf(“%d%d%d/n“,indiv,ten,hundred);

break;

case

2:

printf(“%d,%d“,ten,indiv);

printf(“/n反序数字为:“);

printf(“%d%d/n“,indiv,ten);

break;

case

1:

printf(“%d“,indiv);

printf(“/n反序数字为:“);

printf(“%d/n“,indiv);

break;

}

}

5.8

企业发放的奖金根据利润提成。利润I低于或等于10万元时,奖金可提成10%

;利润高于10万元,低于20万元(1000001000000时,超过100万元的部分按1%提成。从键盘输入当月利润I,求应发放奖金总数。要求:(1)用if语句编程序;(2)用switch语句编程序。

解:计算利润时,要特别注意不同利润的不同提成比例。例如,利润为15万元,其中有10万元按10%的比例提成,另外5万元则按7.5%提成。

(1)

用if语句编程序。

#include

main()

{

long

i;

float

bonus,bon1,bon2,bon4,bon6,bon10;

bon1=100000*0.1;

/*利润为10万元时的奖金*/

bon2=bon1+100000*0.075;

/*利润为20万元时的奖金*/

bon4=bon2+200000*0.05;

/*利润为40万元时的奖金*/

bon6=bon4+200000*0.03;

/*利润为60万元时的奖金*/

bon10=bon6+400000*0.015;

/*利润为100万元时的奖金*/

printf(“请输入利润i:“);

scanf(“%ld“,if(i

main()

{

long

i;

float

bonus,bon1,bon2,bon4,bon6,bon10;

int

c;

bon1=100000*0.1;

bon2=bon1+100000*0.075;

bon4=bon2+200000*0.05;

bon6=bon4+200000*0.03;

bon10=bon6+400000*0.015;

printf(“请输入利润i:“);

scanf(“%ld“,c=i/100000;

if(c>10)

c=10;

switch(c)

{

case

0:

bonus=1*0.1;break;

case

1:

bonus=bon1+(i-100000)*0.075;break;

case

2

:

case

3:

bonus=bon2+(i-200000)*0.05;

break;

case

4:

case

5:

bonus=bon4+(i-400000)*0.03;break;

case

6:

case

7:

case

8:

case

9:

bonus=bon6+(i-600000)*0.015;break;

case

10:

bonus=bon10+(i-1000000)*0.01;

}

printf(“奖金是%10.2f“,bonus);

}

5.9

输入4个整数,要求按由大到小的顺序输出。

解:此题采用依次比较的方法排出其大小顺序。在学习了循环和数组以后,可以有更多的排序方法。

#include

main()

{

int

t,a,b,c,d;

printf(“请输入4个整数:“);

scanf(“%d,%d,%d,%d“,printf(“/n

a=%d,b=%d,c=%d,d=%d/n“,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=a;

b=c;

c=t;}

if(b>d)

{t=b;

b=d;

d=t;}

if(c>d)

{t=c;

c=d;

d=t;}

printf(“排序结果如下:/n“);

printf(“%d,%d,%d,%d/n“,a,b,c,d);

}

5.10

有4个圆塔,圆心分别为(2,2)、(-2,2)、(2,-2)、(-2,-2),圆半径为1。这4个塔的高度分别为10m。塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为零)。

程序如下:

#include

main()

{

int

h=10;

float

x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=-2,y4=-2,x,y,d1,d2,d3,d4;

printf(“请输入一个点(x,y):“);

scanf(“%f,%f“,d1=(x-x1)*(x-x1)+(y-y1)*(y-y1);

/*求该点到各中心点的距离*/

d2=(x-x2)*(x-x2)+(y+y2)*(y+y2);

d3=(x+x3)*(x+x3)+(y-y3)*(y-y3);

d4=(x+x4)*(x-x4)*(y+y4)*(y+y4);

if(d1>1

/*判断该点是否在塔外*/

printf(“该点高度为%d/n“,h);

}

第六章

第六章

循环控制

6.1输入两个正整数m和n,求其最大公约数和最小公倍数。

main()

{long

m,n,i=1,j,s;

scanf(“%ld,%ld“,for(;i=n)

j=m;

else

j=n;

for(;!(j%m==0j++);

printf(“s=%ld,j=%ld/n“,s,j);

}

6.2输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

#include“stdio.h“main()

{char

c;int

i=0,j=0,k=0,l=0;

while((c=getchar())!=’/n’)

{if(c>=65

printf(“%.3f/n“,x1);

}

6.12

用牛顿迭代法求方程在1.5附近的根。

main()

{double

x,y;x=1.5;

do{y=2*x*x*x-4*x*x+3*x-6;

x=x-y/(6*x*x-8*x+3);}

while(y!=0);

printf(“x=%.3f/n“,x);

}

6.13用二分法求方程在(-10,10)之间的根

main()

{double

x1,x2,y1,y2;x1=-10;x2=10;

do{y1=2*x1*x1*x1-4*x1*x1+3*x1-6;

x1=x1-y1/(6*x1*x1-8*x1+3);}

while(y1!=0);

do

{y2=2*x2*x2*x2-4*x2*x2+3*x2-6;

x2=x2-y2/(6*x2*x2-8*x2+3);}

while(y2!=0);

printf(“x1=%.3f,x2=%.3f/n“,x1,x2);

}

6.14打印以下图案

#include“math.h“main()

{int

i,j,k;

for(i=0;i=k+1)

printf(“%5d“,a[i]);

}

printf(“/n“);

}

7.2用选择法对10个整数从小到大排序。

main()

{

int

i,j,a[10],t;

for(i=0;ia[i+1])

{t=a[i+1];a[i+1]=a[i];a[i]=t;}

for(i=0;ia[i+1])

{t=a[i+1];a[i+1]=a[i];a[i]=t;}

for(i=1;i0;i--)

if(a[i]-1;i--)

printf(“%5d“,b[i]);

printf(“/n“);}

7.6打印出以下杨辉三角形(要求打印出10行)。

1

1

1

1

2

1

1

3

3

1

1

4

6

4

1

1

5

10

10

5

1

main()

{

static

int

m,n,k,b[15][15];

b[0][1]=1;

for(m=1;m

main()

{

int

a[16][16],i,i,k,p,m,n;

p=1;

while(p==1)

/*要求阶数为1~15的商数*/

{

printf(“Enter

n(n=1~15):“);

scanf(“%d“,if((n!=0)

j=j-1;

}

else

{

if(in)

j=1;

}

if(a[i][j]==0)

a[i][j]=k;

else

{

i=i+2;

j=j-1;

a[i][j]=k;

}

}

for(i=1;i=a[i][j+1])

b[k]=a[i][j+1]=a[i][j];

else

b[k]=a[i][j+1];

}

for(j=0,l=0;ja[7])

{if(a[i]-m==0)

{printf(“it

is

at

(%d)/n“,i+1);break;}i++;}

else

printf(“8/n“);

}

if(fabs(i-7)-8==0)

printf(“There

is

not/n“);

}

7.10有一篇文章,共有3行文字,每行有个80字符。要求分别统计出其中英文大写字母、小写字母、空格以及其它字符的个数。

main()

{int

i,j=0,k=0,l=0,m=0,n=0;char

str0[301],str1[100],str2[100],str3[100];

gets(str1);gets(str2);gets(str3);

strcat(str0,str1);strcat(str0,str2);strcat(str0,str3);

for(i=0;str0[i]!=’/0’;i++)

{if(str0[i]>=65&&str0[i]<=90

TAG标签: