C语言 实验三 模块化程序设计
c程序设计 实验报告

c程序设计实验报告C程序设计实验报告引言:C程序设计是计算机科学中一门重要的编程语言,广泛应用于软件开发、系统编程等领域。
本实验报告旨在总结并分析我在C程序设计实验中的学习经验和成果。
实验一:基本语法和数据类型C语言作为一门结构化的编程语言,具有丰富的语法和数据类型。
在本实验中,我学习了C语言的基本语法,包括变量的声明和赋值、运算符的使用以及条件语句和循环语句的控制流程。
通过编写简单的程序,我熟悉了C语言的基本语法和数据类型的使用。
实验二:函数和指针函数是C语言中的重要概念,通过函数的封装和调用,可以实现程序的模块化和复用。
在本实验中,我学习了函数的定义和调用,了解了函数的参数传递和返回值的使用。
同时,我还学习了指针的概念和用法,掌握了指针变量的声明和指针运算的基本操作。
通过实验练习,我对函数和指针的使用有了更深入的理解。
实验三:数组和字符串数组和字符串是C语言中常用的数据结构,对于处理大量数据和字符操作非常重要。
在本实验中,我学习了数组的定义和使用,了解了数组的下标和内存分配的原理。
同时,我还学习了字符串的表示和处理方法,掌握了字符串的输入输出和常见操作函数的使用。
通过实验练习,我对数组和字符串的应用有了更深入的认识。
实验四:结构体和文件操作结构体是C语言中用于组织和管理复杂数据的一种方式,文件操作则是处理外部文件的重要技术。
在本实验中,我学习了结构体的定义和使用,了解了结构体成员的访问和结构体数组的操作。
同时,我还学习了文件的打开、读写和关闭操作,掌握了文件指针的使用和文件读写的基本流程。
通过实验练习,我对结构体和文件操作的应用有了更深入的了解。
实验五:动态内存分配和链表动态内存分配和链表是C语言中高级的数据结构和算法,对于处理动态数据和实现复杂逻辑非常重要。
在本实验中,我学习了动态内存分配的方法和使用,了解了malloc和free函数的原理和使用。
同时,我还学习了链表的定义和操作,掌握了链表的插入、删除和遍历等基本操作。
C语言模块化编程

当你在一个项目小组做一个相对较复杂的工程时,意味着你不再独自单干。
你需要和你的小组成员分工合作,一起完成项目,这就要求小组成员各自负责一部分工程。
比如你可能只是负责通讯或者显示这一块。
这个时候,你就应该将自己的这一块程序写成一个模块,单独调试,留出接口供其它模块调用。
最后,小组成员都将自己负责的模块写完并调试无误后,由项目组长进行组合调试。
像这些场合就要求程序必须模块化。
模块化的好处是很多的,不仅仅是便于分工,它还有助于程序的调试,有利于程序结构的划分,还能增加程序的可读性和可移植性。
初学者往往搞不懂如何模块化编程,其实它是简单易学,而且又是组织良好程序结构行之有效的方法之一.本文将先大概讲一下模块化的方法和注意事项,最后将以初学者使用最广的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语言程序设计的理解,熟悉基本的输入输出操作。
我们需要编写程序,实现基本的数据输入和输出,并进行简单的运算。
这个实验让我对C语言中的输入输出和基本数据类型有了更深入的理解。
实验二:条件语句和循环语句的应用实验二要求我们掌握条件语句和循环语句的使用方法,并能够通过这些语句解决实际问题。
我学会了使用if语句进行条件判断,以及使用for和while循环进行迭代操作。
通过这个实验,我可以更好地掌握程序流程控制和代码逻辑。
实验三:一维数组的应用实验三着重让我们学会使用一维数组来存储和处理大量的数据。
在这个实验中,我学会了声明和初始化数组,以及使用循环结构遍历数组元素。
这个实验对我后续的数据处理有了很大的帮助。
实验四:字符串处理实验四主要教我们如何处理字符串和字符数组。
在实验中,我学会了使用字符数组来存储和操作字符串,同时,了解了一些常见的字符串处理函数,如strlen、strcpy等。
这个实验让我更加熟悉字符串的处理方法。
实验五:结构体的应用实验五要求我们学会使用结构体类型来定义自定义数据类型,并通过结构体变量来访问结构体成员。
在实验中,我学会了如何定义和使用结构体类型,并能够通过结构体变量操作结构体成员。
结构体的灵活性和可扩展性让我在实际编程中受益匪浅。
实验六:指针的应用实验六是C语言程序设计实验中最重要的一部分。
通过实验,我对指针的概念和用法有了更深入的理解。
C语言模块化程序设计

