习题答案.docx

上传人:b****8 文档编号:29285451 上传时间:2023-07-21 格式:DOCX 页数:26 大小:20.86KB
下载 相关 举报
习题答案.docx_第1页
第1页 / 共26页
习题答案.docx_第2页
第2页 / 共26页
习题答案.docx_第3页
第3页 / 共26页
习题答案.docx_第4页
第4页 / 共26页
习题答案.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

习题答案.docx

《习题答案.docx》由会员分享,可在线阅读,更多相关《习题答案.docx(26页珍藏版)》请在冰豆网上搜索。

习题答案.docx

习题答案

第1章习题答案

1.填空题

(1)函数、一个主函数、函数。

(2)/*、*/。

(3)连接。

(4)#。

(5).h。

(6).c、.obj、.exe。

2.填空题

(1)C

(2)C(3)D(4)B(5)D(6)A

3.程序设计题

(1)#include

voidmain()

{

printf("*\n");

printf("*A*\n");

printf("*\n");

}

(2)#include

voidmain()

{

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

printf("Yourareastudent\n");

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

}

第2章参考答案

1.

(1)C

(2)A(3)B(4)B

(5)A(6)C(7)B(8)A

(9)C(10)A

2.

(1)0x

(2)\0(3)5(4)a%2!

=0或a%2==1(5)0

(6)x>20&&x≤60(7)3.5(8)0(9)2(10)4

3.

(1)

#include

voidmain()

