目录

  • 1 课程导学
    • 1.1 课程思政总体设计
    • 1.2 课程学习指南
    • 1.3 课程思维导图
  • 2 项目一 认识程序设计与C语言
    • 2.1 学习指导
    • 2.2 课程思政
      • 2.2.1 课程思政教学设计表
      • 2.2.2 融入教学思政案例:千里之行,始于足下
      • 2.2.3 扩展案例:不积跬步,无以至千里
    • 2.3 任务1 认识程序和程序设计
    • 2.4 任务2 认识C语言
      • 2.4.1 C语言产生与发展
      • 2.4.2 C语言的特点
    • 2.5 任务3 C程序开发与运行
      • 2.5.1 C程序组成
      • 2.5.2 C程序开发
    • 2.6 综合实践一 学生成绩管理系统界面设计
    • 2.7 章节测验
  • 3 项目二 顺序结构程序设计
    • 3.1 学习指导
    • 3.2 课程思政
      • 3.2.1 课程思政教学设计表
      • 3.2.2 融入教学思政案例:不以规矩,不能成方圆
      • 3.2.3 扩展案例:培养严谨的习惯
    • 3.3 任务1 认识常量和变量
    • 3.4 任务2 数据表现形式及应用
      • 3.4.1 整型数据表现形式及应用
      • 3.4.2 实型数据表现形式及应用
      • 3.4.3 字符型数据表现形式及应用
    • 3.5 任务3 运算符号及应用
      • 3.5.1 算术运算符及应用
      • 3.5.2 赋值和复合赋值运算符
      • 3.5.3 逗号及其他运算符
    • 3.6 任务4 数据输入与输出
      • 3.6.1 单个字符输入/输出函数
      • 3.6.2 格式化输入函数
      • 3.6.3 格式化输出函数
    • 3.7 任务5 顺序结构应用举例
    • 3.8 综合实践二 学生成绩信息描述与统计
    • 3.9 章节测验
  • 4 项目三 选择结构程序设计
    • 4.1 学习指导
    • 4.2 课程思政
      • 4.2.1 课程思政教学设计表
      • 4.2.2 思政案例:人生也是一道道选择题
    • 4.3 任务1 认识选择结构
    • 4.4 任务2 if语句应用
      • 4.4.1 if简单语句
      • 4.4.2 if标准语句和条件运算符
      • 4.4.3 if多分支语句
      • 4.4.4 if嵌套语句
    • 4.5 任务3 switch语句应用
    • 4.6 任务4 选择结构应用举例
    • 4.7 综合实践三 学生成绩管理系统菜单选择设计
    • 4.8 章节测验
  • 5 项目四 循环结构程序设计
    • 5.1 学习指导
    • 5.2 课程思政
      • 5.2.1 课程思政教学设计表
      • 5.2.2 融入教学思政案例:愚公移山
    • 5.3 任务1 认识循环结构
    • 5.4 任务2 while和do-while语句应用
      • 5.4.1 while语句
      • 5.4.2 do-while语句
    • 5.5 任务3 for语句应用
    • 5.6 任务4 break和continue语句应用
      • 5.6.1 break语句
      • 5.6.2 continue语句
    • 5.7 任务5 循环嵌套应用
    • 5.8 任务6 循环结构应用举例
    • 5.9 综合实践四 学生成绩管理系统菜单循环选择设计
    • 5.10 章节测验
  • 6 项目五 数组应用
    • 6.1 学习指导
    • 6.2 课程思政
      • 6.2.1 课程思政教学设计表
      • 6.2.2 思政案例:关于守序
      • 6.2.3 思政案例:关于同级能量汇聚理论
      • 6.2.4 思政案例:字符串与交友
    • 6.3 任务1 认识数组
    • 6.4 任务2 一维数组定义及应用
      • 6.4.1 一维数组定义与初始化
      • 6.4.2 一维数组应用
    • 6.5 任务3 二维数组定义及应用
      • 6.5.1 二维数组定义与初始化
      • 6.5.2 二维数组应用
    • 6.6 任务4 字符数组定义及应用
      • 6.6.1 字符数组定义与初始化
      • 6.6.2 字符数组输入与输出函数
      • 6.6.3 字符串处理函数
    • 6.7 任务5 数组应用举例
    • 6.8 综合实践五 学生多门成绩存储与处理设计
    • 6.9 章节测验
  • 7 项目六 函数应用
    • 7.1 学习指导
    • 7.2 课程思政
      • 7.2.1 课程思政教学设计表
      • 7.2.2 融入教学思政案例:归纳借鉴,分而治之,各取所长,团结协作
      • 7.2.3 扩展案例:建立自己人生中的各种“函数库”
      • 7.2.4 扩展案例:递归函数与榜样
    • 7.3 任务1 认识函数
    • 7.4 任务2 函数调用
    • 7.5 任务3 函数嵌套调用和递归调用
      • 7.5.1 函数嵌套调用
      • 7.5.2 函数递归调用
    • 7.6 任务4 数组名作为函数参数
    • 7.7 任务5 变量作用域和变量存储类别
    • 7.8 任务6 函数应用举例
    • 7.9 综合实践六 学生成绩管理系统功能模块化设计
    • 7.10 章节测验
  • 8 项目七 指针应用
    • 8.1 学习指导
    • 8.2 课程思政
      • 8.2.1 课程思政教学设计表
      • 8.2.2 思政案例:细节决定成败
    • 8.3 任务1 认识指针
    • 8.4 任务2 变量与指针应用
    • 8.5 任务3 数组与指针应用
    • 8.6 任务4 字符串与指针应用
    • 8.7 任务5 其他指针应用
    • 8.8 任务6 指针应用举例
    • 8.9 综合实践七 学生成绩管理系统指针应用设计
    • 8.10 章节测验
  • 9 项目八 自定义数据类型应用
    • 9.1 学习指导
    • 9.2 课程思政
      • 9.2.1 课程思政教学设计表
      • 9.2.2 思政案例:结构体与规范
    • 9.3 任务1 结构体类型定义与应用
      • 9.3.1 结构体类型定义
      • 9.3.2 结构体变量定义及应用
      • 9.3.3 结构体数组定义及应用
      • 9.3.4 结构体指针定义及应用
    • 9.4 任务2 共用体类型定义及应用
    • 9.5 任务3 枚举类型定义及应用
    • 9.6 任务4 typedef用法
    • 9.7 任务5 结构体应用举例
    • 9.8 综合实践八 学生成绩管理系统结构体应用设计
    • 9.9 章节测验
  • 10 项目九 文件应用
    • 10.1 学习指导
    • 10.2 课程思政
      • 10.2.1 课程思政教学设计表
      • 10.2.2 思政案例:文件管理与合作
    • 10.3 任务1 认识文件与文件指针
    • 10.4 任务2 文件打开与关闭
    • 10.5 任务3 文件读写函数应用
    • 10.6 任务4 文件位置定位与错误检测函数用法
    • 10.7 任务5 文件应用举例
    • 10.8 综合实践九 成绩管理系统文件应用
    • 10.9 章节测验
  • 11 试卷
    • 11.1 试卷一
    • 11.2 试卷二
    • 11.3 试卷三
    • 11.4 试卷四
