全站搜索未启用
跳到主要内容

上机实验

实验五:上机运行使用指针和动态存储分配的程序
实验目的:
  会利用指针访问和和处理数据,会利用动态存储分配函数分配单个数据空间或数组存储空间;会利用对指针的间接访问方法访问一维和二维数组中的每个元素;会阅读和分析本实验所提供的上机程序并得到正确的输出结果。
实验要求:
  在做前4章的4个实验时,已经在一个逻辑磁盘(如D盘)上建立了一个文件夹,专门用做C语言课程的实验目录,名称定义为“C语言上机练习”;并且在其中建立了4个工作区文件夹。本实验五建立的项目工作区文件夹可命名为“实验五上机练习”。在这个工作区内再按照不同的程序建立相应的项目工程文件夹,如在“实验五上机练习”工作区内建立运行第1个实验程序的控制台项目工程文件夹为“程序1练习”。在项目工程内,再建立和命名程序文件和头文件,通常使程序主文件(即含有main函数的文件)与项目工程具有相同的名称,当然也允许使用不同的名称。
实验内容:

  #include<stdio.h>
  #include<string.h>
  void main()
  {
    char*a[5]={"computer","telephone","fridge",
          "typewriter","television"};
    char *p=a[0];
    int i;
    for(i=1; i<5; i++)
      if(strcmp(a[i],p)==1) {printf("%s ",p); p=a[i];}
    printf("%s\n",p);
  }

请输入运行结果:



  #include<stdio.h>
  #include<stdlib.h>
  const int NN=8;
  void main()
  {
    int i,*p;
    int *x=malloc(sizeof(int));
    int *a=calloc(NN,sizeof(int));
    *x=25;
    for(i=0; i<NN; i++) a[i]=i*i+1;
    p=a+NN-1;
    do {
      if(*p>=*x) printf("%d ",*p--);
      else break;
    } while(1);
    printf("\n");
    free(x);
    free(a);
  }

请输入运行结果:



  #include<stdio.h>
  #include<stdlib.h>
  void main()
  {
    int m,n;
    int i,j,s=0;
    int **b;
    printf("从键盘上输入待处理矩阵数据的行、列数:");
    scanf("%d %d",&m,&n);
    b=calloc(m,sizeof(int*));
    for(i=0; i<m; i++) b[i]=calloc(n,sizeof(int));
    printf("从键盘上输入%d行*%d列整数: \n",m,n);
    for(i=0; i<m; i++) for (j=0; j<n; j++) scanf("%d",&b[i][j]);
    for(i=0; i<m; i++) for (j=0; j<n; j++) s+=b[i][j];
    printf("s=%d\n",s);
    for(i=0; i<m; i++) free(b[i]);
    free(b);
  }

请输入运行结果:



最后修改: 2014年09月24日 Wednesday 20:02