习题答案.docx
- 文档编号:29285451
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:26
- 大小:20.86KB
习题答案.docx
《习题答案.docx》由会员分享,可在线阅读,更多相关《习题答案.docx(26页珍藏版)》请在冰豆网上搜索。
习题答案
第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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)