C语言程序设计授课记录202003

课程信息

学期:2019-2020学年第二学期
序号:10917.21
名称:C语言程序设计
教师:郝伟
时间:星期三 5-6
周次:1-16
教室:天工北107 041107
备注:受疫情影响,初始几周实行在线教育。
资料:C语言学习资料汇总

教学纪律

关于在线提问
凡是不涉及隐私的问题,一律在群里进行,不接受私下提问。原因有两个:一是为了互相借鉴,即每个同学的提问,可以给其他同学作为参考,并且可以互相查询;二是为了避免重复,因为很多同学都有相同的问题,如果一一回复的问题,需要回答多次。

关于作业提交
1 每次作业在下周一18:00前提交,超时不再接收;
2 作业只接收文本格式,或其他指定格式;

常见问题

  • 为什么要使用文本而不是手写?
    主要有以下三个原因:
    1、C语言是一门重要的程序设计语言,要求同学们有一定的动手能力。为了提高计算机使用水平,因此要求用计算机进行编写,而不是手工编写再拍照上传。
    2、纯文本体积小,方便传输。举例来说,同学们本次作为一般都在1.5K左右,70个人也才100K的容量,而使用图片要几百K,按500K计算,70个人要35M左右,如果按极端的情况,比如11 张云的Word文件有4.33M,70个人要300M,传输和保存都非常不方便。
    3、内容易于处理,因为纯文本可以很容易地复制粘贴,方便后期处理。

  • 为什么使用纯文而不是Word?
    Word确实很强大文字显示效果很好,但是作业的目的是为了检测同学们学习情况,而不是Word的使用水平。同时纯文本 .txt 文件具有使用简单,打开保存效率高,格式通用等优点特点,特别适合对于内容本身的查看,所以推荐使用。

成绩评定

  • 总成绩标准
    总成绩 = 期末考试分 * 0.7 + 作业分 * 0.2 + 平时出勤 * 0.1。
    即考试分70分,作业分20分,平时出勤10分。

  • 期末考试分(70分)
    以最终实际考试为准,将考试分数*0.7计入部分。

  • 平时作业分(20分)
    平时作业每次都进行打分共16次,然后对每位同学的最高的10次作业求和(每次满分10分,总分100分)然后乘以20%计入总成绩。
    平时作业成绩由内容分和原创分两部分组成,均由程序评判。

    1. 内容分(5分)
      内容分包括知识点和长度分两部分组成。
      作业长度:3分,根据文件长度分为 [0, 200), [200, 400), [400, 600), [600, ∞) 四档,对应分数: 0,1,2,3。
      知识点:2分,每次取3-5个关键词作为知识点,每包括1个加1分,最多2分。
    2. 原创分(5分)
      作业的原创性,计算的方式是将其作业与其他人进行比较重复度,取最大重复度为重复度,值域为 [0%, 100%],0%表示完全不重复,100%表示完全重复。
      分值0-5分,包括 [0%, 10%), [10%, 20%), [20%, 30%), [30%, 40%), [40%, 50%), [50%, 60%)对应分数为5,4,3,2,1,0。
    • 注意事项
    1. 重复度超过50%本次作业按-5分处理。
    2. 每次进行20%的内工随机抽样进行人工检测,如果发现乱写的本次作业0分,同时对以前作业进行检测,发现同样清零。
    3. 作业不提交按0分处理。
  • 出勤分(10分)
    每缺勤一次扣3分,最多扣10分。根据教务处规定,单科缺勤超过30%(本课程16次课,即达到5次或以上),不得参加期末考试。

授课记录

2020/02/26 第1章 C语言入门

本次教学采用在线教育,使用软件为QQ群。

课程内容
在线播放视频,包括计算机基本原理、什么是编程、C语言介绍和进制转换。
安装包的三种方式,VC6.0,mingw和在线
注:以上资料均保存在QQ群中。

作业要求
作业1:根据本次课的内容做相应的笔记。
作业2:自己准备一个数字,用于编写二、八、十、十六进制转换实例一则,并有计算过程。
作业请提交电子版,每位同学提交一个文本文件。文件名和在QQ群里的一致,即 “编号.txt”。然后交给每个班学委。学委要检查文件名称格式,如果有不一样的先调整下,然后整个班级打包发给我,即每个班一个压缩包,总计三个压缩包。
提交时间:下周一(2020/03/2)18点前

