(中职)C语言程序设计课后习题参考答案(模块2-12)_第1页
(中职)C语言程序设计课后习题参考答案(模块2-12)_第2页
(中职)C语言程序设计课后习题参考答案(模块2-12)_第3页
(中职)C语言程序设计课后习题参考答案(模块2-12)_第4页
(中职)C语言程序设计课后习题参考答案(模块2-12)_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计课后习题参考答案(模块2-12)

l.#include<stdio.h>

main()

{printf("schoolstudentstudy");

getch();

}

2.#include<stdio.h>

main()

printf(/z*\nw);

printf("*\n");

printf(z/*****\nw);

printf("*\n");

printf("八n");

getch();

}

3.#include<stdio.h>

intsum(intx,inty)

{returnx+y;}

main()

{intx,y;

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

printf("%d"/sum(x/y));

getch();

}

一、选择题

l.C2,C3.A4.C5,C

二、根据前面所学的关于变量定义和格式控制等的相关知识,指出下

面程序的错误,修改后上机调试。

l.#include<stdio.h>

2.#defineN3.14

4.{char*name="Lucy";

5.intx_l;floatx_2=3/x_3=4;shorts;

7.scanf("%cT,&x_l);

10.printf(/z%szsresultis:",name);

/,w

ll.printf(x_l=%d/s=%d\n,x_l,s);

三、指出下列print*)函数的输出结果

1.65535,-12.123.a4.05.ffff6.2.1000007.2.800000e+00

8.2.89.c10.65ll.a12.abcd13.student14.0x1515.0142

lG.good17.3.1416

一、选择题

l.A2,B3.D4.D5.B6.A7.D8.B9.A10.Bll.B12.D

13.D14.B15.A

二、填空题

①&a,&b,&c

②(a+b+c)/3

③s>=80||(a>=80&&b>=80&&c>=80)

三、程序分析

l.a=5,x=62.a=6,b=0,c=123.104.-15.c=146.a=0,b=0,c=l

四、程序分析填空题

①&k

②5

③2<k&&k<=10

④1.5*k+2

⑤2*k-3

五、程序设计实践

1.#include<stdio.h>

main()

{intn,x,y,z;

scanf("%d",&n);

while(l)

{if(n<100||n>=1000)

{printf("请输入三位数\n");

scanf("%d'\&n);

}

elsebreak;

}

if(n>=100&&n<1000)

{x=n/100;

y=n%100/10;

z=n%100%10;

printf("x=%d,y=%d,z=%d",x,y/z);

)

else

printf("请输入3位数广);

getch();

}

2.#include<stdio.h>

#include<string.h>

main()

{charch[10]="Beijin";

inti;

for(i=0;i<strlen(ch);i++)

if((ch[i]>='x'&&ch[i]<='z')||(ch[i]>='X,&&ch[i]<='Z,))

ch[i]=ch[i]-23;

else

ch[i]=ch[i]+3;

puts(ch);

getch();

)

一、写出下列程序的输出结果

1.32.633.64.1086425.*##*6.k=6,k=-l7.86420

8.x=ll,i=109.x=10,i=6

10.*

**

***

****

二、程序填空

1.①0②sum+=l

2.①。②1③8-i-j

3.①flag②(x-l)%5==0&&(x+l)%6==0&&(x+3)%7==0&&(x-l)%ll==0

③。

4.①i%10②i%100/10③i/100@g*g*g+s*s*s+b*b*b==i

三算法分析与编程

1.#include<stdio.h>

main()

{longi=10000;

intj,count=0;

while(i<100000)

{j=i%10;

if(j==6&&i%3==0)

count++;

i++;

}

printf("%d”,count);

getch();

}

2.#include<stdio.h>

main()

{inta,b,c;

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

if(a>b)

c=a*a+a*b-6;

elseif(a==b)

c=2*a*b*b;

else

c=a*a-2*b+6;

printf("c=%d",c);

getch();

}

3.#include<stdio.h>

main()

{floata,b,c;

charch;

scanf("%f%c%f"/&az&ch,&b);

while(l)

(

if(b==O&&ch==7,)

(

printf("分母不能为零,请重输!\n");

scanf("%f%c%f",&az&ch,&b);

)

else

break;

)

switch(ch)

(

case'+':c=a+b;break;

case'-':c=a-b;break;

case'*':c=a*b;break;

case'/':c=a/b;break;

default:printf("请输入+,-,*,/");break;

}

printf("%g",c);

getch();

}

4.#include<stdio.h>

main()

{floata,pf;

intj;

scanf("%f"z&pf);

while(l)

{if(pf<0)

{printf("请输入正确的数!\n");

scanf("%f",&pf);

)

elsebreak;

)

if(pf>0&&pf<=10)

j=l;

elseif(pf>10&&pf<=20)

j=2;

elseif(pf>20&&pf<=40)

j=3;

else

j=4;

switch(j)

{casel:a=pf*0.1;break;

case2:a=10*0.1+(pf-10)*0.075;break;

case3:a=10*0.1+10*0.075+(pf-20)*0.05;break;

default:a=10*0.1+10*0.075+20*0.05+(pf-20)*0.03;

)

printf("%g",a);

getch();

}

5.#include<stdio.h>

main()

{floatx,xl=0;

inti;

for(i=5;i>0;i--)

{x=(xl+1000)/(l+0.0063*12);

xl=x;

)

printf("%g万",x);

getch();

)

6.#include<stdio.h>

main()

{inta,b,c,count=0;

for(a=l;a<20;a++)

for(b=l;b<32;b++)

for(c=l;c<=100;c++)

{if((a*5+b*3+c/3.0==100)&&(a+b+c==100))

(

printf("a=%d,b=%d,c=%d,%g\n"/a,b/c,a*5+b*3+c/3.0);

count++;

}

}

printf("有"%d种方法,count);

getch();

)

一、选择题

l.D2,D3.C4.D5.B6.B7.B

二、填空题

l.-l2.ch=6,ck=53.94.45.while-when6.197.a[l][0]

三、程序填空

1■.①i==j||i+j==2②sum+a[i][j]

2.①a[j]%a[i]==O②a[i]!=O③0

3.①j++②a[i+l]③a[j]=b[k]

四、算法分析与编程

1.#include<stdio.h>

main()

{inta⑷⑶,b[5];

inti,j,max,t;

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

{max=-32768;

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

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

if(a[i][j]>max)

max=a[i][j];

}

b[i]=max;

)

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

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

if(bU]>b[j+l])

{t=b[j];

bO]=b[j+l];

b[j+l]=t;

}

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

printf("%d\t",b[i]);

getch();

}

2.#include<stdio.h>

main()

{inta[10];

intmax=-32768,max2=-32768,i;

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

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

if(a[i]>max)

max=a[i];

)

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

{if(a[i]>max2&&a[i]!=max)

max2=a[i];

)

printf("最大值=%d,次大值=%cT,max,max2);

getch();

)

3.#include<stdio.h>

main()

{inta=l,b=l,c;

inti;

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

{c=a+b;

a=b;

b=c;

}

printf("%d",c);

getch();

}

4.#include<stdio.h>

#include<string.h>

main()

,,

{chart[10],s[5][10]={"China","America","France"z"English7German"};

intij;

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

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

if(strcmp(s[j],s[j+l])>0)

{strcpy(t,s[j]);

strcpy(s[j],s[j+l]);

strcpy(s[j+l],t);

}

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

printf("%s\n",s[i]);

getch();

}

一、指出下列程序的运行结果

1.1362.-5-4-13.104.s=165.126.810127.98.3438

9.678

二、程序设计

1.#include<stdio.h>

longf(intn);

longfun(intn)

{if(n==l||n==0)

return1;

else

returnfun(n-l)+f(n);

}

longf(intn)

{if(n==l)

return1;

else

returnf(n-l)*n;

}

main()

{inti;

scanf("%d",&i);

printf("%ld",fun(i));

getch();

}

2.#include<stdio.h>

main()

{inta[12]={31/28,31,30,31,30,31,31,30,31,30,31};

intyear,month,day,sum=0,i,flag=0;

scanf("%d%d%d",&year/&month/&day);

while(l)

{if(year<=0||month<=0||month>12||day<=0||day>31||(month==2

&&day>29))

{printf("请输入正确的年月日\rT);

scanf("%d%d%d",&year,&month,&day);

}

elsebreak;

}

if((year%4==0&&year%100!=0)11year%400==0)

flag=l;

for(i=0;i<month-l;i++)

sum+=a[i];

sum+=day;

if(flag==l&&nnonth>2)

sum+=l;

printf("是本年的第%d天,,sum);

getch();

)

3.#include<stdio.h>

#include<math.h>

floatfun(inta,intb)

(

if(b==O)return1;

elseif(b<0)

return1.0/(fun(a,abs(b)-l)*a);

else

returnfun(a,b-l)*a;

)

intmain()

{intx,y;

floatt;

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

t=fun(x,y);

printf("%g",t);

}

一、指出下列程序的运行结果

1.1052.98768763.ENGLISH4.63855.studyhardeveryday

6.dog,dcatzahorse/7.sum=368.bghmdrd9.s=820610.1411.z

二、改错

(5)temp=name[0];

⑨printf("%s”,temp);

©if(strcpy(temp,name[i])>0

②#incude<string.h)

三、程序填空

1.

(D.gets(str2)

②.m<0

③.copystr(strl,str2,m)

⑤.p2++

⑥.*pl=*p2

⑦.pl++

⑧,\(y

2.

①.0

(2).aU]&&b[k]>a[j]

③.i>=j

④.补充a[i+l]=a[i];

@a[j]=b[k]

四、算法与编程

1.#include<stdio.h>

#include<string.h>

main()

,,

{char*t/*s[5]={"China","America",France","English","German"};

inti,j;

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

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

if(strcmp(s[j],s[j+l])>0)

{t=s[j];

s[j]=s[j+L;

sU+l]=t;

}

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

printf("%s\n",s[i]);

getch();

)

2.#include<stdio.h>

#include<string.h>

main()

(

char

*month[12]={"January","February","March","April","May","June","July

"/'August",

"september","October'7'November","December");

inti,n;

scanf("%d",&n);

while(l)

{if(n<=0||n>12)

{printf("错误!请输入1-12之间的整数\n");

scanf("%d",&n);

)

elsebreak;

)

printff^s'\monthtn-l]);

getch();

}

一、指出下面程序输出的结果

L6,6,3,4,2.41443.0-7

二、程序填空

l.strcmp(b[2].name,x)!=0&&i<n

2.i<m

3.strcmp(xm//#//)==0

4.strcpy(s[i].namezxm)

5.strcpy(s[i].telephone,telph)

三、程序设计

l.#include<stdio.h>

structcourse

{charname[20];

intdata;

charteacher[20];

,,l

}a[2]={{"math78;mathteacher"},{"English"/7/"Englishteacher"}};

main()

{inti;

printf("course\tscore\tteacher\n");

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

printf("%s\t%d\t%s\n",a[i].name,a[i].data,a[i].teacher);

getch();

}

#include<stdio.h>

structdate

{intyear;

intmonth;

intday;

}a;

main()

{intday[12]={3:L,28,3L30,3:l,30,31,3L30,31,30,31};

intsum=0,iJlag=0;

scanf("%d%d%d",&a.year/&a.month/&a.day);

while(l)

{if(a.year<=011a.month<=011a.month>1211a.day<=01|a.day>31)

{printf("请输入正确的年月日)

scanf("%d%d%d",&a.yearz&a.month,&a.day);

)

elsebreak;

}

if((a.year%4==0&&a.year%100!=0)||a.year%400==0)

flag=l;

for(i=0;i<a.month-l;i++)

sum+=day[i];

sum+=a.day;

if(flag==l&&a.month>2)

sum+=l;

printf("是本年的第%d天,sum);

getch();

}

一、指出下面程序输出的结果

1.3055.24166.314.000000

二、程序设计

1.#include<stdio.h>

#include<math.h>

#defineS(a,b,c)((a+b+c)/2)

#defineAREA(s,a,b,c)sqrt(s*(s-a)*(s-b)*(s-c))

main()

{floata,b,c;

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

printf("%g\n",S(a,b,c));

printf("%g",AREA(S(a,b,c),a,b,c));

getch();

)

2.#include<stdio.h>

#include<string.h>

#defineCHANGE

main()

{charch[100];

intij;

gets(ch);

#ifdefCHANGE

for(i=0;i<strlen(ch);i++)

{if(ch[i]>=97&&ch[i]<122)

ch[i]=ch[i]+l;

if(ch[i]==122)

ch[i]='a';

)

printf("%s";ch);

#else

printf("%s",ch);

#endif

getch();

)

3.#include<stdio.h>

#defineR(x)((x%4==0&&x%100!=0)||x%400==0)

main()

{intyea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论