C语言 实验三 模块化程序设计
- 格式:doc
- 大小:71.50 KB
- 文档页数:9
c程序设计实验报告C程序设计实验报告引言:C程序设计是计算机科学中一门重要的编程语言,广泛应用于软件开发、系统编程等领域。
本实验报告旨在总结并分析我在C程序设计实验中的学习经验和成果。
实验一:基本语法和数据类型C语言作为一门结构化的编程语言,具有丰富的语法和数据类型。
在本实验中,我学习了C语言的基本语法,包括变量的声明和赋值、运算符的使用以及条件语句和循环语句的控制流程。
通过编写简单的程序,我熟悉了C语言的基本语法和数据类型的使用。
实验二:函数和指针函数是C语言中的重要概念,通过函数的封装和调用,可以实现程序的模块化和复用。
在本实验中,我学习了函数的定义和调用,了解了函数的参数传递和返回值的使用。
同时,我还学习了指针的概念和用法,掌握了指针变量的声明和指针运算的基本操作。
通过实验练习,我对函数和指针的使用有了更深入的理解。
实验三:数组和字符串数组和字符串是C语言中常用的数据结构,对于处理大量数据和字符操作非常重要。
在本实验中,我学习了数组的定义和使用,了解了数组的下标和内存分配的原理。
同时,我还学习了字符串的表示和处理方法,掌握了字符串的输入输出和常见操作函数的使用。
通过实验练习,我对数组和字符串的应用有了更深入的认识。
实验四:结构体和文件操作结构体是C语言中用于组织和管理复杂数据的一种方式,文件操作则是处理外部文件的重要技术。
在本实验中,我学习了结构体的定义和使用,了解了结构体成员的访问和结构体数组的操作。
同时,我还学习了文件的打开、读写和关闭操作,掌握了文件指针的使用和文件读写的基本流程。
通过实验练习,我对结构体和文件操作的应用有了更深入的了解。
实验五:动态内存分配和链表动态内存分配和链表是C语言中高级的数据结构和算法,对于处理动态数据和实现复杂逻辑非常重要。
在本实验中,我学习了动态内存分配的方法和使用,了解了malloc和free函数的原理和使用。
同时,我还学习了链表的定义和操作,掌握了链表的插入、删除和遍历等基本操作。
当你在一个项目小组做一个相对较复杂的工程时,意味着你不再独自单干。
你需要和你的小组成员分工合作,一起完成项目,这就要求小组成员各自负责一部分工程。
比如你可能只是负责通讯或者显示这一块。
这个时候,你就应该将自己的这一块程序写成一个模块,单独调试,留出接口供其它模块调用。
最后,小组成员都将自己负责的模块写完并调试无误后,由项目组长进行组合调试。
像这些场合就要求程序必须模块化。
模块化的好处是很多的,不仅仅是便于分工,它还有助于程序的调试,有利于程序结构的划分,还能增加程序的可读性和可移植性。
初学者往往搞不懂如何模块化编程,其实它是简单易学,而且又是组织良好程序结构行之有效的方法之一.本文将先大概讲一下模块化的方法和注意事项,最后将以初学者使用最广的keil c 编译器为例,给出模块化编程的详细步骤。
模块化程序设计应该理解以下概述:(1)模块即是一个.c 文件和一个.h 文件的结合,头文件(.h)中是对于该模块接口的声明;这一条概括了模块化的实现方法和实质:将一个功能模块的代码单独编写成一个.c 文件,然后把该模块的接口函数放在.h文件中.举例:假如你用到液晶显示,那么你可能会写一个液晶驱动模块,以实现字符、汉字和图像的现实,命名为: led_device. c,该模块的.c文件大体可以写成:/************************************************* ************************* 液晶驱动模块** 文件: lcd_device.c* 编写人: 小瓶盖* 描述:液晶串行显示驱动模块,提供字符、汉字、和图像的实现接口* 编写时间: 2009.07.03* 版本:1.2************************************************** ***********************/#include ……//定义变量unsigned char flag;//局部变量static unsigned char value;//全局变量…//定义函数//这是本模块第一个函数,起到延时作用,只供本模块的函数调用,所以用到static 关键字修饰/********************延时子程序********************** **/static void delay (uint us) //delay time{}//这是本模块的第二个函数,要在其他模块中调用/*********************写字符程序********************* ******* 功能:向LCD写入字符** 参数:dat_comm 为1写入的是数据,为0写入的是指令content 为写入的数字或指令************************************************** ****/void wr_lcd (uchar dat_comm,uchar content){}…………/***************************** END Files************ ***********************/注:此处只写出这两个函数,第一个延时函数的作用范围是模块内,第二个,它是其它模块需要的。
C语言程序设计实验总结摘要该文档总结了我在C语言程序设计实验中的经验和教训。
通过这些实验,我对C语言编程的基本概念和技巧有了更深入的理解和掌握。
本文将综合分析每个实验的目标、方法和结果,并总结了我在实验中遇到的问题以及解决方法。
引言C语言是一种通用的高级程序设计语言,广泛应用于各个领域。
通过进行C语言程序设计实验,我们可以更好地了解C语言的语法和用法,提高我们的编程能力和问题解决能力。
本文将基于我在实验中的经验,对每个实验进行详细描述和总结。
实验一:基本输入输出程序设计实验一旨在加深对C语言程序设计的理解,熟悉基本的输入输出操作。
我们需要编写程序,实现基本的数据输入和输出,并进行简单的运算。
这个实验让我对C语言中的输入输出和基本数据类型有了更深入的理解。
实验二:条件语句和循环语句的应用实验二要求我们掌握条件语句和循环语句的使用方法,并能够通过这些语句解决实际问题。
我学会了使用if语句进行条件判断,以及使用for和while循环进行迭代操作。
通过这个实验,我可以更好地掌握程序流程控制和代码逻辑。
实验三:一维数组的应用实验三着重让我们学会使用一维数组来存储和处理大量的数据。
在这个实验中,我学会了声明和初始化数组,以及使用循环结构遍历数组元素。
这个实验对我后续的数据处理有了很大的帮助。
实验四:字符串处理实验四主要教我们如何处理字符串和字符数组。
在实验中,我学会了使用字符数组来存储和操作字符串,同时,了解了一些常见的字符串处理函数,如strlen、strcpy等。
这个实验让我更加熟悉字符串的处理方法。
实验五:结构体的应用实验五要求我们学会使用结构体类型来定义自定义数据类型,并通过结构体变量来访问结构体成员。
在实验中,我学会了如何定义和使用结构体类型,并能够通过结构体变量操作结构体成员。
结构体的灵活性和可扩展性让我在实际编程中受益匪浅。
实验六:指针的应用实验六是C语言程序设计实验中最重要的一部分。
通过实验,我对指针的概念和用法有了更深入的理解。
C语言模块化程序设计模块化程序设计是一种将程序分解为独立模块的方法,每个模块具有明确定义和特定功能。
使用模块化程序设计可以提高程序的可维护性、可扩展性和可重用性。
本文将介绍C语言中的模块化程序设计的原则、方法和优势。
首先,要进行模块化程序设计,需要遵循以下原则:1.单一职责原则:每个模块应该只负责一个具体的功能或任务。
这样可以使模块的功能更加明确和独立,并且方便后续的维护和测试。
2.高内聚,低耦合:模块内部的各个部分应该紧密地关联在一起,形成一个功能完整的整体,同时与其他模块的耦合度应该尽量降低,以减少模块间的相互影响和依赖性。
接下来,我们将介绍几种常见的模块化程序设计的方法:1.函数模块化:将功能相似的代码封装在一个函数中,便于重复使用和集中管理。
函数模块化可以提高程序的可读性和可维护性。
2.文件模块化:将具有相关功能的函数、常量和数据结构定义放在同一个文件中,并通过头文件进行声明和引用。
文件模块化可以使代码结构清晰,提高代码的复用性。
3.类模块化:将相关的函数和数据结构封装在一个类中,并通过类的接口来访问和操作。
类模块化可以提供更高级别的封装和抽象,方便程序的组织和管理。
4.动态链接库和静态链接库:将功能模块封装为独立的动态链接库或静态链接库,以供其他程序调用和使用。
链接库模块化可以提高代码的复用性和可移植性。
以上是常见的模块化程序设计方法,可以根据具体的需求和场景选择适合的方法。
无论使用哪种方法,模块化程序设计都可以带来以下几个优势:1.可维护性:模块化的程序结构使程序的各个部分相互独立,修改和维护一个模块时,不会对其他模块造成影响,降低了维护的难度。
2.可重用性:模块化的程序结构使得代码片段可以在多个地方反复使用,提高了代码的复用性,减少了重复编写代码的工作量。
3.可扩展性:由于模块之间的低耦合性,当需要添加新的功能时,可以通过增加新的模块来实现,而不需要修改已有的模块,降低了扩展的成本和风险。
中南民族大学管理学院学生实验报告课程名称:C程序语言设计姓名:郭晋学号:10056006年级:2010专业:信息管理与信息系统指导教师:李超锋实验地点:管理学院综合实验室2010 学年至20 11 学年度第2 学期目录实验一熟悉C语言的开发环境和C程序的上机步骤实验二基本数据类型及数据的输入输出实验三运算符及表达式实验四顺序结构程序设计实验五选择结构程序设计实验六循环结构程序设计实验七数组及其应用实验八函数及其应用实验九指针及其应用实验(一)熟悉C语言的开发环境和C程序的上机步骤实验时间:2011.3.29同组人员:郭晋,金亚男实验目的:1,了解T urb C3.0编译系统,熟悉各菜单的功能,掌握在该系统上编辑,编译,连接,运行一个C程序的方法。
2,通过调试,运行简单的C程序,初步了解C语言程序的特点。
实验内容:1.编写一个C程序,求一个圆的面积。
我们的程序设计#include<stdio.h>void main(){float r,s;scanf("%f",&r);s=3.14*r*r;printf("s=%f",s);}2.编写程序求任意三个书的最大值。
我们的程序设计#include<stdio.h>void main(){int a,b,c,max;scanf("%d,%d,%d" ,&a,&b,&c);if(a>b&&a>c)max=a;if(b>a&&b>c)max=b;if(c>a&&c>b)max=c;printf("max=%d\n",max);}实验步骤:1.首先,我们两人先根据题目中的编程要求确定实验步骤,分别写下相应的编程语言进行比较,未出现明显的分歧。
2.打开Turb C 程序,然后将刚刚确定的C语言程序输入,打开Proiles,进行系统纠错,看是否出现错误或者警告,进行相应的调试。
四川师范大学计算机科学学院《C语言程序设计》实验手册2010年2月年级: 2009级专业:计算机科学与技术班级:一班姓名:谢丹学号: 2009110156 指导教师:廖雪花《C语言程序设计》实验课程简介课程名称:C语言程序设计实验课程性质:专业必修课课程属性:专业必修课学时学分:学时32 学分1开课实验室:软件实验室面向专业:网络工程、软件工程、计算机科学与技术一、课程的任务和基本要求C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C 语言程序设计》课程而开设的实验性教育环节。
本课程的主要任务是让学生充分掌握C语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。
C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。
通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。
二、实验项目【实验一】最简单的C程序---顺序程序设计【实验二】逻辑运算和判断选取控制【实验三】循环结构程序设计(一)【实验四】循环结构程序设计(二)【实验五】函数【实验六】数组(一)【实验七】数组(二)【实验八】指针【实验九】结构体、共用体和文件【实验十】C程序综合性实验三、有关说明1、与其它课程和教学环节的联系:先修课程:计算机文化后续课程:面向对象程序设计、Java程序设计、数据结构、软件工程2、教材和主要参考书目:(1)教材:《C程序设计习题解答与上机指导》,谭浩强吴伟民著,北京:清华大学出版社,2003年。
(2)主要参考书目:《C语言程序设计》谭浩强主编,清华大学出版社,2003年。
三、实验内容实验一最简单的C程序---顺序程序设计(验证性实验 2学时)(一)、实验目的1.熟悉win-tc程序运行环境2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法3.掌握C语言中使用最多的一种语句——赋值语句4.掌握数据的输入输出方法,能正确使用各种格式控制符(二)、实验内容1.写出下列程序的运行结果(1)#include <stdio.h>void main(){printf(“*****************\n”);printf(“This is a c program. \n”);printf(“****************\n”);}运行结果及分析:结果:****************** 分析:在C语言中,\n表示换行,因此运行结果为三行。
c语言实验原理
C语言实验原理是指在进行C语言的实验或项目时所采用的基本原理和方法。
下面将介绍C语言实验的一般原理。
1. 程序结构设计:C语言实验的第一步是设计程序的整体结构。
这包括确定程序的功能和需求,根据需求设计出合适的程序模块和函数,并安排它们之间的交互关系。
2. 数据结构设计:数据结构设计是指确定程序所需的数据类型和数据结构。
在C语言中,常用的数据结构包括数组、结构体、指针等。
根据实验需求,选择适当的数据结构来存储和操作数据。
3. 算法设计:算法设计是指确定实现程序功能所需的具体步骤和方法。
在C语言中,常用的算法包括顺序结构、选择结构、循环结构等。
根据实验需求,选择合适的算法来实现程序功能。
4. 模块化设计:模块化设计是指将程序划分为若干个独立的模块,并为每个模块定义相应的函数和变量。
这样可以增加程序的可读性和可维护性,也方便进行程序调试和测试。
5. 编码和调试:根据设计好的程序结构、数据结构和算法,使用C语言编写程序代码。
在编码过程中,要注意代码的规范
性和可读性。
完成编码后,进行调试工作,确保程序功能的正确性和稳定性。
6. 测试和评估:完成编码和调试后,对程序进行测试和评估。
可以设计一些测试用例,验证程序在各种情况下的正确性和鲁棒性。
根据测试结果进行程序修正和改进,直到达到预期的效果。
总之,C语言实验原理包括程序结构设计、数据结构设计、算法设计、模块化设计、编码和调试、测试和评估等方面。
通过遵循这些原理,可以有效地实现C语言实验的目标。
C语言程序设计实验报告一、引言C语言程序设计是计算机科学与技术专业中的一门基础课程。
通过实验学习,我深入了解了C语言的基本语法和程序设计的思想,掌握了一定的编程能力。
本文将详细介绍我在C语言程序设计实验中所进行的实验项目、实验结果和实验心得。
二、实验项目1. 实验一:C语言程序设计基础在这个实验中,我编写了一个简单的C语言程序,实现了对用户输入的两个整数进行相加并输出结果的功能。
在程序设计中,我正确使用了C语言的基本语法,包括变量定义、输入输出函数的调用等。
2. 实验二:条件语句和循环结构这个实验要求我编写一个C语言程序,实现对用户输入的分数进行等级评定的功能。
根据用户输入的分数,程序将输出相应的等级,如优秀、良好、及格等。
为了实现这个功能,我灵活运用了条件语句和循环结构,使程序具有良好的交互性。
3. 实验三:数组和字符串在这个实验中,我学习了C语言中数组和字符串的使用方法,并编写了一个程序,实现了对一个整数数组的排序功能。
通过实验,我进一步掌握了数组的声明、初始化和遍历等操作,提高了我对C语言程序设计的理解。
4. 实验四:函数和指针实验四要求我编写一个C语言程序,实现对一个数组中的元素求和的功能。
在这个实验中,我了解了函数的定义和调用、指针的基本概念以及函数指针的使用。
通过编写程序,我加深了对函数和指针的理解,并提高了程序的运行效率。
三、实验结果通过以上实验项目的设计与实现,我得到了如下实验结果:1. 实验一的结果是可以正确进行数值相加并输出结果。
2. 实验二的结果是根据输入的分数得到相应的等级评定。
3. 实验三的结果是对输入的整数数组进行排序,并输出排序后的结果。
4. 实验四的结果是对数组中的元素进行求和,并输出求和结果。
四、实验心得通过整个实验过程,我深刻认识到了C语言程序设计的重要性和应用广泛性。
C语言不仅是其他高级编程语言的基础,也是培养程序设计思维和逻辑思维的重要工具。
通过实验,我不仅掌握了C语言的基础知识和编程技巧,还培养了自己解决问题和分析问题的能力。
实验三顺序结构程序设计一、实验目的1、掌握C 语言中赋值语句的使用方法;2、掌握不同类型数据的输入输出方法,能正确使用各种格式字符;二、实验预习1、认真阅读数据的输入输出部分内容。
三、实验指导1、从键盘输入两个0 到127 的整数,求两数的平方差并输出其值以及这两个整数的ASCII 码对应的字符。
(1)算法分析:标准ASCII 码值范围是0 到127,所以在这范围内的数可以以字符形式输出,实现方法是用格式输出函数并用格式符c 控制输出。
(2)根据结果书写源程序#include<stdio.h>void main( ){int x,y,sub ;scanf("%d%d",&x,&y);/* 变量前一定要加取地址符& */sub=x*x-y*y ;printf("%c,%c,%d",x,y,sub);}(3)在C 编辑环境下编辑源程序。
(4)编译【F9】,直到程序没有错误。
(5)运行【Ctrl+F9】,从键盘输入:100 50↙注意输入时两数间应以空格间隔,不能用逗号,只有源程序输入函数中两格式符以逗号间隔时输入才可以是:100,50↙(6)查看结果【Alt+F5】,输出内容如下:d,2,75002、输入程序#include <stdio.h>void main( ){int a,b ;float d,e ;char c1,c2 ;double f,g ;long m,n ;unsigned int p,q ;a=61 ;b=62 ;c1='a' ;c2='b' ;d=3.56 ;e=-6.87 ;f=3157.890121 ;g=0.123456789 ;m=50000 ;n=-60000 ;p=32768 ;q=40000 ;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e);printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n",f,g,m,n,p,q);}(1)运行程序并分析结果。
C语言编程如何实现模块化设计在软件开发领域,模块化设计是一种重要的编程思想和方法论。
它将一个大型的软件系统分解为若干个独立的模块,每个模块都有自己的功能和责任,通过模块之间的接口进行交互和通信。
这种模块化设计的好处是可以提高代码的可读性、可维护性和可重用性,同时也有利于团队合作和项目管理。
C语言是一种广泛应用于嵌入式系统和系统级编程的高级编程语言,如何在C语言中实现模块化设计呢?下面将从几个方面进行探讨。
首先,模块化设计的核心思想是将一个大的问题分解为若干个小的问题,并将每个小问题封装到一个独立的模块中。
在C语言中,可以通过函数来实现模块化设计。
每个函数都有自己的输入和输出,通过函数之间的调用和参数传递,可以实现模块之间的交互和通信。
在设计函数时,应该遵循单一职责原则,即每个函数只负责一个具体的功能,这样可以提高函数的可读性和可维护性。
其次,C语言中可以使用头文件来定义模块的接口。
头文件包含了模块的声明和定义,其他模块可以通过包含头文件来使用该模块的功能。
在头文件中,可以定义模块的结构体、函数原型和宏定义等。
通过头文件的使用,可以将模块的实现和使用分离开来,提高了代码的可重用性和可维护性。
另外,C语言中还可以使用静态变量和静态函数来实现模块的封装。
静态变量和静态函数只在当前模块内部可见,其他模块无法直接访问。
这样可以避免不同模块之间的命名冲突和变量污染,提高了代码的安全性和可靠性。
同时,静态变量和静态函数也有利于代码的优化和性能的提升。
此外,C语言中还可以使用宏定义和条件编译来实现模块的定制化和可配置性。
通过宏定义,可以定义一些常量和条件,根据不同的条件编译不同的代码块。
这样可以根据不同的需求和环境来选择不同的功能和实现方式,提高了代码的灵活性和适应性。
最后,C语言中还可以使用库文件和动态链接库来实现模块的封装和复用。
库文件是一组函数和数据的集合,可以被其他程序调用和使用。
通过库文件,可以将一些常用的功能和算法封装起来,供其他模块和项目使用。
c语言程序实验报告C语言程序实验报告引言:C语言是一种广泛应用于计算机编程的高级语言,具有语法简洁、执行效率高等特点。
在本次实验中,我们将通过编写C语言程序来实践所学的知识,并探索各种功能的实现方法。
本报告将对实验过程和结果进行详细描述和分析。
实验一:基本语法和数据类型在这个实验中,我们首先学习了C语言的基本语法和数据类型。
通过编写简单的程序,我们熟悉了变量的声明和赋值、算术运算符的使用以及条件判断和循环结构的应用。
通过实际操作,我们深入理解了C语言的表达能力和灵活性。
实验二:函数和数组在这个实验中,我们学习了函数和数组的使用。
我们掌握了如何定义和调用函数,如何传递参数和返回值。
通过编写程序,我们进一步加深了对数组的理解,掌握了数组的声明、初始化和遍历等操作。
这些知识对于解决实际问题和提高程序的复用性非常重要。
实验三:指针和动态内存分配指针是C语言的重要特性之一,也是较为复杂的概念。
在这个实验中,我们学习了指针的定义、初始化和使用方法。
通过编写程序,我们深入理解了指针与变量之间的关系,掌握了指针的运算和指针与数组的关系。
此外,我们还学习了动态内存分配的方法,了解了如何在程序运行过程中动态申请和释放内存。
实验四:结构体和文件操作结构体是一种自定义的数据类型,可以将多个不同类型的变量组合在一起。
在这个实验中,我们学习了结构体的定义和使用方法。
通过编写程序,我们掌握了结构体的初始化、访问和传递等操作。
此外,我们还学习了文件操作的方法,了解了如何读写文件和处理文件指针。
实验五:综合实验在这个实验中,我们将运用前面所学的知识,编写一个综合性的程序。
通过实践,我们巩固了对C语言的掌握,并提高了解决问题的能力。
这个实验不仅考验了我们的编程技巧,还培养了我们的逻辑思维和创新能力。
总结:通过这些实验,我们不仅学习了C语言的基本语法和数据类型,还掌握了函数、数组、指针、结构体和文件操作等高级特性。
通过实践,我们深入理解了C语言的运行机制和编程思想,提高了解决问题的能力和代码的质量。
c语言模块化设计的原理C语言模块化设计的原理指的是将程序分割为多个模块或功能单元,每个模块都有独立的功能和责任,并且能够通过接口进行交互和通信。
这种设计原理可以帮助开发人员更好地组织和管理代码,提高代码的可重用性和可维护性。
下面,我将逐步回答中括号内的内容,详细介绍C语言模块化设计的原理。
一、模块化设计的定义和重要性(200-300字)模块化设计是指将一个复杂的系统划分为多个相对独立的模块,每个模块专注于解决一个具体的问题或实现一个具体的功能。
模块之间通过定义良好的接口进行通信和交互,各个模块之间形成一种松耦合的关系。
模块化设计的重要性体现在以下几个方面:1. 提高代码的可重用性:每个模块都可以独立使用,可以被其他程序或模块重复利用,避免了重复编写相同的代码,提高了开发效率。
2. 增强代码的可维护性:模块化设计使得程序的逻辑更加清晰,每个模块都具有明确的功能和责任,代码的修改和调试更加方便和快速。
3. 加速开发进程:模块化设计可以实现并行开发,多个开发人员可以同时开发不同的模块,加快了软件开发的速度。
二、模块化设计的基本原则(400-500字)在进行C语言模块化设计时,需要遵循以下几个基本原则:1. 单一职责原则:每个模块应该有明确的功能和职责,只负责完成一个具体的任务。
这样可以保证模块的复用性和可维护性。
2. 高内聚性原则:模块内部的元素之间应该紧密相关,功能相关的代码应该放在同一模块中。
这样可以减少模块之间的依赖关系,提高代码的可读性和可维护性。
3. 低耦合性原则:模块之间的依赖关系应该尽可能松散,模块之间通过接口进行通信和交互,而不是直接依赖于具体的实现细节。
这样可以减少代码的修改范围,提高代码的可扩展性和灵活性。
4. 接口稳定性原则:模块之间的接口应该尽量稳定,一旦定义了接口,就应该尽量避免修改。
这样可以减少对其他模块的影响,提高代码的稳定性。
5. 规范化命名原则:模块、函数和变量的命名应该明确和规范,能够准确地描述其功能和用途。
实验三:选择结构程序设计一、实验方式:一人一机二、实验目的:1、掌握多分支语句的一般形式和使用方法。
2、掌握单分支if语句的使用方法。
3、掌握双分支if-else语句的使用方法。
4、掌握switch语句的一般形式和使用方法。
5、利用switch语句与break语句相结合解决生活中的问题。
6、学习调试和修改选择结构的程序。
三、实验内容:说明:前四题为必做题目,后两题为选做题目。
1、编写程序,判断箱子是否为正方体。
2、有一数学分段函数: x2 (x<-11)y= 2|x|-1 (-5≤x≤5)3x-11 (x≥10) 编写程序,输入x值,输出y值。
3、编写程序,对于给定的学生百分制成绩,分别输出等级‘A’,‘B’,‘C’,‘D’,‘E’,其中90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。
(要求分别使用switch和if 语句实现)4、编写程序,从键盘上输入一个字符,如果该字符是小写字母,则转换成大写字母输出;如果是大写字母,则转换成小写字母输出;如果是其他字符,原样输出。
5、编写程序,从键盘上输入某一年月,判断这年的这个月份有多少天。
四、实验答案:(代码+运行结果截屏或者代码)1、实验代码(1)#include <stdio.h>void main(){ int l,w,h;printf("please enter three numbers: \n");scanf("%d,%d,%d",&l,&w,&h);if(l==w&&w==h)printf("该箱子是正方体。
\n");elseprintf("该箱子是长方体。
\n");}(2)#include "stdio.h"#include "math.h"void main(){float x,y;scanf("%f",&x);if(x<-11) y=pow(x,2);else if(x>=-5&&x<=5) y=2*fabs(x)-1;else if(x>=10) y=3*x-11;printf("y=%5.2f\n",y);}(3)第一种:使用switch实现#include "stdio.h"void main(){float score;char ch;scanf("%f",&score);switch((int) (score/10) ){case 10:case 9:ch='A';break;case 8:ch='B';break;case 7:ch='C';break;case 6:ch='D';break;default:ch='E';break;}printf("%f分等级是%c \n",score,ch);}第二种:使用if多分支实现#include "stdio.h"void main(){float score;char ch;scanf("%f",&score);if(score>100||score<0) printf("Error Data!\n");else if(score<=100&&score>=90) ch='A';else if(score>=80&&score<90) ch='B';else if(score>=70&&score<80) ch='C';else if(score>=60&&score<70) ch='D';else ch='E';printf("%f分等级是%c \n",score,ch);}(4)#include "stdio.h"void main(){char ch;scanf("%c",&ch);if(ch>='a'&&ch<='z') ch=ch-32;else if(ch>='A'&&ch<='Z') ch=ch+32;else ch=ch;printf("转换后的字符为:%c \n",ch);}(5)#include <stdio.h>void main(){int year,month,days;printf("please enter year and month: ");scanf("%d%d",&year,&month);if(month<=0||month>=13) printf(" you make a mistake\n");elseswitch(month){case 2: if(year%4==0&&year%100!=0||year%400==0)days=29;elsedays=28;break;case 1:case 3:case 5:case 7:case 8:case 10:case 12: days=31;break;case 4:case 6:case 9:case 11: days=30;break;}printf("%d年%d月有%d日\n",year,month,days);}2、实验结果(1)(2)(3)使用switch实现和if多分支实现:(4)(5)3、实验分析。
实验4 函数-模块化程序设计一、实验目的1.掌握C函数的定义方法、函数的调用方法、参数说明以及返回值。
掌握实参与形参的对应关系以及参数之间的“值传递”的方式;掌握函数的嵌套调用及递归调用的设计方法;2.掌握全局变量和局部变量、动态变量与静态变量的概念和使用方法;3.在编程过程中加深理解函数调用的程序设计思想。
二、实验环境PC微机Windows 操作系统VS 2019 程序集成环境三、实验内容与步骤4.编写一个计算组合数的函数combinNum(int m,int n)。
计算结果由函数返回。
计算组合数的公式是:c(m,n)=m!/(n!*(m-n)!)要求:(1)从主函数输入m和n的值。
对m>n、m<n和m=n 的情况作分别处理后调用函数combinNum(m,n),在主函数内输出结果值。
(2)对m>n、m<n和m=n 的情况各取一组数据进行测试,检查程序的正确性。
代码:#include<stdio.h>int fac(int m){int sum = 1;for (int i = m; i >= 1; i--) {sum *= i;}return sum;}int combin(int m, int n){int a = fac(m);int b = fac(n);int N = fac(m - n);return a / (b * N );}int main(){int m, n;scanf("%d %d", &m, &n);if (m == n || n == 0) printf("1");else if (m < n || m < 0 || n < 0) printf("please input right number");else printf("%d", combin(m, n));return 0;}实验结果:①m > n:②m == n:③m < n:实验分析:本题首先要将m和n的所有情况讨论清楚,然后求组合数时在combin函数里嵌套三个求阶乘的函数分别求公式中三个成分的值比递归调用combin函数来求解简单。
《C 语言程序设计》实验指导书实验一C 程序的运行环境一、实验目的1、了解所用的计算机系统的基本操作方法,学会独立使用该系统;2、了解在该系统上如何编辑、编译、连接和运行一个C 程序;3、通过运行简单的C 程序,初步了解C 程序二、实验预习1、认真阅读简单的C 程序介绍,C 程序上机步骤部分内容;2、编写好所需要的程序,程序的书写应该清楚整洁,一般检查应该是没有明显的错误。
如果在程序中有疑问的地方,可以标记起来,以便于上机调试时予以注意。
初学者特别忌讳上机前自己不编写程序,到时随便地抄别人的程序。
三、实验指导1、输入并运行一个简单的程序,从而熟悉所用系统的上机方法与步骤。
(1)选择“File”—“New”—“Win32 console application”,输入工程名称,确定。
直接选择第一项“An empty project”,点击“Finish”。
“File”—“New”—File框下面选择文件类型“C++ Source File” ,输入文件名称,点击“OK”。
(2)输入下面的程序(例题1.1)#include <stdio.h>void main( ){printf("This is a C program.\n");}(3)选择“Build”菜单下“Compile”选项,快捷键为Ctrl+F7。
编译过程将源代码转化成目标文件格式,后缀名为.o。
选择“Build”菜单下“Build”选项,快捷键为F7。
如果出现“出错信息”,则应找出原因并改正之,再进行编译构建。
(4)如果编译无错误,选择“Build”菜单“Execute”选项,运行程序,快捷键为Ctrl+F5,观察分析运行结果。
2、输入并编辑一个C 程序(1)同上,新建工程和文件。
(2)输入以下程序(例题1.2,但故意漏打或打错几个字符)#include <stdio.h>void main( ){int a,b,sum ;a=123 ;b=456 ;sum=a+b ;printf("sum is %d\n",sum);}(3)以下步骤同上一例题3、输入并运行一个需要在运行时输入数据的程序(1)清空编辑窗口,输入下面的程序(例题1.3)。
C语言程序设计实验教程C语言程序设计实验教程C语言是一门广泛应用于工程和科学领域的高级程序设计语言。
它的语法简洁,同时具备强大的数据处理能力和庞大的程序库。
对于初学者来说,学习C语言程序设计是一个重要的基础课程。
为了更好地帮助初学者掌握C语言的基本知识和编程技巧,下面我将给出一份C语言程序设计实验教程。
实验目的:通过一系列的C语言程序设计实验,学习C语言的基本语法和常用的编程技巧,培养编程思维和逻辑思维能力。
实验内容:1. 实验一:初识C语言了解C语言的发展历史,安装C语言编译器,编写并运行第一个C语言程序。
2. 实验二:变量和数据类型学习C语言中的变量定义和赋值,了解不同数据类型的用途和特点,掌握常量和变量的使用方法。
3. 实验三:运算符和表达式学习算术运算符、关系运算符和逻辑运算符的使用,了解运算符的优先级和结合性,熟悉各种常见表达式的写法。
4. 实验四:流程控制学习C语言中的选择结构和循环结构,掌握if语句、switch 语句和for循环、while循环的使用方法。
5. 实验五:函数和数组掌握函数的定义和调用,学习数组的定义和初始化,了解字符数组和字符串的处理方法。
6. 实验六:指针和动态内存分配学习指针的概念和使用,了解指针与数组的关系,了解动态内存分配的方法和应用场景。
7. 实验七:文件操作学习文件的打开和关闭,理解文件的读取和写入操作,掌握文件指针的使用方法。
实验要求:在每个实验中,学生需要完成相应的编程练习,并根据实验要求编写实验报告。
实验报告应包括实验目的、实验步骤、实验结果和心得体会。
实验考核:根据学生的实验报告和实际操作情况进行考核,评估学生对C 语言程序设计的掌握程度和运用能力。
通过这些实验,学生将逐步掌握C语言的基本语法和常用编程技巧,提高自己的编程能力和解决问题的能力。
同时,实验过程中的思考和实践也能够培养学生的逻辑思维和创新意识。
希望通过这份C语言程序设计实验教程,能够帮助初学者更好地学习和掌握C语言,为今后的学习和工作打下坚实基础。
实验三模块化程序设计(3学时)【实验目的】1. 掌握一维数组和二维数组的定义、赋值和输入输出的方法。
2. 掌握字符数组和字符串函数的使用。
3. 掌握与数组有关的算法。
4. 掌握函数定义的方法。
5. 掌握函数实参与形参的传递方式。
6. 掌握函数的嵌套调用和递归调用的方法。
7. 了解全局变量和局部变量、动态变量、静态变量的概念和使用方法。
【实验内容】任务1 数组的基本定义与应用1. 定义一个10个元素的int数组a,输入10个数,并输出。
参考程序:main(){int i,a[10];for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%5d",a[i]);printf("\n");}运行结果:2. 寻找整数数组num中的最大值及其所在的下标。
参考程序:main(){int i,max,p,a[10];printf("please enter 10 data:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);max=a[0];p=0;for(i=1;i<10;i++)淮南师范学院电气信息工程学院 1if(a[i]>max) {max=a[i];p=i;}printf("max is:%d\n",max);printf("point is:%d\n",p+1);}运行结果:3. 实现对n个数的数列从小到大排序。
(比较交换法、选择法、冒泡法)参考程序:冒泡法#include <conio.h>main(){int i,j,n,a[100];int temp;clrscr();printf("enter the number:\n");scanf("%d",&n);for(i=0;i<n;i++) scanf("%d",&a[i]);printf("\n output the original array\n");for(i=0;i<n;i++) printf("%5d",a[i]);for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++)if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}printf("\n output the sorted array\n");for(i=0;i<n;i++) printf("%5d",a[i]);printf("\n");}运行结果:4. 有一个4×4的矩阵,编程将行和列的元素互换,输出互换后的矩阵。
参考程序:main(){int a[4][4],i,j,t;for(i=0;i<4;i++)for(j=0;j<4;j++) scanf("%d",&a[i][j]);printf("output array a: before change:\n");for(i=0;i<4;i++){for(j=0;j<4;j++) printf("%5d",a[i][j]);printf("\n");}for(i=0;i<4;i++)淮南师范学院电气信息工程学院 2for(j=0;j<i;j++){t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}printf("output array a: after change:\n");for(i=0;i<4;i++){for(j=0;j<4;j++) printf("%5d",a[i][j]);printf("\n");}}运行结果:(统一输入4×4矩阵为: 2 0 0 10 2 1 00 2 1 02 0 0 1 )任务2. 字符数组1.用户从键盘输入一个字符串(不包含空格),当输入回车时认为输入结束,统计输入字符串中小写英文字母、大写英文字母、数字字符、其他字符的个数。
参考程序:#include "string.h"main(){char a[80],i,c1=0,c2=0,c3=0,c4=0;gets(a); i=0;while(a[i]!='\0'){if(a[i]>='a'&&a[i]<='z') c1+=1;else if(a[i]>='A'&&a[i]<='Z') c2+=1;else if(a[i]>='0'&&a[i]<='9') c3+=1;else c4+=1;i++;}printf("number of lower letters are:%d\n",c1);printf("number of upper letters are:%d\n",c2);printf("number of digit are:%d\n",c3);printf("number of other letters are:%d\n",c4);}运行结果:淮南师范学院电气信息工程学院 32. 输入一个字符串,将其中的小写字母转换成大写字母,输出转换后的字符串。
参考程序:#include "string.h"main(){char s[80],i;gets(s);i=0;while(s[i]!='\0'){if(s[i]>='a'&&s[i]<='z')s[i]=s[i]-32;i++;}puts(s);}运行结果:任务3. 函数的定义和声明1.分析推测下面程序的输出,并上机运行验证结果。
(运行结果:)#include <stdio.h>unsigned fun26(unsigned num){unsigned k=1;do{ k*=num%10;num/=10; }while(num);return k;}main(){unsigned n=26;printf("%d\n",fun26(n));}2.求出以下程序的运行结果,并描述程序所完成的功能。
(运行结果:程序功能是:)#include <stdio.h>main(){int power(int x,int n);int x=2,n=4;printf("\ns=%d",power( x,n));}int power(int x,int n)淮南师范学院电气信息工程学院 4{int i,p=1;for(i=1;i<=n;i++)p=p*x;return(p);}3.下面程序中,函数fun的功能是根据形参m计算公式T=1/1!+1/2!+1/3!+…+1/m!的值,上机调试,当从键盘输入10时,给出程序运行的正确结果(按四舍五入保留10位小数)。
输入10时的结果:)#include <stdio.h>main(){double fun(int m); //先调用再定义,且不是能缺省的int型,请加上函数说明。
int m;printf("\n input m:");scanf("%d",&m);printf("\n t=%12.10lf \n",fun(m));}double fun(int m){double fac,t=0.0;int i=1,j;for(i=1;i<=m;i++){fac=1.0;for(j=1;j<=i;j++) fac=fac*j;t+=1.0/fac;}return t;}任务4. 数组与函数的综合应用1. 在一个一维数组a中存放10个正整数, 求其中所有的素数。
(用数组元素作为函数的实际参数)参考程序:int sushu(int x){int i,k=1;if(x==1) k=0;for(i=2;i<=x/2;i++)if(x%i==0) k=0;return(k); }main( )淮南师范学院电气信息工程学院 5{int a[10],i;for(i=0;i<10;i++) scanf("%d",&a[i]);printf("sushu of array a are:\n");for(i=0;i<10;i++)if(sushu(a[i])) printf("%5d",a[i]);printf("\n");}运行结果:2. 设有一个3×4的矩阵,求出其中的最大元素。
(要求:将计算最大值的功能设计成函数,数组名作为参数)参考程序:max_value(int array[12]){int i,max;max=array[0];for(i=0;i<12;i++)if(array[i]>max) max=array[i];return(max);}main(){int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}};printf("max=%d\n",max_value(a));}运行结果:任务5. 函数的嵌套调用1.跟踪调试下面程序,注意函数调用的过程中形参、实参的关系。
记录并分析结果;将形参a,b对应改为x,y,使之与实参变量同名,记录并分析结果。
#include <stdio.h>main(){int t,x=2,y=5;int swap(int,int);printf("(1) in main: x=%d,y=%d\n",x,y);swap(x,y);printf("(4) in main: x=%d,y=%d\n",x,y);}swap(int a,int b){淮南师范学院电气信息工程学院 6int t;printf("(2) in swap: a=%d,b=%d\n",a,b);t=a;a=b;b=t;printf("(3) in swap: a=%d,b=%d\n",a,b);}运行结果:将形参a,b对应改为x,y 的结果:结论:无论实参、形参是否同名,交换的只是子函数(swap)中两个变量的值。