《C语言程序设计》实验指导书_第1页
《C语言程序设计》实验指导书_第2页
《C语言程序设计》实验指导书_第3页
《C语言程序设计》实验指导书_第4页
《C语言程序设计》实验指导书_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

广西师范大学职业技术师范学院

《C语言程序设计》实验指导书

唐杰编著

广西师范大学职业技术师范学院

2023年8月

目录

第一章开发工具简介..............................................

启动............................................................

建立项目........................................................

新建和编辑源文献................................................

编译代码........................................................

运营结果........................................................

第二章实验内容..................................................

实验一开发环境与程序设计.......................................

实验二数据类型、运算符和表达式.................................

实验二逻辑结构程序设才.........................................

实验四循环控制程序设计.........................................

实验五数组.....................................................

实验六函数.....................................................

实验七菜单实现.................................................

实验八指针.....................................................

实验九结构体与共用体...........................................

实验十动态内存分派.............................................

实验十一位运算.................................................

实验十二编译预解决与自定义类型.................................

实验十三文献...................................................

参考文献:32

附录:C程序设计实验报告32

说明:本实验指导书中第十、十二、十三个实验非计算机专业可选作。

第一章开发工具简介

Microsoft@VisualStudio™6.0是微软公司在1998年开发的一

套软件开发工具,其中涉及VisualBasic®,VisualC++®、VisualJ++

“和其它一些开发工具,在课程中将重要使用VisualC++®6.0(简

称VC6)进行实验设计,YC6是目前同类产品中最为成熟,也是使用

最多的集成开发环境----IDE(IntegratedDevelopment

Environment),

启动

当VC6启动后,会出现如图0.1所示的主程序窗口。

图0.1主界面

在VC6的主界面中,顶部是主菜单栏和工具栏,主菜单共有9个菜单

项。VC6主界面左侧是项目工作区窗口(Workspace),用来显示工

作区的信息,右侧是程序编辑窗口,用来输入和编辑源代码,下面的

是输出窗口(Output),用来显示进行构建或调试等工作时的状态与

数据信息,最底部是状态栏,各窗口可任意隐藏、显示。

建立项目

用VC6进行程序设计,是作为项目对待的,一个项目是一个整体,它存放建立程序所需

要的所有信息,涉及程序所有源文献的名称及其关系,所需库文献的清单和建立程序所用的

编译器、连接器和其它工具的选项清单。由于VC6可以建立的工作项目共有16个或更多,对

于初学者来说有点复杂,要所有弄清楚需要很长的时间,因此,本书只以实验中用到的控制

台应用程序为例进行介绍,

建立一个项目可以通过VC6的向导来完毕,选择主菜单中“文献”>>“新建”菜单项,将会

弹出如图0.1所示的对话框,在“Projects”标签页中列出了16个可以建立的项目选项,选

择“工程”选项总选择aWin32ConsoleApplicationw,然后在右上侧的“工程名称”文本

框中输入项目名,“位置”中输入要保存的项目途径,点击下方的“拟定”按钮即可进入下

一个界面。

新建0®

文件工程I工作区I其它文档I

.riATLCOMAppWizard工程名称但):

"TlClusterResourceTypeWizard

京CustomAppWizard

窗1DatabaseProject

^■DevStudioAdd-inWizard位置ig:

凶'ExtendedStoredProcWizard第一个项目

0ISAPIExtensionWizard

用Makefile

需MFCActiveXControlwizard

用MFCAppWizard(dll)行创建新的工作空间因

另MFCAppWizard(exe)「不加到当前工作空间囿

jSiNewDatabaseWizard

r从底于回:

iftUtilityProject

T]Win32ApplicationI3

Win32ConsoleApplication

%)Win32Dynamic-LinkLibrary

Win32StaticLibrary

平台10:

•Win32

嘀定取消

图0.1新建项目对话框

在下一个界面中,显示的是可以创建的控制台应用程序类型,VC6中可以创建的控制台应用

程序共有4种,如图().2所示。课程实验只需选择默认的“一个空工程”,单击“完毕”,VC6

会将创建的项目信息显示出来,如图0.3所示,其中涉及项目包含的文献及途径等内容。

图0.2控制台项目对话框

新建工程信息|>£|

Win32ConsoleApplication将会创建一个新的以下规格的工程骨架:

+Emptyconsoleapplication.

+Nofileswillbecreatedoraddedtotheproject.

工程目录:

F:\C\第一个项目

确定取消

