C语言习题参考答案缩小版Word文档下载推荐.docx

上传人:b****5 文档编号:19960109 上传时间:2023-01-12 格式:DOCX 页数:29 大小:36.41KB
下载 相关 举报
C语言习题参考答案缩小版Word文档下载推荐.docx_第1页
第1页 / 共29页
C语言习题参考答案缩小版Word文档下载推荐.docx_第2页
第2页 / 共29页
C语言习题参考答案缩小版Word文档下载推荐.docx_第3页
第3页 / 共29页
C语言习题参考答案缩小版Word文档下载推荐.docx_第4页
第4页 / 共29页
C语言习题参考答案缩小版Word文档下载推荐.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

C语言习题参考答案缩小版Word文档下载推荐.docx

《C语言习题参考答案缩小版Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言习题参考答案缩小版Word文档下载推荐.docx(29页珍藏版)》请在冰豆网上搜索。

C语言习题参考答案缩小版Word文档下载推荐.docx

3.输入三角形的三边长要求是整数,求三角形的周长。

{intx;

%d,%d,%d"

x,&

y,&

z);

周长是:

%d\n"

c);

习题3答案

1.B2.A3.D4.A5.D6.B

二、填空题

1.x=-x或x=abs(x);

2.m%i==03.continue4.switch(c)5.x>

=0

三、程序改错题答案略

四、程序分析题

1.432.10,4,33.164.235.226.6

7.0.18.a=2,b=19.210.7

2.输入10个整数,统计并输出正数、负数和零的个数。

{intx,zs=0,fs=0,zr=0,i;

input10integerdata:

"

);

for(i=1;

i<

=10;

i++)

{scanf("

if(x>

0)zs++;

elseif(x==0)zr++;

elsefs++;

zs=%dfs=%dzr=%d\n"

zs,fs,zr);

}

五、编程题。

1.输入三个单精度数,输出其中最小值。

{floatx,y,z,min;

inputthreefloatnumbers:

%f%f%f"

if(x<

y)min=x;

elsemin=y;

if(min>

z)min=z;

min=%f\n"

min);

}_

3.输入三角形的三边长,输出三角形的面积。

math.h"

4.输入两个正整数,输出它们的最大公约数和最小公倍数。

{inta,b,maxgy,mingb;

inputtwointegerdata:

%d%d"

a,&

b);

maxgy=a<

b?

a:

b;

while(a%maxgy!

=0||b%maxgy!

=0)maxgy--;

mingb=a>

while(mingb%a!

=0||mingb%b!

=0)mingb++;

maxgy=%dmingb=%d\n"

maxgy,mingb);

{floata,b,c,s,area;

inputthreeedges:

b,&

c);

if((a+b>

c)&

&

(b+c>

a)&

(c+a>

b))

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

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

printf("

area=%.2f\n"

area);

else

Notriangle\n"

6.用switch~case结构编写一程序,输入月份1~12后,输出该月的英文名称。

5.用if~else结构编写一程序,求一元二次方程ax2+bx+c=0的根。

