南开大学08-09_一_C++试卷_A卷.doc_第1页
南开大学08-09_一_C++试卷_A卷.doc_第2页
南开大学08-09_一_C++试卷_A卷.doc_第3页
南开大学08-09_一_C++试卷_A卷.doc_第4页
南开大学08-09_一_C++试卷_A卷.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

2008-2009第一学期面向对象程序设计2-1期末试卷(A卷)南开大学理科面向对象程序设计2-12008级期末考试试卷(A卷)2009年1月任课教师_学院_系别(班级)_姓名_学号_ 题 目一二三四卷面成绩分 数 得 分 一、单项选择(每空1分,共20分)(注意选项填写到下面表格中!)12345678910111213141516171819201将小写字母n赋值给字符变量one_char,正确的操作是( ) A) one_char=n; B) one_char=n; C) one_char=110; D) one_char=N;2已知:char ch=049; coutch; 将在屏幕输出( ) A) 49 B) 1 C) 41 D) 程序报错3已知:int x=2; 则cout(x=a&c=A&c=Z B) c=z&cZ C) cz D) !(c=a&c=A&c=Z)6下列语句正确的是( ) A) char str4=word; B) char str4= w, o, r, d, 0; C) char str6=wo0rd; D) char str5; str=word;7已知:int a=10,*p=&a; 则p的值为( )A) 10 B) a的值 C) a的地址 D) 随机值8下列语句正确的是( ) A) int a,*p; *p=&a; B) int a,*p; p=&a; C) int a,*p; &a=p; D) int a,*p; a=*p;9已知定义:int a5,*p;则下列描述错误的是( ) A) 表达式p=p+1是合法的 B) 表达式a=a+1是合法的 C) 表达式p-a是合法的 D) 表达式a+2是合法的10下列程序段执行后,x的值为( ) x=0; for(i=0;i90;i+) if(i) x+;A) 0 B) 30 C) 89 D) 9011一个指针类型的变量占用内存的字节数是( )A) 1 B) 4 C) 8 D) 由指向地址的类型决定12当函数定义时指定的函数返回值类型为void时,表示( )A) 函数没有返回值 B) 函数肯定没有return语句C) 函数肯定含有return; D) 函数返回任意类型的值13函数原型中,不必要给出的是( ) A) 函数参数的类型和参数名 B) 函数名 C) 函数的类型 D) 函数体14一个函数的参数的默认值应该在( )中给出A) 函数定义 B) 函数原型 C) 函数定义或原型 D) 函数调用15下列关于函数的描述正确的是( )A) 函数必须要有参数和返回值B) 函数体中只能含有一条return语句C) 函数通过return语句至多能够返回一个值D) 函数必须定义在先,调用在后16关于内联函数的描述错误的是( )A) 函数定义或函数原型前加上关键字“inline”,该函数成为内联函数B) 内联函数一般是一个小函数C) 内联函数在编译时进行内联置换,减少了调用的开销D) 内联函数在运行时仍然被调用17有关函数的形参和实参描述错误的是( )A) 函数调用时,实参的值传递给相应的形参,形参在函数体内的改变并不影响实参B) 因为可以设定函数的默认参数值,所以调用函数时,实参的个数可以少于形参C) 调用重载函数时,根据参数的不同决定去调用哪一个重载函数 D) 实参是数组名时,表示将数组的所有元素的值都传递到了函数中18下面程序段的输出结果为( ) for(int i=4;i=10;i+) if(i%3!=0) continue; couti; A) 45 B) 457810 C) 69 D) 4567891019已知:char *s=abcde;则couts+2;输出为( )A) abcde B) cde C) c D) abc20已知:char *s=abcde;则cout*(s+2);输出为( )得 分 A) abcde B) cde C) c D) abc 二、填空题(每空1分,共20分) (注意将结果填写到下面相应横线上!) 1已知:char *p=abcde; char s10=abcde; 则strlen(p)的值为 ,strlen(s)的值为 , sizeof(s)的值为 ,sizeof(abcde)的值为 2已知:int x=10; 则表达式 50=x=100的值为 3已知:int x=15; couthexxendloctxendldecxendl;输出为 , , 。4已知:int x= -15; couthexxendl; 输出为 。5已知:int *p; 为p动态分配内存且为该内存赋值为整数10的语句是: 。6具有相同函数名但参数表不完全相同的函数称为 。7已知:void fun(int a,int b=2,int c=3)coutabc; 则执行语句fun(2,3)会输出 。8已知:int a10,*p=a;则ai还可以表示为 , , 。 9C+源程序的扩展名是.cpp,经过 生成目标文件的扩展名是 ,再经过 生成可执行程序,最终执行的是.exe文件。10已知:char a7=abcedf,b4=123; strcpy(a,b); 则couta;输出为 ,couta4;输出为 。得 分 三、读程序写结果(每空3分,共30分) (注意将结果写在下面相应横线上!) 1. 写出下面程序的运行结果。#includevoid main() int x=5,y,k;float z=15,w;y=x+;w=z/y+7%x;k=x|w+;coutw=wendl; coutk=kendl; 运行结果为:_ _2. 写出下面程序的运行结果。#include int f(int n) if(n=1|n=2) return 2; else return f(n-1)+f(n-2);void main()int i,j=0;for(i=4;i6;i+) j+=f(i);coutj=jendl;运行结果为:_ 3. 写出下面程序的运行结果。#include int fun(int *s, int t, int *k) int i; *k=0; for(i=0;it;i+) if(s*ksi) *k=i; return s*k; void main() int a10=876,675,896,101,301,401,980,431,451,777,k;fun(a,10,&k);coutak=akendl;运行结果为: 4. 写出下面程序的运行结果。 #include double fun(double a,double b,char c=*) double d;switch(c) case +: d=a+b;break; case -: d=a-b;break; case *: d=a*b;break; case /: d=a/b;break;return d; void main() double d=1.0;d-=fun(fun(2.5,3.5, +),fun(3,5), /);coutd=dendl;运行结果为: _ 5. 写出下面程序的运行结果。 #include void main() int a,p=1,s=0; for(a=1;a=5;a+) p=p*a; s=s+p; coutp=pendl; couts=sendl; 运行结果为: 6. 写出下面程序的运行结果。#include void main()void f(int,int); int x=1,y=2; f(x,y); coutx,yendl;void f(int x,int y)int z=x;x=y;y=z; coutx,yendl;运行结果为: 得 分 四、程序填空(每空3分,共30分) (注意将结果写在下面相应横线上!) 1.下面函数fun()的功能是返回二维数组中大于本行平均值的所有元素之和。#include double fun( )double sum2=0.0; for(int i=0;i5;i+) double sum1=0.0; int j=0; for(j=0;j5;j+) sum1+=Bij; sum1/=5;for(j=0;j5;j+) if( ) sum2+=Bij; return sum2;void main()double A55 = 4431.3, 45.56, 5697.65, 768.678, 122.45, 444.4, 34.545, 5667.656, 2548.678, 1562.45, 537.3, 655.5456, 5677.65, 7168.678, 1242.45, 134.3, 454.5486, 5637.65, 7687.678, 1322.45,189.3, 445.5786, 5677.65, 7528.678, 142.45;coutfun(A)endl;2. 冒泡法从小到大排序,第一轮最小的元素向上“浮”到最上面,第二轮次小的元素“浮”到最小元素的后面,依次类推。 /一维数组气泡排序#include void main() int a5=55,2,6,4,32,i,temp; for(int pass=0 ; pass4; pass+) for(i=4; ; i-) if( ) temp=ai; ai=ai-1; ai-1=temp; for(i=0; i5; i+) cout ai ,;3. 对二维数组a44,求出下三角元素的和(包括对角元素),并输出结果。#includevoid main()double a44=10,11,12,13,20,21,22,23,30,31,32,33,40,41,42,43;int i,j;double s=0;for(i=0;i4;i+) for(j=0; ;j+) ;cout”s=”sendl; 4.根据需要,从键盘输入n值,为n个元素组成的整型数组动态分配存储空间,从键盘输入元素值后,逆序重排,最后将重排后的元素值输出。 #include #include #include void main() int n,i,t; coutn;int *p; ; /为数组分配存储空间for( i=0;ipi;for( i=0; ;i+) t=*(p+i),*(p+i)=*(p+n

温馨提示

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

评论

0/150

提交评论