图0.3项目信息对话框

点击“拟定”按钮,完毕项目新建工作,这时VC6的主界面变成图0.4所示。可以看到新建

的项目中未包含任何文献,

图0.4项目建立完毕界面

新建和编辑源文献

向所创建的项目中添加源文献,通过“文献”》“新建”菜单选项打开新建对话框,这

时弹出的对话框与图0.1同样,但是标签页变成“文献”页,如下所示。

该标签页中列出了VC6可以新建的所有文献类型,其中与实验有关的是“CC++Header

File"和"C++SourceFile"两类文献,分别用来创建头文献和源文献的。

单击“C十十SourceFile”选项,并勾选“A添加工程”更选框,选择项目名(默认当前

项目),然后在“文献”文本框中输入源文献名,在“C目录”文本框中输入或选择文献途

径,点击“拟定”按钮就完毕了新建文献的工作如下图所示。然后可在工作区编辑源程序。

图0.1源代码编辑界面

编译代码

在编辑器中输入源代码并保存,然后可以通过主菜单中的“编译”项进行程序的编译、链接和运

营。也可通过工具栏(编译微型条)中工具快速完毕(如左图)构建可执行文献,VC6会在主界

面下方的信息输出窗口中将构建过程中的信息显示出来,如编译过程和链接过程的环节,是否有

错误等信息,如图0.1所示。

----------------Configuration:Exanple-Win32Debug-------

Compiling.・・

exanple.c

Linking...

Example.exe-0error(s),0warning(s)

Build/Debug\FindinFiles1\FindinFiles2\Results]|

图0.1构建信息输出窗口

运营结果

假如在构建过程中有错误发生,错误信息输出窗口中显示出来,这时就需要返回到源代码中

进行修改,再重新构建,直到没有错误为止。假如项目对的的构建完毕,就可以运营了。运

营的方法是通过主菜单中的“编译”下的执行选项进行,或者使用快捷键“CE+F5”、微型

编译微型条也能实现同样的H的。

最后,运营的结果会显示在一个控制台窗口中,如图0.1所示。

图0.1运营结果

注:"Pressanykeytocontinue'1

是系统提醒信息。

第二章实验内容

C语言是一门功能强大、实且用性很强,又非常灵活的程序设计语言,只有通过不断的

上机练习,才干较好地理解和掌握C语言。在实验课程中常采用的是较为常用的Visual

C++®6.0(简称VC6)开发环境。

本实验指导书中共有十三个实验,每一个实验内容中都包含若干个

实验项目,每一次上机所需时间设计为2个学时,共26学时。实验

应掌握对的的方法,即:实验前先写好程序,然后再上机调试通过,

并对调试结果进行分析,总结实验的收获,以进一步理解和巩固所学

知识。

实验一开发环境与程序设计

一、实验目的

1.熟悉VC6的开发环境

2.掌握运用VC6进行程序编辑、构建与调试的方法

3.了解子函数的调用方法

4.熟悉C源程序的结构和特点

二、实验内容

1.VC6环境的使用

(1)掌握启动与关闭VC6的方法。

(2)熟悉VC6各菜单项的内容与各窗口的用途。

建立一个项目test,其中包含一个源文献:test,c,编译、运营并查看其结果,文献内容

如表1所示:

test,c文献内容

1#include<stdio.h>

2voidmain()

6{

7printf(〃大家好,欢迎使用VC开发环境\n〃):

8)

建立相应项目和源文献,并输入下表信息,执行结果,体会函数调用关系。

#include<stdio.h>

〃求两个血型数中的大者

intmax(inlx,inty)

{

if(x>=y)

returnx;

else

returny;

)

voidmain()

(

in(a,b,max1:

scanf("%d%d",&a,&b);

〃调用max函数,通过max返回最大者

maxl=max(a,b);

printfC最大者为:%为,maxi);

(3)分别输入表1.表2所示程序源代码

对源程序进行编译,观测屏幕上显示的编译信息.如有错误产生则找出因素并改正,再进

行编译,直至没有错误。

进行连接并运营程序.分析运营结果。

表1程序代码

^include<stdio.h>

voidmain()

(

inta,b.suml;

floatx;y,sum2;

a=123;

b=456;

suml=a+b;

printf(vsumis%d\n〃,suml);

x=12.3;

y=12.6;

sum2=x+y;

printf(wsum2=%5dM,sum2)

)

3.以下表2代码接受从键盘上输入的int型数x,乘2后赋值给int型的p单元,若有储,请

改正。

表2程序代码

#include<stdio.h>

voidmainO

scanf(x);

intp=x*2;

printf(“p=”,p)

}

