C语言程序设计第4版微课版李刚习题答案_第1页
C语言程序设计第4版微课版李刚习题答案_第2页
C语言程序设计第4版微课版李刚习题答案_第3页
C语言程序设计第4版微课版李刚习题答案_第4页
C语言程序设计第4版微课版李刚习题答案_第5页
已阅读5页,还剩34页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

C语言程序设计第4版微课版李刚习题答案任务一同步训练答案一、选择题1、B2、C3、C4、B5、A6、B二、填空题1、函数主函数2、.c.obj.exe3、编辑编译连接执行4、函数首部函数体5、分号6、mainmain三、综合题1、(1)C语言具有结构语言的特点,程序之间很容易实现段的共享。(2)函数作为C程序的模块单位,便于实现程序的模块化。(3)运算符丰富。(4)数据类型丰富。(5)比较接近硬件。(6)语法限制少和程序设计自由度大。(7)生成目标代码质量高、程序执行效率高。(8)可移植性好。2、#include"stdio.h"main(){printf("*************************\n");printf("我爱我的祖国!\n");printf("*************************\n");}3、#include"stdio.h"main(){floatbottom,height,s;bottom=5;height=3;s=bottom*heigh/2;printf("s=%f\n",s);}

任务二同步训练答案一、选择题1、B2、C3、D4、B5、D6、A7、B8、A9、B二、填空题1、%2、(x*y)/(u*v)3、字母或者下划线4、单引号双引号5、326、2.57、3.58、0-1-2三、程序设计题1、#include"stdio.h"main(){doubleprice;intnum;price=150;num=3;printf("%lf\n",price*num);}2、#include"stdio.h"main(){intx=10,y=12,t;t=x;x=y;y=t;printf("x=%dy=%d\n",x,y);}

任务三同步训练答案一、选择题1、C2、B二、填空题1、算法2、有穷性3、判断条件三、综合题1、(1)有穷性:算法中所包含的步骤必须是有限的,不能无穷无止,应该在一个人所能接受的合理时间段内产生结果;(2)确定性:算法中的每一步所要实现的目标必须是明确无误的,不能有二义性;(3)有效性:算法中的每一步如果被执行了,就必须被有效地执行。例如,有一步是计算X除以Y的结果,如果Y为非0值,则这一步可有效执行,但如果Y为0值,则这一步就无法得到有效执行;(4)有零或多个输入:根据算法的不同,有的在实现过程中需要输入一些原始数据,而有些算法可能不需要输入原始数据;(5)有一个或多个输出:设计算法的最终目的是为了解决问题,为此,每个算法至少应有一个输出结果,来反应问题的最终结果。2、y%4==0?y%4==0?不是闰年不成立成立是闰年y%100==0?成立是闰年不成立y%400==0?成立不成立不是闰年3、成立成立不成立i≤100?打印ii=1i%3==0或者i%5==0成立i加14、bb2-4ac>0不成立成立成立输出两个根b2-4ac=0不成立无根输出一个根

任务四同步训练答案一、选择题1、B2、C3、C4、B二、填空题1、-2642、putchar3、scanf("%f",&price)money4、scanf("%d%d",&a,&b)a=b三、程序设计题1、#include"stdio.h"main(){floatr,len,area;scanf("%f",&r);len=2*3.14*r;area=3.14*r*r;printf("len=%.2f,area=%.2f\n",len,area);}2、#include"stdio.h"main(){ intm,ge,shi,bai; printf("请输入一个百位整数:"); scanf("%d",&m); ge=m%10; shi=m/10%10; bai=m/100; printf("%d\n",ge*100+shi*10+bai);} 3、#include"stdio.h"main(){ charch; printf("请输入一个大写字母:"); ch=getchar(); ch=ch+32; putchar(ch);}

