(27)若有定义int(*Pt)[3];,则下列说法正确的是 A)定义了基类型为int的三个指针变量 B)定义了
(27)若有定义int(*Pt)[3];,则下列说法正确的是
A)定义了基类型为int的三个指针变量
B)定义了基类型为int的具有三个元素的指针数组pt
C)定义了一个名为*pt、具有三个元素的整型数组
D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组
(32)有以下程序
#include
#define N 8
void fun(int *x,int i)
{*x=*(x+i);}
main()
{int a[N]={1,2,3,4,5,6,7,8},i;
fun(a,2);
for(i=O;i<N/2;i++)
{printf("%d",a[i]);}
printf("\n");
}
程序运行后的输出结果是
A)1313
B)2234
C)3234
D)1234
(39)有以下程序
#include
main()
{ int a=2,b=2,c=2;
printf("%d\n",a/b&c);
}
程序运行后的输出结果是
A)O
B)1
C)2
D)3
帮我说一下27题为什么选D,32题为什么选C,39为什么选A,
人气:344 ℃ 时间:2020-04-11 16:17:36
解答
(27)若有定义int(*Pt)[3];这种声明可以先把变量名字去掉,也就是int (*)[3],对于*可以这样理解,char *s 等同于char s[],所以可以理解为int pt[][3],也就是D中的解释
而对于int *pt[3],则不相同了,首先pt是一个数组,然后,*用来修饰这个数组,也就是pt是三个元素都是int指针的数组名.
(32)有以下程序
#include
#define N 8
void fun(int *x,int i)
{*x=*(x+i);} /* *(x+i)就是x[i],*x就是x[0],此函数的功能应该很清楚了 */
main()
{int a[N]={1,2,3,4,5,6,7,8},i; /*数组下标从0开始*/
fun(a,2); /*a[0]= a[2] 也就是3*/
for(i=O;i<N/2;i++)
{printf("%d",a[i]);}
printf("\n");
}
程序运行后的输出结果是 C)3234
(39)有以下程序
#include
main()
{ int a=2,b=2,c=2;
printf("%d\n",a/b&c); /*除法运算符号,c语言运算符优先级先看一看这个地方的
先执行a/b结果是1,再执行1&2,这个运算符是按位与运算,转换成二进制两个数是 01和 10,对应位都是1才为1,否则为0,所以结果为0*/
}
程序运行后的输出结果是0
推荐
- 若有以下定义:int x[10],*pt=x; 则对x数组元素的正确应用是( )
- 31.若有以下定义:int x[10],*pt=x; 则对x数组元素的正确引用是( ).A) *&x[10] B) *(x+3) C) *(pt
- 若有定义int(*Pt)[3];,则下列说法正确的是
- 已知,a>b>0,则b^2+4/a(b-a)的最小值为
- 在某点导数怎么求 我是说怎么求左右导数 如y=|x| 怎么由该点导数判断该点是否连续
- 已知曲线y=f(x)过点(0,1),且曲线上点(x,y)处切线的斜率为x^2-2x,求该曲线的方程
- 把4千克平均分成5份,每份是( ) a 5分之4千克 b 总重量的五分之四 c
- 下列能用勒夏特列原理解释的是( ) A.Fe(SCN)3溶液中加入固体KSCN后颜色变深
猜你喜欢