二级C语言2023-9易错题

news2024/9/21 0:45:43

1 二叉树结点数计算:

一棵二叉树有10个度为1的结点,7个度为2的结点,则该二叉树共有____个结点。

解:
在这里插入图片描述

在这里插入图片描述


2 指针:

有以下程序

#inctude<stdio.h>
#include<stdlib.h>
main()
{	int *a,*b,*c;
	a=b=c=int*)malloc(sizeofint));
	*a=1*b=2*c=3;
	a=b;
	printf("%d,%d,%d\n"*a,*b,*c);
}

程序运行后的输出结果是? 3,3,3


1. `a`, `b`, `c` 都通过 `malloc` 分配了相同的内存地址并指向这块内存。
2. 使用 `*a = 1;`, `*b = 2;` 和 `*c = 3;` 依次赋值:
   - `*a = 1;` means 当前的内存值是 `1`。
   - `*b = 2;` 将同一块内存的值改为 `2`(此时,所有指向这块内存的指针都“看到”这个值)。
   - `*c = 3;` 会再次将内存的值改为 `3`。

在这一系列操作后,内存的最终值变成 `3`,

因此,在最初,执行完所有的赋值后,虽然 `a`, `b`, `c` 最终都指向同一块内存,但是由于 `a` 现在指向 `b`,并且这块内存的值被设置为 `3`,所以最终的输出应当为:3, 3, 3

3 strcat 字符串拼接:

有以下程序( strcat函数用以连接两个字符串)

#include <stdio.h>
#include <string.h>

int main() {
    char a[20] = "ABCD\OEFG\0"; // 假设你想要的是这个字符串,并且'\'是普通的字符
    char b[] = "IJK";
    strcat(a, b);
    printf("%s\n", a); // 输出将是 "ABCDOEFGIJK"
    return 0;
}

程序运营后的输出结果是? ABCDOEFGIJK

  • 在C语言中,\\是反斜杠的转义字符。如果你期望在字符串中包含反斜杠(\),你需要写成\\

在代码:

char a[20] = "ABCD\OEFG\0"; 

由于 \O 被解释为一个转义序列(O 并没有对应的转义字符,因此它不会被特殊处理),所以 \O 实际上被视为字符 O


strcat:

在 C 语言中,strcat 函数用于连接两个字符串。它的原型定义在 <string.h> 头文件中。strcat 将源字符串追加到目标字符串的末尾。

函数原型
char *strcat(char *dest, const char *src);
参数

dest:目标字符串,必须有足够的空间来容纳拼接后的结果。
src:源字符串,将被追加到目标字符串的末尾。

返回值

返回 dest 指向的字符串的指针。

注意事项

dest 必须足够大,以容纳追加后的整个字符串(包括终结的空字符)。
dest 字符串必须以空字符 ‘\0’ 结束。
使用 strcat 时要小心可能导致缓冲区溢出。

示例代码

以下是一个使用 strcat 的示例:

#include <stdio.h>  
#include <string.h>  

int main() {  
    char dest[50] = "Hello, "; // 目标字符串,需要有足够的空间  
    const char *src = "World!"; // 源字符串  

    strcat(dest, src); // 进行字符串拼接  

    printf("拼接结果: %s\n", dest); // 输出: 拼接结果: Hello, World!  

    return 0;  
}  

这个示例中,dest 中的内容和 src 被拼接在一起,最终输出为 “Hello, World!”。


4 指针数组:

指针数组——>是一个数组
数组指针——>是一个指针

有定义语句:int *p[4];以下选项中与此语句等价的是

A. int p[4];
B. int **p;
C. int *(p「4」);
D. int (*p)「4」;

  • A. int p[4]; - 这是一个包含4个int类型元素的数组,不是指针数组,所以A选项不正确。

  • B. int **p; - 这是一个指向指针的指针,它本身不是数组,而是一个单独的指针,可以指向一个指向int的指针。这与指针数组不同,所以B选项不正确。

  • C. int *(p「4」); - 这个选项的语法是不正确的

  • D. int (*p)[4]; - 这个选项定义了一个指针p,它指向一个包含4个int类型元素的数组。

所以好像没有正确答案?有了解的同学可以在评论区留言!

int *p[4]; 表示一个包含 4 个 int 指针的数组。以下是一些等价的定义写法:

  1. 指针数组类型的定义:

    int *p[4];
    
  2. 使用 typedef 定义的方式:

    typedef int* IntPtr;
    IntPtr p[4];
    
  3. 结合括号明确指针数组的含义:

    int *(*p)[4];
    

    然而注意这种写法通常是错误的理解,在正确的上下文中可以理解为指向一个数组的指针。

  4. 通过创建一个指向指针的数组:

    int **p;
    