任务五同步训练答案一、选择题1、B2、B3、A4、A5、A6、D二、填空题1、ch>='1'&&ch<='9'2、43、c<='u'c='a'+5-('z'-c+1)4、a>bt=a;a=c;c=t;b>c三、程序设计题1、#include"stdio.h"main(){ inta,b,c; scanf("%d%d%d",&a,&b,&c); if(a+b>c&&a+c>b&&b+c>a) printf("可以构成三角形!\n"); elseprintf("不能构成三角形!\n");}2、#include"stdio.h"main(){ intyear; scanf("%d",&year); if(year%4==0&&year%100!=0||year%400==0) printf("是闰年!\n"); else printf("不是闰年!\n");}3、#include"stdio.h"main(){intx,y;scanf("%d",&x);if(x<0) y=x;elseif(x<10) y=2*x-1;elseif(x<20) y=3*x-11;elseif(x<30) y=4*x+5;else y=5*x-8;printf("%d\n",y);}

任务六同步训练答案一、选择题1、A2、D3、A4、D5、C6、A7、D8、B二、填空题1、forwhiledo-while2、跳出循环体跳出本次循环,执行下一次3、forwhiledo-while4、365、a=16y=60三、程序设计题1、#include"stdio.h"main(){ inti,j; for(i=1;i<=4;i++) { for(j=1;j<=10-i;j++) printf(""); for(j=1;j<=2*i-1;j++) printf("*"); printf("\n"); }}2、#include"stdio.h"main(){ intm,n,m1,n1,r,h,t; printf("请输入两个正整数:"); scanf("%d,%d",&m,&n); m1=m; n1=n; r=m%n; while(r!=0) { m=n; n=r; r=m%n; } h=n; t=m1*n1/h; printf("最大公约数为%d,最小公倍数为%d\n",h,t);}3、#include"stdio.h"main(){inti,f1=1,f2=1,f3;printf("%d%d",f1,f2);for(i=3;i<=20;i++) { f3=f1+f2; printf("%d",f3); f1=f2; f2=f3; }}

任务七同步训练答案一、选择题1、C2、C3、D4、B5、A6、B7、C8、A9、B10、B二、填空题1、802、’\0’3、120三、程序设计题1、#include"stdio.h"main(){ inti,a[10]={80,70,90,60,55,75,85,95,65,45},s=0,n=0; floatave,pass;for(i=0;i<=9;i++) { s=s+a[i]; if(a[i]>=60)n++; } ave=s/10.0; pass=n/10.0; printf("ave=%f,pass=%.0f%%\n",ave,pass*100);}2、#include"stdio.h"#include"string.h"main(){ charstr[10]; intlen,i; gets(str); len=strlen(str);for(i=0;i<=len/2-1;i++) { if(str[i]!=str[len-1-i]) break;} if(i>len/2-1) printf("该字符串是回文!\n");elseprintf("该字符串不是回文!\n");}3、#include"stdio.h"main(){ inta[4][3],i,j,max,min,row1,col1,row2,col2; for(i=0;i<=3;i++) for(j=0;j<=2;j++) scanf("%d",&a[i][j]); max=a[0][0]; min=a[0][0];for(i=0;i<=3;i++) { for(j=0;j<=2;j++) printf("%d",a[i][j]); printf("\n"); }for(i=0;i<=3;i++) for(j=0;j<=2;j++) { if(a[i][j]>max){max=a[i][j];row1=i;col1=j;} if(a[i][j]<min){min=a[i][j];row2=i;col2=j;} }printf("row=%d,col=%d,max=%d\n",row1,col1,max); printf("row=%d,col=%d,min=%d\n",row2,col2,min);}4、#include"stdio.h"#include"string.h"main(){ chars1[50],s2[50];inti=0; gets(s2); while(s2[i]!='\0') { s1[i]=s2[i]; i++; } s1[i]='\0'; puts(s1);}

任务八同步训练答案一、选择题1、B2、C3、C4、D5、C二、填空题1、auto2、实参形参3、值传递地址传递4、999t/10%10x5、void6、return三、程序设计题1、#include"stdio.h"intmax(inta,intb,intc){intm=a;if(b>m)m=b;if(c>m)m=c;returnm;}main(){ intx,y,z,t; scanf("%d%d%d",&x,&y,&z); t=max(x,y,z); printf("%d\n",t);}2、#include"stdio.h"intgcd(intm,intn){ intr; r=m%n;while(r!=0) { m=n; n=r; r=m%n;} returnn;}intlcm(intm,intn){ return(m*n)/gcd(m,n);}main(){ intx,y; scanf("%d%d",&x,&y); printf("%d\n",gcd(x,y)); printf("%d\n",lcm(x,y));}3、#include"stdio.h"intprime(intm){inti; for(i=2;i<=m-1;i++) if(m%i==0) break; if(i==m) return1; else return0;}main(){intm,t;printf("请输入一个整数:");scanf("%d",&m);t=prime(m);if(t==1) printf("该数是素数!\n");else printf("该数不是素数!\n");}