实验二数据类型、运算符和表达式

一、实验目的

1.掌握C语言的基本数据类型及其意义

2.熟悉变量的定义与赋值、引用方法

3.掌握C语言的算术运算符及表达式及赋值语句的应用

4.掌握输入/输出函数的使用

5.熟悉各种常用的格式转换符

6.进一步熟悉C语言程序的编辑、编译、连接和运营的过程

二、实验内容

分析表1〜表3程序代码,若有错,则改正。

表1代码1

tfinclude<stdio.h>

voidmain(J

{charsi='3',s2='4,,s3='5';

intcl=101,c2=102;

printf(zz3%c\t4%c\t5%c\n〃,si,s2,s3);

printf(*sl=%d\ts2=%d\ts3=%d\n〃,si,s2,s3);

printf(^cl=%d\t~%c”,cl,cl);

printf;/zc2=%d\t~%c”,c2,c2);

表2代码2

#include<stdio.h>

voidmain(;

(

floatx=8.3,y=4.2,s;

inta=7;

s=x+a%5*(int)(x-y)%2/3;

printf(/zs=%f〃,s);

}

表3代码3

#include<stdio.h>/*理解前置和后置自增自减的异同*/

voidmain()

(

inti,j,p,q;

i=3;j=6;

P=q=—j;

printf(z,%d,%d,%d〃,i,j,p,q);

P=i—+3;q=++j-4;

printf(z,%d,%d,%d,%d〃,i,j,p,q);

)

1.请改正表4〜表6程序代码的错误。

表4代码4

ttinclude<stdio.h>

#definePI3.14

voidmain(;;

intr=3;area;

area=P:*r*R;

printr,area);

1

表5代码5

ttinclude<stdio.h>

voidmain(>

intm;

doublex;

scanf&m);

x=3.14*m*m

prinlf("f〃,x);

表6代码6

tfinclude<stdio.h>

voidmain;)

{/*求a,b的和,规定精确到小数点后9位,并输出*/

floata=12.1,b=0.,sum;

sum=a-b;

printf(〃sum=%d〃,sum);

2.按表7〜表8所示程序代码中的注释规定将程序填写完整。

表7代码7

#include<stdio.h>

voidmain()

{/*完毕a,b两个数的互换*/

inta=9,b=5:

a+=b;

b=;

a-=;

printft/z%d%d”,a,b);

)

表8代码8

#include<stdio.h>

voidmain()

(

intm,n;

floatx=3.5,y=6.2;

scanf("%d,刎〃,&m,&n);

/*每个数的输出宽度为6,两数之间以逗号分隔*/

printfK,m,n);

/*每个数的输出宽度为7,小数位数为2*/

printf了x=,y=〃,);

编写程序,用getchar函数读入两个字符cl,c2,然后分别用putchar函数和pnnlf函数输出这

两个字符及其ASCII码,并思考:变量cl,c2应定义为字符型还是整型?或是两者皆可?

5.已知某商品单价2元/斤,现销售5.12斤,求销售额。规定:已知条件用scanf完毕。

实验三逻辑结构程序设计

一、实验目的

1.掌握逻辑运算符和逻辑表达式的对的使用

2.熟悉顺序结构中语句的执行过程

3.掌握if语句和switch语句

4.掌握基本的程序调试方法

三、实验内容

1.求分段函数的值,分段函数如下:

XX<1

y='2x-\I<x<10

3x-llx>10

规定通过scanf语句输入x的值,prinif语句输出y的值。

(1)说明:程序编译成功,只是说明没有语法错误,但不一定能得出对的结果,

由于有也许存在逻辑错误。通过跟踪变量、调试程序,可以找出问题所在。

通常所用的调试方法有以下3种:(组建/开始调试)

(2)单步跟踪:StepInto(F10)

(3)运营到光标处:Runtocursor(Clril+FIO)

设立断点:Insert/RemoveBreakpoint(F9)

调试的一般过程:

调试,是指在程序的运营过程的某一阶段观测程序的当前状态,要使程序在执行到

某一行时暂停,应一方面在该行设立断点。然后通过“组建(Build)/开始调试(StartDebug)

/Go”命令菜单执行,使程序进入调试状态,此时注意观测:组建菜单此时变为Debjg菜

单。程序执行到断点处会停顿下来。然后可采用Debug菜单中的4条命令来控制程序的

运营。

StepOver:运营当前断点指向的代码(只运营一条代码)

StepInto:若当前断点所指代码是一个函数的调用,则进入该函数单步执行.

StepOut:若当前执行在某函数内,使程序运营至函数返回处。

2Cursur:使程序运营至光标所指的代码处。

单步运营表5所示程序代码,按规定进行变量跟踪,并写出调试结果。

表5代码5

#include<stdio.h>

voidmain0

(

inti,j,k,ss,m=1,n=1;

scanf("%d%d〃,&i,&j);

/*查看变量i,j的取值,读入数据是否对的?*/

in+=i-+;

/*观测变量m,j的结果,为什么?*/

n*二—j;

/*观测变量n,j的结果,为什么?*/

ss=(k=m+2,n-5,k+n);

/*观测变量k的结果,为什么?”

printf(〃%d”,ss);

/*查看最终结果,为什么?*/

)

(4)给出一个百分制成绩,规定输出成绩等级A.B.C.D和Eo90分以上为A,

89-80为B,79-70为C,69-60为D,60分以下为E。

(5)规定分别用if语句和switch语句来实现

输入数据大于100或小于0时,给出提醒信息“输入数据犯错!”,并结束程序运营。

(6)定义一个不多于5位的正整数,规定

(7)用scanf输入,并求出它是几位数

(8)分别输出每一位数字

(9)按逆序输出各位数字,例如原数是321,应输出123

对不合法的输入给出提醒信息,并结束程序

实验四循环控制程序设计

一、实验目的

1.掌握运用while语句、do…while语句和for语句实现循环控制的方法

2.掌握循环结构和选择结构的嵌套设计方法,以及多重循环的设计方法

3.了解控制语句break、continue和goto等语句的作用及使用方法

4.进一步熟悉程序的调试方法

二、实验内容

调试表1所示程序代码,分别输入5和6,以单步跟踪的方式运营程序。观测循环中命令的

执行及转向情况,并记录程序的运营结果。

表1代码1

Sinclude<stdio.h>

voidmainO

(

intn;

while(1){

pr:ntf(〃请输入一个数:〃);

scanf(〃%d”,&n);

if%2=1){

printf(〃我说的是〃);

continue;

)

break;

printf("谢谢,这正是我要的数据!〃);

}

输入一行字符,分别记录出其中的英文字母、空格、数字和其他字符的个数。

(1)表2所示程序代码的功能是:假设树高k厘米,小蚕天天向上爬m厘米,天

天晚上因睡觉向下滑n厘米,爬到顶后不再下滑(nvm<k)。计算小蚕需要

多少天才干爬到树顶。

(2)在花括号的说明处将程序补充完整。

测试数据:分别令k、m、n为253.71.29,输出结果应为6。

表2代码2

#include<stdio.h>

voidmainO

intk,n,n,h,day=0;〃h为当天最高点

printf(”请输入3个数:“);

scanf(z,%d%d%d,?,&k,&m,&n);

/*在此处编写若干语句,使程序完整。*/

printf:〃\n需要%d天,小蚕可以爬到树顶。\n”,day);

}

使用循环语句编程,输出图1所示的九九乘法表。

*123456789

224

3369

4481216

5510152025

661218243036

77142128354249

8816243240485654

991827364554637281

图1九九乘法表

分别用while语句、do…while语句编写程序,计算

,111

ex1H---1----F…H--

1!2!/?!

<3)规定:

(4)用单循环编写程序

(5)使最后一项的值小于等于给定的即可结束运算,设

除了输出e以外,同时还要输出总的项数n

实验五数组

一、实验目的

1.掌握一维数组与二维数组的定义、初始化及使用方法

2.掌握字符数组和字符串函数的使用

3.掌握与数组有关的算法

4.进一步理解模块化程序设计的方法

二、实验内容

表1代码所示程序的功能是:将含n个元素的数组xx的前k个元素(k<n)移

到数组的尾部,变为后k个元素,但是数组的这两段(原前k个元素为一段,此外

的n-k个元素为一段)中元素的顺序不变。

例如:输入:7和1234567,再输入:5,则输出:6712345

请在横线处填入适当的内容.洛程序补充完整。

表1代码1

#include<stdio.h>

voidmain()

intn,k,xx[20];

inti,j,t;

printf(〃请输入元素个数:〃):

scanf(飞d〃,&n);

printf("请输入%d个数:”,n);

for(i=0;i<n;i++)

scanf(〃%d〃,&xx[i]);

printf(〃\n请输入要移动的元素个数:〃);

scanf(〃%d〃,&k);

for(i=0;i<k;i++)

(

t=①;

for(j=1;j<n;j++)

(

)

}

printf(〃\n移动之后的元素序列为:\n〃);

for(i=0;i<n;i++)

printf(〃%3d〃,©);

printf("\n");

)

表2所示程序代码的功能是:对数组a中的n种商品价格进行分段记录,商品

各段价格的数目存到数组b中,其中:价格为100元以下的个数存到b[0]中,价格

在100到199元之间的个数存到b⑴中,价格在200到299元的个数存到b⑵中,价

格在30()到399元的个数存到b[3]中,价格在40()到499元的个数存到b[4]中,价

格在500以,的个数存到b[5]中。

例如:当数组a中的数据为:90、18()、270、380、590、530、140、750、380时,调用函数

后,数组b中存放的数据应是:1、2、I、2、0、3。

表2代码2

#include<stdio.h>

voidmain()

inti,a[100]={90,180,270,380,590,530,140,750,380},b[6];

(

/*在此处编写若干代码,使程序完整*/

)

printf("结果是:");

for(i=0;i<6;i++)

printfb[i]);

