1、defaultn); %snswitch end.运行结果:11 14 switch end.2 程序代码: int i, s = 0; for(i = 1; i int i, n; for(n = 2; n temp) printf(, n);2 3 5 7 11 13 17 197 程序代码:const int M=20; int i, c2, c3, c5; c2 = c3 = c5 = 0;= M; if(i % 2 = 0) c2 +; if(i % 3 = 0) c3 +; if(i % 5 = 0) c5 +;%d %d %dn, c2, c3, c5);10 6 48 程序代码
2、: int i, s; for(i = 1, s = 0; 15; if(i % 2 = 0 | i % 3 = 0) continue;, i); s += i;%dn1 5 7 11 13 37C语言程序设计作业2第4章至第6章) 1C 2C 3C 4A 5C 18 232 360 4M * N 50M-1 60N-1 7BB 81 90 101 1111 12n + 113比较 14复制 1510 16191 (练习题4.2第1小题)程序代码: int a10 = 12, 39, 26, 41, 55, 63, 72, 40, 83, 95 ; int i , i1 = 0, i2 =
3、0; if(ai % 2 = 1) i1 +; else i2 +;, i1, i2);6 42 * 程序代码:string.h int i; char * a5 = studentworkercadresoldierpeasant ; char * p1, * p2; p1 = p2 = a0; 5; if(strcmp(ai, p1) 0) p1 = ai; if(strcmp(ai, p2) 0) p2 = ai;%s %sn, p1, p2);worker cadre3 * 程序代码:int a10 = 4, 5, 6, 15, 20, 13, 12, 7, 8, 9 ; int i,
4、 s0, s1, s2; s0 = s1 = s2 = 0; switch(ai % 3) case 0: s0 += ai; case 1: s1 += ai; case 2: s2 += ai; , s0, s1, s2);42 24 33 char a = abcdbfbgacd; int i1 = 0, i2 = 0, i = 0; while(ai) if(ai = a) i1 +; else if(ai = b) i2 +; i +;, i1, i2, i);2 3 115 (在二维数组中找最大元素及其下标)程序代码: int a34 = 1, 2, 7, 8 , 5, 6, 10
5、, 6 , 9, 12, 3, 4 ; int m = a00; int ii = 0, jj = 0; int i, j; 3; for(j = 0; j m) m = aij; ii = i; jj = j;, ii, jj, aiijj);2 1 126 (又是斐波纳契数列!)程序代码: int a, b; for(a = 1, b = 2; b b) return 1; else if(a = b) return 0; else return -1;函数功能:比较两个整数a和b的大小。如果a大于b则结果为1,a与b相等则结果为0,a小于b则结果为-1int SC(int a, int
6、b, int c) = b & a = c) return a; if(b = a & b = c) return b; return c;返回a、b、c三个整数的最大值3 (注意s初值为1,等于x0/(0+1)程序代码:double SF(double x, int n) / n为大于等于0的整数 double p = 1, s = 1;= n; p *= x; s += p / (i + 1); return s;计算4 * 程序代码:int SG(int x) / x为大于等于2的整数 int a = (int)sqrt(x); / sqrt(x)取x的平方根 int i = 2; wh
7、ile(i = a) if(x % i = 0) break; if(i = a) return 0; else return 1;判断整数x是否为素数,是则返回1,不是返回0void trans(int x) char a10; int i = 0, rem; do rem = x % 16; x = x / 16; if(rem 0) printf(%c, a- i);以十六进制形式输出整数x五、 根据下列每个题目要求编写程序1void fun4(char * a, int b) bi + = 0); while(* a) if(* a = & * a 9) b* a - +; a +;2
8、double Mean(double aMN, int m, int n) double v = 0; m; n; v += aij +); return v / m / n;3int FF(int a, int n) return (n = 0)? 1 : an - 1 * FF(a, n - 1);4*(题目居然没有给出不等式!可能是1 + 1/2 + 1/3 + . + 1/n 5)void main() int i=0; double s=0; while(s5) s+=1.0/+i;n=%dn5*(不等式应当是22+42+.+n21000) /用i作为依次取值偶数的变量 int s=
9、0; /用s作为累加变量 i+=2; s+=i*i; while(s1000);, i-2);6*(应当是计算12+22+.+n2) int n, i, sum;请输入正整数n: scanf(%d, &n); if(n double SD(int a, int b, char op) double x; switch(op) + x = a + b;- x = a - b;* x = a * b;/ if(b) x = (double)a/b; else exit(1); printf(运算符错! exit(1); return x; int x = 20, y = 8;%3.2lf , SD
10、(x, y, );%3.2lfn, SD(x + y, y, 12.00 160.00 3.50void WF(int x, int y) x = x + y; y = x + y;subs: x, y = %d, %dn, x, y); int x = 18, y = 23;main: WF(x, y); x = 2 * x; x, y = 18, 23 x, y = 41, 64 x, y = 36, 234 (将字符串逆序。注意for循环只到一半长度就前后交换完了。如果循环整个长度则会前后交换两次,最终顺序不变)程序代码:void fun(char ss); char s15 = 567
11、891234 fun(s);void fun(char ss) int i, n = strlen(ss); n / 2; char c = ssi; ssi = ssn - 1 - i; ssn - 1 - i = c;4321987655 (插入排序法降序排序。模拟玩扑克时起牌的过程进行排序:手上拿的牌(a0ai - 1)已经排好序,拿起一张牌ai,从ai - 1开始一张张地找,如果比ai小则把这张牌aj向右挪,直到当前的牌aj不比ai小了,则将ai放到aj的右边。注意在开始找之前要先把ai保存起来,因为把ai - 1向右挪的时候就会执行ai=ai - 1,从而改变ai的值。插入排序法升序
12、排序见练习题6.3第2小题。void InsertSort(int a, int n) int i, j, x; i +) / 进行n-1次循环 x = ai; for(j = i - 1; j = 0; j -) / 为x顺序向前寻找合适的插入位置 if(x aj) aj + 1 = aj; else break; aj + 1 = x; int a6 = 20, 15, 32, 47, 36, 28 ; InsertSort(a, 6); 6; i +) printf(, ai);47 36 32 28 20 156 程序代码: int a8 = 3, 5, 7, 9, 11, 13, 1
13、5, 17 ; int i, * p = a; 8;%5d, * p +); if(i + 1) % 4 = 0) printf( 3 5 7 9 11 13 15 17int LA(int * a, int n) s += ai; int a = 5, 10, 15, 20, 25, 30 ; int b = LA(a, 4); int c = LA(a + 2, 3);, b, c);50 60int LB(int * a, int n) int i, s = 1; i +) s *= * a +; int a = 1, 2, 3, 4, 2, 4, 5, 2 ; int b = LB(a, 4) + LB(&a3, 4);b=%dn, b);b=184int WB(int a, int n, int x) int