下面的内容是回答视频中的作业
为什么说计算机是二傻子。
计算机处理代码流程如下
我们的计算机负责处理运算的大部分都是中央处理器CPU,而中央处理器只能识别二进制代码,所以当你给中央处理器一条代码而不是二进制代码时,中央处理器无法处理。只有将代码翻译或编译成其可执行的内容中央处理器才会执行,而中央处理器只能识别二进制内容所以我认为这是计算机被称为二傻子的原因。同时在我们写完代码调试时需要编译也是这个原因,
C语言源代码转换为汇编语言的过程叫什么
答:编译,编译是指将源代码转换为二进制文件,就是中央处理器能够直接识别并运行的机器语言。
编译型语言和解释型语言的区别是什么
答:一个是将源码转换为二进制文件,另一个是运行时逐句翻译为机器能识别的语言。
编译型语言的运行速度比较快,因为中央处理器是直接执行转换好的二进制文件,但兼容性较差一些。而解释型语言运行速度较慢,需要将每一句代码都翻译给中央处理器,所以速度较慢,但是其兼容性高。
在linux系统上编译的c语言程序是否能直接在windows上运行
答:不能直接运行,因为Linux与windows中一些地方还是不同,c语言程序不能直接运行,还需要修改一下才能运行。
解释型编程语言如何实现夸平台的
答:解释型语言是将代码通过翻译器翻译为机器可识别的语言,写好的源码只需要借助不同平台的翻译器即可实现夸平台。
莫斯密码的原理其实是什么
莫斯密码是将信号转换为"."和“-”,这两者不同的组合方式对应着不同的字母。当收到别人发过来的莫斯密码时只需要将其对照着转换表,转换出来即可。
视频中的那段莫斯密码意思是
翻译过来就是:qinmenchendirenchifanfaqijingong
亲们,趁敌人吃法发起进攻
下面是学习完第一课抄写的代码
#include<io.h>
#include<direct.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 256
long total;
int countLines(const char *filename);
void findAllCodes(const char *path);
void findALLFiles(const char *path);
int countLines(const char *filename)
{
FILE *fp;
int count = 0;
int temp;
if ((fp = fopen(filename,"r")) == NULL)
{
fprintf(stderr, "can not opne the file:%s\n", filename);
return 0;
}
while ((temp = fgetc(fp)) != EOF)
{
if (temp == '\n')
{
count++;
}
}
fclose(fp);
return count;
}
void findAllCodes(const char *path)
{
struct _finddata_t fa;
long handle;
char thePath[MAX], target[MAX];
strcpy(thePath,path);
if ((handle = _findfirst(strcat(thePath,"/*.c"), &fa)) != -1L)
{
do
{
sprintf(target,"%s/%s",path, fa.name);//%s与%s中间有一个“/”连接注意不可缺少,我抄写的时候因为漏掉这个符号导致程序一直运行不正确。
total += countLines(target);
} while (_findnext(handle, &fa) == 0);
}
_findclose(handle);
}
void findALLDirs(const char *path)
{
struct _finddata_t fa;
long handle;
char thePath[MAX];
strcpy(thePath, path);
if ((handle = _findfirst(strcat(thePath,"/*"), &fa)) == -1L)
{
fprintf(stderr, "The path %s is wrong\n", path);
return;
}
do {
if (!strcmp(fa.name, ".") || !strcmp(fa.name, ".."))
continue;
if (fa.attrib == _A_SUBDIR)
{
sprintf(thePath, "%s/%s", path, fa.name);//%s与%s中间有一个“/”连接注意不可缺少,我抄写的时候因为漏掉这个符号导致程序一直运行不正确。
findAllCodes(thePath);
findALLDirs(thePath);
}
} while (_findnext(handle, &fa) == 0);
_findclose(handle);
}
//为什么说计算机是二傻子,答因为计算机只能按照设定好的方式运行,不能随便输入内容。
//cpu唯一认识的语言是什么语言,答是机器语言
//c语言编写的源代码转成汇编语言的过程叫什么,答叫编译,指将c语言编译为汇编语言,成为机器可直接执行的语言
//编译语言和解释语言的区别是什么,答,编译语言是将高级语言编译为机器可直接执行的二进制语言,而解释语言是不需要编译的,直接将高级语言翻译成机器可执行的语言每一行每一句的翻译
//在linux系统上编译的c语言程序是否能直接在windows上运行,答不可以直接运行,应当编译一下看看是否可以运行,如果不行就修改一下
//解释型编程语言如何实现夸平台的?,答:解释型语言是将语言一句句翻译给机器,使其变成可供cpu执行的程序.
//莫斯密码的原理其实是什么;答:莫斯密码是将字符转换为有点和线组成的符号,并且每个符号都有其特定的莫斯符号
//视频中的那段莫斯密码意思是;亲们趁敌人吃饭时发动进攻。
int main()
{
char path[MAX] = ".";
printf("计算中...\n");
findAllCodes(path);
findALLDirs(path);
printf("目前,您一共写了 %ld 行代码!\n\n", total);
system("pause");
return 0;
}