一、今日学习内容:
今天练习c++第一章的课后习题。
二、遇到的问题:
无。
三、明日计划:
明天计划学习2.1、2.2、2.3的例题。
今日练习题目的具体内容如下:
习题1.1请根据你的了解,叙述C++ 的特点。C++ 对C有哪些发展?
答:
(1)特点:相对于C语言来讲,C语言是结构化和模块化的语言,它是基于过程的。而C++是面向对象的语言,一切事物皆是对象,它即可用于基于过程的结构化程序,又可用于面向对象的程序设计。另外对象有它的属性,面向对象的基本特点是封装,继承,和多态。
(2) c++在c+的发展主要表现在两个方面: 在原来基于过程的机制基础上,对c语言的功能做了不少的扩充 增加了面向对象的机制。
习题1.2 一个C++的程序是由哪几部分构成的?其中的每一部分起什么作用?
答:
1、预处理:一堆头文件#include,自定义#define,编译开关 #pragma
2、全局声明:类、结构体、全局变量等声明
3、函数体:主程序和被调函数
习题1.3从接到一个任务到得到最终结果,一般要经过几个步骤?
1)用C++编写程序(源程序cpp)
2)对源程序进行编译(目标程序.obj)
3)将目标文件连接(可执行二进制文件.exe)
4)运行程序
5)分析运行结果
习题1.4请说明编辑,编译,连接的作用。在编译后得到的目标文件为什么不能直接运行?
答:编译是以源程序文件为单位进行的,而一个完整的程序可能包含若干个程序文件,在分别对他们编译后,得到若干个目标文件(后缀一般为.obj),然后要将它们连接为一个整体.此外,还需要将编译系统提供的标准库相连接,才能生成一个可执行文件(后缀为.exe).不能直接运行文件(后缀为.exe).不能直接运行后缀为.obj的目标文件,只能运行后缀为.exe的可执行文件。
习题1.5分析下面程序运行的结果:
public class t2 { public static void main(String[] args) { System.out.print("This"+"is"); System.out.print("a"+"c++"); System.out.print("program.\n"); } }
测试截图:
习题1.6分析下面程序的运行结果
import java.util.Scanner; public class t2 { public static void main(String[] args) { int a=10; int b=23; int c; c=a+b; System.out.print("a+b="); System.out.print(c+"\n"); } }
测试截图:
习题1.7分析下面程序的运行结果:
import java.util.Scanner; public class t2 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入3个数:"); int a=sc.nextInt(); int b=sc.nextInt(); int c=sc.nextInt(); c=f(a,b,c); System.out.println("3个数中最小的为:"+c); } public static int f(int x,int y,int z) { int m; if(x>y)m=y; else m=x; if(m>z) m=z; return m; } }
测试截图:
1.8 输入以下程序进行编译,观察编译情况,如果有错误,请修改程序再进行编译,直到没有错误,然后进行连接和运行,分析运行结果
import java.util.Scanner; public class t2 { public static void main(String[] args) { int a=10; int b=23; int c; c=a+b; System.out.print("a+b="); System.out.print(c+"\n"); } }
测试截图:
1.9输入以下程序进行编译,观察编译情况,如果有错误,请修改程序再进行编译,直到没有错误,然后进行连接和运行,分析运行结果
import java.util.Scanner; public class t2 { public static void main(String[] args) { int a; int b; int c; Scanner sc=new Scanner(System.in); a=sc.nextInt(); b=sc.nextInt(); c=add(a,b); System.out.print("a+b="); System.out.print(c+"\n"); } public static int add(int x,int y) { int z; z=x+y; return z; } }
测试截图:
1.10输入以下程序,编译并运行,分析运行结果
import java.util.Scanner; public class t2 { public static void main(String[] args) { int x; int y; int z; Scanner sc=new Scanner(System.in); System.out.println("请输入三个数:"); x=sc.nextInt(); y=sc.nextInt(); z=sc.nextInt(); sort(x,y,z); } public static void sort(int x,int y,int z) { int temp; if(x>y) { temp=x; x=y; y=temp; } if(z<x) System.out.print(z+","+x+","+y); else if(z<y) System.out.print(x+","+z+","+y); else System.out.print(x+","+y+","+z); } }
测试截图: