工学

单选题对于语句int*px[10],以下说法正确的是()。A px是一个指针,指向一个数组,数组的元素是整数型。B px是一个数组,其数组的每一个元素是指向整数的指针。C A和B均错,但它是C语言的正确语句。D C语言不允许这样的语句

题目
单选题
对于语句int*px[10],以下说法正确的是()。
A

px是一个指针,指向一个数组,数组的元素是整数型。

B

px是一个数组,其数组的每一个元素是指向整数的指针。

C

A和B均错,但它是C语言的正确语句。

D

C语言不允许这样的语句

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设int x:,则经过______ 后,语句*px=0;可将x值置为0。

A.int*px;

B.int const *px=&x;

C.int* const px=&x:

D.const int *px=&x;


正确答案:B
解析:因为*p1=a:所以a必然为指针类型,p2=*b,*b为指针类型,而b必然是指向指针的指针,a和b的类型分别是int*和int**。

第2题:

若有int x=3,*px; float y=3,*py;,则正确的赋值表达式是 ( )。

A、px=&x

B、py=&x

C、px=&y

D、py=&y


参考答案AD

第3题:

若有以下函数首部

int fun(double x[10], int *n)

则下面针对此函数的函数声明语句中正确的是

A)int fun(double x, int *n);

B)int fun(double , int );

C)int fun(double *x, int n);

D)int fun(double *, int *);


正确答案:D
答案 D
解析 : 函数首部 int fun(double x[10],int *n) 表示这个函数的返回值是整型,其第 1 个形式参数是一个双精度的一维数组,第 2 个参数是一个整型指针。在 C 语言中,一维数组的名字表示的是一维数组的地址,所以选项D是正确的。

第4题:

下面是类MyChss的定义,对定义中语句描述正确的是( )。class MyClass{public:void MyClass(int a){X=a;) //①int f(int a, int b) //②{X=a;Y=b;}int f(int a,int b,int c=0) //③{X=a;Y=b;Z=c;stahc void g (){X=10;) //④private:int X,Y,Z;};

A.语句①是类MyClass的构造函数定义

B.语句②和语句③实现类成员函数的重载

C.语句④实现对类成员变量X的更新操作

D.语句①②③和④都不正确


正确答案:D

第5题:

若有定义语句“int x,*p=&x,**ppx=&px;”,则下列表达式中错误的是( )

A.x=*px

B.x=**ppx

C.px=&ppx

D.*ppx=&x


正确答案:C
分析备选答案A:“*px”,就是x,所以该表达式为“x=x”,是正确的,不符合题意分析备选答案B:"**ppx",就是"*(*ppx)=*px=x",所以该表达式为"X=X",是正确的,不符合题意.分析备选答案C:px是一级指针变量,其中只能存放变量或数组元素的地址,不能存放其他一级指针变量或二级指针变量的地址,而"&ppx"是二级指针变量ppx的地址,所以该表达式是错误的,本题答案应选C.至于备选答案D:"*ppx"就是px,将变量x的地址赋予px,当然是正确的。

第6题:

以下对一维数组c进行正确的定义初始化的语句是A.int c[10]=0; B.int c[10]={0}*10; C.int c[1]={0,0,0,0,0,0,0}; D.int c[10]={0};


正确答案:D
本题主要考查数组的定义和初始化。在本题中,考查的是一维数组的定义和初始化操作。一维数组的定义格式为:
     数据类型说明 数组名[n];
一维数组的初始化格式为:
     数据类型说明 数组名[n]={元素1,元素2,……,元素n};
     或者
     数据类型说明 数组名[]={元素1,元素2,……,元素n};
另外,在定义数组和初始化数组时需要注意:
(1)定义数组时的n值只能使用常量,不能使用变量。
(2)定义数组时可以不标明数组元素的个数,而是通过赋初值的方式确定。
(3)数组初始化时,数组的元素类型必须与定义的类型一致,当初值的个数小于整型常量n时,编译系统会自动补0。一旦给定初值数超过n,编译系统将报错。
综上所述,不难找出本题正确的答案为D,在选项A和B中,数组的定义方式都是正确的,但初始化的方法不正确;在选项C中,赋值的元素个数超过了数组定义的大小,在编译时系统会报错。

第7题:

有定义语句:“int*p[4];”,以下选项中与此语句等价的是( )。 A.int p[4];B.int**P;SXB

有定义语句:“int*p[4];”,以下选项中与此语句等价的是( )。

A.int p[4];

B.int**P;

C.int*(p[4]);

D.int(*p)[4];


正确答案:D
本题int*p[4]的作用是声明一个指针数组,每个元素都是int*型指针。

第8题:

下列定义语句中,错误的是

A.int px*;

B.char*acp[10];

C.char(*pac)[10];

D.int(*p)();


正确答案:A
解析:B项定义了一个指针数组,正确。C项定义了一个指向字符数组的指针,即数组指针,正确。D项定义了一个指向返回值为整型量的函数的指针,即函数指针,正确。A项定义语句错误,本题选A。

第9题:

执行以下语句的结果为______。 int x=3,y;int*px=&x;y=*px++;

A.x=3,y=4

B.x=3,y=3

C.x=4,y=4

D.x=3,y不知


正确答案:B
解析:++和*的运算优先级别相同,且从右到左结合,y=*px++也就是y=*(px++),++运算只对px有效。这里++是后置的,应当先将px所指向的变量*px(也就是变量x)的值赋给变量y,然后px才增1。

第10题:

下面是一个初始化指针的语句:int*px=&a;其中指针变量的名字应该是()。

  • A、*pz
  • B、a
  • C、px
  • D、&a

正确答案:C

更多相关问题