第五章实程教训作业
9
一、
5.
文字描述
1声明两个整型变量k,x;
2.k=0,x=0;
3.判断k <= 9 && x != 10真假;
4.真 执行x=x+2 然后k++,再回到第三步判断
5.假 直接输出k,x的值;
流程图

代码
#include<stdio.h>
int main()
{
int k, x;
for (k = 0, x = 0; k <= 9 && x != 10; k++)
x = x + 2;
printf("%d,%d", k, x);
return 0;
}
截图

6.
文字描述
1.声明一个字符型变量c;
2.从键盘上获取一个字符赋值给c;
3.判断获取的字符是否为‘#’;
4.字符为‘#’直接输出 不是‘#'输出一个字符
流程图

代码
#include<stdio.h>
int main()
{
char c;
for (c = getchar(); getchar() != '#'; c = getchar())
putchar(c);
return 0;
}
截图

二、
14.
文字描述
1.声明一个字符型变量ch;
2.从键盘上获取一个数赋值给ch ,
3.判断ch是否不等于‘\n’;
4.ch为‘\n’直接输出,不是‘\n’输出ch
流程图
代码
#include<stdio.h>
int main()
{
char ch;
for (;ch = getchar() != '\n';)
printf("%c", ch);
return 0;
}
截图

15.
文字描述
1.声明一个整型变量i,常量a=1;
2.声明一个无符号整型变量j;
3.j=15;判断j>0真假;为真执行a++ 再计算j-=2;
4.为假直接输出a;
流程图

代码
#include<stdio.h>
int main()
{
int i, a = 1;
unsigned j;
for (j = 15; j >0; j -= 2)
a++;
printf("%d", a);
return 0;
}
截图

三、
1.
文字描述
1.声明一个整型变量i;
2.i=1;判断i<6真假;为真再判断i%2真假 真输出‘*’ ,假输出‘#’;
3.为假结束;
流程图

代码
#include<stdio.h>
int main()
{
int i;
for (i = 1; i < 6; i++)
{
if (i % 2)
printf("*");
else
printf("#");
}
return 0;
}
截图

2.
文字描述
1.声明一个常量m=1,两个变量n,i;
2.i=0;判断i<5真假 为真执行int m=1; m++; 判断i==4真假 为真n=m;再i++ ,为假i++;
3.为假输出m,n的值;
流程图

代码
#include<stdio.h>
int main()
{
int m = 1, n, i;
for (i = 0; i < 5; i++)
{
int m = 1;
m++;
if (i == 4)n = m;
}
printf("%d%d", m, n);
return 0;
}
截图

3.
文字描述
1.声明一个整型变量i;
2.i=‘a’;
3.判断i<'f';真假
4.为真输字符i-‘a’+‘A’的值; i++,i++; 回到第三步进行循环;
5.为假结束
流程图

代码
#include<stdio.h>
int main()
{
int i;
for (i = 'a'; i < 'f';i++,i++)
printf("%c", i - 'a' + 'A');
return 0;
}
截图

4.
文字描述
1.声明四个整型变量f, f1, f2, i;
2.f1=1,f2=2;
3.输出f1,f2的值;
4.i=3;
5.判断i<5真假
6.为真执行f1=f1+f2;输出f的值;f1=f2;f2=f;i++;再回到第五步循环
7.为假结束;
流程图

代码
#include<stdio.h>
int main()
{
int f, f1, f2, i;
f1 = 1, f2 = 2;
printf("%2d%2d", f1, f2);
for (i = 3; i <= 5; i++)
{
f = f1 + f2;
printf("%2d", f);
f1 = f2; f2 = f;
}
return 0;
}
截图

5.
文字描述
1.声明一个整型常量n=5;
2.用Switch判断n%2为以下哪种情况
3.为0;n--;结束整个循环 为1;n--;结束本次循环进行下一次循环;
4.n--
5.输出n的值
6.判断n是否大于0;大于0,回到第二部进行循环;不大于0,结束;
流程图

代码
#include<stdio.h>
int main()
{
int n = 5;
do
{
switch (n % 2)
{
case 0:n--; break;
case 1:n--; continue;
}
n--;
printf("%2d", n);
} while (n > 0);
return 0;
}
截图

7.
文字描述
1.声明一个整型常量x=10;
2.用while循环x--;
3.输出x,再回到第二步循环;
4.当x<0,则结束
流程图

代码
#include<stdio.h>
int main()
{
int x = 10;
while (x--)
printf("x=%d\n", x);
return 0;
}
截图

9.
文字描述
1.声明一个整形常量m=9;
2.判断m>0真假;
3.为真在判断m%3==0真假;为假结束
4.判断m%3==0真假;为真输出--m的值,再m--,回到第二步继续循环;
5.为假执行m--;然后回到第二步继续循环;
流程图

代码
#include<stdio.h>
int main()
{
int m = 9;
for (; m > 0; m--)
if (m % 3 == 0)
printf("%d", --m);
return 0;
}
截图

