第12周-程序填空

/*
*copyright (c)2015,烟台大学计算机学院
*All rights reserved
*文件名称:project.cpp
*作者:孙春红
*完成日期:2015年5月23日
*版本号:v1.0
*
*问题描述:程序填空。
*输入描述:略。
*程序输出:略。
*/
#include <iostream>
#include <cstring>
using namespace std;
class Person
{
    char* name;  // 姓名
    int age;      // 年龄
public:
    Person() {}
    void setname(char na[])
    {
        name=new char [strlen(na)+1];   // ( 1)
        strcpy(name,na);
    }
    void setage(int a)
    {
        age=a;
    }
    char* getname()
    {
        return name;
    }
    int getage()
    {
        return age;
    }
};
class Leader:virtual public Person    // ( 2)
{
    char *job;     // 职务
    char *dep;     // 部门
public:
    Leader() { }
    void setjob(char jb[])
    {
        job=new char [strlen(jb)+1];      // ( 3)
        strcpy (job, jb);
    }
    void setdep(char dp[])
    {
        dep=new char [strlen(dp)+1]; ;      // ( 4)
        strcpy (dep, dp);
    }
    char *getjob()
    {
        return job;
    }
    char *getdep()
    {
        return dep;
    }
};
class Engineer: virtual public Person     // ( 5)
{
    char *major;     // 专业
    char *prof;      // 职称
public:
    Engineer () { }
    void setmajor(char maj [])
    {
        major=new char [strlen(maj)+1];       // ( 6)
        strcpy (major,maj);
    }
    void setprof(char pf[])
    {
        prof=new char [strlen(pf)+1];         // ( 7)
        strcpy (prof, pf);
    }
    char*getmajor()
    {
        return major;
    }
    char*getprof()
    {
        return prof;
    }
};
class chairman:public Leader,public Engineer{} ;            // ( 8)
int main()
{
    chairman c;
    c.setname("张三");
    c.setage(42);
    c.setjob("处长");
    c.setdep("技术处");
    c.setmajor("轮机设计");
    c.setprof("高级工程师");
    cout <<c.getname() << "," <<c.getage()<<" 岁,担任" <<c.getdep() <<c.getjob() <<endl;
    cout <<c.getprof() << ",从事" << c.getmajor()<< "专业" << "。 " << endl;
    return 0;
}


运行结果:

知识点总结:

虚基类在继承间接共同积累时只保留一份成员,学会虚基类的初始化以及了解它的作用

