文档库 最新最全的文档下载
当前位置:文档库 › C语言项目实例

C语言项目实例

C语言项目实例
C语言项目实例

项目1、学生信息管理

(1)问题描述

学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:

系统以菜单方式工作

学生信息录入功能(学生信息用文件保存)---输入

学生信息浏览功能---输出

查询、排序功能---算法

按学号查询、按姓名查询、学生信息的删除与修改(可选项)

(2)功能要求

界面比较美观;有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入;最好用链表的方式实现。

(3)算法分析

首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。

对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。文件的读写操作大家参照书中的有关文件的章节。

项目2、学生综合测评系统

每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。

A、学生信息处理

(1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。

提示:学生信息可先输入到数组中,排序后可写到文件中。

(2) 插入(修改)同学信息:

提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,

(3) 删除同学信息:

提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。

(4) 浏览学生信息:

提示:打开文件,显示该文件的学生信息。

B、学生数据处理:

(1) 按考试科目录入学生成绩并且按公式:考试成绩=(语文+数学+外语)/3 计算考试成绩,并计算考试名次,提示:先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。

(2) 学生测评数据输入并计算综合测评总分及名次。

提示:综合测评总分=(考试成绩)*0.6+(同学互评分)*0.1+品德成绩*0.1+任课老

师评分*0.2。

(3) 学生数据管理

提示:输入学号,读出并显示该同学信息,输入新数据,将改后信息写入文件

(4) 学生数据查询:

提示:输入学号或其他信息,即读出所有数据信息,并显示出来。

C、学生综合信息输出

提示:输出学生信息到屏幕。

项目3、学校运动会管理系统

问题描述:

(1) 初始化输入:N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数;

(2) 各项目名次取法有如下几种:

取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名得分 1;

(3) 由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。

(4) 所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。

项目4、教师工作量管理系统

计算每个老师在一个学期中所教课程的总工作量。(教师单个教学任务的信息为:教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时、单个教学任务总课时)

A、教师信息处理

(1) 输入教师授课教学信息,包括教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时。

(2) 插入(修改)教师授课教学信息:

(3) 删除教师授课教学信息:

(4) 浏览教师授课教学信息:

B、教师工作量数据处理:

(1) 计算单个教学任务总课时。计算原则如下表:

班级数目单个教学任务总课时

2 1.5*(理论课时+实验课时)

3 2*(理论课时+实验课时)

>=4 2.5*(理论课时+实验课时)

(2) 计算一个教师一个学期总的教学工作量。总的教学工作量=所有单个教学任务总课时之和。

(3)教师数据查询:

提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。

C、教师综合信息输出

提示:输出教师信息到屏幕。

项目5、力学实验设备管理系统

要求: 通过该系统实现对力学实验设备信息进行录入、修改、统计、查询、保存等操作的管理。

实验设备信息包括:设备编号、设备种类、设备名称(如烧杯、酒精灯等),设备价格、设备购入日期、是否报废,报废日期等。

主要功能:

(1)能够完成对设备的录入和修改

(2)对设备进行分类统计

(3)设备的破损耗费和遗损处理

(4)设备的查询

(5)将设备信息保存到文件中

项目6、火车票务管理系统

(1)火车时刻信息录入。包括车次、日期、起点、终点、开车时间、到达时间、票

价。数据存入数据文件hchsk.dat或hchsk.txt中。

(2)火车时刻信息查询。

按照车次查询

按终点查询

按起点查询

按终点和日期查询

(3)统计

按终点统计每日的车次数

按起点统计每日的车次数

2. 系统主界面应有以下功能选项

录入火车时刻信息

查询火车时刻信息

统计火车车次

退出

项目7、保龄球计分

【问题描述】打保龄球是用一个滚球去撞击10个站立的瓶,将瓶击倒。一局分10 轮,每轮可滚球1 次或多次,以击到的瓶数为依据计分,一局得分为10轮得分之和,而每轮的得分不仅与本轮的滚球情况有关,还可能与后一轮或两轮的滚球情况有关,即:某轮某次滚球击倒的瓶数不仅要计入本轮得分,还可能会计入前一轮或两轮得分。计分规则如下:

①若某一轮的第一次滚球就击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加2次滚球),该轮得分为本次击倒瓶数10与以后2次滚球所击倒瓶数之和。

