篇一 :C语言指针实验报告

C语言程序设计实验报告

1实验目的

(1)掌握指针的概念,会定义和使用指针变量;

(2)能正确使用变量的指针和指向变量的指针变量;

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

(4)能正确使用字符串的指针和指向字符串的指针变量;

2实验内容

将一个任意整数插入到已排序的整形数组中,插入后,数组中的数仍然保持有序;

要求:

(1)整形数组直接由赋值的方式初始化,要插入的整数有scanf()函数数入;

(2)算法实现过程采用指针进行处理;

(3)输入原始数据以及插入整数后的数据,并加以说明;

3算法描述流程图

C语言指针实验报告

4源程序

#include<stdio.h>

main()

{

int a[100],m,i,*p,n,w;

printf("请输入要输入的数组的元素个数:\n");

scanf("%d",&n);

printf("请输入已排好序的数组:\n");

for(i=0;i<n;i++)

{

scanf("%d",&a[i]);

}

printf("请输入要插入的数:\n");

scanf("%d",&m);

p=a;

while(*p<m)

p++;

w=*p;

for(i=n-1;a[i]>=w;i--)

{

a[i+1]=a[i];

}

a[i+1]=m;

for(i=0;i<=n;i++)

{

printf("%-4d",a[i]);

}

printf("\n");

}

5测试数据

“1,3,5,7,9,11,13,15,17,19······10”

…… …… 余下全文

篇二 :c语言指针实验报告

C语言实习报告

题目:指针及其应用

系别:

专业:

姓名:

学号:

日期:

一 实验名称:指针及其应用

实验目的:

(1)       掌握变量的指针及其基本用法。

(2)       掌握一维数组的指针及其基本用法。

(3)       掌握指针变量作为函数的参数时,参数的传递过程及其用法。 

实验内容

(1)         运行以下程序,并从中了解变量的指针和指针变量的概念。

(2)         运行以下程序,观察&a[0]、&a[i]和p的变化,然后回答以下问题:

1.        程序的功能是什么?

2.        在开始进入循环体之前,p指向谁?

3.        循环每增加一次,p的值(地址)增加多少?它指向谁?

4.        退出循环后,p指向谁?

5.        你是否初步掌握了通过指针变量引用数组元素的方法?

(3)         先分析以下程序的运行结果,然后上机验证,并通过此例掌握通过指针变量引用数组元素的各种方法。

…… …… 余下全文

篇三 :C语言实验六实验报告——指针

一、 实验项目名称

指针

二、 实验目的

1.掌握指针的基本概念和基本用法。包括:变量的地址和变量的值,指针变量的说明、指针变量的初始化、指针的内容与定义格式、指针的基本运算等;

2.掌握数组与指针的关系并能够利用指针解决数组的相关问题;

3.掌握字符串与指针的关系并能够利用指针处理字符串的问题;

4.掌握指针与函数的关系并能够利用指针处理函数问题;

5.了解指向指针的指针的概念及其使用方法;

6.能够使用指针进行程序设计。

三、 实验内容

有关指针的程序设计

1.编程实现:任意输入的10个数,求其平均值。

要求:

(1)10个数采用scanf语句读入。

(2)利用指针实现对这10个数的访问。

(3)要求平均值的精度为小数后面2位。

2.编程实现:将一个任意整数插入到一个已排序的整数数组中,插入后数组中的数仍然保持有序。

要求:

(1)整数数组由初始化方式输入。任意整数由scanf函数输入;

(2)实现过程采用指针处理;

(3)输出原始数组数据以及插入数据后的数组数据并加以相应说明。

3.编写函数newcopy(char *new,char *old),它的功能是删除old所指向的字符串中的小写字母,并将所得到的新串存入new中。

要求:

(1)在主函数中以初始化方式输入一个字符串;

(2)调用newcopy()函数;

(3)在主函数中输出处理后的结果。

4.编程实现:输入三个整数,按由大到小的顺序输出。

要求:

(1)通过scanf函数输入三个数据并存入三个变量中;

(2)利用指针实现从大到小输出;

(3)修改程序,将三个整型数据改为字符型数据,输入三个字符,按从大到小数顺序输出;

(4)修改程序,将三个字符型数据改为字符串数据,输入三个字符串,按从小到大顺序输出;

(5)体会指针对不同数据处理的特点。

四、 实验步骤及结果

