ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:143.47KB ,
资源ID:8845279      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8845279.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(最新c语言第十一十二十三章课后题答案资料.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

最新c语言第十一十二十三章课后题答案资料.docx

1、最新c语言第十一十二十三章课后题答案资料11-1、(*p)+表示:先取地址中的内容,将内容表示的数字进行自增运算。 *p+表示:先对p的地址自增运算,再取其中的内容。结果:每一句printf语句分析说明:printf(%d,*(+p);-p自增取下一个地址,去除其中的内容为2printf(%d,*(p)+);-引用p现在地址中的内容为2,在进行地址的自增运算printf(%d,*p);-引用地址的内容为3printf(%d,*p);-应用现在的地址中的内容为3printf(%d,*p-);-先引用p中的内容为3,再进行自减运算printf(%d,-(*p);-先自减运算,再取内容为1print

2、f(%dn,*p);-取p现在的地址中的内容为111-2(1)#include void Print(char *arr,int len);int main() char *pArray=How,are,you; int num=sizeof(pArray)/sizeof(int); printf(Total string numbers = %dn,num); Print(pArray,num); return 0;void Print(int *arr,int len) int i; for(i=0; ilen; i+) printf(%s ,arri); printf(n);错误分析:指

3、针数组中的元素为地址,是一个整型,所以应为 num=sizeof(pArray)/sizeof(int);而不是除以sizeof(char)结果:(2)#include void OutputArray(int *pa,int n);void InputArray(int *pa,int n);void main() int a5; printf(Input five numbers:); InputArray(a,5); OutputArray(a,5); return 0;void InputArray(int *pa,int n) int *a=pa; for(; paa+n; pa+)

4、 scanf(%d,pa); void OutputArray(int *pa,int n) int *a=pa; for(; paa+n;pa+) printf(%4d,*pa); printf(n);结果:错误分析:For(; papa+n; pa+)的语句中将指针循环变量更改了,破坏了循环结构,所以在写循环时为了防止指针循环变量被修改,应重新定义一个变量来标记传入的指针值。(3)、#include #define STUD 30#define COURSE 5void Print(int *pScore,int sum,float aver,int m,int n);void Total

5、(int *pScore,int sum,float aver,int m,int n);int main() int i,j,m,n,scoreSTUDCOURSE,sumSTUD; float averSTUD; printf(How many student?); scanf(%d,&m); printf(How many course?); scanf(%d,&n); printf(Input score:n); for(i=0; im; i+) for(j=0; jn; j+) scanf(%d,&scoreij); Total(*score,sum,aver,m,n); Print

6、(*score,sum,aver,m,n); return 0;void Total(int *pScore,int sum,float aver,int m,int n) int i,j; for(i=0; im; i+) sumi=0; for(j=0; jn;j+) sumi=sumi+pScorei*n+j; averi=(float)sumi/n; void Print(int *pScore,int sum,float aver,int m,int n) int i,j; printf(Result:n); for(i=0; im; i+) for(j=0; jn; j+) pri

7、ntf(%4dt,pScorei*n+j); printf(%5dt%6.1fn,sumi,averi); 分析:在创建二维数组时,就分配好空间行30列5,当进行列指针操作时,实际输入的人数会小于5,但偏移量仍然是I*COURSE+j,而不是i*n+j。改后的结果:11-3#include void main() int *p12=January,february,March,April,May,June,July, August,September,October,November,December; int m; do printf(请输入月份值: ); scanf(%d,&m); if(

8、m12) printf(Illegel month!); while(m12); printf(%d 月-%sn,m,pm-1);结果:11-4#include #define N 10void Swap(int *p1,int *p2);void Transpose2(int *a,int n);void Transpose(int aN,int n);void Transpose1(int (*a)N,int n);void main() int n; int i; int j; int aNN; int m; do printf(输入阶数: ); scanf(%d,&n); while(

9、n10); for(i=0; in; i+) printf(请输入第 %d 行:n ,i+1); for(j=0; jn; j+) printf(输入第 %d 行第 %d 列: ,(i+1),(j+1); scanf(%d,&aij); printf(原矩阵是:n); for(i=0; in;i+) printf(n); for(j=0; jn; j+) printf(%dt,aij); printf(n1. 引用数组下表法n2.行指针法n3.列指针法n); printf(请选择: ); scanf(%d,&m); switch(m) case 1: Transpose(a,n); break

10、; case 2: Transpose1(a,n); break; case 3: Transpose2(*a,n); break; printf(转置矩阵是:n); for(i=0; in;i+) printf(n); for(j=0; jn; j+) printf(%dt,aij); printf(n);void Swap(int *p1,int *p2) int temp; temp=*p1; *p1=*p2; *p2=temp;void Transpose(int aN,int n) int i,j; for(i=0; in; i+) for(j=i; jn;j+) Swap(&aij

11、,&aji); void Transpose1(int (*a)N,int n) int i,j; for(i=0; in; i+) for(j=i; jn; j+) Swap(*(a+i)+j,*(a+j)+i); void Transpose2(int *a,int n) int i,j; for(i=0; in; i+) for(j=i; jn; j+) Swap(a+i*n+j,a+j*n+i); 结果:11-5#include #define N 10#define M 10void Swap(int *p1,int *p2);void Transpose2(int *a,int *

12、at,int m,int n);void Transpose(int aN,int atM,int m,int n);void Transpose1(int (*a)N,int m,int n);void main() int n; int i; int j; int aMN; int m; int atNM; int p; do printf(输入行数: ); scanf(%d,&m); printf(输入列数: ); scanf(%d,&n); while(n10 | m10); for(i=0; im; i+) printf(请输入第 %d 行:n,i+1); for(j=0; jn;

13、j+) printf(输入第 %d 行第 %d 列: ,(i+1),(j+1); scanf(%d,&aij); printf(原矩阵是:n); for(i=0; im;i+) printf(n); for(j=0; jn; j+) printf(%dt,aij); printf(n1. 引用数组下表法n2.行指针法n3.列指针法n); printf(请选择: ); scanf(%d,&p); switch(p) case 1: Transpose(a,at,m,n); break; case 2: Transpose1(a,at,m,n); break; case 3: Transpose2

14、(*a,*at,m,n); break; printf(转置矩阵是:n); for(i=0; in;i+) printf(n); for(j=0; jm; j+) printf(%dt,atij); printf(n);void Swap(int *p1,int *p2) int temp; temp=*p1; *p1=*p2; *p2=temp;void Transpose(int aN,int atM,int m,int n) int i,j; for(i=0; im; i+) for(j=0; jn;j+) Swap(&aij,&atji); void Transpose1(int (*

15、a)N,int (*at)N,int m,int n) int i,j; for(i=0; im; i+) for(j=0; jn; j+) Swap(*(a+i)+j,*(at+j)+i); void Transpose2(int *a,int *at,int m,int n) int i,j; for(i=0; im; i+) for(j=0; jn; j+) Swap(a+i*N+j,at+j*M+i); 结果:11-6#include #include #define N 10#define M 10void InputArray(int *p,int m,int n);int Fin

16、dMax(int *p,int m,int n,int *pRow,int *pCol);void main() int m; int n; int Row; int Col; int a; int *p=NULL; printf(请输入行数: ); scanf(%d,&m); printf(请输入列数: ); scanf(%d,&n); p=(int *)calloc(m*n,sizeof(int); if(p=NULL) printf(没有足够的空间n); exit(1); InputArray(p,m,n); a=FindMax(p,m,n,&Row,&Col); printf(最大值为

17、:%d,下标:%d 行 %d 列n,a,(Row+1),(Col+1); free(p);void InputArray(int *p,int m,int n) int i; int j; for(i=0; im; i+) for(j=0; jn;j+) printf(请输入第 %d 行第 %d 列:,(i+1),(j+1); scanf(%d,p+i*n+j); int FindMax(int *p,int m,int n,int *pRow,int *pCol) int i,j; int *a=p; for(i=0; im; i+) for(j=0; jn; j+) if(*p*(a+i*

18、n+j) p=a+i*n+j; *pRow=i; *pCol=j; return *p;结果:12-1采用结构体定义typedef struct date int year; int month; int day;Date;typedef struct job char school10; char zhicheng10; char zhiwu10;Job;struct student char name10; char sex; Date birthday; Job work;12-2#include typedef struct time int hour; int minute; int

19、 second;Time;void update(Time *p) p-second+; if(p-second=60) p-second=0; p-minute+; if(p-minute=60) p-minute=0; p-hour+; if(p-hour=24) p-hour=0; void delay() int t; for(t=0; thour,p-minute,p-second);int main() int i; Time t; t.second=0; t.hour=0; t.minute=0; for(i=0; i1000000; i+) update(&t); dispal

20、y(&t); delay(); return 0;结果:12-3#include typedef struct time int hour; int minute; int second;Time;void update(Time *p) p-second+; p-minute=p-second/60; p-second%=60; p-hour=p-minute/60;void delay() int t; for(t=0; thour,p-minute,p-second);int main() int i; Time t; t.second=0; t.hour=0; t.minute=0;

21、for(i=0; i1000000; i+) update(&t); dispaly(&t); delay(); return 0;结果:12-4#include #include #include typedef struct candidate char name10; int num;Xuan;void main() Xuan people3=zhang,0,li,0,wang,0; char temp10; int i; int j; int fp=0; int flag=0; for(i=0; i10; i+) flag=0; printf(请投票: ); gets(temp); f

22、or(j=0; j3; j+) if(strcmp(temp,peoplej.name)=0) peoplej.num+; flag=1; if(flag=0) fp+; printf(废票:%d 张n,fp); for(i=0; i3; i+) printf(%-10s 得票 :%dn,peoplei.name,peoplei.num); printf(n);结果:12-5#include typedef struct card char color1310; char suit10;Card; void main() int i; int j; Card Pai4= A,2,3,4,5,6

23、,7,8,9,10,Jack,Queen,King,Spades, A,2,3,4,5,6,7,8,9,10,Jack,Queen,King,Hearts, A,2,3,4,5,6,7,8,9,10,Jack,Queen,King,Clubs, A,2,3,4,5,6,7,8,9,10,Jack,Queen,King,Diamonds ; for(i=0; i4; i+) for(j=0; j13; j+) printf(%s %st,Paii.suit,Paii.colorj); printf(n); 结果:13-1#include void main() FILE *fp; char str20; int i; printf(type ); gets(str); fp=fopen(str,r); if(fp=NULL) printf(文件打开有误n); exit(0); for(i=0; !feof(fp); i+) printf(%5d,fgetc(fp); printf(n);结果:13-2#include typedef struct dade int year; int month; int day;DATE;typed

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

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