A、6
B、120
C、7
D、240
正确答案:C
20、下面程序段的运行结果是()。 int m[]={5,8,7,6,9,2},i=1;for(i=0;i<6;i++) {if(i % 2 !=0) m+=10; }for(i=0;i<6;i++) printf("%d ",m);
A、5 18 7 16 9 12
B、15 18 17 16 19 12
C、15 8 17 6 19 2
D、5 8 7 6 9 2
正确答案:A
第七章测试
1、变量的指针,其含义是指变量的()。
A、值
B、名称
C、地址
D、另一个名称
正确答案:C
2、以下叙述错误的是()。
A、指针变量可以与整数进行加、减算术运算
B、指针变量中存放的是地址值
C、指针变量不占用存储空间
D、多个同类型的指针变量可以指向同一个普通变量。
正确答案:C
3、已知指针变量P的指向如图1所示,则表达式*P++的值是()。
A、20
B、30
C、21
D、31
正确答案:A
4、已知指针变量P的指向如图1所示,则表达式*++P的值是()。
A、20
B、30
C、21
D、31
正确答案:B
5、已知指针变量P的指向如图1所示,则表达式++(*P)的值()。
A、20
B、30
C、21
D、31
正确答案:C
6、假设整型变量a的值为12,变量a的地址为2000,若欲使p为指向a的指针变量,则以下赋值正确的是()。
A、&a=p;
B、*p=12;
C、*p=2000
D、p=&a;
正确答案:D
7、若有定义:int b,*pb;则下面正确的赋值表达式是()。
A、pb=&b
B、pb=b
C、*pb=&b
D、*pb=*b
正确答案:A
8、设int a[10],*p=a; ,则下面()不是对a[3]的正确引用。
A、*(a+3)
B、p+3
C、p[3]
D、*(p+3)
正确答案:B
9、若有如下定义:int a[10]={10,20,30,40,50,60,70,80,90,100},*p=a; ,则执行p=p+5后,*p的值是()。
A、10
B、50
C、60
D、100
正确答案:C
10、若int *p,i;执行i=100; p=&i; i=*p+10; 后,*p的值是()。
A、100
B、10
C、0
D、110
正确答案:D
11、以下程序的输出结果是()。 #include <stdio.h> int main() { int a[ ]={2,4,6,8,10},y=0,i,*p; p=a; for(i=0;i<3;i++) y+=*(p+i); printf("%d\n",y); }
A、17
B、12
C、19
D、20
正确答案:B
12、以下程序的输出结果是()。 #include <stdio.h> int main() { int a=1,b=2,c=3,*p1,*p2,*p3; p1=&a; p2=&b; p3=&c; *p3=*p1; *p1=*p2; *p2=*p3; printf("a=%d,b=%d,c=%d\n",a,b,c); }