C语言程序设计实验报告——实验_第1页
C语言程序设计实验报告——实验_第2页
C语言程序设计实验报告——实验_第3页
C语言程序设计实验报告——实验_第4页
C语言程序设计实验报告——实验_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言程序设计实验目的1 .掌握结构体类型的概念和说明方法2 .掌握结构体变量的定义和引用。结构体类型变量成员的使用。3 .掌握结构体数组的定义和使用方法。4 .掌握指向结构体变量的指针变量的概念和应用。5 .掌握结构变量与指向结构的指针作为函数参数实现函数的调用。6 .掌握共用体的概念和说明方法。7 .掌握共用体变量的定义和引用。共用体类型变量成员的使用8 .掌握位运算的概念和方法。9 .掌握位运算符(&, | , A ,)的使用方法。10 . 了解有关位运算的算法。11 .掌握枚举类型概念和说明方法12 .掌握枚举类型变量的定义以及枚举类型变量的使用。实 验 内 容 与 步 骤1.

2、建立一个学生的简单信息表,其中包括学号、年龄、性别及一 门课的成绩。要求从键盘输入数据,并显示出来。上机运行以下程序。分析:一个学生信息表可以由结构体来定义,表中的内容可以通 过结构体中的成员来表示。体会结构体成员的点运算符引用方法。#include""void main() struct st int num?int age?char sex?floatscore ? structst info ?printf("inputnumber:") ?scanf("%d",& ?printf("inputage:&quo

3、t;) ?scanf("%d",& ?实 验 内 容 与 步 骤getchar() ?printf("inputsex:") ?scanf("%c",& ?printf("inputscore:") ?scanf("%f",& ?printf("number = %dn", ?printf("age= %dn", ?printf("sex= %cn", ?printf("score = %fn"

4、;, ?2.建立5名学生的信息表,每个学生的数据包括学号、姓名及一门课的成绩。要求从键盘输入这5名学生的信息,并按照每一行显示一名学生信息的形式将5名学生的信息显示出来。上机运行以下程序。分析:每个学生的数据学号、姓名及一门课的成绩用结构体表示,5名学生的信息表用结构体数组表示,体会结构体数组元素的引用方法。#include""#define N 5struct studint num?char name 20 ?floatscore ?struct stud sN ?void main()int i ?for (i=0 ? i<N? i+)printf("

5、inputnumber:") ?scanf("%d",&si.num) ?实 验 内 容 与 步 骤printf("inputname:") ?scanf("%s",)?printf("inputscore:") ?scanf("%f",&si.score)?for (i=0 ? i<N? i+)printf("%d",si.num)?printf("%s",)?printf("%fn&

6、quot;,si.score)?3.显示某人工资信息的程序如下,分析显示结果。上机运行以下 程序。分析:某人工资信息可以由结构体来定义,表中的内容可以通过 结构体中的成员来表示。体会结构体成员的指针运算符引用方法。#include""#include ""void main()struct staffchar name20 ?char department20 ?int salary ?struct staff w1,*p ?p=&w1?strcpy,"Li - Li") ?/* 个人信息 */strcpy(*p).depar

7、tment,"part1")?p- >salary=1000 ?printf("%s%s %dn", ?printf("%s%s %dn",(*p).name,(*p).department,(*p).salary) ?printf("%s%s %dn",p - >name,p- >department,p - >salary)?4.编写input() 和output() 函数,输入、输出 2个学生的数据记录。上机运行以下程序。分析:体会结构化程序设计思想的应用。#include "

8、;"#define N 2struct studentchar num6 ?char name8 ?int score4 ?stuN ?void input()int i,j ?for(i=0 ? i<N? i+)printf("npleaseinput %d of %dn",i+1,N) ?printf("num:") ?scanf("%s",stui.num)?printf("name:") ?scanf("%s",)?for(j=0 ? j<3 ?

9、j+)printf("score%d.",j+1) ?scanf("%d",&stui.scorej)?printf("n")?void print(structstudent stuN)int i,j ?printf("nNo.Name Sco1 Sco2 Sco3'n") ?for(i=0 ? i<N? i+)printf("% - 6s%- 10s",stui.num,)?for(j=0 ? j<3 ? j+)printf("% -

10、8d",stui.scorej)?printf("n")?void main()input() ?print(stu) ?5.利用结构体类型,编程计算一名同学5门课的平均分。上机运行以下程序。分析:计算一名同学5门课的平均分,是对结构体成员变量的算术运算。#include ""void main()struct stuscorecharname20 ?floatscore5 ?floataverage ?structstuscore x="Wang- Wei", ,85,70,90,?int i ?float sum=0?f

11、or(i=0 ?i<5 ?i+)sum+=i ?=sum/5?printf("Theaverage score of %s is %4.1fn", ?6.用结构体型数组初始化建立一工资登记表。然后键入其中一人 的姓名,查询其工资情况。上机运行以下程序。分析:查询工资情况,是对结构体成员的查询操作。#include""#include""void main() struct staffchar name20 ?char department20 ?int salary ? int cost ? worker3="Xu -

12、 Guo", "part1",800,200, "Wu- Xia","part2",1000,300,"Li- Jun","part3",1200,350, ?int i ?char xname20 ?printf("nInputthe worker's name: ") ?scanf("%s", xname)?for(i=0 ?i<3 ?i+)if(strcmp(xname,)=0)printf("

13、;nsalary:%6d",workeri.salary)?printf("ncost:%6d",workeri.cost) ? printf("npayed:%6dn",workeri.salary - workeri.cost) ? 7.用子函数求出 worker数组中每个工人的实发工资。上机运行以下程序。分析:求出每个工人的实发工资,是对结构体成员变量的算术运 算。#include""#define NUM 3struct staffchar name20 ?char department20 ?int salary

14、?int cost ?int realsum ?void main()void getreal(structstaff *p,int n) ?struct staff workerNUM,*pm ?int i ?printf("Input%d worker'snamedepartment salary cost:n",NUM) ?for(i=0,pm=worker ? i<NUM?i+,pm+)scanf("%s%s%d%d",pm- >name,pm- >department,&pm - >salary, &am

15、p;pm >cost) ? pm=worker?getreal(pm,NUM) ?for(pm=worker ?pm<worker+NUM*pm+)printf("%sof %s should be payed %dyuann",pm - >name,pm- >department,pm - >realsum) ?void getreal(structstaff *p,int n)intfor(i=0 ? i<n ?i+,p+)p- >realsum=p - >salary - p- >cost8.输入并运行下面程序,观

16、察结果,分析联合变量的存储特点。上机运行以下程序。#include""void main()unionint i2 ?long k?char c4 ?t,*s=&t ?s- >i0=0x39 ?/* 按照整型成员的类型赋值*/s- >i1=0x38 ?printf("%xn ",s - >k) ?/* 按照长整型成员的类型使用储存内容*/printf("%cn ",s - >c0) ?/* 按照字符型成员的类型使用储存内容*/9.今天星期三,再过 10天是星期几上机运行以下程序。分析:枚举类型变量与整型变量是两种不同数据类型,注意它们之间的数据类型转换。#include""void main()enum wee

温馨提示

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

评论

0/150

提交评论