您好,欢迎访问三七文档
第四章1.编程实现:输入一个字母,若为小写,则把它变成大写输出。代码如下:#includestdio.hmain(){charc;printf(Pleaseinputacharacter:);scanf(%c,&c);if(c='a'&&c='z')printf(Theresultis:%c\n,c-32);}2.由键盘输入3个数a、b、c,编程输出其中最小的数。代码如下:#includestdio.hmain(){inta,b,c,t;printf(Pleaseinputthreenumbers:);scanf(%d%d%d,&a,&b,&c);if(ab){t=a;a=b;b=t;}if(ac){t=a;a=c;c=t;}printf(Theminimumis:%d\n,a);}3.由键盘输入三个数a、b、c,用条件运算符求出最大值和最小值。代码如下:#includestdio.hmain(){inta,b,c,min,max;printf(Pleaseinputthreenumbers:);scanf(%d%d%d,&a,&b,&c);max=min=a;//初始化最大值与最小值为a//求出最大值max=maxb?max:b;max=maxc?max:c;//求出最小值min=minb?b:min;min=minc?c:min;printf(Themaximumis:%d,theminimumis:%d\n,max,min);}4.编写程序,实现功能:从键盘上输入1,2,3,4,分别显示excellent,good,pass,fail。代码如下:#includestdio.hmain(){inta;printf(Pleaseinputanumber:);scanf(%d,&a);switch(a){case1:printf(Excellent\n);break;case2:printf(Good\n);break;case3:printf(Pass\n);break;case4:printf(Fail\n);break;default:printf(Youinputawrongnumber!\n);}}5.试编程判断输入的正整数是否既是5又是7的整数倍。若是,则输出yes;则输出no。代码如下:#includestdio.hmain(){inta;printf(Pleaseinputanumber:);scanf(%d,&a);if(a%5==0&&a%7==0)printf(Yes\n);elseprintf(No\n);}6.编写程序,要求:输入一个正整数,判断其能否被3、5整除,并输出一下信息之一。(1)能被3、5整除。(2)能被3整除。(3)能被5整除。(4)不能被3、5整除。代码如下:#includestdio.hmain(){inta;printf(Inputanumber:);scanf(%d,&a);if(a%3==0)if(a%5==0)printf(能被3、5整除\n);elseprintf(能被3整除\n);elseif(a%5==0)printf(能被5整除\n);elseprintf(不能被3、5整除\n);}7.对于给定的一百分制成绩,要求输出相应的五分制成绩,即90分及以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。代码如下:#includestdio.hmain(){floata;printf(Pleaseinputscore:);scanf(%f,&a);if(a60)printf(Theclassis:E\n);elseif(a70)printf(Theclassis:D\n);elseif(a80)printf(Theclassis:C\n);elseif(a90)printf(Theclassis:B\n);elseif(a=100)printf(Theclassis:A\n);elseprintf(Error!\n);}第五章1.编一个程序,求1~100所有偶数和。代码如下:#includestdio.hmain(){inti,sum=0;//考虑到时空效率,此处可用short,节省空间,sum记录偶数//和,变量参加累加,必须赋初值for(i=1;i=100;i++)if(i%2==0)sum+=i;printf(Thesumis:%d\n,sum);}2.编一个程序,求s=1!+2!+3!+…+10!的值。代码如下:#includestdio.hmain(){inti,j,sum=0,t;for(i=1;i=10;i++){for(j=1,t=1;j=i;j++)t*=j;sum+=t;}printf(s=1!+2!+3!+…-+10!=%d\n,sum);}3.计算1-3+5-7+9+…-99+101。代码如下:#includestdio.hmain(){inti,s=1,sum=0;for(i=1;i=101;i+=2){sum+=s*i;s*=-1;}printf(1-3+5-7+9…--99+101=%d\n,sum);}4.编程求1000以内(包括1000)能被5同时又能被11整除的数的和。代码如下:#includestdio.hmain(){inti,sum=0;for(i=1;i=1000;i++)if(i%5==0&&i%11==0)sum+=i;printf(%d\n,sum);}5.编程打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其中各位数字的立方和等于该数本身。例如:153=1*1*1+5*5*5+3*3*3。代码如下:#includestdio.hmain(){inta,b,c,i;for(i=100;i1000;i++){a=i%10;b=(i/10)%10;c=i/100;if(i==a*a*a+b*b*b+c*c*c)printf(%d,i);}printf(\n);}6.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项和。代码如下:#includestdio.hmain(){inti;floata=2,b=1,t,sum=0;//a为分子,b为分母for(i=0;i20;i++){sum+=a/b;t=a;a+=b;b=t;}printf(Thesumis:%f\n,sum);}7.有一个球从10m高度落下并反弹,且每次反弹的高度为下落高度的一半。问第4次落地时共经过多少米?第4次反弹的高度是多少?代码如下:#includestdio.hmain(){floath1=10,sum=0;inti;for(i=0;i4;i++){if(i==0)sum+=h1;elsesum+=2*h1;h1/=2;}printf(第4次落地时共经过:%.3f米,第4次反弹的高度为:%.3f米\n,sum,h1);}第六章1.求二维数组中全部元素的和。假定二维数组为a[2][3]={1,2,3,4,5,6}代码如下:#includestdio.hmain(){inta[2][3]={1,2,3,4,5,6},i,j,sum=0;for(i=0;i2;i++)for(j=0;j3;j++)sum+=a[i][j];printf(Thesumis:%d\n,sum);}2.有三个字符串,要求按照字母的顺序输出。假定为:America,China,India;代码如下:#includestdio.hmain(){chara[]=China,b[]=America,c[]=India,t[]={\0};inti,j;if(strcmp(a,b)0){strcpy(t,a);strcpy(a,b);strcpy(b,t);}if(strcmp(a,c)0){strcpy(t,a);strcpy(a,c);strcpy(c,t);}if(strcmp(b,c)0){strcpy(t,b);strcpy(b,c);strcpy(c,t);}puts(a);puts(b);puts(c);}3.求一个3*4矩阵的所有靠外侧的元素值之和。矩阵如下:123456789101112代码如下:#includestdio.hmain(){inta[4][3],i,j,m=1,sum=0;for(i=0;i4;i++)for(j=0;j3;j++,m++)a[i][j]=m;for(i=0;i4;i++)for(j=0;j3;j++){if(i==0||i==3)sum+=a[i][j];elseif(j==0||j==2)sum+=a[i][j];}printf(Thesumis:%d\n,sum);}4.将一个数组中的值按逆序重新存放,例如原来的顺序为:8,6,5,4,1。要求改为:1,4,5,6,8。代码如下:#includestdio.hintmain(){inta[]={8,6,5,4,1},i,j,t;for(i=0;i=2;i++){t=a[i];a[i]=a[4-i];a[4-i]=t;}for(i=0;i5;i++)printf(%d,a[i]);printf(\n);}5.已有一个排序好的数组,输入一个数,要求按原来的顺序将它插入数组中。假定排序好的数组为:a[]={1,8,11,14,16,17,21}代码如下:#includestdio.hintmain(){inta[]={1,8,11,14,16,17,21},i,j,t,b[8];printf(Pleaseinputanumber:);scanf(%d,&t);for(i=0;i7;i++){if(a[i]t){j=i;break;}}for(i=0;i8;i++){if(ij)b[i]=a[i];elseif(i==j)b[i]=t;elseb[i]=a[i-1];}for(i=0;i8;i++)printf(%d,b[i]);printf(\n);}6.求一维数组各元素的平均值。假定数组为:a[]={1,2,3,4,5,6}代码如下:#includestdio.hmain(){inta[6],i,sum=0;for(i=0;i6;i++)a[i]=i+1;for(i=0;i6;i++)sum+=a[i];printf(Thesumis:%d\n,sum);}7.编写一个程序,将两个字符串连接起来,不要用strcat函数。代码如下:#includestdio.hintmain(){chara[]=China,b[]=stronger!;charc[sizeof(a)+sizeof(b)];inti,j;for(i=0;a[i]!=0;i++)c[i]=a[i];for(j=0;b[j]!=0;j++)c[i+j]=b[j];c[i+j]=0;printf(连接后的字符串为:%s\n,c);}第七章1.编写一个函数,使输入的一个字符串反序存放,在主函数中输入和输出字符串。代码如下:#includestdio.h#includestring.hvoidsort(char[]);intmain(){chara[101];printf(请输入一个字符串(100个字符以内):);scanf(%s,a);sort(a);printf(%s\n,a);}//参看函数原型声明,参数为字符数组,为传址调用,故对形参的操作会改变实参voidsort(charstr[]){chart;inti,j=strlen(str);//j获取串长for(i=0;i=(j-1)/2;i++)//实现倒序交换{t=str[i];str[i]=str[j-i-1];str[j-i-1]=t;}str[j]=0;//在字符串末尾加上结束符}2.已有变量定义和函数调用语句“int
本文标题:c语言课后习题代码
链接地址:https://www.777doc.com/doc-2909187 .html