上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
习题2
1.C++语言的struct、enum、union与C语言有何区别?
2.const与#define有什么区别?
3.什么是类型转换?C++的类型转换有哪几种?在哪些情况下会发生隐式类型转换?
4.什么是函数重载?在函数调用时,C++是如何匹配重载函数的?
5.什么是引用?使用引用时要注意哪些问题?
6.什么是内联函数?它有什么特点,哪些类型的函数不能被定义为内联函数?
7.简述命名空间的概念?如何访问特定命名空间的成员?std命名空间是怎么回事。
8.C++的作用域有哪些类型?变量有哪些类型,变量类型与变量的初始化有什么关系?
9.指出下面程序的错误。
int &f1(int x=0,int y){ return x*y; } int *f2(int a;int b=1){ int t=a*b; return &t; } void main(){ const r; int &a,*p; r=10; a=r; const char *pc1="dukang"; char *const pc2="dukang"; char const *pc3="dukang"; const char const*pc4="dukang"; pc1[2]='t'; pc2[2]='t'; pc3[2]='t'; pc4[2]='t'; cout<<f1(3); cout<<f2(2,3); }
10.读程序,写出程序的执行结果。
(1)
#include <iostream> using namespace std; int print(int i){ return i*i; } double print(double d){ return 2*d; } void main(){ int a=25; float b=9.2; double d=3.3; char c='a'; short i=3; long l=9; cout<<print(a)<<endl<<print(b)<<endl<<print(d)<<endl; cout<<print(c)<<endl<<print(i)<<endl<<print(l)<<endl; }
(2)
#include <iostream> using namespace std; int n; int *p1; void fun(){ static int a; int b; cout<<"a="<<a<<", "; cout<<"b="<<b<<endl; } void main(){ int *p2; int m; fun(){ int n(10),m(20); cout<<"n="<<n<<endl<<"m="<<m<<endl; } cout<<"n="<<n<<endl<<"m="<<m<<endl; if(p1) cout<<"p1="<<p1<<endl; if(p2) cout<<"p2="<<p2<<endl; }
(3)
#include <iostream.h> double f(int a=10,int b=20,int c=5){return a*b*c;} void main(){ cout<<f()<<endl<<f(20)<<endl<<f(10,10)<<endl<<f(10,10,10)<<endl; }
(4)
#include <iostream> using std::endl; using std::cout; int &f(int& a,int b=20){ a=a*b; return a; } void main(){ int j=10; int &m=f(j); int *p=&m; cout<<j<<endl; m=20; cout<<j<<endl; f(j,5); cout<<j<<endl; *p=300; cout<<j<<endl; }
11.编写重载函数min(),分别计算int、double、flaot、long类型数组中的最小数。
12.某单位职工的基本工资数据如下:
职工编号 姓名 基本工资 加班工资 奖金 扣除 实发工资
K01 tom 1200 500 1000 134
K02 john 2000 120 500 300
K03 white 1400 200 400 120
编写程序,从键盘输入各位职工的工资数据,存入磁盘文件Salary.dat中,然后从该文件读出职工的工资数据,并计算输出每位职工的实发工资,输出格式与上面相同,但要输出已被计算出来的实发工资。实发工资的计算方法如下:
实发工资=基本工资+加班工资+奖金奖扣除