2020/03/04 第2章 变量的定义

本次教学采用在线教育,使用软件为QQ群。

课程内容
在线播放视频,包括2.1 C源程序及其符号和2.2 C语言中的数据类型。

  • 什么是IPO

    • Input: 数据输入
    • Process:数据处理
    • Output:计算结果的输出
      示例:对于 y = f(x),x 表示输入,f 是处理函数,y是计算结果。
      1 <= sin(pi/2)
      5 = len(“hello”)
      5050 = sum([1,2,…,100])
  • int x = 1; 的含义

  • int x = 3;
    int y = x * 2;

  • 自定义变量的定义规则

    • 只能由字母、数字和下划线组成
    • 不能以数字开头

注:自定义变量的是大小写敏感的

作业要求
作业1:根据本次课的内容做相应的笔记。
作业2:自己准备一个数字,用于编写二、八、十、十六进制转换实例一则,并有计算过程。

提交要求同第一周。
提交时间: 下周一(2020/03/02)18点前

示例代码:

#include <stdio.h>

int main() 
{

    int jack_age = 19;
    printf("jack_age = %d.\n", jack_age); 

    int tom_age = 20;
    printf("tom_age = %d.\n", tom_age); 
    
    int test times = 10;
    int _year = 2020;
    int classNumber = 70;
    int classnumbber = 70;  
    int people3 = 3;
    
    int x1 = 3;
    int y2 = x1 * x1;
    y2 = y2 + 1; 
    
    printf("y2 = %d\n", y2);
    
	return 0;
}

2020/03/11 第2章 基本数据类型

本次教学采用在线教育,使用软件为QQ群。

课程内容
在线播放视频2.2 C语言中的数据类型20分钟,主要讲解数据类型。

  • 作业问题+考勤要求
  • 整型作用及位长的意义
  • 浮点型与科学计数法
  • 字符与ASCII码,包括字符与整型转换,大小写转换,半角与全角问题等内容
  • printf中的转义
  • 示例代码解读

示例代码

#include <stdio.h>

int main() 
{
	int v = 7;
	char sex1 = 'F';
	char sex2 = 'm';
	// %c: 表示字符,%d: 表示数值,'\n':表示换行	
	printf("Jack.Sex: %c\nLucy.Sex: %d\nRelationship: %d\n", sex2, sex1, 10);
	printf("'\\n' = %d\n", '\n');
	return 0;
}

作业要求
作业1:课堂学习笔记
作业2:解释上面的本次课程示例代码的作用
作业3:截图表明C语言环境已经搞定,包括测试代码和结果,图片名称同样是2位编号。
注:作业1和2放在一个 2位编号.txt 的文件中,作业3用一个 2位编号为文件名的图片表示。
作业要求同第一周,下周一(2020/03/16)18点前提交。

2020/03/18 第3章 C的输入输出与if语句入门

本次教学采用在线教育,使用软件为QQ群。

课程内容

  • 启动控制台
  1. Win+R 打开“命令”窗口
  2. 输入 “cmd” 回车
  • 使用控制台进行编译: gcc -g ch3.c -o ch3.exe

  • C语言的程序如何执行?

    1. 编写源代码:建立 ch3.c
    2. 使用编译器进行编译: ch3.c -> ch3.exe
    3. 执行,在DOS窗口输入程序名: ch3.exe
  • demo1: 输入1个浮点数,求它的平方

#include <stdio.h>

int main() 
{
	double v = 0;
	scanf("%lf", &v);
	v = v * v;
	printf("The square of v is %f.", v);
	return 0;
}
  • demo2: 求 sum(n)
#include <stdio.h>

int main() 
{
	int n = 0;
	printf("Please input a natural number(Range: [1, 1000])\n");
	scanf("%d", &n);
	printf("The n you input is: %d\n", n);
	int sum = 0, i = 1;
	for( ; i <= n; i++)
		sum = sum + i;
	
	printf("The sum of 1 to n is %d.", sum);
	return 0;
}
  • 求 ax^2 + bx + c = 0 的实数根。
    C语言中的表达式:a * x ^ 2 + b * x + c = 0
#include <stdio.h>
#include <math.h>

