1、程序设计与算法语言上机精彩试题abc 副本 副本 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
2、个人的成绩平均分为:%5.2fn,aver); printf(n); 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)
3、) ) aj+ = i; return j ;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); else printf(有一个根:%8.4fn,-c/b);else d=b*b-4*a*c; if(fabs(d)1e-6) x1
4、=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*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时,通知用户“输入数据错误,重新输入”。 #inclu
5、devoid main() float x; char y; printf(输入学生成绩: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=
6、i; void main( ) int a10=876,675,896,101,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;
7、void main() float y; int n; printf(输入n的值:n); scanf(%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,a
8、ij); printf(n); fun(a); printf(输出处理后的数组a:n); for(i=0;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+)
9、if(ttij min) min = ttij; ppj = min; void main() int 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;
10、k 6;k+) printf(%4d,pk); printf(n);9、求出4行5列的二维数组周边元素之和。#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);
11、 10、 编写程序,把字符串中的容逆置(不准使用多个字符数组)。 #include void main() 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
12、 ch,str100; int i,j=0; printf(输入字符串:n); gets(str); 无上限读取字符 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
13、=0;while(ai!=0) while(ai!=0&ai!=ch)i+;n=strlen(a);for(j=i;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
14、; printf(首尾字符外,将其余5个字符按ascii码降序排列为:%sn,c); 13、编写函数fun,它的功能是:比较两个字符串的长度,(不得调用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字符串: )
15、; gets(a); printf(输入b字符串 :); gets(b); c=fun(a,b); printf(输出较长的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; else if(num999) place=4; else if(num99) place=3; else if(num9
16、) place=2; else place=1; printf(place=%dn,place); f=num/10000; d=num/1000%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,%d
17、n,a,b,c,d); break; case 3: printf(%d,%d,%d,c,b,a); printf(n反序数为:); printf(%d,%d,%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的整型二维数组中最大元素的值,并将此值返回调用函数。 数组在主函数中初始化,并最终输出结果。
18、#include int fun(int a68) int i,j,max=a00; for(i=0;i6;i+) for(j=0;j8;j+) if(maxaij) 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
19、(%4d,arrij); printf(n); max=fun(arr); printf(max=%dn,max); 16、将字符数组s中的字符串,除了下标为偶数、同时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; pri
20、ntf(nThe result is : %sn, t); #include #include void fun(char *s,char t) int i,j=0,n; 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、 假定输入的字符串中只包含字母和*号。则
21、使字符串中的*号不得多于3个;若多于3个,则删除多于的*号;若少于或等于3个,则什么也不做。 #include#includevoid main() char str50,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+; else aj=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!的
22、值,其中,n值由键盘输入。 #includevoid main() int n; int i=1,t=1,sum=0; printf(输入n的数值:); scanf(%d,&n); do t=t*i; sum=sum+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;
23、strj=0; printf(n新字符串str为:%sn,str); 20、求出字符数组ss中存储的字符串中指定字符的个数。 #includevoid main() int fun(char a,char ch); 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(输入要查找的字符:); ch=getchar(); for(i=0;ai!=0;i+) if(a
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1