牛客错题整理——C语言(实时更新)
1.以下程序的运行结果是()
#include <stdio.h>
int main() { int sum, pad,pAd; sum = pad = 5; pAd = ++sum, pAd++, ++pad; printf("%d\n",pAd);
}
答案为7
由于赋值运算符的优先级高于逗号表达式,因此pAd = ++sum, pAd++, ++pad;等价于(pAd = ++sum), pAd++, ++pad; sum 先自增然后赋值给 pAd,pAd 为 6,然后 pAd 自增变为 7。逗号表达式的结果为最后一个表达式的值,因此正确答案为 7。
2.哪一句会出错?
char* s="AAA"; //1
printf("%s",s); //2
s[0]='B'; //3
printf("%s",s); //4
第3句
初始化指针时所创建的字符串常量被定义为只读。如果试图通过指针修改这个字符串的值,程序就会出现未定义的行为。S[0]只可读,不可写
3.对于如下C语言函数:fun(5)的结果为()
int fun (int n) {int x = 1, k;if (n == 1) return x;for(k = 1; k < n; ++k)x = x + fun(k) * fun(n - k);return x;
}
答案为51
4.以下程序的输出结果为
#include <stdio.h>
int func(int x, int y) { return (x + y); }int main() {int a = 1, b = 2, c = 3, d = 4, e = 5;printf("%d\n", func((a + b, b + c, c + a), (d, e)));return 0;
}
答案为9
逗号表达式是一组由逗号分隔的表达式,这些表达式是从左向右计算。逗号表达式的结果是其最后边表达式的值,如果最后边的操作数是左值,则逗号表达式的值也是左值。此类表达式通常用于for循环。
5.若有int w=1, x=2, y=3, z=4;则条件表达w < x ? w : y < z ? y : z的值是3.
答案为 错误
因为条件运算符的结合方向是从右往左的。所以上述表达式的值应当先计算后面那个条件运算符:?的值,即w<x?w:(y<z?y:z)。因此执行顺序为:因为y小于z为真,因此 w<x?w:y,因为w小于x为真,因此表达式的值为w。
6.下列代码运行出错,可能会是哪一行引起的?
void getMemory(char *p) {p = (char *)malloc(100); // 1
}int main(int argc, char const *argv[]) {char *str = NULL;getMemory(str);strcpy(str, "hello wrold"); // 2printf("%s\n", str); // 3free(str); // 4
}
第2句
1)调用getMemory(str)后,str并未产生变化,依然是NULL(由于str是按值传递的)。只有形参p指向了一块新申请的空间。
2)程序运行到strcpy( str, “hello world” );处将产生错误
7.以下程序的输出结果是()
int main() {int s, i;for(s = 0, i = 1; i < 3; i++, s += i);printf("%d\n", s);
}
答案为5
逗号运算符是由多个表达式构成的,而不是整体看成一个表达式,即i++是一个表达式,s += i也是一个表达式,所以在执行s += i之前,i已经完成了一次自增。
(1)如果for后面没有分号,printf这句话就是for里面的语句。就会先执行printf再执行转化条件。
则先执行循环初试条件s=0,i=1,判断1<3,输出0,执行转化条件i=2,s=2。此时回到判断2<3,输出2。i=3,s=5。再判断3<3为0,跳出循环。
(2)现在题目在for后有分号,则for里面是空语句,先s=0,i=1,控制条件1<3结果为1,执行第二个分号后的句子,因为i++后面有逗号,所以i已经加了1,s加的是经过+1后的i,i=2,s=2。第二次循环2<3成立,i=3,s=2+3=5。第三次3<3判断结果为0,循环结束。但因为第二次循环的转化条件已经执行了。所有输出的是5。
8.对于下面代码段y的值为( )
int x = 3, y = 3;
int t = ++x || ++y;
答案为3
有两个坑,第一,求的是y而不是t 第二,或运算里,左侧是1右边就不执行,与运算类似。
当解析器遇到了||时,只要前面的++x为真,后面的语句就不执行了。
9.写出下列程序在X86上的运行结果
struct mybitfields
{unsigned short a : 4;unsigned short b : 5;unsigned short c : 7;
} testvoid main(void)
{int i;test.a = 2;test.b = 3;test.c = 0;i = *((short *)&test);printf("%d\n", i);
}
答案为50
由栈的基本知识(高到低),栈上分配的空间顺序是:c,b,a
定义结构体里面用到的冒号的含义相当于分配几位空间,也即在定义结构体的时候,分配的成员a 4位的空间, b 5位,c 7位,一共是16位,正好两个字节。示意:
test.a 0 0 1 0
test.b 0 0 0 1 1
test.c 0 0 0 0 0 0 0
所以全部总和起来:0000 0000 0011 0010
在执行i=*((short *)&test); 时,取从地址&test开始两个字节(short占两个字节)的内容转化为short型数据,即为0x0032,再转为int型为0x00000032,即50
10.在Windows 32位操作系统中,假设字节对齐为4,对于一个空的类A,sizeof(A)的值为()?
答案为1
类的实例化是在内存中分配一块地址,每个实例在内存中都有独一无二的二地址。同样,空类也会实例化,所以编译器会给空类隐含的添加一个字节,这样空类实例化后就有独一无二的地址了。所以,空类的sizeof为1,而不是0.
多重继承的空类的大小也是1.
11.函数的形式参数隐含的存储类型说明是()
答案为auto
函数的隐含储存类型是extern,函数的形参或变量的储存类型为auto
12.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()
答案为:函数调用可以作为一个函数的形参
返回值存在寄存器中,没有地址,不能作为形参,但可以作为实参。
13.在头文件及上下文均正常的情况下,下列代码的运行结果是()
int a[] = {1, 2, 3, 4};
int *b = a;
*b += 2;
*(b + 2) = 2;
b++;
printf("%d,%d\n", *b, *(b + 2));
答案为2,4
从第一步开始
*b+=2;// *b=b+2;
是将b指向地址的值加了2,就是a[0]=3
*(b+2)=2;
等价a[2]=2。
数组变成a[4]={3,2,2,4}
b++;
b指向a[1];
当b++时,指针指向的第二个元素的地址,b=2,b+2后指针指向第四个元素,(b+2)=4;
14.以下叙述中不正确的是()
C程序中的#include和#define均不是C语句(这句正确)
在C程序中,赋值运算符的优先级最低(这句错误)
答案为:c语言中,逗号优先级最低。 用分号;结尾的才看成是C语句
一共有十五个优先级:
1 () [] . ->
2 ! ~ -(负号) ++ – &(取变量地址)* (type)(强制类型) sizeof
3 * / %
4 + -
5 >> <<
6 > >= < <=
7 == !=
8 &
9 ^
10 |
11 &&
12 ||
13 ?:
14 = += -= = /= %= |= ^= &= >>= <<=
15 ,
括号成员第一; //括号运算符 成员运算符. ->
全体单目第二; //所有的单目运算符比如++、 --、 +(正)、 -(负) 、指针运算、&
乘除余三,加减四; //这个"余"是指取余运算即%
移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等
等于(与)不等排第七; //即== 和!=
位与异或和位或,“三分天下”***十; //这几个都是位运算: 位与(&)异或(^)位或(|)
逻辑或跟与,十二和十一; //逻辑运算符:|| 和 &&,注意顺序:优先级(||) 低于 优先级(&&)
条件高于赋值, //三目运算符优先级排到13 位只比赋值运算符和","高
逗号运算级最低! //逗号运算符优先级最低
相关文章:

