1、C期末考试必须掌握的部分程序及清单1C语言考试必须掌握的部分程序请首先掌握本清单中前面最简单的程序,逐步增加掌握后面复杂程序。最好是不用死记程序,而是掌握会编就行,尤其是前面简单程序。由于上机考试可以调试运行程序,因此程序题目会比教材例题略难,具体是模拟试卷中一般难度(指针内容很少),请参考C语言复习PPT后面程序部分及模拟试卷。分支=输入三个整数x,y,z,把这三个数由小到大输出。main() int x,y,z,t; if (xy)【?】 /t=x; x=y;y=t; if(xz)【?】 /t=x;x=z;z=t; if(yz)【?】 /t=y;y=z;z=t; printf(small
2、to big: %d %d %dn,x,y,z); 判断闰年,教材P4.8程序3#include int main() int year,leap; /leap为1则闰年,为0则不是。 printf(enter year:); scanf(%d,&year); if(year%4=0 & year%100!=0) | (year%400=0) leap=1; else leap=0; if (leap) printf(%d is ,year); else printf(%d is not ,year); printf(a leap year.n); return 0;求一元二次方程的解,教材P
3、108例4.9#include #include int main() double a,b,c,disc,x1,x2,realpart,imagpart; scanf(%lf,%lf,%lf,&a,&b,&c); printf(The equation ); if(fabs(a)=1e-6) printf(is not a quadraticn); else disc=b*b-4*a*c; if(fabs(disc)1e-6) x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); printf(has distinct real roots:%8
4、.4f and %8.4fn,x1,x2); else realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf( has complex roots:n); printf(%8.4f+%8.4fin,realpart,imagpart); printf(%8.4f-%8.4fin,realpart,imagpart); return 0; 循环=输入n,输出1n之间能被3整除的数,每行一个。#includeVoid main()int i,n;scanf(“%d”,&n);for( i=1; i=n; i+) if( i%3=0 )print
5、f(“%dn”,i);输入n,求1n的累加和,并输出。#includevoid main()int i,n,sum=0;scanf(“%n”,&n);for(i=1;i=n;i+) sum=sum+i;printf(“sum=%dn”,sum);输出菲波纳契数列前20个数,每行4个(教材例5.8 P135程序)。#include int main() int f1=1,f2=1; int i; for(i=1; i=20; i+) printf(%12d %12d ,f1,f2); if(i%2=0) printf(n); f1=f1+f2; f2=f2+f1; return 0;求两个数的最
6、大公约数、最小公倍数(教材P140第3题,程序见学习辅导;函数)#include main() int m,n,r,p,gcd,lcm; scanf(%d%d,&m,&n); if(mn) p=m,m=n;n=p; p=m*n; r=m%n; while(【?】 )/r!=0 m=n;n=r; 【?】; /r=m%n gcd=【?】; /n lcm=p/gcd; printf(gcd=%d,lcm=%dn, 【?】);/gcd,lcm主函数中输入一个整数n,判断是否素数,并输出。(教材P137例子5.9)#include #include int main() int n,i,k; print
7、f(please enter a integer number:n=?); scanf(%d,&n); k=sqrt(n); for (i=2;i=k;i+) if(n%i=0) break; if(i=k) printf(%d is not a prime number.n,n); else printf(%d is a prime number.n,n);主函数中,输出100200间的全部素数(教材p137例5.10)。# include # include int main() int n,k,i,m=0; for(n=101;n=200;n=n+2) k=sqrt(n); for (i
8、=2;i=k+1) printf(%d ,n); m=m+1; if(m%10=0) printf(n); printf (n); return 0; 判断素数的函数,对参数判断是否素数,若是素数返回1,否则返回0。# include int prime(int n)int i,k;k=sqrt(n);for(i=2;i=k;i+) if(n%i=0)return 0;return 1;译密码,将键盘输入字母按规律转换成密码(P138例子5.11改进的程序)。#include int main() char c; while(c=getchar()!=n) if(c=A & c=a & c=Z
9、 & cz) c=c-26; printf(%c,c); printf(n); return 0;输出所有水仙花数,每行一个(教材P140第8题,程序见学习辅导;水仙花函数)#includeint main()int i,a,b,c;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(“%dn”,i);return 0;输出99乘法表#include main() int i,j,result; printf(n); for (i=1;【?】;i+) / 填i10 for(j=1;j10;【?
10、】) /j+ result=i*j; printf(%d*%d=%-3d,i,j,【?】); /result printf(n); 数组=将一维整型20个元素的数组a元素按五个一行输出(参见教材P146例6.2);求一维整型数组a的元素累加和#includevoid main()int a10,i;for(i=0;i10; i+) /输入10个整数 scanf(“%d”,&ai);sum=0;for(i=0; i10; i+) /求和 sum=sum+ai;for(i=0; i10; i+)/输出10个元素,每个数占4位,总共占一行 printf(“%4d”,ai);printf(“n”);p
11、rintf(“sum=%dn”,sum); /输出累加和求一维整型数组a的元素中的最大值#includevoid main()int a10,i,max;for(i=0;i10; i+) /输入10个整数 scanf(“%d”,&ai);for(i=0; i10; i+) /求和 sum=sum+ai;for(i=0; i10; i+)/输出10个元素,每个数占4位,总共占一行 printf(“%4d”,ai);printf(“n”);printf(“sum=%dn”,sum); /输出累加和对一维整型数组a的元素按升序排序(冒泡法见教材P148、选择法见P168第2题)将二维数组行列互换(教
12、材P152例子6.4)求二维数组的最大值及其行号列号(教材P153例子6.5)输出二维数组元素输入一行字符,统计其中的单词个数(教材P165例子6.8)找出二维数组中的鞍点(教材P169第8题)一维数组中折半查找(见教材P169第9题)函数=求两个整数参数m,n的最大公约数函数(教材P218第1题)int gcd(int m, int n)int p,r;if(mn) p=m,m=n;n=p;p=m*n;r=m%n;while(r!=0 ) m=n; n=r; r=m%n; return n;判断素数函数(教材P218第3题)#include int prime(int n)int i,k;k
13、=sqrt(n);for(i=2;i=k;i+) if(n%i=0) return 0;return 1;判断水仙花数函数int daf( int n)int a, b, c; a=n/100; b=n/10%10; c=n%10; if( n=a*a*a+b*b*b+c*c*c ) return 1; else return 0; 将一维int数组元素反序void invert(int a , int n) /两个参数,a是字符数组,n是数组长度。int i, t;for(i=0; in/2; i+) t=ai; ai=an-1-i; an-1-i=t; 将一维字符数组中字符串反序(教材P2
14、18第5题)#include”string.h”void invert( char s ) int i, n=strlen(s); /strlen为求字符串长度的函数 for(i=0; in/2; i+) t=si; si=sn-1-i; sn-1-i=t; 选择法排序函数(教材P196例子7.12)void sort(int a,int n) int i,j,k,t; for(i=0;in-1;i+) k=i; for(j=i+1;jn;j+) if(ajak) k=j; t=ak; ak=ai; ai=t; 递归函数求n!(教材P187例子7.7)int fac(int n) int f; if(n0)printf(n0,data error!); else if(n=0 | | n=1) f=1; /数学规定0!和1!都是1 elsef=fac(n-1)*n; return f;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1