文档详情

C++程序设计实验1(附参考答案).doc

发布:2015-09-03约2.88千字共5页下载文档
文本预览下载声明
实验1:指针的定义和运算,指向变量的指针 一、实验目的 (1)掌握指针的概念、如何定义指针以及如何初始化 (2)掌握指向简单变量的指针的使用 二、基础知识巩固   1、变量的指针,其含义是指该变量的_________. a)值 b)地址 c)名 d)一个标志 2、已知 int *p,a;则语句 p=a;中的运算符‘’的含义是______。 A 逻辑与运算符 B 位与运算 C取指针内容目D 取变量地址 3、设指针p指向的整型变量值为28,则printf (“%d\n”,++*p)的输出是_____。 A 27 B 28 C 29 D 30 4、若已定义a为int型变量,则对指针p的说明和初始化正确的是____。 A int *p=a; B int p=a; C int *p=*a D int *p=a; 5、若有说明:int i,j=7,*p=i;,则与i=j;等价的语句是_____。 A.i=*p B *p=*j C i=j D i=**p; 6、设int *p,i;p=10; i=p; i=*p; =2*p+1; 以下程序的输出结果是#include stdio.h void main() { int k=2,m=4,n=6; int *pk=k,*pm=m,*p; *(p=n)=*pk*(*pm); printf(%d\n,n); } 9、以下程序的输出结果是#include stdio.h void main() { int *var,ab; ab=100; var=ab; ab=*var+10; printf(%d\n,*var); } 10、阅读程序,写出运行结果 (1)、# include stdio.h main() { int a,b; a=5;b=10; printf(before swap a=%d,b=%d\n,a,b); swap(a,b); printf(after swap a=%d,b=%d\n,a,b); } swap(int x,int y) { int temp; temp=x; x=y; y=temp; printf(in swap x=%d,y=%d\n,x,y); } 运行结果: ? (2)、# include stdio.h main() { int a,b; a=5;b=10; printf(before swap a=%d,b=%d\n,a,b); swap(a,b); printf(after swap a=%d,b=%d\n,a,b); } swap(int *px,int *py) { int temp; temp=*px; *px=*py; *py=temp; printf(in swap x=%d,y=%d\n,*px,*py); } 运行结果: 比较上面两个程序,试说明两者的区别? 以上习题是传值和传址的最好说明。程序1是传值,是一种单向传递,只能由实参传递给形参。而程序2是传址,是形参和实参共享内存,双向传递的。当在子函数里面形参的值发生改变的时候,形参也发生了改变。 二、填空题 1、若有定义 int? ch; (1)使指针p可以指向变量ch的定义语句是 int *p=ch; 。 (2)使指针p可以指向变量ch的赋值语句是 *p=ch; 。 (3)通过指针p给变量ch读入整数的scanf函数调用语句是_scanf(%d,p)_____。 (4)通过指针p给变量ch赋数值4的语句是 *p=4 。 (5)通过指针p输出ch中整数的语句是 printf(%d,*p); 。 三、编程题 1、从键盘输入两个数,输出他们的和,采用指针访问变量。 #includestdio.h #includestring.h #includestdlib.h int main() { int a,b,*pa=a,*pb=b; printf(该程序是求和程序\
显示全部
相似文档