华中科技大学标准C语言程序设计及应用习题答案.doc
《华中科技大学标准C语言程序设计及应用习题答案.doc》由会员分享,可在线阅读,更多相关《华中科技大学标准C语言程序设计及应用习题答案.doc(62页珍藏版)》请在咨信网上搜索。
华中科技大学标准C语言程序设计及应用习题答案 第二章 一.选择题 1.C 2.B D 3.A 4.A 5. D 6.C 7.D 8.C 9.A 10.D 11.B 12.D 13.C 14.D 15.A 16.B 17.A 18.B 100011 001111 二.判断题 1.错 2.错 3.错 4.错 三.填空题 1. B 66 2. n1=%d\nn2=%d\n 3. 0 四.计算 1 (1) x|y = 0x002f (2) x^y = 0x0026 (3) x&y = 0x0009; (4) ~x+~y = 0xffc6 (5) x<<=3 0x0068 (6) y>>=4 0x0002 2 (1) 6 (2) 50 (3) 1 (4) –16 (5) 1 (6) 20 3 (1) 0 (2) 1 (3) 1 (4) 4 (5) 8 (6) 1 4 (7) 12 (8) 0 (9) 1 (10) 27 (11) 1 (12) 6 (13) 24 (14) 27 (15) –29 5 (1) 0 (2) 1 (3) 1 (4) –3 (5) 2 五.程序分析题 程序1 b=20 a=3600 程序2 第三章 一.填空题 1.s=6 2.96 3.(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 %d\n",(a>b)?a:b); } 2.2 int 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=a>b?a:b; max=c>max?c:max; printf("\nmax is %d\n",max); } 2.3 main() { int i=0,sum=0; while(i<=100) { sum+=i; i++; } printf("1+2+3+......+100=%d\n",sum); } 2.4 main() { int i; int a=10,b=-3; int c; printf("%6d%6d",a,b); for(i=2;i<10;i++) { c=3*b+a; printf("%6d",c); a=b; b=c; } printf("\n"); } 2.5 main() { 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 <stdio.h> main() { int i; int a=8,b=1; int sum=0; for(i=0;i<10;i++) { b+=3; sum += a; a+=b; printf("a%8d b:%8d\n",a,b); } printf("The Sum Of Is:%d\n",sum); } 2.7 #include <stdio.h> main() { float x,y; printf("please input x:"); scanf("%f",&x); if(x<1.0) y=x; else if(x<10) y=2*x-1; else y=3*x-11; printf("y=%f\n",y); } 2.8 #include <stdio.h> main() { long a,i,b,a1; while(1) { printf("please input data(1-99999):"); scanf("%ld",&a); printf("a:%ld\n",a); if(a<=0||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:%ld\n",i,a1); } } 2.9 #include <stdio.h> #include <time.h> #include <stdlib.h> main() { int a,b,i,k=0; randomize(); a=random(1001);/*create a random data(0-1000)*/ for(i=0;i<20;i++) { printf("please guess a number:"); scanf("%d",&b); if(a>b) { k++; printf("\n%d:Smaller,guess again!\n",k); } else if(a<b) { 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 <stdio.h> main() { int a,b,c; int num; for(a=0;a<10;a++) { for(b=0;b<10;b++) { for(c=1;c<10;c++) { num=a*100+b*10+c; if((num%3==0)&&(a==5||b==5||c==5)) printf("%8d",num); } } } printf("\n\n\n"); } 2.11 #include <stdio.h> main() { int i; int a,b; printf("please input a,b:"); scanf("%d%d",&a,&b); for(i=a<b?a:b;i>0;i--) { if(a%i==0&&b%i==0) { printf("The max=%d",i); break; } } for(i=a>b?a:b;i>0;i++) { if(i%a==0&&i%b==0) { printf("\nThe min=%d",i); break; } } 2.12 #include <stdio.h> 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.13 main() { long i,t=1; long sum=0; for(i=1;i<=10;i++) { t*=i; sum+=t; printf("%ld!=%ld\n",i,t); } printf("sum:%ld\n",sum); } 2.14 #include <stdio.h> 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 <stdio.h> #define PI 3.141593 main() { 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<stdio.h> #include<math.h> main() { 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;i<n;i++) { m=m*10+a; sn+=m; } printf("a+aa+aaa+...+aa...a=%ld\n\n",sn); } 2.17 #include <stdio.h> 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 <stdio.h> 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 <stdio.h> #include <math.h> 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=0 2. a=0 b=0 c=0 a=1 b=0 c=0 a=2 b=0 c=0 3. main:x=5,y=1,n=1 func:x=6,y=21,n=11 main:x=5,y=1,n=11 func:x=8,y=31,n=21 第五章 1.D 2.D 3.C 4.6 5.CDABC 6.(1)j+=2 (2)a[i]<a[j] 7.(1)s[i++]!='\0' (2)s[i-1] 8.D 9.B 10.6(同题4) 11.s[i]>='0'&&s[i]<='9' 12. (1)'\0' (2)str1[i]-str2[i] 5.1 #include<stdio.h> int fun(); int fun() { int a[3][3],sum; int i,j; sum=0;/*error*/ for(i=0;i<3;i++) { for(j=0;j<3;j++) scanf("%d",&a[i][j]);/*error*/ } for(i=0;i<3;i++) sum=sum+a[i][i]; printf("sum=%d\n",sum); } void main() { fun(); } 5.2 #include <stdio.h> void main( void ) { float Num[10]; float Input,GetNum[11]; int i,j; float a=6; for(i=0; i<10; i++) { Num[i]=a; a=a+7.5; } Loop1: printf("Please input a Number(0-80) Input="); scanf("%f",&Input); if((Input<0)||(Input>70)==1) goto Loop1; for(i=0; i<10; i++ ) { if(Input<Num[i]) goto Loop2; } Loop2: for(j=0; j<i; j++ ) GetNum[j]=Num[j]; GetNum[j]=Input; for(j=i; j<=10; j++,i++) GetNum[j+1]=Num[i]; for(j=0; j<11; j++ ) printf("%3.3f ",GetNum[j]); } 5.3 #include "stdio.h" #include "stdlib.h" main() { int a1,a2,a3,a4,a5,a6,a7,a8,a9; int a[3]; int i; for(;;) { for (i=0;i<3;i++) { a[i]=rand()%3; } while((a[0]!=a[1]) && (a[0]!=a[2]) && (a[1]!=a[2]))/*get three different numbers 0,1,2*/ { a1=a[0]+1;/*divide 1~9 into three groups,a1~a3,a4~a6,a7~a9*/ a2=a[1]+1; a3=a[2]+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 %d\n%d %d %d\n%d %d %d\n",a9,a1,a5,a2,a6,a7,a4,a8,a3); return; } } } } 5.4 #include <stdio.h> void main(void) { char input1[100],input2[100],input3[100]; int i,Eng=0,eng=0,num=0,blank=0,other=0; printf("Input 3 rows of character,each row don't 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; i<100; i++) { if(input1[i]=='\0') goto Loop1; else if(('A'<=input1[i])&&(input1[i]<='Z')==1) Eng++; else if(('a'<=input1[i])&&(input1[i]<='z')==1) eng++; else if(('0'<=input1[i])&&(input1[i]<='9')==1) num++; else if(input1[i]==32) blank++; else other++; } /*test the second row*/ Loop1: for(i=0; i<100; i++) { if(input2[i]=='\0') goto Loop2; else if(('A'<=input2[i])&&(input2[i]<='Z')==1) Eng++; else if(('a'<=input2[i])&&(input2[i]<='z')==1) eng++; else if(('0'<=input2[i])&&(input2[i]<='9')==1) num++; else if(input2[i]==32) blank++; else other++; } /*test the third row*/ Loop2: for(i=0; i<100; i++) { if(input3[i]=='\0') goto Loop3; else if(('A'<=input3[i])&&(input3[i]<='Z')==1) Eng++; else if(('a'<=input3[i])&&(input3[i]<='z')==1) eng++; else if(('0'<=input3[i])&&(input3[i]<='9')==1) num++; else if(input3[i]==32) blank++; else other++; } Loop3: printf("Upper english character:%d\nLower english character:%d\nNumber:%d\nBlank:%d\nOther characters:%d\n",Eng,eng,num,blank,other); } 5.5 #include <stdio.h> void main(void) { char str1[80],str2[40]; int i,j,k; /*Input two string*/ printf("Please input the first string\n str1="); gets(str1); printf("Please input the second string\n str2="); gets(str2); /*Get the end of str1*/ for(i=0; i<80; i++) { if(str1[i]=='\0') break; } /*Copy str2 to str1*/ for(j=i,k=0; str2[k]!='\0';k++,j++) str1[j]=str2[k]; str1[i+k]='\0'; puts(str1); } 5.6 #include <stdio.h> struct student {char name[20]; int score; }stu[5],stu1; void main(void) { int i,j; printf("Input student's score and name(5),seperate using the character of ',' :\n"); for(i=0; i<5; i++) scanf("%d,%s",&stu[i].score,&stu[i].name); /*sorting*/ for(i=0; i<5; i++) for(j=0; j<4-i; j++) if(stu[j].score>stu[j+1].score) {stu1=stu[j];stu[j]=stu[j+1];stu[j+1]=stu1;} printf("After sotred,score and name:\n"); for(i=0; i<5; i++) printf("%d,%s\n",stu[i].score,stu[i].name); } 5.7 #include<stdio.h> main() { int a[3][3],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",&a[i][j]); for (i=0;i<=2;i++) { m=(a[i][0]>a[i][1])? a[i][0]:a[i][1]; n=(m>a[i][2])? m: a[i][2]; } for (j=0;j<=2;j++) { o=(a[0][j]<a[1][j])? a[0][j]:a[1][j]; p=(o<a[2][j])? o: a[2][j]; } if (n==p) printf("Andian is %d\\n",p); else printf("There is no andian.\\n"); } 5.8 #include <stdio.h> void main(void) { int a[4][3],b[3][4],i,j; for(i=0; i<4; i++) { for(j=0; j<3; j++) scanf("%d",&a[i][j]); } for(i=0; i<4; i++) { printf("\n"); for(j=0; j<3; j++) printf("%5d ",a[i][j]); } for(i=0; i<4; i++) { for(j=0; j<3; j++) b[j][i]=a[i][j]; } printf("\n"); for(i=0; i<3; i++) { printf("\n"); for(j=0; j<4; j++) printf("%5d ",b[i][j]); } } 5.9 #include <stdio.h> #include<math.h> void main(void) { char str[6]; int i,j=0,m=0,n=0; gets(str); while(str[j]!='\0') j++; for(i=j-1;i>=0;i--) { m=(str[i]-'0')*(pow(8,j-i-1)); n+=m; } printf("shijinzhi %d",n); } 5.10#include <stdio.h> void main(void) { char input1[100]; int i,num=0,blank=0; printf("Please input a row character:\n"); gets(input1); /*test the first row*/ for(i=0; i<100; i++) { if(input1[i]=='\0') goto Loop; else if(('A'<=input1[i])&&(input1[i]<='Z')==1) num++; else if(('a'<=input1[i])&&(input1[i]<='z')==1) num++; else if (input1[i]==32) blank++; } Loop: printf("Character:%d\nBlank:%d\n",num,blank); } 第六章 一、 选择题 1.D :p中记录的是a的地址,*p访问地址a的值 2.D :指针数组 3.D:指针能够进行是否相等判断,空指针能够进行指针变量初始化,指针能够偏移; 4.C: 5.C、D:a[5]不存在,若*&a[4]则正确;C,D正确; 6.D: 7.B: 8.B: 二、 填空题 1.*(p+3) 2 22 2. cdefg bcdefg abcdefg 7 3. 6385 三、 程序分析题 1.p = s[0] ; 错误,应改为:p = s; 或 p = &s[0]; 2.int x , *p;错误,应改为:double x, *p; 3.*p = x ;错误,应改为:p = &x ; 4. 声明顺序错误;应该改为: void main(void) { int a; int *p = &a; a = 10; printf(“%d\n”,*p); } 2.3 #include <stdio.h> #include <string.h> main() { char ch[2][5] = {"6937","8254"},*p[2]; int i,j,s=0; for(i=0;i<2;i++) p[i] = ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>'\0';j+=2) s = 10*s + p[i][j] - '0'; printf("%d\n",s); } 4.1 #include <stdio.h> #include <string.h> main() { int count = 0; char str1[100],str2[100]; char *p1,*p2; printf("please enter string 1:"); gets(str1); printf("please enter string 2:"); gets(str2); printf("str1:%s\n",str1); printf("str2:%s\n",str2); p1 = str1; p2 = str2; while(*p1!='\0'&&*p2!='\0') { if(*p1++==*p2++) count++; } printf("count:%d\n",count); } 4.2 #include <stdio.h> #include <string.h> main() { int i,j,k; int a[3]; int temp; printf("please enter array a[3]:"); scanf("%d%d%d",&a[0],&a[1],&a[2]); for(i=0;i<2;i++) { k = i; for(j= i+1;j<3;j++) { if(a[j]<a[i]) k = j; } if(k!=i) { temp = a[i]; a[i] = a[k]; a[k] = temp; } } for(i=0;i<3;i++) printf("%d\t",a[i]); printf("\n"); } 4.3 #include <stdio.h> #include <string.h> #define N 100 main() { char s1[N], s2[N],*p; int m; printf("please enter string1:"); gets(s1); p = s1; printf("enter m:"); scanf("%d",&m); strcpy(s2,p+m); printf("string2:%s\n",s2); } 4.4 #include <stdio.h> #include <string.h> main() { char s[100]="iuiui012asdd90k890y098kkkk1234",*p; char data[100][100]={{0}}; int count=0; int i; p = s; /* printf("please enter a string:"); gets(p); */ printf("sssss:%s\n",s); while(*p!='\0') { i=0; while(*p>='0'&&*p<='9') { data[count][i] = *p; i++; p++; } if(i!=0) count++; p++; } printf("count:%d\n",count); for(i=0;i<count;i++) printf("%s\n",data[i]); } 4.5 #include <stdio.h> #define SIZE 4 main() { int data[SIZE][SIZE],i,j,d; int max,m=0,n=0; for(i=0;i<SIZE;i++) { for(j=0;j<SIZE;j++) { scanf(- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华中科技大学 标准 语言程序设计 应用 习题 答案
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文