②若某一轮的第一次滚球未击倒全部10个球,则对剩下未击倒的瓶再滚球一次,如果这2次滚球击倒全部10个瓶,则本轮不再滚球(若是第10轮还需加1次滚球),该轮得分为这2次击倒瓶数10与以后1次滚球所击倒瓶数之和。

③若某一轮2次滚球未击倒全部10个瓶,则本轮不在滚球,该轮得分为这2次滚球所击倒瓶数之和。

【实现提示】

①模拟10个人各打一局保龄球比赛过程,统计每局各轮得分和累计总分。

②逐人逐轮逐次输入一次滚球击倒的瓶数。

③对10人的得分由低到高排序并显示。

④最后,把排序的存入文件中。

项目8、学生成绩统计

【问题描述】

学期考试结束,统计有N个班某班每个人的平均成绩,每门课的平均成绩,并按个人平均成绩从高到低的顺序输出成绩,输出不及格人名单。输入、输出格式自定。

【实现提示】

假设某班有:30人(姓名自定)

考试课程有:高等数学、物理、外语、C语言、德育5门课程。

将所有同学的成绩保留在文件中,对文件中的数据处理,输出所要求的内容,程序的功能主要包括3方面:

①输入成绩到文件中

②输出成绩

③输出不及格学生名单

④成绩排序

⑤修改记录

⑥删除记录

⑦插入记录等

主函数中对3个功能选择(菜单),调用对应的函数完成。

项目9、编制一个学生的选课及学籍管理程序

【问题描述】现有若干个班级的学生,进行下学期课程的选课,假设已经通过文件储存了选课内容的文件,文件中包括7门课(课程内容由学生自己定) 第i门课程的接纳的学生数为10×i,i为课程的序号,如第一门课的接纳的学生数为10×1,第二门课为10×2,...... 依此类推,每门课的学分数分别为1、2、3、4、5、6、7,现要求每一个学生至少选3门课,最多不超过5门。

【实现提示】

(1)显示课程内容供学生选择,并能进行选课的操作

(2)进行学生的最少选课量和最多选课量的控制

(3)显示所有学生的选课的结果

(4)把学生所选的课按学分总积分由小到大排列,同样学分按姓名的英文字母排序(5)录入学生的各科成绩

(6)学生的参数有:姓名、学号、性别、总学分、各科成绩,补考情况,请把一门和三门功课不及格的学生的姓名列出,

项目10、图书管理系统

编写图书管理系统,具有以下基本功能

(1)各种基本数据的录入。如:图书资料基本信息录入等。

(2)各种基本数据的修改。即:允许对以及录入的数据重新进行编辑、修改。

(3)各种基本数据的插入。如:在图书采购信息中插入一条新信息等。

(4)各种基本数据的删除。如:假设某本书遗失且馆藏数为0,删除该书的相关信息等。

(5)基于各种数据的查询。如:书名中含有“计算机”的所有书籍、全部借出的所有图书等。

(6)基于各种基本数据的统计计算。

项目11、通信录

设计“通讯录管理系统”使其具有数据插入、修改、删除、显示和查询等功能。

(1)数据包括:人名、工作单位、电话号码和E-mail地址。

(2)可对记录中的姓名和电话号码进行修改。

(3)可增加或删除记录。

(4)可显示所有保存的记录。

(5)可按人名或电话号码进行查询。

每个学生的信息包括:学号no, 姓名, 院系academic,专业major,籍贯province,家庭地址address,电话phone等。使用结构体存取每个学生的信息,多个学生的信息可以保存到

结构体数组中。最好使用文本文件保存以往的所有学生信息,添加、删除之后应更新该文本文件。程序运行后,应有一个简单的操作界面。程序代码要求清晰可读,多加注释。

《C程序设计语言》样卷

韩山师范学院2011年专升本插班生考试样卷 计算机科学与技术专业高级语言程序设计试卷(A卷) 一、填空题(每空1分,共10分) 1.C程序的基本单位是________。 2.C语言源程序文件的后缀是________。 3.C语言中的标识符由________、________和字母组成。 4.设y为float型变量,执行表达式y=6/5之后,y的值是________。 5.在C语言中,要求运算量必须是整型的运算符是___________。 6.如果函数值的类型与返回值的类型不一致时,应该以___________为准。7.已知int a=8,*p=&a;,则*p的值是___________。 8.把一些不同类型的数据作为一个整体来处理时,常用___________。9.若x=2,y=3,则x|y<<2的结果是___________。 二、单项选择题(每小题1.5分,共30分) A.顺序结构、选择结构、循环结构B.递归结构、循环结构、转移结构C.嵌套结构、递归结构、顺序结构D.循环结构、转移结构、顺序结构2.在一个C语言的源程序中,以下叙述正确的是()。

