c语言常数-ox6a是什么意思,c语言1-7章课后作业答案

c语言1-7章课后作业答案

51intn=0;char*s;if(argc1)for(s=argv1;*s;s+)if(A=*s&*s=Z)|(a=*s&*s=z)n+;elsen=0;printf(Count=%d,n);50voidmain(void)char*str=England,China,Korea,America,Japan;char*p;intn;p=str;for(n=0;nvoidmain(intargc,char*argv)inti,a=0;char*s;intt100,count=0;if(argc=0;i-)printf(%d,ti);49elseprintf(Odd=);sum=dcall(podd,n);printf(%.2fn,sum);【习题7-17】定义一个存放学生姓名的指针数组。再设计一个根据学生姓名查找的函数,返回查找成功与否,并在主函数中显示查找结果。程序如下:#include#include#defineN5char*studentN=john,tom,mary,kate,48【习题7-16】编写一个函数,输入n为偶数时,调用函数求1/2,1/4,.,1/n的和,当输入n为奇数时,调用函数求1/1,1/3,.,1/n的和。程序如下:#includefloatpeven(intn)floats;inti;s=0;for(i=2;i1)break;if(n%2=0)printf(Even=);sum=dcall(peven,n);47floataverage;for(i=0;iN;i+)for(total=0,j=1;j6;j+)total+=bij;average=(float)total/5;printf(%d号学生的平均分为:%.2fn,bi0,average);voidfail(intbN6)inti,j,count=0;printf(不及格的学生有:n);for46#defineN3intf(intyN)intsum=0,i;for(i=0;i#defineN30voidcourse_aver(intbN6)inti,j,total;floataverage;for(j=1;j=5;j+)for(total=0,i=0;iN;i+)total+=bij;average=(float)total/N;printf(第45【习题7-12】用指针的方法实现将明文加密变换成密文。变换规则如下:小写字母z变换成a,其他字母变换成为该字线ASCII码顺序后1位的字母,比如o变换成为p。程序如下:#include#include#defineMAX50voidencrypt(char*s)for(;*s!=0;s+)if(*s=z)*s=a;else*s=*s+1;voidmain(void)c44i=0;/i为每次循环时的计数变量j=0;/j为计数变量k=0;/k为退出人数while(kvoidmove(intarray20,intn,intm)int*p,array_end;array_end=*(array+n-1);for(p=array+n-1;parray;p-)*p=*(p-1);*array=array_end;m-;if(m0)move(array,43【习题7-9】用函数voidsort(int*p,intn)实现将n个数按递减排序。主函数中输入n个数并输出排序后的结果。程序如下:#includevoidsort(int*p,intn)inti,j,m,t;for(i=0;i#definenmax50voidmain(void)inti,j,k,n,m,numnmax,*p;printf(请输入人数n:);scanf(%d,42#defineMAX10inthtoi(char*s)inti,n;n=0;for(i=0;si!=0;i+)if(si=0&si=a&si=A&si=0&c=a&c=A&c=F)flag=1;ti+=c;elseif(flag)ti=0;printf(n十进制数:%dn,htoi(t)41for(q=p;*p=*q;q+);if(p!=q)strcpy(p+1,q);printf(结果字符串是:%sn,str);【习题7-6】不使用额外的数组空间,将一个字符串按逆序重新存放。例如,原来的存放顺序是abcde,现在改为edcba。程序如下:#include#includevoidmain()charstr20;inttemp,i,j;printf(i40elseif(strcmp(c,a)0)pa=c;pb=a;pc=b;elsepa=a;pb=c;pc=b;elseif(strcmp(b,c)0)pa=b;pb=a;pc=c;elsepa=b;pb=c;pc=a;printf(排序后结果:n%s%s%sn,pc,pb,pa);【习题7-5】从键盘输入一个字符串,然后按照字符顺序从小到大进行排列,并删除重复的字符。39char*p,resultN;printf(输入十进制正整数:);scanf(%d,&x);for(p=result;x!=0;p+)*p=x%8+0;x=x/8;for(p-;p=result;p-)putchar(*p);putchar(n);【习题7-3】输入一个字符串,用指针方式逐一显示字符,并求其长度。程序如下:#include#includevo38printf(3-func3n);printf(4-func4n);c=getch();switch(c)case1:func1();break;case2:func2();break;case3:func3();break;case4:func4();break;printf(Pressanykeytocontinue,PressNornto37ai4=s;printf(No:%d,avg=%lfn,ai0,s/3);voidfunc2()inti,j;doubles;for(i=1;i4;i+)s=0;for(j=0;jN;j+)s+=aji;printf(Class:%d,avg=%lfn,i,s/N);voidfunc3()inti,j;intt,k;for(i=0;i36pave=(double)v1/t1;nave=(double)v2/t2;voidmain()inta6=1,4,5,-8,-1,-2;aver(a,6);printf(%lf,%lf,pave,nave);【习题6-23】编写一程序,每调用一次函数,显示一静态局部变量中的内容,然后为其加1。程序如下:#includevoidf(intx)staticinty;if(x35#include#includevoidchang(charx100)inti;x0=x0-32;for(i=1;xi!=0;i+)if(xi-1=)xi=xi-32;voidmain()charx100;inti;printf(请输入英语句子n);gets(x);for(i=0;xi!=0;i+)if(xi=34voidmain()doublex=2;inty=5;printf(%lf,power(x,y);【习题6-19】将6.3题改为用带参数的宏名来求面积。程序如下:#include#definen(a,b,c)(a+b+c)/2#defines(a,b,c,n)sqrt(n(a,b,c)*(n(a,b,c)-a)*(n(a,b,c)-b)*(n(a,b,c)-c)#includes33voidmain()doublex=0.1;intn=5;printf(%lf,func(n,x);【习题6-17】编写计算最小公倍数的函数,试由主函数输入两个正整数a和b调用它。计算最小公倍数的公式为:lcm(u,v)=u*v/gcd(u,v)(u,v0)其中,gcd(u,v)是u、v的最大公约数。lcm(u,v)是u、v的最小公倍数。程序如下:intgetgcd(intm,in32floatxpoint(floatx1,floatx2)floatx;x=(x1*f(x2)-x2*f(x1)/(f(x2)-f(x1);return(x);floatroot(floatx1,floatx2)floatx,y,y1;y1=f(x1);dox=xpoint(x1,x2);y=f(x);if(y*y0)y1=y;x1=x;elsex2=x;while(fab31printf(%s,s1);/*puts(s1);*/【习题6-10】编写一个实现strcpy函数功能的函数,并试用主函数调用。(略)【习题6-11】编写一个实现strcmp函数功能的函数,并试用主函数调用之。程序如下:#includeintstrcmp(char*s1,char*s2)intt;while(t=(*s1-*s2)=0)s1+;s2+;if(*s1=0)b30voidmain()intn;scanf(%d,&n);printf(result=%d,test(n);【习题6.7】编写程序,实现由主函数输入m、n,按下述公式计算并输出的值。nmC)!(Cnm程序如下:#includeintfunc(intn)inti,s=1;for(i=1;iintstrcat1(char*s1,char*s2)intt;while(*s1)s29if(aiabib)cic+=bib+;elsecic+=aia+;ib+;if(ia=100)for(;ibinttest(intt)inti;for(i=2;iinttest(intt)inti;for(i=2;i=t/2;i+)if(t%i=0)return0;return1;28doubles,ss;if(a+b#includevoidsort(inta,intsize)inti,j,k,min;for(i=0;iaj)min=j;k=ai;ai=amin;amin=k;voidmain()inta100,b100,c200;inti,ia,ib,ic;for(i=0;i100;i+)ai=2*i+1;bi=27chars2=asd123;for(i=0;i+)t=s1i-s2i;if(t!=0|(s1i=0)break;printf(code=%dn,t);【习题5.26】输入下述8个国家名字的字符串:CHINA、JAPAN、KOREA、INDIA、CANADA、AMERICAN、ENGLAND和FRANCE,将这些国名按字典顺序排序。程序如下:#inclu26inti;chars=AMsNJasH00askjdhsdjfg!123#sdfjkzxc;char*t5=Blank,Digit,Upper,Lower,Other;intcount5=0;charch;for(i=0;si!=0;i+)ch=si;if(ch=)count0+;elseif(ch=0&ch=25【习题5.20】略【习题5.21】输入一串字符,分别统计其中数字0,1,2,9和各字母出现的次数,并按出现的多少输出(先输出出现次数多的字母,次数相同的按字母表顺序输出,不出现的字母不输出)。#includevoidmain()intA256;intB256=0;inti,j,k,max;chars=askjdhsdjfg123sdfjkzxc;for(i=0;ivo24【习题5.18】从键盘输入一个数,然后在一个整型一维数组a20中,用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则打印“Nofound”。程序如下:#includevoidmain()inta20,i,n=0,m=20,a;for(i=0;ia)m=i-1;if(ai!=a)printf(Nofound!n);【习题5.19】编写一个程序,求一个二23for(j=0;jvoidmain()intb54,i,j,k,l,min,x,y;for(i=0;ibij)min=bij;x=j;for(k=0;kvoidmain()inta1010=0;inti,j,k;for(i=0;i10;i+)ai0=1;for(i=1;i10;i+)for(j=1;j=i;j+)aij=22staticinta100;inti,j,temp;printf(Input100numbers:);for(i=0;iaj)temp=aj;aj=ai;ai=temp;for(i=0;ivoidmain()inta33=1,2,5,3,4,8,6,7,9;inti,j,k;for(i=0;i3;i+)for(j=0;j3;j+)prin21voidmain()inta100;inti,j,k;for(i=0;ivoidmain()intx34,i,j,a=0,b=0;for(i=0;i0)a+=xij;elseb+=xij;printf(%dt%d,a,b);【习题5.13】对稀疏数组a20(所谓稀疏数组,即有若干数组元素值为0的数组),编写一个程序,将所有非零元素值按紧密排列形式转移2064128256512(2)运行结果:199(3)运行结果:20(4)运行结果:25(5)运行结果:45(6)运行结果:25【习题5.9】编写一个程序,完成5.1题的要求。#includevoidmain()doubleA12=1.0,15.5,9.5,-23.0,8.4,66.5,7.1,22.0,54.5,-34.0,11.3,32.5;inti,j,k;doublemax,mi19if(i+j=10-1)printf(%3d,aij);elseprintf();printf(n);printf(n);printf(=5=n);for(i=0;i=j)printf(%3d,aij);elseprintf();printf(n);printf(n);printf(=8=n);for(i=0;i18(1)实型一维数组A12,其各元素值在内存中排列的顺序为:1.0,15.5,9.5,-23.0,8.4,66.5,7.1,22.0,54.5,-34.0,11.3,32.0(2)整型二维数组A33,其各元素值在内存中排列的顺序为:1,2,3,4,5,6,7,8,9(3)实型三维数组A232,其各元素值在内存中排列的顺序为:1.0,15.5,9.5,-23.0,8.4,617doubleA43=4.0,28.0,15.5,-9.5,-23.0,8.0,56.0,2.0,28.0,7.0,6.2,5.0;inti,j,k,g,n,m;doublemax,min;min=A00;for(i=0;iAij)min=Aij;printf(min=%lfn,min);max=A00;for(i=0;i4;i+)for(16第五章数组【习题5.1】现有一实型一维数组A12,其各元素值在内存中排列的顺序为:1.0,15.5,9.5,-23.0,8.4,66.5,7.1,22.0,54.5,-34.0,11.3,32.5请按下列要求编写程序求答案。(1)数组中元素值最小的数组元素。(2)数组中元素值最大的数组元素。(3)数组中某数组元素值等于另外两个数组元素值之和的等式。(4)数组中某数组元素值等于另外两个数组元15for(i=1;i#includevoidmain()inta,b,c,d;scanf(%d,&a);for(b=3;bsqrt(b)d=a-b;elsecontinue;for(c=2;csqrt(d)printf(%d=%d+%dn,a,b,d);【习题4.18】100匹马驮100担货,大马一匹驮担,中马一匹驮担,小马两匹驮担。试编写程序计算大、中、小马的数目。程14intm,s,i;for(m=2;mvoidmain()inti,j,k;for(i=0;ivoidmain()inti,x,y;longlast=1;printf(Inputxandy:);scanf(%d,%d,&x,&y);13【习题4.12】从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者。程序如下:#includevoidmain()intm=0,n=0;charc;while(c=getchar()!=n)if(cA&c=a&c#includevoidmain()intn,i,j,l=0;for(n=2;n=i+1)if(lvoidmain()12printf(x=%d,y=%d,z=%dn,x,y,z);【习题4.10】使用嵌套循环输出下列图形:*程序如下:#includevoidmain()inti,j;for(i=0;ivoidmain()inti,j,k,n=0,l=0;for(i=1;i=9;i+)/*百位数字*/for(k=0;k=9;k+)/*十位数字*/if(k!=11【习题4.7】输入n个数,求其最大数、最小数和平均值。程序如下:#includevoidmain()intn,i,max,min,a;floats;scanf(%d,%d,&n,&a);s=max=min=a;for(i=1;ia)min=a;printf(Max=%d,Min=%d,avg=%f,max,min,s/n);【习题4.8】已知鸡兔共有30只,脚共有90只,编程计10程序如下:#includevoidmain()floatsum=0.0,ave=0.0,score;inti;for(i=0;ivoidmain()floatsum=0.0;inti,j=1;for(i=1;ivoidmain()inta,b,t;scanf(%d,%d,&a,&b);while(a!=b)if(ab)t=a;a=b;b=t;printf(%d,%dn,9ints=0,i;for(i=1;ivoidmain()ints=0,i=1;while(ivoidmain()ints=0,i=1;dos+=i;i+;while(ivoidmain()intn;for(n=100;n=200;n+)if(n%20!=0)continue;printf(%5d,n);【习题4.4】假设全班有30个学生,编写一个程序,连续输入30个学生8money=count*900.0;elsemoney=count*900.0-(count-1000)*15.0;printf(tatal=%f,money);【习题3.14】电文加密算法:将字母A变成字母G,a变成g,B变成H,b变成h,以此类推,并且U变成A,V变成B等。从键盘输入一个电文字符,输出其相应的密码。程序如下:#includevoidmain()charc;c=getc7【习题3.11】输入一个整数m,判断它能否被3、13、17整除,如果能被这3个数之一整除,则输入它能被整除的信息,否则输出m不能被3、13、17整除的信息。试编写该程序。#includevoidmain()intm;scanf(%d,&m);if(m%3=0|m%13=0|m%17=0)printf(%d能被整除!,m);elseprintf(%d不能被整除!,m);【6【习题3.8】设计一个程序,从键盘输入3个整数,按由小到大的顺序输出。#includevoidmain()intx,y,z,t;scanf(%d,%d,%d,&x,&y,&z);if(xy)t=x;x=y;y=t;/*交换x,y的值*/if(xz)t=z;z=x;x=t;/*交换x,z的值*/if(yz)t=y;y=z;z=t;/*交换z,y的值*/printf(sm5(5)运行结果:132(6)运行结果:-4(7)运行结果:21(8)运行结果:435(9)运行结果:passwarn【习题3.5】有如下if条件语句:if(avoidmain()intyear;scanf(“%d”,&year);if(year%400=0|year%4=0&year%100!=0)printf(“%d年是闰年。n”,year);elseprintf(“%d年不是闰年48,10程序运行结果:y=5.000000程序运行结果:b,3.140000,4程序运行结果:0,48程序运行结果:a=8程序运行结果:01,60,15,15程序运行结果:2,2,11,2,10,2,2-1,2,2程序运行结果:324程序运行结果:323,343,4,401第三章顺序和选择结构程序设计【习题3.1】单选题。1、C2、D3、C4、C5、B【习题3.2】略【习题3.33(5)loan*rate*pow(1+rate,month)/(pow(1+rate,month)-1)【习题2.7】C语言中为什么要引入转义字符?答:在字符集中,有一类字符具有这样的特性:当从键盘上输入这个字符时,显示器上就可以显示这个字符,即输入什么就显示什么。这类字符称为可显示字符,如a、b、$等。但另一类字符却没有这种特性。它们或者在键盘上找不到对应的一个键,或者当按键以后不能显示键面上2【习题2.2】下面哪些是合法的常量?200.501213e5.1E-58e45.0x6amnOKa012a/b答:合法的常量有:200.50128e45.0x6a合法的常量有:OKa012a/b【习题2.3】下面的变量名中哪些是合法的?A&babc123abc%AbCintlong123abccharab?cdoubleabc1C语言1-7章课后作业答案第一章C语言概述【习题1-1】简述C语言的特点。答:C语言的特点:C语言简洁、紧凑、使用灵活、方便;运算符丰富;数据结构丰富;C是结构式语言;C语法限制不太严格,程序设计自由度大;C语言允许直接访问物理地址;C语言程序生成代码质量高;C语言适用范围大,可移植性好。【习题1-2】请从以下的4个选项中选择一个正确答案。(1)A(2)C(3)B(4)D(5)A(6)C【习题1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值