1、 1、10个人的成绩存放在score数组中,编写函数fun,求出平均分,并作为函数值返回,且输出不及格人数。 #includefloat fun (int a10)int i,aver,sum=0;for(i=0;i10;i+)sum=sum+ai;aver=sum/10;return aver;void main()int i,j=0,a10=10,20,30,40,50,60,70,80,90,100;float aver; for(i=0;i10;i+) if(ai60) j+;aver=fun (a);printf(10个人的成绩平均分为:%5.2fn,aver);printf(n);
2、printf(不及格人数:%dn,j); 2、 求出1到100之内能被7或者11整除,但不能同时被7和11整除的所有整数,并将他们放在指定的数组a中。 #include void main() int i,n,a500; n = fun(a); for(i = 0; i n; i+) printf(%8d,ai); int fun (int a) int i = 7, j = 0; for(; i = 100; i+) if (i % 7 = 0 | i % 11 = 0)&( !(i % 7= 0 & i % 11 = 0) ) ) aj+ = i; return j ;3、求方程的解。 #
3、include#includevoid main()float a,b,c,d,x1,x2,m,n;printf(请输入方程的3个系数,a,b,c:);scanf(%f,%f,%f,&a,&b,&c);printf(该方程n);if(fabs(a)=1e-6)if(fabs(b)=1e-6) if(fabs(c)=1e-6)printf(有无穷多个解n); else printf(无解n); elseprintf(有一个根:%8.4fn,-c/b);elsed=b*b-4*a*c; if(fabs(d)1e-6) x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*
4、a); printf(有两个不等的实根:%8.4f和%8.4fn,x1,x2); else m=-b/(2*a); n=sqrt(-d)/(2*a); printf(有两个复根:n); printf(%8.4f+%8.4fin,m,n); printf(%8.4f-%8.4fin,m,n); 4、给出一个百分制成绩,规定输出成绩等级A、B、C、D、E,90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。规定:当输入分数为负值,或大于100时,告知用户“输入数据错误,重新输入”。 #includevoid main()float x;char y; printf(输入
5、学生成绩:x=); scanf(%f,&x); while(x100|x=90) y=A; else if(x=80) y=B; else if(x=70) y=C; else if(x=60) y=D; else y=E; printf(n学生的等级为:y=%cn,y);5、 求数组中最大元素在数组中的下标并存放在指针k所指的储存单元中。 # include void fun(int *s, int t , int *k) int i ,max; max=s0; for (i=0;imax) max=si; *k=i; void main( ) int a10=876,675,896,101
6、,301,401,980,431,451,777, k ; fun(a,10, &k); printf(最大值在a中的位置为:i=%dn最大值为:%dn, k, ak); 6、编写函数fun,功能是:根据以下攻势计算s,计算结果作为函数值返回;n通过形参传入。S=1+1/(1+2)+1/(1+2+3)+1/(1+2+3+4+n)。 #include float fun(int n)int i;float s=1.0,t=1.0;for(i=2;i=n;i+)t=t+i;s=s+1/t;return s;void main()float y;int n;printf(输入n的值:n);scanf
7、(%d,&n);y=fun(n);printf(y=%fn,y);7、定义了77的二维数组,并在主函数中自动赋值。编写函数 fun(int a7),该函数的功能是:使数组左下半三角元素中的值所有置成0。 #include int fun(int a7) int i,j; for(i=0;i7;i+) for(j=0;jj) aij=0; void main() int a77,i,j; for(i=0;i7;i+) for(j=0;j7;j+) aij=i+j+1; printf(%3d,aij); printf(n); fun(a); printf(输出解决后的数组a:n); for(i=0
8、;i7;i+) for(j=0;j7;j+) printf(%3d,aij); printf(n); 8、 编写一个函数void fun(int tt56,int pp6),tt指向一个5行6列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。二维数组中的数已在主函数中初始化。 #include void fun(int tt56,int pp6) int i,j,min; for(j = 0;j 6;j+) min = tt0j; for(i= 0;i 5;i+) if(ttij min) min = ttij; ppj = min; void main() int
9、 t56=68,56,32,44,54,12,14,56,24,47,88,58,42,85,22,75,44,56,45,12,3,5,78,45,45,65,25,75,85,41; int p6,i,j,k; printf(The riginal data is:n); for(i = 0;i 5;i+) for(j = 0;j 6;j+) printf(%6d,tij); printf(n); fun(t,p); printf(n二维函数组每列中最小元素为:n); for(k = 0;k 6;k+) printf(%4d,pk); printf(n);9、求出4行5列的二维数组周边元素
10、之和。#include void main() int a45,i,j,sum=0,sum1=0,sum2=0; printf(请输入4*5矩阵数据:); for(i=0;i4;i+) for(j=0;j5;j+) scanf(%d,&aij); for(i=0;i4;i+) sum1=sum1+ai0+ai4; for(j=0;j5;j+) sum2=sum2+a0j+a3j; sum=sum1+sum2-a00-a04-a30-a34; printf(矩阵周边元素之和为:%dn,sum); 10、 编写程序,把字符串中的内容逆置(不准使用多个字符数组)。 #include void mai
11、n() char a80; char t; int i,n; printf(输入一行字符串:n); gets(a); n=strlen(a); for(i=0;i=n/2;i+) t=ai; ai=an-i-1; an-i-1=t; printf(字符串中的内容逆置为:n); puts(a); 11、 编写程序,从字符串中删除指定的字符,同一字母的大、小写按不同字符解决。并把删除好的字符以字符串的形式输出(不准使用多个字符数组)。 #include #include void main() char ch,str100; int i,j=0; printf(输入字符串:n); gets(str
12、); 无上限读取字符 printf(输入要删除的字符:); ch=getchar(); for(i=0;istrlen(str);i+) if(stri!=ch)strj+=stri; strj=0; printf(n字符串str为:%sn,str); #include#includevoid main()char a80;char ch;int i,j;int n;printf(输入一串字符字符:n);gets(a);printf(输入要删除的字符:);ch=getchar();i=0;while(ai!=0)while(ai!=0&ai!=ch)i+;n=strlen(a);for(j=i
13、;jn-1;j+)aj=aj+1;aj=0; printf(删除后的字符串:); puts(a);12、 编写程序,对长度为7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。 #include void main() char c8; char i,j,temp; printf(长度为7个字符的c字符串:); gets(c); for (i=1;i=5;i+) for (j=i+1;j=5;j+) if (cicj) temp=ci; ci=cj; cj=temp; printf(首尾字符外,将其余5个字符按ascii码降序排列为:%sn,c); 13、 编写函数fun,它
14、的功能是:比较两个字符串的长度,(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。 #include #include char *fun(char *a,char *b) int i,j; for(i=0;*(a+i);i+); for(j=0;*(b+j);j+); if(i=j) return a; else return b; void main() char a100,b100,*c; printf(输入a字符串: ); gets(a); printf(输入b字符串 :); gets(b); c=fun(a,b); print
15、f(输出较长的c字符串:); puts(c); 14、给一个不多于5位的正整数,规定求出它是几位数,打印出每一位数字,并按逆序打印出各位数字。 #include void main() long int num; int a,b,c,d,f,place; printf(输入num的数值:); scanf(%d,&num);if(num9999)place=5;elseif(num999)place=4;elseif(num99)place=3;elseif(num9)place=2;elseplace=1;printf(place=%dn,place); f=num/10000;d=num/1
16、000%10;c=num/100%10;b=num/10%10; a=num%10;switch(place) case 5: printf(%d,%d,%d,%d,%d,f,d,c,b,a);printf(n反序数为:);printf(%d,%d,%d,%d,%dn,a,b,c,d,f); break; case 4: printf(%d,%d,%d,%d,d,c,b,a);printf(n反序数为:);printf(%d,%d,%d,%dn,a,b,c,d); break; case 3: printf(%d,%d,%d,c,b,a);printf(n反序数为:);printf(%d,%d
17、,%dn,a,b,c); break; case 2: printf(%d,%d,b,a);printf(n反序数为:);printf(%d,%dn,a,b); break; case 1: printf(%d,a);printf(n反序数为:);printf(%dn,a); break; 15、 编写一个函数fun,它的功能是:求出一个68的整型二维数组中最大元素的值,并将此值返回调用函数。 数组在主函数中初始化,并最终输出结果。#include int fun(int a68) int i,j,max=a00; for(i=0;i6;i+)for(j=0;j8;j+) if(maxaij)
18、max=aij; return max; void main()int arr68=1,8,7,4,6,1,2,3,65,75,12,45,62,18,65,24,32,1,5,4,6,7,8,9,5,5,5,9,9,9,8,8,9,5,2,4,7,81,2,5,3,2,1,4,5,6,9,8;int i,j,max; printf(array a:n); for(i=0;i6;i+) for(j=0;j8;j+) printf(%4d,arrij); printf(n); max=fun(arr); printf(max=%dn,max); 16、将字符数组s中的字符串,除了下标为偶数、同时
19、ascii值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在新的字符数组t中。 #include #include void main() char s100, t100; int i,j=0,n; printf(n输入字符串 S:); gets(s);/scanf(%s, s); n=strlen(s); for(i=0;in;i+) if(i%2=0&si%2=0) tj=si; j+; tj=0; printf(nThe result is : %sn, t); #include #include void fun(char *s,char t) int i,j=0,n
20、; n=strlen(s); for(i=0;in;i+) if(i%2=0&si%2=0) tj=si; j+; tj=0; void main() char s100, t100; printf(nPlease enter string S:); gets(s);/scanf(%s, s); fun(s, t); printf(nThe result is : %sn, t);17、 假定输入的字符串中只包含字母和*号。则使字符串中的*号不得多于3个;若多于3个,则删除多于的*号;若少于或等于3个,则什么也不做。 #include#includevoid main()char str50,
21、c50,b;int i,j,n,a50=0,k,l;gets(str);n=strlen(str);for(l=0,j=0,i=0;in;i+)if(stri=*)l+;if(l=3)aj=i;j+;elseaj=i;j+;for(i=0;ij;i+)k=ai;b=strk;stri=b;for(i=j;in;i+)stri=0;puts(str);18、编程计算1!+2!+3!+n!的值,其中,n值由键盘输入。 #includevoid main()int n; int i=1,t=1,sum=0; printf(输入n的数值:); scanf(%d,&n); do t=t*i; sum=s
22、um+t; i+; while(i=n); printf(sum=%dn,sum);19、 编写程序,删除字符串中的所有空格。 #include #include void main() char str100; int i,j=0; printf(输入字符串:n); gets(str); for(i=0;istrlen(str);i+) if(stri!= ) strj+=stri; strj=0; printf(n新字符串str为:%sn,str); 20、 求出字符数组ss中存储的字符串中指定字符的个数。 #includevoid main()int fun(char a,char ch
23、);char a100,ch;printf(nPlease enter a string:);gets(a);printf(nPlease enter a char:); ch=getchar();printf(The number is:%dn,fun(a,ch); int fun(char a,char ch) int i,j=0; for(i=0;ai!=0;i+) if(ai=ch) j+; return j; #includevoid main()char a100,ch; int i,j=0; printf(输入字符串:); gets(a); printf(n); printf(输
24、入要查找的字符:); ch=getchar(); for(i=0;ai!=0;i+) if(ai=ch) j+; printf(n);printf(字符串a中指定字符的个数:%dn,j);21、输入一行字符,分别记录出其中的大小写字母、空格、数字和其他字符的个数。 #include void main() int i=0,j=0,k=0,l=0; char c; printf(输入一行字符:n); while(c=getchar()!=n) if(c=A&c=a&c=0&c=9) j+; else if(c= ) k+; else l+; printf(大小写字母数:i=%3dn数字数:j=%
25、3dn空格数:k=%3dn其他符号数:l=%3dn,i,j,k,l); 22、 将5行6列的二维数组中的数据,按列的顺序依次放到一个一维数组中。 #include void main() int a56=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20, 1,2,3,4,5,6,7,8,9,10; int b30; int i,j,k=0; for (j=0;j6;j+) for(i=0;i5;i+) bk+=aij; printf(二维数组:n); for (i = 0; i 5; i+) for(j=0;j6;j+) printf(%3d
26、,aij); printf(n); printf(n); printf(一维数组:n); for (i= 0;ik;i+) printf( %3d,bi); printf(n);#include void fun( int (*s)4, int *b) int i,j,k=0; for(j=0;j4;j+) for(i=0;i3;i+) bk=*(*(s+i)+j); k+; bk= 0;main() int a30,w34=1,2,3,4,4,5,6,7,6,7,8,9; int i,j; printf(输出数组w:n); for(i=0; i3; i+) for(j=0;j4; j+) p
27、rintf(%3d,wij); printf(n); fun(w,a); printf(按列的顺序依次放到一个一维数组b:n); for(i=0;i12;i+) printf(%3d,ai); printf(nn);23、求两个23和32的矩阵之积,并把结果显示出来。 #include void main() int a23,b32,c22=0,i,j,x; printf(输入一个2行3列的矩阵a:n); for(i=0;i2;i+) for(j=0;j3;j+) scanf(%d,&aij); printf(%5d,aij); printf(n); printf(输入一个3行2列的矩阵b:n
28、); for(i=0;i3;i+) for(j=0;j2;j+) scanf(%d,&bij); printf(%5d,bij); printf(n); printf(a*b=:n); for(i=0;i2;i+) for(j=0;j2;j+) for(x=0;x3;x+) cij+=aix*bxj; printf(%5d,cij); printf(n); 24、 定义了一个66的二维数组,并进行初始化。将数组右上半三角元素中的值乘以10。 #include void fun(int a6); void main() int i,j;int a66;printf(array a:n);for(
29、i=0;i6;i+)for(j=0;j6;j+)aij=i+j+1;printf(%3d,aij);printf(n);fun(a);printf(通过解决后的数组元素array a:n);for(i=0;i6;i+)for(j=0;j6;j+)printf(%5d,aij);printf(n); void fun(int a6) int i,j; for(i=0;i6;i+)for(j=0;j6;j+)if(ij)aij=10*aij;#include void main() int i,j;int a66;printf(array a:n);for(i=0;i6;i+)for(j=0;j6
30、;j+)aij=i+j+1;printf(%3d,aij);printf(n);printf(通过解决后的数组元素array a:n);for(i=0;i6;i+)for(j=0;j6;j+)if(ij)aij=10*aij;printf(%4d,aij);printf(n); 25、编写程序,实现矩阵(5行6列)的转置(即行列互换)。 #include void main() int i,j; int a56=4,5,7,8,1,6,8,4,6,5,1,5,7,8,9,4,5,6,1,2,3,4,5,6,1,2,3,6,5,2; int b65; printf(array a:n); for(i=0;i5;i+) for(j=0;j6;j+) printf(%3d,aij); bji=aij; printf(n);