C语言实验-第七章-第九章2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验七:指针的应用

【实验目的】

1.掌握指针和指针变量,内存单元和地址、变量与地址、数组与地址的关系;2.掌握指针变量的定义和初始化,指针变量的引用方式;

3.能正确使用数组的指针和指向数组的指针变量;

【实验内容】

1.填空题

输入一个字符串,将其中的大写字母转换成小写字母,然后输出

本程序主要是比较scanf()输入和gets()输入的区别

#include

void main()

{ char s[20];

char *p=s;

scanf(“%s”,p); /*注意用scanf()输入和gets()输入的区别*/

while( 1 )

{

if( 2 ) *p=*p+ (‘a’-‘A’);

p++ ;

}

puts ( 3 );

}

答案:

1、*p!=’\0’

2、(*p>='A')&&(*p<='Z')

3、s

运行结果:

输入:Program

输出:program

输入:This is Program

输出:this

提示:

scanf ()输入时遇到空格认为字符串结束,用gets()输入时只有遇到回车才认为字符串结束。如键入any boy并回车,则

2。补充程序题

输入15个整数存入一维数组,再按逆序重新调整该数组中元素的顺序然后再输出。下面给出部分程序的内容,请将程序补充完整,然后上机调试。

部分程序清单如下:

#include

void main()

{ int a[15],*p1,*p2,x;

for(p1=a;p1

scanf("%d",p1);

for(p1=a,p2=a+14;p1

{ x=*p1;

*p1=*p2;

*p2=x;

}

……

}

答案:

for(p1=a;p1!=a+15;p1++)

printf("%d ",*p1); // %d后面有一个空格

运行结果:

输入:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

输出:15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

提示:

(1)在整型数组中,没有结束标志,必须依靠数组中数据元素的个数控制循环次数。

(2)在for(p1=a;p1

(3)数组是顺序存储,因此可以用p1++后的值与a+15的比较来控制循环次数,需要注意的是,p1++不意味着p1的值加1。

3.改错题:

下面程序是用指针法将一个字符串a复制到字符串b中,

void main()

{

char a[]="I am a boy.",b[20], *p1,*p2;

int i;

p1=a;p2=b;

for( ; *p1!=’\0’;p1++,p2++)

*p2=*p1;

p2=’\0’;

printf("string a is:%s\n",a);

printf("string b is:");

for(i=0;b[i]!=’\0’;i++)

printf("%c",b[i]);

}

答案:

1.将第一个for循环改为while循环;

2.将第二个for循环改用一条语句完成;

第八章结构体与共同体的应用

【实验目的】

1.掌握结构体类型变量的定义、初始化和使用;

2.掌握结构体类型数组的概念和使用;

3.了解共用体的概念与使用。

【实验内容】

1.填空题

(1)结构体变量案例。

编程输出两个小孩的记录信息。1 个男孩和1 个女孩,其姓名首字母分别为“R”和“H”;男孩15岁,女孩比男孩小1岁子;男孩的成绩为75,女孩的成绩为82。

该案例涉及结构体变量的定义和结构体变量成员的引用。

# include

void main()

{

struct childrec /*定义结构体类型*/

{

char initial; /*姓名首字母*/

int age; /*年龄*/

int grade; /*成绩*/

}boy,girl;

boy.initial=’R’;

girl. initial=’H’;

1

2

girl.age=boy.age-1;

girl.grade=82;

printf(“boy:%c is %d years old and got a grade of %d\n”, 3 );

printf(“girl:%c is %d years old and got a grade of%d\n”, 4 );

}

答案:

1、boy.age=15;

2、boy.grade=75;

3、boy.initial,boy.age,boy.grade

4、girl.initial,girl.age,girl.grade

运行结果:

boy:R is 15 years old and got a grade of 75

girl:H is 14 years old and got a grade of 82

提示:

(1)结构体变量的定义:

struct 结构体名

{

成员变量定义

}结构体变量列表;

即在定义结构体的同时定义结构体变量。

(2)结构体成员变量的引用:

结构体变量名.成员变量名

(2)结构体数组案例。

设有三个候选人,Zhang,Wang和Li,设有10个人参加投票,每次输入一个得票的候选人的名字,要求最后输出各候选人的得票结果,请设计程序对候选人的得票数进行统计。

该案例涉及结构体变量的定义、初始化和结构体变量成员的引用。

# include

# include

struct person /*候选人信息结构体,这是一个全局的结构体数组*/

{

相关文档
最新文档