不过,最后一个 int **p; 并不完全等价,因为它表示一个指向 int 指针的指针,而并不是一个 int 指针的数组。

实际上,最简单的等价写法就是仍然保持原来的写法 int *p[4];,或者通过类型定义来增强可读性。


5 sizeof() & strlen()

#include <stdio.h>
#include <string.h>

int main() {
    char x[] = "STRING";
    x[0] = 0;
	x[1] = '\0';
	x[2] = '0';
    printf("%d %d\n", sizeof(x),strlen(x)); // 输出将是 "ABCDOEFGIJK"
    return 0;
}

程序运营后的输出结果是?

让我们一步步分析这个程序:

首先,定义了一个字符数组 x,初始化为 “STRING”。这个数组的大小是7(6个字符加上一个隐含的结束符’\0’)。

然后对数组进行了如下修改:

x[0] = 0; // 将第一个字符设为 NULL 字符,注意这不是‘0‘
x[1] = '\0'; // 将第二个字符设为 NULL 字符
x[2] = '0'; // 将第三个字符设为字符 '0'

让我们看看这两个函数的结果:

  • sizeof(x) 返回数组 x 的总大小(以字节为单位)。这个值在数组定义时就确定了,不会因为后续的修改而改变。所以 sizeof(x) 的结果是 7。

  • strlen(x) 返回字符串的长度,它会从字符串的开始计数,直到遇到第一个 NUL 字符(‘\0’)。在这里,x[0] 已经被设置为 NUL 字符,所以 strlen(x) 的结果是 0。

因此,程序的输出结果是:7 0

解释:
7 是数组 x 的大小(以字节为单位)
0 是字符串 x 的长度(因为第一个字符就是 NUL 字符)


6 一些基础的知识

1

仅由顺序、选择(分支)和反复(循环)结构构成的程序是____程序。

正确答案: 结构化

题目描述的是程序设计中的三种基本控制结构:顺序、选择(分支)和反复(循环)。当一个程序仅由这三种控制结构组成时,我们称这样的程序为结构化程序。结构化编程是一种编程范式,它通过限制代码结构来提高程序的清晰度、质量以及开发效率。


2

数据库设计的四个阶段是:需求分析,概念设计,逻辑设计,____

正确答案: 物理设计

数据库设计通常包括以下几个阶段:

需求分析:确定用户对数据库系统的需求。
概念设计:根据需求分析的结果建立概念模型,常用E-R图表示。
逻辑设计:将概念模型转换成特定DBMS支持的数据模型。
物理设计:考虑具体的存储方案,如文件组织形式、索引策略等,以优化性能。


3

数据库设计中反映用户对数据规定的模式是

A. 内模式
B. 概念模式
C. 外模式
D. 设计模式

关键词:用户

在数据库设计中,为了从不同角度描述和抽象数据,通常会涉及三种模式:内模式、概念模式和外模式。

  • 内模式:这是数据库的物理存储结构的描述,包括数据的物理位置、存储方式、索引结构等。它与数据库的硬件和操作系统紧密相关。
  • 概念模式:也称为全局模式或逻辑模式,它描述了整个数据库的逻辑结构,包括所有数据元素的逻辑关系、数据类型、数据约束等。这是数据库设计者从整体角度看待数据库的结果。
  • 外模式:也称为子模式或用户模式,它是从用户的角度看到的数据库的局部逻辑结构。每个用户可能只关心数据库中的部分数据,外模式就反映了这部分数据及其结构。因此,外模式是与特定用户相关的。

考虑到上述三种模式的定义和目的:

内模式主要关注数据的物理存储,与用户对数据的规定无直接关系。

概念模式虽然描述了整个数据库的逻辑结构,但它不是从特定用户的角度出发的。

外模式是从用户的角度描述的,它反映了用户对数据的需求和规定。

因此,最符合题目要求的答案是外模式。

至于“设计模式”,它并不是数据库设计中的一个标准术语,所以不应作为此题的答案。


4

面向对象方法中,继承是指

A. 一组对象所具有的相似性质
B. 一个对象具有另一个对象的性质
C. 各对象之间的共同性质
D. 类之间共享属性和操作的机制

在面向对象方法中,继承的核心概念是类之间共享属性和操作,因此最准确的答案是:D

虽然选项 B 描述了一种特性,但 D 更清晰地表达了继承的机制。


5