C语言模块化程序设计模块化程序设计是一种将程序分解为独立模块的方法,每个模块具有明确定义和特定功能。
使用模块化程序设计可以提高程序的可维护性、可扩展性和可重用性。
本文将介绍C语言中的模块化程序设计的原则、方法和优势。
首先,要进行模块化程序设计,需要遵循以下原则:1.单一职责原则:每个模块应该只负责一个具体的功能或任务。
这样可以使模块的功能更加明确和独立,并且方便后续的维护和测试。
2.高内聚,低耦合:模块内部的各个部分应该紧密地关联在一起,形成一个功能完整的整体,同时与其他模块的耦合度应该尽量降低,以减少模块间的相互影响和依赖性。
接下来,我们将介绍几种常见的模块化程序设计的方法:1.函数模块化:将功能相似的代码封装在一个函数中,便于重复使用和集中管理。
函数模块化可以提高程序的可读性和可维护性。
2.文件模块化:将具有相关功能的函数、常量和数据结构定义放在同一个文件中,并通过头文件进行声明和引用。
文件模块化可以使代码结构清晰,提高代码的复用性。
3.类模块化:将相关的函数和数据结构封装在一个类中,并通过类的接口来访问和操作。
类模块化可以提供更高级别的封装和抽象,方便程序的组织和管理。
4.动态链接库和静态链接库:将功能模块封装为独立的动态链接库或静态链接库,以供其他程序调用和使用。
链接库模块化可以提高代码的复用性和可移植性。
以上是常见的模块化程序设计方法,可以根据具体的需求和场景选择适合的方法。
无论使用哪种方法,模块化程序设计都可以带来以下几个优势:1.可维护性:模块化的程序结构使程序的各个部分相互独立,修改和维护一个模块时,不会对其他模块造成影响,降低了维护的难度。
2.可重用性:模块化的程序结构使得代码片段可以在多个地方反复使用,提高了代码的复用性,减少了重复编写代码的工作量。
3.可扩展性:由于模块之间的低耦合性,当需要添加新的功能时,可以通过增加新的模块来实现,而不需要修改已有的模块,降低了扩展的成本和风险。
C语言实验报告

中南民族大学管理学院学生实验报告课程名称: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语言程序设计实验课程简介

四川师范大学计算机科学学院《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语言的实验或项目时所采用的基本原理和方法。
下面将介绍C语言实验的一般原理。
1. 程序结构设计:C语言实验的第一步是设计程序的整体结构。
这包括确定程序的功能和需求,根据需求设计出合适的程序模块和函数,并安排它们之间的交互关系。
2. 数据结构设计:数据结构设计是指确定程序所需的数据类型和数据结构。
在C语言中,常用的数据结构包括数组、结构体、指针等。
根据实验需求,选择适当的数据结构来存储和操作数据。
3. 算法设计:算法设计是指确定实现程序功能所需的具体步骤和方法。
在C语言中,常用的算法包括顺序结构、选择结构、循环结构等。
根据实验需求,选择合适的算法来实现程序功能。
4. 模块化设计:模块化设计是指将程序划分为若干个独立的模块,并为每个模块定义相应的函数和变量。
这样可以增加程序的可读性和可维护性,也方便进行程序调试和测试。
5. 编码和调试:根据设计好的程序结构、数据结构和算法,使用C语言编写程序代码。
在编码过程中,要注意代码的规范
性和可读性。
完成编码后,进行调试工作,确保程序功能的正确性和稳定性。
6. 测试和评估:完成编码和调试后,对程序进行测试和评估。
可以设计一些测试用例,验证程序在各种情况下的正确性和鲁棒性。
根据测试结果进行程序修正和改进,直到达到预期的效果。
总之,C语言实验原理包括程序结构设计、数据结构设计、算法设计、模块化设计、编码和调试、测试和评估等方面。
通过遵循这些原理,可以有效地实现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语言模块化设计的原理

c语言模块化设计的原理C语言模块化设计的原理指的是将程序分割为多个模块或功能单元,每个模块都有独立的功能和责任,并且能够通过接口进行交互和通信。
这种设计原理可以帮助开发人员更好地组织和管理代码,提高代码的可重用性和可维护性。
下面,我将逐步回答中括号内的内容,详细介绍C语言模块化设计的原理。
一、模块化设计的定义和重要性(200-300字)模块化设计是指将一个复杂的系统划分为多个相对独立的模块,每个模块专注于解决一个具体的问题或实现一个具体的功能。
模块之间通过定义良好的接口进行通信和交互,各个模块之间形成一种松耦合的关系。
模块化设计的重要性体现在以下几个方面:1. 提高代码的可重用性:每个模块都可以独立使用,可以被其他程序或模块重复利用,避免了重复编写相同的代码,提高了开发效率。
2. 增强代码的可维护性:模块化设计使得程序的逻辑更加清晰,每个模块都具有明确的功能和责任,代码的修改和调试更加方便和快速。
3. 加速开发进程:模块化设计可以实现并行开发,多个开发人员可以同时开发不同的模块,加快了软件开发的速度。
二、模块化设计的基本原则(400-500字)在进行C语言模块化设计时,需要遵循以下几个基本原则:1. 单一职责原则:每个模块应该有明确的功能和职责,只负责完成一个具体的任务。
这样可以保证模块的复用性和可维护性。
2. 高内聚性原则:模块内部的元素之间应该紧密相关,功能相关的代码应该放在同一模块中。
这样可以减少模块之间的依赖关系,提高代码的可读性和可维护性。
3. 低耦合性原则:模块之间的依赖关系应该尽可能松散,模块之间通过接口进行通信和交互,而不是直接依赖于具体的实现细节。
这样可以减少代码的修改范围,提高代码的可扩展性和灵活性。
4. 接口稳定性原则:模块之间的接口应该尽量稳定,一旦定义了接口,就应该尽量避免修改。
这样可以减少对其他模块的影响,提高代码的稳定性。
5. 规范化命名原则:模块、函数和变量的命名应该明确和规范,能够准确地描述其功能和用途。
C语言实验报告3

实验三:选择结构程序设计一、实验方式:一人一机二、实验目的: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、实验分析。
C语言函数-模块化程序设计实验报告

