C语言开放实验(指针).doc
文本预览下载声明
C语言开放实验
指针
实验一 指向变量的指针变量编程
一.实验目的与要求
1. 理解指针的概念。
2. 掌握指针变量的定义与使用。
3. 掌握指针变量作为函数参数的使用方法。
二.实验题目
1. 阅读以下程序,设输入是1 3 5↙,写出程序的运行结果,再上机验证。
#include stdio.h
int fun(int *p)
{
int s=10;
s=s+*p;
return(s);
}
int main( )
{
int i, a, b, *p;
for(i=0; i3; i++)
{
p=a;
scanf(%d, p);
b=fun(p);
printf(b=%d\n, b);
}
return 0;
}
2. 用指针变量编程,求数组中的最大元素和最小元素。
3. 编写函数实现两个数的交换(用指针变量作函数参数),利用该函数交换数组a和b中对应元素的值。(注意:调用函数时实参应为什么值)
例如:已知数组a[5]={1, 2, 3, 4, 5}; b[5]={6, 7, 8, 9, 10};
a和b中对应元素交换后:a[5]={6, 7, 8, 9, 10}; b[5]={1, 2, 3, 4, 5};
实验二 字符指针编程
一.实验目的与要求
1. 理解字符指针的概念。
2. 掌握字符指针的定义与使用。
二.实验题目
1. 阅读以下程序,先写出程序的运行结果,再上机验证。
#include stdio.h
#include string.h
int main( )
{
char *p1, *p2, a[20]=language, b[20]=programme;
int k, len;
p1=a;
p2=b;
len=strlen(b);
for(k=0; klen; k++)
{
if(*p1= =*p2) putchar(*p1);
p1++;
p2++;
}
return 0;
}
2. 请改正程序中的错误,使程序能得出正确的结果。下列给定程序中,函数fun的功能是:分别字符串中大写字母和小写字母的个数。
例如字符串ABcdBC#2cdEFghab”,则应输出:upper=6lower=8
#include stdio.h
void fun (char *s, int a, int b)
{
while(*s)
{
if (*s=A *s=Z) a++;
if (*s=a *s=z) b++;
s++;
}
}
int main( )
{
int upper=0, lower=0;
char s[80];
gets(s);
fun(s, upper, lower);
printf(\n upper=%d, lower=%d\n, upper, lower);
return 0;
}
3. 用字符指针编程求出字符串中指定字符的个数。
例如:假设字符串为:“abcdaghckpamn”,指定字符为‘a’,则结果为3。
实验三 指向一维数组的指针变量编程
一.实验目的与要求
1. 理解指针与数组之间的关系。
2. 掌握用指针变量引用数组元素的方法。
3. 掌握用指向一维数组的指针变量编程。
二.实验题目
1. 阅读以下程序,先写出程序的运行结果,再上机验证。
#includestdio.h
int main( )
{
int a[10]={0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int i, n, temp, *p;
printf(输入n(n10):);
scanf(%d, n);
for(i=1; i=n; i++)
{
temp=*(a+9);
for(p=a+9; pa; p--)
*p=*(p-1);
*a=temp;
}
for(i=0;i10;i++)
printf(%3d, *(a+i));
printf(\n);
return 0;
}
2. 已知一个整型数组,编程将其数组元素的值改为当前元素与相邻的下一个元素的乘积,数组的最后一个元素改为它与第0个元素的乘积,要求用指针变量实现。
例如:已知a[5]={1, 2, 3, 4, 5}; 计算后a[5]={2, 6, 12, 20, 10}。
实验四 指向二维数组的指针
显示全部