PTA—C语言期末复习(判断题)

1. C语言程序是从源文件的第一条语句开始执行的  (F)

在 C 语言中,程序是从 main 函数开始执行的,而不是从源文件的第一条语句开始执行

2. 若变量定义为double x;,则x % 2是符合C语言语法的表达式 (F)

在 C 语言中,% 运算符(取余运算符)只能用于整数类型的操作数

3. 关于C语言指针的运算:指针只有加减操作,没有乘除操作。指针可以加常数、减常数;相同类型的指针可以相减,不可以相加  T

在 C 语言中,指针通常只有加减操作,没有乘除操作

 

指针可以加常数、减常数,这通常用于在数组中移动指针的位置。例如,如果有一个指向数组元素的指针 p ,p + 1 会指向数组中的下一个元素。

 

相同类型的指针可以相减,相减的结果表示两个指针之间的元素个数。但相同类型的指针不可以相加,因为相加的结果在大多数情况下没有明确的实际意义

4. 在 switch 语句中,多个 case 标号可以共用一组语句   T

#include <stdio.h>int main() {int num = 2;switch (num) {case 1:case 2:case 3:printf("The number is 1, 2 or 3.\n");break;case 4:printf("The number is 4.\n");break;default:printf("The number is not in the expected range.\n");}return 0;
}

在上述示例中,case 1 、case 2 和 case 3 共用了一组语句。

5.  语言的三种循环(for 循环、while 循环、do-while 循环)是可以互相嵌套的  T

6. 以下程序段的功能是计算20的阶乘。 (F)

int i;
double product;
product = 0;
for (i = 1; i <= 20; i++){ product = product * i;
}

初始化时将 product 初始化为 0 是不正确的。阶乘的计算是从 1 开始连续相乘,如果初始化为 0 ,那么后续的乘法运算结果始终为 0

7. 函数的实参可以是常量,变量或表达式  T

例如,定义一个函数 void myFunction(int num) ,在调用这个函数时,可以这样传递实参:

  • 常量:myFunction(5) ,这里的 5 就是常量。
  • 变量:int a = 10; myFunction(a) ,这里的 a 是变量。
  • 表达式:myFunction(2 + 3) ,这里的 2 + 3 是表达式。

8. 按照C语言的规定,在参数传递过程中,既可以将实参的值传递给形参,也可以将形参的值传递给实参,这种参数传递是双向的。 (F)

在 C 语言中,参数传递只有值传递和地址传递。值传递时,形参的改变不会影响实参;地址传递时,可以通过指针间接修改实参的值。但总体来说,参数传递是单向的,从实参到形参,不存在形参的值直接传递给实参的情况

9. 在对数组全部元素赋初值时,不可以省略行数,但能省略列数   F

在对数组全部元素赋初值时,可以省略行数,但不能省略列数

 

例如,定义一个整型数组 int arr[] = {1, 2, 3, 4, 5}; ,这里省略了行数。

 

但如果是二维数组,如 int arr[][3] = {{1, 2, 3}, {4, 5, 6}}; ,列数不能省略。

10. 判断字符串a是否大于b,可以表示为 if (strcmp(a,b)>0)    T

在 C 语言中,strcmp 函数用于比较两个字符串。如果 strcmp(a, b) > 0,则表示字符串 a 大于字符串 b 。

11. "a" 和 'a'是等价的。  (F)

"a" 是一个字符串,它实际上包含两个字符:字符 'a' 和字符串结束标志 '\0' 。

 

'a' 是一个字符。  所以 "a" 和 'a' 不等价。

12. 结构体成员的类型必须是基本数据类型  F

结构体成员的类型不仅可以是基本数据类型(如 intfloatchar 等),还可以是其他结构体类型、指针类型、数组类型等

#include <stdio.h>struct Point {int x;int y;
};struct Person {char name[20];int age;struct Point location;  // 结构体类型作为成员float *scores;  // 指针类型作为成员int grades[5];  // 数组类型作为成员
};int main() {struct Person p;return 0;
}

13. 指向结构体变量的指针可以作函数参数,实现传址调用  T

通过传递结构体指针作为参数,可以在函数内部修改结构体变量的成员值,并且这些修改会反映到函数外部调用处的结构体变量上

#include <stdio.h>struct Student {int id;char name[20];
};void modifyStudent(struct Student *stu) {stu->id = 101;strcpy(stu->name, "Alice");
}int main() {struct Student stu = {1, "Bob"};printf("Before modification: ID = %d, Name = %s\n", stu.id, stu.name);modifyStudent(&stu);printf("After modification: ID = %d, Name = %s\n", stu.id, stu.name);return 0;
}

在上述示例中,modifyStudent 函数接受一个指向 struct Student 类型的指针,在函数内部修改了结构体成员的值,实现了通过指针的传址调用。

14. 共用体变量可以作结构体的成员,结构体变量也可以作共用体的成员。 (T) 

共用体变量可以作为结构体的成员,结构体变量也可以作为共用体的成员。这种嵌套使用在 C 语言中是允许的,可以根据具体的编程需求灵活运用,以实现更复杂的数据结构。

