长沙理工大学C程序试卷(共5页).doc
精选优质文档-倾情为你奉上一、填空题(每空1分,共15分)。1.C+程序的头文件和源程序文件扩展名分别为 和 。2.以/*开始,*/结束,在/*和*/之间的部分即为 。3.school_id、man*、2year、_age、es10、class中有 个为合法标识符。4.在C+中唯一的一个三目运算符是 。5.任何一个函数由 函数开始运行和结束。函数必须遵循 的原则。6.在C+语言中,数组有两个要素为 和 。设对数组赋初值如下int a2,7,9,6,5,7,10,则a2 ,a5 。7.C+系统专门为处理字符串提供了一些预定义函数供编程者使用,这些函数的原型被保存在 头文件中。8.当一个类的成员是某一个类的对象时,该对象就被称为 。9.有如下定义语句:MyClass *p;,则执行pnew MyClass;语句时,将自动调用该类的 函数。10.重载运算符函数的函数名由关键字 引出。二、单项选择题(每小题2分,共20分)1字符串常量”ME”的字符个数是 。 A) 4 B) 3 C) 2 D) 12整型变量i定义后赋初值的结果是 。int i=2.8*6; A) 12 B) 16 C) 17 D) 183下列表达式的值为false的是 。 A) 1<3&&5<7 B) !(2>4) C) 3&0&&1 D) !(5<8)|(2<8)4设a1,b2,则(a+)+b和a+b这两个表达式的值分别为 。 A) 3,3 B) 3,4 C) 4,3 D) 4,45用逻辑表达式表示“大于10而小于20的数”,正确的是 。 A)10<x<20 B)x>10|x<20 C)x>10&x<20 D)!(x<=10|x>=20)6在int a=10,*p=&a;语句中,p的值是 。 A)10 B)变量p的地址值 C)变量a的地址值 D)无意义7对类的构造函数和析构函数描述正确的是 。 A)构造函数可以重载,析构函数不能重载。 B)构造函数不能重载,析构函数可以重载。 C)构造函数可以重载,析构函数也可以重载。D)构造函数不能重载,析构函数也不能重载。8为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为 。 A)public B)protected C)private D)static9下列运算符中, 运算符在C+中不能重载。 A) B) ?: C)new D)&&10下列程序段执行完后,x的值是 。 x=0; for(i=0,i<90;i+) if(i) x+; A) 0 B) 30 C) 89 D) 90三、阅读程序填空(共20分)1 下列程序根据输入年份,判断该年是否是闰年。请完成程序。(注意:闰年的判定条件是:年号能被4整除但不能被100整除,或者能被400整除。)(4分)#include<iostream.h>void main()int Year,Leap;cin>>Year;if(Year%4!0)Leap0;elseif ( 1 )Leap=1;elseif( 2 )Leap=0;elseLeap=1;if(Leap)cout<<Year<<”is a leap year.”<<endl;elsecout<<Year<<”isnt a leap year.”<<endl;2 已知一个三角形中三条边的长度分别为a,b和c,请利用下列公式求出三角形的面积s= ,其中s=(a+b+c)/2。(注意:构成三角形的条件是三角形任意两条边长度之和大于第三边。)(6分)#include<iostream.h>#include<math.h>void main() float a,b,c,s; cin>>a>>b>>c; if( 3 )|( 4 )|( 5 )|a<=0|b<=0|c<=0) cout<<”Data Error!”<<endl; return; 6 ; cout<<”The area is”<< 7 <<endl;3 用冒泡法对10个数排序(由小到大)。(6分)#include<iostream.h>void main() int a11; int i,j,t; cout<<”input 10 number:”<<endl; for(i=1;i<11;i+) cin>>ai; cout<<endl; for( j=1;j<=9;j+)for(i=1; 8 ;i+) if( 9 ) t=ai; 10 ;ai+1=t;cout<<”the sorted numbers:”<<endl;for(i=1;i<11;i+) cout<<ai;4 写一函数,求一个字符串的长度。(4分)#include <iostream>using namespace std;int main() int length(char *p); int len; char str20; cout<<"input string:" cin>>str; 11 ; cout<<"The length of string is "<<len<<endl; return 0;int length(char *p) /求字符串长度的函数int n; n=0; while (*p!='0') n+; p+; 12 ;四、阅读程序,写出输出结果(每小题5分,共15分)。1. #include <iostream>using namespace std;int main()int i,j,m,n; i=8; j=10; m=+i+j+; n=(+i)+(+j)+m; cout<<i<<'t'<<j<<'t'<<m<<'t'<<n<<endl; return 0;运行结果: 2.#include<iostream.h> union MyUnion int num; char ch; ; void main() MyUnion my; my.num=100; cout<<”The num of my is”<<my.num<<endl; my.ch=A; cout<<”The num of my is”<<my.num<<endl; cout<<”The ch of my is”<<my.ch<<endl; 运行结果: 3#include<iostream.h>#include<iomanip.h>int main() const int n=6; int i,j,ann; for(i=1;i<n;i+) ai1=1;aii=1; for(i=3;i<n;i+) for(j=2;j<=i-1;j+)aij=ai-1j-1+ai-1j; for (i=1;i<n;i+) for(j=1; j<=i; j+) cout<<setw(6)<<aij<<" " cout<<endl; return 0;运行结果:五.编程(每小题10分, 共30分) 1. 有一函数: 写一程序,输入x,输出y的值。2. 输出所有的“水仙花”,所谓“水仙花”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为1531353+33 。3. 定义一个复数类Complex,重载运算符“”,使之能用于复数的加法运算。将运算符函数重载为非成员,非友元的普通函数。编程序,求两个复数之和。专心-专注-专业