任务九同步训练答案一、选择题1、D2、B3、C4、B5、B6、A二、填空题1、宏定义文件包含条件编译2、#3、分号4、#include<stdio.h>#include"stdio.h"5、define三、程序设计题1、#include"stdio.h"#defineR(m,n)(m)%(n)main(){ intm,n; scanf("%d%d",&m,&n); printf("%d\n",R(m,n));}2、#include"stdio.h"#defineDIVIDEDBY3(m)(m)%3==0main(){ intm; scanf("%d",&m); if(DIVIDEDBY3(m))printf("%d能被3整除!\n",m);elseprintf("%d不能被3整除!\n",m);}3、#include"stdio.h"#include"string.h"#defineCHANGE1//#defineCHANGE0main(){ charstr[100]; inti,len;gets(str); len=strlen(str);#if(CHANGE==1) for(i=0;i<=len-1;i++) { if(str[i]=='z') str[i]='a'; else str[i]++; }#endif puts(str);}

任务十同步训练答案一、选择题1、A2、C3、D4、C5、D6、D7、C二、填空题1、地址2、23、9911三、程序设计题1、#include"stdio.h"main(){ inta,b,c,t,*p,*q,*r; scanf("%d%d%d",&a,&b,&c); p=&a;q=&b;r=&c; if(*p>*q){t=*p;*p=*q;*q=t;}if(*p>*r){t=*p;*p=*r;*r=t;} if(*q>*r){t=*q;*q=*r;*r=t;}printf("%d%d%d\n",a,b,c);}2、#include"stdio.h"main(){inti,a[10],*p,*s;for(i=0;i<10;i++) scanf("%d",&a[i]);for(p=a,s=a;p-a<10;p++) if(*p>*s)s=p; printf("max=%d\n",*s);}3、#include"stdio.h"intcount(char*str,char*substr){inti,j,k,num=0;for(i=0;str[i]!='\0';i++){for(j=i,k=0;substr[k]==str[j]&&k<strlen(substr);k++,j++); if(substr[k]=='\0') num++;}returnnum;}main(){ intn; charstr[100],substr[10]; printf("请输入一个主串:"); gets(str); printf("请输入一个子串:"); gets(substr); n=count(str,substr); printf("子串在主串中出现了%d次。\n",n);}

任务十一同步训练答案一、选择题1、D2、C3、D二、填空题1、structunionenum2、12三、程序设计题1、#include"stdio.h"structstu{ inteng; intc; intmath; intchin; intoff; floatave;};main(){ structstus; scanf("%d%d%d%d%d",&s.eng,&s.c,&s.math,&s.chin,&s.off); s.ave=(s.eng+s.c+s.math+s.chin+s.off)/5.0; printf("ave=%.2f\n",s.ave);}2、#include"stdio.h"struct{intyear;intmonth;intday;}tian;intdays(intyear,intmonth,intday){inti=month,s,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},sum=0,leap,j;if(year%4==0&&year%100!=0||year%400==0)leap=1;elseleap=0;if(leap==1&&i>2){ for(j=1;j<i;j++)sum=sum+a[j];s=sum+day+1;}else{ for(j=1;j<i;j++)sum=sum+a[j];s=sum+day;}returns;}voidmain(){ints;scanf("%d%d%d",&tian.year,&tian.month,&tian.day);s=days(tian.year,tian.month,tian.day);printf("改日是本年中的第%d天。\n",s);}3、#include"stdio.h"#include"stdlib.h"typedefstruct{charszNum[32];//职工的工作证号charszName[32];//姓名intage;//年龄floatszJobTime;//工作时间(年)charszDegree[32];//文化程度floatpayment;//工资}EmployeeRecord;main(){ inti=0,nRecordNum=3; floatnTotalAge=0,nTotalJob=0,nTotalPay=0;EmployeeRecord*tables=(EmployeeRecord*)malloc(nRecordNum*sizeof(EmployeeRecord)); for(i=0;i<nRecordNum;i++) { printf("\n请输入第%d个员工信息:\n",i+1); scanf("%s",tables[i].szNum); scanf("%s",tables[i].szName); scanf("%d",&tables[i].age); scanf("%f",&tables[i].szJobTime); scanf("%s",tables[i].szDegree); scanf("%f",&tables[i].payment); } for(i=0;i<nRecordNum;i++) { nTotalAge+=tables[i].age; nTotalJob+=tables[i].szJobTime; nTotalPay+=tables[i].payment;}nTotalAge/=nRecordNum;nTotalJob/=nRecordNum;nTotalPay/=nRecordNum; printf("平均年龄是:%.2f,平均工龄是:%.2f,平均工资是:%.2f\n",nTotalAge,nTotalJob,nTotalPay);}

