基于PBL的C语言课程设计及学习指导前三章答案10版.doc

上传人:s****u 文档编号:12744058 上传时间:2020-05-21 格式:DOC 页数:67 大小:2.87MB
返回 下载 相关 举报
基于PBL的C语言课程设计及学习指导前三章答案10版.doc_第1页
第1页 / 共67页
基于PBL的C语言课程设计及学习指导前三章答案10版.doc_第2页
第2页 / 共67页
基于PBL的C语言课程设计及学习指导前三章答案10版.doc_第3页
第3页 / 共67页
点击查看更多>>
资源描述
2.1(1)#include#includemain()int a=2,b=3,m;m=a;a=b;b=m;printf(a=%d,b=%d,a,b);getch();(2)#include#include#includemain()float a,b,c,s,v;scanf(%f,%f,%f,&a,&b,&c);s=0.5*(a+b+c); /将原来的“1/2”改为“0.5”v=sqrt(s*(s-a)*(s-b)*(s-c);printf(v=%fn,v);printf(a=%f,b=%f,c=%f,s=%fn,a,b,c,s);getch();(3)#include#includemain()int i,j,m,n;i=8;j=10;m=+i;n=j+;printf(%d,%d,%d,%d,i,j,m,n);getch();书上在此题后有 四次改动“ + ”的位置,不再赘述,其结果依次为:9,11,8,11;8,10;9,11;8,11,9,11;(4)#include#includemain()int i,j,m=0,n=0;i=8;j=10;m+=i+;n-=-j;printf(i=%d,j=%d,m=%d,n=%d,i,j,m,n);getch();(5)#include#includemain()int a,b;unsigned c,d;long e,f;a=100;b=-100;e=50000;f=32767;c=a;d=b;printf(%d,%dn,a,b); printf(%u,%un,a,b); printf(%u,%un,c,b); c=a=e;d=b=f;printf(%d,%dn,a,b); printf(%u,%un,c,d);getch();上机作业(6)#include#includemain()float a,b,c,S;printf(*);printf(n请输入长方体相关参数:);printf(n长);scanf(%f,&a);printf(宽);scanf(%f,&b);printf(高);scanf(%f,&c);S=a*b*c;printf(n该长方体体积为:%f,S);printf(n*);getch();(7)#include#includemain() int a=3,b=4,c=5,x,y,z; x=c,b,a; y=!a+bc&(b!=c); z=c/b+(float)a/b&(float)(a/c); printf(n x=%d,y=%d,z=%d,x,y,z); x=a|b-; y=a-3&c-; z=a-3&b; printf(n%d,%d,%d,%d,%d,%d,a,b,c,x,y,z); getch();_完_2014-10-212.2.2 上机实习指导(1)#include#includemain()int a,b,c;printf(请输入三个整数);scanf(%d,%d,%d,&a,&b,&c);if(ab)if(bc)printf(max=%dn,c);elseprintf(max=%dn,b);else if(ac)printf(max=%dn,c);elseprintf(max=%dn,a);getch();(2)#include#includemain()int a,b,c,max;scanf(%d,%d,%d,&a,&b,&c);max=a;if(bmax)max=b;if(cmax)max=c;printf(max=%dn,max);getch();(3)#include#include#includevoid main()float x,y1,y2;printf(n x=?);scanf(%f,&x);if(x!=0) if(x0) y1=2/x, y2=3/x;else y1=2*x,y2=3*x; else if(x=0)y1=2*x,y2=3*x;printf(n y1=%5.2f,y2=%5.2f,y1,y2); getch();(4)#include#include#includevoid main()int score;printf(n score=?);scanf(%d,&score);switch(score/10) case(10):case (9):printf(n A);break;case (8):printf(n B);break;case (7):printf(n C);break; case (6):printf(n D);break;default:printf(n E); getch();#include#include#includevoid main()int a=1,b=1,c=1,d=1,i,j,t;printf(请输入任意四个整数(_);scanf(%d%d%d%d,&a,&b,&c,&d); / c+中无法 scanf中出现多个变量时,逗号后不能识别负号,故只能用空格输入。int e4=a,b,c,d; printf(%d,%d,%d,%d,e0,e1,e2,e3); dofor(j=0;j3;j+)for(i=0;iei+1)t=ei;ei=ei+1;ei+1=t;while(j2); for(j=0;j4;j+) for(i=0;i0) if(ej0) printf(点(%d,%d)在第1象限n,ej,ei);else printf(点(%d,%d)在第2象限n,ej,ei);else if(ei0) printf(点(%d,%d)在第4象限n,ej,ei);else printf(点(%d,%d)在第3象限n,ej,ei); getch();#include#include#includechar a,b,c,d,e,n; main() printf( o )你好,我是 人工智能 猜球程序,想继续与我互动请按y,反之按nn); scanf(%s,&n);if( n=y) printf(n); printf(n); printf(n); printf(n);printf(n);printf(n);printf(O(_)O很好,n); printf(现有12个小球,分别标号1到12,其中有11个标准球的质量相等,请你任选一个小球作为非标准球,并决定它比其他球重还是轻,并牢记在心n);printf(准备好后请按yn);scanf(%s,&n);if (n=y) printf(n); printf(n); printf(n); printf(n); printf(n); printf(n);printf(nnnnn(_)?nn7到9号的总重与10到12号相同吗?(y/n)n); scanf(%s,&a);if(a=y)/ printf(nnnnn(_)?nn1到3号与7到9号的总重相同吗?(y/n)n); scanf(%s,&b);if(b=y)/printf(nnnnn(_)?nn5到7号与8到10号的总重相同吗?(y/n)n);scanf(%s,&c);if(c=y)/printf(nnnnn(_)?nn1到6号比7到12号的总重大,对吗?(y/n)n);scanf(%s,&d);if(d=y)/printf(nnnnnO(_)Onn根据你的描述,非标准球为4号,它比标准球重n); return getch();/ if(d=n)printf(nnnnnO(_)Onn根据你的描述,非标准球为4号,它比标准球轻n); return getch();/if(c=n) printf(nnnnn(_)?nn3到5号与7到9号的总重相同吗?(y/n)n); scanf(%s,&d);if(d=y)/printf(nnnnn(_)?nn1到6号比7到12号的总重大,对吗?(y/n)n);scanf(%s,&e);if(e=y)/printf(nnnnnO(_)Onn根据你的描述,非标准球为6号,它比标准球重n); return getch();/ if(e=n) printf(nnnnnO(_)Onn根据你的描述,非标准球为6号,它比标准球轻n); return getch();/if (d=n)printf(nnnnn(_)?nn1到6号比7到12号的总重大,对吗?(y/n)n);scanf(%s,&e);if(e=y)/printf(nnnnnO(_)Onn根据你的描述,非标准球为5号,它比标准球重n); return getch();/ if(e=n)printf(nnnnnO(_)Onn根据你的描述,非标准球为5号,它比标准球轻n); return getch();/if(b=n)printf(nnnnn(_)?nn2到4号球与6到8号球的总重相同吗?(y/n)n);scanf(%s,&c);if(c=y)/printf(nnnnn(_)?nn1到6号比7到12号的总重大,对吗?(y/n)n);scanf(%s,&d);if(d=y)/printf(nnnnnO(_)Onn根据你的描述,非标准球为1号,它比标准球重n); return getch();/ if(d=n)printf(nnnnnO(_)Onn根据你的描述,非标准球为1号,它比标准球轻n); return getch();/if(c=n)printf(nnnnn(_)?nn3到5号与8到10号的总重相同吗?(y/n)n);scanf(%s,&d);if(d=y)/printf(nnnnn(_)?nn1到6号比7到12号的总重大,对吗?(y/n)n);scanf(%s,&e);if(e=y)/printf(nnnnnO(_)Onn根据你的描述,非标准球为2号,它比标准球重n); return getch();/if(e=n) printf(nnnnnO(_)Onn根据你的描述,非标准球为2号,它比标准球轻n); return getch();/if(d=n)printf(nnnnn(_)?nn1到6号比7到12号的总重大,对吗?(y/n)n);scanf(%s,&e);if(e=y)/printf(nnnnnO(_)Onn根据你的描述,非标准球为3号,它比标准球重n); return getch();/if(e=n)printf(nnnnnO(_)Onn根据你的描述,非标准球为3号,它比标准球轻n); return getch();/if(a=n)printf(nnnnn(_)?nn7到9号与4到6号球的总重相同吗?(y/n)n);scanf(%s,&b);if(b=y)/printf(nnnnn(_)?nn1到3号与9到11号球的总重相同吗?(y/n)n);scanf(%d,&c);if(c=y)/printf(nnnnn(_)?nn1到6号比7到12号的总重大,对吗?(y/n)n);scanf(%s,&d);if(d=y)/printf(nnnnnO(_)Onn根据你的描述,非标准球为12号,它比标准球轻n); return getch();/if(d=n)printf(nnnnnO(_)Onn根据你的描述,非标准球为12号,它比标准球重n); return getch();/if(c=n)printf(nnnnn(_)?nn4到6号与8到10号球的总重相同吗?(y/n); scanf(%s,&d);if(d=y)/printf(nnnnn(_)?nn1到6号比7到12号的总重大,对吗?(y/n)n);scanf(%s,&e);if(e=y)/printf(nnnnnO(_)Onn根据你的描述,非标准球为11号,它比标准球轻n); return getch();/if(e=n)printf(nnnnnO(_)Onn根据你的描述,非标准球为11号,它比标准球重n); return getch();/if(d=n) printf(nnnnn(_)?nn1到6号比7到12号的总重大,对吗?(y/n)n);scanf(%s,&e);if(e=y)/printf(nnnnnO(_)Onn根据你的描述,非标准球为10号,它比标准球轻n); return getch();/if(e=n)printf(nnnnnO(_)Onn根据你的描述,非标准球为10号,它比标准球重n); return getch();/if(b=n) printf(nnnnn(_)?nn1到3号与6到8号球的总重相同吗?(y/n)n);scanf(%s,&c);if(c=y)/printf(nnnnn(_)?nn1到6号比7到12号的总重大,对吗?(y/n)n);scanf(%s,&d);if(d=y)/printf(nnnnnO(_)Onn根据你的描述,非标准球为9号,它比标准球轻n); return getch();/if(d=n)printf(nnnnnO(_)Onn根据你的描述,非标准球为9号,它比标准球重n); return getch();/if(c=n)printf(nnnnn(_)?nn2到4号与5到7号球的总重相同吗?(y/n)n); scanf(%s,&d);if(d=y)/printf(nnnnn(_)?nn1到6号比7到12号的总重大,对吗?(y/n)n);scanf(%s,&e);if(e=y)/printf(nnnnnO(_)Onn根据你的描述,非标准球为8号,它比标准球轻n); return getch();/if(e=n)printf(nnnnnO(_)Onn根据你的描述,非标准球为8号,它比标准球重n); return getch();/if(d=n) printf(nnnnnO(_)Onn1到6号比7到12号的总重大,对吗?(y/n)n);scanf(%s,&e);if(e=y)/printf(nnnnnO(_)Onn根据你的描述,非标准球为7号,它比标准球轻n); return getch();/if(e=n)printf(nnnnnO(_)Onn根据你的描述,非标准球为7号,它比标准球重n); return getch(); getch();if (n=n) printf(());getch();总结:1 巧用大括号,可以使if语句如虎添翼2 return getch () 可以解决程序结束后 任然可以继续输入的bug3 / 在这里是检查 小括号的完整性 用到的,#include#include#includemain() float x,s; printf(请输入一个实数x:);scanf(%f,&x);if(x=5)s=x*x-2*x+5;if(x=3)s=sqrt(1+x*x);if(x=2)s=2*sin(x)-1;if(x=1)s=3*x+5;else printf(x超出了定义域!);printf(s=%f,s);else printf(x超出了定义域!);getch();完2014 10 282.3循环结构的初步运用(1)#include#include#includevoid main()int k,n=0;printf(nk=?);scanf(%d,&k);printf(n);while(k=1)printf(%d ,k%10); /k%10,即取k的第一位数。k/=10;n+;printf(nn=%d,n);getch();(2)#include#include#includevoid main()int n,s;printf(n n=?);scanf(%d,&n);n+=1;s=1;if(n0)for(;-n;)s*=n; /“-”似乎是一个带有循环特性的符号,; ;也是第一次见到以后可以尝试运用printf(n s=%d,s);getch();(3)#include#include#includevoid main()int i,n;float s,t,x;printf(n n,x=?);scanf(%d,%f,&n,&x);t=x,s=x;for(i=2;i=n;i+) /小于等于号与课本不同,作此改动。t=t*x/i;s+=t;printf(n s=%f,s);getch();注: 将t=t*x/i; 改为 t=t*1/i 即可实现s=)(1/i)(4)#include#include#includevoid main()int i,t,k,a3;printf(以下是1000以内的阿姆斯特朗数:n);for(i=2;i=10;t+)at=(i%k)/(k/10);/i%k,可能是这个数值的首位,其后再 整除 k/10k/=10;if(a0*a0*a0+a1*a1*a1+a2*a2*a2=i)printf(%5d,i); /由调试法, 可以大致推测,%后的“5”,是指数据所占的格数printf(n);getch();(5)#include#include#includevoid main()int i,j,star,space;space=30;star=1;for(i=1;i=9;i+)printf(n);for(j=1;j=space;j+)printf( );for(j=1;j=star;j+)printf(*);if(i5)space-;star+=2; elsespace+;star-=2;getch(); 上机练习(6)#include#include#include main()int m,n,p,q,t,i;printf(请任意输入两个整数m,n:);scanf(%d,%d,&m,&n);if(mn) p=m,q=n;else p=n,q=m;for(i=p;i=m*n;i+=p)t=i%q;if(t=0) printf(%d和%d的最小公倍数是%d,m,n,i); return getch(); getch();(7)#include#include#include#include void main()int t,i,p,q,n=0,*a;printf(请输入任意个正整数:);printf(你想输入多少个数?);scanf(%d,&t);printf(请输入%d个数:n,t); a=(int *)calloc(t,sizeof(int); /此处为数组的动态长度确定语法,注意头文件名for (i=0;it;i+)scanf(%d,&ai);for(i=0;i0)n+;printf(在这些数中,能被3整除却不能被7整除的数的个数是%d,n);getch(); (8)#include#include#include void main()float x,t,n,i;printf(x,n=?);scanf(n %f,%f,&x,&n); t=x/(1+x);for(i=2;in;i+)t=x/(i+t);printf(输出的函数值为%5.2f,t);getch();getch(); (9)#include#include#include void main()/ printf(2到1000中守形数有:); int i,j,a,k,w5; for(i=2;i=10;j-) / wj=(a%k)/(k/10); k/=10; / if(i=10) / if(i=100) / if(w0+w1*10+w2*100)=i) printf(%5d,i); / if(i100) / if(w0+w1*10)=i) printf(%5d,i); / / if(i10) / if(w0=i) printf(%5d,i); / /getch(); / (10)#include#include#include void main() int space,number,i,k; for(i=1;i25,number6;space-,number+) for(i=1;i=1;k-) printf(%d,k); for(k=2;k=number;k+) /巧妙运用数字与计数器原理的映射关系 printf(%d,k); printf(n); getch(); 完2014 10 302-4数组与字符串的使用(1)#include#include#includevoid main()int i,t,a15=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;t=a0;for(i=1;i15;i+)ai-1=ai;a14=t;printf(n);for(i=0;i15;i+)printf(%5d,ai); /此处数据长度略做改动getch();(2)#include#include#includevoid main()int i,n,max_salary,min_salary,salary10;float aver_salary;printf(n 输入工资:n);for(i=0;i10;i+)scanf(%d,&salaryi);max_salary=salary0;min_salary=salary0;aver_salary=0;for(i=0;imax_salary)max_salary=salaryi;if(salaryimin_salary)min_salary=salaryi;aver_salary/=10;n=0;for(i=0;i=aver_salary)n+;printf(n max_salary=%d n min_salary=%d n n=%d,max_salary,min_salary,n);getch();(3)#include#include#includevoid main()int a5,i,j,t;for(i=0;i5;i+) scanf(%d,&ai);for(j=1;j=4;j+)for(i=0;iai+1)t=ai;ai=ai+1;ai+1=t;for(i=0;i5;i+) printf(%5d,ai); getch();(4)#include#include#includevoid main()int a55=1,2,3,4,5,0,1,2,3,45,34,34,5,67,34,3,23,1,34,5,2,0,5,67,45;int i,j,t,s,smin=32768,row;for(i=0;j5;j+)s=0;for(j=0;j5;j+) s+=aij;if(ssmin)smin=s;row=i;for(j=0;j5;j+)t=a0j;a0j=arowj;arowj=t;for(i=0;i5;i+)for(j=0;j5;j+)printf(%3d,aij);printf(n); getch();(5)#include#include#include#includevoid main()char a20=cehiknqwt;char s=fbla;int i,k,j;for(k=0;sk!=0;k+)j=0;while(sk=aj&aj!=/0)j+;for(i=9+k;ij;i-) /此处,为了不致使数列后移一位的过程中,被叠覆,数列需反向前推,前推的起始位即 9+k/ai=ai-1;aj=sk; for(i=0;i13;i+)printf(%c,ai);getch();上机练习(6)#include#include#include#includevoid main()int a9=1,2,3,4,5,6,7,8,9,b3,j,i;for(i=0;i3;i+)j=(i+1)*3; bi=(aj-1+aj-2+aj-3)/3;for(i=0;i3;i+)printf(%3d,bi);getch();(7)#include#includevoid main()int a5=3,56,21,13,90,b5=70,19,44,2,88,p,t,k,o,c10;for(t=0;t5;t+)p=t;for(k=t+1;kap)p=k;if(p!=t)o=at;at=ap;ap=o;for(t=0;t5;t+)p=t;for(k=t+1;k5;k+)if(bkbp)p=k;if(p!=t)o=bt; bt=bp;bp=o;printf(a数组:n);for(t=0;t5;t+)printf(%3d,at);printf(nb数组:n );for(t=0;t5;t+)printf(%3d,bt);for(t=0;t5;t+)ct=at;for(t=5;t10;t+)ct=bt-5;for(t=0;t10;t+)p=t;for(k=t+1;kcp)p=k;if(p!=t)o=ct;ct=cp;cp=o;printf(nc数组:n);for(t=0;t10;t+)printf(%3d,ct);getch();(8)#include#include#includevoid main()int a10=4,8,2,27,74,35,83,91,43,22,i,o,t=0,j;for(i=1;i10;i+)switch(i%2) /此处运用了间隔周期冒泡法将偶数与奇数分开case 1: for(j=0;j9;j+=2)if(aj%2=0)o=aj+1;aj+1=aj;aj=o;case 0 :for(j=1;j9;j+)if(aj%2=0)o=aj+1;aj+1=aj;aj=o;for(i=0;i9;i+)if(ai%2!=0&ai+1%2=0)t=i; /找出偶数与奇数的分界点for(i=1;it;i+)for(j=0;jaj+1) o=aj+1; aj+1=aj; aj=o;for(i=1;i9-t;i+)for(j=t+1;jaj+1) o=aj+1; aj+1=aj; aj=o;printf(n); for(i=0;i10;i+)printf(%3d,ai);getch();(9)#include#include#include#includevoid main()char a53=“编写程序,将某一指定字符从一个已知的字符串中删除”;char b=a,string2;char e263=“,编,写,程,序,,,将,某,一,指,定,字,符,从,一,个,已,知,的,字,符,串,中,删,除,”; /此处 运用二维数组容纳汉字串,因为一个汉字要至少占据2个字节/int i; char*p=一;char*q=字;printf(“编写程序,将某一指定字符从一个已知的字符串中删除”n);printf(nn*n请问你想删除上面这句话中的哪个汉字?);scanf(%s,string); if(!strcmp(p,string)printf(请问是以上那句话中的第一个 “一”吗?(y/n);scanf(%s,&b);if(b=y) printf(输出结果为:n*nnn); printf(“编写程序,将某指定字符从一个已知的字符串中删除”); if(b=n) printf(输出结果为:n*nnn); printf(“编写程序,将某一指定字符从个已知的字符串中删除”); if(!strcmp(q,string) /该语法用来判断 输入汉字与给定汉字是否相同printf(请问是以上那句话中的第一个 “字”吗?(y/n);scanf(%s,&b);if(b=y) printf(输出结果为:n*nnn); printf(“编写程序,将某一指定符从一个已知的字符串中删除”); if(b=n) printf(输出结果为:n*nnn); printf(“编写程序,将某一指定符从一个已知的字符串中删除”); if(strcmp(p,string)&strcmp(q,string) printf(输出结果为:n*nnn);for(i=0;i26;i+)if(strcmp(ei,string) printf(%c,a2*i); /此处输出似乎不能用%s; 2*i 保证每次输出两个一维数组中字节/printf(%c,a2*i+1); getch();2014 11 022.5函数(1)#include#include#includefloat min(float x,float y)float z;z=xy成立则这个表达式的值为后面x,否则表达式的值是y,/return(z); / 函数返回为Z值/void main()float a,b, c;scanf(%f%f,&a,&b);c=min(a,b);printf(min is %dn,c);getch();(2)#include#include#includevoid insert_sort(int num,int money,int n,int number,int salary)int i,j;for(i=0;imoneyi)break;/if(i=n) return; (改动处),此行为无意义行,当限定输入次数时,i不可能超过或等于n,若不限定次数,此行的效果也高
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!