《C/C++程序设计》课后答案

  • 更新时间:
  • 5836人关注
  • 点击下载

给大家带来的是关于C/C++相关的课后习题答案下载,介绍了关于C/C++、程序设计方面的内容,由毋理群网友提供,本资源目前已被243人关注,高等院校C/C++类教材综合评分为:7.2分

资源详情相关推荐
《C/C++程序设计》封面
  • 出版社:清华大学出版社
  • 作者:张树粹、孟佳娜、刘迎军
  • 大小:44.2 KB
  • 类别:C/C++
  • 热度:666
  • C++语言程序设计教程 课后答案
  • C++面向对象程序设计 课后答案
  • C++面向对象程序设计 课后答案
  • C++程序设计:原理与实践(进阶篇)
  • C++语言程序设计(第三版) 课后答案
  • C/C++语言是国际上广泛应用的计算机程序设计语言。以其功能强大、表达灵活、代码效率高和可移植性好而著称。因此,它广泛应用于编写各种系统软件和应用软件。

    本教材以面向过程程序设计为基础,引进了C++新增的运算符、函数重载、类和对象的封装性等,介绍了C++对C的改进,目的是使读者在具备基本编程能力的基础上循序渐进地向面向对象程序设计过渡。

    基于多年的教学经验,编者注重C/C++本身的系统性与认知规律的结合,针对初学者的特点,在写法上,勿求深入浅出,通俗易懂;在结构和内容上,勿求准确定位,合理取舍,精选例题,强化实验。全书共分9章,各章均精选了国家各类计算机考试的习题和实验,并采用目前用得多的Visual C++6.0编译系统。

    本书适合作为普通高等院校、高职高专、各类成人教育院校作为开设程序设计基础课程的教材,也可作为编程人员和参加计算机考试(C /C++模块)自学者的参考书。

    目录

    • 第1章 概述
    • 1.1 程序设计与高级语言
    • 1.1.1 程序与程序设计
    • 1.1.2 高级语言
    • 1.2 算法
    • 1.2.1 算法的特性
    • 1.2.2 算法表示
    • 1.3 C/C++的发展史与特点
    • 1.3.1 C/C++的发展史
    • 1.3.2 C/C++语言的特点
    • 1.4 C程序结构及书写规则
    • 1.4.1 C程序的基本结构
    • 1.4.2 程序的书写规则
    • 1.5 C的基本词法
    • 1.5.1 C使用的字符集
    • 1.5.2 保留字
    • 1.5.3 预定义标识符
    • 1.5.4 标识符
    • 1.5.5 C的词类
    • 1.6 C的基本语句
    • 1.7 标准输入/输出函数
    • 1.7.1 格式化输入/输出函数
    • 1.7.2 C++的输入/输出
    • 1.7.3 非格式化字符输入/输出函数
    • 1.8 C程序的编辑、编译、连接和执行
    • 1.9 Visual C++的上机环境介绍
    • 1.9.1 Visual C++的安装和启动
    • 1.9.2 输入和编辑源程序
    • 1.9.3 编译、连接和运行
    • 1.9.4 建立和运行包含多个文件的程序的方法
    • 习题
    • 实验1 C程序调试初步
    • 第2章 基本数据类型及运算符
    • 2.1 C语言的数据类型
    • 2.2 常量
    • 2.2.1 整型常量
    • 2.2.2 实型常量
    • 2.2.3 字符常量
    • 2.2.4 符号常量
    • 2.2.5 字符串常量
    • 2.3 变量
    • 2.3.1 变量的数据类型及其定义
    • 2.3.2 变量的存储类型及其定义
    • 2.3.3 变量的初始化
    • 2.3.4 基本数据类型的使用
    • 2.4 运算符及表达式
    • 2.4.1 算术运算符和算术表达式
    • 2.4.2 关系运算符和关系表达式
    • 2.4.3 逻辑运算符和逻辑表达式
    • 2.4.4 赋值运算符和赋值表达式
    • 2.4.5 逗号运算符和逗号表达式
    • 2.4.6 变量的自增、自减(++, --)运算符
    • 2.4.7 长度运算符
    • 2.4.8 混合运算和类型转换
    • 2.5 综合运算举例
    • 习题
    • 实验2 认识数据类型
    • 实验3 使用运算符与表达式进行计算
    • 第3章 程序控制结构
    • 3.1 顺序结构程序设计
    • 3.2 选择结构程序设计
    • 3.2.1 if语句的3种形式
    • 3.2.2 条件运算符“? : ”
    • 3.2.3 switch语句实现多分支选择结构
    • 3.3 循环结构程序设计
    • 3.3.1 当循环结构
    • 3.3.2 直到循环结构
    • 3.3.3 次数循环结构
    • 3.3.4 循环嵌套与多重循环结构
    • 3.3.5 3种循环语句的比较
    • 3.4 循环体内使用break语句和continue语句
    • 3.4.1 break语句
    • 3.4.2 continue语句
    • 3.5 goto语句及标号语句
    • 3.6 综合举例
    • 习题
    • 实验4 顺序结构程序设计
    • 实验5 选择结构程序设计
    • 实验6 循环结构程序设计
    • 第4章 数组
    • 4.1 一维数组
    • 4.1.1 一维数组定义
    • 4.1.2 一维数组的存储形式
    • 4.1.3 一维数组元素的引用
    • 4.1.4 一维数组的初始化
    • 4.1.5 一维数组程序设计举例
    • 4.2 二维数组及多维数组
    • 4.2.1 二维数组及多维数组定义
    • 4.2.2 二维数组及多维数组的存储形式
    • 4.2.3 二维数组元素的引用
    • 4.2.4 二维数组的初始化
    • 4.2.5 二维数组程序设计举例
    • 4.3 字符数组与字符串
    • 4.3.1 字符数组与字符串
    • 4.3.2 字符数组的输入与输出
    • 4.3.3 字符串处理函数
    • 4.3.4 字符数组程序设计举例
    • 4.4 C++字符串类与字符串变量
    • 4.5 数组程序举例
    • 习题
    • 实验7 数组及其应用
    • 第5章 函数
    • 第6章 指针
    • 第7章 构造数据类型
    • 第8章 文件
    • 第9章 编译预处理
    • 实验12 C编译预处理
    • 附录A ASCII字符编码表
    • 附录B C运算符的优先级和结合性
    • 附录C 常用的C库函数
    • 参考文
    精选笔记1:用C/C++代码检测ip能否ping通(配合awk和system可以做到批量检测)

    17小时36分钟前回答

    遇到一个小需求, 快速搞定。 来看看用C/C++代码检测ip能否ping通:

    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    using namespace std;
    string getCmdResult(const string &strCmd) // 这个是获取命令执行的结果, 类似于system, 之前我已经说过了
    { 
      char buf[10240] = {0}; 
      FILE *pf = NULL; 
      if( (pf = popen(strCmd.c_str(), "r")) == NULL ) 
      { 
        return ""; 
      } 
      string strResult; 
      while(fgets(buf, sizeof buf, pf)) 
      { 
        strResult += buf; 
      } 
      pclose(pf); 
      unsigned int iSize = strResult.size(); 
      if(iSize > 0 && strResult[iSize - 1] == '\n') // linux 
      { 
        strResult = strResult.substr(0, iSize - 1); 
      } 
      return strResult; 
    } 
    int main(int argc, char *argv[])
    {
     if(argc != 2)
     {
     cout << "no" << endl;
     return -1;
     }
     string strCmd = "ping " + string(argv[1]) + " -w 1";
     string strRe = getCmdResult(strCmd);
     if(strRe.find("received") != string::npos && strRe.find(", 0 received") == string::npos)
     {
     cout << "ipok:" + string(argv[1]) << endl;
     }
     else
     {
     cout << argv[1] << endl;
     }
     return 0;
    }

    测试一下:

    ubuntu@VM-0-13-ubuntu:~$ ./a.out 
    no
    ubuntu@VM-0-13-ubuntu:~$ ./a.out 1.1.1.1
    1.1.1.1
    ubuntu@VM-0-13-ubuntu:~$ ./a.out 172.16.0.13
    ipok:172.16.0.13
    ubuntu@VM-0-13-ubuntu:~$ ./a.out www.baidu.com
    ipok:www.baidu.com
    ubuntu@VM-0-13-ubuntu:~$ 

    如上ping测试的超时时间是1s, 自己可以改。  另外, 如果有a.txt文件, 每行一个ip, 怎么知道哪些ip能否ping通呢? awk和system搞起吧, 我们已经说过了:

    ubuntu@VM-0-13-ubuntu:~$ cat a.txt
    1.1.1.1
    www.baidu.com
    www.qq.com
    ubuntu@VM-0-13-ubuntu:~$
    ubuntu@VM-0-13-ubuntu:~$
    ubuntu@VM-0-13-ubuntu:~$
    ubuntu@VM-0-13-ubuntu:~$ awk '{cmd="./a.out " $1; system(cmd)}' a.txt
    1.1.1.1
    ipok:www.baidu.com
    ipok:www.qq.com
    ubuntu@VM-0-13-ubuntu:~$

    可见 1.1.1.1 ping不通, 其余的可以ping通。

    上面用awk和system有个问题:如果ip过多, 则必须等到所有ip检测完毕后, 才知道最后的结果。 也就是说, 并不是处理完一个ip后, 就立即能看到结果的。怎么办呢?可以写程序逐行读取文件来搞起, 看下:

    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <fstream>
    #include <string>
    using namespace std;
    string getCmdResult(const string &strCmd) 
    { 
      char buf[10240] = {0}; 
      FILE *pf = NULL; 
      if( (pf = popen(strCmd.c_str(), "r")) == NULL ) 
      { 
        return ""; 
      } 
      string strResult; 
      while(fgets(buf, sizeof buf, pf)) 
      { 
        strResult += buf; 
      } 
      pclose(pf); 
      unsigned int iSize = strResult.size(); 
      if(iSize > 0 && strResult[iSize - 1] == '\n') // linux 
      { 
        strResult = strResult.substr(0, iSize - 1); 
      } 
      return strResult; 
    } 
    string ipCheck(const string &ip)
    {
     string strCmd = "ping " + ip + " -w 1";
     string strRe = getCmdResult(strCmd);
     if((strRe.find("received") != string::npos && strRe.find(", 0 received") == string::npos))
     {
     return "ipok:" + string(ip);
     }
     else
     {
     return ip;
     }
    }
    int main(int argc, char *argv[])  // ./a.out a.txt b.txt
    {
     if(argc != 3)
     {
     cout << "error" << endl;
     return -1;
     }
     string strCmd = "rm -rf " + string(argv[2]);
     system(strCmd.c_str());
     strCmd = "wc -l " + string(argv[1]) + "| awk '{print $1}'"; // 获取文件行数
     string strNumLine = getCmdResult(strCmd);
     ifstream in(argv[1]);
     string filename;
     string line;
     unsigned int i = 0;
     if(in) // 有该文件
     {
     while (getline (in, line)) // line中不包括每行的换行符
     {
      // 这里最好做ip格式判断
      string strResult = ipCheck(line);
      strCmd = "echo " + strResult + " >> " + string(argv[2]) ;
      cout << strCmd << endl;
      system(strCmd.c_str());
     }
     }
     else // 没有该文件
     {
     cout <<"no such file" << endl;
     }
     return 0;
    }

    看下结果:

    ubuntu@VM-0-13-ubuntu:~/tmp_test$ ls
    a.txt  test.cpp
    ubuntu@VM-0-13-ubuntu:~/tmp_test$
    ubuntu@VM-0-13-ubuntu:~/tmp_test$
    ubuntu@VM-0-13-ubuntu:~/tmp_test$ cat a.txt
    1.1.1.1
    2.2.2.2
    www.baidu.com
    3.3.3.3
    4.4.4.4
    ubuntu@VM-0-13-ubuntu:~/tmp_test$
    ubuntu@VM-0-13-ubuntu:~/tmp_test$
    ubuntu@VM-0-13-ubuntu:~/tmp_test$ g++ test.cpp
    ubuntu@VM-0-13-ubuntu:~/tmp_test$
    ubuntu@VM-0-13-ubuntu:~/tmp_test$
    ubuntu@VM-0-13-ubuntu:~/tmp_test$ ./a.out a.txt b.txt
    echo 1.1.1.1 >> b.txt
    echo 2.2.2.2 >> b.txt
    echo ipok:www.baidu.com >> b.txt
    echo 3.3.3.3 >> b.txt
    echo 4.4.4.4 >> b.txt
    ubuntu@VM-0-13-ubuntu:~/tmp_test$
    ubuntu@VM-0-13-ubuntu:~/tmp_test$
    ubuntu@VM-0-13-ubuntu:~/tmp_test$
    ubuntu@VM-0-13-ubuntu:~/tmp_test$
    ubuntu@VM-0-13-ubuntu:~/tmp_test$
    ubuntu@VM-0-13-ubuntu:~/tmp_test$ cat b.txt
    1.1.1.1
    2.2.2.2
    ipok:www.baidu.com
    3.3.3.3
    4.4.4.4
    ubuntu@VM-0-13-ubuntu:~/tmp_test$

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对码农之家的支持。如果你想了解更多相关内容请查看下面相关链接

    相关声明:

    《C/C++程序设计》课后答案下载资源由用户 金泽恩 于 2021-12-21 11:17:14 分享至网盘,版权归清华大学出版社所有。仅供想学习C/C++的网友交流使用,专题参考:程序设计C/C++,C/C++,

    C/C++相关资源

    • 程序设计教程:用C++语言编程 课后答案

      程序设计教程:用C++语言编程

      《程序设计教程:用C++语言编程》是2009年机械工业出版社出版的图书,作者是陈家骏。本书以介绍基本的程序设计思想、概念和技术为中心,强调了数据结构、算法、过程抽象以及数据抽象等重要的程序设计思想。 目录 作者简介 教学建议 第1章 概述 1.1 计算机的工作模型 1.1.1 硬件 1.1.2 软件 1.1.3 机内信息表示 1.2 程序设计 1.2.1 程序设计范型 1.2.2 程序设计步骤 1.2.3 程序设计语言 1.3 C++语言 1.3.1 C++语言概述 1.3.2 C++程序的构成

      大小:7.78 MBC++编程

      立即下载
    • C++程序设计(第2版) 课后答案

      C++程序设计(第2版)

      《C++程序设计(第2版)》是谭浩强编著,2011年清华大学出版社出版中国高等院校计算机基础教育课程体系规划教材。该书是学习C++的入门教材,可供各类专业学生使用,也可作为计算机培训班的教材以及读者自学参考。 该书分为4部分: 第1部分介绍C++的基本知识和基本语法;第2部分介绍C++基于过程的程序设计;第3部分介绍C++基于对象的程序设计;第4部分介绍C++面向对象的程序设计. 目录 第1篇基本知识 第1章C++的初步知识3 1.1从C到C++3 1.2最简单的C++程

      大小:15.9 MBC++

      立即下载
    • 计算机程序设计基础:C++ 课后答案

      计算机程序设计基础:C++

      《计算机程序设计基础(C++)》以应用为主线,由浅入深地介绍程序设计中的基本概念和C++语言的基础知识,使学生(读者)掌握程序设计的基本技术。内容主要包括:算法基础知识、程序设计基础知识、C++语言的基本语法以及程序调试技术。 《计算机程序设计基础(C++)》文字通俗易懂,应用案例丰富,叙述系统而全面,适合作为高等院校学生学习C++语言课程的教材,同时也可作为自学C++语言的指导和参考书。 目录 第1章 引论 1.1 软件开发和程序设

      大小:429 KBC++程序设计

      立即下载
    • C++面向对象程序设计教程 课后答案

      C++面向对象程序设计教程

      全书共分为8章。阐述了c 的特点和开发过程;面向对象程序设计技术、类的定义、对象的创建及访问,友元与静态成员等基本内容;模板编程方法,运算符重载;C 的继承机制及虚基类,多态性,输入输出流,C 中的其他主题。 本书可作为高等院校计算机及相关专业c 面向对象程序设计课程的教材,也可供其他从事软件开发工作的读者参考使用。同时,也适合初学程序设计或有编程实践基础、希望突破编程难点的读者作为自学教材。通过本书的学习,读者

      大小:16.7 MBC++

      立即下载
    • C++程序设计语言(第1-3部分)

      C++程序设计语言(第1-3部分)

      《C 程序设计语言》(原书第4版) 是C 领域最经典的参考书,介绍了C 11的各项新特性和新功能。全书共分四部分。第一部分(第1~5章)是引言,包括C 的背景知识,C 语言及其标准库的简要介绍

      大小:157.9 MBC++

      立即下载

    学习笔记

    15小时3分钟前回答

    C/C++语言printf命令使用方法

    在C语言以及其它语言中我们经常看到printf命令,那么怎么使用该命令输出想要的结果呢?下面就为大家演示。 1、printf()函数是一个格式化输出函数, 用户可以通过该命令向标准输出设备输出指定的格式信息。使用的方法是:printf("格式化字符串", 变量)。在使用前需要注意的是该命令被定义在stdio.h头文件中(C语言),所以需要在程序中加入#includestdio.h。printf()函数是一个格式化输出函数, 用户可以通过该命令向标准输出设备输出指定的格式信息。使用的方法是:printf("格式化字符串", 变量)。在使用前需要注意的是该命令被定义在stdio.h头文件中(C语言),所以需要在程序中加入#includestdio.h。 1、printf命令……

    14小时44分钟前回答

    C/C++中一次性执行多个DOS命令的实现思路

    起因 最近给公司的一个系统写了个启动的脚本,但是领导说批处理这样的脚本太low了,要使用EXE来启动,未来还要使用加密工具对EXE进行加密。 好吧,我就在网上到处找bat转exe的工具,找了很久,都没有找到合适的,只有一个用winrar制作自解压包的方法还算可以,但是这玩意儿有两个坑爹的问题: 使用了自定义图标后,安装时会被360报告有木马; 用winrar制作的exe,其本质还是解压后执行,解压后的文件其实可以在系统临时目录下找到,因此以后想要加密其实很容易就会被破解; 所以最好的办法看来就是自己写一个exe了,考虑到我以前用过C,因此下载了Dev-Cpp这个工具来编写代码。 思路 在C语言中执……