• 第二次作业


    一、学习内容总结
    通过指针的部分学习,我知道了指针的作用是用来存放地址的。指针无论定义的是哪种数据类型占用的内存空间都是8字节,和数组对比我觉得,数组字符串里的字符是可以修改的,而指针定义字符串里的内容不能修改。知道 * 和 & 是互逆的两个运算符;swap的作用是交换两个变量的值,在指针中定义一个数组,代表的是数组的第一个元素地址,数组名代表数组的首地址。在指针加减中,当指针变量指向数组中的某一个地址时,指针变量加1后指向数组的下一个元素,指针变量减1时指向数组的前一个元素。
    二、在课堂或课后编程学习遇到的问题及解决过程

    ·问题一
      在课下练习中,没有特别注意,例如:chars1[10]="1234567"; char*p; strcpy(p,s1); printf("%s",p); 在编译时没有错误,但是在运行时不对。因为使用了指针 p,但是在之前却没有对p赋值,所以不能将 s1 内容复制到 *p 中。
    解决方案:因为使用了指针 p,但是在之前却没有对 p 赋值,所以不能将s1内容复制到 *p 中。
    ·问题二
      指针中*和&符号意义还没有完全记清楚。
    解决方案:例如:在int * p=&a中*为了说明p是一个指向整形数据的变量,而在 *p=5 中 * 表示取p所指向内存的数据,所以 *p=a。
    ·问题三
      在交换函数时定义时出现错误。
    解决方案:在编程中int * temp表示声明了一个指针变量,*a表示取 a 所指单元的数据,是一个int型变量,所以两者的数据类型不匹配导致出错。
    

    三、作业
    1.

    #include<stdio.h>
    #include<string.h>
    void main()
    {
      char c,s[80];
      int i,k=0;
      gets(s);
      c=getchar();
      for(i=0;s[i]!='';i++)
      {
        if(s[i]==c)
        k++;
      }
      printf("%d",k);
    }
    

    输出截图:
    2.

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    int main()
    {
        int n=5,i,j;
        char **str;
        char s[100];
        str=(char**)malloc(sizeof(char*)*n);
        for(i=0;i<n;i++)
        {
            str[i]=(char*)malloc(sizeof(char)*100);
            printf("请输入第%d个字符串
    ",i+1);
            gets(str[i]);
        }
        puts("排序后的字符串为:");
        for(i=0;i<n;i++)
        {
            for(j=i;j<n-1;j++)
            {
                if(strcmp(str[j+1],str[j])<0)
                {
                    strcpy(s,str[j+1]);
                    strcpy(str[j+1],str[j]);
                    strcpy(str[j],s);
                }
            }
        }
        for(i=0;i<n;i++)
        {
            puts(str[i]);
        }
        for(i=0;i<n;i++)
        {
            free(str[i]);
            str[i]=NULL;
        }
        free(str);
        str=NULL;
        return 0;
    }
    

    输出截图:

    四、附加内容

  • 相关阅读:
    Randomization Tests
    关于Spring中的<context:annotationconfig/>配置
    PUT method support
    在对话框picture control中利用opengl进行绘图
    【学习笔记】《卓有成效的管理者》 第三章 我能贡献什么
    程序员的黄金时代
    nginx webdav配置
    iphone4s 如何强制关机
    并查集
    实战虚拟化存储设计之三MultiPathing
  • 原文地址:https://www.cnblogs.com/mayuxin/p/8734519.html
Copyright © 2020-2023  润新知