ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:89KB ,
资源ID:4572837      下载积分:5 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4572837.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(高级程序设计语言C++期末考试卷及答案2套.docx)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

高级程序设计语言C++期末考试卷及答案2套.docx

1、诚信应考,考试作弊将带来严重后果! 期末考试 《高级程序设计语言C++》试卷 考前须知:1.考前请将试卷和答题纸密封线内各项填写清楚;.所有答案写在答题纸上,否那么无效; 2 .试卷和答题纸同时提交;.考试形式:闭卷; 3 .本试卷共五大题,总分值100分,考试时间120分钟。 题号 —* = 四 五 总分 得分 评卷人 一、单项选择题(每题2分,共26分) 1 .由C++目标文件连接而成的可执行文件的缺省扩展名为(C )。 (A) cpp(B) obj(C) exc(D) dll.以下选项中全部都是C++关键

2、字的选项为(B )。 -E (A) cpp int break (B) int char new (C) break CASE sizeof (D) switch float integer 2 .以下四个选项中,不能交换变量a和b的值是(B )。 (A) a=a-b, b=a+b, a=b-a;t=a, a=b, t=b, b=a; (B) l=a, a=b, b=t;t=b, a=b, b=a; 4 .字符串"Hello,\nHi\041”包含的有效字符个数为(D )。 (A) 14(B) 13(C) 12(D) 10.以下代

3、码执行的结果是(B )。 n]r> 料 int x = 3510; double y = x/100* 100;cout «y; (A) 3510(B) 350()(C) 3000(D) 1.ini i=3;下面语句执行的循环次数是(B )。 do{ i—; cout«i«endl; } while( i != 1 ); (D)无限次 (A) 1(B) 2(C) 3.假设int a=l, b=2, &ra=a. &rb=b;以下正确的语句是(B )。 2 1 3 1 4 2 5 、 ^include void func(int, int,

4、int *); void mainO { int x, y, z ; func(l, 2, &x); func(3, x, &y); func (x, y, &z); cout«x«endl«y«endl«z«endl ; ) void func(int a, int b, int *c) { b-=a ; *c=b-a; } 0 -6 -6 6 、 it include int fl(int a, int b) {return a%b*5:} int f2(int a, int b) {return a*b;} int f3(in

5、t(*t) (int, int), int a, int b) { return (*t) (a, b) :} void mainO { int (*p) (int, int); p=fl ; cout< #include void fNum (int w) { int i;if(w>0) { for (i=l: i<=w; i++) cout«setw(3) «w;cout«en

6、dl; fNum(w-l);) )void mainO { fNum(4);} 4 4 4 4 3 3 3 2 2 1四、程序填空题(每空2分,共20分) 1、下面程序的功能是:输入三角形的三条边存放在变量a, b和c中,判别它们能否构成三角 形,假设能,那么判断是等边、等腰、还是其它三角形,在横线上填上适当内容。 ^include〈iostream. h> void main() { float a, b, c ; coutX<"a, b, c="; cin»a»b»c; if ( a+b>c && b+c>a && c+a>b ) ( if (11]) a==b &&

7、b==ccom。”等边三角形! \n”; else if (12J) a==b| |a=c| |b=c cout<<”等腰三角形! \n”;else cout<<”其它三角形! \n”; ) else cout«”不能构成三角形! \n”; ) 2、以下程序功能是输出1000以内个位数为6且能被3整除的所有数。请填空。 ^include void main () { int i, j ; for ( i=0 ; Lil ; i++ )i <100 { j = i * 10 + 6 ; if ( [4] ) continue ; j % 3 cout

8、« j « * ”; ) ) 3、求n (n26)内的所有偶数表示为两个素数之和,图1为输入12的运行结果。补充完整以 下程序。 [提示:一个偶数 n (n26)可以表示为 l+(n-l), 2+(n-2), 3+(n-3),...] #include 图I #include#include int isprime(int); void main() { int num; coui«”请输入一个偶数 N (N>=6) :\n*; cin»num: for(int n=6: n<=num: n+=2) for(i

9、nt i=3;i<=n/2;i+=2)if(15J) isprime(i) && isprime(n-i) (cout«setw(3) <

10、态数组各元素值。请填空。 #include< iostream. h> #include #include void mainO { int n, *p= [8j ;NULL cout « ”Please input n:\n"; cin»n;p= [9] new int[n] if(p==NULL) { cout«*Allocation faiure \n"; return;} srand(time(0));for( int i=0; i

11、 ) int *a=p { cout«*a«, \tf ; } cout«encll; delete []p; ) 五、编程题(20分)(6分)编写程序,打印正整数的平方和立方值。程序运行后显示相应的提示信息, 要求输入2个正整数,然后显示这个范围的数据的平方和立方值。例如,分别输入整 数2和9,执行效果如图2所示。 CT -E:\c+ + \unc++更 \07级春 \Debug\平方立方, 请卷入塞1个整数< >=0 >:2 请输入奈2个整数 < ”第1个整数 N率方立方 248 392? 41664 525125 636216 749343 864512 9

