华中科技大学标准C语言程序设计及应用习题答案.doc_第1页
华中科技大学标准C语言程序设计及应用习题答案.doc_第2页
华中科技大学标准C语言程序设计及应用习题答案.doc_第3页
华中科技大学标准C语言程序设计及应用习题答案.doc_第4页
华中科技大学标准C语言程序设计及应用习题答案.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

第二章一.选择题1.C 2.B D 3.A 4.A 5. D 6.C 7.D 8.C 9.A 10.D11.B 12.D 13.C 14.D 15.A16.B 17.A 18.B 100011 001111二.判断题1.错2.错3.错4.错三.填空题1. B 662. n1=%dnn2=%dn3. 0四.计算1(1) x|y = 0x002f(2) xy = 0x0026(3) x&y = 0x0009;(4) x+y = 0xffc6(5) x=4 0x00022(1) 6(2) 50(3) 1(4) 16(5) 1(6) 203(1) 0(2) 1(3) 1(4) 4(5) 8(6) 14(1) 12(2) 0(3) 1(4) 27(5) 1(6) 6(7) 24(8) 27(9) 295(1) 0(2) 1(3) 1(4) 3(5) 2五.程序分析题程序1b=20 a=3600 程序2第三章一.填空题1.s=62.963.(1) scanf(%c,&c); (2) c-32 更好的答案:c-(a-A)2.1 main()int a,b;printf(please input a & b:);scanf(%d%d,&a,&b);printf(nmax is %dn,(ab)?a:b);2.2int max(int x,int y);main()int a,b,c,max;printf(please input a & b & c:);scanf(%d%d%d,&a,&b,&c);max=ab?a:b;max=cmax?c:max;printf(nmax is %dn,max);2.3main() int i=0,sum=0; while(i=100) sum+=i; i+; printf(1+2+3+.+100=%dn,sum);2.4main() int i; int a=10,b=-3; int c; printf(%6d%6d,a,b); for(i=2;i10;i+) c=3*b+a; printf(%6d,c); a=b; b=c; printf(n);2.5main() int i; while(1) printf(please input a data(0:exit):); scanf(%d,&i); if(i=0) break; if(i%2=0) printf(the data %d is a even number.n,i); else printf(the data %d is a odd number.n,i); 2.6#include main() int i; int a=8,b=1; int sum=0; for(i=0;i10;i+) b+=3; sum += a; a+=b; printf(a%8d b:%8dn,a,b); printf(The Sum Of Is:%dn,sum);2.7#include main() float x,y; printf(please input x:); scanf(%f,&x); if(x1.0) y=x; else if(x10) y=2*x-1; else y=3*x-11; printf(y=%fn,y);2.8#include main() long a,i,b,a1; while(1) printf(please input data(1-99999):); scanf(%ld,&a); printf(a:%ldn,a); if(a=100000) break; i=0; a1=0; while(a!=0) b=a%10; printf(%8d,b); a/=10; i+; a1=a1*10+b; printf(n i:%ld a1:%ldn,i,a1); 2.9#include #include #include main() int a,b,i,k=0; randomize(); a=random(1001);/*create a random data(0-1000)*/ for(i=0;ib) k+; printf(n%d:Smaller,guess again!n,k); else if(ab) k+; printf(n%d:Bigger,guess again!n,k); else printf(nYou guess right,congraturation!) ; printf(nYou have guessed %d times,k); break; if(k=20) printf(nsorry,you failed!);2.10#include main() int a,b,c; int num; for(a=0;a10;a+) for(b=0;b10;b+) for(c=1;c10;c+) num=a*100+b*10+c;if(num%3=0)&(a=5|b=5|c=5) printf(%8d,num); printf(nnn);2.11#include main() int i; int a,b; printf(please input a,b:); scanf(%d%d,&a,&b); for(i=a0;i-) if(a%i=0&b%i=0) printf(The max=%d,i); break; for(i=ab?a:b;i0;i+) if(i%a=0&i%b=0) printf(nThe min=%d,i); break; 2.12#include main() int a,k=0; printf(please input data:); scanf(%d,&a); while(a%2=0) a=a/2; k+; printf(nthe number of factor(2) is %d,k);2.13main() long i,t=1; long sum=0; for(i=1;i=10;i+) t*=i; sum+=t; printf(%ld!=%ldn,i,t); printf(sum:%ldn,sum); 2.14#include void main() int i,x=0; for(i=9;i=1;i-) x=2*(x+1); printf(The first day:%d,x);2.15#include #define PI 3.141593main() float r,h; float v; printf(please input r,h:); scanf(%f%f,&r,&h); v=1.0/3*PI*r*r*h; printf(V=%.2f,v);2.16#include#includemain() long int sn=0; long int m=0,t=0; int a,n,i; printf(please input a n:); scanf(%d%d,&a,&n); for(i=0;in;i+) m=m*10+a; sn+=m; printf(a+aa+aaa+.+aa.a=%ldnn,sn);2.17#include main() int k; printf(please input k:); do scanf(%d,&k); if(k=0&k=6) break; while(1); switch(k) case 0:printf(Sunday.n);break; case 1:printf(Monday.n);break; case 2:printf(Tuesday.n);break; case 3:printf(Wednesday.n);break; case 4:printf(Thursday.n);break; case 5:printf(Friday.n);break; case 6:printf(Saturday.n);break; 2.18#include main() int i; double x,a,b=1,sum=1; printf(please input x:); scanf(%lf,&x); a=x; for(i=1;a/b=1e-6;i+) sum=sum+a/b; a=a*x; b=(i+1)*b; printf(nsum=%lf,sum);2.19#include #include main() float a,x1,x2; printf(input a:); scanf(%f,&a); x1=1.0; while(1) x2=1.0/2*(x1+a/x1); if(fabs(x2-x1)1e-5) break; x1=x2; printf(sqrt(a)=%f,x2);第四章写出下列程序输出结果1.no 1 a=1no 1 a=0no 1 a=1no 1 a=02.a=0 b=0 c=0a=1 b=0 c=0a=2 b=0 c=03.main:x=5,y=1,n=1func:x=6,y=21,n=11main:x=5,y=1,n=11func:x=8,y=31,n=21第五章1.D2.D3.C4.65.CDABC6.(1)j+=2 (2)ai=0&si=912. (1)0 (2)str1i-str2i5.1#includeint fun();int fun() int a33,sum; int i,j; sum=0;/*error*/ for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij);/*error*/ for(i=0;i3;i+) sum=sum+aii; printf(sum=%dn,sum);void main() fun();5.2#include void main( void ) float Num10; float Input,GetNum11; int i,j; float a=6;for(i=0; i10; i+) Numi=a; a=a+7.5;Loop1: printf(Please input a Number(0-80) Input=); scanf(%f,&Input);if(Input70)=1)goto Loop1;for(i=0; i10; i+ )if(InputNumi)goto Loop2;Loop2: for(j=0; ji; j+ ) GetNumj=Numj;GetNumj=Input;for(j=i; j=10; j+,i+)GetNumj+1=Numi;for(j=0; j11; j+ )printf(%3.3f ,GetNumj);5.3#include stdio.h#include stdlib.hmain()int a1,a2,a3,a4,a5,a6,a7,a8,a9;int a3;int i;for(;)for (i=0;i3;i+)ai=rand()%3;while(a0!=a1) & (a0!=a2) & (a1!=a2)/*get three different numbers 0,1,2*/a1=a0+1;/*divide 19 into three groups,a1a3,a4a6,a7a9*/a2=a1+1;a3=a2+1;a4=a1+3;a5=a2+3;a6=a3+3;a7=a1+6;a8=a2+6;a9=a3+6;/* make sure that each line and each row is made up with three members in different group.*/* such as: a9 a1 a5 a2 a6 a7 a4 a8 a3 */if(a1+a5+a9) = (a2+a6+a7) & (a1+a5+a9) = (a3+a4+a8)& (a1+a6+a8) = (a5+a7+a3) & (a1+a5+a9) = (a2+a4+a9)printf(%d %d %dn%d %d %dn%d %d %dn,a9,a1,a5,a2,a6,a7,a4,a8,a3);return;5.4#include void main(void)char input1100,input2100,input3100;int i,Eng=0,eng=0,num=0,blank=0,other=0;printf(Input 3 rows of character,each row dont exceed 80 characters:n);gets(input1); printf(The second row:n); gets(input2); printf(The third row:n); gets(input3);/*test the first row*/for(i=0; i100; i+) if(input1i=0) goto Loop1; else if(A=input1i)&(input1i=Z)=1)Eng+; else if(a=input1i)&(input1i=z)=1) eng+; else if(0=input1i)&(input1i=9)=1)num+; else if(input1i=32)blank+; else other+;/*test the second row*/Loop1:for(i=0; i100; i+) if(input2i=0) goto Loop2; else if(A=input2i)&(input2i=Z)=1)Eng+; else if(a=input2i)&(input2i=z)=1) eng+; else if(0=input2i)&(input2i=9)=1)num+; else if(input2i=32)blank+; else other+;/*test the third row*/Loop2:for(i=0; i100; i+) if(input3i=0) goto Loop3; else if(A=input3i)&(input3i=Z)=1)Eng+; else if(a=input3i)&(input3i=z)=1) eng+; else if(0=input3i)&(input3i=9)=1)num+; else if(input3i=32)blank+; else other+;Loop3: printf(Upper english character:%dnLower english character:%dnNumber:%dnBlank:%dnOther characters:%dn,Eng,eng,num,blank,other);5.5#include void main(void)char str180,str240;int i,j,k;/*Input two string*/printf(Please input the first stringn str1=);gets(str1);printf(Please input the second stringn str2=);gets(str2);/*Get the end of str1*/for(i=0; i80; i+)if(str1i=0) break;/*Copy str2 to str1*/ for(j=i,k=0; str2k!=0;k+,j+) str1j=str2k; str1i+k=0; puts(str1);5.6#include struct student char name20; int score;stu5,stu1;void main(void) int i,j;printf(Input students score and name(5),seperate using the character of , :n);for(i=0; i5; i+) scanf(%d,%s,&stui.score,&);/*sorting*/for(i=0; i5; i+) for(j=0; jstuj+1.score) stu1=stuj;stuj=stuj+1;stuj+1=stu1;printf(After sotred,score and name:n); for(i=0; i5; i+)printf(%d,%sn,stui.score,);5.7#includemain() int a33,i,j,m,n,o,p; printf(Please input a 3*3 shuzu:n); for (i=0;i=2;i+) for (j=0;j=2;j+) scanf(%d,&aij); for (i=0;iai1)? ai0:ai1; n=(mai2)? m: ai2; for (j=0;j=2;j+) o=(a0ja1j)? a0j:a1j; p=(oa2j)? o: a2j; if (n=p) printf(Andian is %dn,p); else printf(There is no andian.n);5.8#include void main(void) int a43,b34,i,j; for(i=0; i4; i+) for(j=0; j3; j+) scanf(%d,&aij); for(i=0; i4; i+) printf(n); for(j=0; j3; j+) printf(%5d ,aij); for(i=0; i4; i+) for(j=0; j3; j+) bji=aij; printf(n);for(i=0; i3; i+) printf(n); for(j=0; j4; j+) printf(%5d ,bij); 5.9#include #includevoid main(void) char str6; int i,j=0,m=0,n=0; gets(str); while(strj!=0) j+; for(i=j-1;i=0;i-) m=(stri-0)*(pow(8,j-i-1); n+=m; printf(shijinzhi %d,n);5.10#include void main(void)char input1100;int i,num=0,blank=0;printf(Please input a row character:n);gets(input1);/*test the first row*/for(i=0; i100; i+) if(input1i=0) goto Loop; else if(A=input1i)&(input1i=Z)=1)num+; else if(a=input1i)&(input1i=z)=1) num+; else if (input1i=32)blank+;Loop: printf(Character:%dnBlank:%dn,num,blank);第六章一、 选择题1.D:p中记录的是a的地址,*p访问地址a的值2.D :指针数组3.D:指针可以进行是否相等判断,空指针可以进行指针变量初始化,指针可以偏移;4.C:5.C、D:a5不存在,若*&a4则正确;C,D正确;6.D:7.B:8.B:二、 填空题1*(p+3)2222 cdefgbcdefgabcdefg73 6385三、 程序分析题1p = s0 ; 错误,应改为:p = s; 或 p = &s0;2int x , *p;错误,应改为:double x, *p;3*p = x ;错误,应改为:p = &x ;4 声明顺序错误;应该改为:void main(void) int a; int *p = &a; a = 10; printf(“%dn”,*p);2.3 #include #include main() char ch25 = 6937,8254,*p2; int i,j,s=0; for(i=0;i2;i+) pi = chi; for(i=0;i0;j+=2) s = 10*s + pij - 0; printf(%dn,s);4.1#include #include main() int count = 0; char str1100,str2100; char *p1,*p2; printf(please enter string 1:); gets(str1); printf(please enter string 2:); gets(str2); printf(str1:%sn,str1); printf(str2:%sn,str2); p1 = str1; p2 = str2; while(*p1!=0&*p2!=0) if(*p1+=*p2+) count+; printf(count:%dn,count);4.2#include #include main() int i,j,k; int a3; int temp; printf(please enter array a3:); scanf(%d%d%d,&a0,&a1,&a2); for(i=0;i2;i+) k = i; for(j= i+1;j3;j+) if(ajai)k = j; if(k!=i) temp = ai; ai = ak; ak = temp; for(i=0;i3;i+) printf(%dt,ai); printf(n);4.3#include #include #define N 100main() char s1N, s2N,*p; int m; printf(please enter string1:); gets(s1); p = s1; printf(enter m:); scanf(%d,&m); strcpy(s2,p+m); printf(string2:%sn,s2);4.4#include #include main() char s100=iuiui012asdd90k890y098kkkk1234,*p; char data100100=0; int count=0; int i; p = s;/* printf(please enter a string:); gets(p);*/ printf(sssss:%sn,s); while(*p!=0) i=0; while(*p=0&*p=9) datacounti = *p; i+; p+; if(i!=0) count+; p+; printf(count:%dn,count); for(i=0;icount;i+) printf(%sn,datai);4.5#include #define SIZE 4main() int dataSIZESIZE,i,j,d; int max,m=0,n=0; for(i=0;iSIZE;i+) for(j=0;jSIZE;j+) scanf(%d,&dataij); for(i=0;iSIZE;i+) for(j=i+1;jSIZE;j+) d = dataij; dataij = dataji; dataji = d; max = data00; for(i=0;iSIZE;i+) printf(n); for(j=0;j=max) max = dataij;m = i;n = j; printf(nmax:%4d m:%d n:%dn,max,m,n);4.6#include #include main() char *p = test,capital,index,large,small; char *pstr = p; int a,b,n = 5; char *temp; for(a=0;an-1;a+) for(b=a+1;b0) temp = pstra;pstra = pstrb;pstrb = temp; for(a=0;an;a+) printf(%sn,pstra);4.7#include #include main() char s100,temp; char *p = s; int i,length; printf(please enter a string: ); gets(s); while(*p+!=0); length = p - s -1; printf(string length:%dn,length); for(i=0;ilength/2;i+) temp = si; si = slength-i-1; slength-i-1 = temp; printf(%sn,s);第七章一,选择题1.A2.D3.B4.D5.C6.A7.B二.程序填空题1. (1) ak (2) ak (3) ak2. (1) ai (2) j (3) i+1或6三.改错题1.#include#includevoid swap(char *,char *);/*此处有错误,函数声明时要加分号*/main() char a80,b80,c80; scanf(%s%s%s,a,b,c);/*此处有错误,a,b,c分别为数组a80,b8,c80的首地址*/ if(strcmp(a,b)0) swap(a,b);/*此处有错误,字符串比较应该使用strcmp函数*/ if(strcmp(b,c)0) swap(b,c);/*此处有错误,原因同上*/ if(strcmp(a,b)0) swap(a,b);/*原算法不能实现排序,需要添加此语句*/ printf(%sn%sn%sn,a,b,c);7.3.1#include #include void swap(char *pstr1,char *pstr2) char p80; strcpy(p,pstr1); strcpy(pstr1,pstr2); strcpy(pstr2,p);main() char a80=ccc,b80=bbb,c80=aaa;/* scanf(%s%s%s,a,b,c); */ if(strcmp(a,b)0) swap(a,b); if(strcmp(b,c)0) swap(b,c); if(strcmp(a,b)0) swap(a,b); printf(%sn%sn%snnn,a,b,c);7.4.1#include int SquSum(int,int);main() int a,b; int c; printf(enter 2 integer:); scanf(%d%d,&a,&b); c = SquSum(a,b); printf(a=%d b:%d a2+b2=%dn,a,b,c);int SquSum(int x,int y) int z; z = x*x+y*y; return z;7.4.2#include int GongYueShu(int,int);int GongBeiShu(int,int);main() int a,b; int gbs,gys; printf(enter 2 integer

温馨提示

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

评论

0/150

提交评论