模拟题3及参考答案.docx
- 文档编号:26643887
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:13
- 大小:140.99KB
模拟题3及参考答案.docx
《模拟题3及参考答案.docx》由会员分享,可在线阅读,更多相关《模拟题3及参考答案.docx(13页珍藏版)》请在冰豆网上搜索。
模拟题3及参考答案
《高级语言程序设计(C++)》模拟题(三)
一.单项选择题(每小题2分,共20分)
1.设有inta,b;下面()不是C++的正确表达式。
(A).!
a(B).b+'a'(C).a
“=”:
左操作数必须为左值
2.计算表达式x=a=4,b=x++后,变量x,a,b的值分别是:
()
(A)4,4,4(B)4,4,5(C)4,5,5(D)5,4,4
x++先赋值,后自加
3.以下运算符中,优先级最低的是:
()
(A)&&(B)>=(C)?
:
:
(D)->
从高到低依次是:
->,>=,&&,?
:
4.表达式1/2*2.0的值是:
()
(A)2(B)1(C)0.5(D)0
1/2两个整数相除的结果为整数,即为0,0*2.0还是0
如果题目改为1.0/2*2.0则结果为1
5.设有变量定义char*s1=”string”,*s2=”1234”;
执行语句cout< () (A)10(B)6(C)5(D)4 s1在连接s2之后变成”string1234”,长度为10. 注意: 在VC下,因为strcat(s1,s2)的第一个参数指向的是常量字符串,所以会出错. 上面这段代码在TC下可以正常运行. 6.设有变量定义inta[]={3,5,7,9,11},*p=a+2,y; 执行语句y=*p;后,变量y的值是: () (A)6(B)7(C)8(D)9 *p=a+2实际上就是将p指向a[2],也就是7. 7.设有变量定义inti,j;与表达式i==0&&j==0等价的表达式是: () (A)i==j(B)i&&j(C)! i&&! j(D)i||j ! i&&! j也就是! i和! j都必须为1,也就是i和j都必须为0 8.设有变量定义inta[3][4];能够表示元素a[2][1]的值有: () (A)*a[2]+1(B)&a[2][1](C)*a[2][1](D)*(a[2]+1) a[2]实际上就是a[2][0]的地址,a[2]+1实际上就相当于a[2][0]的地址再加一,也就是a[2][1] 9.以下正确的函数原型是: () (A)voidfun(int,int=0);(B)floatfun(x,y); (C)voidfun(*,&);(D)intfun(int=0,int); B,参数没有类型 C,参数类型不对 D,默认参数只能放在最后. 10.已知inta[3][2]={1,2,3,4};则a[1][1]的值是()。 (A).1(B).2(C).3(D).4 a[3][2]={1,2,3,4}相当于a[3][2]={{1,2},{3,4}}. 二.简答题(第1-4题每题2分,第5-6题每题4分,共16分) 1.表述问题“x和y都小于z”的C++表达式是? 参考答案: x 说明: 不能写成x 2.设有变量定义inty=123;执行语句cout< 参考答案: 173 说明: 按8进制输出 3.设有变量说明intw[]={1,3,5,7,9},*p=w;表达式*p+*(w+3)的值? 参考答案: 8 说明: *p=w,也就是p指向w[]的第一个位置,*p也就是1了. *(w+3),就是w的第三个位置上的值,也就是7了. 所以*p+*(w+3)=1+7=8; 4.函数原型intfun(int,int=0);中“int=0”的含义是什么? 参考答案: 在调用时如果不指定第二个参数,则第二个参数默认为0. 比如fun (2)等同于fun(2,0) 5.请说明形参和实参的区别。 参考答案: 主调函数中调用一个函数实时,函数名后面的括弧中的参数称为实参。 在定义函数,函数名后的括弧中的变量名称叫形式参数就是形参。 1.在未被调用时。 不占内存单元。 2.实参可以是常量,变量或者表达式。 但要求有确定的值。 调用时将实参的值赋给形参(如果是形参是数组名则传递数组首地址而不是数组的值) 3.在被定义的函数中,必须指定形参的类型 4.实参与形参的类型应相同或赋值兼容 6.for语句可以实现直到型循环,请画出流程控制框图。 参考答案: 三.分析程序,写输出结果(每小题6分,共24分) 1.#include voidmain() {intx=4; switch(2*x-1) {case3: cout< case5: cout<<2*x+1<<""; case7: cout<<3*x-1<<""; default: cout<<"default"; } cout<<"Switchend.\n"; } 参考答案: 11defaultSwitchend 说明: 2*x-1的值为7,所以直接跳到case7: 3*x-1的值为11.case7: 语句后面并无break;所以接续执行后面的default: 语句. 2.#include #include voidmain() {intm,k,i; for(m=1;m<=10;m+=2) {k=m/3; for(i=2;i<=k;i++) if(m%i)cout< } } 参考答案: 79 说明: m/3,m为整数,所以结果只取整数.如m=7,则m/3的值是2. m%i表示取模,如m=7,i=3,则m%i的值是1. 3.#include intfind(char*str,charc) {char*p=str;intn=0; while(*p&&*p! =c){p++;n++;} return*p? n: -1; } voidmain() {chara[]="programdesign"; cout< < } 参考答案: 38 4.#include voidf(intm) {cout< if(m>1) f(m-1); } voidmain() {f(4); cout< } 参考答案: 4321 四.根据程序功能填空。 (每空3分,共21分) 1.以下程序的功能是计算并输出两个复数之差。 #include structcomp{floatre;floatim;}; compM(___ (1)___)函数M的两个参数,从下面的代码看出x和y是没有声明的 {compz; z.re=x.re-y.re; z.im=x.im-y.im; return(___ (2)___);变量z就是x,y这两个复数的差 } voidmain() {compa,b,t; a.re=1;a.im=2; b.re=3;b.im=4; t=M(___(3)___);函数M的参数 cout<<"a-b=("< } (1)compx,compy (2)z (3)a,b 2.以下程序建立一个66矩阵a,然后把矩阵a的主对角线元素放在数组b中。 主函数输出b的元素。 #include __(4)___因为transform在定义之前就调用了,所以此处应该是transform的声明 voidmain() {inta[6][6],b[6],i,j; for(i=0;i<6;i++) for(j=0;j<6;j++)cin>>a[i][j]; transform(__(5)___);transform的两个参数,根据类型判断,a和b刚好 for(i=0;i<6;i++) cout< cout< } voidtransform(intx[6][6],int*p) {for(inti=0;i<6;i++) {*p=__(6)___;x[i][i] __(7)___;指针加一 } } (4)voidtransform(intx[6][6],int*p) (5)a,b (6)x[0][i] (7)p++ 五.程序设计(第一题5分,其余每题7分,共19分) 编写函数输出以下形状的图形,其中构成图形的符号和输出的行数通过参数传送。 # ## ## ####### #include usingnamespacestd; voidPrintTrangle(constcharsign,constintline) { for(inti=1;i<=line;i++) { for(intj=i;j cout<<""; for(intk=i;k<3*i-1;k++) { if((k==i||k==(3*i-2))||i==line) { cout< } else { cout<<""; } } cout<<"\n"; } } intmain(intargc,char*argv[]) { charsign='#'; intline=4; PrintTrangle(sign,line); return0; } 2.编写程序,打印如下杨辉三角。 1 11 121 1331 14641 #include usingnamespacestd; #defineLINE_COUNT5 intmain(intargc,char*argv[]) { intA[LINE_COUNT][LINE_COUNT]; inti,j; for(i=0;i { A[i][0]=1; A[i][i]=1; } for(i=2;i //从第三行开始 for(j=1;j //两重循环,j从1到i A[i][j]=A[i-1][j-1]+A[i-1][j];
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 参考答案