C语言程序设计C语言程序设计02-指针与结构体_6_6
- 格式:pptx
- 大小:185.90 KB
- 文档页数:10


第5章 函数
一、 选择题
1-5 :CBADD 6-10:BABDC 11-15:DBBAB
16-20:DBBAC 21-25:BBBBC
二、程序阅读题
1、以下程序的正确结果是 2,3,-2
2、有以下程序,当执行后,其结果是 14
3、以下程序运行后的输出结果是 1 3 6
4、若有以下程序执行后输出结果是 9
5、有以下程序序运行后的输出结果是 9 。
6、以下程序的输出结果是 1,6,3,2,3
7、以下程序的输出结果是 15
8、以下程序运行后的输出结果是 3,2,2,3
9、以下程序的运行结果是 m=4 k=4 i=5 j=5 。
10、有以下程序
若运行时输入:1234,程序的输出结果是 10
11、以下程序的输出结果是 15 。
三、程序填空题
1、请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。
double max ( double,double);
2、下面程序的功能是:将任意输入的一个偶数n分解为两个素数之和,程序中函数check用来判断一个整数x是否是素数,返回1,否则返回0。
main( ){
int n, i;
int check( int x );
do {
printf( " Input n: " );
scanf( " %d" , &n );
} while( n % 2 != 0 );
for( i=3; i<= n/2 ; i++ )
if( check ( i ) && check(n-i) )
printf( " %d = %d + %d \n ", n, i, n-i );}
int check ( int x ){
int i;
C语言指针和结构体
c 语言归纳
结构体
1.结构体类型定义
#definen STUDENT struct student
student
{ int nun ;
char name[20] ;
char sex ;
int age ;
float score ;
char addr[30];
};
2.结构体变量定义
方式一: STUDENT student1 ,student2;
方式二: struct student
{ int nun ;
char name[20] ;
char sex ;
int age ;
float score ;
char addr[30];
} student1 ,student2 ;
3.结构体类型变量的引用
错误方式:printf(“%d %s %c %d %f %s\n”,student1) ;
正确方式: ①结构体变量名.成员名②(*p)->成员名③p->成员名
例:student1.num=1001 ;
4.结构体变量初始化
main() { struct student
{int num ;
char name[20] ;
char sex ;
char addr[30];
} a={ 89031 ,”li xiao” ,’m’ ,”101 beijing road “};
printf(“no:%ld\n name:%s\n sex:%c\n
address:%s\n”,a.num,,a.sex,a.addr);
5.用typedef定义类型
typedef 已有类型新定义类型
例:typedef int COUNT ;
typedef student STD ;
指针
直接访问:按变量地址存取变量的方法;
间接访问:变量地址存放在另一个内存单元中;
指针:即一个变量的地址;
指针变量:一个专门存放另一个变量地址;
定义方法:
int i , j ;
1 实验六
一、 实验项目名称:数组的应用
二、 实验时间:
三、 实验地点:
四、 实验目的:
1. 掌握数组元素的引用方式。
2. 熟练掌握遍历法处理数组。
3. 熟悉冒泡法。
4. 掌握处理字符数组的方式。
五、 主要的实验所需仪器、设备:PC机。
六、 实验内容与步骤:
1. 输入10名员工的工号和工资,计算平均工资并输出低于平均工资的职工的工号和工资。输入以下程序
i. 按要求编写程序,写出源程序:
ii. 运行结果是:
iii. 与人工分析程序所得结果是否一致,有何结论:
2. 已有一个已经排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。
i. 按要求编写程序,写出源程序:
2
ii. 运行结果是:
iii. 与人工分析程序所得结果是否一致,有何结论:
3. 使用“冒泡法”给数组(a[9]={10,25,4,21,32,11,18,23,8})以由大到小的顺序排序。
i. 按要求编写程序,写出源程序:
ii. 运行结果是:
iii. 与人工分析程序所得结果是否一致,有何结论:
4. 输出以下杨辉三角形的前10行(该题为选做)。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
.
.
.
3 i. 按要求编写程序,写出源程序:
ii. 运行结果是:
iii. 与人工分析程序所得结果是否一致,有何结论:
5. 有一篇文章,共3行文字,每行10个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。
i. 按要求编写程序,写出源程序:
4
ii. 运行结果是:
iii. 与人工分析程序所得结果是否一致,有何结论:
七、 本次上机实验的心得。
八、 理论支撑:《C语言程序设计》第六章
c语言结构体和结构体指针
结构体是C语言中一种自定义数据类型,可以将多个不同类型的数据组合成一个整体,方便进行处理和关联操作。结构体可以包含各种基本数据类型,例如int、float、char等,同时还可以嵌套其他结构体。
结构体的定义格式为:struct结构体名称{结构体成员1;结构体成员2;…}。其中,结构体成员可以是各种基本数据类型,也可以是其他自定义数据类型。
例如,定义一个学生信息的结构体,可以这样写:
structStudent{
intid;//学号
charname[20];//姓名
intage;//年龄
floatscore;//成绩
};
定义好结构体后,可以创建结构体变量,并对其进行初始化和访问:
structStudentstu1={101,"张三",18,89.5};//创建并初始化结构体变量printf("学号:%d,姓名:%s,年龄:%d,成绩:%.1f",stu1.id,,stu1.age,stu1.score);//访问结构体成员
除了使用结构体变量来访问结构体成员外,还可以使用结构体指针来访问。结构体指针是指向结构体的指针变量,可以通过指针来操作结构体中的数据。
针对上面的学生信息结构体,可以定义一个指向该结构体的指针类型:
structStudent*pStu;
然后可以使用指针来访问结构体成员:
pStu=&stu1;//将指针指向结构体变量
printf("学号:%d,姓名:%s,年龄:%d,成绩:%.1f",pStu->id,pStu->name,pStu->age,pStu->score);//使用指针访问结构体成员
当然,也可以通过指针来修改结构体中的数据:
pStu->score=92.0;//修改分数为92.0
printf("学号:%d,姓名:%s,年龄:%d,成绩:%.1f",stu1.id,,stu1.age,stu1.score);//打印出修改后的分数