文章目录
- 课程信息
- 教学纪律
- 成绩评定
- 授课记录
- 2020/02/26 第1章 C语言入门
- 2020/03/04 第2章 变量的定义
- 2020/03/11 第2章 基本数据类型
- 2020/03/18 第3章 C的输入输出与if语句入门
- 2020/03/25 第4章 if语句
- 2020/04/01 答疑
- 2020/04/08 第5章 for 循环
- 2020/04/15 第5章 for 循环习题5道
- 2020/04/22 第6章 数组
- 2020/04/29 第6章 嵌套循环
- 2020/05/06 知识补充
- 2020/05/13 第7章 函数
- 2020/05/20 第8章 指针
- 2020/05/27 第9章 结构体和共同体
- 2020/06/03 第10章 文件操作
- 2020/06/20 模板
课程信息
学期: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%计入总成绩。
平时作业成绩由内容分和原创分两部分组成,均由程序评判。- 内容分(5分)
内容分包括知识点和长度分两部分组成。
作业长度:3分,根据文件长度分为 [0, 200), [200, 400), [400, 600), [600, ∞) 四档,对应分数: 0,1,2,3。
知识点:2分,每次取3-5个关键词作为知识点,每包括1个加1分,最多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。
- 注意事项
- 重复度超过50%本次作业按-5分处理。
- 每次进行20%的内工随机抽样进行人工检测,如果发现乱写的本次作业0分,同时对以前作业进行检测,发现同样清零。
- 作业不提交按0分处理。
- 内容分(5分)
-
出勤分(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群。
课程内容
- 启动控制台
- Win+R 打开“命令”窗口
- 输入 “cmd” 回车
-
使用控制台进行编译:
gcc -g ch3.c -o ch3.exe
-
C语言的程序如何执行?
- 编写源代码:建立 ch3.c
- 使用编译器进行编译: ch3.c -> ch3.exe
- 执行,在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 输入函数注意事项
- 使用%d输入整型,%f 浮点float, %lf 浮点 double
- 待赋值的变量前要加& (取地址符)
- 如果是多变量,那么中间要加分隔符,可以是空格或逗号。
在输入时,也要遵守相同的分隔符,比如:
scanf("%lf,%lf,%lf", &a, &b, &c); 对应 1,2,3
printf 输出函数注意事项
- 使用%d表示整型,%f 浮点
- 对于%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次试行)
循环
-
基本语法
for(exp1;exp2;exp3)
statement;
exp1: 初始化,用于对变量进行初始化;
exp2: 循环的判断条件,满足exp2则循环继续,不满足则跳出循环;
exp3: 每次循环后,对循环控制变量的操作(如i++) -
执行过程:
exp1 -> [exp2 -> statement -> exp3] -> [exp2 -> exp1 …] -
注意:
如果只有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=1−1/3+1/5−1/7+...+(−1)(i−1)/(2∗i−1),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群。
课堂教学
本次课程主要内容
-
为什么要使用数组
当需要表示的数据很多时,逐一定义变量效率非常低下,无法满足需求。 -
数组的定义
datetype variable_name[count]; // 定义格式或者叫语法,术语:syntex
比如 int score[70]; // 定义一个长度为70的int型数组
以上代码一次性定义了70个int型的变量,注意:一次性定义了70个变量!
double vs[100]; // 定义了100个浮点double类型的变量
数组的优势:可以一次性地批量地定义不同类型的多个变量 -
数组元素的访问
访问数组中指定的第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] -
数组的遍历
补充:C语言中的变量在赋值前,其值为随机数。
使用for循环即可。 -
数组的本质
放在一段连续的内存空间中的多个同类型的变量。
比如 score|0|1|2|…|n-2|n-1|
表示分隔符 -
示例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群。
课堂教学
本次课程内容:
- 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群。
课堂教学
模板
作业要求
作业:课堂笔记