C语言程序设计A期末模拟试题三
更新时间:2023-05-16 03:04:01 阅读量: 实用文档 文档下载
C语言程序设计A期末模拟试题三
C语言程序设计A期末模拟试题三
一、单项选择题(每小题2分,共20分)
C++程序的基本模块为( )。
A. 表达式 B. 标识符 C. 语句 D. 函数
设x和y均为bool量,则x && y为真的条件是( )。
A. 它们均为真 B. 其中一个为真
C. 它们均为假 D. 其中一个为假
函数调用不可以( D )。
A. 出现在一个表达式中
B. 出现在执行语句中
C. 作为一个函数的实参
D. 作为一个函数的形参
假定变量m定义为“int m=7;”,则定义变量p的正确语句为( B )。
A. int p=&m; B. int *p=&m; C. int &p=*m; D. int *p=m;
假定有“struct BOOK{char title[40]; float price;}; BOOK *book;”,则不正确的语句为( A )。
A. BOOK *x=new book; B. BOOK x={"C++ Programming",27.0};
C. BOOK *x=new BOOK; D. BOOK *x=book;
假定变量x定义为“int x=5;”,要使rx成为x的引用(别名),rx应定义为( D )。
A. int rx=x; B. int rx=&x; C. int *rx=&x; D. int &rx=x;
面向对象方法的多态性是指( )。
A. 一个类可以派生出多个特殊类
B. 一个对象在不同的运行环境中可以有不同的变体
C. 针对一消息,不同的对象可以以适合自身的方式加以响应
D. 一个对象可以是由多个其他对象组合而成的
面向对象软件开发中使用的OOD表示( )。
A. 面向对象分析 B. 面向对象设计
C. 面向对象语言 D. 面向对象方法
在关键字private后面定义的成员为类的( )成员。
A. 私有 B. 公用 C. 保护 D. 任何
假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为( )。
A. int AA::a() B. int AA:a()
C. AA::a() D. AA::int a()
二、填空题(每题2分,共20分)
C++语言的编译单位是扩展名为__________的__________文件。
C++常数0345对应的十进制值为__________。
假定x是一个逻辑量,则!x || false的值为__________。
若a是一个字符数组,则从键盘上向该数组输入一个字符串的表达式为____ cin>>a ____。
当定义一个结构体变量时,系统分配给该变量的内存大小等于各成员所需内存大小的____总和___。
若p指向x,则____*p ____与x的表示是等价的。
已知语句“cout<<s;”的输出是“apple”,则执行语句“cout<<s+2;”的输出结果为__________。
若采用p->abc(y)表达式调用一个成员函数,在成员函数中使用的________就代表了类外的p指针。
重载插入运算符<<或抽取运算符>>时,其运算符函数不能被定义为类的________函数。
在一个或若干个类的基础上构造一个新类,被称为____
C语言程序设计A期末模拟试题三
_______。
三、程序填充题(对程序、函数或类中划有横线的位置,根据题意按标号把合适的内容填写到程序下面相应标号的后面。每小题6分,共24分)
1. 把从键盘上输入的一个大于等于3的整数分解为质因子的乘积。如输入24时得到的输出结果为“2 2 2 3”,输入50时得到的输出结果为“2 5 5”,输入37时得到的输出结果为“37”。
#include<iostream.h>
void main()
{
int x;
cout<<"请输入一个整数,若小于3则重输:";
do cin>>x; while(___(1)___);
int i=2;
do{
while(___(2)___) {
cout<<i<<' ';
x/=i;
}
___(3)___;
}while(i<x);
if(x!=1) cout<<x;
cout<<endl;
}
(1) (2) (3)
2. 主函数调用一个fun函数将字符串逆序。
#include<iostream.h>
#include<string.h>
___(1)___;
void main( ) {
char s[80];
cin>>s;
___(2)___;
cout<<”逆序后的字符串:”<<s<<endl ;
}
void fun(char ss[]) {
int n=strlen(ss);
for(int i=0; ___(3)____; i++) {
char c=ss[i];
ss[i]=ss[n–1–i];
ss[n–1–i]=c;
}
}
(1) (2) (3)
3. 已知一维数组类ARRAY的定义如下,构造函数的作用是把参数n的值赋给s,给v动态分配长度为n的数组空间,接着利用数组参数a初始化v所指向的数组。
class ARRAY{
int *v; //指向存放数组数据的空间
int s; //数组大小
public:
ARRAY(int a[], int n);
~ ARRAY(){delete []v;}
int size(){ return s;}
int& operator[](int n);
};
___(1)___ ARRAY(int a[], int n)
{
if(n<=0) {v=NULL;s=0;return;}
s=n;
v=___(2)___;
for(int i=0; i<n; i++) ___(3)___;
}
(1) (2) (3)
4. #include<iostream.h>
#include<stdlib.h>
class A {
int *a; int n; int MaxLen;
public:
A(): a(0), n(0), MaxLen(0) {}
A(int *aa, int nn, int MM) {
n=nn;
MaxLen=MM;
if(n>MaxLen) exit(1);
___(1)___; //由a指向长度为MaxLen的动态数组
for(int i=0; i<n; i++) a[i]=aa[i];
}
~A() {delete []a;}
int GetValue(int i) ___(2)___ //函数体返回a[i]的值
};
void main()
{
int b[10]={1,2,3,4,5,6,7,8,9,10};
A r(b,10,10);
int i,s=0;
for(i=0; i<10; i++); ___(3)___ //把r对象的a数据成员中的每个
//元素值依次累加到s中
cout<<"
s="<<s<<endl;
}
(1) (2) (3)
四、理解问答题(写出前两小题的程序运行结果和指出后两小题的程序(或函数)所实现的功能。每小题6分,共24
C语言程序设计A期末模拟试题三
分)
1. #include<iostream.h>
void main()
{
int a=2,b=5,c=0;
if(a+b>10) c=a*b; else c=3*a+b;
if(c<=20) cout<<c*c; else cout<<4+c-5;
cout<<endl;
a=a+b; b=a+b;c+=a+b;
cout<<"a,b,c="<<a<<','<<b<<','<<c<<endl;
}
2. #include<iostream.h>
#include<string.h>
void main() {
char a[5][10]={"student","worker","soldier","cadre","peasant"};
char s1[10], s2[10];
strcpy(s1,a[0]); strcpy(s2,a[0]);
for(int i=1;i<5;i++) {
if(strcmp(a[i], s1)>0) strcpy(s1,a[i]);
if(strcmp(a[i], s2)<0) strcpy(s2,a[i]);
}
cout<<s1<<’ ’<<s2<<endl;
}
3. #include<iostream.h>
#include<math.h>
void main()
{
int x,y;
cin>>x;
y=int(sqrt(x)); //sqrt(x)为求x的算术平方根
for(int i=1;i<=y;i++)
if(x%i==0) cout<<”x=”<<i<<’*’<<x/i<<endl;
}
4. IntNode* FindMax(IntNode *f)
{
if(!f) return NULL;
IntNode *p=f;
f=f->next;
while(f) {
if(f->data>p->data) p=f;
f=f->next;
}
return p;
}
假定IntNode的类型定义为:
struct IntNode {
int data; //结点值域
IntNode* next; //结点指针域
};
五、编程题(每小题6分,共12分)
1. 计算1+3+32+...+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。
2. 根据下面类中Reverse1函数成员的原型和注释写出它的类外定义。
class AA {
int* a;
int n;
int MS;
public:
void InitAA(int aa[], int nn, int ms) {
if(nn>ms) {cout<<"Error!"<<endl; exit(1);}
MS=ms;
n=nn;
a=new int[MS];
for(int i=0; i<MS; i++) a[i]=aa[i];
}
AA* Reverse1(); //通过动态存储分配得到一个对象,并动态分配
//a[MS]数组空间,要求该对象中的n和MS的值与*this中的
//对应成员的值相同,数组元素的值是按照*this中数组元
//素的相反次序排列得到的,要求该函数返回动态对象的地址。
};
C语言程序设计A期末模拟试题三
参考答案
单选题
1. D2. A3. D4.B5.A6.D7.C8.B9.A10.A
填空题
1. cpp、 程序 2. 2293. !x4. cin>>a 5. 总和6. *p
7. ple8. this9. 成员10. 继承(派生)
三、程序填充题
1. (1) x<3 (或x<=2) (2) x%i==0 (3) i++
2. (1) void fun(char ss[]) (2) fun(s) (3) i<n/2
3. (1) ARRAY:: (2) new int[n] (3) v[i]=a[i]
4. (1) a=new int[MaxLen] (2) {return a[i];} (3) s+=r.
GetValue(i)
四、理解问答题
1.
121
a,b,c=7,12,30
2.
worker cadre
3. 把从键盘上输入的一个整数x分解为所有可能的每两个因子之积。
4. 实现strcat函数的功能,把str2所指字符串连接到str1
C语言程序设计A期末模拟试题三
所指字符串的后面,并返回str1指针。
五、编程题
1. #include<iostream.h>
void main()
{
int i; //用i作为循环变量
int p=1; //用p作为累乘变量
int s=1; //用s作为累加循环变量
for(i=1;i<=10;i++) {p*=3; s+=p;}
cout<<s<<endl;
}
2.
AA* AA::Reverse1()
{
AA *px=new AA;
px->n=n; px->MS=MS;
px->a=new int[MS];
for(int i=0; i<n; i++) {
px->a[n-1-i]=
a[i];
}
return px;
}
***[JimiSoft: Unregistered Software ONLY Convert Part Of File! Read Help To Know How To Register.]***
正在阅读:
C语言程序设计A期末模拟试题三05-16
2017全国高考上海化学试卷及问题详解09-25
长春公交车设立专用车道事件之民众通过媒体的参与治理(1)07-17
大班语言活动说课稿【优秀7篇】03-24
关于对全市重点项目建设一线干部实行项目节点考核评价办法11-28
社团部工作总结201006-04
看图写话节约用水06-14
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 模拟试题
- 程序设计
- 期末
- 语言
- 小学德育工作总结
- 车辆买卖转让协议书可编辑
- 自考财务管理学0067 第一章
- 数据库原理与应用 考试复习资料整理
- 肖国祥 二级建造师 建设工程施工管理 精讲通关(3施工质量控制的内容和方法-施工准备和施工过程的质量控制
- 人教版小学二年级语文下册第一单元教学反思
- 石羊河流域天然植被适宜生态需水量估算_陈乐
- 环渤海经济圈经济发展问题探讨
- 领导干部对照检查材料
- 2015年吉林大学临床医学硕士复试线300分
- 昆山花桥酒店公寓勘察报告
- 盐酸二甲双胍缓释片说明书
- 蝴蝶定理与燕尾定理
- 高一政治生活第一单元测试卷
- 语文课堂教学渗透美术
- 肺癌健康教育2013-09
- 课题平面直角坐标系doc
- 工伤保险待遇由工伤保险基金和用人单位具体承担分配责任
- 联想收购摩托罗拉案例分析
- 浅析山东临沂工艺品出口所存在的问题及对策