C语言简单测试总结
前言
在学C++语言之前回顾一下C中的一些知识.选用的是中国大学MOOC中C++程序设计(面向对象进阶)中的C语言水平评估测试题.
题目
The keyword "unsigned" can modify the keyword [ B ]
-
A.signed
-
B.long
-
C.long double
-
D.float
题解:unsigned是无符号的意识,通常在整数前面加
In the following strings, the correct C identifier is [ C ]
-
A.break
-
B.2d
-
C._256
-
D.foo-1
题解:不能是关键字,连接符,数字(不能写第一个)
The string "r\tu\r\"Okay?\"\n" will occupy [ D ] bytes memory.
-
A.15
-
B.18
-
C.12
-
D.13
题解:转义符算一个字节,一个字母算一个字节,/和?也算一个字节.
In C programming language, the result of statement 5 ^ 4 is [ D ]
-
A.4
-
B.3
-
C.2
-
D.1
题解:" ^ "这个是异或的意思.
For the statement: int* a[10],*b; the correct description is[ A ]
-
A.a can only be rvalue, but b can be lvalue
-
B.both a and b can only be rvalue
-
C.a can only be lvalue, but b can be rvalue
-
D.both a and b can only be lvalue
题解:这个涉及到指针数组,这个int* a[10]就是指数组中的每个元素都是一个指针(int
*类型),即使a是一个指针数组,但是它仍是一个数组,所以a是代指整个数组的起始地址,这个地址是常量.
If compiled with a STANDARD C COMPILER (e.g. gcc), which is correct about the following function "add"? [ A ]
double add(int *, int *, int k)
{ return (double) (8+k); }
int main() {
int x=1, y=2,z=3;
add(&x, &y, z);
return 0; }
-
A.Compile error. After filling in the name of the formal parameters, the program can be compiled without errors;
-
B.Compile success.
-
C.Compile error. After changing " return (double) (8+k);" to "return 8+k", the program can be compiled without errors;
-
D.Compile error. After changing "int k" to "double k", the program can be compiled without errors;
题解:个人认为编译器版本会影响这道题,就以菜鸟教程的编译器为例要将形参写的具体.
The correct one about pointers is: [ D ]
We assume that all codes are compiled on 32-bit platform
-
A.double *p; where p occupies 8 byte memory;
-
B.struct S{ char* m;} n; where n occupies 1 byte memory;
-
C.char *p; where p occupies 1 byte memory;
-
D.struct T{ double d; } *p; where p occupies 4 bytes memory;
题解:指针的占内存空间4bytes
Given the following program, when do-while loop finishes,the value of x is[ B ]enum { APPLE, LEMON=6, ORANGE, BANANA=2, GRAPE};
void f ( ) {
int x=GRAPE;
do {
x++; }
while ((x-APPLE)<=ORANGE); }
-
A.6
-
B.8
-
C.ORANGE
-
D.BANANA
题解:这个题可去看我之前写的非阻塞式按键-单双击长按的实现-CSDN博客里面有对enum一些解释,这里APPLE默认是0,ORANGE是在LEMON上加一,类似GRAPE同理.
Which of the following statements are completely correct? [ B ]
-
A.int *p; scanf("%d", &p);
-
B.int k, *p=&k; scanf("%d", p);
-
C.int k, *p; *p= &k; scanf("%d", p);
-
D.int *p; scanf("%d", p);
题解:这里主要考察野指针.野指针就是指没有初始化指针.它所指向的内存地址可以是任何地址,可能指向的是只读,或者从操作系统的保留地址.举例
int k, *p;
*p = &k;
scanf("%d", p);
分析:p是一个未初始化的指针,它的值是随机的,指向位置是未知的.
*p = &k;的意思是将k的存储地址给p指向的位置.
你无法确定这个内存位置是安全的.
Which statement satisfies the condition: If string s1 equals to strings s2, then execute ST. [ D ]
-
A.if(strcpy(sl, s2)==1) ST;
-
B.if(sl==s2) ST;
-
C.if(sl-s2==0) ST;
-
D.if(strcmp(s2,s1)==0) ST;
题解:strcpy(sl, s2)是指把s2的内容复制到s1,用的是s1的地址,不是数值1.
s1和s2比较的是字符串的地址值,不是内容,上面的数组一个这个s1和s2属于衰减,代表数组的起始地址.
s1-s2同样的算的是地址差值.
strcmp(s1,s2)用于比较s1和s2的内容.
Given the following program[ D ]
#include <stdio.h>
int fun( )
{ static int x=1; x+=1; return x; }
int main( ){ int i, s=1; for(i=1; i<=5;i++)
s+=fun( );
printf("%d\n", s);
return 0 }
-
A.11
-
B.120
-
C.6
-
D.21
题解:
#include <stdio.h>int fun( ){static int x=1;x+=1;return x;
}
int main( ){int i, s=1;for(i=1; i<=5;i++){int a =fun( );s+=a;printf("fun=%d\n",a);printf("s=%d\n",s);}}
运行结果:fun=2 s=3 fun=3 s=6 fun=4 s=10 fun=5 s=15 fun=6 s=21
总结
这些题还是比较不错和全面的,有些题还可以深入研究,比如数组指针,指针数组(不好记的话可以在中间加上"的",指针的数组,数组的指针.就很好的明白.)(数组指针声明:int (*p)[5]; // p 是指向 int 类型数组的指针;指针的数组声明int *arr[5]; // arr 是一个包含 5 个 int 指针的数组这两个也很好记,[5]前面就是这是什么数组举例:int (*p)[5];p[5],p其实代表是数组的起始地址,现在使用是(*p)则表示指向这个数组,则叫数组的指针.指针数组也是一样:int *arr[5];[5]前面跟的是arr再前面表示类型所以这表示一个数组里面存储的指针,叫指针的数组.为什么要从右往左读,为了声明的结构清晰)还有野指针,悬空指针(指向一块已经释放的内存就是选空指针),越界指针(指针访问超出数组分配的内存范围).
相关文章:
C语言简单测试总结
前言 在学C语言之前回顾一下C中的一些知识.选用的是中国大学MOOC中C程序设计(面向对象进阶)中的C语言水平评估测试题. 题目 The keyword "unsigned" can modify the keyword [ B ] A.signed B.long C.long double D.float题解:unsigned是无符号的意识,通常在…...
Android OpenGl(二) Shader
一、Shader 1、什么是Shader,为什么要使用Shder (1)shader运行在gpu上的小程序 (2)以前使用固定管线,但缺点是灵活度不够,无法满足复杂需求,为了解决固定管线的缺点,出…...
DevOps实战:用Kubernetes和Argo打造自动化CI/CD流程(1)
DevOps实战:用Kubernetes和Argo打造自动化CI/CD流程(1) 架构 架构图 本设计方案的目标是在一台阿里云ECS服务器上搭建一个轻量级的Kubernetes服务k3s节点,并基于Argo搭建一套完整的DevOps CI/CD服务平台,包括Argo CD…...
【已解决】“Content-Security-Policy”头缺失
1、作用 简称CSP,意为内容安全策略,通过设置约束指定可信的内容来源,降低异源文件攻击,例如:js/css/image等 2、相关设置值 指令名 demo 说明 default-src self cdn.example.com 默认策略,可以应用于js文件/图片…...
win系统B站播放8k视频启用HEVC编码
下载HEVC插件 点击 HEVC Video Extension 2.2.20.0 latest downloads,根据教程下载安装 安装 Random User-Agent 点击 Random User-Agent 安装 配置 Random User-Agent 在youtube中会导致视频无法播放,我选择直接屏蔽了 B站设置...
快速理解24种设计模式
简单工厂模式 建立产品接口类,规定好要实现方法。 建立工厂类,根据传入的参数,实例化所需的类,实例化的类必须实现指定的产品类接口 创建型 单例模式Singleton 保证一个类只有一个实例,并提供一个访问他它的全局…...
为什么深度学习和神经网络要使用 GPU?
为什么深度学习和神经网络要使用 GPU? 本篇文章的目标是帮助初学者了解 CUDA 是什么,以及它如何与 PyTorch 配合使用,更重要的是,我们为何在神经网络编程中使用 GPU。 图形处理单元 (GPU) 要了解 CUDA,我们需要对图…...
Yocto 项目中的交叉编译:原理与实例
Yocto 项目是一个强大的工具集,它专注于为嵌入式系统生成定制的 Linux 发行版。交叉编译在 Yocto 项目中扮演着核心角色,它使得开发者能够在功能强大的宿主机上构建适用于资源受限目标设备的软件系统。这篇文章将从运行原理、实际案例和工具链组成等角度…...
Python入门:7.Pythond的内置容器
引言 Python 提供了强大的内置容器(container)类型,用于存储和操作数据。容器是 Python 数据结构的核心部分,理解它们对于写出高效、可读的代码至关重要。在这篇博客中,我们将详细介绍 Python 的五种主要内置容器&…...
sqlserver镜像设置
本案例是双机热备,只设置主体服务器(主)和镜像服务器(从),不设置见证服务器 设置镜像前先检查是否启用了 主从服务器数据库的 TCP/IP协议 和 RemoteDAC (1)打开SQL Server配置管理器…...
Pandas04
Pandas01 Pandas02 Pandas03 文章目录 内容回顾1 数据的合并和变形1.1 df.append (了解)1.2 pd.concat1.3 merge 连接 类似于SQL的join1.4 join (了解) 2 变形2.1 转置2.2 透视表 3 MatPlotLib数据可视化3.1 MatPlotLib API 套路 &为什么要可视化3.2 单变量可视化3.3 双变量…...
农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序(升级版)
农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序升级版 调整的功能 上一个小程序只是能计算当年的农历节日的间隔时间,那么这次修改一下,任意年份的农历节日都可以,并且能输出农历节日对应的阳历日期࿰…...
c语言中void关键字的含义和用法
在 C 语言中,void 是一个特殊的关键字,主要有以下几个用途: 1. 表示函数没有返回值 当一个函数不需要返回任何值时,可以将其返回类型声明为 void。 #include <stdio.h>void printMessage() {printf("Hello, World!\…...
安卓音频之dumpsys audio
目录 概述 详述 dumpsys audio 1、音频服务生命周期的事件日志 2、音频焦点事件日志 3、音频流音量信息 4、音量组和设备的相关信息 5、铃声模式 6、音频路由 7、其他状态信息 8、播放活动监控信息 9、录音活动记录 10、AudioDeviceBroker 的记录 11、音效&#…...
玩客云v1.0 刷机时无法识别USB
v1.0刷机时公对公插头掉了,刷机失败,再次刷机,一直提示无法识别的USB设备,此时LED一直不亮,就像是刷成砖了一样,查了好多文章最后发现正面还有一个地方需要短接。 背面的短接点 【免费】玩客云刷机包s805-…...
影刀进阶指令 | Kimi (对标ChatGPT)
文章目录 影刀进阶指令 | Kimi (对标ChatGPT)一. 需求二. 流程三. 实现3.1 流程概览3.2 流程步骤讲解1\. 确定问题2\. 填写问题并发送3\. 检测答案是否出完 四. 运维 影刀进阶指令 | Kimi (对标ChatGPT) 简单讲讲RPA调用kimi实现…...
前端项目 node_modules依赖报错解决记录
1.首先尝试解决思路 npm报错就切换yarn , yarn报错就先切换npm删除 node_modules 跟 package-lock.json文件重新下载依 2. 报错信息: Module build failed: Error: Missing binding D:\vue-element-admin\node_modules\node-sass\vendor\win32-x64-8…...
数据科学团队管理
定位: 有核心竞争力的工业算法部门与PM、RD等深度合作 业务方向:(不同产品线) 工业预测性维护与数据挖掘视觉检测、OCR 工作内容 项目需求与交付内部框架(frameworks \packages)应用demo专利、竞赛、论文 日常管理 项目管理数据管理(原…...
一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类
机器学习实战通常是将理论与实践结合,通过实际的项目或案例,帮助你理解并应用各种机器学习算法。下面是一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的…...
攻防世界web第二题unseping
这是题目 <?php highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this->method $method;$this->args $args;}function __destruct(){if (in_array($this->method, array("ping"))) {cal…...
如何解决Tokio项目中Windows平台TCP性能问题的完整指南
如何解决Tokio项目中Windows平台TCP性能问题的完整指南 【免费下载链接】tokio A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ... 项目地址: https://gitcode.com/GitHub_Trending/to/tokio To…...
AI开发AI:借助快马多模型能力,迭代式构建你的智能健康管理Agent
最近在尝试开发一个健康管理AI助手,发现用传统方式写代码调试特别耗时。后来尝试了InsCode(快马)平台,发现用AI对话的方式迭代开发简直打开了新世界。记录下这个"用AI开发AI"的完整过程: 基础框架搭建 最开始只需要一个能交互的对话…...
基于MATLAB/Simulink的双馈异步感应发电机直接功率控制仿真探索
Direct_Power_Control_of_DFIG:基于MATLAB/Simulink的双馈异步感应发电机的直接功率控制仿真模型 仿真条件:MATLAB/Simulink R2015b在电力系统研究领域,双馈异步感应发电机(DFIG)因其独特的性能优势而备受关注。直接功…...
揭秘JVM创世过程之Call Stub进入Java世界的门票
前言 本文旨在记录近期研读Java源码的学习心得与疑难问题。由于个人理解水平有限,文中内容可能存在疏漏,恳请读者不吝指正。 前情回顾 在揭秘JVM创世过程之两种语言首席外交官JavaCalls,一文中将JVM看作Java世界中一个拥有两种语言的领事馆…...
零基础入门gstack:借助快马AI生成你的第一个可运行React+TypeScript项目
作为一名刚接触前端开发的新手,第一次听说gstack(ViteReactTypeScript组合)时,我完全不知道从何入手。直到发现了InsCode(快马)平台,才真正体会到"零配置"开发是什么感觉。下面记录我的学习过程,…...
设备管理系统是什么?如何建立设备管理体系?
在现代企业的运转中,生产设备无疑是核心资产。无论是制造业的数控机床,还是建筑工地的重型机械,甚至是医疗机构的精密仪器,设备的稳定运行直接决定了企业的生产效率、产品质量和成本控制。然而,许多企业在设备管理上仍…...
为什么你的Polars 2.0清洗脚本在1TB数据下突然卡死?——Lazy Execution陷阱、Chunking边界与并发泄漏三重真相
第一章:为什么你的Polars 2.0清洗脚本在1TB数据下突然卡死?——Lazy Execution陷阱、Chunking边界与并发泄漏三重真相Lazy Execution的隐式延迟引爆内存雪崩 Polars 2.0 默认启用 LazyFrame 模式,所有操作仅构建执行计划,直到调用…...
数据仓库核心建模:星型模型与雪花模型全面对比与实战选择
数据仓库核心建模:星型模型与雪花模型全面对比与实战选择一、引言二、定义:什么是星型模型?什么是雪花模型?2.1 星型模型:定义2.2 雪花模型:定义三、结构流程图:直观对比两种模型3.1 星型模型流…...
告别CANoe依赖:手把手教你用Visual Studio 2019为UDS $27服务开发通用DLL(附Python调用脚本)
从零构建UDS安全访问DLL:Visual Studio 2019实战指南与Python无缝集成 在汽车电子诊断领域,UDS(Unified Diagnostic Services)协议的安全访问服务($27服务)是保护ECU敏感操作的核心机制。传统方案往往依赖C…...
2026最权威的六大降重复率工具解析与推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 飞速发展的人工智能技术,正深切地重塑着学术写作的范式,当下…...
