C语言答案.docx

上传人:b****8 文档编号:9774269 上传时间:2023-02-06 格式:DOCX 页数:84 大小:106.90KB
下载 相关 举报
C语言答案.docx_第1页
第1页 / 共84页
C语言答案.docx_第2页
第2页 / 共84页
C语言答案.docx_第3页
第3页 / 共84页
C语言答案.docx_第4页
第4页 / 共84页
C语言答案.docx_第5页
第5页 / 共84页
点击查看更多>>
下载资源
资源描述

C语言答案.docx

《C语言答案.docx》由会员分享,可在线阅读,更多相关《C语言答案.docx(84页珍藏版)》请在冰豆网上搜索。

C语言答案.docx

C语言答案

1、

47754

2、

二进制:

10110001

八进制:

261

十六进制:

B1

3、

0111111111111111

4、

1111111111111110

5、

89

6、

01001001

7、

10010100

8、

-39

9、

11100110

10、

00001000

11、t=0改为t=1;

i

t=t*1改为t=t*I;

12、

#include

voidmain()

{printf(“*\n“);

printf(“**\n“);

printf(“**\n”);

printf(“**\n“);

printf(“*\n“);

}

13、

#include

voidmain()

{

inta;

a=2+3+4;

printf(“%d”,a);

}

1.

(1)=sin(x)*sin(x)*(a+b)/(a–b)

(2)x>20&&x<30||x<-100

(3)=0.5*(a*x+(a+x)/(4*a))

(4)=sqrt(sqrt(sin(x)*sin(x)*sin(x)*sin(x)*sin(x)))

(5)=3*a*e/(c*d)

(6)~a>>4

2.

(1)2.5+-1=3.5

(2)1+0=1

(3)0

3

n=m%10+m/10%10*100+m/100*10/*n为bac,m为abc*/

4

(1):

1

(2):

1

(3):

1

(4):

3

(5):

1

(6):

0

(7):

0

(8):

6

5

(C>=65&&C<=90)?

(C=C):

(C=C+32)

第三章

1.

#include

voidmain()

