C语言课后答案.docx

上传人:b****1 文档编号:2952716 上传时间:2023-05-05 格式:DOCX 页数:26 大小:21.13KB
下载 相关 举报
C语言课后答案.docx_第1页
第1页 / 共26页
C语言课后答案.docx_第2页
第2页 / 共26页
C语言课后答案.docx_第3页
第3页 / 共26页
C语言课后答案.docx_第4页
第4页 / 共26页
C语言课后答案.docx_第5页
第5页 / 共26页
C语言课后答案.docx_第6页
第6页 / 共26页
C语言课后答案.docx_第7页
第7页 / 共26页
C语言课后答案.docx_第8页
第8页 / 共26页
C语言课后答案.docx_第9页
第9页 / 共26页
C语言课后答案.docx_第10页
第10页 / 共26页
C语言课后答案.docx_第11页
第11页 / 共26页
C语言课后答案.docx_第12页
第12页 / 共26页
C语言课后答案.docx_第13页
第13页 / 共26页
C语言课后答案.docx_第14页
第14页 / 共26页
C语言课后答案.docx_第15页
第15页 / 共26页
C语言课后答案.docx_第16页
第16页 / 共26页
C语言课后答案.docx_第17页
第17页 / 共26页
C语言课后答案.docx_第18页
第18页 / 共26页
C语言课后答案.docx_第19页
第19页 / 共26页
C语言课后答案.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言课后答案.docx

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

C语言课后答案.docx

C语言课后答案

第一章

习题

一.问答题

1.C语言有哪些特点?

答案:

C语言具有如下特点:

●C语言简洁、紧凑。

●C语言是一种结构化的程序设计语言。

●C语言具有丰富的数据类型。

●C语言提供了丰富的运算符。

●C语言可以直接对硬件进行操作。

●C语言的移植性好

2.C程序的结构是由哪几个部分组成?

答案:

C程序是由若干个函数组成的。

一个函数一般由函数头和函数体组成。

函数头一般包括函数类型、函数名、参数类型以及参数说明;函数体由花括号括起来,函数体一般包括声明部分和执行部分。

一个C程序中有且仅有一个main函数。

3.C程序的基本单位是什么?

答案:

函数是组成C语言结构化程序的基本单位。

4.C语言中常用的表示算法的工具有哪些?

答案:

常用的表示算法的工具有传统流程图、N-S图、自然语言、伪代码等。

其中,流程图是一种流传很广的描述算法的方法。

N-S图是一种无流线的流程图。

自然语言是人们日常生活使用的语言。

伪码(Preudocode)是指介于自然语言和计算机语言之间的一种代码,它不能在计算机上运行,

二.分析程序结构,写出程序运行的结果。

1.#include

main()