printf(〃\n〃);

编写程序,输入1()个整数,再把它们从小到大的顺序进行排列,最后再输入一

个整数k,并将k插入到该整数数列中,插入后的数列仍然从小到大排列。

例如:输入6,3,42,23,35.,71,98,67,56,38,最后输入待插入的数为59,则输出结果应为:

3,6,23,35,38,42,56,59,67.71,98°

实验六函数

一、实验目的

1.掌握函数的定义和调用方法

2.掌握函数形参和实参的相应关系,以及“值传递”的方式

3.理解函数的嵌套调用和递归调用的方法

4.理解变量作用域和存在期的概念

5.掌握全局变最和局部变量、动态变量、静态变量的概念和使用方法

6.学习对多文献的程序进行编译和运营的方法

二、实验内容

输入表1程序代码并执行.观测程序的运营结果。

表1代码1

#include<stdio.h>

inta=3,b=5;

intmax(inta,intb)

(

intc;

c=a>b?a:b;

returnc;

)

intmain()

printf(〃%d\n〃,max(a,b));

return1;

}

在主函数的printf语句前加入inta=8;语句后重新执行程序,观测其运营结果。分析变量a

的作用域,程序修改前后两次调用max函数时的实参a是否为同一变量?

将inia=3,b=5;放入同一目录中的“f.h”文献中,并在main函数文献中加入#成入(1©“f.h”,

