参考答案和解析
正确答案:B
更多“类型操作符PTR用于()。”相关问题
  • 第1题:

    要获得一数据或数据类型所占空间的字节数,应使用的操作符是【 】。


    正确答案:sizeof ()
    sizeof () 解析:要获得字节数,必须用sizeof ()操作符。

  • 第2题:

    阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。

    【说明】

    函数sort (NODE *head)的功能是;用冒泡排序法对单链表中的元素进行非递减排序。对于两个相邻结点中的元素,若较小的元素在前面,则交换这两个结点中的元素值。其中,head指向链表的头结点。排序时,为了避免每趟都扫描到链表的尾结点,设置一个指针endptr,使其指向下趟扫描需要到达的最后一个结点。例如,对于图4-1(a)的链表进行一趟冒泡排序后,得到图4-1(b)所示的链表。

    链表的结点类型定义如下:

    typedef struct Node {

    int data;

    struct Node *next;

    } NODE;

    【C语言函数】

    void sort (NODE *head)

    { NODE *ptr,*preptr, *endptr;

    int tempdata;

    ptr = head -> next;

    while ((1)) /*查找表尾结点*/

    ptr = ptr -> next;

    endptr = ptr; /*令endptr指向表尾结点*/

    ptr =(2);

    while(ptr != endptr) {

    while((3)) {

    if (ptr->data > ptr->next->data){

    tempdata = ptr->data; /*交换相邻结点的数据*/

    ptr->data = ptr->next->data;

    ptr->next->data = tempdata;

    }

    preptr =(4); ptr = ptr -> next;

    }

    endptr =(5); ptr = head->next;

    }

    }


    正确答案:(1)ptr -> next (2)head->next (3)ptr !=endptr或其等价形式 (4)ptr (5)preptr
    (1)ptr -> next (2)head->next (3)ptr !=endptr,或其等价形式 (4)ptr (5)preptr 解析:本题考查链表运算能力。
    从题目中的以下代码可知,ptr最后应指向表尾结点。
    ptr = head -> next;
    while((1))/*查找表尾结点*/
    ptr = ptr -> next;
    endptr = ptr; /*令endptr指向表尾结点*/
    显然,空(1)处应填入“ptr->next”,这样循环结束时,ptr指向表尾结点。若填入“ptr”,则循环结束时,ptr为空指针。
    进行冒泡排序时,从头至尾依次比较逻辑上相邻的两个结点的数据,如果小元素在前大元素在后,则交换。这样,经过一趟扫描,就将最大元素交换到了表的最后。下一趟可将次大元素交换到最大元素之前。显然,空(2)处应填入“head->next”。
    由于程序设置的endptr用于指示出每趟扫描需到达的最后一个结点,ptr用于依次扫描链表中的结点,因此空(3)处的循环条件为“ptr != endptr”。
    显然,指针preptr起的作用是指向ptr的前驱结点,因此,ptr每向后修改一次,相应地preptr就要修改一次,空(4)处应填入“ptr”。本趟循环结束后,下一趟扫描也就确定了,因此在空(5)处填入“preptr”。

  • 第3题:

    下列有关指针的用法中错误的是( )。

    A.int i;int *ptr=&i;

    B.inti;int *ptr;i=*ptr;

    C.int *ptr;ptr=0;

    D.int i=5;int *ptr;*ptr&i;


    正确答案:B

  • 第4题:

    设int arr[]={6,7,8,9,10};

    int *ptr=arr;

    (ptr++)+=123;

    printf("%d,%d",*ptr,*(++ptr));

    ( )


    正确答案:
     

  • 第5题:

    在整型指针变量ptr1、ptr12的定义中,错误的是 ______。

    A.int x, *ptr1, ptr2;

    B.int*ptrl, x, *ptr2;

    C.int x,*ptrl=&x,*ptr2;

    D.int*ptr1, x,*ptr2=&x;


    正确答案:B

  • 第6题:

    What will the following C code do?

    int *ptr;

    ptr =(int *)Ox67a9;

    *ptr = Oxaa55;


    正确答案:
     

  • 第7题:

    下列说法不正确的足( )。

    A.int*ptr;//指针指向整形数据

    B.char*ptr;//指针的类型是字符型指针

    C.int**ptr;//指针的类型是双重指针

    D.int(*ptr)[3];//是一一个指针数组,数组共有三个元素,而三个元素是int型指针


    正确答案:D
    解析:int(*ptr)[3]是一个数组指针,指针指向一个有3个int型变量的数组。

  • 第8题:

    PTR记录被用于电子邮件发送过程中的反向地址解析。


    正确答案:正确

  • 第9题:

    对于双目操作符,其重载函数带有()个参数,其中至少有一个为()的类型。


    正确答案:2;用户自定义

  • 第10题:

    逻辑操作符AND,OR,XOR和NOT,只能用于数字表达式。


    正确答案:错误

  • 第11题:

    已有定义intk=2,*ptr1,*ptr2;且ptrl和Ptr2均已指向变量k,下面能正确执行的赋值语句是()

    • A、k=*ptrl+*ptr2;
    • B、ptr2=k
    • C、*ptrl=ptr2;
    • D、ptrl=*ptr2;

    正确答案:A

  • 第12题:

    单选题
    有如下程序: #include  main() {  int a=0,*ptr;   ptr=&a;  *ptr=3;  a=(*ptr)++;  printf(%d,%d,a,*ptr);  } 程序运行后的输出结果是(  )。
    A

    4,4

    B

    0,1

    C

    1,4

    D

    0,4


    正确答案: D
    解析:
    程序执行过程为:定义整型变量a=0与指针ptr,使指针指向变量a。对指针指向的变量进行赋值a=3,将指针所指向变量加1,并赋值给a=4,此时指针依然指向变量a,输出a与指针指向的变量值:4,4,答案选择A选项。

  • 第13题:

    以下哪些为DNS的记录类型()

    A.A记录

    B.PTR记录

    C.Netbios记录

    D.SOA记录


    参考答案:A, B, D

  • 第14题:

    已有定义“int k=2;int*ptr1, *ptr2;”,且ptr1和ptr2均已指向变量k,下面不能正确执行的语句是______。

    A.k=*ptr1+*ptr2;

    B.ptr2=k;

    C.ptr1=ptr2;

    D.K=*ptr1*(*ptr2);


    正确答案:B

  • 第15题:

    下面函数的功能是______。 exchange(int*ptr1,*ptr2) { int*ptr; ptr=-ptr1; ptr1=ptr2; ptr2=ptr; }

    A.交换*ptr1和*ptr2的值

    B.无法改变*ptr1和*ptr2的值

    C.可能造成系统故障,因为使用了空指针

    D.交换*ptr1和*pb2的地址


    正确答案:B
    解析:函数中将指针变量ptr1和ptr2中的值交换,而不是交换指针ptr1和ptr2所指变量中的值。

  • 第16题:

    以下程序段的输出为( ) static char a[]="language",b[]="progratne"; char *ptr1,*ptr2; int k; ptr1=a;ptr2=b; for(k=0;k<7;k++) if(*(ptr1+k)==*(ptr2+k)) printf("%c",*(ptr1+k));

    A.gae

    B.ga

    C.language

    D.有语法错误


    正确答案:B

  • 第17题:

    ______操作符动态地为对象按照其指定的类型分配内存,并返回该类的一个引用。


    正确答案:new
    new

  • 第18题:

    printf("%d,%d",*ptr,*(++ptr));


    正确答案:

     

     

  • 第19题:

    下列有关指针的用法中错误的是( )。

    A.int i;int*ptr=&i;

    B.int i;int*ptr;i=*ptr;

    C.int*ptr;ptr=0;

    D.int i=5;int*ptr;*ptr&i;


    正确答案:B

  • 第20题:

    以下哪些为DNS的记录类型()

    • A、A记录
    • B、PTR记录
    • C、Netbios记录
    • D、SOA记录

    正确答案:A,B,D

  • 第21题:

    通常在什么情况下需要使用PTR类型操作符?举例说明。


    正确答案:如在指令“MOV EAX,DWORD PTR ARRAY”,EAX是双字,变量ARRAY被定义为字量,两者类型不同,MOV指令不允许不同类型的数据传送,利用PTR改变ARRAY的类型,将其传送给EAX。

  • 第22题:

    已有定义int k=2;int*ptr1,*ptr2;且ptr1、ptr2均已指向变量k,下面不能正确执行的赋值语句是()

    • A、k=*ptr1+*ptr2
    • B、prt2=k;
    • C、ptr1=ptr2
    • D、k=*ptr1*(*ptr2)

    正确答案:B

  • 第23题:

    单选题
    已有定义int k=2; int *ptrl, *ptr2,且ptr1和ptr2 均已指向变量k,下面不能正确执行的赋值语句是()
    A

    k =*ptr1+*ptr2;

    B

    ptr2 = k;

    C

    ptr1=ptr2;

    D

    k = *ptr1*(*ptr2);


    正确答案: C
    解析: 暂无解析