1.#include<iostream>
using namespace std;
int main()
{
inta=10,b=20;
int*p=&a,*q=&b;//*表示指针类型说明符,代表由P指向a和由q指向b;&是取地址运算符;
*p=*p**q;//第1、2、4个*是间址访问符,第三个*是算数乘运算符;
int&ra=a;//&是引用说明符;
ra=a;
int*&rt=q;//*是指针类型说明符;&是引用说明符;
*rt=30;//*是间址访问符;
cout<<"a="<<a<<"\nb="<<b<<"\n*p="<<*p<<"\n*p="<<*q<<"\nra"<<ra<<"\n*rt"<<*rt<<endl;//*是间址访问符;
return0;
}
此程序的结果:
a=200
b=30
*p=200
*p=30
ra200
*rt30
Press any key to continue
1.#include<iostream>
using namespace std;
int cube(int t);//cube的函数原型的标识符t作用域从这里结束
int main()
{
intk;//k的作用域从这里开始
for(k=1;k<10;k++)
cout<<cube(k)<<endl;//k的作用域从这里结束
}
int cube(int t)//cubt函数可以访问t//cube的函数原型的标识符t作用域从这里开始
{return t*t*t;}//cube函数的变量t的从这里开始从这里结束
说明下列每个元素的作用域
(a)main中的变量k;
(b)cube函数的变量t;
(c)cube的函数原型;
(d)cube的函数原型的标识符t;
3.6 2.
#include<iostream>
using namespace std;
void display(double d)
{
cout<<"adouble"<<d<<endl;
}
void display(char c)
{
cout<<"achar"<<c<<endl;
}
void display(int i)
{
cout<<"aint"<<i<<endl;
}
int main()
{
doubled=1.5;int i=100;char c='a';
display(d);
display(i);
display(c);
return0;
}
a double1.5
a int100
a chara
Press any key to continue
2.阅读程序,写出运行结果
#include<iostream>
using namespace std;
int sub(int,int);
int a=1;
int main()
{
intm=1,n=2,f;
f=sub(m,n);
cout<<a<<'\t'<<f<<endl;
f=sub(m,n);
cout<<a<<'\t'<<f<<endl;
return0;
}
int sub(int c,int d)
{
staticint m=2,n=5;
cout<<m<<'\t'<<n<<'\t'<<endl;
a=++a;c=m++;d=n++;
returnc+d;
}
运行结果:
2 5
2 7
3 6
3 9
Press any key to continue
二、程序阅读
2.阅读程序,写出运行结果(4.6)
c++#include<iostream>
using namespace std;
int main()
{
char*str[]={"c++","basic","pascal"};
char**p;int i;
p=str;
for(i=0;i<3;i++)
cout<<*(p+i)<<endl;
return0;
}
结果是:
basic
pascal
Press any key to continue
2.阅读程序,写出运行结果(4.4)
#include<iostream>
using namespace std;
int f(int[][3],int,int);
int main()
{
inta[][3]={0,1,2,3,4,5,6,7,8};
cout<<f(a,3,3)<<endl;
return0;
}
int f(int a[][3],int row,int col)
{
inti,j,t=1;
for(i=0;i<row;i++)
{for(j=0;j<col;j++)
if(i==j)t*=a[i][j];}
returnt;
}
结果为:
0
Press any key to continue
2阅读程序,写出运行结果(4.5)
#include<iostream>
using namespace std;
void test1(int*a1)
{
a1=new int(5);
cout<<"a1="<<*a1<<endl;
}
void test2(int *&a2 )
{
a2=new int(5);
cout<<"*a2="<<*a2<<endl;
}
int main()
{
int*p=new int(1);
test1(p);
cout<<"test1;*p1="<<*p<<endl;
test2(p);
cout<<"test2;*p2="<<*p<<endl;
return 0;
}
结果是:
a1=5
test1;*p1=1
*a2=5
test2;*p2=5
Press any key to continue