C++(I)练习题参考答案.doc
《C++(I)练习题参考答案.doc》由会员分享,可在线阅读,更多相关《C++(I)练习题参考答案.doc(7页珍藏版)》请在咨信网上搜索。
《低级 语言 次序 方案 〔C++I〕》训练 题参考答案 一.单项选择 题〔每题2分,共20分〕 1.以下字符列中,合理 的浮点型常量是: (A) 457 (B) 6e5.3 (C) e7 (D) 123e6 2.字符串常量 〞w\x42\\\nx\103y〞 的长度是: (A) 7 (B) 11 (C) 15 (D) 16 3.以下运算符中,自右向左结合 的运算符是: (A) [] (B) <= (C) *= (D) << 4.表达 式4/8*100/2.0的值是: (A) 25 (B) 25.0 (C) 0 (D) 0.0 5.设变量int a = 5; 以下哪个表达 式打算 后,使得变量b的值不为2 ? (A) b=a/2 (B) b=6-(--a) (C) b=a%2 (D) b=a<3?3:2 6.设a是整型变量,不克不迭 表达 数学关系 式11<a<15的C++表达 式是: (A) a>11&&a<15 (B) a==12||a==13||a==14 (C) !(a<=11)&&!(a>=15) (D) 11<a<=14 对C++表达 式 11<a<15 的打算 : ① 11<a è 0 或1 ② 0<15 è 1 或 1<15 è 1 缘故:C++的逻辑揣摸 结果为整型值 7.以下C++代码中,不克不迭 精确 对字符串s1置串值的代码是: (A) char *s1=new char[20]; cin>>s1; (B) char s1=〞name〞; //s1是字符变量,不克不迭 赋给串值 (C) char s1[5]=〞name〞; (D) char s1[]={〞name〞}; 8.一个存在 6个整型指针元素的一维数组的正判定 义是: (A) int **p[6] (B) int (*p)[6] (C) int *p[6] (D) *(*(p)[6]) 试比较以下几多 种说明办法 : int * p; // p是指向整型变量的指针〔p是关系 典范 为整型的指针〕 int *pa[10]; // pa是数组,元素典范 是整型指针 int (*pb)[10]; // pb是指针,指向〔关系 典范 〕长度为10的整型数组 int * f(); // f是前去 整型指针的函数名 int (*f)(); // f是指针,指向〔关系 典范 〕是前去 整型值的无参函数 例:有声明 int (*f)(int int); int max(int,int); int min(int, int); 那么:f=max; f(a,b); //等价于 (*f)(a,b); max(a,b); f=min; f(a,b); //等价于 (*f)(a,b); min(a,b); 9.实行 语句 x=1; while(x++<7)cout<<’*’; 后输出结果是: (A) ** (B) **** (C) ****** (D) ******* (x++<7) ① x<7 ② x=x+1 10.假设 用一维数组名作为调用 函数时的实参,那么转达 给形参的是: (A) 数组首元素的所在 (B) 数组首元素的值 (C) 数组元素的个数 (D) 数组中全部 元素的值 二.简答题〔每题2分,共20分〕 1.设整型变量x为任何一个整数,表达 式 –2<x<2 的值是? 1 2.调用 函数时,希望 从供应 的实参变量中掉 掉 落 函数的结果,那么对应的形参该当 是? 指针或引用典范 参数 留心 应用 办法: 函数定义 调用 void fun1(int x1); int a1; fun1(a1); //传数据值参数 void fun2(int * x2); int a2; fun2(&a2); //指针参数,传所在 值 void fun3(int & x3); int a3; fun3(a3); //引用参数,传名 以上参数用于把持 数据东西 void fun4(int * &x4); int *a4; fun3(a4); //指针引用参数,传名 以上参数用于把持 指针东西 3.设有变量定义 char *s[]={“Beijing〞,〞Shanghai〞,〞Guangzhou〞}; 实行 语句cout<<*(s+1)+1; 输出是? hanghai s是字符指针数组 S[0] S[1] S[2] Beijing\0 Shanghai\0 Guangzhou\0 s+1 == &s[1] //s是二级指针 *(s+1) == &s[1][0] *(s+1)+1 == &s[1][1] // 一级指针 输出字符指针是输出所指串值 s s+1 *(s+1)+1 4.表述“变量x的值等于 3”跟 “变量y的值等于 5”其中 有且只需一种情况成破 的表达 式是? x==3&&y!=5||x!=3&&y==5 或 (x==3)!=(y==5) 5.设有变量定义 int a[4][3],*p=a[2]; 表达 式 p+2 指向的元素是? a[2][2] a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] a[2][0] a[2][1] a[2][2] a[3][0] a[3][1] a[3][2] p p+2 6.将字符串str2拷贝到字符数组str1[]中,应调用 函数? strcpy(str1,str2) 7.说明语句 char *w(); 的含义 是? 函数原型。w是函数名,前去 字符型指针 8.表达 式new int[10] 的含义 是?分配 长度为10的整型数组堆内存,前去 首所在 分配 堆要用指针记录 所在 int *p=new int[10], *q; *p = 10; p[1] = 20; //对静态数组的两种访征询 办法 *q = 10; q[0]=12; //差错 ,指针不 关系 东西 9.设有函数调用 语句 Count(a ,num,max,min,average); 功能 是由参数max, min, average前去 整型数组a前num个元素中的最大年夜 值,最小值跟 平均值。对应的函数原型是? void Count(int[], int, int &,int &, double &); 假设 调用 语句为 Count(a ,num, &max, &min, &average); 那么函数原型为 void Count(int[], int , int* , int* , double * ); 10.有说明 struct link{ int code; link *next; }; link *head,*p;已经清楚 head为单链表的头结点,在*head之后拔出*p结点把持 的语句是? p->next=head->next; head->next=p; // p->next == (*p).next ^ head *head q ② ① p *p 思索: (1) 结点插在表头怎么样 把持 ? p->next=head; head=p; (2) 结点插在表尾怎么样 把持 ? q=head; while(q->next)q=q->next; q->next=p; p->next=NULL; (3) 遍历链表,输出结点值: q=head; while(q->next){cout<<q->code; q=q->next;} 〔4〕删除一个结点*(q->next)怎么样 把持 ? t = q->next; q ->next = t->next; delete t; ^ q t 三.分析次序 ,写输出结果〔每题5分,共20分〕 1.求>0的元素跟 ;>0的元素个数。 #include<iostream.h> void main() { int a[10]={2,4,0,-5,10,6,-8,9,6,7}; int i,s=0,count=0; for(i=0;i<10;i++) if(a[i]>0) s+=a[i],count++; else continue; cout<<"s="<<s<<" count="<<count<<endl; } s=44 count=7 2. 测试静态变量跟 自动 变量。静态变量第一次自动 初始化为0,再调用 时不修改 。 #include<iostream.h> a b a+=3 a+b ① 0 2 3 5 ② 3 2 6 8 ③ 6 2 9 11 ④ 9 2 12 14 void fun(); void main() {int i; for(i=1;i<5;i++) fun(); cout<<endl; } void fun() {static int a; int b=2; cout<<(a+=3,a+b)<<'\t'; } 5 8 11 14 3.求最小公倍数 #include<iostream.h> int lcm(int m, int n) { int r,a,b; a=m; b=n; r=m; do //辗转相除法,求最大年夜 公约 数 { m=n; n=r; r=m%n; } while(r); return a*b/n; //求最小公倍数 } void main() { cout<<lcm(3,7)<<'\t'<<lcm(4,6)<<endl; } 21 12 4.输出数字三角型,以递归办法 树破 次序 。 #include <iostream.h> void printN(int n) { if(n) { printN(n-1); cout << n << ends ; } } void print(int w) { if( w ) { print( w-1 ); printN(w); cout << endl; } } void main() { print( 5 ); } 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 四.按照次序 功能 填空。〔每空2分,共20分〕 1.本次序 按以下公式打算 e的值,精度为1e-6。 #include<iostream.h> void main() { double e,t,n; e=0; t=n=_____(1)_____; 1.0 while(_____(2)_____) t>=1e-6 { e+=t; _____(3)_____; t=t/n n=n+1.0; } cout<<"e="<<e<<endl; } 2.本次序 由主函数输出一字符串,调用 函数,把该字符串中的数字0~9转换成小写字母a~j;所有 小写字母转换成大年夜 写字符。然后 在主函数输出转换后的字符串。 #include<iostream.h> #include<ctype.h> _____(4)_____ void change(char*, char*); void main() {char str1[20], str2[20]; cin>>str1; change(str1,str2); cout<<str2<<endl; } void change(char *s1, char *s2) { while(_____(5)_____) *s1 {if(*s1>='0'&&*s1<='9') *s2=_____(6)_____; *s1 + 'a' -' 0' else *s2=toupper(*s1); _____(7)_____ s1++ ; s2++; } *s2='\0'; } 3.函数create从键盘输出整数序列,以输出0为终了。按输出逆序树破 一个以head为表头的单向链表。比如 ,输出序列为1 2 3 4 5 0,树破 的链表是5 4 3 2 1。 struct node{int data; node * next;}; void create(node * &head) {node *p; _____(8)_____; p = new node cin>>p->data; while(p->data!=0) {if(head==NULL) { head=p; head->next=NULL; } else { _____(9)_____ p->next = head; _____(10)_____ head = p; } p=new node; cin>>p->data; } } 五.次序 方案 〔第1小题6分,第2、3小题各7分,共20分〕 1. 编写函数输出以下形状 的图形,其中 构成 图形的标志 跟 输出的行数通过参数转达 。 # # # # # # # # # # # # # # # # 答案 : #include<iostream.h> #include<iomanip.h> void print_figure(int row, char tag) //行参数跟 标志 参数 {int i; cout<<setw(row-1)<<" "<<tag<<endl; //输出第1行 for(i=2;i<row;i++) //输出第2行到row-1行 cout<<setw(row-i)<<" "<<tag<<setw(2*(i-1)-1)<<" "<<tag<<endl; for(i=1;i<=2*row-1;i++)cout<<tag; //输出最后1行 cout<<endl; } void main() { print_figure(5,'*');} 2. 编写一个次序 ,实现 如下功能 : 〔1〕输出k〔<100〕个整数到数组x[100]中; 〔2〕打算 k个数的平均值及大年夜 于平均值的元素个数。 答案 : #include<iostream.h> void main() {int x[100],k,i,n; double sum=0.0,ave; cout<<"How many Data ?\n"; cin>>k; for(i=0;i<k;i++) //求跟 { cin>>x[i]; sum+=x[i];} ave=sum/k; //求平均值 n=0; for(i=0;i<k;i++) //求大年夜 于平均值的元素个数 if(x[i]>ave) n++; cout<<"average="<<ave<<"\n"; cout<<"There are "<<n<<" elements large than average.\n"; } 3. 编写一个次序 ,实现 如下功能 : 〔1〕从键盘输出a op b。其中 a, b为数值;op为字符,限制 为+、-、*、/ 。 〔2〕调用 函数count(op,a,b),打算 表达 式a op b的值。由主函数输出结果。 答案 : #include<iostream.h> double count(char, double, double); void main() {double a,b; char op; cout<<"Begin count:\n"; do { cin>>a>>op>>b; if(op!='+'&&op!='-'&&op!='*'&&op!='/') cout<<"input error,please again:\n"; else break; }while(1); cout<<a<<op<<b<<"="<<count(op,a,b)<<endl; } double count(char op, double a, double b) { switch(op) { case '+': return a+b; case '-': return a-b; case '*': return a*b; case '/': return a/b; } } 迈向今后的五种人 受过专业训练 的人 善于 整合的人 有制作 性的人 尊崇 不人的人 有品格 的人 精选可编辑- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 练习题 参考答案
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文