牛客错题整理——C语言(实时更新)
1.以下程序的运行结果是() #include <stdio.h> int main() { int sum, pad,pAd; sum pad 5; pAd sum, pAd, pad; printf("%d\n",pAd); }答案为7 由于赋值运算符的优先级高于逗号表达式,因此pAd sum, pAd, pad;等价于(…...

CIFAR-10数据集详析:使用卷积神经网络训练图像分类模型
1.数据集介绍 CIFAR-10 数据集由 10 个类的 60000 张 32x32 彩色图像组成,每类 6000 张图像。有 50000 张训练图像和 10000 张测试图像。 数据集分为5个训练批次和1个测试批次,每个批次有10000张图像。测试批次正好包含从每个类中随机选择的 1000 张图像…...

《傲剑狂刀》中的人物性格——龙吟风
在《傲剑狂刀》这款经典武侠题材的格斗游戏中,龙吟风作为一位具有传奇色彩的角色,其性格特征复杂且引人入胜。以下是对龙吟风这一角色的性格特点进行深度剖析: 一、孤高独立的剑客气质 龙吟风的名字本身就流露出一种独特的江湖气息,"吟风"象征着他的飘逸与淡泊名…...

KVM和JVM的虚拟化技术有何区别?
随着虚拟化技术的不断发展,KVM和JVM已成为两种主流的虚拟化技术。尽管它们都提供了虚拟化的解决方案,但它们在实现方式、功能和性能方面存在一些重要的差异。本文将深入探讨KVM和JVM的虚拟化技术之间的区别。 KVM(Kernel-based Virtual Mac…...
LeetCode力扣 面试经典150题 详细题解 (1~5) 持续更新中
目录 1.合并两个有序数组 2.移动元素 3.删除有序数组中的重复项 4.删除排序数组中的重复项 II 5.多数元素 暂时更新到这里,博主会持续更新的 1.合并两个有序数组 题目(难度:简单): 给你两个按 非递减顺序 排列的…...

如何解决利用cron定时任务自动更新SSL证书后Nginx重启问题
利用cron定时任务自动更新SSL证书后,用浏览器访问网站,获取到的证书仍然是之前的。原因在于没有对Nginx进行重启。 据说certbot更新完成证书后会自动重启Nginx,但显然经我检测不是这回事儿。 所以我们需要创建一bash脚本,然后定时调用这个脚…...

第一个 Angular 项目 - 静态页面
第一个 Angular 项目 - 静态页面 之前的笔记: [Angular 基础] - Angular 渲染过程 & 组件的创建 [Angular 基础] - 数据绑定(databinding) [Angular 基础] - 指令(directives) 这是在学完了上面这三个内容后能够完成的项目,目前因为还没有学到数…...

网络协议与攻击模拟_17HTTPS 协议
HTTPShttpssl/tls 1、加密算法 2、PKI(公钥基础设施) 3、证书 4、部署HTTPS服务器 部署CA证书服务器 5、分析HTTPS流量 分析TLS的交互过程 一、HTTPS协议 在http的通道上增加了安全性,传输过程通过加密和身份认证来确保传输安全性 1、TLS …...

【linux系统体验】-ubuntu简易折腾
ubuntu 一、终端美化二、桌面美化2.1 插件安装2.2 主题和图标2.3 美化配置 三、常用命令 以后看不看不重要,咱就是想记点儿东西。一、终端美化 安装oh my posh,参考链接:Linux 终端美化 1、安装字体 oh my posh美化工具可以使用合适的字体&a…...
Android 判断通知是进度条通知
1.需求: 应用监听安卓系统中的通知,需要区分出带进度条的通知. 当使用NotificationCompat.Builder构建一个通知时,可以通过调用setProgress(max, progress, indeterminate)方法来添加一个进度条。这里的max参数表示最大进度值,progress表示当前进度值&a…...
学习数据结构和算法的第8天
顺序表的实现 顺序表 本质就是数组 概念及结构 顺序表是用一段物理地址连续的储存单元依次储存数据元素的线性结构,一般情况下采用数组储存,在数组上完成数据的增删。 顺序表就是数组,但是在数组的基础上,它还要求数据…...

JCIM | MD揭示PTP1B磷酸酶激活RtcB连接酶的机制
Background 内质网应激反应(UPR) 中的一个重要过程。UPR是由内质网中的三种跨膜传感器(IRE1、PERK和ATF6)控制的细胞应激反应,当内质网中的蛋白质折叠能力受到压力时,UPR通过减少蛋白质合成和增加未折叠或错…...

基于Java (spring-boot)的音乐管理系统
一、项目介绍 播放器的前端: 1.首页:点击歌单中的音乐播放列表中的歌曲进行播放,播放时跳转播放界面,并显示歌手信息,同时会匹配歌词,把相应的歌词显示在歌词面板中。 2.暂停:当歌曲正在播放时…...
在 MacOS M系列处理器上使用 Anaconda 开发 Oralce 的Python程序
在 MacOS M系列处理器上使用 Anaconda 开发 Oralce 的Python程序 因oracle官方驱动暂无 苹果 M 系列处理器版本,所以使用Arm的python解释器报驱动错误: cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "dlop…...

四、OpenAI之文本生成模型
文本生成模型 OpenAI的文本生成模型(也叫做生成预训练的转换器(Generative pre-trained transformers)或大语言模型)已经被训练成可以理解自然语言、代码和图片的模型。模型提供文本的输出作为输入的响应。对这些模型的输入内容也被称作“提示词”。设计提示词的本质是你如何对…...

CSS之flex布局
flex布局 CSS的Flex布局(Flexible Box Layout)是一种用于在页面上布置元素的高效方法,特别适合于响应式设计。Flex布局使得元素能够伸缩以适应可用空间,可以简化很多原本需要复杂CSS和HTML结构才能实现的布局设计。 flex布局包括…...
UnityShader——02三大主流编程语言
三大主流编程语言 Shader Language Shader language的发展方向是设计出在便携性方面可以与C/JAVA相比的高级语言,“赋予程序员灵活而方便的编程方式”,并“利用图形硬件的并行性,提高算法的效率” Shader language目前主要有 3 种语言&…...

Centos7安装nginx yum报错
Centos7安装nginx yum报错,yum源报错解决办法: 1、更新epel源后,出现yum报错 [roothacker117 ~]# yum install epel-release(安装成功) [roothacker117 ~]# yum install nginx(安装失败,提示如…...

【机组】基于FPGA的32位算术逻辑运算单元的设计(EP2C5扩充选配类)
🌈个人主页:Sarapines Programmer🔥 系列专栏:《机组 | 模块单元实验》⏰诗赋清音:云生高巅梦远游, 星光点缀碧海愁。 山川深邃情难晤, 剑气凌云志自修。 目录 一、实验目的 二、实验要求 …...

Asp .Net Core 系列:Asp .Net Core 集成 NLog
简介 NLog是一个基于.NET平台编写的日志记录类库,它可以在应用程序中添加跟踪调试代码,以便在开发、测试和生产环境中对程序进行监控和故障排除。NLog具有简单、灵活和易于配置的特点,支持在任何一种.NET语言中输出带有上下文的调试诊断信息…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...