10
文字描述
1.声明一个整型常量x=8;
2.判断x>0真假
3.为真再判断x%3==0真假;为假结束;
4.判断x%3==0真假;为真输出x--的值;本次循环结束;回到第二步进行循环;
5.为假输出--x;再x--回到第二步进行循环;
流程图

代码
#include<stdio.h>
int main()
{
int x = 8;
for (; x > 0; x--)
{
if (x % 3 == 0)
{
printf("%d", x--);
continue;
}
printf("%d", --x);
}
return 0;
}
截图

11.
文字描述
1.声明一个整型常量x=3;
2.输出x=x-3的值;
3.判断(!x)真假
4.为真回到第二步进行循环;为假结束;
流程图

代码
#include<stdio.h>
int main()
{
int x = 3;
do
{
printf("%3d", x = x - 3);
} while (!x);
return 0;
}
截图

12.
文字描述
1.声明一个整型常量x=2;
2.输出!x-2的值;
3.判断(--x)真假
4.为真回到第二步进行循环;为假结束;
流程图

代码
#include<stdio.h>
int main()
{
int x = 2;
do
{
printf("%3d", !x - 2);
} while (--x);
return 0;
}
截图

13.
文字描述
1.声明一个常量n=12345,一个变量d;
2.判断(n!=10)真假;
3.为真执行 d=n%10;输出d的值;n=n/10;再回到第二步进行循环;
4..为假结束
流程图

代码
#include<stdio.h>
int main()
{
int n = 12345, d;
while (n != 0)
{
d = n % 10;
printf("%d", d);
n = n / 10;
}
return 0;
}
截图

14.
文字描述
1.声明两个整形常量m=0,sum=0;
2.声明两个字符c,oldc=‘+’
3.从键盘上获取一个数赋值给c;
4.判断(c <= '9' && c >= '0')真假
5.为真m = 10 * m + c - '0';为假判断(oldc == '+')真假
6.判断(oldc == '+')真假,为真sum+=m;为假sum-=m;
7.m=0;
8.oldc=c;
9.输出sum的值;
10.判断(c != '=')真假
11.真 回到第三步进行循环;假 结束;
流程图

代码
#include<stdio.h>
int main()
{
int m = 0, sum = 0;
char c, oldc = '+';
do
{
c = getchar();
if (c <= '9' && c >= '0')
m = 10 * m + c - '0';
else
{
if (oldc == '+')sum += m;
else sum -= m;
m = 0;
oldc = c;
printf("%3d", sum);
}
} while (c != '=');
return 0;
}
截图

16.
文字描述
1.声明两个整型常量t=1,n=235;
2.t *= n % 10;
3. n /= 10;
4.判断n的真假
5.真回到第二步进行循环;假输出t的值;
流程图

代码
#include<stdio.h>
int main()
{
int t = 1, n = 235;
do
{
t *= n % 10;
n /= 10;
} while (n);
printf("%d\n", t);
return 0;
}
截图

17.
文字描述
1.声明两个整型常量m=5;n=0;
2.判断(m>0)真假;
3.为真在判断m属于以下哪种情况;为假结束;
4.判断m属于以下哪种情况;case 1: case 3: n = +1; m--; 结束整个循环
5.default:n = 0; m--; case 2: case 4:n = +2; m--; 结束整个循环
6.输出n的值;
流程图

代码
#include<stdio.h>
int main()
{
int m = 5, n = 0;
while (m > 0)
{
switch (m)
{
case 1:
case 3:n = +1; m--; break;
default:n = 0; m--;
case 2:
case 4:n = +2; m--; break;
}
printf("%2d", n);
}
return 0;
}
截图

18.
文字描述
1.声明一个整型变量i,常量m=0;
2.i=0;
3.判断i<5真假
4.真 判断i属于以下哪种情况;假 输出m的值;
5.判断i属于以下哪种情况 i==0||i==1,m++,i++回到第三步判断; i==0||i==3,m++ i++回到第三步判断;i==0||i==4,m--;结束整个循环
流程图

代码
#include<stdio.h>
int main()
{
int i, m = 0;
for (i = 0; i < 5; i++)
{
switch (i)
{
case 0:
case 1:m++;
case 3:m++;
case 4:m--; break;
}
}
printf("%d\n", m);
return 0;
}
截图

19.
文字描述
1.声明一个整型变量i,常量b=0,c=2;
2.i=0;
3.判断i<2真假;
4.真 判断(++b, b * c)的值属于哪种情况;假 结束
4.判断(++b, b * c)的值属于哪种情况;等于1,输出1,;等于2,输出2,等于3,输出3;结束整个循环;属于default,输出other;
5.i++回到第三步进行循环;
流程图

代码
#include<stdio.h>
int main()
{
int i, b = 0, c = 2;
for (i = 0; i < 2; i++)
switch (++b, b * c)
{
case 1:printf("1");
case 2:printf("2");
case 3:printf("3"); break;
default:printf("other\n");
}
return 0;
}
截图

