更多“有下列程序段: struct st {int x;int*y;}*pt; int a[]={1,2},b[]={3,4}; stmct st c[2]={10,a,20 ”相关问题
  • 第1题:

    有下列程序段: struct st {int x;int *y;}*pt; int a[]={1,2},b[]={3,4}; struct st c[2]={10,a,20,b}; pt=c; 下列选项中表达式的值为11的是( )。

    A.*pt->y

    B.pt->x

    C.++pt->x

    D.(pt++)->X


    正确答案:C
    解析:由题目的已知条件可知,pt指向结构体数组c[2]的第一元素c[0],所以pt->x=10,执行自加运算后为11。

  • 第2题:

    下列程序段的输出结果是includevoid fun(int*x,int*y){cout<<*x<<*y;*X=3;*y=4;}vo

    下列程序段的输出结果是 #include<iostream.h> void fun(int*x,int*y) {cout<<*x<<*y; *X=3; *y=4; } void main() {int x=1,y=2; fun(&y,&x); cout<<X<<y<<endl; }

    A.2143

    B.1212

    C.1234

    D.2112


    正确答案:A

  • 第3题:

    下列程序段的输出结果是 include void fun(int * X,int * y) {cout < < * X < <

    下列程序段的输出结果是 #include<iostream.h> void fun(int * X,int * y) { cout < < * X < < * y; * X=3; * y=4; } void main( ) { int x=1,y=2; fun(&y,&x); cout < < X < < y < < end1; }

    A.2143

    B.1212

    C.1234

    D.2112


    正确答案:A
    解析:在fun函数中,x接收的是main函数中y的地址,所以*x值为2,同样,*y值为1,所以第1次输出的是21,第2次改变*x的值等同于改变y的值,改变*y的值也即改变x的值,所以第2次输出的是43。注意:C++语言中函数的传参方式中关于指针的应用。

  • 第4题:

    有以下程序段 struct st {int x;int *y;}*pt; int a[]={1,2},b[]={3,4}; struct st c[2]={10,a,20,b}; pt=c; 以下选项中表达式的值为11的是______。

    A.*pt->y

    B.pt->x

    C.++pt->x

    D.(pt++)->x


    正确答案:C
    解析:此题主要考核的是结构体类型的指针。题目中定义了—个st结构体类型,然后定义了st型的结构体指针变量*pt及结构件数组c,并对结构体数组进行了初始化,且将结构体针变量pt指向了数组c,则pt->x的值为10,则++pt->x的值为11(注:“->”运算符的优先级高于“++”),故选项C正确。

  • 第5题:

    有下列程序段: struct St {int x;int *y;)*pt; int a[]={1,2),b[]={3,4); struct st c[2]={10,a,20,b); pt=c; 下列选项中表达式的值为11的是( )。

    A.*pt- >y

    B.pt- >x

    C.+ +pt- >x

    D.(pt+ +)->x


    正确答案:C
    解析:由题目的已知条件可知,pt指向结构体数组c[2]的第一元素c[0],所以pt->x=10,执行自加运算后为11。