[Solution 1] From the problem, we know: any side of a small convex polygon is a diagonal of the large convex heptagon.
Obviously, three diagonals from the same vertex cannot be the sides of the same convex polygon.
Therefore, the sides of a small convex polygon can be at most two diagonals from one vertex. But a diagonal connects two vertices, so the maximum number of sides of a small convex polygon is 7.
Thus, the answer is (C).
[Solution 2] Let the maximum number of sides of a small convex polygon be $m$, and each side connects two vertices of the convex heptagon, thus connecting $2m$ vertices in total.
Also, from each vertex of the convex heptagon, at most two lines can become two sides of the above polygon.
Therefore, each vertex can be counted at most twice, so $2m \leqslant 14$, hence $m \leqslant 7$.
Furthermore, when the convex heptagon is a regular heptagon, its diagonals can form a new regular heptagon, i.e., $m=7$ can be achieved.
Thus, the answer is (C).
19.34 All the diagonals of a convex heptagon divide the heptagon into many non-overlapping small convex polygons. The maximum number of sides of the smallest polygon is 
(A) 5.
(B) 6.
(C) 7.
(D) A natural number greater than 7.
(Shanghai Junior High School Mathematics Competition, 1987)