慕课-程序设计与算法(大学先修课)-郭炜-第八九周练习题

这是一组程序设计与算法的练习题目,包括填空类型的问题,涉及输出结果预测、Memcpy函数应用、数组操作及内存交换等概念。挑战者需要解决包括输出特定序列、处理整数和字符串数组,以及编写求最大值和内存交换函数等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.下面程序片段的输出结果是 Hello ,请填空

#include <iostream>
using namespace std;
int main() {
    char s[] = "Hello";  
    char * p;
    for(p=s;*p!=NULL;p++)
        cout << * p ;
    return 0;
}

2.下面程序输出结果是 Tesla Tes 请填空

#include <iostream>
using namespace std;
void Print(const char * p1, const char * p2) 
{  
    for(;p1<p2;p1++)    
        cout << * p1;
}
int main()  
{
    const char * s = "Tesla123";
    Print(s,s+5);
    cout << endl;
    Print(s,s+3);
    cout << endl;

    return 0;
}

3.程序填空,使得输出结果为:
1,4,9,16,25,
h,e,l,l,o,!,

#include <iostream>
using namespace std;

void ForEach(void * a, int width, int num,
void f(void *)
)

{
    for(int i = 0;i < num; ++i) 
        f((char*)a+width*i);
}

void PrintSquare(void * p)
{
    int * q = (int*)p;
    int n = *q;
    cout << n * n << ",";
}
void PrintChar(void * p) {
    char * q = (char*)p;
    cout << *q << ",";
}
int main()
{
    int a[5] = {
  
  1,2,3,4,5};
    char s[] = "hello!";
    ForEach(a,sizeof(int),5,PrintSquare); 
    cout << endl;
    ForEach(s,sizeof(char),6,PrintChar);
    return 0;
}

4.Memcpy之一
输入:
第一行是整数t
接下来是t个整数
再接下来是t个不带空格的字符串,长度不超过20
输出:
按原样输出t个整数和t个字符串


                
### 关于郭炜教授的《程序设计算法程资源 #### 程概述 北京大学郭炜教授开设的《程序设计算法》系列程涵盖了从基础到高级的内容,旨在帮助学生掌握编程技能并理解算法原理。该程分为多个部分,其中一部分专注于C++面向对象程序设计[^1]。 #### 资源获取途径 对于希望深入了解这门的学生来说,有多种方式可以访问相关材料: - **在线平台**:程已在网易云堂上发布,网址为 http://www.icourse163.org/course/PKU-1001894005 。这里不仅提供了完整的视频讲座,还有配套的学习资料和练习题目。 - **官方教材**:虽然具体的书籍名称未提及,但通常这类高质量的教学会配有详细的讲义或教科书作为辅助学习工具。建议查阅北京大学出版社或其他权威出版机构发布的相关著作。 - **社区支持**:参由教师团队维护的技术论坛或社交媒体群组可以获得额外的帮助和支持。这些渠道往往也是第一时间了解最新更新的好地方。 #### 实际应用案例分析 为了更好地展示如何运用所学知识解决实际问题,在Coursera平台上也有类似的专项训练项目提供给学员实践的机会。例如,“期末考试 编程题#10”的例子展示了通过填充特定代码来实现预期功能的方法[^2]。 ```cpp #include <iostream> using namespace std; class A { public: static int count; A(int v = 0) { ++count; } virtual ~A() { --count; } }; int A::count = 0; class B : public A {}; void func(B b) {} int main() { A a1(5), a2; cout << A::count << endl; // 输出应为2 B b1(4); cout << A::count << endl; // 输出仍为2 func(b1); cout << A::count << endl; // 输出还是2 A* pa = new B(4); cout << A::count << endl; // 此时输出变为3 delete pa; cout << A::count << endl; // 最终恢复至2 } ``` 此段代码片段说明了静态成员变量`count`用于跟踪类实例的数量变化情况,并且当派生类的对象被创建或销毁时也会相应调整计数值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值