经典国二c语言程序段

上传人:cn****1 文档编号:512692905 上传时间:2023-12-15 格式:DOC 页数:12 大小:31.01KB
返回 下载 相关 举报
经典国二c语言程序段_第1页
第1页 / 共12页
经典国二c语言程序段_第2页
第2页 / 共12页
经典国二c语言程序段_第3页
第3页 / 共12页
经典国二c语言程序段_第4页
第4页 / 共12页
经典国二c语言程序段_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《经典国二c语言程序段》由会员分享,可在线阅读,更多相关《经典国二c语言程序段(12页珍藏版)》请在金锄头文库上搜索。

1、经典国二C语言程序段 1、 累加: int i, sum=0; for(i=1; i=100; i+) sum+=i; printf(sum=%dn, sum); 2、 累乘(阶乘): int i, s=1, n; scanf(%d, &n); for(i=1; i=n; i+) s*=i; printf(s=%dn, s); 3、整型常量的个位、十位、百位上数字的表示方法: 现定义一个整形常量x,则个位:x%10; 十位:(x/10)%10; 百位:(x/102)%10; 4、 四舍五入(对一个输入的双精度数保留3位小数): double x; scanf(%lf, &x); x*=1000

2、; x+=0.5; x=(int)x; x/=1000; printf(x=%lf, x); 5、 变量值交换: (1)输入三个整数a、b、c, 然后把a的值给b, 把b的值给c, 把c的值给a int a, b, c, t; scanf(%d%d%d, &a, &b, &c); printf(a=%d,b=%d,c=%d, a, b, c); t=a; a=c; c=b; b=t; printf(a=%d,b=%d,c=%d, a ,b, c); (2)地址值传递 注意:下面两种情况均不能将主函数中的变量值对调 1) void fun(int *a, int *b) int *k; k=a;

3、 a=b; b=k; 理由简述:指针变量作为函数参数也要遵循单向的值传递方式,所以交换指针形参中的地址值不能改变对应的实参。 2) void fun(int *a, int *b) int *k; *p=*a; *a=*b; *b=*p; 理由简述:指针k是无向指针,“*p=*a”等等语句会出现错误。 正确的算法如下: void fun(int *a, int *b) int k; k=*a; *a=*b; *b=k; 6、 输入三个数a、b、c,选出最大者和最小者: double a, b, c, max, min; scanf(“%lf%lf%lf”, &a, &b, &c); max=a

4、, min=b; if( amax) max=c; if(cmin) min=c; printf(max=%lf,min=%lf, max, min); 7、 图形 * * * * * * * int i, j; for(i=1; i=4; i+) for(j=1; j=4-i; j+) putchar( ); for(j=1; j=2*i-1; j+) putchar(*); putchar(n); for(i=1; i=3; i+) for(j=1; j=i; j+) putchar( ); for(j=1; j=7-2*i; j+) putchar(*); putchar(n); put

5、char(n); 8、 斐波那契数列: (1)给定项数n的算法 int a=1, b=1, c, i; printf(%3d%3d, a, b); for(i=3; i=n; i+) c=a+b; printf(%3d, c); a=b; b=c; (2)给定上界数m的算法 int a=1, b=1, c; printf(%3d, a); do c=a+b; a=b; printf(%3d, a);/*打印新的a,实际上就是打印新的c的前一项*/ b=c; while(cm); 9、 素数(将0m之间为素数的元素依次存放在数组a 中): int i, j, t, a100, n=0; for(

6、i=2; im; i+) t=1; for(j=2; ji; j+) if(i%j= =0) t=0; break; if(t= =1) an+=i; 10、 闰年(公元16002000的“能被4整除且不能被100整除,或者能被400整除”的年号): int i; for(i=1600; i=a & c=z) c=c-32; putchar(c); 12、计数(统计数组中09的个数): int i, a100, c10=0; for(i=0; i100; i+) a=random(10); for(i=0; i10; i+) ca+; for(i=0; i10; i+) printf(%d :

7、 %d, i, c); 13、选择法排序: (1)一维数组(从小到大) int i, j, k, t, a10; for(i=0; i10; i+) a=random(100); for(i=0; i9; i+) for(j=i+1; j10; j+) if(aja) ) t=aj; aj=a; a=t; for(i=0; i10; i+) printf(%3d, a); (2)选出二维数组中的最大值 int i, j, max, a55; for(i=0; i5; i+) for(j=0; j5; j+) aj=random(100); max=a00; for(i=0; i5; i+) f

8、or(j=0; jmax) max=aj; printf(%d, max); 14、杨辉三角形(只需打印7行): int a77, i, j; for(i=0; i7; i+) for(j=0; ji; j+) if(j= =0 | j= =i) aj=1; else aj=aj-1+aj; (1)直角形式 for(i=0; i7; i+) for(j=0; j=I; j+) printf(%3d, aj); printf(n); (2)金字塔形式 for(i=0; i7; i+) for(j=0; j7-i; j+) putchar( ); for(j=0; j=i; j+) printf(

9、%3d, aj); printf(n); 15、字符串颠倒: void fun(char str) int i, j, t; for(i=0, j=strlen(sttr)-1; ij; i+, j-) t=str; str=strj; strj=t; 16、删除字符串内部空格(空格用星号代替): (1)只删除前导空格,保留中间和尾部空格 void fun(char *a) /*将主函数的字符串首地址传递给指针变量a*/ char *p=a; while(*p= =*) p+; strcpy(a,p);for( ; *p!= 0; p+,a+) *a=*p; *a=0; (2)只删除中间空格,

10、保留前导和尾部空格 #include stdio.h void fun(char *a, char *p, char*q ) for( ; *a= =*; a+) *q+=*a; /*保留首部星号*/ for(; a=p; a+) if(*a!=*) *q+=*a; /*删除中间星号*/ for(; *a!=0; a+) *q+=*a; /*保留尾部星号*/ *q=0; main() char a100, b100, *p; gets(a); p=a; /*指针p指向串首*/ while(*p!=0) p+; /*指针p指向串结束标记*/ p-; /*指针p指向串末字符*/ while(*p= =*) p-; /*指针p指向由串尾向串首方向的第一个非星号字符*/ fun(a, p, b); puts(b); (3)只删除尾部空格,保留前导和中间空格 void fun(char *a) /*将主函数的字符串首地址传递给指针变量a*/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 汽车技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号