下面描述中,不属于软件危机表现的是

A. 软件过程不规范
B. 软件开发生产率低
C. 软件质量难以控制
D. 软件成本不断提高

在提供的选项中,不属于软件危机表现的是:A

软件危机通常与软件开发的效率、成本和质量等问题相关,而“软件过程不规范”虽然可能是导致软件危机的一个因素,但不直接描述软件危机的表现。其他选项(B、C、D)则直接反映了软件开发中的危机状态。


6

软件测试的目的是

A. 评估软件可靠性
B. 发现并改正程序中的错误
C. 改正程序中的错误
D. 发现程序中的错误

正确答案是:D.

解析:软件测试是一个旨在找出软件缺陷或错误的过程。它帮助确保软件产品能够满足业务需求,并且在发布前达到预期的质量标准。虽然通过测试可以间接地评估软件的可靠性(选项A),并且测试过程中发现的问题通常会反馈给开发团队进行修正,但“改正错误”(选项B和C)实际上是软件调试阶段的任务,而不是测试直接的目标。测试人员的主要职责是识别问题所在,而修复这些问题是开发者的工作。


明天开考,加油!在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2150627.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【扩展组件】上

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ 子系统开发内核 轻量系统内核&#xff08;LiteOS-M&#xff09; 轻量系统内核&#…

CSS01-语法规范、基础选择器

一、CSS语法规范 示例&#xff1a; 二、CSS的基础选择器 选择器(选择符)就是根据不同需求把不同的标签选出来这就是选择器的作用。 简单来说&#xff0c;就是选择标签用的。 选择器的分类&#xff1a; 1、标签选择器 2、类选择器&#xff08;开发最常用&#xff09; 长字符命名…

本地搭建我的世界服务器(JAVA)简单记录

网上参考教程挺多的&#xff0c;踩了不少坑&#xff0c;简单记录一下&#xff0c;我做的是一个私人服务器&#xff0c;就是和朋友3、4个人玩。 笨蛋 MC 开服教程 先放一个比较系统和完整的教程&#xff0c;萌新可用&#xff0c;这个教程很详细&#xff0c;我只是记录一下自己的…

相亲交友系统源码 连接你我,不再孤单

在这个数字时代&#xff0c;人们的生活方式已经发生了巨大的变化。随着工作压力增大和社会竞争激烈化&#xff0c;很多人发现自己很难有时间和机会去结识新的朋友&#xff0c;更不用说找到适合自己的伴侣了。相亲交友系统正是在这种背景下应运而生&#xff0c;它不仅简化了交友…

操作系统 | 学习笔记 | | 王道 | 5.2 设备独立软件

5.2 设备独立性软件 IO核心子系统 磁盘IO也属于IO调度问题 5.2.1 与设备无关的软件 与设备无关的软件是I/O系统的最高层软件&#xff0c;它的下层是设备驱动程序。 设备保护&#xff1a; 操作系统需要实现文件保护功能&#xff0c;不同的用户对各个文件有不同的访问权限&am…

BUUCTF-MISC-隐藏的钥匙

下载题目文件&#xff0c;获得了一张格式为jpg的路飞图片 按照习惯&#xff0c;首先使用十六进制编译器打开文件&#xff0c;这里我使用winhex打开文件 首先考虑有没有flag直接隐写在文件中&#xff0c;按照图示步骤查找flag字段 我们查到了flag&#xff0c;通过经验和图中base…

[Python]案例驱动最佳入门:股票分析 Python数据分析与可视化实战

在股票市场中&#xff0c;价格波动和投资决策紧密相连。通过数据分析&#xff0c;投资者可以识别市场趋势、价格波动背后的规律&#xff0c;并做出明智的投资决策。Python凭借其强大的数据处理和可视化功能&#xff0c;在金融市场分析中被广泛应用。本文将通过一个假设的股票市…

java踩坑

1.mybatis在idea可以正常运行&#xff0c;但是打jar包后&#xff0c;就报链接超时&#xff0c;可能是参数设置有问题&#xff0c;但是idea自动忽略了。 出问题的配置&#xff1a;&#xff08;圈出来的地方乱码了&#xff0c;idea有纠错能力&#xff0c;它自动调整为正确的&…

three.js shader 实现天空中白云

three.js shader 实现天空中白云 预览&#xff1a; https://threehub.cn/#/codeMirror?navigationThreeJS&classifyshader&idwhiteCloud 更多案例 可见 预览&#xff1a; https://threehub.cn import * as THREE from "three"; import { OrbitControls …

