(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,
人气:134 ℃ 时间: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];,则下列说法正确的是
- 50名同学面向老师站成一行.老师先让大家从左至右按1,2,3,……,49,50依次报数;再让报数4的倍数的同学向后转,接着又让报数是6的倍数的同学向后转.问:现在面向老师的同学还有多少名?
- a>b恒成立是a(min)>b(max),那存在怎么表示?
- 抑菌实验中在接有某种菌的培养基中加含一种抑菌成分的滤纸片测其抑菌圈的直径
猜你喜欢