C语言程序设计A期末模拟试题.docx
- 文档编号:28816803
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:31
- 大小:31.84KB
C语言程序设计A期末模拟试题.docx
《C语言程序设计A期末模拟试题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计A期末模拟试题.docx(31页珍藏版)》请在冰豆网上搜索。
C语言程序设计A期末模拟试题
文件排版存档编号:
[UYTR-OUPT28-KBNTL98-UYNN208]
C语言程序设计A期末模拟试题
C语言程序设计A期末模拟试题一
一、单项选择题(每小题2分,共20分)
1.由C++目标文件连接而成的可执行文件的缺省扩展名为()。
A.cppB.exeC.objD.lik
2.x>0&&x<=10的相反表达式为()。
A.x<=0||x>10B.x<=0&&x>10
C.x<=0||x<=10D.x>0&&x>10
3.在下面的一维数组定义中,哪一个有语法错误。
(C)
A.inta[]={1,2,3};B.inta[10]={0};
C.inta[];D.inta[5];
4.假定p是具有double类型的指针变量,则表达式++p使p的值(以字节为单位)增加(C)。
A.1B.4C.sizeof(double)D.sizeof(p)
5.当#include后面的文件名用双引号括起来时,寻找被包含文件的方式是(B)。
A.直接按系统设定的标准方式搜索目录
B.先在源程序所在目录搜索,再按系统设定的标准方式搜索目录
C.仅仅搜索源程序所在目录
D.搜索当前逻辑盘上的所有目录
6.假定指针变量p定义为“int*p=newint(100);”,要释放p所指向的动态内存,应使用语句(A)。
A.deletep;B.delete*p;C.delete&p;D.delete[]p;
7.假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为()。
A.px(a)B.px[a]C.px->aD.
8.栈具有()的操作特性。
A.先进先出B.先进后出C.进出无序D.进出任意
9.对于任一个类,用户所能定义的构造函数的个数至多为()。
A.0B.1C.2D.任意个
10.下列对派生类的描述中错误的说法是:
()。
A.派生类至少有一个基类
B.派生类可作为另一个派生类的基类
C.派生类除了包含它直接定义的成员外,还包含其基类的成员
D.派生类所继承的基类成员的访问权限保持不变
二、填空题(每题2分,共20分)
1.C++语言是在_________语言的基础上发展起来的。
2.当执行cin语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。
3.假定x是一个逻辑量,则x&&false的值为__________。
4.元素类型为char的二维数组a[10][30]共占用________字节的存储空间。
5.局部变量具有局部生存期,存放在内存的______栈______区中。
6.已知语句“cout<
”,则语句“cout<<*p;”输出的是__________。
7.对类中常量成员的初始化是通过在构造函数中给出的______________来实现的。
8.在重载一个单目运算符时,参数表中没有参数,说明该运算符函数只能是类的_____________。
9.假定用户为类AB定义了一个构造函数“AB(intaa):
a(aa){}”,则定义该类的对象时,有________种定义格式。
10.在每个成员函数中,隐含的第一个参数的参数名为________。
三、程序填充题(对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面。
每小题6分,共24分)
1.斐波那契数列的第1和第2个数分别为0和1,从第三个数开始,每个数等于其前两个数之和。
求斐波那契数列中的前20个数,要求每行输出5个数。
#include<>
voidmain(){
intf,f1,f2,i;
cout<<”斐波那契数列:
\n”;
f1=0;f2=1;
cout< for(i=3;i<=20;i++){ f=______ (1)______; cout< if(_____ (2)______)cout< f1=f2; f2=____(3)_______; } cout< } (1) (2)(3) 2.对数组a[n]按升序进行的选择排序算法 voidSelectSort(inta[],___ (1)___) { inti,j,k; for(i=1;i #include<> classAA{ inta[10]; intn; public: voidSetA(intaa[],intnn);#include<> #include<> voidmain() { inta[8]={25,48,32,85,64,18,48,29}; intmax,min; max=min=a[0]; for(inti=0;i<8;i++){ if(x>a[i])max=a[i]; if(x } cout<<"max: "< cout<<"min: "< } 2.#include<> voidmain() { for(inti=1,s=0;i<20;i++){ if(i%2==0||i%3==0)continue; cout< s+=i; } cout< } 3.voidtrans(intx) { chara[10]; inti=0,rem; do{ rem=x%16; x=x/16; if(rem<10)a[i]=48+rem;char*f(char*s){ intn=strlen(s); char*r=newchar[n+1]; for(inti=0;i if(s[i]>='a'&&s[i]<='z')r[i]=s[i]-'a'+'A'; elser[i]=s[i]; r[n]=’\0’; returnr; } 五、编程题(每小题6分,共12分) 1.求出从键盘上输入的10个整数中的最大值,要求输入变量用x表示,存储最大值的变量用max表示。 2.根据下面类中Reverse函数成员的原型和注释写出它的类外定义。 classAA{ int*a; intn; intMS; public: voidInitAA(intaa[],intnn,intms){ if(nn>ms){cout<<"Error! "< (1);} MS=ms; n=nn; a=newint[MS]; for(inti=0;i } AA*Reverse();B2.A3.C 一、填空题 1.C2.空白3.false(或0)4.3005.栈7.初始化表 8.成员函数9.110.this 三、程序填充题 1. (1)f1+f2 (2)i%5==0(3)f 2. (1)intn (2)k=j(3)a[k]=x 3. (1)AA: : MaxA() (2)x=a[i](3)returnx 4. (1)A(intaa): a(aa) (2)A*p(3)p=newA(5) 四、理解问答题 1. max: 85 min: 18 2. 157111337 3. 此函数用于把十进制整数x转换为十六进制数字串输出 4. 根据参数s所指向的字符串,生成一个由r所指向的新字符串并返回,该字符串使s字符串中的小写字母均变为大写。 五、编程题 1.#include<> voidmain() { intx,max; cin>>x; max=x; for(inti=0;i<9;i++){ cin>>x; if(x>max)max=x; } cout<<"max: "< } 2. AA*AA: : Reverse() { inti,x; for(i=0;i x=a[i];a[i]=a[n-1-i];a[n-1-i]=x; } returnthis; } C语言程序设计A期末模拟试题二 一、单项选择题(每小题2分,共20分) 1.编写C++程序一般需经过的几个步骤依次是()。 A.编译、编辑、连接、调试 B.编辑、编译、连接、调试 C.编译、调试、编辑、连接 D.编辑、调试、编辑、连接 2.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为(A)。 A.0B.4C.8D.6 3.函数重载是指(A)。 A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C.两个以上的函数名字不同,但形参的个数或类型相同 D.两个以上的函数取相同的函数名,并且函数的返回类型相同 4.假定p指向的字符串为”string”,若要输出这个字符串的地址值,则使用(D)。 A.cout<<*s;B.cout< 5.在类作用域中能够通过直接使用该类的()成员名进行访问。 A.私有B.公用C.保护D.任何 6.假定AA为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中访问它,则书写格式为()。 A.aB.AA: : aC.a()D.AA: : a() 7.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾(即最后一个)元素的位置为()。 A.length+1B.first+length C.(first+length-1)%MSD.(first+length)%MS 8.假定AB为一个类,则执行“ABr1=r2;”语句时将自动调用该类的()。 A.无参构造函数B.带参构造函数C.赋值重载函数D.拷贝构造函数 9.双目运算符重载为普通函数时,其参数表中应带有()个参数。 A.0B.1C.2D.3 10.当派生类中有和基类一样名字的成员时,一般来说,()。 A.将产生二义性B.派生类的同名成员将覆盖基类的成员 C.是不能允许的D.基类的同名成员将覆盖派生类的成员 二、填空题(每题2分,共20分) 1.行尾使用注释的开始标记符为__________。 2.设enumPrintstatus{ready=2,busy,error};则cout< 3.重载一个函数的条件是: 该函数必须在参数的个数或参数的___类型_上与其它同名函数有所不同。 4.定义一个函数模板要用到的第一个修饰符是_template_。 5.与结构成员访问表达式p->name等价的表达式是____________。 6.如果一个派生类的基类不止一个,则这种继承称为____________。 7.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则插入一个新元素的位置为__________。 8.向一个队列中插入元素就是把该元素放到________元素的后一位置上。 9.假定用户只为类AB定义了一个构造函数“AB(): a(0),b(0){}”,则定义该类对象x的定义语句“ABx;”是_________(正确/错误)的。 10.除了__________运算符外,其他重载的运算符都可以被派生类继承。 三、程序填充题(对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面。 每小题6分,共24分) 1.统计字符串中英文字母个数的程序。 #include<> intcount(charstr[]); voidmain(){ chars1[80]; cout<<”Enteraline: ”; cin>>s1; cout<<”count=”< } intcount(charstr[]){ intnum=0;从键盘上输入一个正整数,然后把它转换成的二进制数的每一位存放到一维数组中,最后输出该二进制数。 注意二进制数的存放是按照从低位到高位的次序进行的。 #include<> voidmain() { intx; cout<<"输入一个整数: "; cin>>x; inta[20],k=0,r; do{ r=x%2; a[k++]=r; x=___ (1)___; }while(___ (2)___); for(--k;k>=0;k--)___(3)___; cout< } (1) (2)(3) 3.假定有定义为“structNODE{intdata;NODE*next;};”,下面算法根据table数组中的n个元素建立一个表头指针为L的链表,链表中结点值的顺序与数组元素值的顺序正好相反。 voidf6(NODE*&L,inttable[],intn) { L=NULL; if(n<=0)return; inti=0; NODE*p; while(___ (1)___){ p=newNODE; p->data=___ (2)___; p->next=L; ___(3)___; i++; } } (1) (2)(3) 4.已知一个利用数组实现栈的类定义如下: constintARRAY_SIZE=10; classStack{ public: voidInit(){top=-1;}#include<> constintN=5; voidmain() { inti,p=1,s=0; for(i=1;i p=p*i; s=s+p; cout< cout< } } 2.#include<> #include<> classCD{ char*a; intb; public: voidInit(char*aa,intbb) { a=newchar[strlen(aa)+1]; strcpy(a,aa); b=bb; } char*Geta(){returna;} intGetb(){returnb;}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 期末 模拟 试题