章节测验

【习题】

一、选择题

1.当声明一个结构体变量时系统分配给它的字节数是( )。

A.各成员所需字节数的总和。 B.结构中第一个成员所需的字节数。

C.成员中占字节数最大者所需的容量。

D.结构体最后一个成员所占字节数

2.下列有关结构体和共用体,叙述正确的是( )。

A.共用体变量每一时刻只有一个成员起作用

B.共用体变量所占用的存储单元是各个成员所需存储空间之和

C.结构体变量所占用的存储单元取决于占用存储单元最大的成员

D.共用体成员不能是结构体

3.若有以下定义:

struct example{

int x;

int y;}v1;

则正确引用或定义是( )。

A.example.x=10; B.example v2.x=10;

C.struct v2;v2.x=10; D.struct example v2={10};

4.下列对结构体类型变量定义不正确的是( )。

A. struct teacher{ B. struct{

int num; int num;

int age; int age;

}teach1; }teach1,teach2;

C. struct{ D. struct teacher{

int num; int num;

int age; int age;

}teacher; };

struct teacher teach1; struct teacher teach1;

5. 根据下面的定义,能打印出字母 M 的语句是( )。

struct person {

char name[9]; int age;};

struct person class[10]={"John",17, "Paul",19,

"Mary",18, "Adam",16};

A.printf("%c\n",class[3].name);

B.printf("%c\n",class[3].name[1]);

C.printf("%c\n",class[2].name[0]);

D.printf("%c\n",class[2].name[1]);

6.若有以下定义,则程序输出结果是( )。

struct STU{

char name[20],sex[8];

int age;};

main(){

struct STU student={“may”,“female”,18};

printf(“%d\n”,sizeof(student));}

A.11 B.32 C.20 D28

7.若有以下定义:

struct STU{

char name[15],sex;

struct{

int math,chinese,english;}SCORE;

}K;

则下列赋值语句中正确的是()

A.K.math=90; B.K.sex=”M”;

C.K.SCORE.chinese=95; D.SCORE.english=60;

8.以下程序输出的结果是()

struct str{

char name[15],sex;

int age;};

main(){

struct str tea[3]={“lcl”,’f’,26,“lp”,’m’,40,

“cyg”,’f’,28};

printf(“%s,%c,%d\n”,tea[1].name,tea[1].sex,tea[1].age);}

A.lcl,f,26 B.lp,m,40 C.cyg,f,28 D.lp,m,28

9.若有定义和语句,则以下选项中语句正确的是( )。

union data{

int i;

char c;

float f;}x;

int y;

A.x=10.5; B.x.c=101; C.y=x; D.printf(“%d\n”,x);

10.运行以下程序输出结果是( )。

union un{

short b;

char c[6];};

main(){

union un u;

printf(“%d %d”,sizeof(u),sizeof(u.c));}

A.8 8 B.14 8 C.10 6 D.6 6

11.以下叙述中错误的是( )。

A.可以通过 typedef 增加新的类型。

B.可以用 typedef 将已存在的类型用一个新的名字来代表。

C.用 typedef 定义新的类型名后,原有类型名仍有效。

D.用 typedef 可以为各种类型起别名,但不能为变量起别名。

12.有如下说明

typedef struct ST{

long a;int b;char c[2];} NEW;

则下面叙述中正确的是( )。

A.以上的说明形式非法 B.ST 是一个结构体类型

C.NEW 是一个结构体类型 D.NEW 是一个结构体变量

二、填空题

1.运算符“.”称作 运算符,优先级为 ,运算顺

序 。

2.运算符“->”称作 运算符,优先级为 ,运算顺

序 。

3.无论是结构体变量,还是共用体变量都不能对其变量直接进行输入

和输出,只能对 进行输入和输出操作。

4.枚举变量的赋值只能取枚举类型定义中的 。

5.用 typedef 可以 ,但是不能用来定义新类型。

三、编程题

1.编写程序定义一个结构体类型,包含信息:学号、姓名和成绩,定

义两个结构体变量,输入两条记录并输出。

2. 编写程序定义一个结构体类型,包含信息:学号、姓名和成绩,定

义包含 5 个元素的结构体数组,输入 5 条记录并输出。

3.在上面题目基础上,编写输入函数、输出函数和排序函数(按照成

绩从到到低)。