(一)改错题

1、错误信息:

修改 docker netstat 修改病句练习题_错误信息


错误原因:for后面 有分号,for里面是逗号。

改正方法:把for后面的分号去掉,把for里面的逗号换成分号。

2、错误信息:

修改 docker netstat 修改病句练习题_赋值_02


错误原因:公式不对

改正方法:celsius=5*(fahr-32.0)/9.

3、错误信息:

修改 docker netstat 修改病句练习题_修改 docker netstat_03


错误原因:有多个语句缺少大括号

改正方法:在二条语句前后加上{}。

4、错误信息:

修改 docker netstat 修改病句练习题_错误信息_04


错误原因:fahr每次增加2,而这个程序是加 1

改正方法:fahr =fahr+2

5、错误信息:

修改 docker netstat 修改病句练习题_i++_05


错误原因:fahr定义得是int输出确是%3.0f

改正方法:把%3.0f改成%3d

(二)学习总结

1、①定义整型变量i,num,odd,even

②给odd和even赋值odd = 0,even = 0

③给i赋值i=1

④判断i是否<=10

⑤是的话输入num

⑥判断i跟二求余是否=0

⑦如果=0输出even++,如果!=0输出odd++。

⑧执行i++

⑨在输入一个num

⑩判断i跟二求余是否=0

11.如果=0输出even++,如果!=0输出odd++。

12.执行i++

.....

13.输入num

14.判断i跟二求余是否=0

15.如果=0输出even++,如果!=0输出odd++。

16.i>10

17.输出odd,even。

输出奇数的个数和偶数的个数。

2.增量运算符

(1)

修改 docker netstat 修改病句练习题_修改 docker netstat_06


单独使用前缀和后缀没区别

(2)

修改 docker netstat 修改病句练习题_i++_07


1.定义整型变量i,j

2.分别给i,j赋值i=2,j=2.

3.输出i,j的值

i为后缀先输出再加一,j为前缀先加一再输出。说明做成分的时候前缀和后缀是不一样的。

这两条输出语句执行完后,i和j的值分别是2,3

3.(1)

修改 docker netstat 修改病句练习题_错误信息_08


(2)

修改 docker netstat 修改病句练习题_i++_09


(3)

修改 docker netstat 修改病句练习题_赋值_10


(4)

修改 docker netstat 修改病句练习题_i++_11


循环体的认定与缩格形式无关,与{}有关。(1)(3)(4)格式是正确的缩进格式。for下面大括号里面的就是循环体,如果没有大括号离for语句最近的一个语句就是循环体。

(三)实验总结

1.求奇数分之一序列前N项和

(1)题目

本题要求编写程序,计算序列 1 + 1/3 + 1/5 + ... 的前N项之和。

(2)流程图

修改 docker netstat 修改病句练习题_修改 docker netstat_12


(3)源代码

# include<stdio.h> 
int main(void)
{
 int N,i;
 double sum;
 scanf("%d",&N);
 sum=0;
 for(i=1;i<=N;i++)
 {
	sum = sum + 1.0/(2*i-1);
 }
 printf("sum = %.6f",sum);
 return 0; 
}

(4)实验分析

问题1:答案错误

原因:1/(2*i-1)是整数,应该有小数

解决办法:把1改成1.0

(5)本题PTA提交列表

修改 docker netstat 修改病句练习题_i++_13


3 .奇偶分家

(1)题目

给定N个正整数,请统计奇数和偶数各有多少个?

(2)流程图

修改 docker netstat 修改病句练习题_错误信息_14


(3)源代码

#include <stdio.h>
int main(void)
{
 int N,a,ou,ji,i;
 scanf("%d",&N);
 ji=0;
 ou=0;
 for(i=1;i<=N;i++)
 {
 	scanf("%d",&a);
	if(a%2!=0)
	{
		ji=ji+1;
	}
	else
	{
		ou=ou+1;
	}
 }
 printf("%d %d",ji,ou);
 return 0;
}

(4)实验分析

问题1:结果不对

原因:没给ji ou 赋值

解决办法:ji=0,ou=0

(5)本题PTA提交列表

修改 docker netstat 修改病句练习题_i++_15


5. 统计字符

(1)题目

本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。

(2)流程图

修改 docker netstat 修改病句练习题_修改 docker netstat_16


修改 docker netstat 修改病句练习题_赋值_17


(3)源代码

#include <stdio.h>
int main()
{
 int c = 0,d = 0,e = 0,f = 0,i;
 char a;
 for(i = 1;i <= 10;i++)
 {
	scanf("%c",&a);
	if((a >= 'a' && a <= 'z') || (a >= 'A' && a <= 'Z'))
	{
		c = c + 1;
	}
	else if(a == '\n' || a == ' ')
	{
		d = d + 1;
	}
	else if(a >= '0' && a <= '9')
	{
		e = e + 1;
	}
	else
	{
		f = f + 1;
        }
 } 
 pdrintf("letter = %d, blank = %d, digit = %d, other = %d",c,d,e,f);
 return 0;
}

(4)实验分析

问题1:输入不对

原因:没给0和9加''

解决办法:a >= '0' && a <= '9'

(5)本题PTA提交列表

修改 docker netstat 修改病句练习题_错误信息_18


7. 求交错序列前N项和

(1)题目

本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。

(2)流程图

修改 docker netstat 修改病句练习题_赋值_19


(3)源代码

#include <stdio.h>
#include <math.h>
int main(void)
{
 int N,i;
 double sum;
 scanf("%d",&N);
 sum=0;
 for(i=1;i<=N;i++)
 {
	sum=sum+i/(i*2.0-1)*pow((-1),i-1);
 } 
 printf("%.3f",sum);
 return 0;


}

(4)实验分析

问题1:结果不对

原因:-1的次幂不对

解决办法:pow((-1),i-1)

(5)本题PTA提交列表

修改 docker netstat 修改病句练习题_赋值_20