f(st,i-1); }
void main()
{ char st[]= “abcd”; f(st,4); }
表9-2 实验结果记录表
人工分析结果 实验运行结果 3.上机实验,写出下列程序的运行结果,并分析此程序的功能。
#include “stdio.h” void main()
{ char *s= “ab5ca2cd34ef”; int i,j,a[]={0,0,0,0}; for(p=s; *p!=?\\0?;p++) { j=*p – ?a?;
if(j>=0 &&j<=3) a[j]++; }
for(i=0;i<4;i++) print(“%d”,a[i]); }
表9-3 实验结果记录表
人工分析结果 实验运行结果 功能 4.本程序完成截取字符串s中从第m个位置开始的n个字符,返回所截字符串的首地址。填写空缺部分。
static char sub[20]; void main() { static char s[]=\ char *cut(),*p; p=cut(s,3,4); printf(\}
char (1) /*定义cut函数*/ char *s; int m,n;
33
{ int i;
for(i=0;i return sub ; } 表9-4 实验结果记录表 填空位置 (1) 填空语句 人工分析结果 实验运行结果 (2) 5. 下面的程序是用来从键盘输入10个整数,然后求出其中最小值。填写空缺部分。 #include “stdio.h” int table[10]; void lookup(int *t,int *a,int m) { int k; *a=t[0]; for(k=1;k if( (1) ) * =t[k]; } Void main { int k,min,*p=&min; for(k=0;k<10;K++) scanf(“%d”,table+k); lookup( (2) , (3) , 10); pintf(“min=%d\\n”,min); } 表9-5 实验结果记录表 填空位置 (1) (2) (3) 填空语句 输入数据 1 2 3 4 5 6 7 8 9 10 人工分析结果 实验运行结果 6. 下面程序完成从键盘输入两个字符串a和b,再将a和b的对应位置字符中的较大者存放在数组c中。填空完成程序设计。 34 #include \#include \void main() { int k=0; char a[80],b[80],c[80]={'\\0'},*p,*q; p=a; q=b; gets(a); gets(b); while( (1) ) { if( (2) ) c[k]=*p; else c[k]=*q; p++; (3) ; } if(*p!='\\0') strcat(c,p); else strcat(c,q); puts(c); } 表9-6 实验结果记录表 k++; 填空位置 (1) (2) (3) 填空语句 输入数据 人工分析结果 实验运行结果 Hello Student 35 实验10 结构体数据类型与链表 院(系):信息科学与技术学院 班专级 业 学姓课程名称:高级语言程序设计 号 名 教师签名: 实验室 计算机号 实验名称 所用软件 实验成绩 10.1 实验目的 1.理解结构体类型的概念并掌握定义形式。 2.掌握结构体类型变量的定义和变量成员的引用形式。 3.掌握指向结构体的指针变量的定义。 4.加深对结构体数据、结构体指针类型数据的认识。 5.理解链表的概念,熟悉链表的基本操作。 6.理解内存动态分配的含义,熟练运用内存动态分配管理函数。 10.2 实验预习 1.复习结构体数据类型的声明和结构体变量的定义、使用。 2.复习结构体变量成员的引用形式。 3.复习指针与结构体数据类型的关系。 4.复习链表的概念和基本操作(生成、输出)。 5.复习内存动态分配的概念及内存动态分配的管理函数。 10.3 实验任务 【上机题1】输入并运行以下程序。 main() { struct xym{ /*定义结构体类型struct xym*/ char *name; int age; int salary; }; struct xym member; /*结构体变量说明*/ member.name=\ member.age=38; member.salary=2000; /*给结构体变量赋值*/ printf(\ } 说明: ①在结构说明语句中,关键字struct引入结构类型的定义,xym是结构体类型的名字,用{}括起来的部分是结构体成员的说明。 ②修改程序,在程序中将结构类型和结构变量同时进行说明。 ③除了两个同类型的结构体变量能赋值外,其它操作只能针对结构体成员,结构体成员的 36 表示有两种标记形式,分别为运算符“.”和“->”(用于指针变量)。 运行结果:___________________________________ 【上机题2】输入并运行以下程序。 main() { struct bg{ char *name; int age; int salary; }m[3]={{\ int i; for(i=0;i<3;i++) printf(\ } 说明: 结构体数组的操作类似普通的数组,只是数组的每一个元素都是一个结构体类型的变量。 运行结果: 【上机题3】编写程序:从键盘输入n个学生的6门课程考试成绩,计算每个学生的平均成绩,并按平均成绩从高到低输出每个学生的信息(包括学号、姓名和6门成绩)。 37