{floata,b,c,disk,x1,x2;

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

if(disk>

=0)

{x1=(-b+sqrt(disk))/(2*a);

x2=(-b-sqrt(disk))/(2*a);

x1=%f\nx2=%f\n"

x1,x2);

{printf("

x1=%f+%f*i\n"

-b/(2*a),sqrt(-disk)/(2*a));

x2=%f-%f*i\n"

stdio.h"

{intmonth;

charch;

while

(1)

\ninputmonth(1-12):

month);

switch(month)

{case1:

printf("

January\n"

break;

case2:

February\n"

case3:

March\n"

case4:

April\n"

case5:

May\n"

case6:

June\n"

case7:

July\n"

case8:

August\n"

case9:

September\n"

case10:

October\n"

case11:

November\n"

case12:

December\n"

default:

inputerror\n"

getchar();

\ncontinue?

(Y/N):

ch=getche();

if(ch!

='

y'

ch!

Y'

)break;

}_

8.打印出所有的“水仙花数”。

所谓“水仙花数”是指一个三位数,其各位数的立方和等于该数本身。

如:

153=13+53+33,则153是一个水仙花数。

{inti,j,k;

=9;

for(j=0;

j<

j++)

for(k=0;

k<

k++)

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

%8d"

i*100+j*10+k);

7.求Sn=a+aa+aaa+…+aa…a(最后一项为n个a)的值,其中a是一个数字。

2+22+222+2222+22222(此时n=5),n的值从键盘输入。

{inta,n,i;

floats=0,result=0;

inputa(1-9):

a);

inputn:

n);

=n;

{s=s*10+a;

result+=s;

\nresult=%f\n"

result);

10.编程序按下列公式计算e的值(精度要求为

<

10-6)。

{floati,s=1,sum=0;

i=1;

while(1/s>

=1e-6)

{sum+=1/s;

i++;

s*=i;

e=%f\n"

sum+1);

9.计算

{floatsum=0,i;

=100;

if(i<

=50)

sum+=1/i+1/(i*i);

sum+=1/i;

sum=%f\n"

sum);

11.编程序按下列公式计算y的值(精度要求为

12.有一篮子苹果,两个一取余一,三个一取余二,四个一取余三,五个一取刚好不剩,问篮子至少有多少个苹果?

{inttotal=5;

while(total%2!

=1||total%3!

=2||total%4!

=3)

total+=5;

total=%d\n"

total);

main()

{floati,s=2,sum=0;

{sum+=1/s;

i++;

s=i*i+1;

习题4答案

1.D2.C3.A4.C5.D6.C7.D8.D9.C10.D

11.B12.B13.A14.C15.B16.B

1.192.33.194.2558

5.*****

*****

*****

三、程序填空题

1.k=i

2.strlen(str)-1

3.n%base

4.s[i]+=a[i+j]

5.scanf("

%s"

a);

6.9

7.g.i=4142

g.s[0]=42

g.s[1]=41

g.s=1

1.输入10个整型数并存入一维数组,要求输出值和下标都为奇数的元素个数。

2.有5个学生,每个学生有四门课程,将有不及格课程的学生成绩输出。

{inta[5][4]={{78,87,93,65},

{66,57,70,86},

{69,99,76,76},

{78,59,87,90},

{90,67,97,87}};

inti,j,k;

for(i=0;

5;

for(j=0;

4;

if(a[i][j]<

60)

{printf("

%4d"

i+1);

for(k=0;

a[i][k]);

\n"

break;

{inta[10],i,num=0;

enterarraya:

for(i=0;

10;

scanf("

a[i]);

if(i%2==1&

a[i]%2==1)num++;

num=%d\n"

num);

_

3.从键盘上输入一个字符串,统计字符串中的字符

个数。

不允许使用求字符串长度函数strlen()。

{charstr[81],*p=str;

intnum=0;

inputastring:

gets(str);

while(*p++)num++;

length=%d\n"

4.在n个数中查找某一个数。

#defineN5

5.矩阵转置

#defineN4

{inti,j,a[N][N],t;

for(i=0;

N;

a[i][j]);

i;

{t=a[i][j];

a[i][j]=a[j][i];

a[j][i]=t;

{

a[i][j]);

}getch();

{inta[N],i,x;

input%dnumbers:

N);

inputxtolookfor:

"

if(a[i]==x)

find:

%ditisa[%d]\n"

x,i);

exit(0);

%dnotbeenfound.\n"

x);

6.输入一行字符,将其中的小写字母转换为大写字

母,其余字符不变。

{charc[81];

inti;

(c[i]=getchar())!

=’\n’;

i++);

c[i]=’\0’;

for(i=0;

c[i]!

=’\0’;

{

if(c[i]>

=’a’&

c[i]<

=’z’)

c[i]-=32;

c[i]);

7.输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。

{charstr[81],c,i;

intword=0,num=0;

(c=str[i])!

\0'

;

8.输入3个复数的实部和虚部放在一个结构体数组中,根据复数的模由小到大顺序对数组进行排序并输出。

(注:

复数的模=sqrt(实部*实部+虚部*虚部))

{structcomplex

{floatx;

floaty;

floatm;

}a[N],t;

inti,j,k;

{scanf("

%f%f"

a[i].x,&

a[i].y);

a[i].m=sqrt(a[i].x*a[i].x+a[i].y*a[i].y);

N-1;

{k=i;

for(j=i+1;

if(a[k].m<

a[j].m)

k=j;

t=a[i];

a[i]=a[k];

a[k]=t;

%.2f+%.2fi\n"

a[i].x,a[i].y);

if(c=='

'

word=0;

elseif(word==0)

{word=1;

num++;

Thereare%dwordsintheline.\n"

9.已知某年的元旦是星期几,打印该年某一月份的日历表。

typedefstruct

{intyear,mon,day;

enumweekday{sun,mon,tue,wed,thu,fri,sat}week;

}daily;

{dailydays;

Whichyear?

scanf("

days.year);

year%4d,Month1,day1isweekday?

days.year);

0-Sun,1-Mon,2-Tue,3-Wed,4-Thu,5-Fri,6-Sat:

days.week);

days.mon=days.day=1;

montable(days);

montable(dailyd)

{inti,s,ds;

dailymd;

md.year=d.year;

md.day=1;

Whichmonth?

md.mon);

for(s=0,i=1;

=md.mon;

{switch(i)

{case1:

case3:

case5:

case7:

case8:

case10:

case12:

ds=31;

case2:

ds=(md.year%4==0&

md.year%100!

=0||md.year%400==0)?

29:

28;

case4:

case6:

case9:

case11:

ds=30;

s+=ds;

s-=ds;

md.week=(s+d.week)%7;

--==%4dYear,%2dMonth==--\n"

md.year,md.mon);

......................................\n"

%5s%5s%5s%5s%5s%5s%5s\n"

"

Sun"

Mon"

Tue"

Wed"

Thu"

Fri"

Sat"

md.week*5;

i++)printf("

for(i=1;

=ds;

%5d"

i);

if(++md.week==7){md.week=0;

if(md.week!

=0)printf("

 

习题5答案

1.C2.C3.C4.C5.A6.A7.D8.A9.D10.A

1.42.5.03.104.325.100,30,10,1016.a*b*c*d*7.43218.539.210.2

1.sum+array[i]average(score)

2.n*fun(n-1)

3.a[i][j]<

min

4.s1[i+j]=s2[j]'

\0'

5.a[i+1]=x

四、编程题。

1.写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。

#include"

mian()

{intn;

if(prime(n))

\n%disprime."

n);

else

\n%disnotprime."

intprime(intm)

{intf=1,i,k;

k=sqrt(m)

for(i=2;

=k;

if(m%i==0)break;

if(i>

=k+1)f=1;

elsef=0;

returnf;

2.编写函数计算

,用主函数调用它。

floatfun(intn)

{inti,f=1;

floats=0,t;

{t=1.0/(2*i+1)

s=s+f*t;

f=-1*f;

returns;

%f"

fun(n));

3.将一个字符串中另一个字符串中出现的字符删除。

{voidfun(chara[],charb[]);

chars1[20]="

Iamaboy."

s2[20]="

Youareaboy."

fun(s1,s2);

\n%s"

s1);

voidfun(chara[],charb[])

{inti=0,j=0;

while(a[i]!

='

{while(b[j]!

{if(a[i]==b[j])

{for(j=i;

a[j]=a[j+1];

j++);

i--;

j++;

i++;

j=0;

4.用牛顿迭代法求根。

方程为ax3+bx2+cx+d=0,系数a、b、c、d由主函数输入。

求x在1附近的一个实根。

求出根后,由主函数输出。

floatfun(floata,floatb,floatc,floatd)

{floatx=1,x0,f,f1;

do

{x0=x;

f=((a*x0+b)*x0+c)*x0+d;

f1=(3*a*x0+2*b)*x0+c;

x=x0-f/f1;

}while(fabs(x-x0)>

=1e-5);

return(x);

{floata,b,c,d;

%f,%f,%f,%f"

a,

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

当前位置:首页 > 考试认证 > 交规考试

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

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