任务十二同步训练答案一、选择题1、BC2、A3、B4、D5、B二、填空题1、111100002、803、34、01001000三、程序设计题voidoutput(intx){ inti,result; x=x>>1; for(i=15;i>=1;i=i-2) {result=x&1; printf("第%d位:%d\n",i,result); x=x>>2; }}main(){ output(109);}

任务十三同步训练答案一、选择题1、D2、D3、B4、A5、A6、B7、A8、C二、填空题1、"wb+"2、"d1.dat","rb"或"d1.dat","rb+"3、!feof(fp)三、程序设计题1、#include"stdio.h"main(){ FILE*fp; charch,fname[10]; printf("请输入文件名称:"); gets(fname); if((fp=fopen(fname,"w"))==NULL) {printf("不能打开\n");exit(0); }printf("输入数据:");while((ch=getchar())!='#')fputc(ch,fp);fclose(fp);}2、main(){ FILE*fp; inti,num1=0,num2=0; charch; if((fp=fopen("test.txt","r"))==NULL) {printf("不能打开\n");exit(0); }for(i=1;i<=100;i++){ch=fgetc(fp); if(ch>='a'&&ch<='z') num1++; if(ch>='A'&&ch<='Z') num2++;}printf("小写字母数量:%d个,大写字母数量:%d个。\n",num1,num2);fclose(fp);}任务八思考题答案思考题1:returns;result=sum(x);思考题2:returnage(n+1)+2;result=age(1);思考题3:s2=s2+a[i][3-i];result=sum(s);思考题4:3思考题5:4

任务二思考题答案思考题1:A思考题2:i=3.6,j=3思考题3:#include"stdio.h"main(){intm=12,g,s;g=12%10;s=12/10;printf("%d\n",g*10+s);}思考题4:33

任务九思考题答案思考题1:输出“l=9.42s=7.06”。思考题2:输出“area=28.274333”。

任务六思考题答案思考题1:#include"stdio.h"main(){intf,i,n;f=1;i=1;scanf("%d",&n);while(i<=n){f=f*i;i++;}printf("f=%d\n",f);}思考题2:一次也不执行思考题3:算法设计:定义4个变量,一个用于循环控制,三个用于存储每位数据。利用for语句控制循环100-999。分别求个位数、十位数和百位数。判断每位的立方和是否等于该数,如果等于该数,则输出该数。代码清单:#include"stdio.h"main(){intm,a,b,c;for(m=100;m<=999;m++){ a=m%10; b=m/10%10; c=m/100; if(a*a*a+b*b*b+c*c*c==m) printf("水仙花数为:%d",m);}printf("\n");}输出153370371407思考题4:457810思考题5:10

