期末C语言易错知识点整理

1.在定义多维数组时,除了最左边的维度,其余的维度必须明确指定大小

2.int m[1][4]={4}; 定义的是一个 1 行 4 列的二维数组,初始化时提供了一个元素 4,其余元素默认初始化为 0,因此是正确的。

3.二维数组 a[3][6] 中的索引从 0 开始。也就是说,第一维度(行)的索引范围 是 0 到 2,第二维度(列)的索引范围是 0 到 5。

下面是该数组的索引结构:

a[0][0], a[0][1], a[0][2], a[0][3], a[0][4], a[0][5]

a[1][0], a[1][1], a[1][2], a[1][3],  a[1][4], a[1][5]

a[2][0], a[2][1], a[2][2], a[2][3], a[2][4], a[2][5]

4.在C语言中,如果一个二维数组的部分元素没有显式初始化,未初始化的元素会自动被设为0。

5.在字符数组的定义和初始化过程中,双引号 " 和单引号 ' 所代表的含义和用法有所不同:

双引号 " 在字符数组中的用法:

双引号用于表示字符串常量。当你使用双引号来初始化一个字符数组时,它会自动包含字符串的所有字符,并在末尾添加一个空字符 \0 作为字符串的结束标志。

例如,char str[] = "Hello"; 会创建一个字符数组 str,其内容为 'H', 'e', 'l', 'l', 'o', '\0'。

单引号 ' 在字符数组中的用法:

单引号用于表示单个字符常量。如果你使用单引号来初始化一个字符数组,每个单引号中只能包含一个字符。

例如,char arr[] = {'H', 'e', 'l', 'l', 'o'}; 是一个有效的字符数组定义,但不会自动添加 \0。这意味着这个数组虽然包含了字符,但不符合 C 字符串的规范,因为缺少字符串结束标志。

