<c++实训案列教程>单元一程序设计初步-知识点提问

来源:互联网 发布:淘宝饰品店铺横幅 编辑:程序博客网 时间:2024/05/21 03:57

<c++实训案列教程>单元一程序设计初步

知识点提问:
  1. 什么是计算机的主机和外设?常见的外设有那些?答:系统外部的设备叫外设,主机是指计算机除去输入输出设备以外的主要机体部分——通常包括CPU、内存、硬盘、光驱、电源、以及其他输入输出控制器和接口。如USB控制器、显卡、网卡、声卡等。外设通常分几类:文件输入及处理设备,文件复制设备(印刷),文件打印设备,文件传输设备,文件存储设备,文件整理设备,网络设备,沟通设备(座机)/显示器,鼠标,键盘,调制解调器,扫描仪,打印机,数码相机,数字摄像机,光盘刻录机。
  2. 什么是系统软件?什么是应用软件?答:
    ■系统软件是指管理、控制和维护电脑硬件和软件资源的软件,它的功能是协调电脑各部件有效工作或使电脑具备解决问题的能力。系统软件主要包括操作系统、程序设计语言、解释和编译系统、数据库管理系统等!

    ■应用软件是指用户利用电脑及其提供的系统软件为解决各种实际问题而编制的电脑程序。应用软件是面向应用领域、面向用户的软件,它主要包括科学计算软件包、字处理软件、辅助软件、辅助工程软件、图形软件、工具软件等。如:OFFICE、WPS、Photoshop 等!
  3.  什么是可执行程序?windows系统最常见的可执行的程序是什么?答:可执行程序(executable program,EXE File)是指一种可在操作系统存储空间中浮动定位的可执行程序。常见为后缀为.exe的程序。
  4. 可执行程序为什么必须在内存中运行,而不是在硬盘上运行?答:1. 硬盘、光驱、软盘等外存设备,由于接口的不同,CPU是不能直接访问的,而CPU 能访问的只有和它共享地址、数据总线的内存
    2.程序无法在硬盘、光驱、软盘等外存设备上直接运行,必须读入内存运行,这就是程序加载的原因。也是BOOTLOAD 存在的原因。
    3. BIOS等都是norFlash,程序可以直接在上面运行。
    4. ROM 、 norflash 、nandflash 的区别 主要是接口、存储器单元组织的不同。
    5. 程序ROM、norflash 是 总线型可以随机按字节读取,容量小;nandflash 是特殊接口,只能页读,容量大。
    6. 程序ROM 是字节读写单位;norflash 、nandflash 是FLASH 有页、块的概念特别是擦除,必须块擦除。
    硬盘更是有扇区、簇的概念,便于文件管理,但是也必须有专门的控制器管理,这就是为什么程序都是由 硬盘、光盘等外存读入内存再执行的原因。
  5. 什么是可执行程序的入口?答:一个应用程序执行他的第一条命令。main、WinMain和DllMain。
  6. 如果内存不足,程序可以运行吗?答:如果有释放内存,那么程序运行缓慢,如果没有释放内存,那么程序会崩溃。
  7. 内存的存取速度与外存如磁盘相比,谁更快,为什么?答:内存的速度更快,内存的空间和cpu共享,cpu只能访问内存,如果访问磁盘,是先把磁盘的内容读取到内存。
  8. 什么是内存编址?为什么要对内存编址?一个内存单元等于多少个字节?答:在计算机系统中,存储器中每个单元的位数是相同且固定的,称为存储器编址单元。为了方便找到每一块空间,我们要多每一个空间进行标识-内存编址。不同的计算机,存储器的编址方式是不同的,主要有字编址和字节编址。内存一般以字节(8位)或字(字的长度可大可小,16位、32位等)为单位。
  9. 32位系统的内存地址空间有多少GB?给出计算公式?答:4G/2^32bit=4GB(32位系统,地址总线宽带为32位,每一位可以有2个值0|1。
  10. 什么是机器语言,什么是高级语言,各有什么作用?答:机器语言(machine language)是一种指令的体系,这种指令集称为机器码,是电脑的cpu可直接解读的数据。高级语言所编制的程序不能被计算机识别,需要通过转换,编译才能被执行,主要是对人,容易记忆和理解。汇编语言和机器语言类似,都是对硬件操作,只不过指令采用英文缩写的标识符,更容易识别和记忆。
  11. 求解问题的一般框架(或流程)是什么?程序设计的流程是什么?答:1.问题 2.方法 3.解答 4.测试 5.总结。问题,建模,操作,测试,完成。数据输入,数据存储,数据处理,数据输出。
  12. 什么是高级语言的源程序?他可以直接执行吗?答:是指高级语言,未经编译的,按照一定的程序设计语言规范书写的,人类可读的文本文件。不能执行,需要编译。
    源程序可以是以书籍或者磁带或者其他载体的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机可执行的程序。将人类可读的程序代码文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,由各种编译器来完成。一般用高级语言编写的程序称为“源程序”
  13. 编译器(Compiler)是干什么用的?不同编程语言的编译器都是一样的吗?答:编译器是将一种语言(高级语言)翻译为另一种语言(低级语言)的程序。源代码(source code)->预处理器(preprocessor)-->编译器(complier)-->目标代码(objict code)-->链接器(Linker)-->可执行程序(executables)。不同编程语言的编译器不一样。
  14. 编译器生产的目标文件(*.obj)里面是什么?答:程序编译时生成的中间代码文件。目标文件,一般是程序编译后的二进制文件,再通过链接器(link.exe)和资源文件链接就成可执行文件了。obj只给出了程序的相对地址,而可执行文件是绝对地址。
  15. 链接器(Linker)是干什么用的?答:是一个程序,将一个或多个由编译器或汇编器生成的目标文件加库链接为一个可执行文件
  16. 源程序的输入/编辑、编译、链接、运行可在VC++ IDE 中完成吗?答:可以。编译和链接后生成exe,然后运行。
  17. main 函数有什么作用?一个程序允许有几个main?为什么?答:main函数是主函数,是一个程序的入口函数,只能有一个main函数。程序开始是从main开始,如果有多个main函数,那么就不能确定先是执行那个main函数。
  18. 分号“;”在C/C++源程序中的作用是什么?答:是一条语句的结束。
  19. 什么是行注?什么是块注?注释有什么用?答:行注是利用“//”,在这个标识符之后的哪一行,它之后的内容,任何代码都掠过,不编译。块注是利用“/*”“*/”,在要注释的那一段代码之前设置“/*”,之后添加“*/”,中间的内容,编译器省略。注释作用1,如果出错,那么注释掉可以查看错误,2.可以用人为的自然语言来描述代码,让人易懂,3.代码这个时候没用,但是可能会再利用,避免重写。
  20. cin>>输入多个数据时,用什么分割这些数据?你知道有那些分隔符?答:空格、tab键、换行符等空白字符。注意:只有在输入完数据后再按回车,该行数据才被输入键盘缓冲区。
  21. 什么是解决方案和项目(工程)?什么是单元文件?各有何作用?答:解决方案是人为的对一件事情、一项独一无二的任务,是一个工程分配,包含了项目,统筹所有的文件。项目是一个人需要做的分了块的任务,包含了各种单独需要做的事情,各种单元文件。单元文件:是单一的一个文件,里面是独有的一个功能,把大数量的文件分类。
  22. 何为启动项目?解决方案包含多个项目,如何将一个项目设为启动项目?答:在一个解决方案中,运行的时候运行的那个启动的项目。右键点击需要要启动的那个项目,选择设为启动项。
  23. 一个项目是有且仅有一个main函数,还是可以有多个main?答:一个项目只能有一个main函数。
  24. 当前编写了一个源程序,保存后它在哪个文件夹里面?它的.exe在哪里?答:源程序在文件夹project里项目名中的后缀为.cpp的源文件。.exe在debug里面。
  25. 理清楚解决方案文件、项目文件、源程序文件、.exe文件所在的文件夹?解决方案projects里面的文件夹,项目是解决方案里面 的那个项目文件夹,源程序在项目管理面的.cpp,.exe在debug中。
  26. 断点是什么意思?如何设置?如何取消?答:断点是调试程序时候暂停,F10和F11 。
  27. VC++IDE“调试”菜单下“逐语句”和“逐过程”有何区别?答:每个以;为一次执行,逐过程是一段一段的执行,比如{}。
  28. 字符如何存储在计算机中?为什么要对字符进行唯一的编码?答:计算机只能存储二进制数据,2^8,对字符的唯一性的标志。
  29. 什么是ASCII编码?ASCII编码长度等于多少位?最多能编码多少个字符?答:ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。  ASCII_百度百科
  30. 你还知道那些编码?各自的用途? 编码(计算机术语)_百度百科
  31. 标识符是干什么用的?c++的命名规则是什么?关键字是什么意思?答:是用户编程时所用的名字,变量,常量,函数,语句块又有名字,给数据类型命名的。命名规则,字母,下划线,数字组成,数字不能为头。关键字:保留字,是整个语言范围内预先保留的标识符,每个关键字都有特殊的含义。
  32. 为什么要把数据分为不同的类型?答:区分不同的数据,由于数据在存储时各不相同,不同的数据必须分配不同大小的内存空间来存储,节省空间。
  33. bool 1、char 1、int 4、short int 2 、long int 8、long long int8、_int16 2、_int648、double8、long double8、float4各占多少Bytes?答:
  34. 对于一个整数,应该选择那种数据类型才能放得下比如18位身份证号码?答:unsinged long long 可以。

    int、long、long long取值范围

    unsigned   int   0~4294967295   
    int   2147483648~2147483647 
    unsigned long 0~4294967295
    long   2147483648~2147483647
    long long的最大值:9223372036854775807
    long long的最小值:-9223372036854775808
    unsigned long long的最大值:1844674407370955161

    __int64的最大值:9223372036854775807
    __int64的最小值:-9223372036854775808
    unsigned __int64的最大值:18446744073709551615
  35. 变量的作用是什么?它占用的内存大小由什么确定?答:变量的作用是定义分配空间,存数据,占用的大小由数据类型决定。变量(计算机名词)_百度百科
  36. 定义一个变量意味着什么?什么是常变量?常变量的值是什么时候给出?答:意味着分配空间,常变量是空间的值固定不能改变,只能使用不能改写,值是初始的时候赋值。
  37. 转义符如何表示?转义符的十六进制如何表示?答:转义符是使用字符'\'代表。十六进制5C.
  38. 字符和字符串的区别?如何表示?字符串的结束字符是什么?答:字符是单个字符,字符串是多个字符形成一个串模式,字符串末尾自动添加结束字符。字符表示为'(一个字符)',字符串表示为"(一串字符) "。结束字符为\0。
  39. 什么是单目(一元),双目(二元),三目(三元)操作符?答:
    单目运算符是运算所需变量为一个的运算符,又叫一元运算符。
    逻辑非运算符【!】、按位取反运算符【~】、自增自减运算符【++, --】、负号运算符【-】、类型转换运算符【(类型)】、指针运算符和取地址运算符【*和&】、长度运算符【sizeof】
    运算所需变量为两个的运算符叫做双目运算符,例如+,-,*,/,%,<,>,>=,<=,==,!=,<<,>>,&,^,|,&&,||,=
    运算所需变量为三个的运算符叫做三目运算符,只有条件表达式【?:】
  40. 表达式中,操作符(运算符)%,++,--分别表示什么意思?%取余运算符,++自增运算符,--自减运算符。
  41. 复合赋值运算符+=、-=、*=、/=、%=分别是什么意思?答:举例,a+=b为a=a+b的缩写,其余相同。
  42. 理解操作符的优先级和结合性。 运算符优先级_百度百科
  43. 不同类型数据混合运算时,其类型的自动转换原则是什么?答:俩个通用的指导原则:1.为了防止数据精度损失,如果有必要的话,类型总是被提升为较宽的类型2.所有含有小于整数类型的算术表达式在计算之前其类型被提升为整型数据类型。
  44. 举例说明何时需要作数据类型的强制转换?答:5/2;5.0/2。 C语言中的整数自动转换原则 - zhuimengzh的专栏 - 博客频道 - CSDN.NET
  45. 什么是程序的模块化设计?模块的划分原则是什么?答:程序编写不是开始就逐条录入计算机语句和指令,而是首先用主程序,子程序,子过程等框架把软件的主要结构和流程描述出来,并定义和调试各个框架之间的输入、输出链接关系。高内聚低耦合 ,模块大小规模适当,模块的依赖关系适当等。
  46. 流程图有什么作用?起止框、处理框、判定框、输入输出框、流程线怎么画?答: 流程图_百度百科
  47. 程序的基本控制结构有那三种?分别画出其流程图?答:顺序结构,条件结构(又称选择结构),循环结构
  48. 画出while和for俩种无限循环(死循环)应该怎么写?有哪几种写法?while(),for(;;)。
  49. bool型变量的真值、假值分别是什么?答:true,false。
  50. 关系运算符与逻辑运算符的优先级谁高谁低?答:逻辑高。
  51. 逻辑表达式x||y、x&&y、!x结果何时为真?何时为假?答:x||y,其中任意为真都为真,x&&y。x和y都为真才为真,!x,x为假才为真。
  52. 逻辑表达式的短路性是什么意思?为什么引入这个概念?答:逻辑运算的短路特性: (表达式1)&&(表达式2) 如果表达式1为假,则表达式2不会进行运算,即表达式2“被短路” 。(表达式1)||(表达式2) 如果表达式1为真,则表达式2不会进行运算,即表达式2“被短路”。 引入后解释具体现象,更加直观,对人通俗易懂。
  53. 如何判断一个浮点数是否等于零?如何判断两个浮点数相等?答:判断一个浮点数是否等于零使用精确度,一般以1e-6表示0的绝对值。同理:判断俩个浮点数同样是使用精确度。
  54. 何时用if-else结构包括其变形?合适用switch-case?答:简易判断使用if-else。多数的人为的交互使用switch-case。
  55. case表达式允许为变量吗?多个case的表达式值可以相等吗?答:不允许为变量。多个case的表达式不能相等。编译时候,是根据case标签后面的常量值生成跳转表,只经过少数次的比较,然后跳转到标签对于的地方。以致标签不能重复。
  56. break在switch-case结构体中和循环中的作用是什么?答:在switch-case中跳出那个标签,如果没有写,那么紧接着执行下面一个标签的内容。循环中是跳出循环,continue是跳出本次循环(这个循环下面的内容不执行),执行下一次循环。
  57. continue在循环中的作用是什么?它与break有何区别?答:continue在循环中是跳出循环内下面的内容,然后再执行循环。break是跳出循环。 




0 0