c 语言答案Word下载.docx

上传人:b****3 文档编号:16748849 上传时间:2022-11-25 格式:DOCX 页数:40 大小:29.77KB
下载 相关 举报
c 语言答案Word下载.docx_第1页
第1页 / 共40页
c 语言答案Word下载.docx_第2页
第2页 / 共40页
c 语言答案Word下载.docx_第3页
第3页 / 共40页
c 语言答案Word下载.docx_第4页
第4页 / 共40页
c 语言答案Word下载.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

c 语言答案Word下载.docx

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

c 语言答案Word下载.docx

习题3

3-1选择题

1-5 BDABC6-10 ADCAC11-12 BB

3-2填空题

1. 3

2. 0261

3. 0x10

4.2,1 互换a,b的值

5. 6.6

6. –003

8. 7

7. 5.0,4,c=3<

Enter>

8. i=10,j=20<

9. 

(1)65

(2)65,A

(3)56.123400,123.456001

(4)3.141600

(5)8765.432

(6)5.864000e+002

(7)3.141600e+000

(8)3.1416

(9)8765

(10)3.1416,8765.43

10. a=2b=5x=8.8y=76.34c1=65c2=97

3-3编程题

1.编写程序实现从键盘输入两个十进制整型数据10和8给变量x和y,并按下列格式�输出。

�xy

十进制数108

八进制数1210

十六进制数a8

{intx,y;

scanf("

%d%d"

&

x,&

y);

xy\n"

%4d%4d\n"

x,y);

%4o%4o\n"

%4x%4x\n"

}

2.编写一个程序,输入一个大写英文字符('

B'

~'

Y'

),输出它的前导字符、该字符本身及其后续字符。

