5. 若有说明语句:int a, b, c, *d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是()。
A. scanf("%d%d%d", &a, &b, d);
B. scanf("%d%d%d", a, b, d);
C. scanf("%d%d%d", &a, &b, &d);
D. scanf("%d%d%d", a, b,*d);
6.以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是()。
#include <stdio.h>
main()
{
int *p, *q, a, b;
p=&a;
printf("input a:");
scanf("%d", *p);
…
}
A. *p表示的是指针变量p的地址
B. *p表示的是变量a的值,而不是变量a的地址
C. *p表示的是指针变量p的值
D. *p只能用来说明p是一个指针变量
二、填空题
1. 设有定义:int a, *p=&a; 以下语句将利用指针变量p读写变量a中的内容,请将语句补充完整。
scanf("%d", 【1】 );
printf("%d\n",【2】 );
2. 下面程序的运行结果是________。
void swap(int *a, int *b)
{
int *t;
t=a;
a=b;
b=t;
}
int main()
{
int x=3, y=5, *p=&x, *q=&y;
swap(p,q);
printf("%d %d\n", *p, *q);
}
三、编程题
写一个函数,这个函数可以完成交换两个int类型变量的值
如:
int a=10,b=20;
函数(a,b);
//调用完这个函数后
//a变成了20,b变成了10
|
|