}
A、printf(\B、fun(*(s+1));
C、printf(\D、fun(s+1);
7. 若有说明:int *p1,*p2,m=5,n; 以下均是正确赋值语句的选项是(A)。 A、p1=&m;p2=p1; B、p1=&m;p2=&p1 C、p1=&m;*p2=*p1;
D、p1=&m;p2=&n;*p1=*p2;
8. 下列程序的运行结果是:(B). void fun(int *a, int *b) { int *k;
k=a;a=b;b=k; }
main( )
{ int a=3,b=6,*x=&a, *y=&b; fun(x, y);
printf(\}
A、6 3 B、3 6 C、0 0 D、编译出错
9. 字符串指针变量中存入的是(A)。 A、字符串的首地址 B、字符串变量 C、第一个字符 D、字符串
10. 以下程序的输出结果是 (D). main( )
{char str[ ]=\
A、68
B、字符D的地址 C、不确定的值 D、0
11.以下程序段给数组所有的元素输入数据,请选择正确答案填入(C)。 #include
{ int a[10],i=0;
while(i<10) scanf(\ . . . }
A、&a[i+1] B、a+i C、a+(i++) D、&a[++i]
12. 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是(C)。 A、*p=*q; B、n=*q; C、p=n; D、p=q;
13.下述函数的功能是(C). int fun(char *x) { char *y=x; while(*y++); return y-x-1; }
A、比较两个字符串的大小 B、求字符串存放位置 C、求字符串的长度
D、将字符串x连接到字符串y后面
14.在说明语句:int *f();中,标识符f代表的是(A)。 A、一个返回值为指针型的函数名 B、一个用于指向函数的指针变量 C、一个用于指向一维数组的行指针 D、一个用于指向整型数据的指针变量
15.下面程序的输出结果应该是(B ). char s[ ]=\ main() {char *p;
for ( p=s;p
} A、DCBA
B、ABCDBCDCDD C、ABCDABCABA D、ABCD
16.变量p为指针变量,若p=&a,下列写法不正确的是(A)。 A、*(p++)==a++ B、&*p==&a C、(*p)++==a++ D、*&a==a
17.以下程序段 char *alp[]={\ int j; puts(alp[1]);的输出结果是(D)。 A、D B、A C、B D、DEF
18.下面判断正确的是(D)。
A、char c[4]=\等价于 char c[4]=d[4]=\B、char str[10]={\等价于char str[10];str[]={\C、char *a=\等价于 char *a;*a=\D、char *s=\等价于 char *s;s=\
19.int a[10]={1,2,3,4,5,6,7,8};int *p;p=&a[5];p[-3]的值是(D)。 A、4 B、2
C、不一定 D、3
二、判断题
1. 如果需要向函数内传递多个值,用数组和用指针效果是一样的.T 2. 将函数func的入口地址赋给指针变量p的语句是_____.p=func;
3. 定义 int a[ ]={1,2,3,4},y,*p=&a[1];,则执行y=(*--p)++后,y的值是2. F 4. 有如下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是 *(p+8).T
5. 假设有int a[10], *p;则p=&a[0]与p=a等价。T
6. 设有如下定义:int *p; *p=100;则 printf(\的输出结果是100.N 7. char *p=\的含义是定义字符型指针变量p,p的值是字符串\。F 8. 数组名与指针变量是相互等价的.F
9. 在C语言中,函数名代表函数的入口地址.T
10.若 p 为指针变量,a 为数组名,则 a-p是合法的表达式.T 11.指向某一变量的指针,就是该变量的内存地址.T
23.若定义 int array[5], *p; 则赋值语句 p=array;是正确的.T
三、填空题
1. 定义int *p,a[5];将数组a的首地址赋给指针变量p的语句是_____.p=a;p=&a[0];【9】 定义int *p,a[5];将数组a的首地址赋给指针变量p的语句是_____. p=a; p=&a[0]; 执行下列语句后,*(p+1)的值是_____. b char s[3]=\
2、将数组a的首地址赋给指针变量p的语句是_____. p=a; 或 p=&a[0]; 3、将函数funl 的入口地址赋给指针变量p的语句是_____. p=funl; 一
4、在c程序中,只能给指针变量赋NULL值和_____值. 地址
小写的L,不是数字
第10章 结构体与共用体
一、单选题
1. 对结构体类型的变量的成员的访问,无论数据类型如何都可使用的运算符是(B)。 A、& B、. C、* D、->
2. 定义结构体的关键字是(A)。 A、struct B、typedef C、enum D、union
3. C语言结构体类型变量在程序执行期间(B)。 A、没有成员驻留在内存中 B、所有成员一直驻留在内存中 C、只有一个成员驻留在内存中 D、部分成员驻留在内存中
4. C语言中,定义结构体的保留字是(C)。 A、typedef B、union C、struct D、enum
5. 当说明一个结构体变量时系统分配给它的内存是(D)。 A、成员中占内存量最大者所需的容量 B、结构中第一个成员所需内存量 C、结构中最后一个成员所需内存量 D、各成员所需内存量的总和
6. 在定义构造数据类型时,不能(A)。 A、末尾不写分号 B、说明存储类型 C、初始化 D、说明变量
7. 使用共用体变量,不可以(A)。 A、同时访问所有成员 B、进行动态管理 C、节省存储空间