主函数改为以下代码,运营并观测其结果。

#include<stdio.h>

^include"f.h"

voidmain()

(

externinta,b;

printf(〃%d\n”,max(a,b));

若将关键字exiern去掉再运营,观测结果有何变化?

编写子函数,判断一个数是否是素数。在主函数中输入一个整数,输出是否是

素数的信息。规定:

编写一个函数intprime(intn),返回给定整数n是否为素数的标志。并在主函数中对任意输

入的整数,调用该函数,输出结果。

编写程序,计算下面公式并输出结果:

C”?___________

(n-ni)\加

(1)规定:

(2)编写一个函数计算

(3)编写主函数,输入n和m,调用(1)中的医数完毕计算。

(4)输入n和m要给出提醒信息,并检查n和m的合理性,不合理的输入应输犯错

误信息,并不再进行计算。

(5)运营程序并计算C;、C;、C;、C;、C;°

实验七菜单实现

一、实验目的

1.掌握菜单设计思想

2.了解容错方法实现

3.了解软件设计的一般思想。

4.掌握循环控制的综合运用。

5.掌握定位函数编写及常用库函数的使用。

二、实验内容

编写程序实现以下菜单功能

说明:

1)各功能模块的实现可只用■个printf语句代替.

2)用循环实现菜单的解决.

提醒:

stdlib.h含systemC'cls")清屏函数

exit()退出系统函数

实验八指针

一、实验目的

1.掌握指针的概念、指针变量定义格式和引用方法

2.掌握指针的运算方法

3.掌握数组的指针和指向数组的指针变量

4.掌握指针与函数的关系

5.能对的使用字符串的指针和指向字符串的指针变量

6.了解指向函数的指针

7.了解指向指针变量的指针

二、实验内容

