A、a=1,b=2,c=3
B、a=2,b=1,c=3
C、a=2,b=1,c=1
D、a=3,b=2,c=1
正确答案:B
13、以下程序的输出结果是 ()。 #include <stdio.h> int main() { int k=2,m=4,n=6; int *pk=&k,*pm=&m,*p; *(p=&n)=*pk*(*pm); printf("%d\n",n); return 0; }
A、4
B、6
C、8
D、10
正确答案:C
14、以下程序的输出结果是 ()。 #include <stdio.h> int main() { int **k, *a, b=100; a=&b;k=&a; printf("%d\n",**k); return 0; }
A、编译出错
B、100
C、a的地址
D、b的地址
正确答案:B
15、对于基类型相同的两个指针变量之间,不能进行的运算时()。
A、<
B、=
C、+
D、–
正确答案:C
16、若有int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*p)[3]=a; ,则能正确表示数组元素a[1][2]的是()。
A、*(*(p+1)+2)
B、*(p+1)+2
C、(p+1)[2]
D、p[1]+2
正确答案:A
17、对于语句int *p[5]; 的正确描述是()。
A、p是一个指向数组的指针,所指向的数组含有5个int型元素。
B、p是一个指向数组中第5个元素的指针,该元素是int型。
C、定义不合法
D、p是一个具有5个元素的指针数组,每个元素都是一个指向int型对象的指针变量。
正确答案:D
18、若有int a[10],*p=a;,下列不能表示a数组首元素地址的是()。
A、a
B、*p
C、p
D、&a[0]
正确答案:B
19、下列程序的运行结果是()。 #include <stdio.h> int main() { int a[5]={1,2,3,4,5},*p,**pp; p=a; pp=&p; printf("%d ",*(p+3)); printf("%d",**pp); return 0; }
A、4 1
B、3 1
C、4 4
D、3 4
正确答案:A
20、若有int a[10],*p;,则下列语句中正确的是()。
A、for(p=a; a<p+10 ; a++)
B、for(p=a; p<a+10 ; p++)
C、for(p=a; p<p+10 ; p++)
D、for(p=a; p<a+10 ; a++)
正确答案:B
第八章测试
1、函数strcmp("ABCDDCBA","ABCDE")的返回值是()。
A、0
B、正数
C、负数
D、随机值
正确答案:C
2、以下程序运行后的输出结果是()。 int main() { int i,j; char a[ ]={‘a’,‘b’,‘c’,‘d’, ‘e’, ‘f’, ‘g’,‘h’,‘\0’}; i=sizeof(a); // sizeof返回数组a在内存分配字节数 j=strlen(a); printf(“%d,%d\n”,i,j); }
A、9,9