实验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 语言程序设计》实验指导书实验一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语言程序设计实验,学习C语言的基本语法和常用的编程技巧,培养编程思维和逻辑思维能力。
实验内容:1. 实验一:初识C语言了解C语言的发展历史,安装C语言编译器,编写并运行第一个C语言程序。
2. 实验二:变量和数据类型学习C语言中的变量定义和赋值,了解不同数据类型的用途和特点,掌握常量和变量的使用方法。
3. 实验三:运算符和表达式学习算术运算符、关系运算符和逻辑运算符的使用,了解运算符的优先级和结合性,熟悉各种常见表达式的写法。
4. 实验四:流程控制学习C语言中的选择结构和循环结构,掌握if语句、switch 语句和for循环、while循环的使用方法。
5. 实验五:函数和数组掌握函数的定义和调用,学习数组的定义和初始化,了解字符数组和字符串的处理方法。
6. 实验六:指针和动态内存分配学习指针的概念和使用,了解指针与数组的关系,了解动态内存分配的方法和应用场景。
7. 实验七:文件操作学习文件的打开和关闭,理解文件的读取和写入操作,掌握文件指针的使用方法。
实验要求:在每个实验中,学生需要完成相应的编程练习,并根据实验要求编写实验报告。
实验报告应包括实验目的、实验步骤、实验结果和心得体会。
实验考核:根据学生的实验报告和实际操作情况进行考核,评估学生对C 语言程序设计的掌握程度和运用能力。
通过这些实验,学生将逐步掌握C语言的基本语法和常用编程技巧,提高自己的编程能力和解决问题的能力。
同时,实验过程中的思考和实践也能够培养学生的逻辑思维和创新意识。
希望通过这份C语言程序设计实验教程,能够帮助初学者更好地学习和掌握C语言,为今后的学习和工作打下坚实基础。
C语言实验三程序 总结 逻辑运算和选择结构程序设计

方法二:用 switch 语句 分析:switch 语句是用于处理多分支的语句。注意,case 后的表达式必须是一个常量 表达式,所以在用 switch 语句之前,必须把 0~100 之间的成绩分别化成相关的常量。所有 A(除 100 以外) 、B、C、D 类的成绩的共同特点是十位数相同,此外都是 E 类。则由此可把 score 除十取整,化为相应的常数。 请同学们自己根据分析写出完整的程序段,并编译、运行、查看结果。
二
实验内容
1 已知三个整数 a,b,c,找出最大值放在 max 中。 #include <stdio.h> main() { 定义整数变量 a,b,c,max; 键盘输入 3 个整数 a,b,c; 在 a,b 中间求出较大数 max(如果 a>=b,则 max=a;否则 max=b); c 与 max 比较,如果 c>max,则 max=c; 输出最大数 max; } 根据上面的算法,编写程序;若输入下列数据,分析程序的执行顺序并写出输出结果。 序号 1 2 3 4 5 6 输入的 3 个整数 a、b、c 1,2,3 1,3,2 2,1,3 2,3,1 3,1,2 3,2,1 输出 max max=3 max=3 max=3 max=3 max=3 max=3
程序如下: #include <stdio.h> main() { int score; char grade; printf("请输入学生成绩:"); scanf("%d",&score); if(score>100||score<0) printf("\n 输入成绩错误!\n"); else{ if(score>=90) grade='A'; else if(score>=80) grade='B'; else if(score>=70) grade='C'; else if(score>=60) grade='D'; else grade='E'; printf("\n 成绩等级是%c\n",grade); } } 运行结果如下:
C语言程序设计实验报告(实验大纲+过程)

