第三题:下列4个选项中,哪个结果为6?int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p = a;(A) *p + 6; (B) *(p+6); (C) *p += 5; (D) p+5;

题目

第三题:下列4个选项中,哪个结果为6?

int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p = a;

(A) *p + 6; (B) *(p+6); (C) *p += 5; (D) p+5;


相似考题
参考答案和解析
正确答案:AB
更多“第三题:下列4个选项中,哪个结果为6?int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p = a;(A) *p + 6; (B) *(p+6); (C) *p += 5; (D) p+5;”相关问题
  • 第1题:

    有以下程序includemain(){int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q

    有以下程序 #include<stdio.h> main() { int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q= *(p+5); printf("%d %d\n",*p,*q); } 程序运行后的输出结果是

    A.运行后报错

    B.6 6

    C.6 11

    D.5 10


    正确答案:A
    解析:本题中首先定义了一个一维数组。并初始化,由于定义该数组的时候省略了长度,因此该数组的长度为初始化时候赋初值的个数即为12。数组名a代表数组的首地址,所以*p=a+5语句使得p指向数组的第6个元素,而在程序中定义了一个指针q并让它指向空,实际上程序并没有在内存中为指针q开辟存储空间,这样给q赋值不允许的,故该程序运行后报错。

  • 第2题:

    有以下程序:includemain(){int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;*q

    有以下程序: #include <stdio.h> main() { int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=*(p+5); printf("%d %d \n",*p,*q); } 程序运行后的输出结果是( )。

    A.运行后报错

    B.66

    C.611

    D.510


    正确答案:A
    解析:本题中首先定义了一个一维数组a并初始化,该数组的长度为初值的个数即12。数组名a代表数组的首地址,所以*p=a+5语句使得p指向数组的第6个元素,还一个指针变量q,q为空指针,实际上程序并没有在内存中为指针q开辟存储空间。语句 *q=*(p+5);向q的存储空间赋值是错误的,故该程序运行后报错。

  • 第3题:

    若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则值为6的表达式是_______。

    A.*p+6

    B.*(p+6)

    C.*p+=5

    D.p+5


    正确答案:C
    解析:选项A,*p+6,其值等于1+6=7;选项B,*(p+6),其值等于a[6]=7;选项C,*p+=5,其值等于*p=*p+5=1+5=6;选项D,p+5是个地址值。

  • 第4题:

    以下程序的输出结果是 ______。define NULL 0includevoid main(){ int a[]={1,2,3,

    以下程序的输出结果是 ______。 #define NULL 0 #include<iostream.h> void main(){ int a[]={1,2,3,4,5,6,7,8,9,10}; int *p=a+5,*q=NULL; *q=*(p+5); cout<<*p<<’ ’<*q; }

    A.运行后报错

    B.6 6

    C.6 11

    D.5 5


    正确答案:A

  • 第5题:

    有以下程序main() { int a[]={1,2,3,4,5,6,7,8,9,0},*p; for(p=a;p<a+10;p++) printf("%d,",*p);}程序运行后的输出结果是A.1,2,3,4,5,6,7,8,9,0, B.2,3,4,5,6,7,8,9,10,1, C.0,1,2,3,4,5,6,7,8,9, D.1,1,1,1,1,1,1,1,1,1,


    正确答案:A
    在本题中,程序首先定义了一个一维数组a,并赋了初值,数组a中元素的个数为10个,另外,程序定义了一个同类型的指针变量p。然后用一个for循环用指针变量p对数组进行操作。在循环开始前,将指针变量指向数组的开始位置,即指向数组的第一个元素。
    第一次循环时,指针变量p指向的是数组第一个元素,输出该元素应该为1;然后指针变量自加1,即将指针变量后移一位,使其指向数组的第二个元素,开始第二次循环,此时,指针变量指向数组第二个元素,输出该元素为2,然后指针变量自加1。同样,利用指针变量p可以输出数组中后面的元素,直到输出最后一个元素。因此,最后的输出结果是1,2,3,4,5,6,7,8,9,0,。

  • 第6题:

    有以下程序: main() { int a[]={1,2,3,4,5,6,7,8,9,0},*p; for(p=a;p<a+10,p++)printf("%d,",*p); } 程序运行后的输出结果是 ______。

    A.1,2,3,4,5,6,7,8,9,0,

    B.2,3,4,5,6,7,8,9,10,1,

    C.0,1,2,3,4,5,6,7,8,9,

    D.1,1,1,1,1,1,1,1,1,1,


    正确答案:A
    解析:C语言规定数组变量名代表数组的首地址,即第0号元素的地址。本题将a数组中的值全部输出,即为1,2,3,4,5,6,7,8,9,0,。

  • 第7题:

    有以下程序:include main( ){int a[ ] = { 1,2,3,4,5,6,7,8,9,0} , * p;for(p =a;p

    有以下程序:#include <stdio. h>main( ){ int a[ ] = { 1,2,3,4,5,6,7,8,9,0} , * p; for(p =a;p<a+10;p++) printf("%d," , *p); }程序运行后的输出结果是( )。

    A.1,2,3,4,5,6,7,8,9,0,

    B.2,3,4,5,6,7,8,9,10,1,

    C.0,1,2,3,4,5,6,7,8,9,

    D.1,1,1,1,1,1,1,1,1,1,


    正确答案:A
    解析:C语言规定数组名代表数组的首地址,所以for循环中循环变量p的初值即&a[o),故输出的*p的值为a[0]的值。执行p++后,指针变量P指向a[1],这时输出*P即输出a[1]的值,经过10次循环,将输出a数组的全部数据:1,2,3,4,5,6,7,8,9,0,

  • 第8题:

    以下程序的运行结果是______。 include main() {int a[]:{1,2,3,4,5,6,7,8,9,10,11,12

    以下程序的运行结果是______。 #include <stdio.h> main() {int a[]:{1,2,3,4,5,6,7,8,9,10,11,12): int *p=a+5,*q=NULL: *q=*(p+5): printf("%d %d\n",*p,*q); }

    A.运行后报错

    B.66

    C.612

    D.5 5


    正确答案:A

  • 第9题:

    有以下程序includemain(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=

    有以下程序 # include <stdio.h> main() { int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=*(p+5); printf("%d %d \n",*p,*q); } 程序运行后的输出结果是

    A.运行后报错

    B.6 6

    C.6 11

    D.5 10


    正确答案:A
    解析:本题考核的知识点是通过指针引用数组的元素的方法.本题中首先定义了一个一维数组a并初始化,由于定义该数组的时候省略了长度,因此该数组的长度为初始化时候赋初值的个数即为12。数组名a代表数组的首地址,所以*p=a+5语句使得p指向数组的第6个元素,而在程序中定义了一个指针q并让它指向空,实际上程序并没有在内存中为指针q开辟存储空间,这样给q赋值不允许的,故该程序运行后报错。所以,4个选项中选项A符合题意。

  • 第10题:

    若有以下说明:int [10]={1,2,3.4,5,6,7,8,9,10},*p= a;则数值为6的表达式是()

    • A、p+6
    • B、*(p+6)
    • C、p+=5
    • D、p+5

    正确答案:C

  • 第11题:

    单选题
    有以下程序#include struct S{ int n; int a[20];};void f(struct S *p){ int i,j,t; for(i=0;in-1;i++)  for(j=i+1;jn;j++)   if(p->a[i]>p->a[j])   {    t=p->a[i];    p->a[i]=p->a[j];    p->a[j]=t;   }}main(){ int i; struct S s = {10,{2,3,1,6,8,7,5,4,10,9}}; f(&s); for(i=0;i
    A

    1,2,3,4,5,6,7,8,9,10,

    B

    10,9,8,7,6,5,4,3,2,1,

    C

    2,3,1,6,8,7,5,4,10,9,

    D

    10,9,8,7,6,1,2,3,4,5,


    正确答案: A
    解析:
    将结构体变量的地址作为实参传递,函数调用可以修改实参结构体中成员的值。函数f的作用是,把p指向的struct中的数组a的元素按照从小到大的方式排序。答案选择A选项。

  • 第12题:

    单选题
    若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5 的语句为()。
    A

    printf(%d,*p[5]);

    B

    printf(%d,p[5]);

    C

    printf(%d,*(p+5));

    D

    printf(%d,*(a+5));


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

  • 第13题:

    有以下程序 struct S{ int n;int a[20];}; voidf(struct S*p) { int i,j,t; for(i=0;i<p->n-1;i++) for(j=i+1;j<p->n;j++) if(p->a[i]>p->a[j]){t=p->a[i];p->a[i]=p->a[j];p->a[j]=t;} } main() { int i;struct S s={10,{2,3,l,6,8,7,5,4,10,9}}; f(&s); for(i=0;i<s.n;i++)printf("%d,",s.a[i]); } 程序运行后的输出结果是

    A.1,2,3,4,5,6,7,8,9,10,

    B.10,9,8,7,6,5,4,3,2,1,

    C.2,3,1,6,8,7,5,4,10,9,

    D.10,9,8,7,6,1,2,3,4,5,


    正确答案:A
    解析:本题中,在调用函数f()时,实参是结构体变量s的地址,所以在函数中对形参的改变会影响到实参的数值。函数f()实现的功能是把结构体的成员数组中的值按从小到大顺序进行排列。

  • 第14题:

    下面程序的输出结果是()。includemain(){int a[]={1,2,3,4,5,6,7,8,7,10},*p;p=a;print

    下面程序的输出结果是( )。 #include<stdio.h> main() {int a[]={1,2,3,4,5,6,7,8,7,10},*p; p=a; printf("%d\n",*p+8); }

    A.0

    B.1

    C.10

    D.9


    正确答案:D
    解析:“*”号的优先级比“+”的优先级高,所以先执行“*P”:指针P指向的是数组的首地址,因此*p=1;再加8得9。

  • 第15题:

    以下程序的运行结果是_______。 #include "stdio.h" main() { int a[]={1,2,3,4,5,6,7,8,9,10,11,12}; int *p=a+5,*q=NULL; *q=*(p+5); printf("%d %d\n",*p,*q); }

    A.运行后报错

    B.6 6

    C.6 12

    D.5 5


    正确答案:A
    解析:题目中没有给q分配存储单元,只是简单的给它赋了一个值,所以程序的运行结果是611NULLpointerassignment,也就是运行后报错。

  • 第16题:

    下面程序的输出结果是includemain(){int a[]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf("%

    下面程序的输出结果是 #include<stdio.h> main() { int a[]={1,2,3,4,5,6,7,8,9,0},*p; p=a; printf("%d\n",*p+9);}

    A.0

    B.1

    C.10

    D.9


    正确答案:C
    解析: 此题考查了指针引用一维数组元素的方法。*p+9因为运算符“*”的优先级高于“+”,所以输出结果为p指向的元素1,然后加9,值为10。

  • 第17题:

    以下程序的输出结果是includeint a[3][3]={1,2,3,4,5,6,7,8,9,},*p;main(){p=(int*)ma

    以下程序的输出结果是 #include<stdio.h> int a[3][3]={1,2,3,4,5,6,7,8,9,},*p; main() { p=(int*)malloc(sizeof(int)); f(p,a); printf("%d\n",*p); free(p);} f(int *s, int p[][3]) { *s=p[1][1];}

    A.1

    B.4

    C.7

    D.5


    正确答案:D
    解析:本题考查了二维数组元素引用的方法。题中用动态存储分配函数malloc分配了一个int型数据长度大小的内存,然后指针p指向了这段内存,函数f()中对p所指向的数据进行了赋值,p[1][1]为二维数组第二行第二列的元素,对应于实参a的元素5,所以输出结果为5。

  • 第18题:

    第二题:下列哪个引用是不正确的?

    int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p = a;

    (A) a[p-a]; (B) *(&a); (c) p; (D) *(*(a+i));


    正确答案:D

  • 第19题:

    有以下程序:includeusingnamespacestd;int main (){ int a[]={1,2,3, 4,5, 6, 7,8,9,

    有以下程序: #include<iostream> using namespace std; int main () { int a[]={1,2,3, 4,5, 6, 7,8,9, 10, 11, 12}; int *p=a+5, *q=0; *q=* (p+5); cout<<*p<<" "<<*q<<end1; return 0; }

    A.运行后报错

    B.66

    C.6 12

    D.5 5


    正确答案:A
    解析:本题考核指针的加减运算。程序首先定义并初始化数组a,并让定义指针p指向数组a的第6个元素,即a[5]。程序还初始化指针q为空,即没有指向对象。那么语句“*q=*(p+5);”,就是错误的,因为指针q为空。给指针q正确的赋值语句应为:“q=p+5;”。

  • 第20题:

    以下程序的运行结果是()。includemain(){int a[]={1,2,3,4,5,6,7,8,9,10,11,12}; int *

    以下程序的运行结果是( )。 #include <stdio.h> main() { int a[]={1,2,3,4,5,6,7,8,9,10,11,12}; int *p=a+5,*q=NULL; *q=8(p+5); printf("%d %d\n", *p,*q); }

    A.运行后报错

    B.6 6

    C.6 11

    D.5 5


    正确答案:A
    解析:本题的考查点是通过指针引用数组元素。程序中没有给q分配存储单元,只是给它赋了一个NULL,所以程序的运行结果是:611NULLpointerassignment,也就是运行后报错。

  • 第21题:

    下面程序的输出结果是______。 main() {int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a+4; printf("%d\n",p[3]); }

    A.6

    B.7

    C.3

    D.5


    正确答案:B
    解析:指针变量p指向数组a的第5个元素,p[3]在原指向基础上移3个单位,指针变量p将指向第8个元素(下标为7的元素),值为7。

  • 第22题:

    若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5 的语句为()。

    • A、printf("%d",*p[5]);
    • B、printf("%d",p[5]);
    • C、printf("%d",*(p+5));
    • D、printf("%d",*(a+5));

    正确答案:A

  • 第23题:

    单选题
    若有以下说明:int [10]={1,2,3.4,5,6,7,8,9,10},*p= a;则数值为6的表达式是()
    A

    p+6

    B

    *(p+6)

    C

    p+=5

    D

    p+5


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