中国计量学院2012~2013 学年第一学期《C++程序设计》课程试卷(B )第 2 页 共 6 页 while(fabs(x)>1e-8) { ___s+=s;_________ k += 2; sign *= -1; x = sign/double(_k__); } __s=4*s;___________ cout<<"The pi is"<
3、用迭代方法求a 。求平方根的迭代公式为)(21
1n
x a n n x x +=+,要求前后两次求出的x 的差的绝对值小于10-7. #include
#include <__cmath______ > void main() {
____double________x, a;
cout <<"please input a value:\n"; _cin>>a___________; x = a/2;
while(fabs((x-a/x)/2)>__1e-7_____) x=___(x+a/x)/2__________;
cout < 4、构造函数、拷贝构造函数和析构函数 class Student { public: Student(char* pName="no name",int ssId=0) { strncpy(name,pName,40); name[39]=_’\0’_______; id =__ssId______; cout <<"Constructing new student " < Student(___Student& s________) //拷贝构造函数 { cout <<"Constructing copy of " < } _____~Student__________() { cout <<"Destructing " < char name[40]; int id; }; 二、读程序,回答问题(每个小问题3分,共36分) 1、int a=4; int &f(int x) { a=a+x; return a; } void main(void) { int t=5; cout< f(t)=20; cout< t=f(t); cout< } 1)第一个f(t)的值是多少?9 2)第二个f(t)的值是多少?25 3)第三个f(t)的值是多少?60 2、#include"iostream.h" void main() { int a[10]={123,11,22,33,44,55,66,77,88,99},*p=a,i; p=a+8; p--; p=p-2; *p=a[3]; *++p=600; *(a+3)=300; for(i=0;i<10;i++) cout<<"a["< } 1)程序运行的结果是什么? 中国计量学院2012~2013 学年第一学期《C++程序设计》课程试卷(B )第3页共 6 页 a[0]=123 a[1]=11 a[2]=22 a[3]=300 a[4]=44 a[5]=33 a[6]=600 a[7]=77 a[8]=88 a[9]=99 2)执行完语句p—;后指针p指向数组中的哪个元素?a[7] 3)a和p有什么不同?a是数组首地址,p是int型指针 3、#include inline bool isDigit(char); int main( ){ for(char c; std::cin>>c && c!='\n'; ) if(isDigit(c)) std::cout<<"Digit.\n"; else std::cout<<"NonDigit.\n"; } bool isDigit(char ch){ return ch>='0' && ch<='9' ? 1 : 0; } 1)函数isDigit的作用?判断字符是否是数字0~9 2)用if语句改写函数isDigit? if(ch>=’0’&&ch<=’9’)return 1; else return 0; 3)若去掉程序中所有的std::,需要加上一条什么语句? using namespace std; 4、 void func(); int n=1; void main() { static int a; int b= -10; 中国计量学院2012~2013 学年第一学期《C++程序设计》课程试卷(B )第4页共 6 页 cout <<"a:" < <<" b:" < <<" n:" < b+=4; func(); cout <<"a:" < <<" b:" < <<" n:" < n+=10; func(); } void func() { static int a=2; int b=5; a+=2; n+=12; b+=5;