《C法式设计》实验教学年夜纲之欧侯瑞魂创作一、适用范围年夜纲适用信息管理专业本科教学使用.二、课程名称C法式设计三、学时数与学分总学时:90 总学分: 4实验学时:28 实验学分:1四、教学目的和基本要求目的:通过C法式设计实验,培养学生对学习法式设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握C 语言法式设计的基本方法和编程技巧.基本要求:了解和熟悉C语言法式开发的环境;学会上机调试法式,善于发现法式中的毛病,而且能很快地排除这些毛病,使法式能正确运行,到达实验知识和理论知识的融会贯通.上机实验前,学生必需事先根据题目的内容编好法式,然后在实验时输入法式、调试法式、直至运行结果正确为止,上机结束后,应整理出实验陈说.五、实验项目与学时分配注:带*的实验项目为选做实验项目六、教材、讲义及参考书《C法式设计题解与上机指导》谭浩强主编清华年夜学出书社七、实验成果评定法子实验成果=平时实验暗示+实验陈说.实验成果占总成果的20%.实验成果以品级形式给出,评定品级分优、良、中、及格、不及格五类.1、平时考核:上机实验前,学生必需事先根据题目的内容编好法式,然后在实验时输入法式、调试法式、直至运行结果正确为止.在实验中,教师可根据学生编程把持能力、观察和分析及运用知识能力、法式编制正确性以及学生的课堂纪律、实验态度、坚持实验室卫生等方面的暗示进行综合考核.2、实验陈说:学生实验后应按时完成实验陈说.八、实验教学年夜纲说明本年夜纲共安插28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时.实验项目多为设计性实验项目,每个设计性实验项目中都包括数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做.九、实验项目实验一 C法式的运行环境和运行一个C法式的方法一、实验目的1.了解Visual C++6.0编译系统的基本把持方法,学会自力使用该系统.2.了解在该系统上如何编纂、编译、连接和运行一个C法式.3.通过运行简单的C法式,初步了解C源法式的特点.二、实验内容1.用编纂法式,输入教材第一章例法式,并进行编译和运行.应了解所用的系统是用什么命令进行编译和连接运行的.编译和连接后所获得的目标法式的后缀是什么形式的?2.编写一个C法式,输出以下信息:****************************very good!****************************,了解如何在运行时向法式变量输入数据.实验二数据类型、运算符和表达式一、实验目的1.掌握C语言数据类型,熟悉如何界说一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符.2.学会使用C的有关算术运算符,以及包括这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用.二、实验内容1.输入并运行以下法式:main( ){ char c1,c2;c1=97;c2=98;printf(“%c %c\n”,c1,c2);printf(“%d %d\n”,c1,c2);}在此基础上①将第三行、第四行改为:c1=321;c2=353;再使之运行,分析其运行结果.②将第二行改为:int c1,c2;再使之运行,分析其运行结果..2.输入并运行以下法式:main( ){int i=8,j=10,m,n;m=++i;n=j++;printf(“%d,%d,%d,%d\n”,i,j,m,n);}分别作以下改动并运行:①法式改为:main( ){int i=8,j=10;printf(“%d,%d\n”,i++,j++);}②在②的基础上,将printf语句改为:printf(“%d,%d\n”,++i,++j);③再将printf语句改为:printf(“%d,%d,%d,%d\n”,i,j, i++,j++);④法式改为:main( ){int i=8,j=10,m=0,n=0;;m+=i++;n-=--j;printf(“i=%d,j=%d,m=%d,n=%d\n”,i,j,m,n);}3. 请将下列给出的两个法式段分别输入计算机后,分析其运行结果:①main(){ int num;num=32767;printf(“num=%d\n”,++num);}② main(){ int a=-2;printf(“%d, %d\n”,a, a--);}实验三最简单的C法式设计一、实验目的1.掌握C语言中使用最多的一种语句——赋值语句的使用.2.掌握数据的输入输出的方法,能正确使用各种格式转换符.二、实验内容1.上机输入以下法式:main( ){int a,b;float c;scanf(“%d%d%f”,&a,&b,&c);printf(“a=%-4d,b=%4d,c=%f,c=%.2f\n”,a,b,c,c);}要使a=3,b=4,c=12.3456,在键盘上应如何输入?有几种方式?2.若将输入函数改为scanf(“%d, %d ,%f”,&a,&b,&c);应该如何输入数据?3.上机输入以下法式:main( ){int a; float b; char c;scanf(“%4d%5f%3c”,&a,&b,&c);printf(“a=%d,a=%o,a=%x,b=%8.3f,b=%4.0f,c=%c\n”,a,a,a,b, b,c);}要使a=77,b=4.56,c= ‘A’,在键盘上应如何输入?4.输入两面整型变量a、b的值,输出下列算式以及运算结果.a+b、a-b、a*b、a/b、(float)a/b、a%b每个算式占一行.如a即是10,b即是6,a+b应输入为:10+6=165.编写法式,用getchar函数读入两个字符c1、c2,然后分别用putchar函数和printf函数输出这两个字符.上机运行法式,比力用printf和putchar函数输出字符的特点.实验四选择结构法式设计一、实验目的1.了解C语言暗示逻辑量的方法(以0代表“假”,以1代表“真”);2.学会正确使用逻辑运算符和逻辑表达式;3.熟练掌握if语句和switch语句.二、实验内容先编法式,解以下问题,然后上机调试运行法式.1.有一个函数用scanf函数输入x的值(分别为x<1、1~10、≥10三种情况),求y值.2.给出一个百分制成果,要求输出成果品级‘A’,‘B’,‘C’,‘D’,‘E’.90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’.要求分别用if语句和switch语句实现3.输入一个三位数,若此数是水仙花数输出“Y”,否则输出“N”, 若输入值不是三位数输出“data error”.提示:水仙花数是一个三位数,组成这个三位数的三个数字的立方和与这个三位数相等.如:153=13+53+33.判断是否是水仙花数需把构成三位数的三个数字分离出来并存入变量.实验五循环控制一、实验目的1.熟悉用while语句,do-while语句和for语句实现循环的方法.2.掌握在法式设计中用循环的方法实现各种算法(如穷举、迭代、递推等).二、实验内容编法式并上机调试运行.1.输入两个正整数,求其中最年夜公约数和最小公倍数.2.输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数.3.打印出以下图案:*************************4.编程求1!+2!+3!+……+20!.实验六数组一、实验目的1.掌握一维数组和二维数组的界说、赋值和输入输出的方法;2.掌握字符数组和字符串函数的使用.3.掌握与数组有关的算法(特别是排序算法).二、实验内容编法式并上机调试运行.1. 编写法式,用scanf函数输入10个整数的数列,先将整数依照从年夜到小的顺序进行排序,然后输入一个整数拔出到数列中,使数列坚持从年夜到小的顺序.2.有15个数寄存在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值,如果该数不在数组中,则输出“无此数” ,而且可以实现连续查找.15个数用赋初值的方法在法式中给出,要找的数用scanf函数输入.3.将以下二维数组中数按列的顺序寄存到一个一维数组中.二维数组的内容是11 22 33 4411 22 33 4411 22 33 44则一维数组中的内容是11 11 11 22 22 22 33 33 33 44 44 444.将两个字符串联接起来,不要用strcat函数.5.从键盘输入5个字符串,找出最长的字符串和最年夜的字符串.实验七函数一、实验目的1.掌握界说函数的方法;2.掌握函数实介入形参的对应关系,以及“值传递”的方式;3.掌握函数的嵌套调用和递归调用的方法;4.掌握全局变量和局部变量,静态变量和静态变量的概念和使用方法.二、实验内容编法式并上机调试运行之.1.写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息.2.两个函数,分别求两个整数的最年夜公约数和最小公倍数,用主函数调用这两个函数,并输出结果.两个整数在主函数中输入,并传送给函数1,求出的最年夜公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,返回到主函数输出最年夜公约数和最小公倍数.3.已知二阶Fibonacci数列:0 若n=0Fib(n)= 1 若n=1Fib(n-1)+Fib(n-2) 其他情况界说递归函数求Fib(n).4. 编写函数,求 10 1!n实验八指针一、实验目的1.掌握指针的概念,会界说和使用指针变量;2.学会使用数组的指针和指向数组的指针变量;3.学会使用字符串的指针和指向字符串的指针变量;4.学会使用指向函数的指针变量;5.了解指向指针的指针的概念及其使用方法.二、实验内容编法式并上机调试运行法式(都要求用指针处置).1.界说函数void fun(int x[ ],int *max,int *min),找出数组x中的最年夜值和最小值,最年夜值和最小值通过形参指针max和min传回.2.编写一个函数comp(s1,s2)实现两个字符串的比力.如果s1=s2,则函数返回值为0;如果s1≠s2,返回它们二者第一个分歧字符的ASCII码差值(如“BOY”与“BAD”,第二个字母分歧,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如s1<s2则输出负值.两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数输出.3.从键盘输入一个字符串与一个指定字符,调用函数,将字符串中呈现的指定字符全部删除.4.将一个3×3的矩阵转置,用一函数实现.在一主函数中用scanf函数输入以下矩阵元素:1357911131517将数组名作为函数参数,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出转置后的矩阵.实验九结构体和共用体一、实验目的1.掌握结构体类型变量的界说和使用;2.掌握结构体类型数组的概念和应用;3.掌握链表的概念,初步学会对链表进行把持;4.掌握共用体的概念与使用.二、实验内容编法式,然后上机调试运行.1.有3个学生,每个学生的数据包括学号、三门课的成果,要求用input函数实现从键盘输入学生数据,用average函数求每个人的平均分,用output函数打印学生数据及平均成果.2.建立一个带有头结点的单链表,每个结点包括:学号、年龄,并输出链表中所有结点的数据.在链表中查找年龄最年夜的结点,并将链表中即是此年龄的结点删除(年龄最年夜的结点可能不止一个).*3.将一个链表按逆序排列,即将链头当链尾,链尾当链头.4.上机输入如下法式:main( ){union bt{int k; char c[2];}a;a.k= -7;printf(“%o,%o\n”,a.c[0],a.c[1]);}分析其运行结果.实验十位运算一、实验目的1.掌握按位运算的概念和方法,学会使用位运算符;2.学会通过位运算实现对某些位的把持.二、实验内容编写法式,上机调试并运行.1.编一个函数getbits,从一个16位的单位中取出某几位(即该几位保管原值,其余位为0).函数调用形式为:getbits(value,n1,n2)value为该16位数的值,n1为欲取出的起始位,n2为欲取出的的结束位.如:getbits(0101675,5,8)暗示对八进制数101675,取出其从左面起的第5位到第8位.要求把这几位数用八进制数打印出来.注意,应当将这几位数右移到最右端,然后用八进制形式输出.2.利用位运算把持,实现交换两个变量的值.3.将一个十六进制整数的各位循环左移4位,然后用十六进制形式输出.实验十一文件一、实验目的1.掌握文件以及缓冲文件系统、文件指针的概念;2.学会使用文件翻开、关闭、读、写等文件把持函数.3.学会用缓冲文件系统对文件进行简单的把持.二、实验内容编写法式并上机调试运行.1.编法式求100以内的素数,分别将它输出到显示器屏幕和x.txt文件中,要求每行5个数.2.从键盘输入几本书的数据,每本书的数据包括条形码、书名和价格,将每项数据分别写入文本文件s.txt和二进制文件s.dat.*3.从上题的文本文件s.txt或二进制文件s.dat中读入每本书的数据,计算所有书的平均价格.要求用input函数读入,average函数求平均价格.统计与信息学院实验过程与步骤实验①1、运行2、输入#include<stdio.h>main(){char c1,c2;c1=321;c2=353;printf("%c %c\n",c1,c2);printf("%d %d\n",c1,c2);}3、编译,无毛病、无警告后运行,结果如下:4、在步伐2的基础上将第三行、第四行改为:c1=321;c2=353;5、编译,无毛病、无警告后运行,结果提示:aa.obj - 0 error(s), 2 warning(s)6、在步伐2的基础上将第二行改为:int c1,c2;7、编译,无毛病、无警告后运行,结果如下:实验②1、输入#include<stdio.h>main(){int i=8,j=10,m,n;m=++i;n=j++;printf("%d,%d,%d,%d\n",i,j,m,n);}实验③1、输入#include<stdio.h>main(){int num;num=32767;printf("num=%d\n",++num);}2、编译,无毛病、无警告后运行,结果如下:2、编译,无毛病、无警告后运行,结果如下:3、将步伐2法式改为:#include<stdio.h>main(){int i=8,j=10;printf("%d,%d\n",i++,j++);}4、编译,无毛病、无警告后运行,结果如下:5、在步伐3的基础上,将printf语句改为:printf(“%d,%d\n”,++i,++j);6、编译,无毛病、无警告后运行,结果如下:7、在步伐3的基础上,将printf语句改为:printf(“%d,%d,%d,%d\n”,i,j, i++,j++);8、编译,无毛病、无警告后运行,结果如下:9、将步伐2法式改为:#include<stdio.h>main(){int i=8,j=10,m=0,n=0;m+=i++,n-=--j;printf("i=%d,j=%d,m=%d,n=%d\n",i,j,m,n);}10、编译、运行,结果如下:3、输入#include<stdio.h>main(){int a=-2;printf("%d,%d\n",a,a--);}4、编译,无毛病、无警告后运行,结果如下:实验总结统计与信息学院《C法式设计》实验陈说(三)学号:姓名:班级:成果:实验名称:最简单的C法式设计指导教师:实验日期:实验地址:实验软件(主要仪器设备):实验要求1.掌握C语言中使用最多的一种语句——赋值语句的使用.2.掌握数据的输入输出的方法,能正确使用各种格式转换符.实验过程与步骤实验①1、运行2、输入#include<stdio.h>main(){int a,b;float c;scanf("%d%d%f",&a,&b,&c);printf("a=%-4d,b=%4d,c=%f,c=%.2f\n",a,b,c,c);}3、编译,无毛病、无警告后运行,结果如下:有空格、tab、回车三种输入方式.4、将步伐2中的scanf("%d%d%f",&a,&b,&c);改为scanf(“%d, %d ,%f”,&a,&b,&c);5、编译,无毛病、无警告后运行,结果如下:实验②1、输入#include<stdio.h>main(){int a;float b;char c;scanf("%4d%5f%3c",&a,&b,&c);printf("a=%d,a=%o,a=%x,b=%8.3f,b=%4.0f,c=%c\n",a,a,a,b,b,c);}2、编译,无毛病、无警告后运行,结果如下:实验③(1)a+b1、输入#include<stdio.h>main(){int a,b,c;scanf("%d,%d",&a,&b);c=a+b;printf("%d+%d=%d\n",a,b,c);}2、编译,无毛病、无警告后运行,结果如下:(2)a-b1、输入#include<stdio.h>main(){int a,b,c;scanf("%d,%d",&a,&b);c=a-b;printf("%d-%d=%d\n",a,b,c);}2、编译,无毛病、无警告后运行,结果如下:(3)a*b1、输入#include<stdio.h>main(){int a,b,c;scanf("%d,%d",&a,&b);c=a*b;printf("%d*%d=%d\n",a,b,c);}2、编译,无毛病、无警告后运行,结果如下:实验④(1)getchar输出1、输入#include<stdio.h>int main(){char c1,c2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);return 0;} (4)a/b1、输入#include<stdio.h>main(){int a,b,c;scanf("%d,%d",&a,&b);c=a/b;printf("%d/%d=%d\n",a,b,c);}2、编译,无毛病、无警告后运行,结果如下:(5)(float)a/b1、输入#include<stdio.h>main(){int a,b,c;scanf("%d,%d",&a,&b);c=(float)a/b;printf("%d/%d=%d\n",a,b,c);}2、编译,无毛病、无警告后运行,结果如下:(6)a%b1、输入#include<stdio.h>main(){int a,b,c;scanf("%d,%d",&a,&b);c=a%b;printf("%d%%%d=%d\n",a,b,c);}2、编译,无毛病、无警告后运行,结果如下:(2)printf输出1、输入#include<stdio.h>int main(){char c1,c2;c1=getchar();c2=getchar();printf("%c%c\n",c1,c2);return 0;}2、编译,无毛病、无警告后运行,结果如下:2、编译,无毛病、无警告后运行,结果如下:实验总结学号:姓名:班级:成果:实验名称:选择结构法式设计指导教师:张雄实验日期:实验地址:实验软件(主要仪器设备):实验要求1.了解C语言暗示逻辑量的方法(以0代表“假”,以1代表“真”);2.学会正确使用逻辑运算符和逻辑表达式;3.熟练掌握if语句和switch语句.实验过程与步骤实验①1、运行.2、输入#include<stdio.h>int main(){int x,y;scanf("%d",&x);if(x<1)y=x;else if(x>=10)y=3*x-11;elsey=2*x-1;printf("x=%d,y=%d\n",x,y);return 0;}3、编译,无毛病、无警告后运行,结果如下:X<1时,1=<x<10时,x>=10时,(2)switch语句1、输入#include<stdio.h>main(){float x;int y;char ch;printf("Your score:");scanf("%f",&x);y=x/10;switch(y){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';}printf("%c\n",ch);return 0;}2、编译,无毛病、无警告后运行,结果如下:实验②(1)if语句1、输入#include<stdio.h>main(){float x;char ch;scanf("%f",&x);if(x>=90) ch="A";else if(x>=80) ch="B";else if(x>=70) ch="C";else if(x>=60) ch="D";else ch="E";printf("%c\n",ch);}2、编译,无毛病、无警告后运行,结果如下:实验③:(水仙花数)1、输入#include<stdio.h>int main(){int m,a,b,c;scanf("%d",&m);if(m/100==0){printf("data error\n");return 0;}a=m%10;b=(m/10)%10;c=m/100;if(m==a*a*a+b*b*b+c*c*c){printf("Y\n",m);return 0;}else{printf("N\n",m);return 0;}}2、编译,无毛病、无警告后运行,结果如下:实验总结学号:姓名:班级:成果:实验名称:循环控制指导教师:实验日期:实验地址:实验软件(主要仪器设备):实验要求1.熟悉用while语句,do-while语句和for语句实现循环的方法.2.掌握在法式设计中用循环的方法实现各种算法(如穷举、迭代、递推等).实验过程与步骤实验①:输入两个正整数,求其中最年夜公约数和最小公倍数.(1)求最年夜公约数1、输入#include<stdio.h>main(){int m,n,i,t;scanf("%d%d",&m,&n);if(n<m){t=n;n=m;m=t;}i=m;while(1){if(m%i==0&&n%i==0) break;i--;}printf("它们的最年夜公约数是:%d\n",i);return 0;}2、编译,无毛病、无警告后执行,结果如下:(2)求最小公倍数1、输入#include<stdio.h>main(){int m,n,i,t;scanf("%d%d",&m,&n);if(n<m){t=n;n=m;m=t;}实验②:输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数.1、输入#include<stdio.h>main(){char c;int letter,space,number,other;letter=space=number=other=0;do{c=getchar();if(c>='a'&&c<='z'||c>='A'&&c<='Z')letter++;else if(c>='0'&&c<='9')number++;else if(c==' ')space++;elseother++;}while(c!='\n');printf("letter=%d,space=%d,number=%d,other=%d\n",letter,space,number,other);return 0;}i=m;while(1){if(i%m==0&&i%n==0) break;i++;}printf("它们的最小公倍数是:%d\n",i);return 0;}2、编译,无毛病、无警告后执行,结果如下:实验⑤:编写法式输出乘法表1、输入#include<stdio.h>main(){int i,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++)printf("%d*%d=%-3d",j,i,i*j);printf("\n");}system("pause");}2、编译,无毛病、无警告后运行,结果如下:for(j=1;j<=2*i+1;j++)printf("*");printf("\n");}for(i=n-1;i>=0;i--){for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=2*i+1;j++)printf("*");printf("\n");}}2、编译,无毛病、无警告后运行,结果如下:实验④:编程求1!+2!+3!+……+20!.1、输入#include<stdio.h>2、编译,无毛病、无警告后执行,结果如下:实验③:打印出以下图案:7行7列菱形1、输入#include<stdio.h>#define n 3int main(){int i,j;for(i=0;i<=n;i++){for(j=1;j<=n-i;j++)printf(" "); int main(){int n,m=1,sum=0;for(n=1;n<=20;n++){m=n*m;sum=sum+m;}printf("1+2!+3!...+20!=%d\n",sum);}2、编译,无毛病、无警告后运行,结果如下:实验总结学号:姓名:班级:成果:实验名称:数组指导教师:实验日期:实验地址:实验软件(主要仪器设备):实验要求1.掌握一维数组和二维数组的界说、赋值和输入输出的方法;2.掌握字符数组和字符串函数的使用.3.掌握与数组有关的算法(特别是排序算法).实验过程与步骤实验①:编写法式,用scanf函数输入10个整数的数列,先将整数依照从年夜到小的顺序进行排序,然后输入一个整数拔出到数列中,使数列坚持从年夜到小的顺序.1、输入#include<stdio.h>main (){void Rank(int N,int n[]);int i,j,k;int n[11];for(i=0;i<10;i++)scanf("%d",&n[i]);Rank(10,n);scanf("%d",&k);if(k>n[9])n[10]=k;else{for(i=0;n[i]<=k;i++);for(j=9;j>=i;j--)n[j+1]=n[j];n[i]=k;}for(i=0;i<=10;i++)printf("%-4d",n[i]);printf("\n");}void Rank(int N,int n[]){int i,k,t;for(k=1;k<=N-1;k++)for(i=N-1;i>=k;i--)if(n[i-1]>n[i])实验②:有15个数寄存在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值,如果该数不在数组中,则输出“无此数” ,而且可以实现连续查找.15个数用赋初值的方法在法式中给出,要找的数用scanf函数输入.1、输入#include<math.h>main(){static int i,j,m,a[15]={2,10,13,24,35,59,68,78,98,102,234,526,649,758,893};scanf("%d",&m);for(j=0;j<15;j++)printf("%4d",a[j]);printf("\n");i=7;while(fabs(i-7)<8){if(m<a[7]){{t=n[i];n[i]=n[i-1];n[i-1]=t;}for(i=0;i<=N-1;i++)printf("%-4d",n[i]);printf("\n");}2、编译,无毛病、无警告后运行,运行结果如下:实验④:将两个字符串联接起来,不要用strcat函数.1、输入#define M 50#define N 20main (){char a[M],b[N];int i,j;gets(a);gets(b);for(i=0;a[i]!='\0';i++);for(j=0;b[j]!='\0';j++){a[i]=b[j];i++;}a[i]='\0';puts(a);}2、编译,无毛病、无警告后运行,运行结果如下:实验⑤:从键盘输入5个字符串,找出最长的字符串和最年夜的字符串.1、输入#include "string.h"#define N 20main(){char a[5][N],max[N],m,n,max1;int b[5];int i,j;for(i=0;i<=4;i++)gets(a[i]);for(i=0;i<=4;i++)b[i]=strlen(a[i]);max1=b[0];m=0;for(i=1;i<=4;i++)if(b[i]>=max1)if(a[i]-m==0){printf("it is at (%d)\n",i+1);break;}i--;}else if(m>a[7]){if(a[i]-m==0){printf("it is at (%d)\n",i+1);break;}i++;}elseprintf("8\n");}if(fabs(i-7)-8==0)printf("无此数\n");}2、编译,无毛病、2警告后运行,运行结果如下:实验③:将以下二维数组中数按列的顺序寄存到一个一维数组中.二维数组的内容是11 22 33 4411 22 33 4411 22 33 44则一维数组中的内容是11 11 11 22 22 22 33 33 33 44 44 441、输入#include <stdio.h>main(){inta[3][4]={{11,22,33,44},{11,22,33,44},{11,22,33,44}};int b[12],i,j,m;{max1=b[i];m=i;}strcpy(max,a[0]);n=0;for(i=1;i<=4;i++)if(strcmp(a[i],max)>=0){strcpy(max,a[i]);n=i;}printf("\n");puts(a[m]);puts(a[n]);}2、编译,无毛病、无警告后运行,运行结果如下:m=0;for(j=0;j<=3;j++)for(i=0;i<=2;i++){b[m]=a[i][j];m++;}for(m=0;m<12;m++)printf("%d ",b[m]);printf("\n");}2、编译,无毛病、无警告后运行,运行结果如下:实验总结学号:姓名:班级:成果:实验名称:函数指导教师:张雄实验日期:实验地址:实验软件(主要仪器设备):实验要求1.掌握界说函数的方法;2.掌握函数实介入形参的对应关系,以及“值传递”的方式;3.掌握函数的嵌套调用和递归调用的方法;4.掌握全局变量和局部变量,静态变量和静态变量的概念和使用方法.实验过程与步骤实验①:写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息.1、输入#include <stdio.h>int is_prime(int m){int i;if(m==1)return 0;for(i=2;i<m;i++){if(m%i==0){return 0;}}return 1;}void main(){int n,c;scanf("%d",&n);c=is_prime(n);if(c==1)printf("它是素数\n");elseprintf("它不是素数\n");}2、编译,无毛病、无警告后运行,结果如下:实验③:已知二阶Fibonacci数列:0 若n=0Fib(n)= 1 若n=1Fib(n-1)+Fib(n-2) 其他情况界说递归函数求Fib(n).1、输入#include<stdio.h>int fib(int n){if(n==0 )return 0;else if(n==1)return 1;else{return fib(n-1)+fib(n-2);}}实验②:1、输入#include<stdio.h>void main(){int gy(int,int);int gb(int,int);int m,n;restart:scanf("%d%d",&m,&n);printf("最年夜公约数是%d\n",gy(m,n));printf("最小公倍数是%d\n",gb(m,n));goto restart;}int gy(int x,int y){int a,b,c,d;if(x>=y) {a=x,b=y;}else {a=y,b=x;}while(d!=0){c=a/b;d=a%b;a=b;b=d;}return a;}int gb(int x,int y){return(x*y)/gy(x,y);}2、编译,无毛病、无警告后运行,结果如下:实验④:编写函数,求101!n1、输入#include <stdio.h>int func(int n){if(n==0||n==1){return 1;}else{return n*func(n-1);}}int main(void){int n;int i;void main(){int n;scanf("%d",&n);printf("fib(%d)=%d\n",n,fib(n));}2、编译,无毛病、无警告后运行,结果如下:int sum = 0;printf("请输入一个正整数:");scanf(" %d", &n);for (i=1;i<=n;i++){sum+=func(i);}printf("1!+...+%d!=%d\n",n,sum);return 0;}2、编译,无毛病、无警告后运行,结果如下:实验总结学号:姓名:班级:成果:实验名称:指针指导教师:实验日期:实验地址:实验软件(主要仪器设备):实验要求1.掌握指针的概念,会界说和使用指针变量;2.学会使用数组的指针和指向数组的指针变量;3.学会使用字符串的指针和指向字符串的指针变量;4.学会使用指向函数的指针变量;5.了解指向指针的指针的概念及其使用方法.实验过程与步骤实验①:1.界说函数void fun(int x[ ],int*max,int *min),找出数组x中的最年夜值和最小值,最年夜值和最小值通过形参指针max和min传回.1、输入#include<stdio.h>#define N 10{ void fun(int *a,int n)int i,j,k,big;i=0;big=a[0];for(i=0;i<N;i++){if(big<a[i]){big=a[i];j=i;}}k=a[0];a[0]=a[j];a[j]=k;j=1;big=a[1];for(i=1;i<N;i++){if(big<a[i]){big=a[i];j=i;}}k=a[1];a[1]=a[j];a[j]=k;}void main(){int a[N],i;for(i=0;i<N;i++)scanf("%d",a+i);fun(a,N);for(i=0;i<N;i++)printf("%d ",a[i]);printf("\n");}}printf("-1");实验②:编写一个函数comp(s1,s2)实现两个字符串的比力.1、输入1.编写以下函数:#include <stdio.h>#include <math.h>main(){char s1[100],s2[100];int i=0,j=0;printf("s1:");do{scanf("%c",&s1[i]);s1[i]='\0';printf("s2:");do{scanf("%c",&s2[j]);}while(s2[j++]!='\n');s2[j]='\0';i=-1;j=-1;do}while(s1[i++]!='\n');break;}else if(s1[i]<s2[j]||(s1[j]!='\0'&&s1[i]=='\0')){printf("1");break;}else if(s1[i]=='\0'&&s2[j]=='\0')printf("0");}while(s1[i]!='\0'&&s2[j]!='\0');}2、编译,无毛病无警告后运行,结果如下:实验③:从键盘输入一个字符串与一个指定字符,调用函数,将字符串中呈现的指定字符全部删除.1、输入#include "stdio.h"#include "conio.h"#include "string.h"void prochar(char *str,char c){char *p;for(p=str;*p!='\0';p++)if(*p!=c)*str++=*p;*str='\0';}void main(){char str[80],char_c;gets(str);scanf("%c",&char_c);prochar(str,char_c);puts(str);getch();}2、编译,无毛病无警告后运行,结果如下:for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%d\t",array[i][j]);printf("\n");}}void convert(int array[][3]){int i,j,t;for(i=0;i<N;i++)for(j=0;j<N;j++)2、编译,无毛病无警告后运行,结果如下:{i++;j++;if(s1[i]>s2[j]||(s1[i]!='\0'&&s2[j]=='\0')){2、编译,无毛病、无警告后运行,结果如下:实验④:将一个3×3的矩阵转置,用一函数实现.在一主函数中用scanf函数输入以下矩阵元素:1357911131517将数组名作为函数参数,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出转置后的矩阵.1、输入#include<stdio.h>#define N 3int array[N][N];void main(){void convert(int array[][3]);int i,j;printf("输入数组:\n");for(j=0;j<N;j++)for(i=0;i<N;i++)scanf("%d",&array[i][j]);printf("\n");for(j=0;j<N;j++){for(i=0;i<N;i++)printf("%d\t",array[i][j]);printf("\n");}convert(array);printf("\n");实验总结创作时间:二零二一年六月三十日。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三模块化程序设计(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)中两个变量的值。