{

floatr=0,h=0,l=0,v=0,pi=0;

pi=3.1415926;

printf("请输入圆半径及圆柱的高,用逗号分隔:

");

scanf("%f,%f",&r,&h);

l=2*pi*r;

v=pi*r*r*h;

printf("圆周长为:

%6.2f\n",l);

printf("%圆柱体积为:

%6.2f\n",v);

}

(2)

#include

voidmain()

{

longx=0;

inth=0,m=0,s=0;

printf("请输入秒数,为一个正整数:

");

scanf("%d",&x);

h=x/3600;

m=x%3600/60;

s=x%3600%60;

printf("你输入的秒数为%d小时%d分%d秒\n",h,m,s);

}

 

第3章习题答案:

1、填空题

(1)i<9、i、i++;++a;、i++;、9、10

(2)i<10、i、a++、i++、9、10、10。

(3)54321。

(4)x%3==0||x%7==0、f=1。

2、选择题

(1)B

(2)D(3)B(4)C(5)A(6)A

3、

(1)

#include

voidmain()

{

intnumber;

printf("Enteranumber:

");/*输入提示*/

scanf("%d",&number);/*输入1个数*/

if(number%2==0)/*若number除以2的余数是0,则为偶数*/

{

printf("Tnenumberiseven.\n");

}

else

{/*若number除以2的余数不是0,则为奇数*/

printf("Tnenumberisodd.\n");

}

return0;

}

(2)#include

voidmain()

{

intn,i;

for(n=3;n<=100;n=n+1)

{

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

if(n%i==0)break;

if(i>=n)printf("%d\t",n);

}

}

(3)#include

voidmain()

{

doublesum=0;

doubletmp=1;

intmul=1;

inti;

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

{

tmp*=i;

sum+=tmp*mul;

mul*=-1;

}

printf("1!

-2!

+3!

-4!

+.....+49!

-50!

=%e",sum);

}

(4)#include

voidmain()

{

intn=0;

printf("inputastring\n");

while(getchar()!

='\n')n++;

printf("%d",n);

}

第4章习题答案:

1、填空题:

(1)intm[4][10];

(2)intn[10]={9,4,7,19,42,-8}(3)07

(4)string.h(5)inta[10]={9,3,4,7,12,5,8,5,1,10};(6)3

2、选择题:

(1)C

(2)C(3)D(4)C(5)B(6)C

3、程序设计题

(1)

#include“stdio.h”

#defineN6/*定义符号常量N(分数个数)*/

main()

{intscore[N],i,sum,max,min;/*输入N个成绩*/

printf("Pleaseinput%dscores(departedbyspace):

",N);

for(i=0;i

scanf("%d",&score[i]);/*求分数合计、最高分和最低分*/

sum=max=min=score[0];/*预置累计和、最高、最低分*/

for(i=1;i

{sum+=score[i];/*求累计和*/

if(score[i]>max)max=score[i];

if(score[i]

}

/*输出结果*/

printf("\naverage=%4.1f,max=%d,min=%d\n",(float)sum/N,max,min);

}

(2)#include“stdio.h”

#include“string.h”

main()

{charc,str[40];

inti,length;

printf(“inputstring:

”);

gets(str);

length=strlen(str);

for(i=0;i

{c=str[i];

str[i]=str[length-i-1];

str[length-i-1]=c;

}

printf(“\noutputstring:

”);

puts(str);

}

第5章习题答案:

1.填空题

(1)声明部分、语句部分

(2)int型(3)实参数组的首地址

(4)static(5)c=20(6)12624

2.选择题

(1)A

(2)D(3)C(4)A(5)B(6)B

3.程序设计题

(1)

#include

intfac(intk)

{

inti,f=1;

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

f=f*i;

returnf;

}

voidmain()

{

intm,n,c;

printf("请输入m,n:

");

scanf("%d%d",&m,&n);

c=fac(m)/(fac(n)*fac(m-n));

printf("%d里取%d的组合数是:

%d\n",m,n,c);

}

(2)

#include

intisprime(intm)

{

inti;

for(i=2;i

if(m%i==0)

return0;

return1;

}

voidmain()

{

intn;

printf("请输入一个正整数:

");

scanf("%d",&n);

if(isprime(n))

printf("%d是一个素数!

\n",n);

else

printf("%d不是一个素数!

\n",n);

}

(3)

#include

longpower(intx,intn)

{

if(n==0)

return1;

else

returnx*power(x,n-1);

}

voidmain()

{

intx,n;

printf("x=?

n=?

\n");

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

printf("%d^%d=%ld\n",x,n,power(x,n));

}

(4)

#include

voidmain()

{

charstr[80];

intcount[4];

voidfunc(chars[],intc[]);

printf("请输入一串字符,以回车结束:

\n");

gets(str);

func(str,count);

printf("%d个字母,%d个空格,%d个数字,%d个其它字符。

\n",

count[0],count[1],count[2],count[3]);

}

voidfunc(chars[],intc[])

{

inti;

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

c[i]=0;

i=0;

while(s[i]!

='\0')

{

if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')

c[0]++;

else

if(s[i]=='')

c[1]++;

else

if(s[i]>='0'&&s[i]<='9')

c[2]++;

else

c[3]++;

i++;

}

}

 

第6章习题答案:

1.填空题

(1)39  

(2)ef(3)6(4)5(5)ss=s;s-ss;(6)0,2

2.选择题

(1)B  

(2)D(3)D(4)B(5)C(6)A

3.程序设计题

(1)#include

voidmain()

{

inta,b,c,*p1,*p2,*p3,*p;

printf("请输入3个实数:

");

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

p1=&a;p2=&b;p3=&c;

if(a>b)

{p=p1;p1=p2;p2=p;}

if(a>c)

{p=p1;p1=p3;p3=p;}

if(b>c)

{p=p2;p2=p3;p3=p;}

printf("%d,%d,%d\n",*p1,*p2,*p3);

}

(2)#include

#include

voidmain()

{

charstr1[20],str2[10],*p,*q;intm;

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

\n");

gets(str1);

printf("请输入整数m:

\n");

scanf("%d",&m);

p=str1+m;

q=str2;

while(*p!

='\0')

{

*q=*p;

p++;

q++;

}

*q='\0';

printf("新串为:

");

puts(str2);

}

(3)#include

voidmain()

{int*p,i,a[10]={3,7,9,11,0,6,7,5,4,2};

voidsort(intx[],intn);

printf("排序前数组为:

\n");

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

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

printf("\n");

p=a;

sort(p,10);

printf("排序后数组为:

\n");

for(p=a,i=0;i<10;i++)

{printf("%d",*p);

p++;}

printf("\n");

}

voidsort(intx[],intn)

{inti,j,k,t;

for(i=0;i

{k=i;

for(j=i+1;j

if(x[j]>x[k])k=j;

if(k!

=i)

{t=x[i];x[i]=x[k];x[k]=t;}

}

}

(4)#include

floatf1(floatx)

{returnx;}

floatf2(floatx)

{return2*x-5;}

floatf3(floatx)

{return3*x+4;}

floatpp(floatx,float(*p)(float))

{floatresult;

result=(*p)(x);

returnresult;

}

voidmain()

{

floatx,y;

printf("请输入实数x:

");

scanf("%f",&x);

if(x<0)

y=pp(x,f1);

elseif(x<5)

y=pp(x,f2);

elsey=pp(x,f3);

printf("x=%f,y=%f",x,y);

}

第7章习题答案

1.填空题

(1)No:

111010name:

LiMingsexMage:

20

(2)10ch

(3)structSTRU

(4)uniondatau;scanf(“%s”,u.c);(或scanf(“%c%c%c%c“,&u.c[0],&u.c[1],&u.c[2],&u.c[3]);

(5)2

(6)name

2.选择题

(1)D

(2)D(3)B(4)B(5)B(6)B

3.程序设计题

(1)定义一个结构体变量(包括年、月、日)、计算该日在本年中是第几天?

注意闰年问题。

#include

structdate{

intyear;

intmonth;

intday;

}date1;

main()

{inti,day_sum;

staticintday_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

printf("请输入年,月,日:

\n");

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

day_sum=0;

for(i=1;i

day_sum+=day_tab[i];

day_sum+=date1.day;

if((date1.year%4==0&&date1.year%100!

=0||date1.year%400==0)

&&date1.month>=3)

day_sum+=1;

printf("%d月%d日是%d年的第%d天\n",

date1.month,date1.day,date1.year,day_sum);

}

(2)输入5个同学的姓名、数学成绩、英语成绩和物理成绩,并统计出每个同学的总分、平均分,最后输出每个同学的姓名、数学成绩、英语成绩、物理成绩、总分及平均分。

#include

#defineN5

structstudent

{charname[8];

floatscore[5];

}stu[N];

voidprint(structstudent*p)

{inti,j;

printf("\n姓名成绩1成绩2成绩3总分平均分\n");

for(i=0;i

{printf("%8s",(*p).name);

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

printf("%7.1f",(*p).score[j]);

printf("\n");

}

}

main()

{

inti,j;

for(i=0;i

{printf("请输入学生%d的信息:

\n",i+1);

printf("姓名:

");

scanf("%s",stu[i].name);

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

{printf("成绩%d:

",j+1);

scanf("%f",&stu[i].score[j]);

}

stu[i].score[3]=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];

stu[i].score[4]=stu[i].score[3]/3;

}

printf("\n");

print(stu);

(3)应用枚举类型编写一个程序,输入月份号,输出该月的英文名称。

#include"stdio.h"

main()

{

enummonth{Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec}mon;

intk;

printf("Pleaseinputanumber(1~12):

");

scanf("%d",&k);

mon=(enummonth)k;

switch(mon)

{

caseJan:

printf("TomonthisJan.\n");break;

caseFeb:

printf("TomonthisFeb.\n");break;

caseMar:

printf("TomonthisMar.\n");break;

caseApr:

printf("TomonthisApr.\n");break;

caseMay:

printf("TomonthisMay.\n");break;

caseJun:

printf("TomonthisJnu.\n");break;

caseJul:

printf("TomonthisJu1.\n");break;

caseAug:

printf("TomonthisAug.\n");break;

caseSep:

printf("TomonthisSep.\n");break;

caseOct:

printf("TomonthisOct.\n");break;

caseNov:

printf("TomonthisNov.\n");break;

caseDec:

printf("TomonthisDec.\n");break;

default:

printf("Inputiserror!

\n");break;

}

}

 

第8章习题答案:

1.填空题:

(1)顺序存取随机存取

(2)二进制ASCII(3)字符流式(4)n-1buf的首地址(5)键盘(6)”wb+”

2、选择题:

(1)B

(2)C(3)D(4)C(5)D(6)B

3、程序设计题:

(1)#include"stdio.h"

FILE*fp;

voidmain()

{intp=0,n=0,z=0,temp;

fp=fopen("num.dat","r");

while(!

feof(fp))

{fscanf(fp,"%d",&temp);

if(temp>0)

p++;

elseif(temp<0)

n++;

else

z++;

}

fclose(fp);

printf("positive:

%3d,negative:

%3d,zero:

%3d\n",p,n,z);

}

(2)#include"stdio.h"

#include"stdlib.h"

voidmain()

{FILE*fp;

charch,filename[10];

puts("pleaseenterthefilename:

");

scanf("%s",filename);

if((fp=fopen(filename,"w"))==NULL)

{puts("cannotopenthefile\n");

exit(0);

}

ch=getchar();

while(ch!

='*')

{fputc(ch,fp);

putchar(ch);

ch=getchar();

}

fclose(fp);

printf("\n");

}

第9章习题答案:

#include"stdio.h"

#include"string.h"

#include"stdlib.h"

#defineMAX50

structphonetype

{

charname[10];

chartel[16];

charwork[30];

}phone[MAX];

intnn;

voidreadfile()

{inti;

FILE*fp;

fp=fopen("tel-book","r");

fread(&phone[0],sizeof(structphonetype),1,fp);

nn=atoi(phone[0].name);

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

fread(&phone[i],sizeof(structphonetype),1,fp);/*读磁盘文件*/

fclose(fp);

}

voidwritefile(intn)

{inti;

FILE*fp;

fp=fopen("tel-book","w");/*文件写操作*/

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

fwrite(&phone[i],sizeof(structphonetype),1,fp);

fclose(fp);

}

intcreat()/*录入原始数据并写入磁盘文件*/

{

inti=1;charname1[10];

while

(1)

{

printf("\n请输入第%d个电话信息(姓名输入000则输入结束!

):

\n",i);

printf("姓名:

");

scanf("%s",name1);

if(strcmp(name1,"000")==0)break;

strcpy(phone[i].name,name1);

printf("电话:

");

scanf("%s",phon

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

当前位置:首页 > 人文社科 > 文化宗教

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

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