int main() 
{
	double a, b, c;
	printf("Please input coefficients: a, b, c of quedrapic equition a*x^2+b*x+c=0:\n");
	scanf("%lf,%lf,%lf", &a, &b, &c);
	printf("a=%.2f, b=%.3f, c=%.4f.\n", a, b, c);
	
	double x1 = (-b + sqrt(b*b - 4*a*c))/(2*a);
	double x2 = (-b - sqrt(b*b - 4*a*c))/(2*a);
	printf("x1=%f, x2=%f.\n", x1, x2);
	
	return 0;
}

scanf 输入函数注意事项

  1. 使用%d输入整型,%f 浮点float, %lf 浮点 double
  2. 待赋值的变量前要加& (取地址符)
  3. 如果是多变量,那么中间要加分隔符,可以是空格或逗号。
    在输入时,也要遵守相同的分隔符,比如:
    scanf("%lf,%lf,%lf", &a, &b, &c); 对应 1,2,3

printf 输出函数注意事项

  1. 使用%d表示整型,%f 浮点
  2. 对于%f,可以使用%m.nf的格式进行输出,其中:
    m:表示总长度,包括整数部分+1位小数点+小数部分,
    长度不足在左侧用空格补足,超出时,m不起作用
    n:表示小数部分长度,对于缺少的补0,对超出的四舍五入。

课堂练习

# printf("%6.3f", 3.1415926535)  --> _3.142
# 给定输入:12345.6789,要求的输出是:__12345.67890, // 注意__是两个下划线
  那么格式化的字符串是什么? 即m = 13, n = 5
# 注意变量的数据类型与匹配符(%d, %f, %c)要对应,不能搞错。
# 对于%d,可以使用%md来格式化整型的总长度,其中m为总长度。
  • if 条件语句的格式1如下所示:
if(条件){
   执行语句1;
   执行语句2;
   ……
}
  • 使用if对一元二次方程的根的三种情况分别进行处理
#include <stdio.h>
#include <math.h>

int main() 
{
	double a, b, c;
	printf("Please input coefficients: a, b, c of quedrapic equition a*x^2+b*x+c=0:\n");
	scanf("%lf %lf %lf", &a, &b, &c);
	printf("a=%.2f, b=%.3f, c=%.4f.\n", a, b, c);
	
	double delta = b*b - 4*a*c;
	
	if(delta > 0)
	{
		double x1 = (-b + sqrt(delta))/(2*a);
		double x2 = (-b - sqrt(delta))/(2*a);
		printf("x1=%f, x2=%f.\n", x1, x2);
		return 0;
	}
	
	if(delta == 0){
		double x12 = -b/(2*a); 
		printf("x1=x2=%f", x12);
		return 0;
	}
	
	printf("No real root");
	return 0;
}

作业要求
作业1:练习使用所有的格式字符(s除外),每个用自定义的随机数写3个示例。每个示例包括输入值,格式字符串和输出。
作业2:课堂笔记
两个作业写在同一个文本文件中,在下周一(03/23) 18:00 前提交。

2020/03/25 第4章 if语句

本次教学采用在线教育,使用软件为QQ群。

课程内容

首先,说了作业抄袭、迟交和不交的问题,然后说明QQ群提问要求。

  • 选择结构程序设计
if(条件表达式){
	表达式1;
	表达式2;
	。。。
}
	# 当只有一条表达式时,花括号可以省略。
	if(条件表达式)
		表达式1;

if: 关键字,表示一个判断结构的开始;
():必需的结构,用于表示条件表达式
条件表达式:能够返回一个真假的表达式, 
    当这个值为0时表示为假,非0值表示为真。
  • 关系表达式: 用于比较两个值(也可以是表达式)的关系
    比如,x > 5, 3*x + 1 < 10 + x
  • 比较运行符共6个: >, >=, ==, <=, <, !=
【示例1#include <stdio.h>
#include <math.h>

int main() 
{
	int x = 6;
	int v1 = x*x*x*x*x;
	int v2 = 5*5*5*5*5*5;
	int result = v1 > v2;
	if(x * x)
		printf("if(1)\n");
	
	return 0;
}
  • 逻辑运算1 表示为 真,0表示为 假
    与运行 && and 与运行 逻辑乘法 (&&),即两者同时成立的运算
------------
   | 0 | 1 |
-------------
 0 | 0 | 0 |
-------------
 1 | 0 | 1 |
-------------

