Skip to content

第一周作业

答案会在下周更新的时候发布

  1. 使用vs创建一个程序,描述一下操作流程。观察一下创建解决方案和项目的时候,分别新建了哪些文件和文件夹?

  2. vs存在着普通状态和调试状态。如何进入调试状态?进入调试状态以后,调整好输出、监视、内存和调用堆栈窗口的布局。

  3. 如何查看一个变量的内存布局?描述一下操作行为。

  4. 下面的代码片段有错误,请指出来

C++
#include <stdio.h>;
#define MESSAGE = "Happy new year!"
  1. 测试下本地环境中,short\int\long\long long\unsigned int\分别需要多大的存储空间?使用了什么运算符?

  2. 使用字符字面值的字符模式、16进制模式、8进制模式表示字符c;使用整数来表示字符c,写出对应的代码。

  3. 如何将一个字符2转换成整数2?如何将一个字符A转换成字符a?

  4. 什么是缓冲区?我们使用了哪些缓冲区?

  5. 缓冲区的数据是先进先出还是后进先出?

  6. scanf函数取出标准输入缓冲区的数据,使用%d和%c有什么区别?

  7. scanf函数的返回值是什么?如何输入一个EOF控制符,此时scanf的返回值是多少?

  8. 整理已经学习过的printf和scanf相关的控制符,使用表格记录下来。

  9. 自学putchar函数和getchar函数。

  10. 完成OJ练习C语言学习 | hello

  11. 完成OJ练习C语言学习 | 计算a+b

  12. 使用VS的断点和调试工具,尝试理解下面代码的运行过程:

c++
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

// 此函数运行结果不符合预期,需要找出bug
void print_rectangle(int line, int column) {
    for (int i = 0; i < line; i++) {
        for (int j = 0; j < column; j++) {
            printf("#");
        }
    }
}

void test(void){
    printf("test!\n");
    printf("test!\n");
    printf("test!\n");
}

int main(void) {
    printf("hello world!\n");
    test();

    int a = 10;
    int b = 20;
    int sum = a + b;

    printf("请键盘输入一个int整数: ");
    int c;
    scanf("%d", &c);
    if (c > 0){
        printf("您输入的数大于0!\n");
    }else if (c < 0) {
        printf("您输入的数小于0!\n");
    }else{
        printf("您输入的数就是0!\n");
    }

    printf("接下来开始打印一个矩形,请输入要打印矩形的行数和列数: \n");
    int line;
    int column;
    scanf("%d", &line);
    scanf("%d", &column);
    print_rectangle(line,column);

    return 0;
}