s += n % 10; n /= 10; }
return s; }
void main()
{ printf(―sigmaDigit(12345) = %d\\n‖, sigmaDigit(12345)); }
3.2.
#include
{ int num; char name[15]; int age; }; void py(struct stu *p)
{ printf(―%s\\n‖, p->name); }
void main()
{ struct stu student[3] = {{1001, ―Sun‖, 25}, {1002, ―Ling‖, 23}, {1003, ―Shen‖, 22}}; py(student+2); }
3.3.
#include
{ char str[ ] = ―ABCDEFG‖; int i;
for(i = 0; i < 7; i += 2) printf(―%s ‖, str + i); }
3.4.
#include
{ int i, a[5];
for(i = 0; i < 5; i++) a[i] = 9 * (i + (i > 2 ? 4 : 0)) % 5; for(i = 4; i >= 0; i--) printf(―=‖, a[i]); }
3.5.
#include
void main()
{ char *a[6] = {―AB‖, ―CD‖, ―EF‖, ―GH‖, ―U‖, ―KL‖}; int i; for(i = 0; i < 4; i++) printf(―%s ‖, a[i]); }
6--34 注:解答写在答卷纸上,试卷中的解答不评分
3.5(2)
#include
char str[] = ―ABCDEFGHU KL‖; void main()
{ char *a[6] = {str, str+2, str+4, str+6, str+8, str+10}; int i; for(i = 0; i < 4; i++) printf(―%s ‖, a[i]); } 3.6
void fun(int a[], int n) {
int i = 0, j = n – 1, temp; while(i < j) { while(a[i] < 0) while(a[j] >= 0)
i ++;
j --;
if(i < j) {
temp = a[i]; a[i] = a[j]; a[j] = temp; } } } 3.7
#include
char *subStr(char *s1, char *s2, int pos, int len) { int i = 0; char *p = s2;
if(pos <= strlen(s1))
for(s1 += pos; *s1 && i < len; i++) *s2++ = *s1++; *s2 = '\\0'; return p; }
void main()
{
char *s1 = \ subStr(s1, s2, 2, 3); printf(\} 3.8
#include
int array(int *a, int n) { int x;
if(n == 1) return *a; x = array(a+1, n-1); return *a > x ? *a : x;
7--34 注:解答写在答卷纸上,试卷中的解答不评分
}
void main() { int a[] = {57, 73, 23, 67, 131, 79};
printf(\}
3.9
#include
int msg;
for(msg = 0; msg < 4; msg++)
postMsg(msg);
}
void postMsg(int msg) { static int x = 0, y = 0; }
}
switch(msg) { case 0: x ++;
case 1: y ++; break; case 3: x ++;
default: printf(\
3.10
struct intNode * reverse (struct intNode *h) { struct intNode *p, *v1, *v2; v2 = h; v1 = NULL; while (v2 != NULL) {
p = v2->next; v2->next = v1; v1 = v2; v2 = p; }
return v1; }
3.11
void rp(int *s, int k) {
int t;
if (k <= 0) return;
rp(s+1, k-2);
t = *(s+k-1); *(s+k-1) = *s; *s = t; }
3.12
void seleS(int a[], int n) { int i, j, t, k;
8--34 注:解答写在答卷纸上,试卷中的解答不评分
for(i = 0 ; i < n-1; i++) {
for(k = i , j = i+1; j < n; j++) if(a[k] > a[j]) k = j; if(k != i) {
t = a[i]; a[i] = a[k];a[k] = t; } } } 3.13
void pp(char *s, int k) { char c;
if (k <= 0) return;
pp(s+1, k-2); c = s[k-1]; s[k-1] = s[0]; s[0] = c; }
3.14
struct intNode { int val; struct intNode * next;}; void freeLink(struct intNode *h)
{ intNode *p;
while(h != NULL) { p = h; h = h->next; free(p); } }
3.15
void s(int a[], int n)
{ int i, j, t;
for(i = 1 ; i < n; i++) { t = a[i]; for(j = i-1; j >= 0 && a[j] > t; j--) a[j+1] = a[j]; a[j+1] = t; } }
3.16
#include
}
if(*s) return 1+fs(s+1); return 0;
void main()
{ char s[]=\
9--34 注:解答写在答卷纸上,试卷中的解答不评分
}
printf(\
3.17
#include
void ostr(char *s1, char *s2) { int i,j,k, len = strlen(s1);
for(k = 0; s2[k]; k++) { for(j = 0 ; s1[j] && s2[k] > s1[j]; j++); }
void main()
{ char a[20]= \ ostr(a, b); printf(\
}
3.18
#include
int f(int a) { int b = 0; static int c = 3; b++; c++; return (a+b+c); }
void main() { int i; }
for(i = 0; i < 3; i++) f(i); printf(\
for(i = len; i >= j; i--) s1[i+1] = s1[i]; s1[j] = s2[k];len++;
}
3.19
#include
for(i = 1; i < k; i++) {
for(t = b[i], j = i-1; j >= 0 && t < b[j]; j--) b[j+1] = b[j]; b[j+1] = t; } }
void main()
{ int i, a[5] = {6, 12, 7, 11, 5}; s(a, 5);
for(i = 0; i < 5; i++) printf(\
10--34 注:解答写在答卷纸上,试卷中的解答不评分