40从键盘上输入若干学生的一门课成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。 #include \main() {
int cj,max=0,min=0; scanf(\,&cj); while(cj>=0) {
if(cj>max)max=cj; if(cj printf(\,max,min); } 41从键盘上输入若干学生的一门课成绩,计算出平均分,当输入负数时结束输入。将结果输出。 #include \main() { int x,count=0; float sum=0,avg; scanf(\,&x); while(x>=0) { sum+=x; count++; scanf(\,&x); } avg=sum/count; printf(\,avg); } 42打印以下图案: 倒三角 #include \main() { int i,j; for(i=4;i>=0;i--) { /*输出每行前的空格*/ for(j=0;j<20-i;j++) { printf(\); } /*输出每行中的*号个数*/ for(j=0;j<2*i-1;j++) { printf(\); } /*输出换行符*/ printf(\); } } 43求一个3*3的整型矩阵对角线元素之和。 #include \#include \#include \main() { int x[3][3],i,j,sum=0; /*随机产生整型矩阵,并输出*/ randomize(); for(i=0;i<3;i++) { for(j=0;j<3;j++) { x[i][j]=random(900); printf(\,x[i][j]); } printf(\); } /*求对角线元素和*/ sum=x[0][0]+x[1][1]+x[2][2]; printf(\对角线和=%d\,sum); } 44求满足1+2+3+?+n<500中最大的N,并求其和,编写程序实现。 #include \main() { int n=0,sum=0; while(sum<500) { n++; sum+=n; } printf(\,n); } 45求N的阶乘,N由键盘输入。 #include \main() { int n,i; long t=1; scanf(\,&n); for(i=n;i>=1;i--) t=t*i; printf(\,n,t); } 三、自定义函数与指针部分: 46、键盘输入长方体的长宽高l、w、h,求其体积及表面积。要求用自定义函数val(l,w,h)计算长方体的体积和表面积,计算结果使用全局变量带回主函数。 #include \float tiji,bmianji; void val(float l,float w,float h); main() { float l,w,h; scanf(\,&l,&w,&h); val(l,w,h); printf(\,tiji,bmianji); } void val(float l,float w,float h) { tiji=l*w*h; bmianji=2*(l*w+l*h+w*h); } 47、找出三位自然数中的所有素数,要求判断x素数用自定义函数data(x)实现。 #include \int data(int x); main() { int i; for(i=100;i<=999;i++) if(data(i)) printf(\,i); } int data(int x) { int flag=1,i; for(i=2;i flag=0; break; } if(flag==1) return 1; else return 0; } 48、输出n行由“#”组成的矩形,每行“#”的个数为m个,其中n、m由终端(键盘)输入。要求输出m个“#”功能由函数satr(m)函数实现。 #include \void satr(int m); main() { int m,n,i; printf(\); scanf(\,&m,&n); for(i=1;i<=n;i++) { satr(m); printf(\); } } void satr(int m) { int i; for(i=m;i>=1;i--) printf(\); } 49、编写程序,建立phone.txt文件,由键盘输入5个人的姓名、手机号码、家庭住址,写入该文件中。 #include \#define size 5 struct student { char name[20]; int num; char addr[20]; }stud[size]; void save() { FILE *fp; int i; if((fp=fopen(\,\))==NULL) { printf(\不能打开文件,错误\); exit(0); } for(i=0;i fwrite(&stud[i],sizeof(struct student),1,fp); fclose(fp); } main() { int i; for(i=0;i scanf(\,stud[i].name,&stud[i].num,stud[i].addr); save(); } 50、输出某二维数组中各元素的内存地址及其值。 #include \#include \#include \#define M 4 #define N 6 main() { int x[M][N],i,j,*p; randomize(); for(i=0;i x[i][j]=random(900); for(i=0;i for(p=x[i];p printf(\地址存放的数据为%d\\n\,p,*p); } }