(1).若有说明和定义:
typedef int *integer;
integer p,*q;
则下列叙述正确的是【C】
(A).q是基类型位int的指针变量
(B).p是int型变量
(C).p是基类型为int的指针变量
(D).程序中可用integer代替类型名int
分析:对integer返回类型为int*的类型名重命名为p,因此就相当于【int *p】,又通过integer定义了*q,因此就相当于定义了一个指针的指针【int **q】。
(2).有如下定义:
以下对内嵌结构体成员的引用形式错误的是【A】
(A).ps.birth.y
(B).s.birth.y
(C).ps->birth.y
(D).(*ps).birth.y
分析:*ps=&s ===》》定义了一个指针ps存结构体s的地址,(*ps)是对其解引用操作,而(*ps)就等于s
(3).有下列程序:
程序执行后的输出结果是【A】
(A).zhao,m,85,90,qian,f,95,92
(B).zhao,m,85,90,zhao,m,85,90
(C).qian,f,95,92,qian,f,95,92
(D).qian,f,95,92,zhao,m,85,90
(4).有以下程序:
程序执行后的输出结果是【C】
(A).zhao,m,85,sun,f,90
(B).sun,f,90,sun,f,90
(C).sun,f,90,zhao,m,85
(D).zhao,m,85,zhao,m,85
分析:取a的地址进入函数,函数中将c的地址赋值给a的地址,因此a指针指向的是c的地址,而c内部的值赋值给c地址内的值,则值不改变。退出函数时,由于并没有对a地址内的值进行改变,而只是更改了以下指向的空间。所以a地址内的值还是原来的值。