龙空技术网

2022 CSP-J组 初赛真题解析1

codepomer 103

前言:

此时咱们对“c语言是面向过程的语言对吗”大约比较注重,各位老铁们都想要了解一些“c语言是面向过程的语言对吗”的相关内容。那么小编也在网络上搜集了一些有关“c语言是面向过程的语言对吗””的相关内容,希望兄弟们能喜欢,同学们一起来学习一下吧!

1.以下哪种功能没有涉及C++语言的面向对象特性支持:( )。

A. C++中调用printf函数

B. C++中调用用户定义的类成员函数

C. C++中构造一个class或struct

D. C++中构造来源于同一基类的多个派生类

解析:

背景知识:

程序设计语言分类

从描述客观系统的角度来看,程序设计语言可以分为:

(1) 面向过程语言

以“数据结构+算法”程序设计范式构成的程序设计语言,称为面向过程语言。代表语言有C、PASCAL等

(2) 面向对象语言

以“对象+消息”程序设计范式构成的程序设计语言,称为面向对象语言。比较流行的面向对象语言有 Delphi、Visual Basic、Java、C++、Python等。

面向对象程序设计

面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)的主要思想是把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述一个事物在整个解决问题的步骤中的行为。OOP是编程技术中相对较新的发展。

在传统的计算机程序中,完成工作的程序(编程命令)与它们处理的数据是分开的。相比之下,面向对象的程序是由称为对象的构建块组合在一起的。这些独立的软件模块中的每一个都包含在接收到正确的“消息”时执行一组给定任务所需的所有命令和数据。因为它是以这种方式“封装”的,所以一个对象可以作为一个单元在任意多个程序中被重用。通过设计,OOP 可以轻松生成自动“继承”现有对象功能的新对象。然后,程序员可以修改一两个函数或添加一些新函数,但它不必从头开始。最广泛使用的面向对象语言是 C++(C 的修改版本)和 SmallTalk。

C++ 中的基本面向对象编程 (OOPS) 概念类和对象

对象是面向对象编程的基本单位。对象包含数据和对该数据进行操作的方法或函数。对象占用内存中的空间。另一方面,类是对象的蓝图。相反,对象可以定义为类的实例。类包含对象的骨架,并且不占用内存中的任何空间。

抽象

抽象是向用户隐藏不相关信息的过程。例如,当我们开车时,首先我们通过插入钥匙启动引擎。我们不知道在后台启动引擎的过程。

在编程中使用抽象,我们可以向用户隐藏不必要的细节。通过在我们的应用程序中使用抽象,即使我们更改内部实现,最终用户也不会受到影响。

封装

封装是将数据和对其进行操作的方法或函数捆绑在一起的过程。通过这样做,外部世界不容易访问数据。在 OOP 中,我们通过将数据成员设为私有并具有访问这些数据成员的公共函数来实现封装。

继承

使用一个类的继承对象可以继承或获取另一个类的对象的属性。继承提供代码的可重用性。

因此,我们可以通过获取另一个类的属性和功能来设计一个新类,在这个过程中,我们不需要修改父类的功能。我们只向类添加新功能。

多态性

多态性意味着多种形式。多态性是 OOP 的一个重要特性,通常以运算符重载或函数重载的形式实现。运算符重载是一个运算符在不同情况下表现不同的过程。同样,在函数重载中,同一个函数在不同的情况下表现不同。

动态绑定

OOP 支持动态绑定,其中函数调用在运行时被解析。这意味着作为函数调用的结果要执行的代码是在运行时决定的。虚函数是动态绑定的一个例子。

消息传递

在 OOP 中,对象使用消息相互通信。当对象进行通信时,信息在对象之间来回传递。消息通常由对象名称、方法名称和要发送到另一个对象的实际数据组成。

知识点分类:

计算机基础与编程环境-程序设计语言以及程序编译和运行的基本概念

答案解析:

根据背景知识的介绍可知:

选项B“C++中调用用户定义的类成员函数”、选项C"C++中构造一个class或struct"、选项D“C++中构造来源于同一基类的多个派生类”均属于C++语言的面向对象特性。

而选项A“C++中调用printf函数”,printf函数本来是C语言中的输出函数,C语言是面向过程语言,不是面向对象的语言。

所以本题的正确答案应该选A。

标签: #c语言是面向过程的语言对吗