A.必须有除主函数外其他函数B.可以有多个主函数 C.必须有一个主函数D.可以没有主函数 3.以下叙述正确的选项是()。 A.C语言的源程序不必通过编译就可直接执行 B.C语言中的每条语句最终都将被转换成二进制的机器指令 C.C语言程序经编译形成的二进制代码可以直接执行 D.C语言中的函数不可以单独进行编译 4.算法是指为解决某个特定问题而采取的正确且有限的步骤,下面不属于算法的5个特性的是( )。 A.有零个输入或多个输入B.高效性C.有穷性D.确定性5.以下能正确定义且赋初值的语句是( )。 A.int n1=n2=10; B.char c=32; C.float f=f+1.1; D.double x=12.3E2.5 6.有以下程序: main() { char a='a',b; printf("%c",++a); printf("%c\n",b=a++); } 程序运行后的输出结果是( )。 A.bb B.bc C.ab D.ac 7.以下程序段的输出结果是( )。 int a=1234; printf("%2d ",a); A.12 B.34 C.1234 D.提示出错 8.有以下程序:

C程序设计语言 (第二版) 课后答案第一章

Chapter 1 Exercise 1-1 Run the “hello world” program on your system. Experiment with leaving out parts of the program, to see what error message you get. #include int main() { printf("hello, "); printf("world"); printf("\n"); return 0; } Exercise 1-2 Experiment to find out what happens when printf’s argument string contains \c, where c is some character not list above. Exercise 1-3 Modify the temperature conversion program to print a heading above the table. #include int main() { float fahr, celsius; float lower, upper, step; lower = 0; upper = 300; step = 20; fahr = lower; printf("Fahrenheit temperatures and their centigrade or Celsius equivalents\n"); while (fahr <= upper) { celsius = (5.0/9.0) * (fahr-32.0); printf("%3.0f %6.1f\n", fahr, celsius); fahr = fahr + step; } return 0; }

(完整版)C程序设计语言复习题(试题及答案版)

一.填空题 26.C#源程序的后缀名为______.cs________。 26.C#中每个int 类型的变量占用____4___个字节的内存。 26.C#的每行语句以________分号_______结尾。 26.布尔型的变量可以赋值为关键字_____true__________或_____false_________。 26.如果int x的初始值为5,则执行表达式x - =3之后,x的值为_____2_________。 26.do...while语句在执行循环体_____之后________测试语句是否满足循环条件。 26.关键字_______class________表示一个类的定义。 26.如果一个类包含一个或多个抽象方法,它是一个_________抽象_____________类。 26.try块运行后,总是会执行_________finally_____________块中的代码。 26.一个数组如果有两个索引值,那么它是__________二维__________数组。 二.单项选择题 1.在对SQL Server 数据库操作时应选用()。 A、SQL Server .NET Framework 数据提供程序; B、OLE DB .NET Framework 数据提供程序; C、ODBC .NET Framework 数据提供程序; D、Oracle .NET Framework数据提供程序; 2.下列选项中,()是引用类型。 A、enum类型 B、struct类型 C、string类型 D、int类型 3.C#的数据类型有() A、值和调用类型; B、值和引用类型; C、引用和关系类型; D、关系和调用类型 4.下列描述错误的是() A、类不可以多重继承而接口可以; B、抽象类自身可以定义成员而接口不可以; C、抽象类和接口都不能被实例化; D、一个类可以有多个基类和多个基接口; 5.下列关于构造函数的描述正确的是() A、构造函数可以声明返回类型。 B、构造函数不可以用private修饰 C、构造函数必须与类名相同 D、构造函数不能带参数 6.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; 那么myArray3[2][2]的值是( )。 A、9 B、2 C、6 D、越界 7.接口是一种引用类型,在接口中可以声明(),但不可以声明公有的域或私有的成员变量。 A、方法、属性、索引器和事件; B、方法、属性信息、属性; C、索引器和字段; D、事件和字段; 8.在https://www.wendangku.net/doc/7313334271.html,中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误 的是()。 A、insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行; B、ExecuteNonQuery()方法返回执行Sql语句所影响的行数。 C、Select操作的Sql语句只能由ExecuteReader()方法来执行; D、ExecuteReader()方法返回一个DataReder对象; 9.Winform中,关于ToolBar控件的属性和事件的描述不正确的是( )。 A、Buttons属性表示ToolBar控件的所有工具栏按钮 B、ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度 C、DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下箭 头键 D、ButtonClick事件在用户单击工具栏任何地方时都会触发

