C语言程序设计2023章节测试答案
18、若有定义:int a[5],*p;,则操作p=a;是合法的操作。
我的答案:√
19、若有定义:int a[5],*p;,则操作p=&a[2];是合法的操作。
我的答案:√
20、若有定义:int a[5][5],*p;,则操作p=a;是合法操作。
我的答案:X
21、若有定义:int a[5][5], (*p)[5];,则操作p=*a;是合法操作。
我的答案:X
22、若有定义:int a[5][5], (*p)[5];,则操作p=a[0];是合法操作。
我的答案:X
23、凡是整型变量可以参加的运算,指针变量都可以参加。
我的答案:X
24、对于指向同一个数组的两个变量而言,两个指针变量相减的操作是有意义的。
我的答案:√
25、对数组各元素的存取完全可以不用下标变量而用指针来代替。
我的答案:√
26、下列关于指针概念的描述中,错误的是( )
A、指针中存放的是某变量或对象的地址值
B、指针的类型是它所存放的数值的类型
C、指针是变量,它也具有一个内存地址值
D、指针的值是可以改变的
我的答案:B
27、已知:int a[5],*p=a;则与++*p相同的是( )。
A、*++p
B、a[0]
C、*p++
D、++a[0]
我的答案:D
28、已知:int a[ ]={1,2,3,4,5},*p=a;在下列数组元素地址的表示中,正确的是( )。
A、&(a+1)
B、&(p+1)
C、&p[2]
D、*p++
我的答案:C
29、若有语句int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则( )不是对a数组元素的正确引用(其中0≤i<10)。
A、p[i]
B、*(*(a+i))
C、a[p-a]
D、*(&a[i])
我的答案:B
30、下列语句组中,正确的是( )
A、char *s;s="Olympic";
B、char s[7];s="Olympic";
C、char *s;s={"Olympic"};
D、char s[7];s={"Olympic"};
我的答案:A
31、若有定义int(*pt)[3];,则下列说法正确的是( )
A、定义了基类型为int的三个指针变量
B、定义了基类型为int的具有三个元素的指针数组pt
C、定义了一个名为*pt、具有三个元素的整型数组
D、定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组
我的答案:D
32、有以下程序 #include <stdio.h> int f(int t[],int n); main() { int a[4]={1,2,3,4},s; s=f(a,4); printf("%d\n",s); } int f(int t[],int n) { if(n>0) return t[n-1]+f(t,n-1); else return 0; } 程序运行后的输出结果是( )
A、4
B、1O
C、14
D、6
我的答案:B
33、有以下程序 #include <stdio.h> main() { int m=1,n=2,*p=&m,*q=&n,*r; r=p;p=q;q=r; printf(“%d,%d,%d,%d\n”,m,n,*p,*q); } 程序运行后的输出结果是( )
A、1,2,1,2
B、1,2,2,1
C、2,1,2,1
D、2,1,1,2
我的答案:B
34、若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是( )
★《布宫号》提醒您:民俗信仰仅供参考,请勿过度迷信!