调试并修改表1程序代码使之具有如下功能:用指针法输入12个数,然后按每行4个数

输出。

表1代码1

^include<stdio.h>

intmain()

(

intj,k,a[12],*p;

for(j=0;j<12;j++)

scanf("%d〃,p++);

for(j=0;j<12;j++){

printfC%dz,,*p++);

if(j%4==0)

printf(〃\n〃);

}

return1;

)

上机验证表2所示程序代码的运营结果,使之具有如下功能:输入3个整数,按由小到大的

顺序输出。

表2代码2

#include<stdio.h>

voidswap(int*pl,int*p2);

intmain()

(

intnl,n2,n3;

int*pl,*p2,*p3;

printf(〃请输入3个整数nl,n2,n3:〃):

scanfC%d,%d,%d〃,&nl,&n2,&n3);

pl=&nl;

p2=&n2;

p3=&n3;

if(nl>n2)

swap(pl,p2);

if(nl>n3)

swap(pl,p3);

if(n2>n3)

swap(p2,p3);

printf(〃现在,顺序是:%d,%d,%d\n”,nl,n2,n3);

return1;

)

voidswap(int*pl,int*p2)

(

intp;

P=*pl;

*pl=*p2;

*p2=p;

)

指出表3所示程序代码问题所在,该程序功能为:输出数组a中的10个元素。

表3代码3

#include<stdio.h>

intmain()

(

inta[10];

int*p,i;

P=a;

for(i=0;i<10;i++){

*p=i;

p++;

)

for(i=0;i<10;p++){

printf(〃%d〃,*p);

)

return1;

表4所示程序代码是用来从键盘输入10个整数,然后求出其中的最小值,填空空缺部分,

使程序完整。

表4代码4

#include<stdio.h>

inttable[10];

voidlookup(int*t,int*a,intn)

/I

intk;

*a=t[0];

for(k=1;k<n;k++)

if()

*a=t[k];

}

intmainO

(

intk,min,*p=&min;

for(k=0;k<10;k++)

scanf(〃%cT,table+k);

lookup(,,10);

return1;

填写代码,使表5所示程序代码完整,用来建立一个如图1所示

的二维数组,并按以下格式输出。

10001

0101()

()0100

01010

10001

图1二维数组

表5代码5

^include<stdio.h>

intmainO

{

inta[5][5]={0},*p[5],i,j;

for(i=0;i<5;i++)

p[i]=;

for(i=0;i<5;i++){

*(pEi]+_______叁__________)=1;

*(p[i]+5-®)=1;

)

for(i=0;i<5;i++){

for(j=0;j<5;j++)

printf("%2d”,p[i][j]);

______®;

)

return1;

}

实险九结构体与共用体

一、实验目的

1.理解结构体类型、共用体类型和枚举类型的概念及定义形式

2.掌握结构体类型和共用体类型变量的定义和引用形式

3.了解内存的动态分派、链表的概念和操作

4.掌握用typedef定义类型的方法。

二、实验内容

分析表1程序代码,预测结果并上机验证。

表1代码1

#include<stdio.h>

intmain()

(

unionbt(

intk;

charc[2];

}a;

a.k=-7;

printf(*%o,%o\n”,a.c[0],a.c[l]);

return1;

}

(1)编写程序,完毕以下功能:

(2)有5个学生,每个学生的数据涉及学号、姓名、3门课的成绩

(3)用一个函数input从键盘输入5个学生的数据

(4)用一个函数average求每个学生的总平均分

(5)用一个函数max找出总分最高学生的数据

(6)输出3门课总平均成绩,以及最高分学生的数据

(7)改用结构体的指针变量用动态分派完毕此题功能。

实验十动态内存分派

一、实验目的

1.了解动态内存分派机制。

2.掌握基本动态内存分派函数及应用。

3.掌握单链表的生成、链表元素增、减、维护。

二、实验内容

1.生成一不带头结点的含三个元素的单链表,并输出。

2.在原单链表中插入一个元素。

3.在原单链表中删除一个元素。

实验十一位运算

一、实验目的

4.加深对二进制的结识

5.理解位运算的概念,各种位运算的功能、规则

6.掌握使用位运算进行修改数据的某些位。

7.了解位段的概念和位段类型数据的引用形式

二、实验内容

分析表1〜表2程序代码,预测结果并上机验证。

表1代码1

^include<stdio.h>

intmain()

(

un

温馨提示

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

评论

0/150

提交评论