C语言实训项目分析及源码

防灾科技学院 实习报告书 防灾科技学院灾害信息工程系 2015年制

项目一C语言实习 一、实习目的 本课程是网络工程专业的一门专业必修课程,是学生学习完C语言程序设计专业基础课程后,进一步学习其他专业课程前必须完成的一项实践教学环节。 本次实习通过1个综合性强、实用性强、趣味性强的应用实例,使学生进一步巩固C语言基本知识,掌握应用程序设计语言描述问题、分析问题和解决问题的方法和思想,为后继的面向对象程序设计、数据结构、Web应用技术、网络工程专业实习、网络工程生产实习、网络工程毕业实习课程等课程打下基础。 通过本课程的学习,使学生进一步明确学习目标、增强学习动力、培养学习兴趣。 二、实习任务概述 任务一:员工工资管理系统的设计与实现 本系统基于C语言,实现了一个小型的信息管理系统,主要包括以下功能: 1.信息的录入: a)首次进入系统,可以添加职工的工号、姓名、基 本工资、津贴、员工奖金等数据录入操作。 b)系统再次登录,可以从文件导入信息,也可以对 文件内容进行修改,保存退出。 2.删除操作:对离职的员工信息要从系统里删除。 3.显示操作:将结构体中职工信息输出到屏幕上。 4.查询与修改操作:分别按职工工号和职工姓名查询,修改职工信息并保存。 5.统计与排序操作:分别统计所有员工的总工资,实现对总工资的排序。 三、实习所用软件简介 VC++6.0是Microsoft公司推出的一个基于Windows系统平台、可视化的集成开发环境,它的源程序按C++语言的要求编写,并加入了微软提供的功能强大的MFC(Microsoft Foundation Class)类库。使用VC++提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单。 使用VC++提供的高度可视化的应用程序开发工具和MFC类库,可使应用

C语言项目实例

项目1、学生信息管理 (1)问题描述 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能: 系统以菜单方式工作 学生信息录入功能(学生信息用文件保存)---输入 学生信息浏览功能---输出 查询、排序功能---算法 按学号查询、按姓名查询、学生信息的删除与修改(可选项) (2)功能要求 界面比较美观;有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入;最好用链表的方式实现。 (3)算法分析 首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。 对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。文件的读写操作大家参照书中的有关文件的章节。 项目2、学生综合测评系统 每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。 A、学生信息处理 (1)输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。 提示:学生信息可先输入到数组中,排序后可写到文件中。 (2)插入(修改)同学信息: 提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容, (3)删除同学信息: 提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。 (4)浏览学生信息: 提示:打开文件,显示该文件的学生信息。 B、学生数据处理: (1)按考试科目录入学生成绩并且按公式:考试成绩=(语文+数学+外语)/3计算考试成绩,并计算考试名次,提示:先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。 (2)学生测评数据输入并计算综合测评总分及名次。 提示:综合测评总分=(考试成绩)*0.6+(同学互评分)*0.1+品德成绩*0.1+任课老

C语言经典编程实例+分析+答案

