c语言程序设计-向艳-书上例题源代码教学提纲
- 格式:doc
- 大小:101.50 KB
- 文档页数:32
《C语言程序设计》教学大纲课时:84课时一、课程简介1.课程简介:学习C语言的意义和价值C语言是专业基础的最后一门课,是各个专业学院学习语言前的第一门基础课。
C语言曾开发出UNIX操作系统等经典复杂系统。
随着物联网、智能终端等技术发展,也用于开发更多应用程序,还具硬件底层执行能力,且易于使用,因此能持久丰富和发展,成为学习掌握各种编程技术的重要基础。
C语言具有相通性与其他语言相比语法结构简单,容易上手是学习掌握其他编程技术的重要基础。
在实际项目开发中往往需要多种语言的相互配合,当需要提高执行效率时或直接操控硬件时,必须使用C语言开发。
2.课程特色:C语言是现代编程的基础。
ANSI标准定义的命令关键字只有32个,运算符34个,程序控制语句也只有9种,这些在学习中都不难理解,也比较易于掌握。
但对初学者来说,每当遇到编程分析以解决实际问题时,就会给不少学生感觉总体上“难”掌握。
学习C语言程序设计,要越过心理“难点”这道坎儿,运用计算思维方法养成习惯是关键:(1)使学生有面向过程的编程思想、面向过程和面向对象的差异;(2)解决初学语言时养成良好的编程习惯,如代码规范、注释规范、流程图规范等;(3)使学生具备良好的编程思路:实际问题—程序算法分析(借助工具)—转换代码通过案例分析和引导,勤动手多实践,训练掌握如何自如地表达实际问题求解过程与程序算法,才能有效编写组织程序,实现相关运算逻辑的计算结果。
计算机程序设计中,掌握知识要点的计算思维方法是核心,通过实验验证则是有效掌握程序算法实现的关键。
二、知识目标1.掌握C语言程序设计基本语法结构和规范.2.掌握C语言程序设计各种数据存储类型,变量的使用及相关运算.3.掌握程序设计的三种基本结构:顺序结构,选择结构,循环结构.4.掌握计算机程序设计算法与实现(1)算法实现工具VISO使用(2)在VISO中实现用例图、流程图5.了解面向过程编程思想,面向过程与面向对象的编程思想的差异6.掌握数组的定义与使用7.掌握函数定义与使用三、能力目标:1.速度目标:用120分钟完成项目—学生成绩管理(1)输入全部学生的成绩(2)输出全部学生的成绩(3)求和(4)求平均值(5)最高分(6)最低分(7)计算成材率2.速度目标:用120分钟完成项目—员工薪资管理(1)输入全部员工的薪资(2)输出全部员工的薪资(3)求所有员工的总薪资(4)求所有员工的平均薪资(5)查找最高薪资(6)查找最低薪资3.速度目标:用3小时完成项目—ATM(1)查询余额(2)取款(3)转账(4)存款(5)退出4.思路目标:使学生具备良好的编程思路:实际问题—程序算法分析(借助工具)—转换代码利用计算机思维去分析问题、解决问题,并利用工具辅助落地四、课程教学和学习设计1.教学特色:优化提炼了所有内容的知识点,通过案例应用来解析相关的知识要点和程序算法实现方法,以及相关的语义语法基本规范等。
c语言程序设计-向艳-书上例题源代码教学提纲第五章函数1.定义一个求两个整数和的函数int sum(x,y)int x,y;{int z;z=x+y;return(z);}2.编写函数求两个数的最大值#includefloat max(float x,float y){float z;if(x>y) z=x;else z=y;return (z);}void main(){float a,b,c;scanf("%f%f",&a,&b);c=max(a,b);printf("max=&f\n",c);}3.计算并输出一个圆台两底面积之和#includefloat area(float x,float y)float s;s=3.1415*(x*x+y*y); return s;}void printstar(){int i;for(i=0;i<30;i++) printf("*");printf("\n");}void main(){float r1,r2,s;printstar();scanf("%f,%f",&r1,&r2); s=area(r1,r2);printf("s=%.2f\n",s); printstar();}4.实参求值顺序的例子#includeint fun(int a,int b) {if (a>b) return 1;else if (a==b) return 0; else return -1;}void main()int k=3,s;s=fun(k,++k);printf("s=%d\n",s);}5.计算Σn i=1 i#includevoid main(){void s(int);int n;printf("input number\n"); scanf("%d",&n);s(n);printf("n=%d\n",n);}void s(int n){int i;for(i=n-1;i>=1;i--)n=n+i;printf("n=%d\n",n);}6.全局变量被“屏蔽”#includeint a=3,b=5;max(int a,int b){int c;c=a>b?a:b;return(c);}void main(){int a=8;printf("%d\n",max(a,b));}7.输入正方体的长宽高,求体积及三个面的面积#includeint s1,s2,s3;int v_s(int a,int b,int c){int v;v=a*b*c;s1=a*b;s2=b*c;s3=a*c;return v;}void main(){int v,l,w,h;printf("\ninput length,width and height\n");scanf("%d%d%d",&l,&w,&h);v=v_s(l,w,h);printf("\nv=%d,s1=%d,s2=%d,s3=%d\n",v,s1,s2,s3); }8.用register说明变量的程序#includeint fac(int n)register int i,f=1;for(i=1;i<=n;i++);f=f*i;return f;}void main(){int i;for(i=1;i<=5;i++)printf("%ds!=%d\n",i,fac(i)); }9.用static说明变量的程序#includeint fac(int n){static int i,f=1;f=f*n;return f;}void main(){int i;for(i=1;i<=5;i++)printf("%d!=%d\n",i,fac(i)); }10.用extern说明变量的程序#includeextern int n;void fun()n-=20;}int n=100;void main(){for(;n>=60;){fun();printf("n=%d\n",n); }}11.计算s=2^2!+3^3! #includelong f1(int p){int k;long r;long f2(int);k=p*p;r=f2(k);return r;}long f2(int q){long c=1;int i;for(i=1;i<=q;i++)c=c*i;return c;void main(){int i;long s=0;for(i=2;i<=3;i++)s=s+f1(i);printf("\ns=%ld\n",s);}12.用梯形法编程求函数f(x)=x*x+2*x+1的定积分S0~2 f(x)dx 的值#includedouble fun(double x){double y;y=x*x+2*x+1;return y;}double djf(double n,double a,double b){double s=0,h;int i;h=(b-a)/n;for(i=1;i<=n;i++)s+=((fun(a+(i-1)*h)+fun(a+i*h))*h)/2;return(s);}void main(){double s,n,a,b;scanf("%lf,%lf,%lf",&n,&a,&b);s=djf(n,a,b);printf("s=%.2lf\n",s);}13.用递归法求n!#includelong fun(int n){long f;if(n==0||n==1)f=1;else f=fun(n-1)*n;return(f);}void main(){int n;long y;printf("\ninput a inteager number:\n"); scanf("%d",&n);y=fun(n);printf("%d!=%ld",n,y);}14.Hanoi塔问题#includevoid move(int n,char x,char y,char z) {if(n==1)printf("%c-->%c\n",x,z);else{move(n-1,x,z,y);printf("%c-->%c\n",x,z);move(n-1,y,x,z);}}void main(){int h;printf("\ninput number:\n");scanf("%d",&h);printf("the step to moving %2d diskes:\n",h);move(h,'a','b','c');}第七章数组1.定义一个长度为10的整型一维数组,利用for循环对其中的每个元素赋值,最后利用for循环按逆序输出这十个元素值。
向往C语言程序设计教案第一章:C语言简介1.1 C语言的历史与发展1.2 C语言的特点与应用1.3 C语言的编译过程1.4 集成开发环境的选择与使用第二章:C语言基础语法2.1 数据类型2.1.1 基本数据类型2.1.2 构造数据类型2.1.3 指针类型2.2 变量与常量2.2.1 变量的声明与初始化2.2.2 常量的定义与使用2.3 运算符与表达式2.3.1 算术运算符2.3.2 关系运算符2.3.3 逻辑运算符2.3.4 赋值运算符2.3.5 其他运算符2.4 流程控制语句2.4.1 条件语句2.4.2 循环语句2.4.3 跳转语句第三章:函数与编译预处理3.1 函数的定义与声明3.1.1 函数的参数传递3.1.2 函数的返回值3.2 局部变量与全局变量3.2.1 局部变量3.2.2 全局变量3.3 编译预处理指令3.3.1 宏定义3.3.2 文件包含3.3.3 条件编译第四章:数组与字符串4.1 一维数组4.1.1 数组的声明与初始化4.1.2 数组的访问与遍历4.2 二维数组4.2.1 二维数组的声明与初始化4.2.2 二维数组的访问与遍历4.3 字符串4.3.1 字符串的基本操作4.3.2 字符串数组第五章:指针与引用5.1 指针的基本概念5.1.1 指针的声明与初始化5.1.2 指针的赋值与取值5.2 指针与数组5.2.1 指针访问数组元素5.2.2 指针操作数组5.3 指针与函数5.3.1 指针作为函数参数5.3.2 返回指针的函数5.4 引用5.4.1 引用的概念与使用5.4.2 引用与指针的区别第六章:结构体与共用体6.1 结构体的定义与使用6.1.1 结构体的声明6.1.2 结构体的初始化6.1.3 结构体数组6.2 共用体的概念与使用6.2.1 共用体的声明6.2.2 共用体的内存布局6.2.3 共用体与结构体的结合使用第七章:位字段与枚举7.1 位字段的概念与使用7.1.1 位字段的声明与初始化7.1.2 位字段的位操作7.2 枚举类型的定义与使用7.2.1 枚举类型的声明7.2.2 枚举类型的使用场景第八章:动态内存分配8.1 动态内存分配的概念8.1.1 动态内存分配的重要性8.1.2 动态内存分配的函数8.2 内存分配与释放的时机与策略8.2.1 内存泄漏与溢出8.2.2 内存分配与释放的最佳实践第九章:文件操作9.1 文件概述9.1.1 文件的概念9.1.2 文件系统的组织9.2 文件操作函数9.2.1 文件的打开与关闭9.2.2 文件的读写操作9.2.3 文件的定位与信息获取第十章:标准库函数10.1 标准输入输出库函数10.1.1 输入输出函数的使用10.1.2 格式化输入输出函数10.2 字符串处理库函数10.2.1 字符串比较与长度获取10.2.2 字符串拷贝与连接10.3 数学计算库函数10.3.1 常见数学计算函数10.3.2 随机数函数第十一章:线性表与栈11.1 线性表的概念与实现11.1.1 线性表的顺序存储结构11.1.2 线性表的链式存储结构11.2 栈的概念与操作11.2.1 栈的顺序存储结构11.2.2 栈的链式存储结构11.2.3 栈的操作实现第十二章:队列与双端队列12.1 队列的概念与操作12.1.1 队列的顺序存储结构12.1.2 队列的链式存储结构12.1.3 队列的基本操作实现12.2 双端队列的概念与操作12.2.1 双端队列的顺序存储结构12.2.2 双端队列的链式存储结构12.2.3 双端队列的操作实现第十三章:排序与搜索算法13.1 排序算法概述13.1.1 排序算法的分类13.1.2 排序算法的性能分析13.2 常见排序算法实现13.2.1 冒泡排序13.2.2 选择排序13.2.3 插入排序13.2.4 快速排序13.3 搜索算法概述13.3.1 搜索算法的基本方法13.3.2 搜索算法的应用场景13.4 常见搜索算法实现13.4.1 线性搜索13.4.2 二分搜索第十四章:递归与分治算法14.1 递归的概念与原理14.1.1 递归的定义14.1.2 递归的原理与实现14.2 分治算法概述14.2.1 分治算法的原理14.2.2 分治算法的应用14.3 常见分治算法实现14.3.1 归并排序14.3.2 快速排序14.3.3 计算斐波那契数列第十五章:并发编程基础15.1 并发编程的概念15.1.1 并发与并行的区别15.1.2 并发编程的挑战15.2 线程的概念与使用15.2.1 线程的定义15.2.2 线程的创建与管理15.3 互斥锁与同步机制15.3.1 互斥锁的概念与使用15.3.2 条件变量与信号量15.4 并发编程的应用场景15.4.1 并发与处理15.4.2 并发服务器编程重点和难点解析本文档详细介绍了C语言程序设计的基础知识和高级应用,涵盖了C 语言的历史、特点、编译过程、语法、函数、数组、字符串、指针、结构体、共用体、位字段、枚举、动态内存分配、文件操作、标准库函数、线性表、栈、队列、双端队列、排序、搜索、递归、分治算法以及并发编程等众多内容。