A类
1. 奎哥有言,级数1+1/2+1/3+...+1/n+...是发散的,而且还说“这个你们可以用C语言验证一下”,那么我们就验证一下吧!
请补全下列代码,要求用户输入一个正整数n,然后计算出1+1/2+1/3+...+1/n
#include <stdio.h>
int main() {
double result = 0;
int i, n;
printf("请输入n:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
result += ____________________________
}
printf("%lf\n", result);
return 0;
}
B类
2.下列程序的运行结果为:
#include <stdio.h>
int main() {
int a[100] = {0};
int i, j;
a[0] = 1;
for (i = 0; i < 5; i++) {
for (j = 0; j < 99; j++) {
a[j] *= 2;
}
for (j = 0; j < 99; j++) {
if (a[j] >= 10) {
a[j+1] += a[j] / 10;
a[j] %= 10;
}
}
}
for(i = 0; i < 5; i++) {
printf("%d", a[i]);
}
return 0;
}
C类
3.请编写一个程序,打印如下图形:
(提示:使用二维数组)
----------------------------------以下为答案--------------------------------------
1. 1.0 / i ; (注:写成1/i是不对的)
2. 23000
3.
#include <stdio.h>
int main() {
int a[10][10] = {0}, i, j, id = 1;
i = j = 0;
int end = 0, temp_i, temp_j;
while (!end) {
while (i < 10 && a[i][j] == 0) {
a[i][j] = id++;
i++;
}
i--, j++;
while (j < 10 && a[i][j] == 0) {
a[i][j] = id++;
j++;
}
j--, i--;
while (i >= 0 && a[i][j] == 0) {
a[i][j] = id++;
i--;
}
i++, j--;
while (j >= 0 && a[i][j] == 0) {
a[i][j] = id++;
j--;
}
j++, i++;
end = 1;
for (temp_i = 0; temp_i < 10; temp_i++) {
for (temp_j = 0; temp_j < 10; temp_j++) {
if (a[temp_i][temp_j] == 0) {
end = 0;
break;
}
}
}
}
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
printf("%4d", a[i][j]);
}
putchar('\n');
}
return 0;
}