web基础—dvwa靶场(十二)JavaScript Attacks

JavaScript Attacks (前端攻击) 本章节中的攻击旨在帮助您了解如何在浏览器中使用 JavaScript 以及如何对其进行操作&#xff0c;攻击可以通过分析网络流量来实现&#xff0c;但这不是本章节的重点而且可能要困难得多。 只需提交单词 “success” 即可攻击成功&#xff0c;显然…

开石开放式耳机怎么样?南卡、开石、声阔开放式耳机测评

​作为一名多年的数码博主&#xff0c;我本人也是个耳机发烧友&#xff0c;我最近注意到数码圈特别是蓝牙耳机圈中&#xff0c;有一种耳机特别火&#xff0c;叫开放式耳机&#xff0c;这类耳机的佩戴舒适度是非常高的&#xff0c;这也激起了我对这类耳机的兴趣&#xff0c;因此…

感知笔记4:YOLO 3D 物体定位

如何在 ROS 中使用 YOLO 如何在 2D 中检测人和大象如何在 3D 中检测人和大象 有许多可用的深度学习库。您可能听说过&#xff1a;Keras、TensorFlow 和 Darknet。 在这里我们将使用 Darknet&#xff0c;因为它实现了 YOLOv3&#xff0c;这是一个对象检测模型。它非常快&…

jdk版本更换以及遇到的问题略谈(以jdk1.8和jdk11为例)

目录 在我看来 遇到的问题 原因以及解决方法 方法一&#xff1a;禁止误改误删 方法二&#xff1a;bat文件驱动运行 方法三&#xff1a;cmd命令 方法四&#xff1a;修改注册表&#xff08;不推荐&#xff09; 最近在进行漏洞复现&#xff08;shiro550&#xff09;的时候&…

无人机如何突破高海拔高寒飞行环境?

无人机在突破高海拔高寒飞行环境方面&#xff0c;需要解决一系列技术难题和挑战。以下是一些主要的技术手段和策略&#xff1a; 1. 无人机平台设计与优化 增强机体结构&#xff1a;采用轻质高强度的材料&#xff0c;如碳纤维、复合材料等&#xff0c;减轻机身重量&#xff0c…

决策树算法中篇

手动计算实现决策树分类 数据整合 X[真实用户] y X 计算未划分信息熵 s X[真实用户] p s.value_counts()/s.size (p * np.log2(1/p)).sum() 按照日志密度进行划分 x X[日志密度].unique() x.sort() # 如何划分呢&#xff0c;分成两部分 for i in range(len(x) - 1):sp…

【目标检测论文必备】通俗易懂地讲解用绿色、蓝色、红色框可视化描述YOLO模型权重对于单个图片的训练效果(TP、FP、FN)

可视化步骤 一、生成自定义权重对图片的预测类别坐标信息二、创建需要预测的文件夹三、可视化运行 一、生成自定义权重对图片的预测类别坐标信息 新建脚本文件/path/to/your/ultralytics/savetxt.py放入对应参数运行会得到一个个独立的/path/to/your/runs/detect/output/outpu…

移动技术开发:简单计算器界面

1 实验名称 简单计算器界面 2实验目的 掌握基本布局管理器的使用方法和基本控件的使用方法&#xff0c;以及事件监听处理的使用方法 3 实验源代码 布局文件代码&#xff1a; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:and…

2024年港澳台华侨生联考分数线继续更新来啦

导读 在最近的一系列分享中&#xff0c;我们和大家一同分享了2024年港澳台华侨生联考的分数线。今天我们继续和大家一起分享一些2024年港澳台联考的高校录取分数线吧&#xff01; 首都师范大学 首都师范大学和首都医科大学作为被低估的两所高校&#xff0c;这两年的分数线也是…

web基础—dvwa靶场(十)XSS

XSS(DOM) 跨站点脚本&#xff08;XSS&#xff09;攻击是一种注入攻击&#xff0c;恶意脚本会被注入到可信的网站中。当攻击者使用 web 应用程序将恶意代码&#xff08;通常以浏览器端脚本的形式&#xff09;发送给其他最终用户时&#xff0c;就会发生 XSS 攻击。允许这些攻击成…

Linux ubuntu debian系统安装UFW防火墙图形化工具GUFW

GUFW是UFW的图形化前端&#xff0c;可以通过以下命令安装&#xff1a; sudo apt install gufw安装成功后&#xff0c;可以通过应用程序菜单启动GUFW&#xff0c;在图形界面中&#xff0c;可以方便地添加、修改和删除规则&#xff0c;查看状态和日志。