15. 在单向链表中,头指针中存放的是头结点的内容。 T

头指针存放的是头结点的地址,而不是头结点的内容

16. 共用体变量可以作结构体的成员,结构体变量也可以作共用体的成员  T

共用体和结构体可以相互嵌套使用

17. 单向链表中的每个结点都需要动态分配内存空间  T

单向链表的节点通常是在运行时动态分配内存来创建的。

18. 通常使用结构的嵌套来定义单向链表结点的数据类型   (T)

常见的单向链表节点的数据类型是通过结构体嵌套指针来定义的

19. 一个结构类型变量所占的内存空间是其各个成员所占内存空间之和   (T)

结构体变量的内存空间大小等于其所有成员变量所占内存空间的总和,可能会存在字节对齐的情况导致实际占用空间略大于各成员简单相加。

20. 用链表代替数组进行数据操作时,查询更加方便。  F

链表在插入和删除操作上比数组更具优势

21. 循环链表的最后一个元素指向链表的第一个元素。 F

在循环链表中,最后一个元素的指针指向链表的第一个元素,从而形成一个环形结构

22. 函数名代表该函数的入口地址。因此,可用函数名给指向函数的指针变量赋值  (T) 

#include <stdio.h>void myFunction() {printf("Hello!\n");
}int main() {void (*ptr)();  // 定义一个指向函数的指针ptr = myFunction;  // 用函数名给指针赋值// 通过指针调用函数(*ptr)();return 0;
}

在上述代码中,定义了一个指向 void 类型、无参数函数的指针 ptr ,然后将 myFunction 函数的地址赋给了 ptr ,之后通过解引用指针来调用函数。

23. 要通过函数调用来改变主调函数中某个变量的值,可以把指针作为函数的参数  T

因为指针传递的是变量的地址,在被调函数中对指针所指向的内存进行操作,就能够直接修改主调函数中变量的值。

#include <stdio.h>void modifyValue(int *ptr) {*ptr = 100;
}int main() {int num = 50;printf("Before modification: %d\n", num);modifyValue(&num);printf("After modification: %d\n", num);return 0;
}

在上述代码中,modifyValue 函数通过指针 ptr 改变了主调函数 main 中 num 的值。


推荐文章:

PTA—C语言期末复习(选择题)-CSDN博客


海漫浩浩,我亦苦作舟!大家一起学习,一起进步!  

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

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

相关文章

HTML流星雨

目录 写在前面 完整代码 代码分析 系列文章 写在最后 写在前面 岁月如梭&#xff0c;光阴似箭&#xff0c;不知不觉暑假就要来喽&#xff0c;本期小编用HTML给大家手搓了一个炫酷的流星雨动画&#xff0c;一起来看看吧。 完整代码 <!DOCTYPE html> <html lang…

项目风险管理系统有哪些?分享11款主流项目管理系统

本文将分享11款主流项目管理系统&#xff1a;PingCode、Worktile、StandardFusion、MasterControl、ClickUp、SAI360、Netwrix Auditor、MetricStream、Wrike、Celoxis、Zoho Projects。 在项目管理中&#xff0c;风险管理不仅是一个挑战&#xff0c;也是保证项目顺利进行的关键…

Linux Redis 服务设置开机自启动

文章目录 前言一、准备工作二、操作步骤2.1 修改redis.conf文件2.2 创建启动脚本2.3 设置redis 脚本权限2.4 设置开机启动2.5 验证 总结 前言 请各大网友尊重本人原创知识分享&#xff0c;谨记本人博客&#xff1a;南国以南i、 提示&#xff1a;以下是本篇文章正文内容&#x…

编程的难点在哪?是逻辑、算法,还是模块、框架的掌握?

&#x1f446;点击关注 回复『新人礼』获取学习礼包&#x1f446; 很多新手程序员在一开始都是满怀热情地投入到编程的学习&#xff0c;但却在学习过程中处处碰壁&#xff0c;导致放弃。 编程的难点在于逻辑、数学、算法&#xff0c;还是模块、框架、接口的掌握&#xff1f;但…

idea Error running ‘Application‘

1、Error running ‘Application’ Error running ApplicationError running Application. Command line is too long.Shorten the command line via JAR manifest or via a classpath file and rerun.找到 .idea/libraies/workspace.xml 中的 PropertiesComponent 属性&#…

大模型赋能全链路可观测性:运维效能的革新之旅

目录 全链路可观测工程与大模型结合---提升运维效能 可观测性&#xff08;Observability&#xff09;在IT系统中的应用及其重要性 统一建设可观测数据 统一建设可观测数据的策略与流程 全链路的构成和监控形态 云上的全链路可视方案 为什么一定是Copilot 大模型的Copilo…

mov和mp4区别是什么?苹果的原创和时代的宠儿

在数字媒体领域&#xff0c;视频格式的选择往往决定了观看体验的质量和文件的兼容性。在众多视频格式中&#xff0c;MOV和MP4无疑是最具代表性的两种&#xff0c;它们分别承载着苹果和互联网世界的技术革新与历史变迁。本文将带您穿越时间的长廊&#xff0c;探索MOV与MP4的发展…

