第一周作业答案
- 使用vs创建一个程序,描述一下操作流程。观察一下创建解决方案和项目的时候,分别新建了哪些文件和文件夹?
创建解决方案时,会在文件系统当中创建一个同名文件夹
创建项目时,会在解决方案文件夹里面创建一个同名文件夹,并且内部有源文件、头文件和资源文件等文件夹- vs存在着普通状态和调试状态。如何进入调试状态?进入调试状态以后,调整好输出、监视、内存和调用堆栈窗口的布局。
打断点之后再点击开始调试即可进入调试状态- 如何查看一个变量的内存布局?描述一下操作行为。
先在监视窗口输入 &变量名 ,然后根据监视窗口里面的地址值去访问内存窗口- 下面的代码片段有错误,请指出来
C++
#include <stdio.h>; // 不要分号
#define MESSAGE = "Happy new year!" //不要等于号- 测试下本地环境中,short\int\long\long long\unsigned int\分别需要多大的存储空间?使用了什么运算符?
short 2
int 4
long 4
long long 8
unsigned int 4
使用sizeof运算符- 使用字符字面值的字符模式、16进制模式、8进制模式表示字符c;使用整数来表示字符c,写出对应的代码。
c
#include <stdio.h>
int main(){
char ch1 = 'c';
char ch2 = 0x63;
char ch3 = 0143;
char ch4 = 99;
printf("ch1 = %c, ch2 = %c, ch3 = %c, ch4 = %c\n",
ch1,ch2,ch3,ch4);
return 0;
}- 如何将一个字符2转换成整数2?如何将一个字符A转换成字符a?
c
#include <stdio.h>
int main(){
char ch1 = '2';
int i = ch1 - '0';
char ch2 = 'A';
char ch3 = ch2 + 32;
printf("i = %d, ch3 = %c\n", i, ch3);
return 0;
}- 什么是缓冲区?我们使用了哪些缓冲区?
缓冲区本质上是一块临时存储数据的内存区域(一般是在内存中分配的),它在速度较慢的内存和 I/O 设备与速度较快的 CPU 之间起到桥梁的作用。
stdin是标准输入缓冲区,和scanf getchar等函数相关
stdout是标准输出缓冲区,和printf putchar等函数相关- 缓冲区的数据是先进先出还是后进先出?
先进先出- scanf函数取出标准输入缓冲区的数据,使用%d和%c有什么区别?
%d 读取整数,会忽略前置空白字符
%c 读取字符,不会忽略前置空白字符- scanf函数的返回值是什么?如何输入一个EOF控制符,此时scanf的返回值是多少?
scanf返回值是整数,是成功读取的占位符的个数
在Windows当中按下(多次)ctrl+z可以输入EOF,此时scanf返回-1- 整理已经学习过的printf和scanf相关的控制符,使用表格记录下来。
略- 自学putchar函数和getchar函数。
略- 完成OJ练习C语言学习 | hello
c
#include<stdio.h>
int main() {
printf("hello wangdao\n");
return 0;
}- 完成OJ练习C语言学习 | 计算a+b
c
#include <stdio.h>
int main(){
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",a+b);
return 0;
}16.使用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(); //这里需要使用F11才能进入到函数里面
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;
}