6.char s1[10]; s1 = "Ctest";(×

正确的方式:

char s1[10];

strcpy(s1, "Ctest");

②char s1[10] = "Ctest";

7.

 getc()

该函数用于从输入流中获取一个字符,并不是用于读取整个字符串。

 gets()

该函数可以读取一行输入,包括空格字符,直到遇到换行符为止。因此,它适用于从键盘读入含有空格字符的字符串。

 getchar()

该函数一次读取一个字符,也不适合读取包含空格的整个字符串。

scanf()

该函数在遇到空格、制表符或换行符时会停止读取,因此不适合读取包含空格的整个字符串,除非使用特定的格式说明符来处理这一点(如使用 %[^\n])。

8.

\065 是一个八进制转义序列,表示字符 '5',占 1 个字符。

\xff 是一个十六进制转义序列,表示字符 ÿ,占 1 个字符。

9.标准的C语言标识符中不允许出现中划线(-),但是允许出现下划线(_)

10.

用户标识符可以包含字母(大小写均可)和数字。不能以数字开头,但可以包含数字。可以包含下划线 _,但不能以下划线开头。不可以使用C语言中的关键字(如 int, float, if, for等)作为用户标识符,保留字指的是标准中定义的一些特殊用途的标识符,例如 typedef, extern等,这些也不能用作用户标识符。

11.C语言中有逻辑类型 F

12.int a=b=0;是正确的定义语句。 F

13.假定x和y为double型,则表达式x=2,y=x+3/2的值是3.500000  F

14.C语言中不能用关系运算符比较字符串大小

15.要进行字符串内容的比较,应该使用 strcmp 或 strncmp 等字符串处理函数,而不是直接使用关系运算符。

16.

位运算符(&, |, ^, ~, <<, >>)和 求模运算符(%)是必须使用整型数据的运算符。在这些运算符中,操作数必须是整型类型,如 int、short、long 等。

17.

单目运算符 ++(自增)和 --(自减)用于对变量进行增减操作。它们的运算对象必须是变量

18.

用do-while语句构成的循环,在while后的表达式为(假)时结束循环 F

19.goto 语句可以用于跳出循环

20.

假定int类型变量占用两个字节,其有定义:int  x[10]={0,2,4};,则数组x在内存中所占字节数是6 F(20)

21.若有定义:int a[2][3];对a数组元素正确引用的是a[2][3] F

22.

%d:以十进制整数形式输出变量 k 的值。

%o:以八进制形式输出变量 k 的值。

%x:以十六进制形式输出变量 k 的值(小写字母)。

23.

C语言中用于结构化程序设计的三种基本结构是顺序结构、选择结构、循环结构

24.strlen() 不会计算结尾的空字符 '\0',所以计算的长度确实是6

25.空字符 '\0' 的 ASCII 值是 0。

26.

a > b > c看起来很直观,但在C语言中,它不是像数学表达式那样工作。在C语言中,这个表达式会被解析为两个独立的比较操作:

a > b 会先计算,结果是 1(因为 5 > 4 为真)。

然后,将这个结果 1 与 c 比较: 1 > 3,结果是 0(因为 1 不大于 3)。

27.

28.

在C语言中,数组名在大多数表达式上下文中会被隐式地转换为指向其第一个元素的指针。这种转换叫做“数组到指针”的转换。具体来说,当数组名出现在表达式中并且不是作为&、sizeof或字符串初始化(例如字符数组)的操作数时,它就会转换为指向数组第一个元素的指针。

以下是一些常见的情形,在这些情形中数组名会隐式地转换为指向数组第一个元素的指针:

作为函数参数传递时:

void foo(int *p);

int main() {

    int x[10];

    foo(x);

}

在这里,x作为参数传递给函数foo时,它会被隐式地转换为指向x[0]的指针,即&x[0]。

在表达式中使用时:

int x[10];int *p = x;

在这里,x在赋值给指针p时,会被隐式地转换为指向x[0]的指针。

在算术运算中使用时:

int x[10];int *p = x + 1;

在这里,x在进行加法运算时,被隐式地转换为指向x[0]的指针,然后x + 1表示指向第二个元素的指针,即&x[1]。

间接访问数组元素时:

int x[10];int y = *x;

在这里,x在解引用操作*x中被隐式地转换为指向x[0]的指针,因此*x等价于x[0]。

简而言之,数组名在大多数表达式上下文中会自动转换为指向其第一个元素的指针,这是C语言的一种特性,用于方便处理数组和指针的关系。

29.冒泡

#include <stdio.h>

// 定义冒泡排序函数

void bubbleSort(int arr[], int n) {

    int i, j, temp;

    for (i = 0; i < n - 1; i++) {

        for (j = 0; j < n - i - 1; j++) {

            // 如果当前元素大于后面的元素,则交换它们

            if (arr[j] > arr[j + 1]) {

                temp = arr[j];

                arr[j] = arr[j + 1];

                arr[j + 1] = temp;

            }

        }

    }

}

int main() {

    int arr[] = {64, 34, 25, 12, 22, 11, 90};

    int n = sizeof(arr) / sizeof(arr[0]);

    int i;

    printf("原始数组: \n");

    for (i = 0; i < n; i++) {

        printf("%d ", arr[i]);

    }

    printf("\n");

    bubbleSort(arr, n);

    printf("排序后的数组: \n");

    for (i = 0; i < n; i++) {

        printf("%d ", arr[i]);

    }

    printf("\n");

    return 0;

}

30.素数

#include <stdio.h>

int main()

{

    int j;

    printf("输入一个数: ");

    scanf("%d", &j);

    

    if (j <= 1) {

        printf("%d 不是素数", j);

    } else {

        int i;

        for (i = 2; i < j; i++) {

            if (j % i == 0) {

                printf("%d 不是素数", j);

                break;

            }

        }

        if (i == j) {

            printf("%d 是素数", j);

        }

    }

    

    return 0;

}

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

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

相关文章

谷粒商城学习笔记-05-项目微服务划分图

文章目录 一&#xff0c;商城业务服务-前端服务二&#xff0c;商城业务服务-后端服务三&#xff0c;存储服务四&#xff0c;第三方服务五&#xff0c;服务治理六&#xff0c;日志七&#xff0c;监控预警系统1&#xff0c;Prometheus2&#xff0c;Grafana3&#xff0c;Prometheu…

科技助力农业——土壤化肥测试仪

在农业生产中&#xff0c;土壤养分是作物健康生长的关键因素。然而&#xff0c;如何科学、精准地评估土壤养分含量&#xff0c;指导农民合理施肥&#xff0c;一直是农业科研和技术人员努力的方向。近年来&#xff0c;随着科技的进步&#xff0c;土壤化肥测试仪作为一种新型农业…

clion远程开发

clion远程开发 简要概括&#xff1a; 建立 SFTP 通讯&#xff0c;创建远程目录与本地目录的映射文件夹&#xff0c;就可以把本机文件夹中的文件用鼠标右键选中上全传&#xff0c;打开自动同步功能&#xff0c;后面更改文件就可以自动同步文件了。 一.新建SFTP远程链接服务 …

Unity游戏帧率查看软件Fraps

Download Fraps 3.5.99 free version 下载、安装、运行这个软件&#xff0c;左上角就会自动显示帧率

Java面试八股之MYISAM和INNODB有哪些不同

MYISAM和INNODB有哪些不同 MyISAM和InnoDB是MySQL数据库中两种不同的存储引擎&#xff0c;它们在设计哲学、功能特性和性能表现上存在显著差异。以下是一些关键的不同点&#xff1a; 事务支持&#xff1a; MyISAM 不支持事务&#xff0c;没有回滚或崩溃恢复的能力。 InnoDB…

通义千问 Qwen2,登顶国内第一大模型!

大家好&#xff0c;我是煎鱼。 7 月 9 日起&#xff0c;OpenAI 将正式终止对部分地区&#xff08;包含中国&#xff09;提供 API 服务&#xff0c;引起业内一片哗然&#xff0c;纷纷开始自检&#xff0c;找新的国内可用的国产化替代方案。 此时我有一个朋友的 Boss&#xff0c;…

【论文阅读】LLM+3D (1)

文章目录 1. 【CoRL 2023】SayPlan: Grounding Large Language Models using 3D Scene Graphs for Scalable Robot Task Planning动机摘要和结论引言模型框架3.1 Problem Formulation3.2 Preliminaries 2. ShapeLLM: Universal 3D Object Understanding for Embodied Interacti…

leetcode 403周赛 包含所有1的最小矩形面积||「暴力」

3197. 包含所有 1 的最小矩形面积 II 题目描述&#xff1a; 给你一个二维 二进制 数组 grid。你需要找到 3 个 不重叠、面积 非零 、边在水平方向和竖直方向上的矩形&#xff0c;并且满足 grid 中所有的 1 都在这些矩形的内部。 返回这些矩形面积之和的 最小 可能值。 注意…

Node.js的下载、安装和配置

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

返回值处理器器【Spring源码学习】

定义返回值类型处理器的组合&#xff1b; public static HandlerMethodReturnValueHandlerComposite getReturnValueHandler(){HandlerMethodReturnValueHandlerComposite composite new HandlerMethodReturnValueHandlerComposite();// 处理ModelAndViewcomposite.addHandle…

Elasticsearch实战教程:如何使用集群索引数据来进行统计多个数据?

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引入 Elasticsearch聚合查询是一种强大的工具&#xff0c;允许我们对索引中的数据进行复杂的统计分析和计算。本文将详细解释一…

CFS三层内网渗透——外网打点(一)

目录 外网打点 先爆破一下看看有没有啥可进攻路径 尝试那个可疑的路径发现是thinkphp这个框架&#xff0c;同时也知道了版本&#xff0c;那就nday打吧 写入php ​编辑写入php成功&#xff0c;简简单单nday拿下​编辑 蚁剑rce尝试链接 打点成功 外网打点 先爆破一下看看有…

(自适应手机端)保健品健康产品网站模板下载

(自适应手机端)保健品健康产品网站模板下载PbootCMS内核开发的网站模板&#xff0c;该模板适用于装修公司网站、装潢公司网站等企业&#xff0c;当然其他行业也可以做&#xff0c;只需要把文字图片换成其他行业的即可&#xff1b;自适应手机端&#xff0c;同一个后台&#xff0…

己内酰胺纯化除杂的最佳工艺

己内酰胺纯化除杂的最佳工艺包括结晶法、离子交换树脂法、精馏法和萃取法等&#xff0c;每种方法都有其特定的应用场景和优缺点。以下是对这些方法的详细介绍&#xff1a; 最佳工艺介绍 ● 结晶法&#xff1a;通过调节pH值&#xff0c;使己内酰胺在特定条件下结晶&#xff0…

数字流的秩

题目链接 数字流的秩 题目描述 注意点 x < 50000 解答思路 可以使用二叉搜索树存储出现的次数以及数字的出现次数&#xff0c;方便后续统计数字x的秩关键在于构建树的过程&#xff0c;如果树中已经有值为x的节点&#xff0c;需要将该节点对应的数字出现次数加1&#xf…

2025深圳国际消费电子展览会

2025深圳国际消费电子展览会 时间&#xff1a;2025年06月25-27日 地点&#xff1a;深圳国际会展中心(新馆) 详询主办方陆先生 I38&#xff08;前三位&#xff09; I82I&#xff08;中间四位&#xff09; 9I72&#xff08;后面四位&#xff09; 展会介绍&#xff1a; 20…

父子情深短视频:成都柏煜文化传媒有限公司

成都柏煜文化传媒有限公司 &#xff0c;镜头下的温馨时光 在这个快节奏、高压力的时代&#xff0c;人们往往在忙碌中忽略了身边最珍贵的情感纽带。然而&#xff0c;在社交媒体的浪潮中&#xff0c;有一种短视频以其独特的魅力&#xff0c;悄然温暖了无数人的心房——那就是父…

从零开始开发跑腿配送系统:技术选型与架构设计

开发一个跑腿配送系统涉及多个技术栈和模块&#xff0c;从前端到后端&#xff0c;再到数据库和实时通信&#xff0c;每一个环节都至关重要。本文将详细介绍从零开始开发跑腿配送系统的技术选型与架构设计&#xff0c;并提供部分代码示例以帮助理解。 一、技术选型 前端技术&am…

Linux/Ubuntu访问局域网共享文件夹

文件夹中找到“Other Location”&#xff0c;输入“smb:IP地址/共享文件夹名称”&#xff0c;然后点击connect后者直接回车即可&#xff01; End&#xff01;

五.核心动画 - 图层的变换(平移,缩放,旋转,3D变化)

引言 在上一篇博客中&#xff0c;我们研究了一些视觉效果&#xff0c;在本篇博客中我们将要来讨论一下图层的旋转&#xff0c;平移&#xff0c;缩放&#xff0c;以及可以将扁平物体转换成三维空间对象的CATransform3D。 图层变换 图层的仿射变换 在视图中有一个transform属…