C语言程序设计A期末模拟试题三(2)
时间:2026-01-16
时间:2026-01-16
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
上一篇:校友会主持稿(串词)
下一篇:气动工具使用培训