如参加高考时,取x = 高中学历, y = 不小于16岁

if(x && y)
	TakeExam();
  • 或运行 ||
------------
   | 0 | 1 |
-------------
 0 | 0 | 1 |
-------------
 1 | 1 | 1 |
-------------
  • 非运算 ! 取反
!0 -> 1
!1 -> 0

x > 0 && y > 0 与 !(x <= 0 || y <= 0) 是否一样?

x > 0 -> !(x <= 0)
y > 0 -> !(y <= 0)

x > 0 && y > 0 -> !(x <= 0) && !(y <= 0) -> !(x <= 0 || y <= 0) 

a && b -> !(a || b)
a || b -> !a && !b
  • if()结构中的条件表达式,
  两个条件: 
    if(a && b)  // 必需a,b同时为真时才满足条件
    if(a || b)  // 只要a,b中有一个为真就满足条件 
  三个条件:
	if(a && b && c) // 必需a,b,c同时为真时才满足条件
	if(a || b || c) // 只要a,b,c中有一个为真就满足条件 
	if(a && b || c) 
	假设 a=不下雨,b=有时间, c=超市支持在线购物,目标:买东西。
	if(a || b && c) // 先算 b && c 再算其结果与a的或运算。
	&& 的优先级高于 ||,可以理解为先乘除再加减。
	if((a || b) && c) // 先算 a||b,再算其结果和c的与运算。
  • if 的第二种格式
if(条件表达式){
	表达式1;
	表达式2;
	。。。
}else{
	表达式1;
	表达式2;
	。。。
}
  • if 的第三种格式, 也是最一般的格式
if(条件表达式1){
	表达式1;
	表达式2;
	。。。
}else if(条件表达式2){
	表达式1;
	表达式2;
	。。。
}else if(条件表达式3){
	表达式1;
	表达式2;
	。。。
}
...
else{
	表达式1;
	表达式2;
	。。。
}	
//【示例2】
#include <stdio.h>
#include <math.h>

int main() 
{
	int x = 0;
	int y = 0;
	
	scanf("%d %d", &x, &y);
	
	if(x > 0 && y > 0)
		printf("first");
	else if(x < 0 &&  y > 0)
		printf("second");
	else if(x < 0 &&  y < 0)
		printf("third");
	else if(x > 0 &&  y < 0)
		printf("forth"); 
	else if(x == 0 && y == 0)
		printf("original");
	else if(x == 0)
		printf("Y axis");
	else if(y == 0)
		printf("X axis");
	else
		printf("Never reach here.");
	return 0;
}

作业要求
作业1:课堂笔记
作业2:每个同学提1-3个问题,不记名,直接发给学委。
学委统一提交问题(.txt 或 xlsx 均可)+未提问同学名单。
作业3:(不提交)从网上找c语言中逻辑运算的相关资料并学习。

2020/04/01 答疑

本次教学采用在线教育,使用软件为QQ群。
教学内容
对前4章的内容进行答疑。参见群文档:第5次课问题列表.xlsx
作业要求
作业:总结一下已学的C语言的知识。

2020/04/08 第5章 for 循环

本次教学采用在线教育,使用软件为QQ群。
教学内容

  • 关于作业
    1)提早交,不要等到最后时刻,意外总可能发生,态度问题
    2)取最高的12次成绩的平均分作为作业平时成绩(2次没计,2次试行)

循环

  1. 基本语法
    for(exp1;exp2;exp3)
    statement;
    exp1: 初始化,用于对变量进行初始化;
    exp2: 循环的判断条件,满足exp2则循环继续,不满足则跳出循环;
    exp3: 每次循环后,对循环控制变量的操作(如i++)

  2. 执行过程:
    exp1 -> [exp2 -> statement -> exp3] -> [exp2 -> exp1 …]

  3. 注意:
    如果只有1条语句,可以不写大括号,如果有多条,则大括号一定要写。

Demo1: for 循环示例

#include <stdio.h>
int main(){
	int i = 0;
	int result = 0;
	for( ; i <= 5; i++)
		printf("i = %d.\n", i);
	printf("finally, i = %d.\n", i);
}

Demo2:求和 ∑ i = 1 100 i \sum_{i=1}^{100} i i=1100i

