4.
七、实验结果:
1. 运行结果(或截图):
2. 运行结果(或截图):
3. 运行结果(或截图):
4. 运行结果(或截图):
成绩
指导教师签名 - 30 -
实验十
实验项目名称:指针
所使用的工具软件及环境:Visual C++ 6.0 一、实验目的:
1.通过实验进一步掌握指针的概念,会定义和使用指针变量。 2.能正确使用数组的指针和指向数组的指针变量。 3.能正确使用字符串的指针和指向字符串的指针变量。 4.了解指向函数的指针变量。 二、预习内容:
教材《C语言程序设计教程》第7章。
三、实验内容:
1.输入2个整数,交换顺序后输出,程序要求使用指针处理。 程序提示:
自定义交换函数:
void swap(int *p1,int *p2) //实现*p1与*p2交换 { }
//main函数结构如下:
int n1,n2; int *q1,*q2;
//输入2个数,q1,q2分别指向这n1,n2这2个数 swap(q1,q2); //调用函数swap
printf(“]]”,n1,n2); //输出交换后的值
2. 将一个数组的10个元素反序,用一函数实现。
程序提示:在主函数中用for循环通过scanf函数输入数组元素值,调用函数,用for循环输出结果。
void inverse(int *p) { 循环for(i=0;i<10/2;i++)
*(p+i)与*(p+9-i)交换,就能实现反序
}
- 31 -
3.下面程序是用指针法将一个字符串a复制到字符串b中,修改程序实现问题(1)(2)。 main() {
char a[]=\int i; p1=a;p2=b;
for( ; *p1!=’\\0’;p1++,p2++)
*p2=*p1; *p2=’\\0’;
printf(\printf(\for(i=0;b[i]!=’\\0’;i++) printf(\
}
(1)将第一个for循环改为while循环;
(2)分别用指针变量p1和p2输出字符串a 和b。
4. 用一个函数实现两个字符串的比较,自定义compare函数已给出,编写main函数:
设p1指向字符串s1,p2指向字符串s2。要求当两个字符相同时返回0,若两个字符串不相等,则返回返回它们二者第一个不同字符的ASCII码的差值。两个字符串s1,s2由主函数输入,compare函数的返回值也由主函数输出。
程序提示:使用以下函数进行比较: int compare(char *p1,char *p2) { int i; for(i=0;*(p1+i)!=’\\0’;i++) if(*(p1+i) != *(p2+i))
break; //不相等,循环结束
return *(p1+i)-*(p2+i); }
main() { }
5.下面的程序的功能是将字符数组ch中第2维下标是偶数的元素取出后,构成一个十进制整数。
#include
char ch[2][5]={\int i,j,s=0; for(i=0;i<2;i++) p[i]= ; for(i=0;i<2;i++)
for(j=0;p[i][j]>'\\0'&& p[i][j]<='9';j+=2) s= ; printf(\
四.重要变量用途说明:
- 32 -
1. 2. 3. 4. 5.
五、源程序补充后完整清单: 1. 2. 3. 4. 5.
六、实验结果(写出典型测试数据输入和输出)
- 33 -
1. 运行结果:
2. 运行结果:
3. 运行结果:
4. 运行结果:
5. 运行结果:
成绩
指导教师签名 - 34 -