…… …… 余下全文

篇四 :C语言实验报告指针

《高级语言程序设计》实验报告

实验序号:7                             实验项目名称:指针

附源程序清单:

二.#include<stdio.h>

main()

{

 char a[80],b[80],*p;

 int i;

 gets(a);

 gets(b);

 for(i=0;i<10;i++)

  {

   if(i%2==0) p=a;

   else p=b;

   puts(p);

  }

}

三.4. #include<stdio.h>

void change(int *m,int *n)

{

 int temp,i;

 for(i=0;i<5;i++)

 {

  temp=*(m+i);

  *(m+i)=*(n+i);

  *(n+i)=temp; }

}

int main()

{

 int a[5]={1,2,3,4,5},b[5]={6,7,8,9,0},i;

 change(a,b);

 for(i=0;i<5;i++)

  printf("%d",a[i]);

  printf("\n");

 for(i=0;i<5;i++)

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

…… …… 余下全文

篇五 :C语言与软件技术基础指针实验报告

C语言与软件技术基础

实 验 报 告

课程名称

指导老师

班 级 实验名称 实验时间 姓 名 实验地点 提交时间 座 号

一、实验目的和要求

1、掌握指针和间接访问的概念,会定义和使用指针变量。

2、能正确使用数组的指针和指向数组的指针变量。

3、能正确使用字符串的执针和指向字符串的指针变量。

二、实验环境和方法

实验方法:

(一)综合运用课本所学的知识,用不同的算法实现在不同的程序功能。

(二)结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。

(三)根据实验内容,编译程序。

实验环境:Windows xp Visual C++6.0

三、实验内容及过程描述

实验内容:编译以下题目的程序并调试运行。

1、输入3个整数,按由大到小的顺序输出,然后将程序改为:输入3个字符串,按由小到大顺序输出。

①先编写一个程序,以处理输入3个整数,按由小到大顺序输出。运行程序,分析结果。 ②把程序改为能处理输入3个字符串,按由小到大的顺序输出。运行此程序,分析结果。 ③比较以上两个程序,分析处理整数与处理字符串有什么不同?例如:

(a)怎样得到指向整数(或字符串)的指针。

(b)怎样比较两个整数(或字符串)的指针。

(c)怎样交换两个整数(或字符串)。

2、将一个3×3的整数型二维数组转置,用一个函数实现之。

在主函数中用scanf函数输入以下数组元素:

1 3 5

7 9 11

13 15 19

将数组0行0列元素的地址作为函数实参,在执行函数的过程中实现行列互换,函数调用结束后在主函数中输出已转置的二维数组。

请思考:

① 二维数组的指针,某一行的指针、某一元素的指针个代表什么含义?应该怎么表示? ② 怎样表示i行j列元素及其地址。 3、将n个数按输入时顺序的逆序排列,用函数实现。 ①在调用函数时用数组名作函数实参。 ②函数实参改为用指向数组首元素的指针,形参不变。 ③分析以上二者的不同。 4、写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。 分别在程序中按以下两种情况处理: ①函数形参用指针变量。 ②函数形参用数组名。 实验步骤: ① 进入Visual C++ 6.0集成环境。 ② 输入自己编好的程序。 ③ 检查一遍已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有错,及时改正。 ④ 进行编译和连接。如果在编译和连接过程中发现错误,频幕上会出现“报错信息”,根据提示找到出错位置和原因,加以改正。再进行编译,如此反复直到不出错为止。 ⑤ 运行程序并分析运行结果是否合理。在运行是要注意当输入不同的数据时所得结果是否正确,应运行多次,分别检查在不同情况下结果是否正确。 以下是各题源代码: 1、 输入3个整数,按由大到小的顺序输出,然后将程序改为:输入3个字符串,按由小到大顺序输出。 程序① #include<stdio.h> int main() { void swap(int *p1,int *p2); int n1,n2,n3; int *p1,*p2,*p3; printf("请输入3个数n1,n2,n3:"); scanf("%d,%d,%d",&n1,&n2,&n3); p1=&n1; p2=&n2; p3=&n3; if(n1>n2) swap(p1,p2); if(n1>n3) swap(p1,p3); if(n2>n3) swap(p2,p3); printf("排序结果为:%d,%d,%d\n",n1,n2,n3); return 0; } void swap(int *p1,int *p2) {int p; p=*p1;*p1=*p2;*p2=p; } 程序② #include<stdio.h> #include<string.h> int main() { void swap(char *,char *); char str1[20],str2[31],str3[20];

…… …… 余下全文

篇六 :C语言程序设计实验报告 实验7 指针.doc

实验目的:

(1)掌握指针的定义和指针的运算

(2)掌握用指针处理变量和数组

二【实验内容】

【实验7-1】编写函数用指针实现两个数的交换。在主函数中实现调用

(1)程序代码

#include<stdio.h>

void e(int*m,int*n);

void main()

{

    int m,n;

    printf("please inputm,n\n");

    scanf("%d,%d",&m,&n);

    e(&m,&n);

    printf("%d,%d",m,n);

}

void e(int*a,int*b)

{

    int p;

    p=*a;

    *a=*b;

    *b=p;

}

(2)运行结果

【实验7-2】用指针以及函数实现字符串的倒序输出。

(1)程序代码

#include<stdio.h>

#include<string.h>

void main()

{

 char ch[100];

 char *p;

 int x;

 gets(ch);

 x=strlen(ch);

 p=&ch[x-1];

 while(p>=ch)

 {

    printf("%c",*p);

…… …… 余下全文

篇七 :C语言实验6 实验报告(指针)

C语言程序设计实验报告

实验六 使用指针的程序设计(1)

 

班级  2012153    学号  201215317      姓名  杜顺永      

 

一、实验目的

(1)掌握指针的概念,会定义和使用指针变量;

(2)能正确使用数组的指针和指向数组的指针变量;

(3)熟悉指针做函数参数的使用方法;

(4)能正确使用字符串的指针和指向字符串的指针变量。

二、实验内容及步骤

1、按要求完善程序

下列程序的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n给了数组中数据的个数,利用指针odd返回奇数之和,利用指针even返回偶数之和。例如:数组中的值依次为:1,9,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even返回偶数之和8。请在下面空白处将实现这一功能的函数完善,并且调试运行出结果。

程序代码如下所示:

#include <stdio.h>

#define N 20

void fun(int *a,int n,int *odd,int *even)

{

  int i;

  *odd=0;

  *even=0;

  for(i=0;i<n;i++,a++)

  {

      if(*a%2==0)

        *even=*even+*a;

      else

        *odd=*odd+*a;

…… …… 余下全文

篇八 :C语言实验报告范文

计算机科学与技术系C语言实验报告

实验名称:指针及其应用日期: 得分: 指导老师: 专业: 班次: 姓名: 学号:

实验目的

(1) 掌握变量的指针及其基本用法。

(2) 掌握一维数组的指针及其基本用法。

(3) 掌握指针变量作为函数的参数时,参数的传递过程及其用法。

一. 实验内容

(1) 运行以下程序,并从中了解变量的指针和指针变量的概念。

(2) 运行以下程序,观察&a[0]、&a[i]和p的变化,然后回答以下问题:

1. 程序的功能是什么?

2. 在开始进入循环体之前,p指向谁?

3. 循环每增加一次,p的值(地址)增加多少?它指向谁?

4. 退出循环后,p指向谁?

5. 你是否初步掌握了通过指针变量引用数组元素的方法?

(3) 先分析以下程序的运行结果,然后上机验证,并通过此例掌握通过指针变量引用数组元素的各种方法。

(4) 编写函数,将n个数按原来的顺序的逆序排列(要求用指针实现),然后编写主函数完成:

① 输入10个数;

② 调用此函数进行重排;

③ 输出重排后的结果。

二. 分析与讨论

(1) 指针的定义方法,指针和变量的关系。

定义方法:

数据类型 *指针变量名;

如定义一个指向int型变量的指针——

int *p;

则我们可以继续写如下代码——

int a = 4;

p = &a;

printf("%d", *p);

在这里,我们定义了一个变量a,我们把它理解为内存空间连续的4个字节(int型占用4字节),则这4个字节的空间保存着一个数4。&是取地址符号,即把变量a的地址(即这4个字节的首地址)赋给指针p(记住指针p的类型和变量a的类型要保持一致,否则的话,要进行类型转换)。这样子,指针p就保存着变量a的地址。我们如果把指针p当做内存空间里面另外一个连续的4个字节,那么这4个字节保存的数就是变量a的地址。printf("%d",*p)和

…… …… 余下全文