任务七思考题答案思考题1:共有5个元素,a[3]是第4个元素思考题2:算法设计:定义3个变量,一个用于循环控制,一个用于存储最大值,还有一个数组用于存储10个数。利用for语句输入10个数。假设a[0]最大,存储到max中。其他的数据分别和max进行比较啊,如果大于max,则存储到max中。输出最大值max。代码清单:#include"stdio.h"main(){inti,max,a[10];printf("请输入10个数:");for(i=0;i<10;i++)scanf("%d",&a[i]);max=a[0];for(i=0;i<10;i++)if(a[i]>max)max=a[i];printf("最大值:%d",max);}输入5869230147,输出“最大值:9”。思考题3:a[i][j]=1;a[i][j]=a[i-1][j-1]+a[i-1][j];printf("%6d",a[i][j]);思考题4:算法设计:首先定义一个字符数组a,长度尽量大一些,设为100。从键盘上输入一个字符串存放在数组a中,然后依次判断字符串中的字符,如果不是'\0'(即为实际字符),则个数sum自加1,直到字符串结束为止。代码清单:#include"stdio.h"#defineN100main(){chara[N];inti,sum=0;printf("请输入一个字符串:");gets(a);for(i=0;a[i]!='\0';i++)sum++;printf("字符串中实际字符个数为%d\n",sum);}输入123abc#?<>,输出12。思考题5:#defineN10main(){floata[N],t;inti,j;printf("请输入%d个实型数据:",N);for(i=0;i<N;i++)scanf("%f",&a[i]);for(i=0;i<N-1;i++)for(j=0;j<N-1-i;j++)if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}printf("%d个实型数据从大到小排序为:",N);for(i=0;i<N;i++)printf("%.3f,",a[i]);}

任务三思考题答案思考题1:

任务十二思考题答案思考题1:00100100思考题2:2思考题3:00011011

任务十三思考题答案思考题1:if((fp=fopen("score.txt","a"))!=NULL)printf("文件打开正常,可以追加数据!\n");思考题2:"bi.dat","w"(ch=getchar())!='@'fputc(ch,fp);思考题3:gets(str);fputc(str[i],fp);fgets(str,len+1,fp);

任务十思考题答案思考题1:D思考题2:B思考题3:12思考题4:字符'c'的地址思考题5:6思考题6:6思考题7:*p!=‘\0’*p-‘0’j--!=0

任务十一思考题答案思考题1:structgoods{charid[6];charname[8];floatprice;longnum;}goods_1;思考题2:structDATEd={2014,9,3}思考题3:structstuperson[i].sex=’M’n=fun(W);思考题4:3000思考题5:5思考题6:C思考题7:p=q->nextfree(q)思考题8:printf("\n英语成绩不及格名单如下:\n");for(i=0;i<=9;i++)if(stu[i].english<60)printf("%s",stu[i].name);printf("\n网络成绩不及格名单如下:\n");for(i=0;i<=9;i++)if(stu[i].net<60)printf("%s",stu[i].name);printf("\nC语言成绩不及格名单如下:\n");for(i=0;i<=9;i++)if(stu[i].c<60)printf("%s",stu[i].name);printf("\n数据库成绩不及格名单如下:\n");for(i=0;i<=9;i++)if(stu[i].database<60)printf("%s",stu[i].name);

任务四思考题答案思考题1:m=1n=2p=3思考题2:97b思考题3:printf("%6.2f",a);思考题4:#include"stdio.h"main(){ charc1,c2,c3; printf("请输入第一个字符:"); c1=getchar(); getchar();//接收回车符 printf("请输入第二个字符:"); c2=getchar(); getchar();//接收回车符 printf("请输入第三个字符:"); c3=getchar(); getchar();//接收回车符 putchar(c3); putchar(c2); putchar(c1);}思考题5:#include"stdio.h"main(){ inta=3,b=4,c=5; floatx=9.6,y=6.0,z=-14.6; charc1='A',c2='B'; longn=12345678; printf("a=%d\tb=%d\tc=%d\n",a,b,c); printf("x=%f,y=%f,z=%f\n",x,y,z); printf("x+y=%f,x+z=%f,y+z=%f\n",x+y,x+z,y+z);printf("n=%ld\n",n); printf("c1=\'%c\'or%d<ASCII>\n",c1,c1); printf("c2=\'%c\'or%d<ASCII>\n",c2,c2);}思考题6:#include"stdio.h"main(){intm,ge,shi,bai,qian;printf("请输入一个4位整数:");scanf("%d",&m);ge=m%10;shi=m/10%10;

温馨提示

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

评论

0/150

提交评论