鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[课后作业] S1E2:第一个程序 | 课后测试题及答案

    [复制链接]
发表于 2024-3-1 20:22:34 | 显示全部楼层
零基础入门学习C语言封面
《零基础入门学习C语言》
小甲鱼 著
立即购买
666
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-3-2 09:40:30 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-3-2 09:42:02 | 显示全部楼层
6
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-3-2 15:29:41 | 显示全部楼层
1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-3-2 16:21:15 | 显示全部楼层

#include <io.h>
#include <direct.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.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 open 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);
                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,".");
            findAllCodes(thePath);
            findALLDirs(thePath);
        }
    }while (_findnext(handle,&fa) == 0);

    _findclose(handle);
}

int main()
{
    char path[MAX] = ".";

    printf("计算中……\n");

    findAllCodes(path);
    findALLDirs(path);

    printf("目前您总写了%ld行代码!\n\n",total);
    system("pause");

    return 0;
   
}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-2 16:48:08 | 显示全部楼层
0.CPU只懂二进制的0和1
1.机器码即机器语言
2.编译
3.编译型语言是将源代码被编译成机器代码,就可以被CPU执行,解释型语言不直接编译成机器代码,而是将源代码编译为中间代码,然后发给解释器,由解释器逐句翻译给CPU
4.不能
5.解释型语言不直接将源代码编译成机器代码,而是将源代码编译为中间代码,然后发给解释器,由解释器逐句翻译给CPU
6.将点横组合对着莫斯密码表翻译成铭文的过程
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-2 17:41:16 | 显示全部楼层
0 计算机只看得懂0和1
2汇编语言
3编译型代码需要编译,解释型代码转换为中间码
4不一定
5转换为中间码
6查表,摩斯密码编码表
7???
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-2 18:53:26 | 显示全部楼层
1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-3-2 19:31:14 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-3-2 22:45:18 | 显示全部楼层
0. 为什么我们说计算机其实是“二傻子”?
计算机只懂得二进制的0和1

1. CPU 唯一认识的语言是什么语言?
编程语言

2. C 语言编写的源代码转换为汇编语言的过程叫什么?
编译

4. 在 Linux 系统上用 C 语言编译的可执行程序,是否能在 Windows 系统上执行?
可以

5. 解释型编程语言是如何实现跨平台的?
解释型语言将源代码转化为中间代码,然后发送给解释器,由解释器逐句翻译给CPU执行

6. 莫斯密码的原理其实是什么?
查表

7. 视频中小甲鱼“故弄玄虚”的那段密文还原后是什么内容(中文)?
q i n m e n  亲们趁敌人吃饭时发动进攻 ...?
c h e n d
i r e n c
h i f a n
s h i f
a d o n g
j i n g o n g
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-3 10:45:02 | 显示全部楼层
i
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-3-3 12:44:50 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-3-3 13:40:28 | 显示全部楼层
0.因为计算机只能识别0和1
1.机器码
2.编译
3.直接执行和间接执行
4.可以
5.通过解释器
6.编码和解密
7.亲们,趁机敌人吃饭时,发动进攻
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-3 13:53:54 | 显示全部楼层
1.机器·语言
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-3 14:44:41 | 显示全部楼层
本帖最后由 wogany 于 2024-3-3 14:49 编辑


                               
登录/注册后可看大图

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-3 15:21:15 | 显示全部楼层
查看答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-3 16:37:00 | 显示全部楼层
w
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-3-3 18:15:28 | 显示全部楼层
答案
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-3-3 20:23:07 | 显示全部楼层
0. 为什么我们说计算机其实是“二傻子”?4g<+05O
计算机的“大脑”是 CPU,CPU 负责计算机大部分日常的计算功能,而 CPU 原理上只认识 0 和 1。
1. CPU 唯一认识的语言是什么语言?
机器语言
2. C 语言编写的源代码转换为汇编语言的过程叫什么
1. 预处理 -> 2.词法分析 -> 3.语法分析 -> 4.语义分析 -> 5.优化 -> 6.链接
3. 编译型语言和解释型语言的本质区别是什么?
U编译型语言是运行二进制内容,所以一旦CPU指令系统改变,那么之前的二进制文件可能运行不了。 比如,如果到其他硬件平台上运行,就可能出现错误,就需要根据该平台重新编译出新的二进制文件。 所以可移植性、平台兼容性比价差。 而解释型语言则没有弄成什么二进制内容,而是在需要的时候才开始编译、运行。
4. 在 Linux 系统上用 C 语言编译的可执行程序,是否能在 Windows 系统上执行?
不能。 因为可执行文件在执行之前,操作系统要有一些准备工作,因为不同的操作系统,准备工作是不同的,所以可执行文件的格式不完全相同。 比如 Windows 上大部分可执行文件为 PE 格式,而 Linux 上大部分可执行文件为 ELF 格式。
5. 解释型编程语言是如何实现跨平台的?
1.java虚拟机可以理解为各个平台的解释器,和自己封装的系统调用。 2.go语言通过交叉编译转换成平台相关指令,通过某种方式(没有深入研究)提供统一的系统调用接口。 3.javascript 是解释型语言,本身就是平台无关的。 4.C语言在各个平台都有编译器,通过标准库函数保证可移植性。
6. 莫斯密码的原理其实是什么?
莫斯密码使用不同长度的点和线来表示字母、数字和标点符号。 其中,点的时间长度为一单位,线的时间长度为三单位。 密码之间的时间间隔为一单位,不同字符的时间间隔为三单位,不同单词的时间间隔为七单位。 莫斯密码的编码规则如下: 1.英文字母的编码是由点和线的组合表示,而数字和标点符号则用特定的密码表示。 (本文中不涉及网址链接,所有信息均为作者原创) 莫斯密码编码原理剖析 莫斯密码(Morse code)是一种以电报为基础的字符编码系统,它使用不同长度的点(·)和线(—)表示不同的字母、数字和标点符号。
7. 视频中小甲鱼“故弄玄虚”的那段密文还原后是什么内容(中文)?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-3 21:24:42 | 显示全部楼层
是什么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-5 08:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表