四、
1.
文字描述
1.声明三个整型变量denominator, flag, i, n;
2.声明两个double类型变量item, sum;
3.输出Please input n:
4.输入n的值
5.flag = 1; denominator = 1;
6.sum=0;
7.i=1;
8.判断i<=n真假
9.真 计算item = flag * 1.0 / denominator; sum = sum + item; flag = -flag; denominator += 2;
10.假输出sum的值;
11.i++,回到第八步进行循环;
流程图

代码
#include<stdio.h>
int main()
{
int denominator, flag, i, n;
double item, sum;
printf("Please input n:");
scanf_s("%d", &n);
flag = 1; denominator = 1;
sum = 0;
for (i = 1; i <= n; i++)
{
item = flag * 1.0 / denominator;
sum = sum + item;
flag = -flag;
denominator += 2;
}
printf("sum=%f\n", sum);
return 0;
}
截图

2.
文字描述
1.声明两个整型变量i,n;
2.声明两个小数类型常量sum = 0, flag = 1.0;
3.输入n的值;
4.i=1
5.判断i<=n真假
6.真 执行sum = sum + flag * 1 / (2 * i - 1); flag = -flag; i++然后回到第五步进行循环
7.假输出sum的值;
流程图

代码
#include<stdio.h>
int main()
{
int i, n;
float sum = 0, flag = 1.0;
scanf_s("%d", &n);
for (i = 1; i <= n; i++)
{
sum = sum + flag * 1 / (2 * i - 1);
flag = -flag;
}
printf("sum=%f\n", sum);
return 0;
}
截图

3.
文字描述
1.声明两个整型变量n,s;
2.输出Enter a number:
3.输入n的值;
4.输出Output:
5.s = n % 10;
6.输出s的值;
7.n/=10;
8.判断(n != 0)真假;
9.真 回到第五步进行循环;假 结束;
流程图

代码
#include<stdio.h>
int main()
{
int n, s;
printf("Enter a number:");
scanf_s("%d", &n);
printf("Output:");
do
{
s = n % 10;
printf("%d", s);
n /= 10;
} while (n != 0);
return 0;
}
截图

4.
文字描述
1.声明三个整型常量n=0,s = 1.0, k = 1;
2.判断(k <= n)真假;
3.真 执行s = s + 1.0 / (k * (k + 1)); k++; 假 输出s ; 结束
流程图

代码
#include<stdio.h>
int main()
{
int n=0,s = 1.0, k = 1;
while (k <= n)
{
s = s + 1.0 / (k * (k + 1));
k++;
}
printf("s=%f\n\n", s);
return 0;
}
截图

10.
文字描述
1.声明一个整型变量i;
2.i=100;
3.判断i<100真假;
4. 真 再判断((i - 2) % 4 == 0)真假; 假,结束
5.判断((i - 2) % 4 == 0)真假 ;真再判断(!((i - 3) % 7))真假; 假,i++,返回第三步进行循环
6.判断(!((i - 3) % 7))真假;真,再判断((i - 5) % 9 == 0)真假; 假,i++,返回第三步进行循环
7.判断((i - 5) % 9 == 0)真假;真 输出i的值;假,i++,返回第三步进行循环
流程图

代码
#include<stdio.h>
int main()
{
int i;
for (i = 100; i < 200; i++)
if ((i - 2) % 4 == 0)
if (!((i - 3) % 7))
if ((i - 5) % 9 == 0)
printf("%d",i);
return 0;
}
截图

11.
文字描述
1.声明三个整型变量count, i, n;
2.声明两个小数变量grade, total;
3.输出Enter n:;
4.输入n的值
5.total = 0; count = 0; i=1;
6.判断i <= n真假;
7.为真,输出Enter grade #%d:;输入grade的值;计算total = total + grade; 再判断(grade < 60)真假 ,真为count++; ,i++然后返回第六步进行循环;假为i++然后返回第六步进行循环;
8.为假输出total / n的值
9.输出count的值;
10.结束
流程图

代码
#include<stdio.h>
int main(void)
{
int count, i, n;
double grade, total;
printf("Enter n:");
scanf_s("%d", &n);
total = 0;
count = 0;
for (i = 1; i <= n; i++)
{
printf("Enter grade #%d:", i);
scanf_s("%lf", &grade);
total = total + grade;
if (grade < 60)
count++;
}
printf("Grade average=%.2f\n", total / n);
printf("Number of failures=%d\n", count);
return 0;
}
截图

12.
文字描述
1.声明两个整型变量i,j;
2.i=0;
3.判断i < 10真假;
4.真,计算j = i * 10 + 6;再判断(j % 3 == 0)真假,真 ,输出j的值然后i++再回到第三步进行循环;假,直接i++,再回到第三步进行循环;
5.假,结束
流程图

代码
#include<stdio.h>
int main()
{
int i, j;
for (i = 0; i < 10; i++)
{
j = i * 10 + 6;
if (j % 3 == 0)
printf("%3d", j);
}
return0;
}
截图