#include <stdio.h>
// 1 + 2 + ... + 100
int main(){
	int end = 1000, i = 5;
	double result = 0;
	for(i = 0, end = 100 ; ; ){
		if(i > end)
			break;
		result += i;  // result = result + i
		result *= 1.1;
		result *= 0.9;
		i++;
		//printf("i = %d, result = %d.\n", i, result);
	}
	printf("The sum of 1 to %d is: %f.\n", end, result);
}

Demo3: 取余运行符 %

#include <stdio.h>
int main(){	
	printf("Please enter v1 and v2: ");
	int v1, v2;
	scanf("%d,%d", &v1, &v2);
	printf("The quotion of %d to %d is %d.\n", v1, v2, v1 / v2);
	printf("The reminder of %d to %d is %d.\n", v1, v2, v1 % v2);
}

Demo 4:求100-200中的不能被3整除的数。

#include <stdio.h>
int main(){
	int start = 100, end = 200, i = 0;
	for( i = start ; i <= end; i++){
		if(i % 2 != 0)
			printf("i = %d.\n", i);
	}
}

Demo 5: 利用公式 π / 4 = 1 − 1 / 3 + 1 / 5 − 1 / 7 + . . . + ( − 1 ) ( i − 1 ) / ( 2 ∗ i − 1 ) , i = 1 , 2 , . . . \pi/4 = 1 - 1/3 + 1/5 - 1/7 + ... + (-1)^{(i-1)}/(2*i-1), i = 1, 2, ... π/4=11/3+1/51/7+...+(1)(i1)/(2i1),i=1,2,...,求 π \pi π

// 某一项的绝对值小于10-6为止,即当 i = n 时, 满足 1/(2*n-1) < 1E-6
#include <stdio.h>

// pi/4 = 1 - 1/3 + 1/5 - 1/7 + ... + (-1)^(i-1)/(2*i-1), i = 1, 2, ...
int main(){	
	double pi = 0;
	int i;
	int sign = 1;
	for( i = 1; 1 / (2.0 * i - 1) >= 0.0000001; i++, sign = -sign){
		pi += sign / (2.0 * i - 1);
	}
	printf("pi = %.8f.\n", pi * 4);	
}

作业要求
作业1:课堂笔记
作业2:写一个程序判断输入的正整数n是否为素数。

2020/04/15 第5章 for 循环习题5道

本次教学采用在线教育,使用软件为QQ群。
教学内容

// 1.求100以内所有的奇(偶)数
int main(){
	int i;
	for(i = 1; i <= 100; i++)
		if(i % 2 == 1)
			printf("%d is odd\n", i);
		else
			printf("%d is even\n", i);
	
	return 0;
}


// 2. 求 n! (n! = 1 * 2 * 3 * ... * n)
#include<stdio.h>

int main(){
	int i, n, result = 1;

	printf("Please input n: ");
	scanf("%d", &n);

	for(i = 1; i <= n; i++){
		result *= i;
	}
	
	printf("result = %d\n", result);
	return 0;
}


// 3.求1到100中数字5出现的次数,关键:如何判断i个位是5?
// solution 1:
#include<stdio.h>

int main(){
	int i, n = 100, count = 0, target = 5;
 
	for(i = 1; i <= n; i++){
		if(i % 10 == 5){
			count++;
		}
		if(i / 10 == 5){
			count++;
		}
	}
	
	printf("count = %d\n", count);
	return 0;
}

// solution 2:
#include<stdio.h>
int main(){
	int i, n = 100, count = 0, target = 5;
 
	for(i = 1; i <= n; i++){
		// printf("%d, %d, %d\n", i, (i / 10 == target), (i % 10 == target));
		count += (i % 10 == target) + (i / 10 == target);
	}
	
	printf("count = %d\n", count);
	return 0;
}

// 4. 求100-999之间所有的回文数,个位数字与百位数字相同。
// solution 1:
#include<stdio.h>

int main(){
	int i, j, k;
	// ijk, i: 3rd-digit,j:2nd-digit,k: 1st-digit
	for(i = 1; i <= 9; i++)         // hour hand
		for(j = 0; j <= 9; j++)     // minute hand
			for(k = 1; k <= 9; k++) // second hand
				if(i == k)
					printf("%d\n", i * 100 + j * 10 + k);	
	return 0;
}

// solution 2:
#include<stdio.h>

int main(){
	int i;
	for(i = 100; i <= 999; i++)
		if(i % 10 == i / 100)
			printf("%d\n", i);
	return 0;
}

