下列程序的功能是计算s=1+12+123+1234+12345。请填空。 int main(void) { int t = 0, s = 0, i; for (i = 1; i <= 5; i++) { t = i + ; s = s + t; } printf("s=%d\n", s); return 0; }
时间: 2024-03-25 19:40:42 浏览: 14
根据题目可知,t的值在每次循环中都是上一次的t乘以10再加上i,因此第一次循环时t的值为1,第二次循环时t的值为12,第三次循环时t的值为123,以此类推。
因此,程序应该填写的是i乘以一个合适的倍数,才能使t的值计算正确。根据规律,可以得到以下程序:
```c
int main(void) {
int t = 0, s = 0, i;
for (i = 1; i <= 5; i++) {
t = t * 10 + i;
s = s + t;
}
printf("s=%d\n", s);
return 0;
}
```
程序的输出结果为s=12345,与题目要求的计算结果相同。
相关问题
程序填空题 5 函数题 3 编程题 3 1-1 调用函数fun计算表达式1+1/2+1/3+···+1/n的值并输出 分数 15 作者 崔孝凤 单位 山东理工大学 下列程序的功能是调用函数fun计算表达式1+1/2+1/3+···+1/n的值并输出,结果保留3位小数,不添加任何提示信息,请填空完成程序功能。 #include <stdio.h> double fun(int n) {double t=1.0; int i; for(i=2; i<=n ;i++) t=; return t ; } int main(void) {int m; double s; scanf("%d",&m); s= ; //调用函数 printf() ; return 0; }
#include <stdio.h>
double fun(int n) {
double t = 1.0;
int i;
for(i = 2; i <= n; i++) {
t += 1.0 / i; // 表达式1+1/2+1/3+...+1/n 的计算公式
}
return t;
}
int main(void) {
int m;
double s;
scanf("%d", &m);
s = fun(m); // 调用函数
printf("%.3lf", s); // 输出结果并保留3位小数
return 0;
}
以下程序求100~200之内的素数。请填空。 #include<math.h> #include<stdio.h> void sushu(int m); void main() { int m; for (m=101;m<=200;m++) —— } void sushu(int m) {int k,i; k=sqrt(m); for(i=2;i<=k;i++) if(i>=k+1) printf("%4d",m); }
以下是填空的代码:
```c
#include <math.h>
#include <stdio.h>
void sushu(int m);
void main() {
int m;
for (m = 101; m <= 200; m++) {
sushu(m);
}
}
void sushu(int m) {
int k, i;
k = sqrt(m);
for (i = 2; i <= k; i++) {
if (m % i == 0) {
break;
}
}
if (i >= k + 1) {
printf("%4d", m);
}
}
```
需要注意的是:
1. 函数`sushu`中的判断条件需要改为判断`m`是否能被`i`整除;
2. 最后的输出语句需要放在判断语句中,只有当`m`是素数时才输出。