C语言程序实例+分析+答案 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } } ============================================================== 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() {

long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*;bonus2=bonus1+100000*; bonus4=bonus2+200000*; bonus6=bonus4+200000*; bonus10=bonus6+400000*; if(i<=100000) bonus=i*; else if(i<=200000) bonus=bonus1+(i-100000)*; else if(i<=400000) bonus=bonus2+(i-200000)*; else if(i<=600000) bonus=bonus4+(i-400000)*; else if(i<=1000000) bonus=bonus6+(i-600000)*; else bonus=bonus10+(i-1000000)*; printf("bonus=%d",bonus); } ============================================================== 【程序4】 题目:输入某年某月某日,判断这一天是这一年的第几天? 1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。 2.程序源代码: main() { int day,month,year,sum,leap;

《C程序设计语言》模拟试卷二

一、单项选择题 1.以下并非C语言的特点的是____________。 A.C语言简洁紧凑 B.能够编写出功能复杂的程序 C.C语言可以直接对硬件进行操作 D.C语言移植性好 2.在C程序中,main()的位置___ ______。 A.必须作为第一个函数 B.必须作为最后一个函数 C.可以任意 D.必须放在它所调用的函数之后 3.一个C程序是由____ ________。 A.一个主程序和若干个子程序构成 B.一个或多个函数构成 C.若干过程组成 D.若干子程序组成 4.以下字符串为标识符的是___ _________。 A._MY B.2_2222 C.short D.LINE 5 5.下列符号可以作为变量名的是___ ________。 A.+a B.*p C._DAY D.next day 6.设c是字符变量,则以下表达式正确的是___ _______。 A.c=666 B.c='c' C.c="c" D.c="abcd" 7.以下说法正确的是_____ _______。 A.输入项可以为一个实型常量,如scanf("%f", 3.5) B.只有格式控制没有输入项也能进行正确输入,如scanf("%d") C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如 D.当输入数据时,必须指定变量的地址,如scanf("%f", &f) 8.若a, b, c均定义为整型,要给它们输入数据,正确的输入语句是____ ________。 A.read(a, b, c); B.scanf("%d%d%d", a, b, c); C.scanf("%D%D%D", a, b, c); D.scanf(%d%d%d", &a, &b, &c); 9.若a是float变量,b是unsigned型变量,以下输入语句中合法的是____ ___。 A.scanf("%6.2f%d", &a, &b); B.scanf("%f%n", &a, &b); C.scanf("%f%3o", &a, &b); D.scanf("%f%f", &a, &b); 10.if后面的表达式之值__________。 A.只能是0或1 B.只能是正整数或负整数 C.只能是整数或字符型数据 D.可以是任何类型的数据 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与__ ___组成配对 关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其直接最近的未配对的if D.同一行上的if 12.选择出合法的if语句(设int x, a, b, c;)____ _____。 A.if(a = b0 x++; B.if (a =< b) x++; C.if(a <> b) x++; D.if (a=>b) x++; 13.语句while(!e); 中的条件!e等价于____ _______。 A. e == 0 B.e!=1 C.e!=0 D.~e 14.C语言中while和do-while循环的主要区别是____ _______。 A.do-while的循环体至少无条件执行一次 B.while的循环控制条件比do-while的循环控制条件严格

C程序设计语言资料

第3次作业 一、填空题(本大题共20分,共5小题,每小题4分) 1?假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为 2. 类型兼容原则指的是:任何在需要________ 对象的地方,都可以用_______________________________________ 的对象 去替代。 3. 重新抛出异常的表达式为:__________ 4. 以下程序的执行结果是______________________ #i nclude using n amespace std; class Base{ public: Base(){cout<< ” T ;} ~Base(){cout<< ” 2” ;} }; class Derived : public Base{ public: Derived(){cout<< ” 3” ;} ~Derived(){cout<< ” 4” ;} }; void mai n(){ Derived d;

5. 以下程序的执行结果是______________________ #i nclude using n amespace std; class A{ int x; public: A(int x){this->x=x;} A &operator--(){x--;return *this;} A operator— nt){A a(x-=2);retur n a;} void show(){ cout? x;} }; void mai n(){ A a(3),b(3); (a--).show(); (--b).show(); } 二、程序阅读题(本大题共40分,共5小题,每小题8分) 1.写出下面程序运行结果。 #i nclude void rev(i nt a[],i nt n) { int t; for(int i=0,j=n-1;i

(整理)C语言入门经典案例及源代码.

循环控制输出图案 【程序1】 题目:输出9*9口诀。 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 2.程序源代码: #include "stdio.h" main() { int i,j,result; printf("\n"); for (i=1;i<10;i++) { for(j=1;j<10;j++) { result=i*j; printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/ } printf("\n");/*每一行后换行*/ } } 【程序2】 题目:要求输出国际象棋棋盘。 1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 2.程序源代码: #include "stdio.h" main() { int i,j; for(i=0;i<8;i++) { for(j=0;j<8;j++) if((i+j)%2==0) printf("%c%c",219,219); else printf(" "); printf("\n"); } } ============================================================== 【程序3】 题目:打印楼梯,同时在楼梯上方打印两个笑脸。 1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 2.程序源代码: #include "stdio.h"

main() { int i,j; printf("\1\1\n");/*输出两个笑脸*/ for(i=1;i<11;i++) { for(j=1;j<=i;j++) printf("%c%c",219,219); printf("\n"); } } 【程序4】 题目:打印出如下图案(菱形) * *** ****** ******** ****** *** * 1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列。 2.程序源代码: main() { int i,j,k; for(i=0;i<=3;i++) { for(j=0;j<=2-i;j++) printf(" "); for(k=0;k<=2*i;k++) printf("*"); printf("\n"); } for(i=0;i<=2;i++) { for(j=0;j<=i;j++) printf(" "); for(k=0;k<=4-2*i;k++) printf("*"); printf("\n"); } }

C程序设计语言第次

第1次作业 一、单项选择题(本大题共60分,共 20 小题,每小题 3 分) 1. C++程序中,用于实现数据输出的是()。 A. 输出流对象cin和提取运算符>> B. 输出流对象cin和插入运算符<< C. 输出流对象cout和提取运算符>> D. 输出流对象cout和插入运算符<< 2. C++程序中,定义内联函数时需要函数的返回值类型前加上关键字()。 A. outline B. inline C. in D. inport

3. 下面所列选项中,合法的用户标识符是()。 A. if B. switch C. finename D. int 4. C++程序中,定义引用变量时,()。 A. 使用的运算符是* B. 使用的运算符是() C. 使用的运算符是& D. 使用的运算符是[] 5. C++程序中要使用标准输入/输出流对象,必要包含()。 A.

string头文件 B. cmath头文件 C. iostream头文件 D. cctype头文件 6. C++程序中,为了导入标准命名空间,使用的语句是()。 A. inporting namespace std; B. using namespace std; C. using namespace standard; D. inporting namespace standard; 7. 下列关于函数的说法中,不正确的是()。 A. 在不同函数中可以使用相同的名字命名变量 B. 形式参数是局部变量 C. 在函数内部定义变量的作用域在本函数中 D. 在一个函数内的复合语句中定义变量的作用域也是整个函数 8. C++程序的函数调用中,使用数值参数传递时,()。

《C程序设计语言》读书笔记及课后答案

通过一周多的学习,大体看完了《C程序设计语言》这本书,这是我的笔记。 (一)读这本书的目标是什么? (1)、读完后必须深入了解C的语法以及内涵,并且达到熟练应用。 (2)、通过练习习惯一种编程风格,深入理解指针,数组,结构体以及内存分配。 (3)、通过练习锻炼逻辑思维能力 (4)、学完后编程要上一个层次,自己能够编写出有用的C代码。 (二)这本书哪个部分是我要重点看的? (1)、指针、数组、结构体 (2)、内存分配 (3)、输入输出及接口问题 (三)读这本书我有什么收获? 3、1 对于本书的感受 这是一本经典的C语言书籍,与其他语法书不同的是所有语法都是用例题来讲的,通过例子理解并练习语法,另外这本书的习题比较难做,不是简单的考语法,而是一些有意义的习题。通过做练习发现还是有所收获的。本书中与Linux联系密切,用C重写了许多简化版的Shell命令如:grep,ls,cat,sort,tail,cp等等。 3、2 收获: 因为本来就有C语言的基础知识,所以对于语法问题基本没有多学新的知识,但是仍然对以下几点有了新的了解: 1)、位字段,不管是通过直接设置位字段还是用以前的位计算,都有新的了解与认识。 2)、指针。建立了“指针为大”的思想,对于应用指针进行类型转换以及运算 都有了新的认识。比如:int a=5,char* p, p=(char)&a,*p = ‘c’;建立这样的过 程对于更加复杂的指针转换就理解了。 3)、结构体。通过第六章对于二叉树以及哈希表的应用深入了解结构体, 并且通过调试程序观察递归过程,同时对递归有了一定的理解。 4)、内存分配malloc函数,通过第八章的学习对malloc函数的内部进行分析, 理解了动态内存管理机制。 3.3 学习的程度以及那些地方存在不足: 对于C的基本语法已经差不多了,但是否达到了当初的目标即在编程方面上一个层次,这我并不敢确定,因为到现在为止这本书上的习题有些我都没有搞定,又看了一下以前的有关C的东西是觉得已经好了许多了,最起码对于很麻烦的程序不再感到畏惧了。另外觉得自己对于某些问题还是没有理解透彻,比如说输入输出时的缓冲机制,比如说指针与结构体的灵活运用,比如说如何能够运用模块化的思想把一个大的问题逐步细分,通过一个一个的小模块(函数)逐步解决,这些有的是与逻辑思维有关,有些是与某方面的专业知识有关,有些是单纯与C有关,比如说有关缓冲与内存的知识要了解操作系统,另外编译原理也要知道,这些我以前都没有学过,以后会找机会补一补。当然随着进一步的学习与应用,会逐渐的熟练或理解某一些知识点。另外因为时间的原因,对于许多练习没有真正的从各个方面去思考,只是做出来就完了,也没有返回去再仔细考虑每一道习题的意义以及对于我的收获。 所以还有待以后有时间在对某些知识点进行学习。 习题是本书的重点,也用了不少时间,其中有些是通过对章节内容的学习后自己做出来的(S),有些是参考别人的,参考的原因主要有: (A)对题目不理解,不明白具体要做到什么程度。