{printf("IloveChina!

\n");

printf("wearestudents.\n");

}

答案:

IloveChina!

wearestudents.

2.#include

main()

{inta;

a=5;

printf("%d\n",a+1);

}

答案:

6

三.编程题

1.编写一个C程序,输出以下信息:

********************

Iamastudent!

********************

答案:

main()

{printf("********************\n");

printf("Iamastudent!

\n");

printf("********************\n");}

2.编写一个实现加法运算的程序。

答案:

main()

{inta,b,sum;

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

sum=a+b;

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

3.自己设计一个实现两数交换的算法。

答案:

main()

{inta,b,t;

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

t=a;

a=b;

b=t;

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

 

第二章

习题

一.选择题

1.以下正确的C语言标识符是(C)

A、%XB、a+bC、a123D、test!

2.以下结果为整型的表达式(设inti;charc;floatf;)(B)

A、i+fB、i*cC、c+fD、i+c+f

3.下面四个选项中,均是合法的整型常量的选项是(A)

A、160、–oxffff、011B、–oxcdf、01a、0xe

C、–01、986,012、0668D、–ox48a、2e5、ox

4.下面四个选项中,均是不合法的浮点数的选项是(B)

A、160.、0.12、e3B、123、2e4.2、e5

C、–.18、123e4、0.0D、–e3、.234、1e3

5.已知字母A的ASCⅡ码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’;后,c2中的值为(A)

A、DB、68C、不确定的值D、C

6.逗号表达式(a=3*5,a*4),a+15的值(C),a的值为(C)。

A、15,60B、60,30C、30,15D、不确定,90

7.设a=2,b=0,c;则执行c=b&&a--;语言后,a的结果是(C),c的结果是(C)。

A、0,1B、1,0C、2,0D、1,1

8.在C语言中,不同类型数据混合运算时,要先转换成同一类型后进行运算。

设一表达式中包含有int、long、char和double类型的变量和数据,则表达式最后的运算结果是()。

这四种类型数据的转换规律是(C)。

A、long,int-char-double-longB、long,char-int-long-double

C、double,char-int-long-doubleD、doulbe,char-int-double-long

二.操作题

1.写出下面程序执行的结果

main()

{printf("%d%d%d%d\n",1+2,5/2,-2*4,11%3);

printf("%f%f%f\n",1.+2.,5./2.,-2.*4.);}

答案:

32-82

3.0000002.5000000-8.000000

2.写出下面程序执行的结果

main()

{printf("\007ABC\011DE\012FGH\0xA");

printf("\nABC\tDE\nFGH\n");

printf("\nwhyis21+31equalto%d?

\n\n",21+31);}

答案:

ABCDE

FGH

ABCDE

FGH

Whyis21+31equalto52?

3.写出下面程序执行的结果

main()

{intx,y,z;

x=y=2;z=3;

y=x++-1;printf("%d\t%d\t",x,y);

y=++x-1;printf("%d\t%d\t",x,y);

y=z--+1;printf("%d\t%d\t",z,y);

y=--z+1;printf("%d\t%d\n",z,y);}

答案:

31432412

4.写出下面程序执行的结果

main()

{intx=40,y=4,z;

x+=y||(z=4);

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

x=x+=(z&&y);

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

答案:

41

42

5.写出下面程序执行的结果

main()

{charc1='a',c2='b',c3='c',c4='\101',c5='\116';

printf("a%cb%c\tc%c\tabc\n",c1,c2,c3);

printf("\t\b%c%c",c4,c5);}

答案:

aabbccabc

AN

三.编程题

1.定义一个常量和一个变量,把它们的乘积输出。

答案:

#definea2

main()

{intb,c;

b=3;

c=a*b;

printf("%d\n",c);}

2.编程求下面算术表达式的值。

(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)

main()

{inta=7;

floatx=2.5,y=4.7;

printf("%f\n",x+a%3*(int)(x+y)%2/4);}

结果:

2.5000000

(2)

main()

{inta=2,b=3;

floatx=3.5,y=2.5;

printf("%f\n",(float)(a+b)/2+(int)x%(int)y);}

结果:

3.5000000

3.编写一个程序实现将一个整型数据转换成实型数据输出。

答案:

main()

{inta;

scanf("%d",&a);

printf("a=%f\n",(float)a);}

 

第三章

习题

一.选择题

1.阅读以下程序,当输入数据的形式为:

25,13,10,正确的输出结果为(D)

#include

main()

{intx,y,z;

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

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

A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值

2.以下程序的执行结果(A)

#include

main()

{intn=2;

printf("%d,%d,%d\n",n,++n,n--);}

A、2,2,2B、2,3,3C、2,3,4D、2,3,2

3.以下程序的执行结果是(D)

#include

main()

{inta=2,b=5;

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

A、a=%2,b=%5B、a=2,b=5C、a=%%d,b=%%dD、a=%d,b=%d

4.执行下列程序时输入:

2468101,程序的运行结果为(C)

#include

main()

{intx,y;

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

printf("%1d\n",x+y);}

A、24B、92C、34D、125

5.执行下列程序时输入:

aceg,程序的运行结果为(C)

#include

main()

{charx,y;

x=getchar();

y=getchar();

putchar(x);putchar('\n');putchar(y);}

A、acB、aeC、aD、a

ce

二.操作题

1.写出下面程序执行的结果

#include

main()

{inta,b,x;

x=(a=3,b=a--);

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

答案:

x=3,a=2,b=3

2、写出下面程序执行的结果

#include

#include

main()

{inta=1,b=2,c=2;

floatx=10.5,y=4.0,z;

z=(a+b)/c+sqrt((int)y)*1.2/c+x;

printf("z=%f\n",z);}

答案:

z=12.700000

3.若从键盘键入a<回车>后,请写出执行结果

#include

main()

{intx=1,y=2;

charc1,c2;

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

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

putchar(c1);putchar(c2);

printf("%d%d%d",y,x,y);}

答案:

121

a

212

4.用下面的scanf函数输入数据,使a=10,b=20,c1=‘A’,c2=‘a’,x=1.5,y=-3.75,z=67.8,请问在键盘上如何输入数据?

scanf(“%5d%5d%c%c%f%*f,%f”,&a,&b,&c1,&c2,&1.5x,&y,&z);

答案:

1020Aa1.5-3.751,67.8

三.编程题

1.假设银行定期存款的年利率rate为2.25%,并已知存款期为n年,存款本金为capital元,试编程计算n年后可得到本利之和deposit。

答案:

#include

#include

main()

{intn;

floatrate=0.0225,capital,deposit;

scanf("%d,%f",&n,&capital);

deposit=capital*pow(1+rate,n);

printf("deposit=%f\n",deposit);}

2.将一个三位数整数,正确分离出它的个位、十位和百位数字,并分别在屏幕上输出。

提示:

本题要求设计一个从三位整数中分离出它的个位、十位和百位数的算法。

例如:

输入的数是135,则输出的分别是5,3,1,最高位数字可用对100整除的方法得到,如135/100=5,十位数可用对100求余后的结果再对10求余得到,如135%100/10=3;个位也可通过该方法得到,如135%100%10=1。

答案:

#include

main()

{intn,a,b,c;

scanf("%d",&n);

a=n/100;

b=n%100/10;

c=n%100%10/1;

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

3.若a=3,b=4,c=5,x=1.2,y=2,4.z=-3.6,u=51274,n=128765,c1=‘a’,c2=‘b’。

请按照以下的输出格式和结果写出程序(包括定义变量类型和设计输出格式)。

要求输出的结果如下:

a=3b=4c=5

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

x+y=3.60y+z=-1.20z+x=-2.40

u=51274n=128765

c1=‘a’or97(ASCII)

c2=‘B’or98(ASCII)

答案:

#include

main()

{inta=3,b=4,c=5;

floatx=1.2,y=2.4,z=-3.6;

unsignedu=51274;

longn=128765;

charc1='a',c2='b';

printf("a=%2db=%2dc=%2d\n",a,b,c);

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

printf("x+y=%5.2fy+z=%.2fz+x=%.2f\n",x+y,y+z,z+x);

printf("u=%6un=%9ld\n",u,n);

printf("c1='%c'or%d(ASCII)\n",c1,c1);

printf("c2='%c'or%d(ASCII)\n",c2,c2);}

 

第五章

一、选择题

1.C2.C、D3.D4.A5.D6.D

三、

1.

main()

{floatsum=0,score,ave;

intn=0;

scanf("%f",&score);

while(score>0)

{n++;

sum=sum+score;

scanf("%f",&score);

}

ave=sum/n;

printf("\nTheaveragescoreis%.2f",ave);

}

2.

#include"stdio.h"

main()

{charch;

intcha=0,space=0,digit=0,other=0;

while((ch=getchar())!

='@')

{if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')cha++;

elseif(ch=='')space++;

elseif(ch>='0'&&ch<='9')digit++;

elseother++;

}

printf("\ncha=%d,space=%d,digit=%d,other=%d",cha,space,digit,other);

}

3.

main()/*TV大奖赛*/

{intn,i=1;

floatx,max,min,sum=0;

printf("\nPleaseinputthenumberofscore:

");

scanf("%d",&n);

printf("\nInputscore:

");

scanf("%f",&x);

max=x;

min=x;

sum=x;

while(i

i++;

scanf("%f",&x);

sum+=x;

if(max

elseif(x

}

sum=(sum-max-min)/(n-2);

printf("Thelastscoreis%8.2f\n",sum);

}

4.

main()

{intk1,k2,k3,i;

clrscr();

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

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

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

{i=k1*k1*k1+k2*k2*k2+k3*k3*k3;

if(i==k1*100+k2*10+k3)

printf("\n%d=%d^3+%d^3+%d^3",i,k1,k2,k3);

}

}

5.

main()

{floati,s=1,t=1;

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

{t*=2;

s+=t;

}

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

}

6.

main()

{floath=8848.13,h0=0.0001,h1;

intm=0;

h1=h0;

while(h0<=h)

{

h0=2*h0;

printf("\nm=%d,high=%f",m,h0);

m++;

}

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

}

7.

main()

{intday=10,x0=1,x1,x2;

while(day>1)

{x1=2*x0+2;

day--;

x0=x1;

}

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

}

8.

#include

main()

{

inti,x;

intp,q,k1,k2;

printf("Pleaseinputanodddata(>=6):

");

scanf("%d",&x);

for(p=3;p<=x/2;p+=2)

{

k1=k2=1;

q=x-p;

if(p>2)

for(i=2;i

if(p%i==0)

k1=0;

for(i=2;i

if(q%i==0)

k2=0;

if(k1==1&&k2==1)

printf("%d=%d+%d\n",x,p,q);

}

}

9.

#include"math.h"

main()

{inti,j,k=0;

clrscr();

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

{if(i/10==0)j=1;/*因为i是整型,所以是整除*/

elseif(i/100==0)j=2;

elseif(i/1000==0)j=3;

if((longint)i*i%(int)pow(10,j)==i)/*同构数的定义*/

{k++;/*计数器*/

printf("%10d",i);

if(k%5==0)printf("\n");

}

}

printf("\nk=%d",k);

}

 

第六章

一、选择题

1.D2.A3.D4.A5.A6.C7.D8.A9.D

二、

54321

三、源程序

1.

#include"stdio.h"

#include"string.h"

main()

{chara[20],x;

intn=0,i=0;

printf("\nPleaseinputstring,endofenterkey:

");

gets(a);

printf("\nPleaseinputx:

");

x=getchar();

while(a[i]!

='\0')

{if(a[i]==x)n++;

i++;

}

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

}

2.

main()

{floatx[100],sum,ave;

inti,n;

scanf("%d",&n);

for(i=0;i<=n-1;i++)

scanf("%f",&x[i]);

sum=0;

for(i=0;i<=n-1;i++)

sum=sum+x[i];

ave=sum/n;

printf("aver=%f\n",ave);

printf("greatherthanavernum:

");

for(i=0;i<=n-1;i++)

if(x[i]>ave)printf("%f",x[i]);

}

3.

#include

main()

{

intbuffer[10],i,k,b;

longnumber,n;

printf("inputapositivenumber:

");

scanf("%ld",&number);

k=0;

n=number;

do

{

buffer[k]=n%10;

k=k+1;

n=n/10;

}while(n!

=0);

b=1;

for(i=0;i<=(k-1)/2;i++)

if(buffer[i]!

=buffer[k-1-i])

b=0;

if(b)

printf("%ldishuiwenshu\n",number);

else

printf("%ldisnothuiwenshu\n",number);

}

4.

main()

{inti,j,k,max,maxi,maxj,flag1,flag2;

inta[2][3]={{1,2,3},{4,5,6}};

flag2=0;

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

{max=a[i][0];

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

if(a[i][j]>max){max=a[i][j];maxj=j;}

for(k=0,flag1=1;k<2&&flag1;k++)

if(a[k][maxj]

if(flag1){printf("\n%disanswer,locate:

line%dcolum%d\n",max,i,maxj);

flag2=1;

}

}

if(!

flag2)printf("\nnoanswer!

");

}

5.

#include"stdio.h"

#include"string.h"

main()

{chara[20],x;

intn=0,i=0;

printf("\nPlea

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

当前位置:首页 > 职业教育 > 职业技术培训

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2