2024年3月12日发(作者:)
1.以下程序的运行结果是【 B 】。
sub(int x,int y,int *z)
{*z=y-x ;}
main()
{ int a, b,c;
sub(10,5,&a);
sub(7,a,&b);
sub(a,b,&c);
printf(”%4d,%4d,%4d\n”,a,b,c);
}
A. 5,2,3 B. -5,-12,-7 C.-5,-12,
-17 D. 5,-2,-7
2.若已定义 char s[10]; 则在下面表达式中不表
示s[1]的地址的是【 B 】
A)s+1 B)s++ C)&s[0]+1 D)&s[1]
3.下列程序能对两个整型变量的值进行交换。以下
正确的说法是【 D 】。
main()
{ int a=10,b=20;
printf("(1)a=%d,b=%d\n",a,b);
swap(&a,&b);
printf(“(2)a=%d,b=%dn”a,b);
}
swap(int p, int q)
{ int t; t=p;p=q;q=t;}
A. 该程序完全正确
B. 该程序有错,只要将语句swap(&a,&b);
中的参数改为a,b即可
C. 该程序有错,只要将swap()函数中的形参
p和q以及t均定义为指
针(执行语句不变)即可
D. 以上说法都不正确
4.有四组对指针变量进行操作的语句,以下判断正
确的选项是【 D 】。
(1)int *p,*q; q=p;
int a,*p,*q;p=q=&a;
(2)int a,*p,*q; q=&a; p=*q;
int a=20, *p; *p=a;
(3)int a=b=0,* p; p=&a; b=* p;
int a=20,*p,*q=&a; *p=*q;
(4)int a=20,*p,*q=&a; p=q;
int p, *q; q=&p;
A.正确:(1);不正确:(2),(3),(4)
B.正确:(l),(4);不正确:(2),(3)
C.正确:(3);不正确:(1),(2),(4)
D.以上结论都不正确
5. 以下程序中调用scanf函数给变量a输入数值的
方法是错误的,其错误原因是 【 B 】。
main()
{ int a,b,*p=&a,*q ;
printf(“input a;”); scanf(“%d”,*p);
„„
}
A.*p表示的是指针变量 p的地址


发布评论