1-教学大纲.doc_第1页
1-教学大纲.doc_第2页
1-教学大纲.doc_第3页
1-教学大纲.doc_第4页
1-教学大纲.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言强化实践课程简介课程编号:23060550课程中文名称:C语言强化实践课程课程英文名称:C languagepractice course学时:30 学分:2先修课程: 后续课程:数据结构、C+程序设计内容简介: C语言强化实践课程属于学科基础课。C语言是当今最为广泛的几种语言之一,是程序设计的基础,本课程重点介绍C语言的结构化程序设计方法和标准C的编程与应用,内容包括:C语言的基本概念和基本语法规则、数据的基本类型和自定义类型、函数、文件和指针等知识,最重要的是通过学习使学生掌握程序设计的思想和方法,具备利用计算机求解实际问题的基本能力,能灵活应用高级语言进行程序设计。为后继课程的学习打下坚实的基础。本课程是一门实践性很强的课程,既强调对理论的掌握,又强调上机编程、调试、运行等实践环节,特别注重实际编程能力的培养。最终使学生能运用结构化程序设计方法编写程序,培养自己优良的编程风格,在程序设计方面基本达到“综合应用”的层次。 推荐教材或参考书目(资料): (一)推荐使用教材: 1 C语言程序设计,白忠建,人民邮电出版社,2013-8(二)主要参考书目:1 C程序设计(第四版),谭浩强,清华大学出版社,2010-62 C程序设计语言(第2版新版),(美)克尼汉、(美)里奇著、徐宝文、李志译,机械工业出版社,2004-13 C语言的科学和艺术,:(美)罗伯茨(Roberts,E.S)著、翁惠玉等译,机械工业出版社,2005-3程序设计基础I-C语言课程教学大纲一、课程基本信息课程性质:专业基础课面向专业:计算机科学与技术开课学期:第1学期总学时:60(其中理论45学时,上机15学时)总学分:4二、教学目的通过学习本课程,应具备以下能力: (1)从内容上,应使学生掌握程序设计基本概念、基本数据类型、运算符和表达式,以及基本的数据输入输出方法;控制结构、结构化程序开发方法;函数及程序模块化开发;数组、字符串及其应用等内容。(2)从能力方面,要求学生通过C语言的学习,理解计算机高级语言编程的一般方法和逻辑思考过程,理解如何将实际问题转化成计算机语言表达的模型。培养阅读和编写程序的能力,培养计算机程序设计的能力和素质,以及思维方法,为以后学习其它计算机程序语言打下基础。三、教学方法及手段(含现代化教学手段及研究性教学方法)从教学方法上,本课程采用课堂教学与上机实习教学相结合的方式,课堂教学采用传统教学和多媒体教学相结合,理论与实际应用相结合,通过全面而丰富的实例(多媒体演示)学习,使学生能够很快掌握课程的主要知识和解决问题的方法,使学生具备独立应用C语言解决实际问题的能力,及了解和掌握本学科发展最新动态和应用技术,并通过启发性的教学,提高学生的自学、创新意识,为今后进一步深入学习和解决实际问题打好基础。通过上机实习,培养学生实际动手能力和程序设计的能力,掌握程序设计的编程思想和设计方法,达到学以致用目的。四、教学内容与学时分配第一章 引论 2学时主要内容:(1)简单的C程序及特点(2)C程序的上机操作(3)程序的算法基本要求:(1)C 语言的发展历史和特点;(了解)(2)C 程序的构成及C 函数的组成;(正确理解)(3)算法的基本概念与特征、结构化程序设计的基本概念;(掌握)(4)C 程序的上机步骤。(掌握)重点:(1)理解(结构化)程序设计的概念;(2)C语言源程序的组成;(3)输入输出函数。难点:(结构化)程序设计的概念第二章 数据类型和运算 4学时主要内容:(1)常量与变量(2)C语言的数据类型 1.整型数据 2.实型数据 3.字符型数据(3)各类数值型数据之间的混合运算(4)运算符与表达式 1.算术运算符与算术表达式 2.赋值运算符与赋值表达式 3.逗号运算符与逗号表达式 4.运算符的结合性、优先级以及类型转换基本要求:(1)各种基本数据类型的常量、变量的表示方法;(掌握)(2)C 语言的各种数据类型、运算符;(理解)(3)表达式运算中运算符的优先级和结合性;(理解)(4)常用运算符(算术运算符、赋值运算符)的用法。(掌握)重点:(1)常量和变量的区别;(2)数据类型的基本概念;(3)存储类型和变量的作用域;(4)算术运算符的自加和自减运算;(5)运算符的结合性、优先级以及类型转换。难点:(1)算术运算符的自加和自减运算;(2)运算符的结合性、优先级以及类型转换。第三章 顺序结构 5学时主要内容:(1) 数据输入输出的概念(2) printf与scanf(3) putchar与getchar基本要求:掌握数据输入/输出的函数的使用方法;(掌握)重点:输入输出函数printf ()与 scanf ()的输入输出格式控制。难点:printf ()与 scanf ()的输入输出格式控制。第四章 选择结构 4学时主要内容:(1)程序结构(2)关系运算与关系表达式11职工信息管理系统源程序代码#include#include#include#defineN100structemployeeintnum;charname20;charsex;intage;charxueli30;intwage;charaddr30;chartel20;em100;/*定义一个结构体*/voidmenu();voidinput();voidsave(int);voiddisplay();voiddel();voidadd();voidsearch();voidsearch_num();voidsearch_xueli();voidsearch_tel();voidmodify();/*定义各函数*/voidmain()menu();intn,flag;chara;doprintf(请选择你需要操作的步骤(1-7):n);scanf(%d,&n);if(n=1&n=7) 12flag=1;break;elseflag=0;printf(您输入有误,请重新选择!);while(flag=0);while(flag=1)switch(n)case1:printf(输入职工信息n);printf(n);input();break;case2:printf(浏览职工信息n);printf(n);display();break;case3:printf(按职工号查询职工信息n);printf(n);search();break;case4:printf(删除职工信息n);printf(n);del();break;case5:printf(添加职工信息n);printf(n);add();break;case6:printf(修改职工信息n);printf(n);modify();break;case7:exit(0);break;default:break;getchar();printf(n);printf(是否继续进行(yorn):n);scanf(%c,&a);if(a=y)flag=1;system(cls);/*清屏*/menu();/*调用菜单函数*/printf(请再次选择你需要操作的步骤(1-7):n);scanf(%d,&n);printf(n); 13elseexit(0);voidmenu()/*菜单函数*/printf(*欢迎进入职工信息管理系统*n);printf(1.录入职工信息);printf(2.浏览职工信息n);printf(3.查询职工信息);printf(4.删除职工信息n);printf(5.添加职工信息);printf(6.修改职工信息n);printf(7.退出n);printf(*谢谢使用*n);printf(n);printf(n);voidinput()/*录入函数*/inti,m;printf(请输入需要创建信息的职工人数(1-100):n);scanf(%d,&m);for(i=0;im;i+)printf(请输入职工号:);scanf(%d,&emi.num);printf(请输入姓名:);scanf(%s,);getchar();printf(请输入性别(f-女m-男):);scanf(%c,&emi.sex);printf(请输入年龄:);scanf(%d,&emi.age);printf(请输入学历:);scanf(%s,emi.xueli);printf(请输入工资:);scanf(%d,&emi.wage);printf(请输入住址:);scanf(%s,emi.addr); 14printf(请输入电话:);scanf(%s,emi.tel);printf((3)逻辑运算与逻辑表达式(4)if条件分支语句(学时) 1.if语句的三种形式 2.if语句的嵌套 3.条件运算符(5)switch多路开关语句基本要求:(1)关系运算和逻辑运算及用法;(理解)(2)if 语句三种形式和switch 语句的用法;(掌握)(3)if 语句和switch 语句的嵌套;(理解)(4)分支结构程序设计的基本方法。(掌握)重点:(1)选择结构的使用方法(2)多分支选择的使用方法。难点:各种选择结构的选择和算法设计第五章 循环结构 6学时主要内容:(1)循环概述(2)while语句(3)do-while语句(4) for语句(5)循环结构的嵌套(6)break语句和continue语句基本要求:(1)循环的要素和控制方法;(理解)(2)while 语句、dowhile 语句的用法;(掌握)(3)for 语句的用法;(熟练掌握)(4)循环的嵌套;(掌握)(5)break 语句和continue 语句的用法(理解)重点:for循环、while循环、dowhile循环基本语法格式以循环条件的确定难点:各种循环结构的选择和算法设计第六章 数组 6学时主要内容:(1)一维数组 1.一维数组的定义 2.一维数组的引用 3.一维数组的初始化 4.一维数组的应用实例(2)二维数组 1.二维数组的定义 2.二维数组的引用 3.二维数组的初始化(3)字符数组字符串 1.字符串数组 2.字符串 3.字符数组应用实例基本要求:(1)一维数组和二维数组的定义和引用;(掌握)(2)字符数组的概念、定义与使用方法;(掌握)(3)常用字符串处理函数的功能与用法;(掌握)(4)应用一维和二维数组进行程序设计的一般方法与典型算法。(掌握)重点:(1)数组的概念、数组的定义及数组的引用;(2)字符串处理函数的功能与用法难点:二维数组的使用、字符数组的定义使用、字符串的存储与使用。第七章 函数 6学时主要内容:(1)函数的定义与调用 1.函数的定义 2.函数的参数 3.函数的返回值 4.函数的调用(2)函数的嵌套调用与递归调用(3)数组作为函数参数(4)变量的分类 1.变量的作用范围 2.变量的存储方式基本要求:(1)函数的功能;(理解)(2)函数定义和调用;(掌握)(3)函数调用中的值传递;(理解)(4)变量的作用域和存储类别。(掌握)重点:(1)函数的定义和调用。(2)函数调用中的值传递(3)变量的作用域和存储类别难点:(1)函数递归调用(2)变量的作用域和存储类别。第八章 指针 4学时主要内容:(1)指针的基本概念 1.指针的概念 2.指针变量的定义 3.指针变量的赋值(2)数组的指针和指向数组的指针变量(3)字符串的指针和指向字符串的指针变量(4)返回指针值的函数(5)指针数组和指向指针的指针基本要求:(1)地址与指针变量的概念,地址运算符与间址运算符;(理解)(2)一维数组和字符串的地址以及指向变量、一维数组、字符串的指针变量的定义。通过指针引用以上各类型数据;(掌握)(3)指针变量作为函数参数的用法;(掌握)(4)返回地址值的函数;(了解)重点:(1)指针的定义与使用;(2)指针与变量、数组、结构体、函数之间的关系。难点:(1)地址与指针变量的概念;(2)指针的定义与使用;(3)指针变量作为函数参数;(4)指针与变量、数组、结构体、函数之间的关系。第九章 结构体 5学时主要内容:(1)结构体类型变量的定义、引用和初始化(2)结构数组(3)指向结构体类型数据的指针(4)用typedef定义类型基本要求:(1)结构体的含义;(理解)(2)结构体类型变量的定义、初始化及引用。(掌握)(3)结构体数组的定义和数组元素的引用;(掌握)(4)用typedef说明一个新类型。(掌握)重点:(1)结构体的定义与使用;(2)结构体数组的定义和数组元素的引用难点:(1)结构体的定义与使用;(2)结构体数组的定义和数组元素的引用(3)指针与结构体之间的关系。第十章 文件 2学时主要内容:(1)文件的打开与关闭(2)文件的读写(3)关于文件的其他函数基本要求:(1)文件的打开与关闭(理解)(2)文件的读写(理解)(3)文件的其他函数(了解)重点:(1)文件的打开与关闭(2)文件的读写难点:文件的读写教学环节时数课程内容讲课实验习题讨论小计第一章 引论20002第二章 数据类型和运算40318第三章 顺序结构522110第四章 选择结构523212第五章 循环结构643215第六章 函数622212第七章 数组622212第八章 指针41229第九章 结构体523212第十章 文件20002总计4515201494五、实验(或)上机内容实验一: C程序的运行环境和数据类型、顺序结构 2学时一、实验目的1了解VC+6.0编译系统的基本操作方法,学会独立使用该系统。2了解在该系统上如何编辑、编译、连接和运行一个C程序。3通过运行简单的C程序,初步了解C源程序的特点。4掌握数据类型、运算符与表达式、数据的输入输出5熟悉C语言中的基本数据类型,掌握定义常量和变量以及对它们赋值的方法,了解数据输出时所用格式转换符。6掌握格式输入/输出函数的用法。7学会简单顺序程序的设计。8养成良好的程序设计习惯。二、实验内容1编写一程序,在屏幕上输出如下内容: 2编写一程序,接受用户输入的两个整数,并计算它们的和、差、积、商,程序运行结果应如下所示。注意,尖括号部分表示用户输入数据或要被替换的输出内容,尖括号本身并不需要输入或输出。 The program gets two integers,and computes their sum,difference,product and quotient.The first number:The second number:Results as follows:+=-=*=/=3编制程序,接受用户输入的数值,输出以该值为半径的圆面积,以该值为半径的球体表面积与体积,pi取值3.1415926536,结果保留10位有效数字。4(选做)编制程序,输出下述数据。说明:(1)表中数据来自总参谋部测绘局编制的世界地图集,数据可能已不准确;(2)面积单位为万平方公里,人口单位为万人,GDP单位为十亿美元。(3)表中所有数据都必须以变量的形式保存;(4)如果不知道每字段宽度到底为多少,请仔细数数作为分隔标记的短横数目。-COUNTRYAREA(10Kkm2)POP(10K)GDP(Billion$)-China 960.00 129500.00 1080.00Iceland 10.30 27.57 8.20India 297.47 97000.00 264.80Madagascar 62.70 1635.00 3.60Maldive 0.0298 27.80 0.23-实验二:选择结构程序设计 2学时一、实验目的1熟悉C语言中的if语句的三种形式以及switch语句的使用方法,了解它们之间的异同之处。2掌握if语句和switch语句的用法。3学会选择结构程序的设计。二、实验内容1由键盘输入3个整数,输出其中最大的数。2输入三解形的三条边a,b,c,判断它们能否构成三角形,若能构成三角形,指出是何等三角形(等腰三角形、直角三角形、一般三角形)。3输入百分制成绩,要求输出成绩等级A、B、 C、D、 E如何实现下述输出要求?90分以上为A,8089为B,7079为C,6069为D,60分以下为E。4(选做)在屏幕上显示一张如下所示的时间表: *Time*1 morning2 afternoon3 nightplease enter your choice:操作人员根据提示进行选择,程序根据输入的序号显示相应的问候信息。如选择1显示“Good morning”, 选择2显示“Good afternoon”, 选择3显示“Good night”,对于其他选择显示”Selection error!”。5写一个程序,从终端输入一个字符,如果是小字字母则将其转换成大字字母并输出,如果是大字字母换成小字字母并输出,如果都不是则原样输出。实验三:循环控制结构程序设计 4学时一、实验目的1熟悉C语言中的While循环、do-While循环以及for语句的使用方法,了解它们之间的异同之处。2掌握while语句和for语句的用法。3了解break和continue的区别。4学会循环结构程序的设计。二、实验内容1输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。2编程计算1*2+3*4+99*100值。3编程实现上三角形式的九九乘法表。4编写程序求出所有的“水仙花数”,是指一个三位数,其各位数字的立方和恰好等于该数本身。例如:1531*1*1+5*5*5+3*3*3,所以153是“水仙花”。5求S=a+aa+aaa+aaa(n个a)之值,其中a是一个数字。例如2+22+222+2222+22222(此时n=5),注意,a的值和n的值都由键盘输入。6(选做)一个数如果恰好等于它的因子之和,这个数就称为完整数。例如6的因子为1、2、3,而6=1+2+3,因此6是完数,编程找出1000之内的所有完数,并按下面格式输出所有的完数和其因子:6是一个完数:6=1+2+3;实验四:数组-1 1学时一、实验目的1掌握一维数组和二维数组的定义、赋值和输入输出的方法。2掌握字符数组和字符串函数的使用。3掌握与数组有关的算法。二、实验内容1由用户输入10个整数,将这10个整数放入一个数组中,然后将数组中的值按从大到小的顺序排序并。重新存放。如原来的顺序是7,3,9,10,2,6, 1,5, 4,8要求改为10,9,8,7,6,5,4,3,2,1。2由用户输入10个整数,将这10个整数放入一个数组中,然后将数组中的值按相反的顺序重新存放。如原来的顺序是7,3,9,10,2,6, 1,5, 4,8要求改为8,4,5,1,6,2,10,9,3,7。实验五:数组-2 1学时一、实验目的1掌握一维数组和二维数组的定义、赋值和输入输出的方法。2掌握字符数组和字符串函数的使用。3掌握与数组有关的算法。二、实验内容110个同学排成一个首尾相连的圈,先给每位同学从1到10编号,然后依次报数(1,2,3),报到3的同学退出,至到只剩1个同学为止,请求出最后剩下的这个同学的编号是多少。2把一个矩阵转置成矩阵,并输出。实验六:函数-1 1学时一、实验目的1掌握函数定义的方法。2掌握函数实参和形参的对应关系,以及“值传递”的方法。3掌握数组名作为实参时,实参和形参之间的传递方法。4掌握函数的嵌套、递归调用方法和应用。5掌握局部变量、全局变量的定义和使用。二、实验内容1写一个判断素数的函数,形参为一个整数,当该整数是素数时,返回1,否则返回0。在主函数中输入一个整数,输入是否是素数的信息。(素数:只能被1和自身整除的数)。 2(选做)一个素数,当它的数字位置对换后仍是素数,这样的数称为绝对素数。编写一个函数,求出所有的二位绝对素数。在主函数调用该函数。3从键盘任意输入5个学生的姓名,编程找出并输出按字典顺序排在最前面的学生姓名 。(提示等价于求最小字符串):4请编写一个函数int Fun(int s,int n),用来求出数组的最大元素在数组中的下标并做为返回值返回给主调函数,n为数组的元素个数。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include int Fun(int s,int n) void main() int a10= 876,675,896,101,301,401,980,431,451,777,k; k=Fun(a, 10); printf(%d, %dn , k, ak);5(选做)请编写函数Fun,该函数的功能是:判断字符串是否为回文,若是则函数返回1,主函数中输出YES,否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。 例如,字符串LEVEL是回文,而字符串123312就不是回文。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数Fun的花括号中填入所编写的若干语句。#include #define N 80int Fun(char str)main() char sN; char test10=1234321,123421,123321,abcdCBA; int i; printf(Enter a string : ); gets(s); printf(nn); puts(s); if(Fun(s)printf(YESn); elseprintf(NOn); /测试 for(i=0;i4;i+) if(Fun(testi)printf(YESn);elseprintf(NOn);/ 测试结束6(选做)请编写一个函数,用来删除字符串中的所有空格。 例如,输入asd af aa z67,则输出为asdafaaz67。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include void Fun (char str) main() char str81; gets(str); puts(str); Fun(str); printf(* str: %sn,str); 实验七:函数-2 1学时一、实验目的1掌握函数定义的方法。2掌握函数实参和形参的对应关系,以及“值传递”的方法。3掌握数组名作为实参时,实参和形参之间的传递方法。4掌握函数的嵌套、递归调用方法和应用。5掌握局部变量、全局变量的定义和使用。二、实验内容1编写一个函数flaot Fun(int n),函数的功能是:根据以下公式计算S,计算结果作为函数值返回。n通过形参传入。main函数如下:(注意:请无改动main函数)void main()int n;float s;printf(nPlease enter N:);scanf(%d,&n);s=Fun(n);printf(The result is %fn,s);2请编写函数 long Fun(int g),其功能是:用递归算法计算斐波拉契级数列中第n项的值。从第一项起,斐波拉契级数序列为1,1,2,3,5,8,13,21,例如,若给n输入7,该项的斐波拉契级数值为13。 斐波拉契级数第n项的值:main函数如下:(注意:请无改动main函数)void main() long fib; int n; printf(Input n:);scanf(%d,&n); printf(n=%dn,n); fib=Fun(n); printf(fib=%dnn,fib);3(选做)请编写函数Fun,该函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中。要求函数把0至9岁年龄段的人数在d0中,把10至19岁年龄段的人数放在d1中,把20至29岁年龄段的人数放在d2中,依次类推,把100岁(含100岁)以上年龄的人数都放在d10中。结果在主函数中输出。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数Fun的花括号中填入所编写的若干语句。#include #include #include # define N 50# define M 11void Fun(int a, int b)void main() int ageN, i,dM;srand(time(NULL);for(i=0; iN; i+) agei=rand() % 120 + 1; /*产生一个随机的年龄数组*/printf(The original data :n);for(i=0; iN; i+) printf(i+1)%10=0? %4dn:%4d,agei); /*每行输出10个数*/printf(nn);Fun(age,d);for(i=0; i10; i+)printf(%4d-%4d :%4dn, i*10, i*10+9,di);printf( Over 100 :%4dn,d10);实验八:指针、结构型与联合型 3学时一、实验目的1掌握指针的概念,会定义和使用指针变量。2能正确使用数组的指针和指向数组的指针变量。3掌握正确使用字符串的指针和指向字符串的指针变量。4掌握结构体类型变量的定义和使用。5掌握结构体类型数组的概念和应用。6掌握共用体的概念和使用。二、实验内容1请编写一个函数void Fun(int *s,int t,int *k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。 例如,输入如下整数: 876 675 896 101 301 401 980 431 451 777 则输出结果为6,980。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include void Fun(int *s,int t,int *k) void main() int a10= 876,675,896,101,301,401,980,431,451,777,k; Fun(a, 10, &k); printf(%d, %dn , k, ak);2请编写函数Fun,该函数的功能是:判断字符串是否为回文,若是则函数返回1,主函数中输出YES,否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。 例如,字符串LEVEL是回文,而字符串123312就不是回文。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数Fun的花括号中填入所编写的若干语句。#include #define N 80int Fun(char *str)main() char sN; char *test=1234321,123421,123321,abcdCBA;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论