C语言—作业反馈.doc
第一次上机习题1#include <stdio.h> / 这是编译预?处理命令int main( ) / 定义主函数 / 函数开始的标志 printf ("This is a C program.n"); / 输出所指定的一行信息 return 0; / 函数执行完毕时返回函数值0 习题2#include <stdio.h> / 这是编译预处理命令 int main( ) / 定义主函数 / 函数开始 int a,b,sum; / 本行是程序的声明部分,定义a、b、sum为整型变量 a = 123; / 对变量a赋值 b = 456; / 对变量b赋值 sum = a + b; / 进行a+b 的运算,并把结果存放在变量sum中 printf("sum is %dn",sum); / 输出结果 return 0; / 使函数返回值为0 / 函数结束习题3#include <stdio.h>int main( ) / 定义主函数 / 主函数体开始 int max(int x,int y); / 对被调用函数max的声明 int a,b,c; / 定义变量a,b,c scanf("%d,%d",&a,&b); / 输入变量a和b的值 c = max(a,b); / 调用max函数,将得到的值赋给c printf("max=%dn",c); / 输出c的值 return 0; / 返回函数值为0int max(int x,int y) /定义max函数,函数值为整型, 形式参数x和y为整型 int z; / max函数中的声明部分,定义本函数中用到的变量z为整型 if (x > y) z = x; else z = y; return(z); /将z的值返回,通过max带回到调用函数的位置第二次上机习题4c1=a,c2=bc1=?,c2=?c1=-59,c2=-58习题5a=3 b=7 8.0 71.82Aa习题7#include <stdio.h>int main ()float h,r,l,s,sq,vq,vz; float pi=3.; printf("请输入圆半径r,圆柱高h"); scanf("%f,%f",&r,&h); /要求输入圆半径r和圆柱高h l=2*pi*r; /计算圆周长l s=r*r*pi; /计算圆面积s sq=4*pi*r*r; /计算圆球表面积sq vq=3.0/4.0*pi*r*r*r; /计算圆球体积vq vz=pi*r*r*h; /计算圆柱体积vz printf("圆周长为: l=%6.2fn",l); printf("圆面积为: s=%6.2fn",s); printf("圆球表面积为: sq=%6.2fn",sq); printf("圆球体积为: v=%6.2fn",vq); printf("圆柱体积为: vz=%6.2fn",vz); return 0; 第一次作业习题4方法一#include <stdio.h>int main() int a,b,c; printf("请输入三个整数:"); scanf("%d,%d,%d",&a,&b,&c); if (a<b) if (b<c) printf("max=%dn",c); else printf("max=%dn",b); else if (a<c) printf("max=%dn",c); else printf("max=%dn",a); return 0;方法二#include <stdio.h>int main() int a,b,c,temp,max; printf("请输入三个整数:"); scanf("%d,%d,%d",&a,&b,&c); temp=(a>b)?a:b; /*将a和b中的大者存入temp中*/ max=(temp>c)?temp:c; /*将a和b中的大者与c比较,取最大者*/ printf("三个整数的最大数是%dn",max); return 0;习题5方法一#include <stdio.h>#include <math.h>#define M 1000int main() int i,k; printf("请输入一个小于%d的整数i:",M); scanf("%d",&i); if (i>M) printf("输入的数不符合要求,请重新输入一个小于%d的整数i:",M); scanf("%d",&i); k=sqrt(i); printf("%d的平方根的整数部分是:%dn",i,k); return 0;方法二#include <stdio.h>#include <math.h>#define M 1000int main() int i,k; printf("请输入一个小于%d的整数i:",M); scanf("%d",&i); while (i>M) printf("输入的数不符合要求,请重新输入一个小于%d的整数i:",M); scanf("%d",&i); k=sqrt(i); printf("%d的平方根的整数部分是:%dn",i,k); return 0;习题8#include <stdio.h>int main() float score; char grade; printf("请输入学生成绩:"); scanf("%f",&score); while (score>100|score<0)printf("n 输入有误,请重输");scanf("%f",&score); switch(int)(score/10) case 10:case 9: grade='A'break;case 8: grade='B'break;case 7: grade='C'break;case 6: grade='D'break;case 5:case 4:case 3:case 2:case 1:case 0: grade='E' printf("成绩是 %5.1f,相应的等级是%cn ",score,grade);return 0;第二次作业习题6#include <stdio.h>int main() double s=0,t=1; int n; for (n=1;n<=20;n+) t=t*n; s=s+t; printf("1!+2!+.+20!=%22.15en",s); return 0;请同学们思考另外两种方法,一用双重循环,二用函数调用习题8#include <stdio.h>int main() int i,j,k,n; printf("parcissus numbers are "); for (n=100;n<1000;n+) i=n/100; j=n/10-i*10; k=n%10; if (n=i*i*i + j*j*j + k*k*k) printf("%d ",n); printf("n"); return 0; 第三次作业习题3#include <stdio.h>int main()int a33,sum=0;int i,j; printf("enter data:n"); for (i=0;i<3;i+) for (j=0;j<3;j+) scanf("%3d",&aij); for (i=0;i<3;i+) sum=sum+aii; printf("sum=%6dn",sum); return 0;习题8#include <stdio.h>#define N 4#define M 5 /* 数组为4行5列 */int main() int i,j,k,aNM,max,maxj,flag; printf("please input matrix:n"); for (i=0;i<N;i+) /* 输入数组 */ for (j=0;j<M;j+) scanf("%d",&aij); for (i=0;i<N;i+) max=ai0; /* 开始时假设ai0最大 */ maxj=0; /* 将列号0赋给maxj保存 */ for (j=0;j<M;j+) /* 找出第i行中的最大数 */ if (aij>max) max=aij; /* 将本行的最大数存放在max中 */ maxj=j; /* 将最大数所在的列号存放在maxj中 */ flag=1; /* 先假设是鞍点,以flag为1代表 */ for (k=0;k<N;k+) if (max>akmaxj) /* 将最大数和其同列元素相比 */ flag=0; /* 如果max不是同列最小,表示不是鞍点令flag1为0 */ continue; if(flag) /* 如果flag1为1表示是鞍点 */printf("a%d%d=%dn",i,maxj,max); /* 输出鞍点的值和所在行列号 */ break; if(!flag) /* 如果flag为0表示鞍点不存在 */ printf("It is not exist!n"); return 0; 第四次作业习题13#include <stdio.h>int main() char s180,s240; int i=0,j=0; printf("input string1:"); scanf("%s",s1); printf("input string2:"); scanf("%s",s2); while (s1i!='0') i+; while(s2j!='0') s1i+=s2j+; s1i='0' printf("nThe new string is:%sn",s1); return 0; 习题2#include <stdio.h>#include <math.h>float x1,x2,disc,p,q;int main()void greater_than_zero(float,float); void equal_to_zero(float,float); void smaller_than_zero(float,float); float a,b,c; printf("input a,b,c:"); scanf("%f,%f,%f",&a,&b,&c); printf("equation: %5.2f*x*x+%5.2f*x+%5.2f=0n",a,b,c); disc=b*b-4*a*c; printf("root:n"); if (disc>0) greater_than_zero(a,b); printf("x1=%fttx2=%fn",x1,x2); else if (disc=0) equal_to_zero(a,b); printf("x1=%fttx2=%fn",x1,x2); else smaller_than_zero(a,b); printf("x1=%f+%fitx2=%f-%fin",p,q,p,q); return 0;void greater_than_zero(float a,float b) x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); void equal_to_zero(float a,float b) x1=x2=(-b)/(2*a); void smaller_than_zero(float a,float b) p=-b/(2*a); q=sqrt(-disc)/(2*a); 第五次上机习题4#include <stdio.h>#define N 3int arrayNN;int main() void convert(int array3);int i,j; printf("input array:n"); for (i=0;i<N;i+) for (j=0;j<N;j+) scanf("%d",&arrayij); printf("noriginal array :n"); for (i=0;i<N;i+) for (j=0;j<N;j+) printf("%5d",arrayij); printf("n"); convert(array);printf("convert array:n"); for (i=0;i<N;i+) for (j=0;j<N;j+) printf("%5d",arrayij); printf("n"); return 0; void convert(int array3)int i,j,t; for (i=0;i<N;i+) for (j=i+1;j<N;j+) t=arrayij; arrayij=arrayji; arrayji=t; 习题5#include <stdio.h> #include <string.h>int main()void inverse(char str); char str100; printf("input string:"); scanf("%s",str); inverse(str); printf("inverse string:%sn",str); return 0;void inverse(char str) char t; int i,j; for (i=0,j=strlen(str);i<(strlen(str)/2);i+,j-) t=stri; stri=strj-1; strj-1=t;