C语言习题答案.docx
- 文档编号:25414250
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:50
- 大小:26.11KB
C语言习题答案.docx
《C语言习题答案.docx》由会员分享,可在线阅读,更多相关《C语言习题答案.docx(50页珍藏版)》请在冰豆网上搜索。
C语言习题答案
C语言习题答案
第1章
1.选择题
(1)C
(2)B(3)D
2.填空题
(1)main
(2)main(3)有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性
(4)顺序、分支和循环(5)自顶向下,逐步细化、模块化设计、结构化编码
第2章
1.选择题
BBCDADDBBABBDCB
2、填空题
(1)数字、字母、下划线
(2)0(3)4、8(4)(a+b)*c/(a-b)(5)-60(6)-16
(7)3(8)6、4、2(9)0(10)10、6(11)5.500000(12)12、4
(13)double(14)0(15)16(16)6.6
3、编程题
(1)
main()
{
printf("int:
%5d\n"
"float:
%5d\n"
"char:
%5d\n"
"double:
%5d\n"
"long:
%5d\n",
sizeof(int),
sizeof(float),
sizeof(char),
sizeof(double),
sizeof(long));
}
(2)
#defineRAT1.60934
main()
{
floatk=0.0;
printf("inputthekm:
");
scanf("%f",&k);
printf("\nmile:
%f",k*RAT);
}
第3章
1.选择题
(1)~(10):
DDCDCDCDBC
2.解析题
(1)x=170,x=ㄩㄩㄩ170,x=ㄩㄩㄩ252,x=ㄩㄩㄩ170
x=170,x=170ㄩㄩㄩ,x=ㄩㄩㄩ170,x=%6d
a=513.789185,a=ㄩㄩ513.79,a=513.78918457,a=513.78918457
(2)a=3ㄩb=7x=8.5ㄩy=71.82c1=Aㄩc2=a
3.编程题
(1)
main()
{
intx,y;
scanf("%d%d",&x,&y);
printf("商数=%d,余数=%d",x/y,x%y);
system("pause");
}
(2)
main()
{
doublex,y,z,avg;
scanf("%lf%lf%lf",&x,&y,&z);
avg=(x+y+z)/3;
printf("%.1lf",avg,avg);
system("pause");
}
第4章
1.选择题
(1)~(10)CCAADCCABD
2.填空题
(1)ch>='A'&&ch<='Z'ch=ch-32
(2)x<=10&&x>2x<=2&&x>-1y=-1
(3)a+b>c&&a+c>b&&b+c>aa==b&&a==ca==b||a==c||b==c
(4)mark/10k=1case9
(5)x<0c=x/10y!
=-2
3.编程题
(1)
#include
main()
{
intx;
printf("pleaseinputanumber:
");
scanf("%d",&x);
if(x%2==0)printf("%disaevennumber",x);
elseprintf("%disaoddnumber",x);
}
(2)
#include
main()
{
intx,y;
printf("pleaseinputanumber:
");
scanf("%d",&x);
if(x<=-5)printf("thenumberiserror");
elseif(x<0){y=x;printf("%d",y);}
elseif(x==0){y=x-1;printf("%d",y);}
elseif(x<10){y=x+1;printf("%d",y);}
elseprintf("thenumberiserror");
}
(3)
#include
main()
{inta,m;
printf("pleaseinputanumber:
");
scanf("%d",&a);
switch(a/10)
{case0:
case1:
case2:
m=1;break;
case3:
m=2;break;
case4:
m=3;break;
case5:
m=4;break;
default:
m=5;break;
}
printf("%d",m);
}
(4)
#include
main()
{
floatprice,tax;
printf("pleaseinputthepriceofproduct:
");
scanf("%f",&price);
if(price>10000)tax=price*0.05;
elseif(price>5000)tax=price*0.03;
elseif(price>1000)tax=price*0.02;
elsetax=0;
printf("%f",tax);
}
(5)
#include
main()
{
floatscore;
printf("pleaseinputthescoreofstudent:
");
scanf("%f",&score);
if(score>=85)printf("VERYGOOD");
elseif(score>=60)printf("GOOD");
elseprintf("BAD");
}
第5章
1.选择题
(1)d
(2)c(3)a(4)d(5)a(6)d(7)d(8)b(9)d(10)b
(11)c(12)b(13)d(14)a(15)c
2.填空题
(1)==0m=m/kk++
(2)546(3)3*i-2
(4)-=*=(5)852(6)j++i%j==0j>=i
(7)sum 3.改错题 (1)第一处改正: For改为for 第二处改正: ave=sum/4改为ave=sum/4.0 (2)第一处改正: j<=9 第二处改正: m=100*i+10*j+k 3.编程题 (1) #include main() { ints; floatn,t,sum; t=1;sum=0;n=1;s=1.0; while(n<=100) { sum=sum+t; n=n+1; s=-s; t=s/n; } printf("sum=%10.6f\n",sum); } (2)利用辗除法,直到b为0为止 main() {intp,r,n,m,temp; printf("inputtwointegern,m: "); scanf("%d,%d",&n,&m); if(n {temp=n; n=m; m=temp; } p=n*m; while(m! =0) { r=n%m; n=m; m=r; } printf("greatestcommondivisoris: %d\n",n);//最大公约数 printf("leasecommonmultipleis: %d\n",p/n);//最小公倍数 } (3)采取逆向思维的方法,从后往前推断。 main() { int day,x1,x2; day=9; x2=1; while(day>0) {x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/ x2=x1; day--; } printf("the total is %d\n",x1); } (4) #include main() { inti; longintn=1; for(i=1;i<=10;i++) { n=n*i; printf(i%5==0? "%2d! =%-10ld\n": "%2d! =%-10ld",i,n); } } (5) main() { intm,s,i; for(m=2;m<1000;m++) {s=0; for(i=1;i if((m%i)==0)s=s+i; if(s==m) {printf("%ditsfactorsare",m); for(i=1;i if(m%i==0)printf("%d,",i); printf("\n"); } } } (6) #include main() { intn,i,j; scanf("%d",&n); for(i=1;i<=n;i++) {for(j=1;j<=n+i-1;j++) if(j<=n-i)printf(""); elseprintf("*"); printf("\n"); } } (7) #include main() { floatx0,x1,x2,fx0,fx1,fx2; do {printf("Enterx1&x2: "); scanf("%f,%f",&x1,&x2); fx1=x1*((2*x1-4)*x1+3)-6; fx2=x2*((2*x2-4)*x2+3)-6; }while(fx1*fx2>0); do {x0=(x1+x2)/2; fx0=x0*((2*x0-4)*x0+3)-6; if((fx0*fx1)<0) {x2=x0; fx2=fx0; } else {x1=x0; fx1=fx0; } }while(fabs(fx0)>=1e-5); printf("x=%6.2f\n",x0); } 第6章 1.选择题 CCDCCAADBD 2.写出程序的运行结果 (1)sum=6 (2)Max=9,row=1,col=0 (3) 0 10 210 3210 (4)-5 3、填空 (1)i=j=k=0、i<4、j<5、 (2)s[i]、s[0],s[1]、str,s[1]、s[2],str 4、编程题 (1) #include main() { inta[12],count=0,i; randomize(); for(i=0;i<12;i++) a[i]=5+random(11); for(i=0;i<12;i++) { printf("%5d",a[i]); count++; if(count%4==0)printf("\n"); } getch(); } (2) main() { inta[5]={2,23,43,77,33}; intmax,min,i; longsum=0L; intcount=0; floatav; max=min=a[0]; for(i=0;i<5;i++) { sum+=a[i]; if(a[i]>max)max=a[i]; if(a[i] } av=(float)sum/5; for(i=0;i<5;i++) if(a[i]>av)count++; printf("max: %d\nmin: %d\nav: %f\ncount: %d",max,min,av,count); getch(); } (3) main() { intscore[30]={61,62,63,64,65,66,67,68,69,70, 71,72,73,74,75,76,77,78,79,80, 81,85,89,90,33,44,55,91,92,93}; inti,count90=0,count80=0,count70=0,count60=0; for(i=0;i<30;i++) { printf("intputNO.%dstudent'sscore: ",i+1); scanf("%d",score+i); } for(i=0;i<30;i++) { if(score[i]>=90) { count90++; count80++; count70++; count60++; } elseif(score[i]>=80) { count80++; count70++; count60++; } elseif(score[i]>=70) { count70++; count60++; } elseif(score[i]>=60) { count60++; } } printf("0~60: %d\n60~70: %d\n70~80: %d\n80~90: %d\n90~100: %d",30-count60,count60-count70,count70-count80,count80-count90,count90); printf("\n60orhigher: %d\n70orhigher: %d\n80orhigher: %d\n90orhigher: %d\n",count60,count70,count80,count90); getch(); } (4) 1、 main() { chara[45]; inti,j,k; for(i=0;i<45;i++)a[i]=''; for(i=0;i<5;i++) { for(j=0;j a[9*i+j]=''; for(k=0;k<5;k++) a[9*i+j+k]='*'; } j=0; for(i=0;i<45;i++) { printf("%c",a[i]); j++; if(j%9==0)printf("\n"); } getch(); } 2、 main() { chara[5][9]; inti,j,k; for(i=0;i<5;i++) for(j=0;j<9;j++) a[i][j]=''; for(i=0;i<5;i++) { for(j=0;j a[i][j]=''; for(k=0;k<5;k++) a[i][j+k]='*'; } for(i=0;i<5;i++) { for(j=0;j<9;j++) printf("%c",a[i][j]); printf("\n"); } getch(); } 第7章 1.选择题 DCCBDCADACBD 2.填空 (1)函数 (2)main函数(3)变量声明部分、函数体(4)形式参数、实际参数、实参、形参(5)常量、变量、表达式(6)函数定义时函数值、函数定义时函数值 (7)30,20,10(8)max(max(a,b),c))、(x>y? x: y)(9)str[]=abdef (10)8,17 (11) a=5 a*a=25 a*a*a=512 (12) ****** ###### ****** ****** ###### ****** ****** ###### ****** 3、编程题 (1) longact(longn) { if(n==1||n==0)return1L; else { returnn*act(n-1); } } main() { intn=3; printf("n! =%ld",act(n)); getch(); } (2) voidmmax(floata[],intn); main() { floata[6]; inti; for(i=1;i<=5;i++) scanf("%f",&a[i]); a[0]=1; mmax(a,5); printf("%f%f\n",a[a[0]],a[0]); } voidmmax(floata[],intn) { if(n<=0) return; else if(a[n]>a[a[0]]) a[0]=n; mmax(a,n-1); } (3) #include main() { chara[40];inti=0; for(;i<=40;i++) scanf(“%c”,&a[i]); intcount=0,i=0,len,flag=0; len=strlen(a); while(! flag&&i { if(a[i]=='A')flag=1; i++; } while(flag&&i { i++; if(a[i]=='A')flag=0; count++; printf("%c",a[i-1]); } printf("\ncount: %d",count); getch(); } (4) my_strcpy(chardst[],charsrc[]) { inti=0; while(src[i]! ='\0') {dst[i]=src[i]; i++; } dst[i]='\0'; } intmain() { chara[12];charb[12]; gets(b); my_strcpy(a,b); puts(a); } 第8章 2.编程题 (1) /*习题8-2-1*/ #defineISALPHA(a)(((a)>='A'&&(a)<='Z')||((a)>='a'&&(a)<='z')) main() {charc; scanf("%c",&c); printf("%d\n",ISALPHA(c)); } (2) /*习题8-2-2*/ #defineSWAP(t,x,y){tw;w=x;x=y;y=w;} main() {doublea=99.99,b=11.11; SWAP(double,a,b); printf("%f,%f\n",a,b); } (3) /*习题8-2-3*/ #include"stdio.h" #defineMAX80 #defineCHANGE1 main() {charstr[MAX]; inti; printf("Inputtext: \n"); gets(str); #if(CHANGE) {for(i=0;i {if(str[i]! ='\0') if(str[i]>='a'&&str[i]<'z'||str[i]>='A'&&str[i]<'Z') str[i]+=1; elseif(str[i]=='z'||str[i]=='Z') str[i]-=25; } } #endif printf("output: \n%s",str); } (4) /*习题8-2-4*/ #defineLEAP_YEAR(y)(y%4==0)&&(y%100! =0)||(y%400==0) main() {intyear; printf("Inputyear: "); scanf("%d",&year); if(LEAP_YEAR(year)) printf("%disaleapyear.\n",year); else printf("%disnotaleapyear.\n",year); } (5) /*习题8-2-5.h*/ #ifndef__X8_2_5_H #define__X8_2_5_H #defineAVER(a,b,c)(a+b+c)/3.0 #endif /*习题8-2-5*/ #include"X8_2_5.h" main() {inta,b,c; printf("Inputthreeintegersa,b,c: "); scanf("%d,%d,%d",&a,&b,&c); printf("Averageis%f.\n",AVER(a,b,c)); } 第9章 4.编程题 (1) /*习题9-4-1*/ #include #include main() {char*str1[20],*str2[20],*str3[20]; charswap(); printf("Inputthreeline: \n"); gets(str1); gets(str2); gets(str3); if(strcmp(str1,str2)>0)swap(str1,str2); if(strcmp(str1,str3)>0)swap(str1,str3); if(strcmp(str2,str3)>0)swap(str2,str3); printf("Now,theorderis: \n"); printf("%s\n%s\n%s\n",str1,str2,str3); } charswap(char*p1,char*p2)/*交换两个字符串*/ {char*p[20]; strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p); } (2) /*习题9-4-2*/ main() {intnumber[20],n,m,i; printf("Howmanynumbers? ");/*共有多少个数*/ scanf("%d",&n); printf("Input%dnumbers: \n",n);/*输入n个数*/ for(i=0;i scanf("%d",&number[i]); printf("Howmanyplaceyouwanttomove? ");/*后移多少个位
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题 答案