// 5. 求定积分 sin x / x 在 [1,2]上的值。
#include<stdio.h>
#include<math.h>

int main(){
	int i;
	double x1 = 1;
	double x2 = 2;
	int count = 10;
	double delta = (x2 - x1) / count;
	double result = 0;
	
	for(i = 0; i < count; i++){
//		double xi = x1 + i * delta;
//		result += delta * sin(xi) / xi;
		result += delta * (x1 + i * delta);
	}
	
	printf("result = %f\n", result);
	
	return 0;
}

作业要求
作业1: 每位同学根据自己的编号计算相应区间的素数:
编号:区间
01: [1010000, 1020000) // 即101万-102万,不包括102万,以下类似
02: [1020000, 1030000)
03: [1030000, 1040000)

68: [1680000, 1690000)
69: [1690000, 1700000)
70: [1700000, 1710000)
作业要求给出实现代码和执行结果,注意,提交的作业包括执行结果,包括执行结果,包括执行结果,同时每个同学由于区间不同,返回的结果肯定是不一样的。

作业2:阅读C教程(https://www.runoob.com/cprogramming/c-tutorial.html)中的[C 程序结构, C 基本语法, C 数据类型, C 变量, C 常量, C 运算符, C 判断, C 循环]这几个章节的内容,并写阅读笔记。

2020/04/22 第6章 数组

本次教学采用在线教育,使用软件为QQ群。
课堂教学
本次课程主要内容

  1. 为什么要使用数组
    当需要表示的数据很多时,逐一定义变量效率非常低下,无法满足需求。

  2. 数组的定义
    datetype variable_name[count]; // 定义格式或者叫语法,术语:syntex
    比如 int score[70]; // 定义一个长度为70的int型数组
    以上代码一次性定义了70个int型的变量,注意:一次性定义了70个变量!
    double vs[100]; // 定义了100个浮点double类型的变量
    数组的优势:可以一次性地批量地定义不同类型的多个变量

  3. 数组元素的访问
    访问数组中指定的第i的元素的值:variable_name[index]
    比如,score[0] 表示数组中第0个元素,
    所以,我们可以使用 score[0], score[1], …, score[69] 访问score数组第1至第70个元素。
    类似地,我们可以使用 vs[0], vs[1], …, vs[99] 访问vs数据的第1至第100个元素。
    特别注意:数组索引(也叫下标),在C语言中,从0开始,所以索引的取值范围为 [0, count),
    比如对于 score, 下标取值范围为 [0, 70),对于 vs,为 [0, 100)
    我们还可以使用变量作为下标,来访问数据中的元素,如:
    score[i] = 0; // 比如,当i=0时, score[i] 等价于 score[0],以此类推
    我们还可以使用更复杂的表达式来访问数组中的元素,比如:
    score[2*i+10] = 5; // 当 i = 3时,我们访问的数组元素是 score[16]

  4. 数组的遍历
    补充:C语言中的变量在赋值前,其值为随机数。
    使用for循环即可。

  5. 数组的本质
    放在一段连续的内存空间中的多个同类型的变量。
    比如 score|0|1|2|…|n-2|n-1 | 表示分隔符

  6. 示例1:求最大/小值

#include <stdio.h>
int main()
{
	int i, score[70]; // declare
	int n = 60;
	
	// initialize socres at random.
	for(i = 0; i < 70; i++)
		score[i] = i * i * i % n + 41; 

	// find max/min student id.
	int idmax = 0;
	int idmin = 0;
	for(i = 1; i < 70; i++){
		if(score[i] > score[idmax])
			idmax = i;
		
		if(score[i] < score[idmin])
			idmin = i;
	}
	
	for(i = 0; i < 70; i++)
		printf("score[%d] = %d.\n", i, score[i]);
	
	printf("Max student id = %d, min student id = %d.\n", idmax, idmin);
	return 0;
}

示例2:求和,求平均值

#include <stdio.h>
int main()
{
	int i, score[70]; // declare
	int n = 60;
	
	// initialize socres at random.
	for(i = 0; i < 70; i++)
		score[i] = i * i * i % n + 41; 

	// find sum of score
	int sum = 0;
	for(i = 0; i < 70; i++)
		sum += score[i];
	
	// find the average of score
	double average = sum / 70.0; // 70.0 表示是浮点数,以保证结果保留小数部分
	
	printf("The sum is %d, the average = %.2f.\n", sum, average);
	return 0;
}

作业要求
作业1:课堂笔记
作业2:给定以下代码,其中score表示70个同学的成绩,统计[0, 60), [60, 70), [70, 80),
[80, 90), [90, 100]各分段的人数。

#include <stdio.h>
int main()
{
	int i, score[70]; // declare
	int n = 60;
	
	// initialize socres at random.
	for(i = 0; i < 70; i++)
		score[i] = i * i * i % n + 41; 

	// Todo: add your code here
	
}		

2020/04/29 第6章 嵌套循环

本次教学采用在线教育,使用软件为QQ群。
课堂教学
视频教学:
1)VC6.0安装
2)MinGW安装
3)选择排序
4)冒泡排序
作业要求
作业:完成两种排序算法

