zoukankan      html  css  js  c++  java
  • 2020.3.8第二次作业

    一、学习笔记(观看内容:MOOC——C程序设计——1.1.4  指针与数组;1.2.1  指针运算)

    二、相关程序

     

    三、存在问题

    1.判断:语句int *pprintf("%d",*p);中的*p含义相同。(F)

    解析:前者表示指针变量,后者表示取指针指向变量的值。

    2.若有说明:int n=2,p=&n,q=p;则以下非法的赋值为( D)。

    B.p=q;    C.n=*q;    

    问题:选项A,B中p与p的区别是什么?

    努力:通过百度搜原题,只查到类似问题:

          若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是( )。
           A.p=q;
           B.*p=*q;
           C.n=*q;
           D.p=n:

    3.判断题:若有定义int a[]={2,4,6,8,10},*p=a;a的值是数组首地址,则**(p+1)的值是4。( F ) 

    [Error] invalid type argument of unary '*' (have 'int')

    [错误]无效类型参数的一元'*'(有'int') 

    改正:*(p+1)= 4

    4.本程序在数组中同时查找最大元素和最小元素的下标,分别存放在函数main()的max和min变量中。

    #include <stdio.h>

    void find(int *, int, int *, int *);

    int main(void)

    {

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

      find( a,10,&max,&min );

      printf("%d,%d ", max, min);

      return 0;

    }

    void find(int *a, int n, int *max, int *min)

    {

      int i;

      *max=*min=0;

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

      {

        if (a[i] > a [*max])    *max=a[i]    ;

        if (a[i] < a [*min])    *min=a[i]    ;

      }

    }

    问题:在DEVC++中经过编译,程序正常运行,结果正确,但为什么在PTA上显示部分错误?

    5.若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于____。

     

    1. p++
    2. x++
    3. *(p++)
    4. &x++

     

    解析:*p相当于x,(*p)++相当于x++

  • 相关阅读:
    linux中~和/的区别
    Linux centos 7安装
    xshell远程连接虚拟机
    虚拟机Linux不能上网简单有效的解决办法
    visudo
    users
    TreeSizeFree(硬盘文件整理)
    dos2unix
    iconv
    PS1系统变量
  • 原文地址:https://www.cnblogs.com/qipaopao001120/p/12445392.html
Copyright © 2011-2022 走看看