C语言项目实例教学文案

C语言项目实例

项目1、学生信息管理 (1)问题描述 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能: 系统以菜单方式工作 学生信息录入功能(学生信息用文件保存)---输入 学生信息浏览功能---输出 查询、排序功能---算法 按学号查询、按姓名查询、学生信息的删除与修改(可选项) (2)功能要求 界面比较美观;有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入;最好用链表的方式实现。 (3)算法分析 首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。 对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。文件的读写操作大家参照书中的有关文件的章节。

项目2、学生综合测评系统 每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。 A、学生信息处理 (1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。 提示:学生信息可先输入到数组中,排序后可写到文件中。 (2) 插入(修改)同学信息: 提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容, (3) 删除同学信息: 提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。 (4) 浏览学生信息: 提示:打开文件,显示该文件的学生信息。 B、学生数据处理: (1) 按考试科目录入学生成绩并且按公式:考试成绩=(语文+数学+外语)/3 计算考试成绩,并计算考试名次,提示:先把学生信息读入数组,然后

C程序设计语言部分章节习题

第8章函数 一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。) 8.1 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参 C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参 考生答案: 正确答案: D 8.2 在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是 A)地址传递B)单向值传递C)由实参传形参,再由形参传实参D)传递方式由用户指定 考生答案: 正确答案: B 8.3 以下正确的说法是 A)定义函数时,形参的类型说明可以放在函数体内B)return后边的值不能为表达式 C)如果函数值的类型与返回值类型不一致,以函数值类型为准D)如果形参与实参类型不一致,以实参类型为准 考生答案: 正确答案: C 8.4 以下正确的说法是 A)用户若需调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C)系统根本不允许用户重新定义标准库函数 D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动调用 考生答案: 正确答案: B 8.5 以下叙述正确的是 A)函数可以嵌套定义但不能嵌套调用B)函数既可以嵌套调用也可以嵌套定义 C)函数既不可以嵌套定义也不可以嵌套调用D)函数可以嵌套调用但不可以嵌套定义 考生答案: 正确答案: D 8.6 下面对C语言的描述中,正确的是 A)函数一定有返回值,否则无法使用函数B)C语言函数既可以嵌套定义又可以递归调用C)在C语言中,调用函数时,只能将实参的值传递给形参 D)C语言程序中有调用关系的所有函数都必须放在同一源程序文件中 考生答案: 正确答案: C 8.7 下列说法中错误的是 A)静态局部变量的初值是在编译时赋予的,在程序执行期间不再赋予初值 B)若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽 C)静态全局变量可以被其他的编辑单位所引用 D)所有自动类局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语 句)时生成,退出其所在的函数体(或复合语句)时消失 考生答案: 正确答案: C 8.8 以下程序有语法错误,有关错误原因的正确说法是 void main() { int G=5,k; void prt_char(); ... k=prt_char(G); ...

C语言编程实例 100题

C语言程序实例100个(一) 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++)/*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } } ============================================================== 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000)

《C语言程序设计》-谭浩强(第四版)教案

《C 语言程序设计》-谭浩强(第四版)教案

C语言程序设计》教案

C 语言是近年来国内外得到迅速推广使用 的一种计算机语言。 C 语言程序设计课程是计 算机专业和信息管理专业的核心专业基础课 , 它功能丰富,表达能力强,使用灵活方便,应 用面广,目标程序效率高,可移植性好,既具 有高级语言的优点,又具有低级语言的优点。 既适用于应用软件编写,又适用于系统软件的 编写。在现代的工业机器人的众多语言中,大 多编程风格以 C 语言非常类似,学生学好 C 语 言,对将来的工作中,从事工业机器人现场编 程是非常有帮助的。 课程的性质和任务 《语言程序设计》这门课是我校工业机器人、 分布式发电与微电网专业的专业必修课。作为 计算机系的数据结构、 c++、单片机编程等课 程的前导课程,也是一门实践性很强的课程, 既要掌握概念,又要动手编程,还要上机调试 运行。对工业机器人专业来说是一门必修的课 程。 同时,这门课程也是 “湖南省非计算机专业 学生计算机应用能力水平考试 ”二级考试的主 要语种之一。 课程的教学目标 本课程的教学目标是: 通过理论和实践教学, 使学生较好地掌握 C 语言各方面的知识, 掌握 一、程序设计和 C 语言 重点:计算机程序、计算机语言、 C 语言 编译软件的安装、最简单的 C 语言程序 教 学 基 本 目 的 和 要 求

二、算法:程序的灵魂重点:简单的算法举例、算法的特性、用流程图表示算法。 三、顺序结构程序设计 重点:C 语言的数据类型、C 语句的种类、赋值语句、数据的输入输出及输入输出中最常用的控制格式。 四、选择结构程序设计重点:关系运算符与逻辑运算符及其组成的具有逻辑值的表达式、二条分支语句的格式及基本应用、多分支的选择语句。 五、循环结构程序设计重点:C 构成循环的四种方法,尤其是后三种方法、break 与continue 语句的基本作用。 难点:while 语句;do-while 语句;for 语句;循环的嵌套;break 与continue 语句。 六、数组 重点:一维数组、二维数组的定义与引用; 字符数组的定义与引用、常用字符串处理函数 及字符处理函数;数组的应用 难点:二维数组的定义与引用;字符数组; 数组的应用

C程序设计语言 (第二版) 课后答案第二章

Exercise 2-1 Write a program to determine the ranges of char , short , int , and long variables, both signed and unsigned , by printing appropriate values from standard headers and by direct computation. Harder if you compute them: determine the ranges of the various floating-point types. #include #include int main () { printf("Size of Char %d\n", CHAR_BIT); printf("Size of Char Max %d\n", CHAR_MAX); printf("Size of Char Min %d\n", CHAR_MIN); printf("Size of int min %d\n", INT_MIN); printf("Size of int max %d\n", INT_MAX); printf("Size of long min %ld\n", LONG_MIN); printf("Size of long max %ld\n", LONG_MAX); printf("Size of short min %d\n", SHRT_MIN); printf("Size of short max %d\n", SHRT_MAX); printf("Size of unsigned char %u\n", UCHAR_MAX); printf("Size of unsigned long %lu\n", ULONG_MAX); printf("Size of unsigned int %u\n", UINT_MAX); printf("Size of unsigned short %u\n", USHRT_MAX); return 0; } Exercise 2-2 Write a loop equivalent to the for loop above without using && or || . #include #define lim 100 void main() { int i=0, c; char s[lim]; while(i

《c程序设计语言》模拟1

《程序设计语言》模拟试卷一 ---------------------------------------- 一、选择填空(以下每空1分,共20分) 1. 下面各选项组中,均是C语言关键字的组是______。 A) auto,enum,define B)switch,typedef,continue C) signed,union,scanf D)if,struct,type 2. 将字符g赋给字符变量c,正确的表达式是______。 A) c="g" B) c=101 C) c='\147' D) c='0147' 3. 已知 int i;float f;语句正确的是______。 A) (int f)%i B) int(f)%i C) int(f%i) D) (int)f%i 4. 已知:char a;int b;float c;double d;执行语句 c=a+b+c+d;后, 变量c的数据类型是______。 A) int B) char C) float D) double 5. 已知 int j,i=1;执行语句 j=-i++;后,j的值是______。 A) 1 B) 2 C) -1 D) -2 6. 已知 int j,a;执行语句 i=(a=2*3,a*5),a+6;后,变量 i 的值是______。 A) 6 B) 12 C) 30 D) 36 7. 已知 int i=5;执行语句 i+=++i;以后,变量i的值是______。 A) 10 B) 11 C) 12 D) A,B,C答案都不对 8. 字符串"\\\22a,0\n"的长度是______。 A) 8 B) 7 C) 6 D) 5 9. 已知 char c;为使下述表达式的值为1,变量c 的值是______。 (c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)&&c==27 。 A) 66 B) 27 C) 85 D) A,B,C答案都不对 10. 已知 char c='A';int i=1,j;执行语句 j=!c&&i++;后,i和j的值是______。 A) 1,1 B) 1,0 C) 2,1 D) 2,0 11. 已知 int n,i=1,j=2;执行语句 n=i

相关文档
相关文档 最新文档