C语言程序设计指针-答案
C语言程序设计上机 指针
注:本次上机无需上交上机报告。
选择题
1.?????? 变量的指针,其含义是指该变量的( )。
A. 值 B. 地址 C. 名 D. 一个标志
2.???? 已有定义int k=2,*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是( )。
A. k=*ptr1+*ptr2 B. ptr2=k
C. ptr1=ptr2 D. k=*ptr1*(*ptr2)
3.???? 若有说明:int *p,m=5,n; 以下程序段正确的是( )。
A. p=&n; scanf(“%d”,&p); B. p = &n ; scanf(“%d”,*p);
C. scanf(“%d”,&n); *p=n ; D. p = &n ; *p = m ;
4.???? 若有说明:int *p1, *p2,m=5,n;以下均是正确赋值语句的选项是( )。
A. p1=&m; p2=&p1 ; B. p1=&m; p2=&n; *p1=*p2 ;
C. p1=&m; p2=p1 ; D. p1=&m; *p1=*p2 ;
5.???? 若有语句:int *p,a=4;和p=&a;下面均代表地址的一组选项是( )。
A. a, p, *&a B. &*a,&a,*p C. *&p,*p,&a D. &a,&*p,p
6.???? 下面程序段中,for循环的执行次数是( )。
A. 9 B. 7 C. 6 D. 5
char *s=”\ta\018bc” ;
for ( ; *s!=’\0’ ; s++) printf(“*”) ;
7.???? 下面能正确进行字符串赋值操作的是( )。
A. char s[5]={“ABCDE”}; B. char s[5]={‘A’,’B’,’C’,’D’,’E’};
C. char *s ; s=”ABCDE” ; D. char *s; scanf(“%s”,s) ;8.???? 下面程序段的运行结果是( )。
char *s=”abcde” ; s+=2 ; printf(“%s”,s);
A. cde B. 字符’c’ C. 字符’c’的地址 D. 不确定
9.???? p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是( )。
A. c=*p1+*p2 B. p2=c C. p1=p2 D. c=*p1*(*p2)
10.? 以下说明不正确的是( )。
A. char a[10]=”china” ; B. char a[10],*p=a; p=”china”;
C. char *a; a=”china” ; D. char a[10],*p; p=a=”china”;
11.? 若有定义:int a[5];则a数组中首元素的地址可以表示为( )。
A. &a B. a+1 C. a D. &a[1]
12.? 已有函数max(a,b),为了让函数指针变量p指向max,正确的方法是( )。
A. p=max; B. p=max(a,b); C. *p=max; D. *p=max(a,b);
13.?? 对于类型相同的指针变量,不能进行哪种运算?
A. + B. - C. D. ==
14.?? 若有以下说明和语句,则p1-p2的值为多少?
int a[10], *p1, *p2; p1=a; p2=&a[5];
A. 5 B. 6 C. -10 D. 非法
15.?? main()函数可