× 当前作业 数组(二维数组)实验 - 25软件7-8 一维数组强化练习-25软件7-8 一维数组--基础编程训练 - 25软件7-8班 函数的嵌套、递归调用+变量作用域 25软7-8 函数练习 1-25软件7-8 补交中 基本控制结构的应用-循环结构程序设计2 - 25软件7-8 补交中 历史作业 基本控制结构的应用-循环结构程序设计1 - 25软件7-8 基本控制结构-选择结构2- 25软件7-8 基本控制结构 - 选择结构 - 25软件7-8 第二: 基本控制结构的应用-顺序结构程序设计 2 第二: 顺序结构程序设计 1 【第一实验】编程基础--平台适应性练习 - 25软7-8班 函数的嵌套、递归调用+变量作用域 25软7-8 作业时间:2025-11-07 19:00:00 至 2025-11-30 00:00:00 作业满: 100.00 ,共 11道 题 填空题 1. 已提交 以下不正确的说法是 D . (A) 在不同函数中可以使用相同名字的变量 (B) 形式参数是局部变量 (C) 在函数内定义的变量只在本函数范围内有效 (D) 在函数内的复合语句中定义的变量在本函数范围内有效 2. 已提交 给出下述程序的执行结果 111 #include <stdio.h> int x=2; void increment(); int main() { int x=8; increment(); x++; increment(); x++; increment(); return 0; } void increment() { int x=0; x++; printf("%d,",x); } 编程题 # 题目 点击题目标题,进入答题 值 批阅信息 1. 求最大公约数与最小公倍数 20.00 下载源文件 最后一次提交时间: 2025-11-18 09:09:41 得20.00 共有测试数据:5 平均占用内存:1.404K 平均CPU时间:0.00380S 平均墙钟时间:0.00378S 测试数据 评判结果 测试数据1 完全正确 测试数据2 完全正确 测试数据3 完全正确 测试数据4 完全正确 测试数据5 完全正确 2. 求解组合数 20.00 下载源文件 最后一次提交时间: 2025-11-24 20:48:44 得20.00 共有测试数据:5 平均占用内存:1.404K 平均CPU时间:0.00337S 平均墙钟时间:0.00336S 测试数据 评判结果 测试数据1 完全正确 测试数据2 完全正确 测试数据3 完全正确 测试数据4 完全正确 测试数据5 完全正确 3. 简单递归函数设计-求和 20.00 下载源文件 最后一次提交时间: 2025-11-24 20:59:50 得20.00 共有测试数据:4 平均占用内存:1.405K 平均CPU时间:0.00361S 平均墙钟时间:0.00360S 测试数据 评判结果 测试数据1 完全正确 测试数据2 完全正确 测试数据3 完全正确 测试数据4 完全正确 程序片段编程题 # 题目 点击题目标题,进入答题 值 批阅信息 1. 递归猴子吃桃 19.00 下载完整的源文件 最后一次提交时间: 2025-11-11 10:54:42:19.00 共有测试数据:5 平均占用内存:1.394K 平均运行时间:0.00475S 测试数据 评判结果 测试数据1 完全正确 测试数据2 完全正确 测试数据3 完全正确 测试数据4 完全正确 测试数据5 完全正确 单选题 1. 函数Sum(int n)是用递归方法计算下面的公式,请补充程序中缺少的内容。 int Sum(int n) { if (n <= 0) printf("data error\n"); if (n == 1)_________________; else return ____________________; } A. 第4行: return 0 第5行: Sum(n) B. 第4行: return 1 第5行: n+Sum(n-1) C. 第4行: return 1 第5行: Sum(n-1) D. 第4行: return 0 第5行: Sum(n-1) 2. 下列说法错误的是 。 A.函数既可以嵌套定义,也可以嵌套调用。 B.函数直接或间接调用自己,称为递归调用。 C.一个递归算法必须包含一般条件和基本条件两个基本要素。 D.基本条件是一个能控制递归过程结束的条件,是递归的出口,它本身不再使用递归的方式来定义。一般条件定义了递归关系,控制递归调用向着基本条件的方向转化。 3. 写出下面程序的运行结果 #include <stdio.h> void Bin(int x) { if (x/2 > 0) Bin(x/2); printf("%d\n", x%2); } int main() { Bin(12); return 0; } A. 6 3 1 0 B. 1 1 0 0 C. 0 0 1 1 D. 6 3 1 1 4. 程序运行后的输出结果是 #include <stdio.h> int Fun(int n) { if (n==1) return 1; else return Fun(n-1)+1; } int main() { int i,j=0; for(i=1;i<3;i++) j+=Fun(i); printf("%d\n",j); return 0; } A. 3 B. 2 C. 4 D. 1 5. 子函数Incre()的功能是,利用静态变量,使子函数的输出值能够随调用次数的增加依次为: 第1次调用,输出:的结果 第2次调用,输出:的结果 第3次调用,输出:的结果 ..... 在下面的程序中,对子函数Incre()进行了两次调用,若使程序的输出结果是: 2 6 请补充完整空白处缺少的代码。 #include <stdio.h> int x=3; void Incre(); int main() { int i; for (i=1;_______;i++) Incre(); return 0; } void Incre() { ___________; x*=x+1; printf("%d\n",x); } A. 第7行: i<=x 第13行: static int x=0 B. 第7行: i<x 第13行: int x=1 C. 第7行: i<=x 第13行: int x=0 D. 第7行: i<x 第13行: static int x=1
11-26
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值