{charc;

scanf(“%c”,&

c);

printf(“%c,%c,%c\n”,c-1,c,c+1);

3.编写一个程序,输入一个3位正整数,要求反向输出对应的整数,如输入123,则输出321。

编写程序并给出相应的程序流程图。

{inta,a1,a2,a3;

scanf(“%d”,&

a);

a1=a%10;

a=a/10;

a2=a%10;

a3=a%10;

printf(“%d%d%d\n”,a1,a2,a3);

4.编写程序,读入3个double型数据,求它们的平均值,保留此平均值小数点后1位数,对小数点后第2位数进行四舍五入,最后输出结果。

{doublea,b,c,ave;

scanf(“%lf%lf%lf”,&

a,&

b,&

ave=(a+b+c)/3;

printf(“%8.2f\n”,ave);

5.编写程序,读入3个整数给变量a、b、c,然后交换它们的值,把a原来的值给b,把b原来的值给c,把c原来的值给a。

{inta,b,c,t;

scanf(“%d%d%d”,&

t=a;

a=c;

c=b;

b=t;

printf(“a=%d,b=%d,c=%d\n”,a,b,c);

习题4

4-1单选题

1~5AADAD6~10ACBBB11~12BA

4-2填空题

1.1

2.

(1)a>

0||b>

0

(2)x>

0&

&

x<

=10

(3)a==1.5&

b==1.5&

c==1.5(4)p<

a||p<

b||p<

c

3.

(1)0

(2)1(3)1(4)0(5)1

4.(max=a>

b?

a:

b)>

c?

max:

5.-4

6.1

7.5,0,3

8.

(1)(a==0)

(2)(b==0)(3)(disc<

0)

4-3编程题

1.输入3个实型数值a、b、c,如果能用它们作为三角形的3条边形成一个三角形,则输出三角形的面积,并画出实现该算法的N-S流程图并编程实现。

#include“math.h”

main()

{floata,b,c,s,area;

scanf(“%f,%f,%f”,&

a,&

b,&

c);

if(a+b>

c&

a+c>

b&

b+c>

a)

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

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

printf(“%f”,area);

2.输入整数x、y,若x2+y2>

1000,则输出x2+y2百位以上的数字,否则输出两数之和。

{intx,y;

scanf(“%d,%d”,&

x,&

if(x*x+y*y>

1000)

printf(“%d\n”,(x*x+y*y)/100);

else

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

3.输入一个整数,判断它能否同时被3、5、7整除,并输出“yes”或“no”字样。

{intx,

scanf(“%d”,&

x);

if(x%3==0&

x%5==0&

x%7==0)

printf(“yes\n”);

printf(“no\n”);

4.对任意输入的x,用下式计算并输出y的值。

{floatx,y;

scanf(“%f”,&

if(x<

-2)y=x*x-sin(x);

elseif(x<

=2)y=pow(2,x)+1;

elsey=sqrt(x*x+x+1);

printf(“%f\n”,y);

5.编写程序输入一个5位整数,判断它是不是回文数。

回文数是指一个数从右到左和从左到右的对应数码相同,如12321是回文数,个位与万位相同,十位与千位相同。

main()

{longge,shi,qian,wan,x;

scanf("

%ld"

&

wan=x/10000;

qian=x%10000/1000;

shi=x%100/10;

ge=x%10;

if(ge==wan&

shi==qian)/*个位等于万位并且十位等于千位*/

thisnumberisahuiwen\n"

else

thisnumberisnotahuiwen\n"

6.编写程序用于计算某运输公司的运费。

设每公里每吨货物的基本运费为p,货物重量为w,路程为s(单位为km),折扣为d,总费用计算公式为:

f=p*w*s*(1-d)

运费计算标准见表4.5。

表4.5某运输公司运费计算标准

s<

250不打折

250<

=s<

500折扣2%

500<

1000折扣5%

1000<

2000折扣8%

2000<

3000折扣10%

s>

3000折扣15%

{floatp,w,s,d,f;

scanf(“%f,%,%f”,p,s,w);

if(s>

3000)d=0.15

elseif(s>

=2000)d=0.1;

elseif(s>

=1000)d=0.08;

=500)d=0.05;

=250)d=0.02;

elsed=0

f=p*w*s*(1-d);

printf(“%f”,f);

习题5

5-1单选题

1~5CDABA6~10ABDDB11~14DBCB

5-2填空题

1.20

2.333

3.

(1)i<

10

(2)j%3!

=0

4.

(1)flag*(float)k/(k+1)

(2)flag=-flag

5.

(1)max=x

(2)x!

=-1(3)scanf("

%d"

&

x)

5-3编程题

1.用3种循环语句编写程序实现下列算式:

(1)1+2′2+3′3+…+100′100

(2)e=,当最后一项的值小于10-6时为止。

(1)

#include"

{inti;

lonts=0;

for(i=1;

i<

=100;

i++)

s+=i*i;

printf(“%ld”,s);

(2)

{inti=1;

lontp=1;

floats=0;

do{

s+=1.0/p;

p*=++i;

}while(1.0/p>

1e-6)

printf(“%f”,s);

2.编写程序求两个正整数的最大公约数。

{intm,n,t,a,b;

scanf(“%d,%d”?

m,&

n)?

;

if(m<

n){t=m?

m=n?

n=t?

a=m;

b=n;

t=m%n?

while(t)

{m=n?

n=t?

t=m%n;

printf(”%d,%d”,n,a*b/n);

3.编写程序求一个整数的任意次方的最后3位数,即求xy的最后3位数。

{intx,y,s=1;

scanf(”%d,%d?

”,&

y)?

for(?

y>

0?

y--)s*=x?

printf(”%d,%d,%d\n?

”,s%10,s/10%10,s/100%10);

4.百鸡问题。

用100元钱买100只鸡,其中,公鸡每只5元,母鸡每只3元,小鸡每3只1元。

编写程序输出各种买法。

{intx,y,z;

for(x=1?

20?

x++)

for(y=1?

y<

33?

y++)

{z=100-x-y?

if(z>

=0&

(5*x+3*y+z/3)-100<

1e-5)

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

5.编写程序分别打印如下图形:

*

***

*****

********

(a)(b)

(a)#include"

{intj,k;

for(j=1;

j<

=4;

j++)

{for(k=1;

k<

=4-j;

k++)printf("

"

****"

);

\n"

(b)#include"

for(k=1;

=2*j-1;

k++)

*"

6.请编写程序求100~999之间所有的水仙花数。

水仙花数的含义是指这样的一个3位数,其各位数字的立方和等于该数本身。

例如,371=33+73+13,所以371是一个水仙花数。

程序分析:

利用for循环控制100-999个数,每个数分解出个位,十位,百位。

{

inti,j,k,n;

'

waterflower'

numberis:

"

 for(n=100;

n<

1000;

n++)

 {

  i=n/100;

/*分解出百位*/

  j=n/10%10;

/*分解出十位*/

  k=n%10;

/*分解出个位*/

  if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)

   {

   printf("

%-5d"

n);

   }

 }

习题6

6-1单选题

1-5 CBBAD6-10 DBCCD11-15 DCABC

6-2填空题

1. 120

2. x

3. 3,2,2,3

4.fac/i

5. 8,17

6. 9

7. 1.0/(i*i)

8. fun-in:

30,20,10

fun-end:

1015,35,1050

10,20,30

9. 012345

10.93636

6-3编程题

1.编写一函数把字符串中的小写字母转换成大写字母,其他字符不变。

voidzhuan()

{charch;

while((ch=getchar())!

=’\n’)

{if(ch>

=’a’&

ch<

=’z’)ch=ch-32;

putchar(ch);

2.编写一函数求e=

floatexpp(intn)

{intk,fac=1;

floatsum=0;

for(k=1;

k<

=n;

k++)

{fac*=k;

sum+=1.0/fac;

return(sum);

3.编写一函数求一个整数的任意次方的最后3位数,即求xy的最后3位数。

intxy3(intx,inty)

{intk,num=1;

=y;

num*=x;

num=num%1000;

returnnum;

4.有5个人坐在一起,第5个人说他比第4个人大2岁,第4个人说他比第3个人大2岁,第3个人说他比第2个人大2岁,第2个人说他比第1个人大2岁,第1个人说他10岁,请问第5个人多大?

intage(intn)

{intc;

if(n==1)c=10;

elsec=age(n-1)+2;

returnc;

习题7

7-1单选题

1-5 DBCCB6-8BDC

7-2填空题

1. c

2. 60

3. 1000 10

4. 16

7-3编程题

1.编写程序计算下列公式中的f值,使用带参数的宏来实现。

#defineF(a)a*a+sqrt(3*a*a+2*a+1)

{floatx,f;

scanf(“%f”,&

x);

f=4.5/F(exp(x))+F(cos(x))+F(sqrt(x))/F(x*x);

printf(“%f\n”,f);

习题8

8-1单选题

1~15CADAC6~10CCDAB11~15CBBCD

8-2填空题

1

(1)2345

(2)10010(3)QuickC(4)

2.

(1)j+=2

(2)a[i]>

a[j]

3.

(1)r+b[k]

(2)*x

8-3编程题

1.设数组a中的元素都为正整数,编程求其中偶数的个数和偶数的平均值。

#defineN10

{inta[N]={1,2,3,4,5,6,7,8,9,0},osum=0,ocount=0,j;

for(j=0;

10;

if(!

(j%2)){ocount++;

osum+=a[j];

printf(“ocount=%d,osum=%d\n”,ocount,osum);

2.有一个已排好序的数组,输入一个数,要求按原来排序的规律将它插入数组中,插入后数组仍然有序,请编程实现。

#defineN10

{inta[N]={10,20,30,40,50,60,70,80,90},j,k,x;

N;

if(x<

a[j])break;

for(k=N-1;

k>

j;

k--)a[k]=a[k-1];

a[j]=x;

for(j=0;

j++)printf(“%d”,a[j]);

3.编程求一个矩阵对角元素之和,其中矩阵元素值由数组初始化时给定。

#defineM3

{inta[M][M]={{1,2,3},{4,5,6},{7,8,9}},j,sum1=0,sum2=0;

for(j=0;

M;

{sum1+=a[j][j];

sum2+=a[j][M-(j+1)];

printf(“%d,%d\n”,sum1,sum2);

4.编一个程序检查二维数组是否对称(即对所有的i和j,都有a[i][j]=a[j][i])。

{inta[M][M]={{1,2,3},{2,4,5},{3,5,6}},j,k,flag=1;

for(k=0;

if(a[j][k]!

=a[k][j]){flag=0;

break;

if(flag)printf(“ok”);

elseprintf(”NO”);

5.编程比较两个字符串的大小(不用strcmp()函数)。

#include“string.h”

{charc1[10],c2[10],j;

gets(c1);

gets(c2);

(c1[j]==c2[j])&

c1[j]&

c2[j];

j++);

printf(“%d\n”,c1[j]-c2[j]);

6.有一篇文章,共有3行文字,每行有80个字符。

要求分别统计出其中英文大写字母、小写字母、数字、空格及其他字符的个数。

#include”string.h”

#defineM3

#defineN80

{chara[M][N],j,k,n[5]={0};

j++)gets(a[j]);

a[j][k];

if(a[j][k]>

=’A’&

a[j][k]<

=’Z’)n[1]++;

elseif(a[j][k]>

=’z’)n[2]++;

=’0’&

=’9’)n[3]++;

elseif(a[j][k]=’’)n[4]++;

elsen[5]++;

5;

printf(“%4d”,n[j]);

习题9

9-1单选题

1~5DDACB6~10ACBAD11~15CDBCC

9-2填空题

1.

(1)2,1

(2)10#30#(3)FOUR,O(4)60

2.

(1)49

(2)2(3)2(4)75319(5)15

(6)

 

(7)

3.

(1)*x

(2)t

4.

(1)'

\0'

或0

(2)n++或n+=1或n=n+1

5.024

9-3编程题

1.按以下要求编写一个程序。

定义三个变量用于存放输入的三个整数;

另定义三个指向整型变量的指针变量,并利用它们实现将输入的三个整数按由小到大的顺序输出。

intn1,n2,n3;

int*pointer1,*pointer2,*pointer3;

pleaseinput3number:

n1,n2,n3:

%d,%d,%d"

n1,&

n2,&

n3);

pointer1=&

n1;

pointer2=&

n2;

pointer3=&

n3;

if(n1>

n2)swap(pointer1,pointer2);

n3)swap(pointer1,pointer3);

if(n2>

n3)swap(pointer2,pointer3);

thesortednumbersare:

%d,%d,%d\n"

n1,n2,n3);

swap(p1,p2)

int*p1,*p2;

{intp;

p=*p1;

*p1=*p2;

*p2=p;

2.编写函数,得到两个整数相除的商和余数。

要求通过指针在函数间传递商和余数这两个数据

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

当前位置:首页 > 高等教育 > 艺术

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

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