高级语言程序设计贾瑞玉.docx
- 文档编号:12730884
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:18
- 大小:22.51KB
高级语言程序设计贾瑞玉.docx
《高级语言程序设计贾瑞玉.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计贾瑞玉.docx(18页珍藏版)》请在冰豆网上搜索。
高级语言程序设计贾瑞玉
《高级语言程序设计》教学大纲
课程编号:
ZJ36016
课程名称:
高级语言程序设计
英文名称:
HighLevelProgrammingLanguage
学分/学时:
3学分/51学时课程性质:
必修
适用专业:
计算机科学与技术、软件工程、信息安全、网络工程、数字媒体技术
先修课程:
计算机文化基础
开课单位:
计算机科学与技术学院
一、课程的教学目标与任务
《高级语言程序设计》课程以本科生为授课对象,该课程是计算机专业必修的专业基础课,是程序设计的入门课程,又是数据结构、C++、编译原理等课程的前导课程。
它是一门集理论性与实践性为一体的课程,既要掌握概念,又要动手编程。
通过本课程的教学,可以使学生掌握结构化程序设计的方法,掌握高级程序设计语言的基本知识,掌握基本的程序设计过程和技巧,确立程序设计的思维方式,使学生具备初步的高级语言程序设计能力,为进一步的学习打下坚实的理论和实践基础。
通过本课程的学习,使学生掌握C语言程序设计的基本知识、程序结构、基本算法及程序设计思想,能够进行初步的程序设计。
二、课程具体内容及基本要求
第一章C语言概述(1学时)
基本内容包括:
(1)C语言出现的历史背景
(2)C语言的特点
(3)简单的C语言程序介绍
(4)运行C程序的步骤与方法
1.基本要求
(1)了解C语言出现的历史背景及特点。
(2)掌握C语言程序的结构,领会C语言程序设计的风格。
2.重点、难点
重点:
C语言程序的结构及特点,运行环境的使用
难点:
C程序的结构
3.作业
(1)请根据自己的认识,写出C语言的主要特点。
(2)请参照例题,编写一个C程序,输出下列信息:
************************
Verygood!
************************
本知识点的学习,可以支撑“毕业要求1工程知识”中的“指标点1-1能够运用数学与自然科学基础知识,理解软件工程中涉及的相关科学原理”,使学生掌握工程基础知识和本专业的基本理论知识;了解本专业的前沿发展现状和趋势,为后续的学习奠定基础。
第二章程序的灵魂——算法(3学时)
基本内容包括:
(1)算法的概念
(2)算法举例
(3)算法的特性
(4)算法的表示
(5)结构化程序设计方法
1.基本要求
(1)掌握算法的基本概念与特性,了解算法的表示方法
(2)掌握结构化程序设计的思想。
2.重点、难点
重点:
算法的概念、三种基本结构、算法的表示
难点:
算法的表示、结构化程序设计方法
3.作业
(1)什么是算法。
(2)什么叫结构化的算法。
(3)用N-S图表示以下算法。
(a)将a和b的值交换。
(b)依次输入10个数,要求输出最大数。
(c)有3个数a、b、c,要求按大小顺序把它们输出。
(4)用伪代码表示上题中各题的算法。
本知识点的学习,可以支撑“毕业要求1工程知识”中的1_3掌握软件工程专业基本理论,以及基本分析与设计方法,用于解决复杂软件工程问题”和“毕业要求2问题分析”中“指标点2_1能够将数学与自然科学的基本概念运用到工程问题的适当表述之中”,使学生掌握工程基础知识和本专业的基本理论知识,为后续的学习奠定基础。
第三章数据类型、运算符与表达式(5学时)
基本内容包括:
(1)C语言的数据类型
(2)常量与变量
(3)整型数据
(4)浮点型数据
(5)字符型数据
(6)变量赋初值
(7)各类数值型数据间的混合运算
(8)算术运算符和算术表达式
(9)赋值运算符和赋值表达式
(10)逗号运算符和逗号表达式
1.基本要求
(1)了解基本数据类型及其常量的表示法
(2)掌握变量的定义及初始化方法
(3)掌握运算符与表达式的概念
(4)掌握类型转换、赋值的概念
2.重点、难点
重点:
基本数据类型、变量的概念、运算符和表达式
难点:
变量的数据存储形式、不同进制转换、数据类型转换
3.作业
(1)请将下面各数用八进制和十六进制表示:
1)10 2)32 3)75 4)-617
5)-111 6)2483 7)-28654 8)21003
(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”,c4,c5);
}
(3)求下列算术表达式的值:
1)设x=2.5,a=7,y=4.7,求x+a%3*(int)(x+y)%2/4的值。
2)设a=2,b=3,x=3.5,y=2.5,求(float)(a+b)/2+(int)x%(int)y的值。
(4)写出程序运行的结果。
#include
voidmain()
{inti=8,j=10,m,n;
m=++i;n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n);
}
(5)设a,n都为整型变量,a初值为12,n初值为5,求下列表达式的值:
1)a+=a2)a―=23)a*=2+3
4)a/=a+a5) a%=(n%=2) 6) a+=a―=a*=a
本知识点的学习,可以支撑“毕业要求1工程知识”中的1_3掌握软件工程专业基本理论,以及基本分析与设计方法,用于解决复杂软件工程问题”和“毕业要求2问题分析”中“指标点2_1能够将数学与自然科学的基本概念运用到工程问题的适当表述之中”,使学生掌握工程基础知识和本专业的基本理论知识,为后续的学习奠定基础。
第四章最简单的C程序设计(4学时)
基本内容包括:
(1)C语句概述
(2)赋值语句
(3)数据输入输出的概念及在C语言中的实现
(4)字符数据的输入输出
(5)格式输入与输出
(6)顺序结构程序设计举例
1.基本要求
(1)了解C语句的概念及种类
(2)掌握数据输入/输出在C语言中的实现方式
2.重点、难点
重点:
数据输入与输出函数
难点:
printf和scanf函数的格式控制
3.作业
(1)用下面scanf函数输入数据,使a=10,b=20,c1='A',c2='a',x=1.5,y=-3.75,z=67.8,请问在键盘上如何输入数据?
scanf(“%5d%5d%c%c%f%f%*f,%f”,&a,&b,&c1,&c2,&x,&y,&z);
(2)设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。
请编程序。
(3)输入一个华氏温度,要求输出摄氏温度,公式为:
C=5(F-32)/9。
输出要有文字说明,取2位小数。
本知识点的学习,可以支撑“毕业要求1工程知识”中的1_3掌握软件工程专业基本理论,以及基本分析与设计方法,用于解决复杂软件工程问题”和“毕业要求2问题分析”中“指标点2_1能够将数学与自然科学的基本概念运用到工程问题的适当表述之中”,使学生掌握工程基础知识和本专业的基本理论知识,为后续的学习奠定基础。
第五章选择结构程序设计(4学时)
基本内容包括:
(1)关系运算符和关系表达式
(2)逻辑运算符和逻辑表达式
(3)if语句
(4)switch语句
(5)程序举例
1.基本要求
(1)了解选择结构的作用
(2)掌握if语句、switch语句、break语句的格式及使用方法。
2.重点、难点
重点:
关系运算符和逻辑运算符及其表达式、if语句、switch语句
难点:
if语句的嵌套、switch语句
3.作业
(1)写出下列各逻辑表达式的值。
设a=3,b=4,c=5。
1)a+b>c&&b==c2)a||b+c&&b-c
3)!
(a>b)&&!
c||14)!
(x=a)&&(y=b)&&0
5)!
(a+b)+c-1&&b+c/2
(2)由键盘任意输入三个数,编程序输出其中最大者。
(3)有一函数,y=x(x<1时);y=2*x-1(1≤x<10时);y=3*x-11(x≥10时);编写程序,输入x,输出y值。
(4)给出一百分制成绩,要求输出成绩等级。
90分以上为'A',80-89为'B',70-79为'C',60-69为'D',60以下为'E'。
(5)给出一个不多于5位的正整数,要求:
(1)求出它是几位数;
(2)分别输出每一位数字;(3)按逆序打印出各位数字,例如原数为321,应输出123。
(6)由键盘任意输入4个整数,要求按由大到小的顺序输出。
本知识点的学习,可以支撑“毕业要求1工程知识”中的1_3掌握软件工程专业基本理论,以及基本分析与设计方法,用于解决复杂软件工程问题”和“毕业要求2问题分析”中“指标点2_1能够将数学与自然科学的基本概念运用到工程问题的适当表述之中”,使学生掌握工程基础知识和本专业的基本理论知识,为后续的学习奠定基础。
第六章循环控制(6学时)
基本内容包括:
(1)概述
(2)goto语句以及由goto语句构成循环
(3)用while语句实现循环
(4)用do-while语句实现循环
(5)用for语句实现循环
(6)循环的嵌套
(7)几种循环的比较
(8)break和continue语句
(9)程序举例
1.基本要求
(1)领会程序设计中构成循环的方法
(2)掌握for、while、do-while语句的用法
(3)了解break、continue在循环语句中的作用并掌握其用法
2.重点、难点
重点:
循环的基本思想、循环语句的使用、break与continue语句的基本作用
难点:
for循环的使用方法、多重循环
3.作业
(1)两个正整数m和n,求其最大公约数和最小公倍数。
(2)输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
(3)求s=a+aa+aaa+…+aa…a之值,其中a是一个数字,例如:
2+22+222+2222+22222(此时n=5),由键盘输入。
(4)猴子吃桃的问题。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩一个桃子了。
求第一天共摘多少桃子。
本知识点的学习,可以支撑“毕业要求1工程知识”中的1_3掌握软件工程专业基本理论,以及基本分析与设计方法,用于解决复杂软件工程问题”和“毕业要求2问题分析”中“指标点2_1能够将数学与自然科学的基本概念运用到工程问题的适当表述之中”,使学生掌握工程基础知识和本专业的基本理论知识,为后续的学习奠定基础。
第七章数组(5学时)
基本内容包括:
(1)一维数组的定义与引用
(2)二维数组的定义与引用
(3)字符数组
1.基本要求
(1)了解一维数组、二维数组的基本概念及存储结构
(2)掌握一维数组、二维数组的定义、引用和初始化方法
(3)掌握有关一维数组的相关算法
2.重点、难点
重点:
数组的概念、数组的定义与引用、数组的应用、常用字符串处理函数
难点:
二维数组、字符串处理
3.作业
(1)将一个数组中的值按逆序重新存放。
例如原来顺序为:
8、6、5、4、1。
要求改为:
1、4、5、6、8。
(2)输出以下杨辉三角形(要求输出10行)。
1
11
121
1331
14641
15101051
……
(3)找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。
(4)有一篇文章,共有3行文字。
要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。
(5)打印以下图案:
*****
*****
*****
*****
*****
(6)编一个程序,将两个字符串连接起来,不要用strcat函数。
本知识点的学习,可以支撑“毕业要求1工程知识”中的1_3掌握软件工程专业基本理论,以及基本分析与设计方法,用于解决复杂软件工程问题”和“毕业要求2问题分析”中“指标点2_1能够将数学与自然科学的基本概念运用到工程问题的适当表述之中”,使学生掌握工程基础知识和本专业的基本理论知识,为后续的学习奠定基础。
第八章函数(6学时)
基本内容包括:
(1)概述
(2)函数定义的一般形式
(3)函数参数和函数的值
(4)函数的调用
(5)函数的嵌套调用
(6)函数的递归调用
(7)数组作为函数的参数
(8)局部变量和全局变量
(9)变量的存储类别
(10)内部函数和外部函数
1.基本要求
(1)了解函数的概念
(2)掌握函数的定义与调用
(3)掌握函数参数的传递方式
(4)领会变量存储类别的概念及各种存储类别变量的生存期和作用域
(5)领会函数的嵌套调用与递归调用
2.重点、难点
重点:
函数定义、函数调用、函数声明、函数的参数及参数传递、变量的作用域和存储类别
难点:
参数传递、函数的递归调用、变量的作用域和存储类别
3.作业
(1)写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。
(2)写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。
(3)写一函数,输入一个十六进制数,输出相应的十进制数。
(4)给出年、月、日,计算该日是该年的第几天。
本知识点的学习,可以支撑“毕业要求1工程知识”中的1_3掌握软件工程专业基本理论,以及基本分析与设计方法,用于解决复杂软件工程问题”和“毕业要求2问题分析”中“指标点2_1能够将数学与自然科学的基本概念运用到工程问题的适当表述之中”,使学生掌握工程基础知识和本专业的基本理论知识,为后续的学习奠定基础。
第九章预处理命令(2学时)
基本内容包括:
(1)宏定义
(2)“文件包含”处理
(3)条件编译
1.基本要求
(1)了解预处理的概念
(2)掌握宏的定义及使用
(3)领会文件包含的使用
(4)了解条件编译的作用
2.重点、难点
重点:
宏的定义及使用、文件包含的基本概念
难点:
带参的宏
3.作业
(1)输入两个整数,求它们相除的余数。
要求用带参的宏来实现。
(2)给年份year,定义一个宏,以判别该年份是否闰年。
(3)请分析以下一组宏所定义的输出格式:
#defineNLputchar(‘\n’)
#definePR(format,value)printf(“value=%format\t”,x2);putchar(‘\n’);
#definePRINT1(f,x1)PR(f,x1);NL
#definePRINT2(f,x1,x2)PR(f,x1);PRINT1(f,x2)
如果在程序中有以下的宏引用:
PR(d,x);
PRINT1(d,x);
PRINT2(d,x1,x2);
写出宏展开后的情况,并写出应输出的结果,设x=5、x1=3、x2=8。
本知识点的学习,可以支撑“毕业要求1工程知识”中的1_3掌握软件工程专业基本理论,以及基本分析与设计方法,用于解决复杂软件工程问题”和“毕业要求2问题分析”中“指标点2_1能够将数学与自然科学的基本概念运用到工程问题的适当表述之中”,使学生掌握工程基础知识和本专业的基本理论知识,为后续的学习奠定基础。
第十章指针(7学时)
基本内容包括:
(1)指针与地址的概念
(2)变量的指针和指向变量的指针变量
(3)数组与指针
(4)字符串与指针
(5)指向函数的指针
(6)返回指针值的函数
(7)指针数组和指向指针的指针
(8)有关指针的数据类型和指针运算的小结
1.基本要求
(1)了解指针与地址的概念
(2)掌握指针变量的定义、初始化及指针的运算
(3)掌握指向数组和字符串的指针的使用
(4)掌握指针作为函数参数的应用
(5)了解指针数组、二级指针等知识
2.重点、难点
重点:
指针和指针变量的概念、指针和数组名作函数参数、字符串指针
难点:
指针和数组名作函数参数、指针函数、指针数组、指针的指针
3.作业
(1)输入3个整数,按由小到大的顺序输出。
(2)输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。
(3)编一个程序,打入月份号,输出该月的英文月名。
本知识点的学习,可以支撑“毕业要求1工程知识”中的1_3掌握软件工程专业基本理论,以及基本分析与设计方法,用于解决复杂软件工程问题”和“毕业要求2问题分析”中“指标点2_1能够将数学与自然科学的基本概念运用到工程问题的适当表述之中”,使学生掌握工程基础知识和本专业的基本理论知识,为后续的学习奠定基础。
第十一章结构体与共用体(6学时)
基本内容包括:
(1)概述
(2)定义结构体类型变量的方法
(3)结构体变量的引用
(4)结构体变量的初始化
(5)结构体数组
(6)指向结构体类型数据的指针
(7)用指针处理链表
(8)共用体
1.基本要求
(1)掌握结构体类型的说明、结构体变量的定义及初始化方法
(2)掌握结构体变量成员的引用
(3)领会结构体和共用体的异同点
(4)领会存储动态分配和释放的概念
(5)了解链表的基本概念和基本操作
2.重点、难点
重点:
结构体变量的定义和引用、结构体数组、指向结构体类型数据的指针
难点:
用指针处理链表
3.作业
有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、三门课的成绩、平均分数)。
本知识点的学习,可以支撑“毕业要求1工程知识”中的1_3掌握软件工程专业基本理论,以及基本分析与设计方法,用于解决复杂软件工程问题”和“毕业要求2问题分析”中“指标点2_1能够将数学与自然科学的基本概念运用到工程问题的适当表述之中”,使学生掌握工程基础知识和本专业的基本理论知识,为后续的学习奠定基础。
第十二章文件(2学时)
基本内容包括:
(1)C文件概述
(2)文件类型指针
(3)文件的打开与关闭
(4)文件的读写
(5)文件的定位
1.基本要求
(1)了解文件的基本概念
(2)掌握文件的打开、关闭以及常用的读写和定位方法。
2.重点、难点
重点:
文件的基本概念、文件的打开、关闭、读写和定位
难点:
文件的读写和定位
3.作业
(1)从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。
输入的字符串以“!
”结束。
(2)有两个磁盘文件“A”和“B”,各存放一行字母,今要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件“C“中去。
本知识点的学习,可以支撑“毕业要求1工程知识”中的1_3掌握软件工程专业基本理论,以及基本分析与设计方法,用于解决复杂软件工程问题”和“毕业要求2问题分析”中“指标点2_1能够将数学与自然科学的基本概念运用到工程问题的适当表述之中”,使学生掌握工程基础知识和本专业的基本理论知识,为后续的学习奠定基础。
三、教学安排及方式
总学时51学时,其中:
讲授51学时,实验0学时。
序号
课程内容
学
时
教学
方式
1
C语言概述、算法
3
讲授
2
算法、数据类型、运算符与表达式
3
讲授
3
数据类型、运算符与表达式
3
讲授
4
顺序程序设计
3
讲授
5
顺序程序设计、选择结构程序设计
3
讲授
6
选择结构程序设计、循环控制
3
讲授
7
循环控制
3
讲授
8
循环控制、数组
3
讲授
9
数组
3
讲授
10
函数
3
讲授
11
函数
3
讲授
12
预处理命令、指针
3
讲授
13
指针
3
讲授
14
指针
3
讲授
15
结构体与共用体
3
讲授
16
结构体与共用体
3
讲授
17
文件
2
讲授
四、本课程对培养学生能力和素质的贡献点
通过期末笔试的考试来对学生专业核心知识掌握进行考核,即对“毕业要求1工程知识”中的1_3掌握软件工程专业基本理论,以及基本分析与设计方法,用于解决复杂软件工程问题”和“毕业要求2问题分析”中“指标点2_1能够将数学与自然科学的基本概念运用到工程问题的适当表述之中”的指标达成度进行评估,并了解本专业的前沿发展现状和趋势,对新知识、新技术有较敏锐的洞察能力。
五、考核及成绩评定方式
最终成绩由平时成绩和期末成绩等组合而成。
各部分所占比例如下:
平时成绩:
30%。
其中包括作业、考勤等。
期末考试成绩:
70%。
主要考核对于C语言的语法规则及其程序设计的掌握程度。
书面考试形式。
题型为:
选择题或填空题、阅读程序题和编程题等。
六、教材及参考书目
1.教材
《C程序设计(第三版)》潭浩强著,清华大学出版社,2005年.
2.参考书目
(1)《C程序设计题解与上机指导》,谭浩强著,清华大学出版社,2005年第3版
(2)《C语言程序设计》,顾治华、陈天煌等,机械工业出版社,2012年第2版
(执笔人:
贾瑞玉审核人:
邹海)
2016年6月10日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 语言程序设计 贾瑞玉