您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言第三版全部习题(答案)-new
习题1一、选择题1.B2.A3.B4.A5.B6.D二、阅读程序写出结果。1.IloveChina!wearestudents.2.6三、程序设计题解:main(){inta,b,c,v;a=10;b=20;c=15;v=a*b*c;printf(v=%d,v);}本程序运行结果为:v=3000习题2一、选择题1.C2.B3.A4.A5.A6.C7.D8.C9.D10.C11.B12.A二、程序阅读题1.3,2,-8,23.000000,2.500000,-8.0000002.4,43.31234.aabbccabc三、程序设计题:#defineM5main(){intn,c;n=2;c=M*n;printf(%d\n,c);}本程序运行结果为:10习题3一、选择题1.A2.C3.D4.C5.C二、程序阅读题1.x=3,a=2,b=32.z=12.7000003.121a212三、程序填空:a=a+bb=a-ba=a-b四、程序设计题#includemath.hmain(){intn;floatrate=0.0225,capital,deposit;scanf(%d,%f,&n,&capital);deposit=capital*pow(1+rate,n);printf(deposit=%f\n,deposit);}习题4一、选择题1.B2.B3.B4.B5.C6.D7.C8.A二、填空题1.02.x40&&x=60||x1203.最近的4.3225.-1三、程序填空:1.(ch='A'&&ch='Z')||(ch='a'&&ch='z')2.ch='0'&&ch='9'3.ch==''4.4142四、程序设计题1.#includestdio.hmain(){charch;ch=getchar();if(ch='A'&&ch='Z')ch+=32;elseif(ch='a'&&ch='z')ch-=32;putchar(ch);putchar('\n');}2.解:main(){floatx,y;scanf(%f,&x);if(x-1)y=2*x;elseif(x==1)y=3;elsey=4+x;printf(y=%f,y);}本程序运行结果为:-2CRy=2.0000003.main(){intx;scanf(%d,&x);if(x%2==0)printf(IsEven\n);elseprintf(IsOdd\n);}习题5一、选择题1.C2.C3.D4.A5.B6.D7.C8.C9.D10.B二、程序阅读题1.sum=32.程序的功能是1至10偶数求乘积,奇数求和,运行结果为sum=25mul=3840.000000。2.前五项为0+1/2+2/3+3/5+5/83.****************三、程序填空:1.ch=getchar()ch='a'&&ch='z'2.n=0;i=300或i300i%7==0||i%17==0或!(i%7)||!(i%17)或!(i%17)||!(i%7)n%5==0或!(n%5)求和:i=300:sum=4220或i300:4220四、程序设计题:1.编写程序求1-1/2+1/3-1/4+…+1/99-1/100的值#includestdio.hmain(){inti,s=-1;floatsum=1.0;for(i=2;i=100;i++)sum=sum+1.0*s/i;printf(sum=%f,sum);}2.曾有一位印度国王要奖赏他的聪明能干的宰相达依尔。达依尔只要求在国际象棋的棋盘格上放置小麦粒,第一格放1粒,第二格放两粒,第三格放4粒,第四格放8粒,……,最后能有多少小麦粒呢?main(){floati,s=1,t=1;for(i=1;i=63;i++){t*=2;s+=t;}printf(s=%f\n,s);}3.打印水仙花数,即一个三位数各位上的数字之和等于它本身,如:153=13+53+33。main(){intk1,k2,k3,i;for(k1=1;k1=9;k1++)for(k2=0;k2=9;k2++)for(k3=0;k3=9;k3++){i=k1*k1*k1+k2*k2*k2+k3*k3*k3;if(i==k1*100+k2*10+k3)printf(\n%d=%d^3+%d^3+%d^3,i,k1,k2,k3);}}4.一张纸的厚度为0.1毫米,珠穆琅玛峰的高度为8848.13米,假如纸张有足够大,将纸对折多少次后可以超过珠峰的高度?main(){floath=8848.13,h0=0.0001,h1;intm=0;h1=h0;while(h0=h){h0=2*h0;printf(\nm=%d,high=%f,m,h0);m++;}printf(\nm=%d\n,m-1);}5.输入一行字符以@作结束标志,分别统计其中英文字母、空格、数字和其它字符的个数。#includestdio.hmain(){charch;intcha=0,space=0,digit=0,other=0;while((ch=getchar())!='@'){if(ch='a'&&ch='z'||ch='A'&&ch='Z')cha++;elseif(ch=='')space++;elseif(ch='0'&&ch='9')digit++;elseother++;}printf(\ncha=%d,space=%d,digit=%d,other=%d,cha,space,digit,other);}5.一个正数与3的和是5的倍数,与3的差是6的倍数,编写一个程序求符合条件的最小数。解:#includestdio.hmain(){intn;n=1;while(1){n=n+1;if((n+3)%5==0&&(n-3)%6==0)break;}printf(n=%d,n);}本程序运行结果为:n=276.已知xyz+yzz=532,其中x、y、z都是数字,编写一个程序求出x、y、z分别是多少。解:#includestdio.hmain(){intx,y,z,i;for(x=1;x=9;x++)for(y=1;y=9;y++)for(z=0;z=9;z++){i=100*x+10*y+z+100*y+10*z+z;if(i==532)printf(x=%d,y=%d,z=%d\n,x,y,z);}}本程序运行结果为:x=3,y=2,z=18、学校有近千名学生排队,5人一行余2人,7人一行余3人,3人一行余1人,求学生人数。解:#includestdio.hmain(){intn;for(n=1000;n=10;n--)if(n%5==2&&n%7==3&&n%3==1)break;printf(n=%d\n,n);}本程序运行结果为:n=9979.打印下列图形。*************************main(){inti,j;for(i=1;i=5;i++){for(j=1;j=5-i;j++)printf();for(j=1;j=5;j++)printf(*);printf(\n);}}习题6一、选择题1.D2.D3.C4.C5.A6.B7.B8.A9.D10.D11.A12.D13.A14.C15.D二、程序阅读题。1.输出结果:1357911246810121313131313132.输出结果:originalarray:96541sortedarray:14569三、程序设计题1、分别用冒泡法和选择排序法对十个随机整数进行排序。参考教材2、编写一个程序计算字符串中值为x(x由键盘输入)的字符个数。#includestdio.h#includestring.hmain(){chara[20],x;intn=0,i=0;printf(\nPleaseinputstring,endofenterkey:);gets(a);printf(\nPleaseinputx:);x=getchar();while(a[i]!='\0'){if(a[i]==x)n++;i++;}printf(\n%d,n);}if(x[i]ave)printf(%f,x[i]);}3、求4×5二维数组的周边元素之和#includestdio.hmain(){inta[4][5]={{3,-2,1,2,3},{0,1,3,-2,2},{3,1,0,4,1},{1,1,3,-2,2}};inti,j,sum=0;for(i=0;i4;i++)for(j=0;j5;j++)if(i==0||j==0||j==4||i==3)sum=sum+a[i][j];printf(%d,sum);}程序运行结果:174.评定奥运会某参赛选手的成绩。设某参赛选手的某项目有8位评委,要求去掉一个最高分和一个最低分,给出其最后得分。#includestdio.h#defineN10/*定义字符常量*/main(){intx[N],i,max,min,score=0;printf(Pleaseinput%dintegers:\n,N);/*输入N个数,存入数组中*/for(i=0;iN;i++){scanf(%d,&x[i]);score+=x[i];}/*赋初值*/max=min=x[0];/*将第一个数默认为最大或最小值*/for(i=1;iN;i++){if(maxx[i])max=x[i];/*求最大值*/if(minx[i])min=x[i];/*求最小值*/}printf(Thelastscoreis:%d\n,(score-max-min)/(N-2);}5.打印出以下杨辉三角形(要求打印出10行)。111121133114641…………#defineN11main(){inti,j,a[N][N];for(i=1;iN;i++){a[i][i]=1;a[i][1]=1;}for(i=3;iN;i++)for(j=2;j=i-1;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=1;iN;i++){for(j=1;j=i;j++)printf(%6d,a[i][j]);printf(\n);}printf(\n);}#defineN11main(){inti,j,a[N][N];for(i=1;iN;i++){a[i][i]=1;a[i][1]=1;}for(i=3;iN;i++)for(j=2;j=i-1;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=1;iN;i++){for(j=1;j=i;j++)printf(%6d,a[i][j]);printf(\n);}printf(\n);}本程序的运行结果为:111121133114641151010511615201561172135352171182856705628811936841261268436916.输入一个含若干个字符的字符串,分别搜索出其中的字母和数字,其余的字符一概忽略。将字母序列和数字序列分别输出#includestdio.hmain(){inti;chart[80];printf(Enterastring:);gets(t);for(i=0;t[i];i++)if(t[i]='a'&&t[i]='z'||t[i]='A'&&t[i]='Z')printf(%c,t[i]);printf(\n);for(i=0;t[i];i++)if(t[i]='0'&&t[i]='9')putchar(t[i]);putchar('\n');}7.、一个程序,将字符数组s2中的全部字符拷贝到字符数组s1中。不用strcpy函数。拷贝时,‘\0’也要拷贝过去。‘\0’后面的字符不拷贝。解:#includestdio.hmain(
本文标题:C语言第三版全部习题(答案)-new
链接地址:https://www.777doc.com/doc-2909072 .html