{

floatpi,r,l,s;

pi=3.14;/*定义PI的值*/

printf("Pleaseinputthe\'r\':

\n");

scanf("%f",&r);

l=2*pi*r;/*计算周长*/

s=pi*r*r;/*计算面积*/

printf("周长=%.2f\n面积=%.2f\n",l,s);

}

运行结果:

Pleaseinputthe'r':

5

周长=31.40

面积=78.50

 

2.

#include

#include

voidmain()

{

inti=0;

charc;

printf("输入一串字符");

while((c=getchar())!

='\n')

/*利用getchar的特性

进行对c的逐个赋值*/

{

i++;

putchar(c);

}

printf("\n位数为:

%d\n",i);

}

运行结果:

输入一串字符china

china

位数:

5

3.

#include

voidmain()

{

inta,b,x,y;

printf("请输入头数脚数:

\n");

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

if(b%2==0&&b>=2*a)

{

x=(b-2*a)/2;

y=a-x;

printf("鸡数:

%d\n兔数:

%d\n",y,x);

}

else

printf("Dataiserror");

}

运行结果:

请输入头数脚数:

2464

鸡数:

16

兔数:

8

 

4.

#include

#include

voidmain()

{

chara,b,c;

printf("正序输入为:

");

a=getche();

b=getche();

c=getche();

/*顺序读入三个字符*/

printf("\n逆序输出为:

");

putchar(c);

putchar(b);

putchar(a);

printf("\n");

/*倒序输出三个字符*/

}

第四章

1.

算术运算是有加,减,乘,除组成的表达式;

关系运算是有>,<,<=,>=,==,!

=等关系运算符组成的表达式;

逻辑运算有与(&&),或(||),非(!

)等逻辑运算符组成的表达式!

2.

111001

3.

0101

4

C语言中用'1'表示“真”,用'0'表示“假”

当遇到非零数时,系统判断为真;遇到零时,为假

5.

#include

voidmain()

{

intx;

printf("Pleaseinput\'x\'\n");

scanf("%d",&x);

if(x>=0)

x=x;

else

x=-x;

printf("Absolutelyis%d\n",x);

}

运行结果:

Pleaseinput'x'

-359

Absolutelyis359

运行结果:

正序输入为:

956

逆序输出为:

659

 

5.

#include

#include

voidmain()

{

floata,b,c,s,area;

printf("Pleaseinput:

\n");

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

if(a+b<=c||a+b<=b||

b+c<=a||a<=0||b<=0||c<=0)

/*满足三角形边长条件*/

printf("Dataiserror\n");

else

{

s=0.5*(a+b+c);

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

printf("Areais%.2f\n",area);

}

}

运行结果:

Pleaseinput:

457

Areais9.80

6.

#include

voidmain()

{

inta,b,c;

printf("Pleaseinput3numbers\n");

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

if(a

if(b

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

else

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

elseif(a

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

else

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

}

运行结果:

Pleaseinput3numbers

73-5482

Max=82

7.

#include

#include

voidmain()

{

floata,b,c,delta;

doublex;

printf("Pleaseinput:

\n");

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

delta=b*b-4*a*c;

/*进行delta判断*/

if(delta<0)

printf("Norealroot\n");

elseif(delta==0)

printf("Onlyoneroot=%f\n",-b/(2*a));

else

{

x=-b+sqrt(delta)/(2*a);

printf("Onerootis:

%f\n",x);

x=-b-sqrt(delta)/(2*a);

printf("Theotherrootis:

%f\n",x);

}

}

运行结果:

Pleaseinput:

1-1-30

Onerootis:

6.500000

Theotherrootis:

-4.500000

 

8.

#include

voidmain()

{

floatx,y;

printf("请输入x\n");

scanf("%f",&x);

if(x<1)

y=x;

elseif(x>=1&&x<3)

y=2*x-1;

else

y=3*x*x-10;

printf("y=%.2f\n",y);

}

运行结果:

请输入x

2.5

y=4.00

10.

#include

voidmain()

{

intvalue1,value2;

floatvalue3;

charoperate;

printf("Inputyourexprssion:

\n");

scanf("%d%c%d",&value1,&operate,&value2);

switch(operate)

{

case'+':

printf("%d%c%d=%d\n",value1,

operate,value2,value1+value2);

break;

case'-':

printf("%d%c%d=%d\n",

value1,operate,value2,value1-value2);

break;

case'*':

printf("%d%c%d=%d\n",

value1,operate,value2,value1*value2);

break;

case'/':

if(value2==0)

printf("Divishionbyzero.\n");

else

{

value3=(float)value1/value2;

printf("%d%c%d=%.2f\n",

value1,operate,value2,value3);

}

break;

default:

printf("Unknownoperate.\n");

}

}

运行结果:

Inputyourexprssion

9/5

9/5=1.80

9.

#include

voidmain()

{

intscore;

printf("请输入成绩:

");

scanf("%d",&score);

if((score>100)||(score<0))

printf("Inputerror\n");

else

{

score=score/10;

switch(score)

{

case10:

printf("A\n");break;

case9:

printf("A\n");break;

case8:

printf("B\n");break;

case7:

printf("C\n");break;

case6:

printf("D\n");break;

default:

printf("E\n");break;

}

}

}

 

运行结果:

请输入成绩:

89

B

 

第五章

1.满足条件与不满足条件,与分支表达式完全相同。

都是对表达式值进行非零判断。

 

2.循环变量是指在循环程序中随着循环的进行而改变的变量,例如i++中的i是常见的循环变量。

当循环中出现break语句是有可能结束整个循环,而当循环中出现continue时,有可能结束一次循环。

 

3.

while与do-while都是循环语句,while执行是先判断是否满足括号内的条件,而do-while先进行一次do的运算,再判断。

一般情况下,两语句处理同一问题时若二者的循环题部分是一样的,它们的结果也一样。

但是如果while后面的表达式一开始就为假,两种循环的结果是不同的:

while语句不会执行,而do-while语句会执行一次。

 

4.

continue语句只是结束本次循环,而不是终止整个循环的执行。

而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。

 

5.

(1)

#include

voidmain()

{

intsum=0,i=1;

while(sum<1000)

{

sum+=i;

i++;

}

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

}

运行结果:

i=46

(2)

#include

voidmain()

{

floatsum=0;

intn=1;

while(sum<2)

{

sum+=(float)1/(n++);

}

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

}

运行结果:

n=5

6.

#include

voidmain()

{

inta,b,x,y,u;

printf("Pleaseinput2numbers:

\n");

scanf("%d%d",&x,&y);

for(k=0;k<=4-2*i;k++)

printf("*");

printf("\n");

}

}

运行结果:

*

***

*****

*******

*****

***

*

8.略

9.#include

voidmain()

{

chari,j,k;

/*i是a的对手;j是b的对手;k是c的对手*/

for(i='x';i<='z';i++)

for(j='x';j<='z';j++)

{

if(i!

=j)

for(k='x';k<='z';k++)

{

if(i!

=k&&j!

=k)

{

if(i!

='x'&&k!

='x'&&k!

='z')

printf("Theorderis:

\na--%c\nb--%c\nc--%c\n",i,j,k);

}

}

}

}

if(x>y)

{

u=x;

x=y;

y=u;/*保证x>y*/

}

a=x,b=y;

while(b!

=0)

{

u=a%b;

a=b;

b=u;

}/*辗转相除法求最大公约数*/printf("最大公约:

%d\n最小公倍:

%d\n",a,x*y/a);

}

运行结果:

Pleaseinput2numbers:

6480

最大公约:

16

最小公倍:

320

7.

#include"stdio.h"

voidmain()

{

inti,k,j;

/*根据星星排列的规律找出公式*/

for(i=0;i<=3;i++)

{

for(j=0;j<=2-i;j++)

printf("");

/*根据行数算出空格数*/

for(k=0;k<=2*i;k++)

printf("*");

printf("\n");

/*根据行数算出星星数*/

}

for(i=0;i<=2;i++)

{

for(j=0;j<=i;j++)

printf("");

运行结果:

Theorderis:

a--z

b--x

c--y

10.

#include

voidmain()

{

intx,y,z,s1,s2;

/*此题用的是穷举法,

就是每个数都去试一遍,直到得出结果*/

for(x=0;x<=40;x++)

for(y=x;y<=40;y++)

for(z=y;z<=40;z++)

{

s1=x+y+z;

s2=x*x+y*y+z*z;

if(s1==40&&s2==600)

printf("方程解为:

x=%dy=%dz=%d\n"

x,y,z);

}

}

运行结果:

方程的解为:

x=10y=10z=20

11.

#include

#include

intmain()

{

floata;

/*被开方数*/

floatx0,x1;

/*分别代表前一项和后一项*/

printf("Inputapositivenumber:

\n");

scanf("%f",&a);

x0=a/2;/*任取初值*/

x1=(x0+a/x0)/2;

while(fabs(x1-x0)>=1e-5)

{

x0=x1;

x1=(x0+a/x0)/2;

}

printf("Thesquarerootof%5.2fis%8.5f\n",a,x1);

return0;

}

运行结果:

Inputapositivenumber:

2

Thesquarerootof2.00is1.41421

12.

#include

intcow(intx);

voidmain(void)

{

inti=1;

intsum=1;

for(i;i<=20;i++)

{

sum+=cow(i);

}

printf("有%d头牛\n",sum);

}

intcow(intn)

{

intm=n-4;

intsum=0;

if(n<=4)

return1;

else

for(m;m>=1;m--)

{

sum+=cow(m);

}

returnsum;

}

运行结果:

有658头牛

3.

#include

voidmain()

{

inta[4][4],i,j,s1;

printf("输入矩阵\n");

for(i=0;i<=3;i++)

for(j=0;j<=3;j++)

scanf("%d",&a[i][j]);

/*搜索矩阵对角线*/

for(i=0,s1=0;i<=3;i++)

{

s1+=a[i][i];

s1+=a[3-i][i];

}

printf("对角元素之和是%d\n",s1);

}

运算结果:

输入矩阵

22374598

44759612

22375586

79463815

对角线元素之和是477

4.

#include

voidmain()

{

inta[10],b[9],i;

printf("请输入a数组的内容");

for(i=0;i<=9;i++)

scanf("%d",&a[i]);

/*顺次计算b数组的内容*/

for(i=1;i<=9;i++)

b[i-1]=a[i]/a[i-1];

for(i=1;i<=9;i++)

{

printf("%d",b[i-1]);

if(i%3==0)

printf("\n");

}

}

第六章

1.

(1)、

(2)

均为错

错在:

C语言不允许定义动态数组,即数组的长度不能依赖于程序运行过程中变化着的量。

(3)

错在地址符的输入错误,应将"&a"改为"&a[i]"其中i为小于5的数

(4)

2.

#include

voidmain()

{

inti,j,p,a[10];

printf("输入十个整数");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

/*用冒泡排序算法*/

for(j=0;j<=8;j++)

for(i=0;i<=9-j;i++)

if(a[i]>a[i+1])

/*大的就沉下去,即交换*/

{p=a[i];

a[i]=a[i+1];

a[i+1]=p;

}

printf("排序之后:

\n");

for(i=0;i<=9;i++)

printf("%d",a[i]);

}

运算结果:

输入十个整数5789634721

排序之后:

1234567789

6.

#include

voidmain()

{

charstr[100];

intn;

printf("请输入字符串");

scanf("%s",&str);

n=0;

while(str[n]!

='\0')n++;

n--;/*减掉最后的一位*/'\0'

printf("倒序输出的是:

");

while(n>=0)

{

printf("%c",str[n]);

n--;

}

}

运算结果:

请输入字符串:

abcdefg

倒序输出的是:

gfedcba

7.

#include

voidmain()

{

inti=0,j=0;

chara[100],b[100];

printf("请输入字符串a,b\n");

scanf("%s",&a);

scanf("%s",&b);

/*求出a字符串的长度*/

while(a[i]!

='\0')

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

当前位置:首页 > 党团工作 > 其它

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

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