12、81729 Press any key to continue ▲ 二J 1 图2显示数制对照表 #include #include void mainO { int a, b;cout«"请输入第1个整数(>=0 ) cin»a;cout<<"请输入第2个整数( >=第1个整数):"; cin»b;cout<

13、i«setw(12) «i*i*i«endl; )1口| x 1口| x c「E:\C++\CUC++蔻 \0 出卷'Debug 也成, 1、 (6分)以下程序用随机函数生成两位整数,取M个各不相等的数据,按生成顺序存 放在数组a中。图3是生成20个数据的显示效果。请依题意编写函数insert及填写 函数原型。 54 79 二 64 20 生成数组: Press any key to continueii int insert (int *ap, int k, int n);〃函数原型图 3 生成数组 或: int insert (int ap 口,int k, int

14、 n); void mainO { const int M=20;int n, i=0; int a[M] = {0};srand(time(0)); while (i

15、ert(int *ap, int k, int n) { for(int j=0; j

16、> c< wE:\C++\<^JC++S\07Q(^\Deb. #include 请输入名字拼音,以标结束: struct link {char s; link * next;}; ZhongFuwalt 生成密码为: 797230ft Press any key to continue void inputNamedink *& h); void outLinkdink *h); //change的函数原型 图4牛.成密码 void mainO { link *name=NULL, *code=NULL; cout<<”请输入名字拼音,以#结束

17、八n"; inputName(name): change(code, name); cout<<"生成密码为:\n"; outl.ink (code); } void inputNamed ink *& h)〃逆序存放字符串 { 1 ink *p: p=new link; cin»(p->s); while((p->s>=, a* &&p->s<=,z \ \ p->s>=* K &&p->s<=, Z' )&&p->s!=, #') { p->next=h; h=p;p=new link: cin»(p->s); ) ) void change(link *&hCod

18、e, link *h) { char d;《高级语言程序设计I》试卷(A) 第14页共15页 link *p=NULL; hCode=new link;hCode->next=NULL; p=hCode;d=h->s; for(int i=0;i<6;i++) { p->s=int(tolower(d))%10+, 0* ;p->next=new link; p=p->next;p->s=,; p->next=NULL;if(h->next) {h=h->next; d=h->s;} else d=, z'; ) ) void outLinkdink *h){ while

19、h) (cout«(h->s); h=h->next;} cout«endl; )《高级语言程序设计I》试卷(A) 第15页共15页 (A) &ra=a; (B) rb = ra; (C) &rb=&ra; (D) *rb=*ra; .在下面的函数声明中,存在着语法错误的选项是(D )。 (A) void f( int a, int)(B) void f( in( a, int b ) (C) void f(int a, int b=5)(D) void f( int a; int b ).假设有定义语句:inta[2][3],*p⑶;那么以下语句中正确的选项是(C )。

20、A) p=a;(B) p[0]=a;(C) p[0]=&a[l] [2];(D) p[l]= &a;.以下代码输出结果为(D ) int* arr = new int[10j; cout «arr[OJ; (A)编译时将产生错误(B)编译正确,运行时将产生错误 (C)输出零(D)输出值不确定.己知 char*sl="123", *s2="34";那么strcmp(sl, s2)的值为以下哪个(B )。 (A) 1(B)-l(C)" 12334"(D) ,,34".假设有以下声明和定义, struct worker那么以下错误的引用是(D )。 { int no ; char na

21、me[ 20 ] ; } w, *p=&w ; (A) w.no=3011;(B) p->no=3011;(C) (*p).no=30l 1;(D) *p.no=3011;.要求翻开文件“D:\file.dat",可写入数据,正确的语句是(D )。 (A) ifstream infile( "D:\file.dat”, ios::in ); (B) ifstream infile( ttD:\\file.daf,, ios::in); (C) ofstream infilc( "D:\file.dat",ios::out); (D) (stream infile( <4D:\\fil

22、e.daf,, ios::in|ios::out);二、简答题(共12分) 1、(3分)有以下语句: int a = 63; double b = 3.456789 ; cout«setfill('#')«selw(6)«hex«a«'\n'«setprecision(5)« b«endl; 输出显示什么? 3.45682、(3分)有说明int A13][5J;写出两个不同形式的表示元素值的表达式。 A[il[31*(A[l]+3)*(*(A+l)+3)3. (3 分)设有说明 double a[6]= { 0 }, *b = new double [6]; sizeof (a),

23、 sizeof (b) 的值各是多少?并分析结果原因。 4844、(3分)设有函数调用语句Count (A , N, right, negative);功能是由参数right, negative返回统计数组A的N个元素中正整数和负整数的个数。对应的函数原型是什么? void Count( int * , int, int &, int &);三、读程序写结果(共6题,每题4〜5分,共28分) 1 > (4 分): #includeconst int N=5; void main (){ int a[N] = { 8, 6, 5, 4, 1 }, i, tem

24、p; for( i=0; ivoid fun() { static int a=0; int b=0; a+=2; ++b; cout«a<<,\t* «b<

25、4 分)。 #includevoid main () (int i;char c; char s 口=“abccda”; for(i=l; (c=s[i]) != ' \0' ; i++) { switch(c){ case 'a' :cout<<,%> ;continue; case ' b' :cout<<,%) ;break;case ' c' :cout<<,** ;break; case ' d' : continue;} cout<〈' <

26、 void func( char *p ) { if ( *p==' \0' ) return ; func( p+1 ); cout«*p;} void main (){ func (,,hello,/) ; } 答案: olleh 5、(5 分)。 ttinclude void func(int, int&, int *); void main (){ int x=l1, y=22, z=33 ; func (1,x,&z);cout<

27、) void func(int a, int &b, int *c) { b+=a ; *c=b-a; } 答案: 12 22 11 12 11 13 6、(5 分) #include #include void func(int *p) { int t; for(int i=0;i<3;i++) for (int j=i;j<3;j++){ t=*(p+3*i+j); * (p+3*i+j)=*(p+3*j+i); *(p+3*j+i)=t; } } void main (){ int a[3] [3] = {1, 2, 3,4,

28、5, 6, 7, 8,9}, *p, i, j; P=&a[0][0]; func(p); for(i=0;i<3;i++) { for(j=0;j<3;j++)cout«setw(5) «a[i] [j]; cout«endl; ) 答案: 1 47 2 58 3 69 四、读程序填空(每空2分,共20分).以下程序的功能是:将一组数据从大到小排列后输出,并显示每个元素及它们在原数组 中的下标。请将程序补充完整。 #include void main() { int a[]= { 38, 6, 29, 1, 25, 20, 6, 32,

29、78, 10 ); int index[ 10]; int i,j,temp; for( i=0; i<10; i++); index[i] = i for( i=0; i<= 8; i++ ) for( j = i+1 ;j<=(2); j++ ) sizeof(a)/ sizeof(int)-l 或 9if( (3)) a[i]

30、cout « a[i] « ,\t,« index[i] « endl; ) 2.下面程序的功能是:用字符指针作为函数的参数,实现字符串拷贝。请将程序补充完 整。 #include void get_copy( char *to , char *from ) { inti = 0;whilc( from[i] != '\0') { lo[i]=⑷;from[i]i++; )(5); to[i] =、0' ) void main() { char str[20]; get_copy( (6) “I am a sludent."); str cout

31、«str«endl; ) 3.下面程序的功能是:将两个递增有序的数组a和b合并成一个数组c,并仍保持递增次 序。请将程序补充完整。 #includc void main() { int a[6] = { 1,3,5,7,9,11}, b[5]= {2,4,6,8,10}, c[ll]; int i, j, k; i=j=k=O; while(i<6 &&j<5) if(a[i]

32、c[k++]=b[j++] for(k=0;k void main () {(9); ofstream outstuf outstuf. open(:\\test. dat ", ios::out); outstuf << "This is a test.\n〃 ; outstuf. (10); } close()五、编程题(共14分) 1. (6)编写程序其功能是输出1000以内个位数为6且能被3整除的所有正整数。要求输出

33、格式为:每一行显示10个数,每个数的宽度为5。图1是输出效果。 ^include ^include void main () { cout« ”1000以内个位数为6 且能被3整除的所有正整数: \n\n"; - ♦ WSrt-ZOOBl r c 1 •09(2)C + +l\08-09( ,1□! X 1800以内个粒数为6且能被3整除的所有正整数: 6366696126156186216246276 306336366396426456486516546576 606636666696726756786816846876

34、906936966996 Press any key to continue J Li12J for (int i=0, j=0 , k=0 ; i <100 ; i++ ) { j = i * 10 + 6 ; if ( j % 3 ) continue; cout << setw(5)«j; if ( (++ k %10 )== 0 ) cout«endl; ) cout<

35、ludc图2生成的数组 图2生成的数组 #include#include #include;//insert 函数原型 int insert ( int *ap, int k, int n ); void main() { const int M=20; int n, i=0; int a[M]={ 0 }; srand(timc(0)); while (i

36、) ) i++;〃把不相同数据插入数组a } cout

37、 (A) 8d(B) l_2h (C) _int(D) file. cpp2、有说明语句:int a=0; double x=5. 16;,那么以下语句中,(C )属于编译错误。 (A) x=a/x;(B) x=x/a; (C) a=a%x;(D) x=x*a;3、设有:int a=7,b=5,c=3, d=l;,那么条件表达式 ad?c:d 的值为(C )。 (A) 7(B) 5(C)3(【))14、执行以下语句后,x的值是(D ), y的值是(C )。 int x, y ; x = y = 1; ++x||++y ; (A)不确定 (B) 0(C) 1(D) 25

38、以下for语句循环的次数是(B ) o for ( int i=0, x=0; !x && i<=3; i++ ) (A) 3(B) 4(C) 0(D)无限6、有函数原型void fun( int * );下面选项中,正确的调用是(C )。 (A ) double x = 0. 12; fun( &x );( B ) int a = 1 ; fun( a*3. 14 ); (C ) int b = 10; fun( &b );( D ) fun( 56 );7、关于函数定义和调用的说法正确的选项是(A )。 (A)函数能嵌套调用,但不能嵌套定义 (B)函数能嵌套调用,也能嵌套定义

39、 (C)函数不能嵌套调用,也不能嵌套定义 (D)函数不能嵌套调用,但能嵌套定义8、有定义一维数组语句:int a[5],*p;,那么以下表达式错误的选项是(B )。 (A) p=p+1(B) a=a+l ( C ) p-a( D ) a+ 29、假定有语句:int b[][3] = {{l}, { 1,2), {1,2,3), (0}); 那么b[2][2]的值是(D )。 (A) 0(B) 1(C ) 2( D ) 31()、假设用数组名作为调用函数的实参,那么传递给形参的是(A )。 (A)数组存贮首地址(B)数组的第一个元素值 (C)数组中全部元素的值(D)数组元素的个数二

40、简答题。(共20分) 1、有以下循环语句无法正常结束循环,请找出原因。(2分) int i=100, j=0, m=0; while(l) { m+=j; j++; if(j=i) break; }2、一程序要求统计未退休(男性年龄<60,女性<55)职工中『3月份出生的人数。请写出 职工记录中结构的最小定义形式,并写出用于判断的C++逻辑表达式。(4分) struct Employee{ char name[20]; char sex; int Byear; int Bmonth; int Bday;}; Employee em; 〃设男性,女性日 f, (eni.sex==,m

41、2007-em.Byear<60|| em.sex==,f,&&20()7-em.Byear<55)&&(em.Bmonth<=3&&em.Bmonth>=l)3、设有说明int a[4*5];请写出两个表示数组a最后一个元素地址值的表达式。(3分) &a[19]a+19 4、设有说明 double x(10]= { 0 }, * y = new double [10]:问 sizeof(x), sizeof(y)的值各是 多少?并分析结果原因。(4分) sizeof (y)的值为4。y是指针变量。 5^设有函数调用语句CountXa , n, right, negative);功

42、能是由参数right, negative 返回统计数组a的n个元素中正整数和负整数的个数。对应的函数原型是什么?(2分) void Count (int *a, int , int&, int&); void Count(int a口, int , int&, int&): 6、以下语句不能正确输出单向链表的数据元素值,请找出原因。(2分) struct link{int data; link * next; }; 1 i nk *head, *p; p=head; while(p) {cout«p. data; p++; } 链表非连续存储,P++不能访问后续结点。 7、设有以

43、下说明语句,请写出3个调用函数function的语句。(3分) typedef void funType (int ,double); funType function, *fp; 设: int a; double x; fp=function; 那么可有: function(a, x); fp (a, x); (*fp) (a, x);三、阅读程序写输出结果(每题4分,共20分) t?include void mainO { int i, s = 0: for( i=4; i<6; i++ ) { switch( i ) { case 3: s case 4: s case 5: sdefault: s cout « "s=" « += i*i; break;+= i*i; break; += i*i; break;+= 2; } s «endl; ) ) S=16 S=412、 ttinclude void main() { int i,j; for( i=l; i<=3; i++ ) { j=l; while (j

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服