C语言蓝皮书》操作题参考答案
第1套 操作题参考答案
一、程序填空题
(1) 3.0(double)3    (2) >    (3) (t + 1)
二、程序修改题
(1) double fun(int n)    (2) s = s + (double)a / b;
三、程序设计题
int fun(int a[ ][M])
{
    int max = a[0][0], i, k;
    for (i = 0; i < 2; i++)
        for (k = 0; k < M; k++)
            if (a[i][k] > max) max = a[i][k];
    return max;
}
第2套 操作题参考答案
一、程序填空题
(1) 0    (2) n    (3) (t * t)
二、程序修改题
(1) for (i = 0; str[i]; i++)    (2) if (substr[k+1] == '\0')
三、程序设计题
double fun(double eps)
{
    double s = 1.0, s1 = 1.0;
    int n = 1;
    while (s1 >= eps)  /*当某项大于精度要求时循环*/
    {
        s1= s1 * n / (2 * n + 1); /*求多项式的每一项*/
        s = s + s1;          /*求和*/
        n++;
    }
    return 2 * s;
}
第3套 操作题参考答案
一、程序填空题
(1) s[i]    (2) '9'    (3) *t = n
二、程序修改题
(1) t = *x; *x = y;    (2) return (t); return t;
三、程序设计题
void fun(int *a, int *n)
{
    int i, j = 0;
    for (i = 1; i <= 1000; i++)
        if ((i % 7 == 0 || i % 11 == 0) && i % 77 != 0)
            a[j++] = i;        /* j++模式*/
    *n = j;
}
第4套 操作题参考答案
一、程序填空题
(1) 1    (2) j++    (3) j
二、程序修改题
(1) t = a; a = b; b = t;    (2) return (b); return b;
三、程序设计题
void fun(char *a)
{
    int i, j = 0;
    for (i = 0; a[i]; i++)
        if (a[i] != '*') a[j++] = a[i];  /* j++模式*/
    a[j] = 0;
}
第5套 操作题参考答案
一、程序填空题
(1) 0  (2) 10*x  (3) /10
二、程序修改题
(1) *t = 0;  (2) if (d % 2 != 0) if (d % 2 == 1)
三、程序设计题
void fun(char p1[ ], char p2[ ])
{
    int i, j = strlen(p1);
    for (i = 0; p2[i]; i++)
        p1[j++] = p2[i];        /* j++模式*/
    p1[j] = 0;
}
第6套 操作题参考答案
一、程序填空题
(1) a[i]    (2) a[j]    (3) a[j]
二、程序修改题
(1) 去掉分号    (2) case 1: case 2: return 1;
三、程序设计题
void fun(STREC *a)
{
    int i;
    double s = 0;
    for (i = 0; i < N; i++)
        s += a->s[i];    /*求成绩的总和*/
    a->ave = s / N;            /*求平均分*/
}
第7套 操作题参考答案
一、程序填空题
(1) char    (2) ch <= '9'    (3) '0'
二、程序修改题
(1) b[k] = *p;    (2) b[k] = ' '; k++;
三、程序设计题
double fun(STREC *h)
{
    double sum = 0;
c语言二维数组转置
    STREC *p = h->next;
    while (p != NULL)
    {
        sum += p->s;
        p = p->next;
    }
    return sum / N;
}
第8套 操作题参考答案
一、程序填空题
(1) M    (2) <    (3) k
二、程序修改题
(1) if ((tt[i] >= 'a') && (tt[i] <= 'z'))  (2) tt[i] -= 32;
三、程序设计题
void fun(int m, int *k, int xx[ ])
{              /*出大于1小于整数m的非素数*/
    int i, v, j = 0;
    for (i = 2; i < m; i++)
    {
        for (v = 2; v < i; v++)
          if (i % v == 0) break;
        if (v == i) xx[j++] = i;    /* j++模式*/
    }
    *k = j;          /*返回非素数的个数*/
}
第9套 操作题参考答案
一、程序填空题
(1) j++ j += 1 ++j j = j + 1
(2) s[i] = t1[i]    (3) j
二、程序修改题
(1) for (j = i + 1; j < 6; j++)    (2) *(pstr + i) = *(pstr + j);
三、程序设计题
int fun(char *ss, char c)
{  /*求出ss所指字符串中指定字符的个数*/
    int i, n = 0;
    for (i = 0; ss[i]; i++)
        if (ss[i] == c) n++;
    return n;
}
第10套 操作题参考答案
一、程序填空题
(1) x    (2) p    (3) s
二、程序修改题
(1) long k = 1;    (2) num /= 10;
三、程序设计题
float fun(float *a, int n)
{
    int i;
    float s = 0;
    for (i = 0; i < n; i++)      /*求分数的总和*/
        s += a[i];
    return s / n;              /*返回平均值*/
}
第11套 操作题参考答案
一、程序填空题
(1) 1    (2) i    (3) a[p+i] *(a + p + i)
二、程序修改题
(1) float k;    (2) if (*a < *c)
三、程序设计题
int fun(STREC *a, STREC *b)
{
    int i, j = 0, max = a[0].s;
    for (i = 1; i < N; i++)            /*出最大值*/
        if (a[i].s > max) max = a[i].s;
    for (i = 0; i < N; i++)
        if (a[i].s == max) b[j++] = a[i];    /* j++模式*/
    return j;            /*返回最高成绩的学生人数*/
}
第12套 操作题参考答案
一、程序填空题
(1) N    (2) k    (3) ss[i]
二、程序修改题
(1) int k = 0;    (2) while (*p || *q)
三、程序设计题
void fun(char *a)
{
    int i = 0, j;
    while (a[i] == '*') i++;        /*保留前导**/
    for (j = i; a[i]; i++)
        if (a[i] != '*') a[j++] = a[i];    /* j++模式*/
    a[j] = 0;
}
第13套 操作题参考答案
一、程序填空题
(1) 1    (2) s[k] *(s + k)    (3) c
二、程序修改题
(1) long s = 0, t = 0;    (2) t = t / 10;
三、程序设计题
void fun(char *tt, int pp[ ])
{
    int i;
    for (i = 0; i < 26; i++) pp[i] = 0;  /*计数器置0*/
    for (i = 0; tt[i]; i++)
        if (tt[i] >= 'a' && tt[i] <= 'z')
            pp[tt[i] - 'a']++;
}
第14套 操作题参考答案
一、程序填空题
(1) N    (2) i    (3) -1
二、程序修改题
(1) a2 = k / 10;    (2) return i;
三、程序设计题
void fun(char *a)
{
    int i, k = 0;
    for (i = 0; a[i]; i++)
        if (a[i] == '*') k++;        /*统计*号个数*/
        else k = 0;
    a[i-k] = 0;          /*添加空字符,截断串*/
}
第15套 操作题参考答案
一、程序填空题

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。