设i,j已正确说明并赋值,若有定义:int a[2][3];,则对a数组的第i行第j列的正确引用为().A.*(a+i+j)B.*(a+i)+jC.*(*(a+i)+j)D.(a+i)[j]

设i,j已正确说明并赋值,若有定义:int a[2][3];,则对a数组的第i行第j列的正确引用为().

A.*(a+i+j)

B.*(a+i)+j

C.*(*(a+i)+j)

D.(a+i)[j]


参考答案和解析
B 本题主要考查C语言合法语句的定义。 在选项A中,a==1不是一个合法的语句,因为它没有语句结束标识符“;”,不能说是一条语句,如果作为一个表达式,它是正确的。 在选项B中,由于变量i已被正确定义并有初值,“++i;”是正确的语句。 在选项C中,由于正确的赋值语句中,赋值符号的左边不能为常量或表达式,而右边不能为变量或表达式,很明显,“a=a++=5;”违背了赋值语句的原则。 在选项D中,“a=int(i);”语句是不正确的,在C语言中没有这种表示形式,如果是想将变量i强制转换为整型的操作,应该为“a=(int)i;”。

相关考题:

若有定义:int a[2][3];则对a数组中第i行第j列元素地址的正确引用为 ()。 A.*(a[i]+j)B. (a+i)C. *(a+j)D. a[i]+j

若有定义int a[2][3];,则对a数组的第i行第j列(假调i,j已正确说明并赋值)元素值的正确引用为A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

若有定义:“int a [2][3];”则对a数组的第i行第j列元素的正确引用为( )。A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

若有下列定义(设int类型变量占2个字节):int i=8,j=9;则下列语句:printf("i=%u,j%x\n",i,j);输出的结果是( )。A.i=8,j=9B.8.9C.8 9D.i=8,j=8

若有下列定义(设int类型变量占2个字节):int i=8,j=9;则下列语句:printf("i=%u,j=%x\n".i,j);输出的结果是( )。A.i=8,j=9B.8.9C.89D.i=8,i=8

若有定义:inta[2][3],则对a数组的第i行j列元素地址的正确引用为()。 A.*(a[i]+j)B.(a+i)C.*(a+j)D.a[i]+j

若有说明int m[3][4]={3,9,7,8.5},(*q)[4];和赋值语句q=m;,则对数组元素m[i][j](其中O=i3,0=j4)值的正确引用为( )。A)(q i)[j]B)*q[il][j]C)*(*q[i] j)D)*(*(q i) j)

若有说明int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是 ( )A.i=*p;B.*p=*&jC.i=&jD.i=* *p;

若有说明int i,j=2, *P=i;,则能完成i=j赋值功能的语句是_______。A.i=*p;B.*P2=*j;C.i=j;D.i=**p;

若有说明int i,j=2,*p=i;,则能完成i=j赋值功能的语句是______。A.i=*p;B.*p=*j;C.i=i;,则能完成i=j赋值功能的语句是______。A.i=*p;B.*p=*j;C.i=j;D.i=**p;

若有说明int i,j=2,*p=i;,则能完成i=j赋值功能的语句是______。A.i=*pB.*P=*jC.i=jD.i=**p;

若在以下定义和赋值语句,则才s数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的合法引用为 int s[2][3]={0},( *p)[3]; p=s;A.*(*(p+i)+j)B.*(p[i]+j)C.(p+i)+jD.(*(p+i))[j]

若有定义int a[2][3];,则对a数组的第i行第j列(假设i,j已正确说明并赋值.元素值的正确引用为( )。A.*(*(a+i.+j.B.(a+i.[j]C.*(a+i+j.D.*(a+i.+j

若有定义: “inta[2Ⅶ3];”则对a数组的第i行第j列元素的正确引用为( )A.**(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

若有下列定义(设int类型变量占2个字节): int i=8,j=9; 则下列语句: printf("i=%%d,j=%%d\n",i,j); 输出的结果是( )。A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9

若有说明int m[3][4]={3,9,7,8.5},(*q)[4];和赋值语句q=m;,则对数组元素m[i][j](其中0<=i<3,0<=j<4)值的正确引用为( )。A.(q+i)[j]B.*q[i][j]C.*(*q[i]+j)D.*(*(q+i)+j)

若有以下程序段,其中0=i4,0=j3,则不能正确访问a数组元素的是()int i,j,(*p)[3];int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12};p=a; A.*(*(a+i)+j)B.p[i][j]C.(*(p+i))[j]D.p[i]+j

若有说明int i,j=2,*pi;,则能完成i=j赋值功能的语句是______。A.i=*p;B.*p=*j;C.i=i;,则能完成i=j赋值功能的语句是______。A.i=*p;B.*p=*j;C.i=j;D.i=**p;

若有定义:"int a[2][3];"则对a数组的第i行第j列无素的正确引用为( )。A.*(*(a+i)+j)B.(a+i) [j]C.*(a+i+j)D.*(a+i)+j

若有下列定义(设int类型变量占2个字节):int i=8,j=9;则下列语句:printf(i=%%d,j=%%d\ni=%%d,j=%%d\n,i,j);输出的结果是( )。A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9

设有定义int i=123;long j=456;,下列赋值不正确的是A.j=i;B.j=(long)i;C.i=(int)j;D.i=j;

若有定义:int a[2][3];则才a数组的第i行第j列(假调i,j已正确说明并赋值)元素值的正确引用为A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

下面程序的功能是 : 将 N 行 N 列二维数组中每一行的元素进行排序 , 第 0 行从小到大排序 , 第 1 行从大到小排序,第 2 行从小到大排序,第 3 行从大到小排序,例如:define N 4void sort(int a[][N]){ int i, j, k, t;for (i=0; iN;i++)for (j=0; jN-1:j++)for (k= 【 13 】 ; kN;K++)/* 判断行下标是否为偶数来确定按升序或降序来排序 */if ( 【 14 】 ? a[i][j]a[i][k]); a[i][j]a[i][k]){ t = a[i][j];a[i][j]=a[i][k];a[i][k] = t;}}void outarr(int a[N][N]){ …… }main(){ int aa[N][N]={{2,3,4,1},{8,6,5,7},{11,12,10,9},{15,14,16,13}};outarr(aa); /* 以矩阵的形式输出二维数组 */sort(aa);outarr(aa);}

若有定义“inta[3][4],*p;”,则对数组元素a[i][j](0=i3,0=j4)正确的引用是()。A、p=aB、*(*(p+i)+j)C、*(p+i*4+j)D、*(*(a+i)+j)

设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是()。A、i = i + 2B、a [0]= 7;C、i++- --j;D、a(0)= 66;

若有定义:inta[3][4];则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的不正确引用为()A、*(*(a+i)+j)B、*(a+i)[j]C、*(a+i+j)D、*(a[i]+j)

单选题若有以下程序段,其中0=i4,0=j3,则不能正确访问a数组元素的是() int i,j,(*p)[3]; int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12}; p=a;A*(*(a+i)+j)Bp[i][j]C(*(p+i))[j]Dp[i]+j

单选题设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是()。Ai = i + 2Ba [0]= 7;Ci++- --j;Da(0)= 66;