区间DP——AcWing 320. 能量项链

区间DP 定义 区间动态规划&#xff08;Interval Dynamic Programming&#xff09;&#xff0c;简称区间DP&#xff0c;是动态规划领域的一个重要分支&#xff0c;专门用于解决涉及区间问题的最优化问题。这类问题通常需要在给定的一组区间上找到最优解&#xff0c;比如求解最…

福兰农庄携手越南NFC巨头朱雀桥薇妮她百香果饮料,深化品质合作

近日&#xff0c;国内知名果汁品牌福兰农庄成功与越南NFC行业领军者朱雀桥建立深入合作关系。为了进一步提升产品品质和市场竞争力&#xff0c;福兰农庄派遣专业团队前往越南&#xff0c;深入VINUT百香果饮料的生产线&#xff0c;学习其从原料采购到产品上市的严格操作流程。 在…

IAR 常见报错与实用小技巧(ZigBee)

一、报错 1.未发现选择目标 原因&#xff1a;硬件连接存在问题 解决方案&#xff1a;将数据线重新插拔或更换接口、数据线 2. 烧录终止 原因&#xff1a;烧录前未点击仿真器复位按钮 解决方案&#xff1a; 进行烧录前点击仿真器复位按钮&#xff08;下载过程中不能按&#xff…

数据结构与算法 - 图

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 图的定义和基本概念&#xff1a; 图&#xff08;Graph&#xff09;是一种由…

java+mysql图书管理系统

完整代码地址 1.运行效果图 2.主要代码 2.1.连接数据库 package com.my.homework.utils;import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;public class JDBCUtils {public static Connection getConnection() throws Exception {…

点云处理实战 点云平面拟合

目录 一、什么是平拟合 二、拟合步骤 三、数学原理 1、平面拟合 2、PCA过程 四、代码 一、什么是平拟合 平面拟合是指在三维空间中找到一个平面,使其尽可能接近给定的点云。最小二乘法是一种常用的拟合方法,通过最小化误差平方和来找到最优的拟合平面。 二、拟合步骤…

keepalived脑裂和haproxy

1.用keepalived管理nginx服务 7-1和7-2配置 #安装nginx systemctl stop firewalld setenforce 0 yum install epel-release.noarch -y yum install -y nginx systemctl start nginxvim /etc/nginx/nginx.confupstream web {server 192.168.91.102;server 192.168.91.10…

笔记本电脑升级实战手册[1]:开始之前的准备与清单

文章目录 前言&#xff1a;一、升级流程1. 备份2. 清灰换硅脂3. 扩展内存与硬盘4. 硬盘设置5. 系统重装6. 升级后性能测试 二、升级清单1. 工具清单2. 升级清单 总结&#xff1a; 前言&#xff1a; 将要毕业之际&#xff0c;发现我的笔记本电脑已经陪我“征战沙场”快有四年之…

揭秘教学新利器:SmartEDA电路仿真软件,让电子学习更生动!

在数字化教育浪潮中&#xff0c;一款名为SmartEDA的电路仿真软件逐渐崭露头角&#xff0c;以其直观、易操作的特点&#xff0c;为电子学习领域带来了革命性的变化。今天&#xff0c;就让我们一起探讨如何使用SmartEDA进行教学&#xff0c;让电子学习变得更加生动有趣&#xff0…

Android源码——Handler机制(一)

Android源码——Handler机制&#xff08;一&#xff09; Handler机制概述介绍Handler机制模型Handler机制架构 Handler机制源码解析ActivityThreadLooperHandler Handler机制概述 介绍 Handler是Android消息机制的上层接口。Handler可以将一个任务切换到Handler所在的线程中去…

网络物理隔离后 可以用保密U盘进行数据安全交换吗?

企业用的保密U盘通常被设计用于存储和传输敏感信息&#xff0c;以确保数据的安全和保密性。 在网络之间实现了物理隔离后&#xff0c;使用保密U盘进行数据安全交换是一种常见的做法。物理隔离确保了两个网络之间的完全分离&#xff0c;因此使用保密U盘可以作为一种安全的手段来…

第1章 物联网模式简介---物联网概述

物联网模式简介 物联网&#xff08;IoT&#xff09;在最近几年获得了巨大的吸引力&#xff0c;该领域在未来几年将呈指数级增长。这一增长将跨越所有主要领域/垂直行业&#xff0c;包括消费者、家庭、制造业、健康、旅游和运输。这本书将为那些想了解基本物联网模式以及如何混…

【大模型】大模型微调方法总结(四)

1. P-Tuning v1 1.背景 大模型的Prompt构造方式严重影响下游任务的效果。比如&#xff1a;GPT-3采用人工构造的模版来做上下文学习&#xff08;in context learning&#xff09;&#xff0c;但人工设计的模版的变化特别敏感&#xff0c;加一个词或者少一个词&#xff0c;或者变…