C语言程序设计实例教程(慕课版)(第3版)-单元同步练习答案_第1页
C语言程序设计实例教程(慕课版)(第3版)-单元同步练习答案_第2页
C语言程序设计实例教程(慕课版)(第3版)-单元同步练习答案_第3页
C语言程序设计实例教程(慕课版)(第3版)-单元同步练习答案_第4页
C语言程序设计实例教程(慕课版)(第3版)-单元同步练习答案_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

《C语言程序设计实例教程(慕课版)第2版》

单元同步练习答案

第1单元....................................................................2

第2单元....................................................................3

第3单元....................................................................5

第4单元....................................................................7

第5单元....................................................................9

第6单元..................................................................11

第7单元...................................................................13

第8单元...................................................................15

第9单元...................................................................18

第10单元..................................................................20

第1单元

一、选择题

1-3CDD

二、填空题

I.主函数(main。函数),main()

2.机器语言、汇编语言、高级语言,1972,ANSIC,C99

三、问答与编程题

1.一个C程序的构成:预处理命令、说明部分、执行部分

2.#include<stdio.h>

intmain()(

inta=4,b=3,s;

s=a*b;

printf("areaofrectangleis%d\n”,s);

)

第2单元

一、选择题

l.C2.D3.B4.C5.C6.C7.A8.A9.A10.B11.D12.B13.D14.C

15.C16.C17.A

二、填空题

1.字母、数字、下划线、字母、下划线2.59831593.ASCII码

4.sqrt(s*(s-a)*(s-b)*(s-c))5._J_6._0_7,2.58._4___4_106

9.183310.511.m/100(m/10)%13

三、写出下列程序的运行结果

1.622.283.5_4.8,105.ch=x,x=-2,y=4,z=0.000000

6.cl=4,c2=3,c3=2,cl=l7.1,1,1

2,2,1

2,2,1

四、编程题

1.^include<stdio.h>

intmain()

{

floata=2,b=2.3,c=l.5,s,v;

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

v=a*b*c;

printf("表面积为%.2f,体积为%.2fM,s,v);

return0;

}

2.^include<stdio.h>

intmainO

{

charc;

printf("InputaCapital:\n,z);

scanf&c);

printf("Lowercasec+32);

return0:

}

3.ttinclude<stdio.h>

intmainO

(

intnuml,num2,temp;

printf("请输入两个整数:\n");

scanf(w%d%d”,&numl,&num2);

if(numl<num2)

tcmp=num1;num1=num2;num2=tcinp;

)

printf("两个数的商是%d,余数是%d\n”,numl/num2,numl%num2);

return0;

)

4.4include<stdio.h>

intmain()

(

floatc,f;

printf("请输入华氏温度:\n");

scanf&f);

c=5*(f-32)/9;

printf("对应的摄氏温度为虬2f\n",c);

return0;

)

第3单元

一、选择题

ABAABDCCBB

二、填空题

1.整型、字符型

2.putchar()

3.1个

4.stdio.h

5.Id

6.China

三、阅读程序,输出结果

1.56

2.103

98

A

3.5,a,6

4.a=6.78

四、编程题

1.#include<stdio.h>

intmainO

{

charchi,ch2,ch3,ch4,ch5;

printf(”请输入要加密的单词:\n");

scanf("%c%c%c%c%c”,&chl,&ch2,&ch3,&ch4,&ch5);

printf("加密后:%c%c%c%c%c\n”,chl+5,ch2+5,ch3+5,ch4+5,ch5+5);

return0;

)

2.

#include<stdio.h>

#include<math.h>

intmain()

{

floata,b,c,disc,xl,x2,p,q;

disc=0;

printf("请输入a,b,c的值:\n");

scanf&a,&b,&c);

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

p=-b/(2.0*a);

q=sqrt(disc)/(2.0*a);

xl=p+q;

x2-p-q;

printf("xl=%7.2f\nx2=%7.2f\n”,xl,x2);

return0;

3.

#include<stdio.h>

intmain()

intn;

doubledeposit,capital,rate;

printf(〃请输入存款金额:\n");

scanf&capital);

printf(”请输入存款年限:\n");

scanf&n);

printf(〃请输入定期存款年利率:\n〃);

scanf(,Z%1f,z,&rate);

dcposit=capital+capital*ratc*n;

printf(z,%d年后的本金和利息之和为:%n,deposit);

return0;

第4单元

一、选择题

1.A2.A3.D4.A5.A6.C7.A8.C9.A10.C

二、填空题

1.0_2,]_3.34.(x53=0)I|(x%D)5.(p〈x)](p<。II(p!=z)

6.(a+b>c)&&(a+c>b)&&(b+c>a)7.(ch>='A'&&ch<='Z')ch=ch-32

三、写出下列程序的运行结果

1.20^02.5858583.34.25.0.5000006.8

四、编程题

1、^include<stdio.h>

intmain()

(

inta,b;

printf("请输入两个数:”);

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

if(a>b)

printf("最小数是%d”,b);

else

printf("最小数是%d”,a);

return0;

)

2.

#include<stdio.h>

intmainO

(

intx,y;

printf(“请输入x的值:\n");

scanf&x);

if(x>0)y=x+3;

else

if(x==0)y=0;

elsey=x-1;

printf("输出y的值:%d",y):

return0;

)

3.#include<stdio.h>

intmain()

(

intsum;

intyear,month,day,leap;

printf(〃请输入年月日:\n");

,,,,

scanf(%d%d%dt&ycar,&month,&day);

switch(month)

case1:sum=0;break;

case2:sum=31;break;

case3:sum=59;break;

case4:sum=90;break;

case5:sum=120;break;

case6:sum=151;break;

case7:sum=181;break;

case8:sum=212;break;

case9:sum=243;break;

caseID:sum=273;break;

case11:sum=304;break;

case12:sum=334;break;

dcflaut:printf("日期错误!\n");break;

}

sum=sum+day;

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

leap=l

else

leap=0;

if(leap&&month>2)

(

sum++;

}

printf("这是这年的第机1天\n”,sum);

return0;

)

第5单元

一、选择题

1.A2.B3.B4.A5.C6.B7.A8.C9.C10.D

二、填空题

1.whiledo-whi1efor2.xl>0xl/2+2x1x2

3.ch=getchar()ch>='A'&&ch<='Z'4.s=s+i*tt=t*(-1)5._2

三、写出下列程序的运行结果

1.89212.SUM=24683.5

四、编程题

1.#include<stdio.h>

intmain()

(

inti,n,sum=0,data;

printf(”请输入求和数据的个数:\n");

scanf&n);

printf("请输入%d个正数:\n”,n);

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

{

scanf("舟d”,&data);

sum+=data;

)

printf(“它们的和是%d\n”,sum);

return0;

}

2.dinclude<stdio.h>

intmainO

(

intm,i,sum=0;

for(m=1;m<1000;m++)

{

sum=0;

ror(i=l:i<=m/2:i++)

if(m%i==0)

sum=sum+i;

if(sum==m)

printf(*%d",m);

)

returnO;

}

3.ttincludc<stdio.h>

intmain()

inttemp,mul,max,min;

printf("请输入两个整数:\n");

scanf(*%d%d”,&max;&min);

mul=max*min;

if(max<min)

(

ternp=max;

max=min;

min=temp;

)

while(max%min!=0)

{

tcmp=min;

min=max%min;

max=temp;

)

printf("最大公约数:%d\n",min);

printf("最小公倍数:%d\n”,mu1/min);

return0;

)

第6单元

一、选择题

BCBDCADCCD

二、填空题

1.0

2.行,首地址

3.string,h

4.0

5.j=2;j>=0;

6.s[j++]=s[i];

三、阅读程序,输出结果

1.8,10

2.19

3.AQM

4.9,8

5.you&me

四、编程题

1.

#include<stdio.h>

^defineN10

intmainO

{

inti,j,t,n;

inta[N];

printf("请输入%d个元素:\n〃,N);

for(i=0;i〈N;i++)

scanf&a[i]);

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

for(j=0;j<N-l-i;j++)

if(a[j]>a[j+l])

{

t=a[j];

a[j]=a[j+l];

a[j+l]=t;

}

printf("最小元素为:%5d\n",a[0]);

printf("最大元素为:%5d\n”,a[N-l]);

return0;

)

2.

#includc<stdio.h>

#defineM10

intmainO

(

inta[M][M],i,j;

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

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

(

if(i==j|Ij==0)

else

a[i][j]=a[i-l][j]+a[i-l][j-1];

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

if(i==j)

printf(〃\n〃);

)

return0;

)

3.

#include<stdio.h>

#include<string.h>

intmain()

{

chara[100];

printf(〃请输入一个字符串:");

scanf("%s〃,&a);

inti,k=strlen(a);

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

(

if(a[i]<97)

(

a[i]+=32;

)

)

printf("%s〃,a);

return0;

第7单元

一、选择题

1.A2.B3.C4.C5.B6.A7.A8.C9.C10.A

二、填空题

1.函数2.main函数3.vo函4.地址传递值传递5.auto

三、写出下列程序的运行结果

1.112.108642135793.24.56345.ABEF6.579

四、编程题

L.

#include<stdio.h>

intf(intn);

intmain()

(

inta;

scanf(飞d",&a);

printf(,,%d\n,\f(a));

return0;

}

intf(intn)

(

if(n==l||n=2)

return1;

else

return(f(n-l)+f(n-2));

}

2.

#include<stdio.h>

voidinput(intscore[3][2]);〃输入学生的课程成绩

voidsavg(intscore[3][2]);〃学生的平均分

voidcavg(intscore[3][2]);〃课程的平均分

intmain()

(

intscore[3][2];

input(score);

savg(score);

cavg(score);

return0;

)

voidinput(intscore[3][2])

inti,j;

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

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

(

printf("请输入第%d个学生的第%d门功课成绩:\n”,i+lj+l);

scanf&score[i][j]);

1

)

voidsavg(intscore[3][2])

(

intsuml;

floatavgl;

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

{intsum1=0;

for(intj=O;j<=l;j++)

(

suml+=score[i][j];

]

avgl=suml/2.0;

printf(〃第个学生的平均分是%f\n”,i+l,avgl);

)

)

voidcavg(intscore[3][2])

(

intsum2;

floatavg2;

for(intj=O;j<=l:j++)

(

intsum2=0;

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

(

sum2+=score[i][j];

)

avg2=sum2/3.0;

printf("第刎门功课的平均分是%f\n”,j+1,avg2);

)

第8单元

一、选择题

1.D2.B3.D4.A5.B6.C7.B8.B9.C10.C11.A12.B13.D14.C

15.A16.A

二、填空题

1.取地址、指针2.13.“ab\0”4.63

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

-2.-5,-12,-73.264.55.ABCDCD6.abcDDfofDbD

四、编程题

1.#include<stdio.h>

intmain()

(

inta,b,c,x;

int*pa,*pb,*pc;

pa=&a;

pb二&b;

pc=&c;

prinlf(“请输入3个整数\n〃);

scanf(,/%d%d%dz,,pa,pb,pc);

if(*pa>*pb){x=*pa;*pa=*pb;*ph=x;}

if(*pa>*pc){x=*pa;*pa=*pc;*pc=x;}

if(*pb>*pc){x=*pb;*pb=*pc;*pc=x;}

printf("这3个数由小到大的排列顺序为与d,%d,%d",*pa,*pb,*pc);

}

2.dinclude<stdio.h>

intlength(char*p)

(

intn=0;

while(*p)

{

p++;

n++:

)

return(n);

)

intmain()

(

chars[100];

intlen;

printf(〃请输入一个字符串:”);

gcts(s);

lcn=lcngth(s);

printf("该字符串长度为:%d",len);

return0;

}

3.#include<stdio.h>

#include<string.h>

voidmystrcpy(char*strl,char*str2,intm)

(

intn,t,i;

n=strlen(strl);//n是第一个字符串的长度

t=0;〃1用来计数

〃i是第m个数据的下标

strl=strl+i;

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

(

str2[t++]=*strl;

strl++;

)

}

intmain()

(

intm;

charstrl[100],str2[100];

printf(〃请输入第一个字符串:\n〃);

gets(strl);

printf(〃请输入复制字符串的起始位置:\n〃);

scanf(“%d",&m);

mystrcpy(strl,str2;m);

printf(〃复制完后,第二个字符串是:%s\n〃,str2);

return0;

)

4.ttinclude<stdio.h>

#include<string.h>

intstrcmp(char*ptrl,char*ptr2)

(

intresult;

while(*ptrl!=\0*&&*ptr2!=\03{

if(*ptrl!=*ptr2){

result=*ptrl-*ptr2;

break;

)

ptrl++;

ptr2++;

)

if(*ptrl==\0*||*ptr2=='\0')

rcsult=*ptrl-*ptr2;

}

returnresult;

)

intmainO

(

charstrl[100]={0};

charstr2[100]={0};

printf(''Pleaseentertwostrings:\nw);

gets(strl);

gets(str2);

printf(“比较结果果d\n”,strcmp(strl,str2));

return0;

}

第9单元

一、选择题

1.B2.C3.C4.C5.D6.A7.C8.A9.B10.A

二、填空题

1.structsludentslu2.结构体3.数据类型4.(*p).a

5.p->next=s;s->next-p->nextp->next=p->next->next

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

1.ZhaoK85952.Zhao,m,290,Zhao,m,290

3.Zhao,m,290,Zhao,m:290,Zhao,m,290,Sun,m,3704.05.2,3

四、编程题

1.

^include<stdio.h>

^include<stdlib.h>

typedefstruct

g

charname[10];

charbookname[20];

charchubanshe[20];

intyear;

intprice;

}worker;

intmainO

u

workera[100];

inti;

printf(〃限制输入5本书”);

printf(〃请输入作者,书名,出版社,出版年月,价格〃);

p^ntf("列如:张三未来会更好青职学院201820)”);

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

scanf(*%s%s%s%d%d”,

&a[i].name,&a[i].bookname,&a[i].chubanshe,&a[i].year,pricc);

)

printf("所有书的信息\n");

printf(〃作者书名出版社出版年月价格\n〃);

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

printf(?,%s%s%s%d%d\n*,

a[i].name,a[i].bookname,a[i].chubanshe,a[i].year,a[i].price);

)

printf("20元以上的书有:\n");

printf(〃书名

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

if(a[i].price>20)

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

)

printf("2000年以后的书有:\n〃);

printfC书名作者\n〃);

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

if(a[i].year>2000)

温馨提示

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

评论

0/150

提交评论