2020/05/06 知识补充

本次教学采用在线教育,使用软件为QQ群。
课堂教学
本次课程内容:

  1. switch 的用法,示例:
#include<stdio.h>

int main(){
	int day;
	printf("Please input a number: ");
	scanf("%d", &day);
	
	printf("---------- By if statement ----------\n");
	if(day == 0)
		printf("Sunday");
	else if (day == 1)
		printf("Monday");
	else if (day == 2)
		printf("Tuesday");
	else if (day == 3)
		printf("Wednesday");
	else if (day == 4)
		printf("Thurday");
	else if (day == 5)
		printf("Friday");
	else if (day == 6)
		printf("Saturday");
	else
		printf("Wrong number");

	printf("\n---------- By switch statement ----------\n");	
	switch(day){
		case 0: printf("Sunday");break;
		case 1: printf("Monday");break;
		case 2: printf("Tuesday");break;
		case 3: printf("Wednesday");break;
		case 4: printf("Thurday");break;
		case 5: printf("Friday");break;
		case 6: printf("Saturday");break;
		default: printf("Wrong number");break;
	}
		
	return 0;
}

2)算法简介
见视频,参考阅读:https://blog.csdn.net/weixin_43145361/article/details/96149661

3)while 循环示例

#include<stdio.h>

int main(){
	
	int n;
	printf("Please input n: ");
	scanf("%d", &n);
	
	
	printf("\n--------------- for loop ---------------\n");
	int result = 1, n_1 = 1, n_2  = 1;
	for(int i = 1; i <= n; i++){
		if(i > 2){
			int t = n_1 + n_2;
			n_2 = n_1;
			n_1 = t;
			result = t;
		}
		printf("%d, ", result);
	}
	
	
	
	printf("\n--------------- while loop ---------------\n");
	int i = 0;
	result = 1;
	n_1 = 1;
	n_2  = 1;
	while(i ++ < n){
		if(i > 2){
			int t = n_1 + n_2;
			n_2 = n_1;
			n_1 = t;
			result = t;
		}
		printf("%d, ", result);		
	}
	

	return 0;
}

作业要求
作业:课堂笔记

2020/05/13 第7章 函数

本次教学采用在线教育,使用软件为QQ群。
课堂教学
使用郝斌的视频,讲解了函数是什么,使用函数的目的、分类和形参等内容。
作业要求
作业1:观看素数视频
作业2:课堂笔记

2020/05/20 第8章 指针

本次教学采用在线教育,使用软件为QQ群。
课堂教学
看视频,学习指针。
作业要求
作业:课堂笔记

2020/05/27 第9章 结构体和共同体

本次教学采用在线教育,使用软件为QQ群。
课堂教学
对看以下视频:https://www.bilibili.com/video/BV1Ps411U7tS?p=53
作业要求
作业:课堂笔记

2020/06/03 第10章 文件操作

本次教学采用在线教育,使用软件为QQ群。
课堂教学
对看以下视频:
文件操作1:https://www.bilibili.com/video/BV1Ps411U7tS?p=59
文件操作2:https://www.bilibili.com/video/BV1Ps411U7tS?p=60
DOS基本操作:https://www.bilibili.com/video/BV1UE411b7Mh?from=search&seid=14462529927031340375
作业要求
作业:课堂笔记

2020/06/20 模板

本次教学采用在线教育,使用软件为QQ群。
课堂教学
模板
作业要求
作业:课堂笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值