一、阅读理解
文字描述,流程图,代码执行图
20、1.声明整型变量n和I,并把0的值赋值给n;
2.定义for循环,把0的值赋值给i;
3.判断i是否小于3,是进行下一步,否则进行第9步;
4.定义一个Switch循环,n++之后为几;
5.n++为0时,执行空语句;
6.继续执行n++为1时,执行空语句;
7.继续执行n++为2时,执行空语句;
8.继续执行n++为3时,输出n++的值,返回第3步之和,进行i++;
9.结束。
#include<stdio.h>
int main()
{
int n = 0, i;
for(i=0;i<3;i++)
switch (n++)
{
case 0:
case 1:
case 2:
case 3:printf("%2d", n++);
}
return 0;
}
二、完善程序题
5、1.声明整型变量n,i,k,j,p,sum;
2.定义for循环,把1的值赋值给i;
3.判断i是否小于k除以2,是执行下一步,否则执行第13步;
4.定义for循环,把1的值赋值给j,把0的值赋值给sum;
5.判断sum是否小于k,是进行下一步,否则进行第3步;
6.把sum加j的值赋值给sum,返回第5步,j自加2;
7.判断sum是否等于k,是进行下一步,否则进行第3步;
8.输出n,n,n,sum的值;
9.定义for循环,把i的值赋值给p;
10.判断p是否小于j减2,是进行下一步,否则进行第3步;
11.输出p的值,返回第10步,p自加2;
12.输出p的值,返回第3步;
13.结束。
#include<stdio.h>
int main()
{
long n, i, k, j, p, sum;
for (n = 2; n <= 10; n++)
{
k = n * n * n;
for (i = 1;i < k / 2; i += 2)
{
for(j=i,sum=0;sum<k;j+=2)
sum += j;
if (sum == k)
{
printf("\n%ld*%ld*%ld=%ld=", n, n, n, sum);
for (p = i; p < j - 2; p += 2)printf("%ld+", p);
printf("%ld", p);
break;
}
}
}
return 0;
}
6、1.声明长整型m,n,k,s,flag并把0的值赋值给flag;
2.输出普通字符;
3.输入k的值;
4.把k的值赋值给n;
5.把n的值赋值给m;
6.把表达式的值赋值给s;
7.判断s乘以s是否等于1,是进行下一步,否则进行第9步;
8.把1的值赋值给flag;
9.m自加1;
10.判断m是否大于0和是否不等于flag,是进行下一步,否则返回第6步;
11.判断m是否等于0,是进行下一步否进行第13步;
12.判断n是否大于0和步等于flag,是进行下一步,否则返回第5步;
13.输出m和n的值;
14.结束。
#include<stdio.h>
int main()
{
long m, n, k, s, flag = 0;
printf("input k:");
scanf_s("%ld", &k);
n = k;
do
{
m = n;
do
{
s = n * (n - m) - m * m;
if (s * s == 1)flag = 1;
else--m;
} while (m > 0 && !flag);
if (m == 0)n--;
} while (n > 0 && !flag);
printf("m=%ld,n=%ld", m, n);
return 0;
}
8、1.声明整数变量i,j,line,并把0的值赋值给line,声明长整型n;
2.判断n是否小于等于1,是进行下一步,否则进行第5步;
3、输出普通字符;
4.输入n的值;
5.定义for循环,把2的值赋值给i,
6.判断i是否小于等于n,是进行下一步,否则进行第12步;
7.定义for循环,把2的值赋值给j;
8.判断j是否小于i,是进行下一步,否则进行第6步;
9.判断i取余j是否等于0,是进行第6步,否则进行下一步;
10.判断j是否等于i和i取余10是否不等于9,是进行下一步,否则进行第6步;
11.输出i的值;
12.line自加1;
13.判断line是否等于10,是进行下一步,否则进行第6步;
14.输出”\n”,并且把0的值赋值给line;
15.结束。
#include<stdio.h>
int main()
{
int i, j, line = 0; long int n;
printf("Please enter n:");
scanf_s("%ld", &n);
while (n <= 1)
{
printf("Enter ettor,enter again");
scanf_s("%ld", &n);
}
for (i = 2; i <= n; i++)
{
for (j = 2; j <= n; i++)
if (i % j == 0)break;
if (j == i && i % 10 != 9)
{
printf("%d\t", i);
line++;
if (line == 10) { printf("\n"); line = 0; }
}
}
return 0;
}
9、1.声明整数变量i,j,n,声明长整型变量temp和sum,并把0的值赋值给sum;
2.输出普通字符;
3.输入n的值;
4.判断n是否小于1,或者n是否大于10,是进行下一步,否则进行第7步;
5.定义for循环,把0的值赋值给I;
6.判断i是否小于n,是进行下一步,否则进行第12步;
7.把0的值赋值给temp;
8.定义for循环,把0的值赋值给j;
9.判断j是否小于等于i,是进行下一步,否则进行第6步i自加1;
10.把表达式的值赋值给temp,返回第9步,j自加1;
11.把sum加temp的值赋值给sum,返回第6步,i自加1;
12.结束。
#include<stdio.h>
#include<math.h>
int main()
{
int i, j,n ; long temp, sum = 0;
printf("Please input terms numbers.");
scanf_s("%d", &n);
while (n < 1 || n>10)
{
printf("Enter error,enter again.");
scanf_s("%d", &n);
}
for (i = 0; i < n; i++)
{
temp = 0;
for (j = 0; j <= i; j++)
temp += (long int)pow(10, j) * (i + 1);
sum += temp;
}
printf("sum=%ld\n", sum);
return 0;
}
三、编程题
1、1.声明整数变量i,j,a,并把0的值赋值给a;
2.输出普通字符;
3.定义for循环,把1的值赋值给i;
4.判断i是否小于等于1000,是进行下一步,否则进行第15步;
5.把0的值赋值给整数sum;
6.定义for循环,把1的值赋值给j;
7.判断j是否小于i,是进行下一步,否则i自加1进行第4步;
8.判断i是否取余j等于0,是进行下一步否则进行第10步;
9.把sum加j的值赋值给sum;1进行第4步;
10.判断i是否取余j等于0,是进行下一步否则进行第10步;
11.输出i的值;
12.a自加1;
13.a取余5是否等于0,是进行下一步,否则i自加1进行第4步;
14.输出“n”, i自加1进行第4步;
15.输出的值;
16.结束。
#include<stdio.h>
int main()
{
int i, j, a = 0;
printf("1000以内的所有完数分别是:");
for (i = 1; i <= 1000; i++)
{
int sum = 0;
for(j=1;j<i;j++)
{
if (i % j == 0)
sum = sum + j;
}
if (sum == i) {
printf("%d", i);
a++;
if (a % 5 == 0)
printf("\n");
}
}
printf("\n1000以内完数个数为:%d", a);
return 0;
}
2、1.声明整型变量i和j,并把0的值赋值给j;
2.定义for循环,把1900的值赋值给i;
3.判断i是否小于等于2000,是进行下一步否则进行第9步;
4.判断i是否为闰年的数;
5.输出i的值;
6.j自加1;
7.判断j取余3是否等于0,是进行下一步,否则i自加1,返回第3步;
8.输出“\n”,返回第3步,并且i自加1;
9.结束。
#include<stdio.h>
int main()
{
int i, j = 0;
for (i = 1900; i <= 2000; i++) {
if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0)) {
printf("%d", i);
++j;
if (j % 3 == 0)printf("\n");
}
}
return 0;
}
3、1.声明整数变量number,a,b,c,I,并且把0的值赋值给i;
2.定义for循环,把100的值赋值给number;
3.判断number是否小于等于999,是进行下一步,否则进行第12步;
4.把number除以100的数赋值给a;
5.把number取余100除以10的值赋值给b;
6.把number取余10的值赋值给c;
7.判断number是否等于表达式的值,是进行下一步,否则返回第3步,number自加1;
8.输出number的值;
9.i自加1;
10.判断i取余2是否等于0,是进行下一步,否则返回第3步,number自加1;
11.输出“\n”,返回第3步,number自加1;
12.结束。
#include<stdio.h>
int main()
{
int number, a, b, c, i = 0;
for (number = 100; number <= 999; number++)
{
a = number / 100;
b = number % 100 / 10;
c = number % 10;
if (number == a * a * a + b * b * b + c * c * c){
printf("%d\t", number);
i++;
if (i % 2 == 0)printf("\n");
}
}
return 0;
}
4、1.声明整数变量k,i,n,t;
2.声明单精度浮点型变量e和s,并把1的值分别赋值给e和s;
3.输入n的值;
4.把1的值赋值给t;
5.定义for循环,把1的值赋值给i;
6.判断i是否小于等于k,是进行下一步,否则进行第 步;
7.把t乘以i的值赋值给t;
8.把表达式的值赋值给e;
9.k自加1;
10.判断k是否小于等于n,是进行下一步,否则返回第4步;
11.输出e的值;
12.结束。
#include<stdio.h>
int main()
{
int k = 1, i, n, t;
float e = 1, s = 1;
scanf_s("%d", &n);
do
{
t = 1;
for (i = 1; i <= k; i++)
t = t * i;
e = e + 1.0 / t;
k++;
} while (k <= n);
printf("%.2f\n", e);
return 0;
}
5、1.声明单精度浮点型变量y,s,x,xx,a,i,并把1的值赋值给s,xx,a,i;
2.输入x的值;
3.把-a的值赋值给a;
4.i自加1;
5.把xx乘以x的值赋值给xx;
6.把i除以xx的值赋值给y;
7.把s加a乘以y的值赋值给s;
8.判断y是否大于0.00001,是进行下一步,否则进行第3步;
9.输出s的值,
10.结束。
#include<stdio.h>
int main()
{
float y, s = 1, x, xx = 1, a = 1, i = 1;
scanf_s("%f", &x);
do
{
a = -a;
i++;
xx = xx * x;
y = i / xx;
s = s + a * y;
} while (y > 0.00001);
printf("%f", s);
return 0;
}