王道C语言第一周作业

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

创建程序的时间跟着vs的指示创建就行了,解决方案我觉得是一个问题的解决所需要的所有项目的容器,创建解决方案,注意路径 。创建解决方案后面会产生一个.slnx的文件,以及一个x64的文件夹,这两个的作用暂时没明白

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

关键在这里有个问题如果有太多的文件在项目中要先把目标文件设置成启动文件,否则不会执行当前文件,断让是执行到上一行。在调试下找window就可以监视目标窗口了

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

首先先把变量添加到监视panel上,然后复制变量的ptr地址到内存panel上就会显示变量的地址和值,byte字节是数据的最小单位是两个16位数,8个bits,64位就是地址表达的最大范围是64个bits

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

cpp 复制代码
#include <stdio.h>;
#define MESSAGE = "Happy new year!"

<> 后面不加;宏定义是不用=号的 直接空格;

测试下本地环境中,short\int\long\long long\unsigned int\分别需要多大的存储空间?使用了什么运算符?

short 2 char 1int4 long8 long long16 单位是bytes

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

cpp 复制代码
char c1 = 'c';  // 直接使用字符 'c'
printf("字符字面值: %c\n", c1);  // 输出: c
cpp 复制代码
char c2 = '\x63';  // 十六进制转义序列
printf("十六进制模式: %c\n", c2);  // 输出: c
cpp 复制代码
char c4 = 99;  // 直接使用ASCII码的十进制值
printf("整数模式: %c\n", c4);  // 输出: c
cpp 复制代码
char c3 = '\143';  // 八进制转义序列
printf("八进制模式: %c\n", c3);  // 输出: c

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

cpp 复制代码
int main()
{
	char ch = 'A' +32;
	int x = 0 - '0' + '2';
	printf("整数%d\t小写%c",x,ch
	);
	return 0;
}

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

缓冲区旨在解决速度不不同,我们有stdi stdo缓冲区。有点像上下游流速不同我们设置蓄水池

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

先进先出,这是自己实验出来的,为什么不是很了解。

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

scanf是读取stdi中的数据,%d%f会忽略所有前置的空白字符但是%d%c不会忽略前置空白字符,如果想忽略的话需要自己在占位符之间加一个空符,而且%d%f在遇到后置字符会停下。

cpp 复制代码
scanf("%d %c", &i, &ch);//%c忽略前面的的所有空白

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

int类型 表示成功写入变量的数量,EOF三个ctrlz,但是我没太理解什么是Eof,返回的是-1;

ctrlz表示的是输入流的结束。

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

自学putchar函数和getchar函数

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

cpp 复制代码
#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;
}
cpp 复制代码
#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("#");
        }//这里有问题因为没有换行所以这里所有的#会一行输出
        printf("\n");
    }
}

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;
}
//逐语句是每次执行一条语句,逐过程是逐一个过程,语句可以跳进函数内部,但是过程只能函数过程
相关推荐
涉密IT资质笔记几秒前
涉密资质投入产出分析模型:时间成本、四块成本构成与 ROI 决策框架
java·开发语言·算法
北风toto13 分钟前
KMP 算法详解:从暴力匹配到 O(n+m) 的字符串搜索
java·开发语言·算法
william_yangshun14 分钟前
WordCraft 观察:纯 Rust 重写文字处理器,把文档变成可编程对象
开发语言·后端·rust·文档自动化
沫璃染墨15 分钟前
《从零入门数据结构与算法(二):线性表详解——从顺序表原理到静态与动态实现》
c语言·数据结构·顺序表
dtq042418 分钟前
C++ - 变量
开发语言·c++
撸串-研究生20 分钟前
面向景区的综合服务管理平台设计——以稻城亚丁景区为例【附源码】
java·开发语言·vue.js·前后端分离·稻城亚丁景区
wuyk55521 分钟前
样章-第03讲-FreeRTOS在16KB-RAM上的裁剪与陷阱
c语言·开发语言·stm32·单片机·嵌入式硬件·物联网·系统架构
爱读书的小胖21 分钟前
Codewars Sum of a Sequence Hard Core Version C 解题分析
c语言·数据结构·算法
kiros_wang27 分钟前
网络状态监听&WiFi信息获取:弱网提示、断网兜底方案
开发语言·网络·php
geovindu29 分钟前
rust: pool Pattern (续)
开发语言·后端·设计模式·rust·对象池简写模式