C程序设计实验指导书.docx
- 文档编号:10649463
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:41
- 大小:46.53KB
C程序设计实验指导书.docx
《C程序设计实验指导书.docx》由会员分享,可在线阅读,更多相关《C程序设计实验指导书.docx(41页珍藏版)》请在冰豆网上搜索。
C程序设计实验指导书
《程序设计》教学大纲
一、课程基本信息
课程编号:
11114620
课程中文名称:
程序设计
课程英文名称:
Clanguageprogramming
课程类别:
专业必修课
适用专业:
计科学院各专业
开课学期:
秋
总学时:
78学时(其中理论课52学时,实验26学时。
)
总学分:
4.5
预修课程(编号):
计算机基础及办公自动化|软件技术及数据库|计算机导论(任选一门)
课程简介:
计算机高级语言是计算机科学与工程中迅速发展的技术之一,也是计算机应用中一个空前活跃的领域。
本课程主要通过适当的示例,系统、详细地讲解程序设计的基础知识、C程序设计语言的基本语法、编程方法和常用算法。
建议教材:
谭浩强.C程序设计.(第三版).北京:
清华大学出版社,2005
主要参考书:
[1]徐孝凯.C++语言基础教程.北京:
清华大学出版社,2001
[2] 郑阿奇.VisualC++实用教程.北京:
电子工业出版社,2000
二、课程教育目标
本课程的教学目的在于培养学生学会分析问题的方法和基本问题的解决能力,初步了解面向对象程序设计方法、掌握C语言的编程基础和基本编程技能,并能够运用TurboC集成开发工具编写一些小程序,为以后继续学习打下基础。
具体目标如下:
1.了解C语言出现的历史背景;掌握C语言的特点;知晓C语言基本上机步骤。
2.掌握C的数据类型,能够正确书写C表达式。
3.掌握三种基本结构,会编写相关程序。
4.掌握数组的概念及应用。
5.掌握函数的使用及编写方法。
6.掌握指针的概念、定义、和使用方法。
7.掌握结构体的基本概念及使用方法,了解共用体的概念及使用方法。
8.掌握文件的概念,会编程对文件进行读写操作。
9.理解C程序中的位运算功能、预处理命令。
三、理论教学内容与要求(含学时分配)
第一章C语言概述(2学时)
1、教学目的与要求:
通过教学使学生了解C语言的背景;掌握C语言程序的结构;领会C语言程序设计的风格。
2、主要教学内容:
C语言的历史背景;C语言的特点;C语言源程序的结构。
3、教学重点:
C程序结构。
4、思考与练习:
P121.2,1.3,1.6
第二章程序的灵魂——算法(2学时)
1、教学目的与要求:
通过教学使学生掌握算法的基本概念与特征;掌握结构化程序设计的基本概念。
2、主要教学内容:
算法的概念;简单算法举例;算法的特性;算法的表示;结构化程序设计方法。
3、教学重点:
算法的概念、N-S图、常用算法思想。
4、思考与练习:
P372.1,2.2,2.3,2.7。
第三章C语言的数据类型、运算符、表达式(4学时)
1、教学目的与要求:
通过教学使学生了解基本类型及其常量的表示法;掌握变量的定义及初始化方法;掌握运算符与表达式的概念;领会C语言的自动类型转换和强制类型转、左值和赋值的概念。
2、主要教学内容:
C的数据类型;常量与变量;整形数据;实型数据;字符型数据;变量赋初值;各类数据型数据间的混合运算;算术运算符和算术表达式;赋值运算符和赋值表达式;逗号运算符和逗号表达式。
3、教学重点:
常用数据类型、常用运算符、数学公式转化为C语言表达式的基本能力。
4、思考与练习:
P653.2,3.6,3.9,3.10,3.1
第四章 最简单的C程序设计(3学时)
1、教学目的与要求:
通过教学与实验使学生了解C语句的概念及种类;掌握C语言常用的输入/出方式。
2、主要教学内容:
C语句概述;赋值语句;字符数据的输入与输出;格式输入与输出;顺序结构程序设计举例。
3、教学重点:
C语句的种类、赋值语句、数据的输入输出及输入输出中常用的控制格式。
4、思考与练习:
P844.2,4.4,4.6,4.8,4.10
第五章 选择结构程序设计(4学时)
1、教学目的与要求:
通过教学使与实验学生熟练掌握if…else的三种语法;领会switch与break语句的作用。
2、主要教学内容:
关系运算符与关系表达式;逻辑运算符与逻辑表达式;if语句;switch语句。
3、教学重点:
关系运算符与逻辑运算符及其组成的具有逻辑值的表达式、二条分支语句的格式及基本应用。
4、思考与练习:
P1045.1,5.2,5.5,5.9
第六章 循环控制(4学时)
1、教学目的与要求:
通过教学与实验使学生领会程序设计中构成循环的方法;掌握for、while、do-while语句的用法;了解break、continue在循环语句中的作用。
2、主要教学内容:
goto语句构成循环;while语句;do-while语句;for语句;循环的嵌套;break与continue语句
3、教学重点:
C构成循环的四种方法,尤其是后三种方法、break与continue语句的基本作用。
4、思考与练习:
P1206.1,6.4,6.8,6.14
第七章 数组(6学时)
1、教学目的与要求:
通过教学与实验使学生了解一维数组、二维数组的基本概念;掌握数组类型变量的定义与引用;掌握数组元素的引用。
2、主要教学内容:
一维数组的定义与引用;二维数组的定义与引用;字符数组。
3、教学重点:
一维数组、二维数组的定义与引用;字符数组的定义与引用、常用字符串处理函数及字符处理函数;数组的应用(习题课)。
4、思考与练习:
P1417.1,7.3,7.6,7.11
第八章 函数(8学时)
1、教学目的与要求:
通过教学与实验使学生掌握函数的定义与调用;掌握函数参数的传递方式;领会变量存储类型的概念及各种存储类型变量的生存期和有效范围;领会函数的嵌套调用与递归调用;了解带参数的main函数。
2、主要教学内容:
函数的定义;函数的参数和函数的值;函数的调用;函数的嵌套调用;函数的递归调用;数组作为函数参数;变量作用域;变量存储类别。
3、教学重点:
函数定义、函数调用、函数声明等基本概念;函数的嵌套调用与递归调用;数组作为函数的参数、变量的存储类别与作用域。
4、思考与练习:
P1868.1,8.3,8.4,8.10,8.16,8.18
第九章 编译预处理(1学时)
1、教学目的与要求:
通过教学与实验使学生了解预处理的概念及特点;掌握有参宏与无参宏的定义及使用;领会文件包含的使用及效果。
2、主要教学内容:
宏定义;“文件包含”处理。
3、教学重点:
有参宏、无参宏的定义与应用;文件包含的基本概念。
4、思考与练习:
P1999.3,9.8
第十章 指针(8学时)
1、教学目的与要求:
了解指针与地址的概念;掌握指针变量的定义、初始化及指针的运算;掌握指针与数组、指针数组、二级指针等知识;了解指针与函数的概念;掌握指针作为函数参数的应用。
2、主要教学内容:
指针与地址的概念;变量的指针和指针变量的指针变量;数组的指针与指向数组的指针变量;字符串的指针与指向字符串的指针变量;指针与函数;指针数组;二级指针。
3、教学重点:
指针与地址的基本概念、指针与变量的关系;指针与数组;指针与字符串、指针数组与二级指针;指针的应用(习题课)。
4、思考与练习:
P25810.1,10.4,10.6,10.11,10.15,10.18
第十一章 结构体与共用体(6学时)
1、教学目的与要求:
通过教学与实验掌握结构体和共用体类型的说明、结构体和共用体变量的定义及初始化方法;掌握结构体与共用体变量成员的引用;领会存储动态分配和释放;领会链表的基本概念和基本操作;领会枚举类型变量的定义;了解typedef的作用。
2、主要教学内容:
结构体类型的说明及结构体类型变量的定义;结构体变量的引用;结构体变量的初始化;结构体数组;指针与结构体数组;链表;共用体;枚举类型;typedef。
3、教学重点:
结构体的基本概念、结构类型及变量的定义、结构数组;用指针处理链表;共用体及枚举类型的基本概念、typedef的基本概念。
4、思考与练习:
P29611.1,11.4,11.5,11.6,11.9
第十三章 文件(4学时)
1、教学目的与要求:
通过教学与实验使学生掌握标准设备输入/输出函数的使用;掌握缓冲文件系统的使用。
2、主要教学内容:
文件类型指针;文件的打开与关闭;文件的读写。
3、教学重点:
文件的基本概念;文件的打开、关闭、常用读写方法
4、思考与练习:
P32713.1,13.4,13.6,13.10
四.实验教学内容与要求
1.C程序的运行环境和运行C程序的方法(2学时)
C语言集成环境中编辑、修改、调试、运行程序。
2.数据类型、运算符和表达式(2学时)
掌握C语言数据类型,熟悉变量的定义和赋值的方法;学会使用C的有关算术运算符;进一步熟悉C程序的编辑、编译、连接和运行过程。
3.最简单的C程序设计(2学时)
掌握赋值语句和各种类型数据的输入输出的方法,能正确使用各种格式转换符。
4.逻辑结构程序设计(2学时)
学会正确使用逻辑运算符和逻辑表达式,熟练掌握if语句和switch语句,熟悉程序的调试方法。
5.循环控制(2学时)
熟悉并掌握用while语句,do-while语句和for语句实现循环的方法;掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等);进一步学习调试程序。
6.数组(2学时)
数组的义、赋值和输入输出的方法;掌握字符数组和字符串函数的使用;掌握与数组有关的算法(特别是排序算法)。
7.函数(4学时)
掌握定义函数的方法;掌握函数实参与形参的对应关系以及“值传递”的方式;掌握函数的嵌套调用和递归调用的方法;掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。
8.编译预处理(2学时)
掌握宏定义的方法;掌握文件包含处理方法;掌握条件编译的方法。
9.指针(4学时)
掌握指针的概念,会定义和使用指针变量;正确使用数组的指针和指向数组的指针变量;能正确使用字符串的指针和指向字符串的指针变量;能正确使用指向函数的指针变量;了解指向指针的指针的概念及其使用方法。
10.结构体和共用体(2学时)
掌握结构体类型变量的定义和使用;掌握结构体类型数组的概念和使用;掌握链表的概念,初步学会对链表进行操作;掌握共用体的概念与使用。
11.文件(2学时)
掌握文件以及缓冲文件系统、文件指针的概念;学会使用文件打开、关闭、读、写等文件操作函数;学会用缓冲文件系统对文件进行简单的操作。
五.作业
每周布置和收交作业,作业总计90道题左右。
作业成绩占本课程总成绩的5%。
迟交或缺交的作业次数应少于作业总次数的20%,否则将影响作业成绩的评定。
提倡并鼓励与同学讨论作业,但是最终的作业必须是独立完成的,抄袭或复制其他同学的作业将违背学术道德,情节严重者将提请学校学生违纪处理委员会处理。
认真完成作业对掌握教学内容以及取得阶段测验和期末考试好成绩是十分有帮助的,测试题中有可能包含作业题。
六.考核方式
学生可以携带一张备考纸(双面A4)参加阶段测验或期中、期末考试。
答题必须独立完成,任何作弊行为将按照《西南民族大学学生考核违纪、作弊处罚规定》处理。
期中和期末前各有一次60分钟的阶段测验,期中考试时间为90分钟,期末考试时间为120分钟。
具体考试时间至少提前1周通知学生。
实验考核主要依据实验报告完成情况和实验项目抽测结果评定。
七.成绩评定
成绩评定采取根据学分制学籍管理条例实行学分绩点的方法计算。
课程成绩考核采用百分制和五级制(十一等)记分,各档成绩与绩点的关系如下表:
成绩(分)
成绩等级
绩点
90-100
A
4.0
85-89.9
A-
3.7
82-84.9
B+
3.3
78-81.9
B
3.0
75-77.9
B-
2.7
72-74.9
C+
2.3
68-71.9
C
2.0
66-67.9
C-
1.7
64-65.9
D
1.3
60-63.9
D-
1.0
<60
F
0
授课计划与实际进度
学分
4.5
周学时
总学时
6
78
讲课
学时
52
实验、实
习学时
26
其它
学时
0
教学进度计划
实际进度
周次
讲授内容
学时
完成
未完成
原因
5
第一章C语言概述
第二章程序的灵魂——算法:
算法的概念;简单算法举例;算法的特性;算法的表示;结构化程序设计方法
4
6
第三章数据类型、运算符、表达式:
C的数据类型;常量与变量;整形数据;实型数据;字符型数据;变量赋初值;各类数据型数据间的混合运算;算术运算符和算术表达式;赋值运算符和赋值表达式;逗号运算符和逗号表达式
4
7
第四章最简单的C程序设计:
C语句概述;赋值语句;字符数据的输入与输出;格式输入与输出;顺序结构程序设计举例。
第五章选择结构程序设计:
关系运算符与关系表达式;逻辑运算符与逻辑表达式;
4
8
第五章选择结构程序设计:
if语句;switch语句
第六章 循环控制:
goto语句构成循环;while语句;do-while语句;for语句;
。
4
9
第六章 循环控制:
循环的嵌套;break与continue语句
第七章数组:
一维数组的定义与引用;
4
10
第七章数组:
二维数组的定义与引用;字符数组。
4
11
第八章函数:
函数的定义;函数的参数和函数的值;函数的调用;函数的嵌套调用;函数的递归调用;
4
12
第八章函数:
数组作为函数参数;变量作用域;变量存储类别。
4
学分
4.5
周学时
总学时
6
78
讲课
学时
52
实验、实
习学时
26
其它
学时
0
教学进度计划
实际进度
周次
讲授内容
学时
完成
未完成
原因
13
第九章 编译预处理
第十章 指针:
指针与地址的概念;变量的指针和指针变量的指针变量;
4
14
第十章 指针:
数组的指针与指向数组的指针变量;字符串的指针与指向字符串的指针变量
4
15
第十章指针:
指针与函数;指针数组;二级指针。
第十一章 结构体与共用体:
结构体类型的说明及结构体类型变量的定义;结构体变量的引用;结构体变量的初始化;结构体数组;指针与结构体数组;
4
16
第十一章 结构体与共用体:
指针与结构体数组;链表;共用体;枚举类型;typedef。
4
17
第十三章 文件:
文件类型指针;文件的打开与关闭;文件的读写。
复习
4
此表另备两份,一份送教研组留存,一份公布于有该课的班。
主讲教师签名:
教研室主任签名
实验一——程序的运行环境和运行C程序的方法
实验名称
程序的运行环境和运行C程序的方法
成绩
姓名
学号
班级
实验地点
完成日期
实验目的
1)了解所用的计算机系统的基本操作方法,学会独立使用该系统
2)了解在该系统上如何编辑、编译、连接和运行一个C程序
3)通过运行简单的C程序,初步了解C源程序的特点
实
验
内
容
与
步
骤
实
验
内
容
与
步
骤
实
验
内
容
与
步
骤
1)检查所用的计算机系统是否已安装了C编译系统并确定它所在的子目录;
2)进行所用的集成环境;
3)熟悉集成环境的界面的有关菜单的使用方法;
4)输入并运行一个简单的、正确的程序。
输入下面的程序(教材第1章例1.1):
#include
voidmain()
{
printf("Thisisacprogram.\n");
}
1根据前面介绍的方法对源程序进行编译,观察屏幕上显示的编译信息。
如果出现“出错信息”,则应找出原因并改正之,再进行编译,如果无错,则进行连接。
2如果编译连接无错误,使程序运行,观察分析运行结果。
5)输入并运行一个有错误的C程序。
1输入下面的程序((教材第1章例1.2,故意漏打或打错几个字符):
#include
voidmain()
{
inta,b,sum
a=123;b=456;
sum=a+b
print("sumis%d\n",sum);
}
2进行编译,仔细分析编译信息窗口,可能显示有多个错误,逐个修改,直到不出现错误。
最后请与教材上的程序对照。
3使程序运行,分析运行结果。
6)输入并运行一个需要在运行时输入数据的程序;
输入下面的程序:
#include
voidmain()
{
intmax(intx,inty);
inta,b,c;
printf("inputa&b;");
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d\n",c);
}
intmax(intx,inty)
{
intz;
if(x>y)z=x;
elsez=y;
return(z);
}
1编译并运行,在运行时从键盘输入整数2和5,然后按“回车”键,观察运行结果。
2将程序中的第3行改为
inta;b;c;
再进行编译,观察其结果
3将max函数中的第3、4两行合并写为一行,即
if(x>y)z=x;elsez=y;
再进行编译运行,分析结果。
7)运行一个自己编写的程序,题目是教材第1章习题1.6,即输入a、b、c3个数,输出其中最大者。
1输入自己编写的源程序。
#include
voidmain()
{
inta,b,c;
printf("inputa,b&c:
");
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if(b>max)max=b;
if(c>maxmax=c;
printf("max=%d\n",max);
}
2检查程序有无错误(包括语法错误和逻辑错误),有则改之。
3编译和连接,仔细分析编译信息,如有错误应找出原因并改正之。
4运行程序,输入数据,分析结果。
5自己修改程序(例如故意改成错的),分析其编译和运行情况。
8)将调试好的程序保存在自己的用户目录中,文件名自定。
9)将关闭工作区,再重新打开该文件,检查内容是否是刚才存盘的程序。
10)关闭VC集成环境,用Windows的“我的电脑”找到刚才使用的用户子目录,浏览其中文件,看有无刚才保存的后缀为.c和.exe的文件。
实验心得
实验二——数据类型、运算符和表达式
实验名称
数据类型、运算符和表达式
成绩
姓名
学号
班级
实验地点
完成日期
实验目的
1)掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。
2)掌握不同的类型数据之间赋值的规律。
3)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
4)进一步熟悉C程序的编辑、编译、连接和运行过程
实
验
内
容
与
步
骤
实
验
内
容
与
步
骤
实
验
内
容
与
步
骤
实
验
内
容
与
步
骤
1)输入并运行下面的程序:
#include
voidmain()
{
charc1,c2;
c1='a';
c2='b';
printf("%c%c\n",c1,c2);
}
1运行此程序。
2在上面的printf语句的下面再增加一个printf语句:
printf("%d%d\n",c1,c2);
再运行,并分析结果。
3将第3行改为:
intc1,c2;
再使之运行,并分析结果。
4再将第4、5行改为:
c1=a;/*不用单撇号*/
c2=b;
再使之运行,并分析其运行结果。
5再将第4、5行改为:
c1=97;
c2=98;
再使之运行,分析其运行结果。
6再将第4、5行改为:
c1=300;/*用大于255的整数*/
c2=400;
再使之运行,并分析其运行结果。
2)输入并运行如下程序:
#include
voidmain()
{
charc1='a',c2='b',c3='c',c4='\101',c5='\116';
printf("a%cb%c\tc%c\tabc\n",c1,c2,c3);
printf("\t\b%c%c\n",c4,c5);
}
在上机前先用人工分析程序,写出相应结果,上机后将二者对照。
3)输入并运行下面的程序:
#include
voidmain()
{
shortinta,b;
unsignedshortc,d;
inte,f;
a=100;
b=-100;
e=50000;
f=32767;
c=a;
d=b;
printf("%d,%d\n",a,b);
printf("%u,%u\n",a,b);
printf("%u,%u\n",c,d);
c=a=e;
d=b=f;
printf("%u,%u\n",a,b);
printf("%u,%u\n",c,d);
}
请对照程序和运行结果分析:
1将一个负整数赋给一个无符号的变量,会得到什么结果。
画出它们在内存中的表示形式。
2将一个大于32767的整数赋给短整型变量(在VC环境下),会得到什么结果。
画出它们在内存中的表示形式。
3将一个整数赋给无符号短整型变量,会得到什么结果(分别考虑该长整数的值大于、等于或小于65535的情况)。
画出它们在内存中的表示形式。
4改程序中各变量的值,再比较。
4)输入并运行教材第3章习题3.10(P67)即:
#include
voidmain()
{
inti,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d\n",i,j,m,n);
}
1运行程序,注意i,j,m,n各变量的值。
分别做以下改动并运行:
2将第6、7行改为:
m=i++;
n=++j;
再运行。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 实验 指导书