2011年C++期中试卷.doc_第1页
2011年C++期中试卷.doc_第2页
2011年C++期中试卷.doc_第3页
2011年C++期中试卷.doc_第4页
2011年C++期中试卷.doc_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南京信息工程大学滨江学院 2011 2012 学年 第 一 学期 面向对象程序设计 课程试卷( 期中 卷)注意:1、本课程为 必修 (表明必修或选修), 学时为 51 ,学分为 3 2、本试卷共 10 页;考试时间 120 分钟; 出卷时间: 2011 年 11 月3、姓名、学号等必须写在指定地方; 考试时间: 2011 年11 月 日4、本考卷适用专业年级: 网络工程、实验班 任课教师: 李振宏 题 号一二三四五六七八九十十一十二总 分得 分阅卷人(以上内容为教师填写) 专业 年级 班级 请仔细阅读以下内容:1、 考生必须遵守考试纪律,本人已经阅读并清楚了解南京信息工程大学滨江学 院考试纪律规定。2、 所有考试材料不得带离考场。3、 考生进入考场后,须将学生证或身份证放在座位的左上角。4、 考场内不许抽烟、吃食物、喝饮料。5、 考生不得将书籍、作业、笔记、草稿纸带入考场,主考教师允许带入的除外。6、 考试过程中,不允许考生使用通讯工具。7、 开考15分钟后不允许考生进入考场,考试进行30分钟后方可离场。8、 考生之间不得进行任何形式的信息交流。9、 除非被允许,否则考生交卷后才能离开座位。10、 考试违纪或作弊的同学将被请出考场,其违纪或作弊行为将上报学院。本人郑重承诺:我已阅读上述10项规定,如果考试时违反了上述10项规定,本人将自愿接受学校按照有关规定所进行的处理。上面姓名栏所填姓名即表示本人已阅读本框的内容并签名。学号 姓名 一、选择题(每2.5分,共75分)(1)下列关于C+关键字的说法中正确的是DA)关键字是用户为程序中各种需要命名的元素所起的名字B)关键字是对程序中的数据进行操作的一类单词C)关键字是在程序中起分割内容和界定范围作用的一类单词D)关键字是C+中预先定义并实现一定功能的一类单词(2)下列关于C+函数的描述中正确的是BA)主函数是程序的入口,它由用户定义的函数调用B)函数在调用之前必须先被声明C)每个用户定义的函数只能被其他函数调用一次D)函数是C+中面向对象程序设计框架的基本组成单元(3)C+语言中运算对象必须是整型的运算符是AA)%= B)/ C)= D)=(4)在C+语言中,退格符是DA)nB)t C)fD)b(5)有如下程序段D#includevoid main() int a=14,b=15,x;char c=A;x=(a&b)&(cB);cout x;执行该程序段后,x的值为A)tureB)false C)0D)1(6)#includevoid main() int n=9;while(n6) n-; cout n;该程序的输出结果是BA)987B)876 C)8765D)9876(7)如下程序的执行结果是A#includevoid main() static int a= 1,7,3,9,5,11;int *p=a;*(p+3)+=4;cout *p , *(p+3);A)1,13B)1,16 C)3,13 D)1,14(8)下面说明不正确的是DA)char a10=china;B)char a10,*p=a;p=china;C)char *a;a=china;D)char a10,*p;p=a=china;(9)下列程序的输出结果是C#includevoid main() double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;cout y*d endl;A)3B)3.2 C)0D)3.07(10)有以下程序#includeint f(int n) if(n=1)return 1;else return f(n-1)+1;void main() int i,j=0;for(i=1;i3;i+)j+=f(i);cout j;程序运行后的输出结果是BA)4 B)3 C)2 D)1(11)C+语言中类的定义的结束声明的符号是AA)B), C); D)(12)关于类定义中的语句错误的是Bclass A int i;A a;A *b;char *ch;A)int i;B)A a; C)A *b;D)char *ch;(13)执行下面的程序段后,变量k中的值为A#includevoid main() int k=3, s2;s0=k; k=s1*10;cout k;A)不定值B)33 C)30D)10(14)关于语句#includeusing namespace std;void main() cout 100.8989663 ;cout fixed 100.8989663 ;cout scientific 100.8989663 ;的输出结果为AA)100.899 100.898966 1.008990e+002B)100.8989663 100.898966 1.008990e+002C)100.899 100.898966 1.008989e+002D)100.899 100.8989663 1.008989e+002(15)以下程序的结果是D#includevoid main() char *p=abcdefgh,*r;long *q;q=(long*)p;q+;r=(char*)q;cout r endl;A)defgB)cdef C)ghabD)efgh(16)以下程序的输出结果是A#includevoid main() char c=z;cout c-25;A)97B)Z C)z-25D)z(17)有以下程序#includestruct STU char num10; float score3; ; void main() struct STU s3= 20021,90,95,85, 20022,95,80,75, 20023,100,95,90,*p=s; int i; float sum=0; for(i=0;iscorei; cout sum;程序运行后的输出结果是BA)260B)270 C)280D)285(18)下面程序段中,for循环的执行次数是Bchar *s=ta018bc;for(;*s!=0;s+)cout *;A)9B)5 C)6D)7(19)下列程序的运行结果是A#includevoid fun(int *a,int *b) int *k;k=a;a=b;b=k;void main() int a=2004,b=9,*x=&a,*y=&b;fun(x,y);cout a bendl;A)20049B)92004 C)00D)编译时出错(20)以下程序的输出结果是D#includeint f() static int i=0;int s=1;s+=i; i+;return s;void main() int i,a=0;for(i=0;i5;i+)a+=f();cout a;A)20B)24 C)25D)15(21)以下C+语言中用于单行注释的是AA)/B)/* C)*/D)|(22)在32位的计算机中,一个char型数据所占的内存长度的字节是BA)4B)1 C)2D)8(23)若变量已正确定义并赋值,以下符合C+语言语法的表达式是BA)a:=b+1 B)a=b=c+2 C)int 18.5%3D)a=a+7=c+b (24)有如下程序:A#includeiostream.hvoid main() int x=1,a=0,b=0;switch(x) case 0: b+;case 1: a+;case 2: a+;b+;cout a= a , b= b;该程序的输出结果是A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2(25)有以下程序C#includeiostream.hvoid main() int i=1,j=1,k=2;if(j+|k+)&i+)cout i , j , k;coutendl;执行后输出结果是 A)1,1,2B)2,2,1 C)2,2,2D)2,2,3(26)若有说明 int a34;,则a数组元素的非法引用是DA)a02*1B)a13 C)a4-20D)a04(27)若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是DA)a, point,*&a B)&*a, &a,*pointC)*&point,*point, &a D)&a, &*point, point(28)若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 BA)函数调用可以作为独立的语句存在 B)函数调用可以无返回值C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参(29)若运行时给变量x输入12,则以下程序的运行结果是A#includevoid main() int x,y;cin x;y=x12?x+10:x-12;cout y;coutendl; A)0B)22 C)12D)10(30)以下类定义中可能会引起错误的语句是Dclass A public:A()/1int i;/2private:int j;/3A(int i )i+;/4;A)1B)2 C)3D)4二、填空题(共25分)(1)C+语言标识符是以字母或 【1】 下划线开头的,由字母,数字和下划线组成的字符串。(2)在内存中,存储字符X要占用1个字节,存储字符串X要占用 【2】2 个字节。(3)mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回,请填空。int mystrlen(char *str) int i;for(i=0; 【3】stri != 0;i+);return(i);(4)以下函数用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。请填空。#include void fun(int *s, int t, int *k) int i;*k=0 【4】 ;【5】for(i=1;it;i+) if(s*ksi)*k=i;void main() int a10= 876,675,896,101,301,401,980,431,451,777,k;fun(a, 10, &k);cout k , ak;(5)如果一个类中定义了成员对象,则该类的对象和成员对象先被初始化的是 【6】成员对象 。(6)请在mian函数中填空使下面程序的输出结果为 1 1。#includeclass A private:int a;int b;public:A():a(0),b (1)void show()cout a b;class B private:int a;int c;public:B():a (1),c (1)void show()cout a c;class C : public A,public B ;void main() C cc;【7】cc.B:show(); (7)C+在重载运算符中,如用成员函数重载一元运算符参数表中需要 【8】 0个参数,如用友元函数重载一元运算符参数表中需要 【9】1 个参数。(8)以下程序的输出结果是 【10】 16。#includevoid main() int a=0;a+=(a=8);cout a;(9)以下程序的执行结果为 acdb【11】 。#includeclass Apublic: A()couta; A()coutb;class B:public Apublic: B()coutc; B()cout,是属于 流【12】 输入。二、程序理解1、写出运行结果void reFunction( char b, int current, int size)if ( current size )reFunction(b, current+1, size);cout bcurrent ;int main()const int arraySize = 8;char arrarraySize = a, b, c, d, e, f, g, h;reFunction(arr, 0, arraySize);cout str1; for ( i = 0; str1 i != 0; +i ) str2i = str1i a + A ; str2 i = 0; cout str2 endl; return 0; 4。写出运行结果int fun(int *a, int size)int max = 0, i; for (i = 0; i amax) max = i; return max;double fun(double *a, int size)double max = 0; for (int i = 0; i max) max = ai; return max;int main()int a = 3,7,2, 9,1, 5 ,0,8,7,4; double b = 3.3, 7.7, 9,9, 5.5, 4.4, 8.8, 1.1, 2.2, 0, 6.6; cout max(a, 10) endl; cout max(d, 10) endl;三、程序填空1、 完成下面程序,使得程序输出结果为: a=45 b=56 void swap(_ _)int tmp; ; ; ;int main ()int a = 56, b = 45;swap( );cout a = a b = b endl;return 0;2、 求 1 + 1/1!+1/2!+1/3!+1/20! #include using namespace std; int main() double e = ;double t = ; int n; for (n=1; ; n+) ; ; cout “1+1/1!+1/2!+1/3!+1/20!” e endl; return 0; 3。完成二分查找程序:对一个有序数组,首先匹配中间位置的元素,如匹配成功,则返回该中间位置的下标值;否则,如待查关键字大于中间元素,抛开前面的元素,从中间元素的下一元素到数组尾部范围重复以上匹配;如待查关键字小于中间元素,抛开后面的元素,从数组首部到中间元素的前一元素范围重复以上匹配;如果查找失败,则返回-1。int BinarySearch( int A, int key, int n )int low = 0; / 下界结点的下标 int high = n-1 ; / 上界结点的下标int mid; / 中间结点的下标 while ( ) ; if ( Amid = key ) ; else if ( key Amid ) ; else ; ; 四、编程题(共20分)1. 编程用如下的格式输出乘法九九表。 (5分)2。 已知一四位数 a2b3 能被23整除,编一程序求此四位数。(5分) C+程序设计 试卷2一、判断题(110)1. C+表达式4/8.0+4/7的值为double型,值为1.07。 2. 定义c为一个整型变量,则表达式c&0的值恒为0。 3. 若一个C+程序中说明一个全局变量I;则该程序所有的函数都可以引用此全局变量。 4. 一个完整的C+ 程序从编译预处理指令处开始执行。 5. 在C+中,当定义变量时不区分大小写。 6. C+规定:在每一个字符串的结尾加上一个空字符以便系统据此判断字符串是否结束。 7. C+语言中break语句和continue语句的区别在于:break语句是终止本次循环,continue语句是结束所有循环。 8. p为一指针变量,则表达式 (*p)+和*(p+)两个表达式的值是一样的,都是指向下一个单元的值。 9. 数组是若干相同类型的数据的集合,每个元素可以由数组名和下标构成。 10. C+中,如果在定义函数时加上关键字extern,则表示此函数是外部函数,可以被其他文件调用 二、选择题(215)1、若x是一变量,则x|!x的值是( )A 为true B.为falseC.与x 的值有关、 D.与x的值相反2. C+源程序文件的后缀名为: A.cpp B.exeC.obj D.lik3、对于有返回值的函数,要结束函数运行必须使用语句 Abreak B. .return C continue D.main4. 所谓的静态存储即在程序运行期间分配固定的 A.作用范围 B.存储单元C.变量类型 D. 变量名称5、语句 while( !x ) ; 中的x等价于 Ax=0 B.x!=1 C.x=5 D.x=16、 语句for(I=0,j=0;I=100;I+)j=j+I;的结果为 A. 500 B.100C. 5000 D. 50507.给出以下定义:int a,*p;则下面正确的赋值语句为 A.p=a; B.&p=a;C.p=&a; D.p=*a;8. 表达式c&d、c&0和!cc=d的值为 A.0 0 0 B. 1 0 1C. 1 1 0 D.1 1 19.在下列对字符串的定义中,错误的是 A.char str10=”china”;B.char *str=”china”;C.char *str10=c,h,i,n,a,0;D.char str=”china”;10. 若有int a=4;float b=14.70,能正确表示a+b对a取余的表达式是( )A.(a+b)/c B.(a+b)%cC. (int)(a+b)%c) D.(a+(int(b)%c11下面对函数的正确的定义语句是 Afloat function(int a,b);Bfloat function(int a;b);C. float function(int a,int b);D. float function(int a;int b);12设已定义数组 char array20=”Iamstudent”,则函数strlen(array)的返回值( ) A11 B.12 C.13 D.1413. 在函数内部定义的变量称为 A.全局变量 B. 局部变量 C.整型变量 D.字符型变量14、已定义一个数组int array10;则对此数组正确的引用是( ) A.coutarray10; B.coutarray(0); C.int b;b=array0+array; D.coutarray5+4;15、如果一外部变量只允许被本文件引用,则应在该外部变量定义前加上修饰( )A static B.extern C.register D.auto三、填空(114). 1. 一个可以执行的C+语言的源程序文件经过编译后生成的文件的扩展名为_ 2. 函数类型定义时,如果在函数前加void,则表示该函数_ 。3、一个整型变量和一个长整型变量在内存中所占的字节数分别为 字节和 字节。4过程化程序设计方法中,每个程序单位由三部分构成,即:_、_、_。5一个整型数组的元素个数为10个,则在内存中必须至少有_ 字节的空间才可以存放.6 int a=3,则表达式(int)(a+6.5)%2+(a=b=5)的值为 _ 。7 在指针的概念中,”*”表示的含义为_ ;而”&”表示的含义为_ .8 设x 、y和 z都是整型变量,则表达式(x=1,y=33,z=34)的值为_ 9标识符只可以由三种字符组成,他们是_ 、_ 和数字. 四、简答题(20)、请用C+语言的表达式表示下列代数式。(1)(2)2定义结构体类型student,该结构体包含的成员为name(字符型)、age(整型)、sex(字符型)、number(整型),定义一个student类型指针变量std。五、阅读程序(26)(一). 写出下列程序的输出结果是(52) 1#include using namespace std; int main( ) int i=1,sum=0;dosum += i;i+;while(i=100)cout”sum=”sumendl;return 0;2. #include using namespace std; int main( ) char str1 =”I love china!”,str220,*p1,*p2;p1=str1;p2=str2; for(;*p1!=0;p1+,p2+) *p2=*p1;*p2=0; p1=str1;p2=str2;cout”str1 is:”p1endl;cout”str2 is:”p2endl;return 0;(二)程序填空(28)1. 使用子函数求两个实数的和#include using namespace std;int main( ) _; /子函数声明 float a,b,c;coutab; c= _; /子函数调用 cout” 两个实数a和b的和为:”cendl; return 0; float add(float x,float y) float z;z=x+y; ;2.用冒泡排序法对输入的20 个整数从大到小进行排序#includeusing namespace std;int main( ) int a20,i,j,k,max;cout”n Please input 20 data:n”;for (i=0;i ;for(i=0;i19;i+)for( ; ;j+) if( ) k=aj; ; aj+1=k;coutn;for(i=0;i20;i+)coutaiaj+1 aj=aj+1 ; C+程序设计 试卷一、判断题(110)1. C+表达式4/7和4.0/7的值是相等的,且都为double型。 ( )2. 若有int I=10,j=0;则执行完语句if (j=0) I+; else I-;I的值为11。 ( )3. 若有int I=10,j=2;则执行完I*=j+8;后I的值为28。 ( )4. 字符串“china”在内存中占据的存储空间是5个字节。 ( )5. 一个可执行的C+语言程序可以包含若干个函数,但至少必须包含一个main()函数。 ( )6. 一个C+语言程序可由若干个源程序文件构成,每个源程序文件也必须包含一个main()函数。 ( )7. 在变量定义int sum,SUM;中sum和SUM是两个相同的变量名。 ( )8. 一个变量的地址就称为该变量的”指针”。 ( )9. 在C+语言中,所有函数都是平行的,即在定义函数时是相互独立的,一个函数并不从属于另一个函数。 ( )10. C+中,在定义函数时的参数是“形式参数”,在调用函数时的参数是“实 际参数”。 ( )二、选择题(210) 1.源程序文件的扩展名是: ( )A) .CPP B) .C C) .DLL D) .EXE2. 循环至少被执行了一次的语句为 ( )A). for循环 B). while循环 C). do循环 D). 任一种循环3.整型变量i定义后赋初值的结果是: ( )int i=2.8*6;A) 12 B) 16 C) 17 D) 184、下列表达式的值为false的是: ( )A) 13 & 54) C) 3&0&1 D) !(58)|(28)5、设int a=10, b=11, c=12;表达式(a+b)c&b=c的值是: ( )A) 2 B) 0 C) 2 D) 16、下列程序执行完后,x的值是: ( ) int x=0; for (int k=0;k90; k+)if (k) x+;A) 0 B) 30 C) 89 D) 907、下列程序段循环次数是: ( ) int x = -10; while (+x) coutxendl;A) 9 B) 10 C) 11 D) 无限8、表示“大于10而小于20的数“,正确的是: ( )A) 10x10|x10&x10&x209、在下面的一维数组定义中,哪一个有语法错误 ( )A). int a=1,2,3; B). int a100; C). int an D). int a510、设a=1, b=2,则(a+)+b与a+(+b)这两个表达式的值分别为: ( )A) 3, 3 B) 3, 4 C) 4, 3 D) 4, 4三、填空(215). 1、描述命题“A小于B或小于C”的表达式为_【1】_。2、假定x和y整型,其值分别为16和5 ,则x%y和x/y的分别为 【2】 和 【3】 。3、一个C+语言程序总是从_【4】_开始执行。4、C+语言程序中出现的/*/部分或部分所起的作用是_【5】_。5、C+规定:在每一个字符串的结尾加上一个_,以便系统据此判断字符串是否结束。6、若有int x=4,y=7;则表达式x*=x+y的值为_【7】_。7、过程化程序设计方法中,程序有三种基本结构,即:_ 【8】_、_、_。8、C+语言中所提供的循环控制语句有三种,即:_【11】_、_【12】、_【13】_。9、C+语言中用来存放变量地址的变量称作_【14】_。10、作为语句标号使用的C+保留字case和default只能用于 【15】 _语句的定义体中。四、简答题(53)1.请用C+语言的表达式表示下列代数式。1) 2)2根据要求定义数据类型或变量定义结构体类型date,该结构体包含的成员为year(整型)、month(整型)、day(整型),再定义date型变量birthday 。 五、分析程序运行结果(15) 1.写出下列程序的输出结果。第 24 页 共6页#includeusing namespace std;int main()char c1=a,c2=d,c3=f; c1+=2; c2+=2; c3+=2;c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论