鱼C论坛

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

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

    [复制链接]
发表于 2016-8-22 22:17:11 | 显示全部楼层

#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 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("目前你总共写了 %1d 行代码!\n\n ", total);
                system("pause");
               
                return 0;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-22 23:28:22 | 显示全部楼层
小甲鱼大大,小弟抄了,但出现的反而是202行代码!
也试着用您的写的来测试,但一样发现是202行代码!
会不会是win7x64的问题呢?,,T
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-23 17:11:44 | 显示全部楼层
0. 计算机使用的数制为二进制,即只有0和1
1. 机器语言
2. 编译
3. 编译型语言能够直接编译成计算机可以读懂的机器码,而解释型语言需要安装解释器一句句翻译才能让CPU读懂,因此解释型语言运行效率会慢一些。
4. 不可以吧,编译型语言不可跨平台
5. 解释型语言可先将源码转化为字节码。在不同的平台上只要安装解释器,就能将字节码解释给计算机读懂
6. 查表
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-23 18:22:47 | 显示全部楼层
0、识别二进制机器码
1、机器码
2、编译
3、编译型语言可以直接编译成计算机可执行的机器码;解释性语言需要通过解释器转换成计算机可执行的机器码
5、通过解释器转换
6、编码与解码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-23 19:44:55 | 显示全部楼层
答案是啥
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-23 20:19:08 | 显示全部楼层
额 我直接打了出来是 只写了7行代码 我复制过去也是同样的结果 为什么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-23 21:27:09 From FishC Mobile | 显示全部楼层
感谢小甲鱼
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-24 01:22:44 | 显示全部楼层
0、计算机只能识别机器语言,也就是二进制
1、机器语言
2、编译
3、编译型语言需要编译成机器可以识别的二进制文件方可执行,解释型语言无需编译可直接运行,并且编译型语言速度比解释型语言执行速度快
4、80%可以
5、需要解释器
6、编码与解码
7、实在没看懂~~~
QQ图片20160824010926.png
QQ图片20160824011248.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-24 01:26:40 | 显示全部楼层
V浩浩 发表于 2016-8-24 01:22
0、计算机只能识别机器语言,也就是二进制
1、机器语言
2、编译

第四个题目看错了 以后要细心==
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-24 10:27:32 | 显示全部楼层
太累
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-8-24 16:09:59 | 显示全部楼层
來看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-24 16:58:46 | 显示全部楼层
看看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-25 13:42:07 | 显示全部楼层
答案
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-8-25 20:13:44 | 显示全部楼层
厉害
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-8-28 00:55:35 | 显示全部楼层
已做完
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-28 13:20:03 | 显示全部楼层
一、测试题

   (0)为什么我们说计算机其实是“二傻子”?
        答:因为计算机只会认识机器语言,而机器语言是用二进制表示的。

   (1)CPU唯一认识的语言是什么语言?
        答:机器语言

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

   (3)编译型语言和解释型语言的本质区别是什么?
        答:编译型语言预先编译,而解释型语言在运行时编译。

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

   (5)解释型编程语言是如何实现跨平台的?
        答:在操作系统安装相应的解释器。

   (6)莫斯密码的原理其实是什么?
        答:查表。

   (7)莫斯编码翻译
      
        qinmenchendirenchifanshifadongjingong
        亲们趁敌人吃饭时发动进攻
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-28 14:40:27 | 显示全部楼层
参考下答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-28 20:31:41 | 显示全部楼层
来看看答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-28 20:45:24 | 显示全部楼层
查看答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-29 22:03:22 | 显示全部楼层
已经做过了,来看答案。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-8 15:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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