C语言面试题---函数(一)

面试题-数组与字符串(C实现) 题目1:实现一个算法,确定一个字符串的所有字符是否全都不同。假使不允许使用额外的数据结构,又该如何处理? 分析:假设上面的字符串是由ASCII字符集构成的。ASCII字符集一共只有256个字符,我们可以构建一个256大小的数组即可。选择构建一个布尔数组,索引值 i 对应的标记指示该字符串是否含有ASCII字符集中第 i 个字符。若这个字符第2次出现,则立即返回false。示例代码如下: #include <stdio.h> #include <string.h> #includ 阅读详情
版权声明:文章转载于公众号TeachPlus
函数部分在面试中的考察重点主要是几个关键字的使用,如static、const,这些我们在前文中已
经有过专题,因此在这里就不再继续赘述,主要来看一下,关于函数自身的几个问题:
分析下面的程序,程序能否给出运行结果,如果能输出是什么,如果不能,原因是什么
# include <stdio.h>
int m,n;
ps1()
{
    printf("please input a num\n");
    scanf("%d",&m);
    m++;
}

ps2()
{
    printf("please input a num\n");
    scanf("%d",&n);
    n--;
}

int  main( void)
{
    int a = ps1();
    int b = ps2();
    printf("%d\t%d\n",a,b);
    return 0;
}

本题解析

答案是:会给出输出结果,输出结果是不不确定的整数;
看到这样的题目,可能绝大多数人的第一反应就是编译会报错,
因为对于第三行和第八行的函数定义是错误的,没有返回值类型,所以语法上是错误的。
那么这种说法对不对呢,从答案上我们可以看出来,这样的想法是明显不对的,
编译并不会报错。为什么会这样呢?
原因是,虽然我们习惯于使用返回值类型 + 函数名这样的方法进行函数的声明和定义,
标准也推荐我们这样做,但是并不代表省略掉返回值类型就不对了,
如果省略掉返回值类型,那么编译器会默认返回 int类型  。
当然,这也不是一定的,最终还是取决于编译器的不同而不同。
在本题中,首先可以确定的是,编译不会报错,省略了函数返回值类型的声明,
编译器默认返回 int  类型,但是函数中却没有 return  语句,所以返回的将会是不确定的整数。
当然,如果你在函数的定义中,添加了了 void  这样的返回值类型说明,
编译器就一定会报错了,所以推荐在编程的过程中,不管是否有返回值,也一定要写返回值类型的声明。


C/C++开发工程师面试题整理(一)——C语言关键字、预处理、静态变量全局变量、函数等 一、C语言关键字 1.关键字static的作用是什么(中兴面试题2020) 答:1.static修饰的是静态变量,系统只分配一次内存; 2.在函数体内的静态变量,如果函数被多次调用,其中的静态变量将保留前一次计算值; 2.static声明的全局变量只能在本地文件中使用,对外封闭在C语言里不能被其他文件所调用; 2.static修饰函数的作用是什么(中兴面试题2020) 答:函数前加static使得函数成为静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本. 阅读详情

相关推荐

C语言函数选择练习题

C语言函数选择练习题C语言函数选择练习题C语言函数选择练习题

【保姆级讲解】C语言---函数精华面试题荟

学不过瘾?配套更多面试题讲解视频请移步下方直通车https://www.bilibili.com/video/BV1E34y1a7WP/ 1.写一个函数实现检测一个正整数是否是回数,如果是,返回1,不是返回0。如:12321 就是一个回数 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> int checkNumHs(int num) { //1.

weixin_51177279的博客 869

C语言面试题大汇总之华为面试题及答案

程序的局部变量存在于(堆栈)中,全局变量存在于(静态区 )中,动态申请数据存在于( 堆)中。

C语言面试常考的函数和坑

一 前言思维还是比较奇怪的东西,面临未知的时候充满了谨慎,对于自己稍微熟悉的东西,又会犯自大的问题,从而有些理所当然了,所以任何时候谨慎是个好习惯,用任何函数的时候多读读API的文档说明,可以避免不少坑的。根据我的经验来说,任何自己忽略的事情,总会让自己付出代价,或早或晚,还是那句话,出来混,底子要扎实了,不然早晚会还的。二 容易出差的函数2.1 snprintf返回值对...

282

C语言必做的基础笔试题

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。 二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 [1] 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言基础面试题(08-网络编程).docx

网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的。中间最主要的就是数据包的组装,数据包的过滤,数据包的捕获,数据包的分析,当然最后再做一些处理,代码、开发工具、数据库、服务器架设和网页设计这5部分你都要接触。 本文档主要对面试常问到的一些问题做了集中整理。

IT知名企业常见面试题实例与详解

 IT知名企业常见面试题实例与详解IT名企面试步骤一般为四面:一面:技术面,考核技能水平;二面:综合面:考核综合素质;三面:HR面,职业规划,优势与劣势,期望工资与工作地点;四面:老总面,最后决定命运。95d565ef66©应届生Y一、 通用面试例题分析1. 在学校里你学习了哪些课程,成绩如何?答:首先看看计算机专业的课程:系统原理、微机原理、汇编语言、网络基础、Visual Ba

ldhlsj的专栏 1974

16道C语言面试题(搞程序的面试的一定要看的题)

这16个题,你可以先做一下,再看答案,我保证。。。。。。还是先下载看了再说好吧

C语言面试题总结(含参考答案)------持续更新

变量的声明是指在程序中告诉编译器有一个变量存在,并且指定该变量的类型,但并没有为该变量分配内存空间。而变量的定义是指在程序中为变量分配了内存空间,同时也进行了初始化。

嵌入式领域、软硬件开发 2万+

VBA一键汇总多个工作簿-名称相同的工作表-的指定区域数据

VBA一键汇总多个工作簿-名称相同的工作表-的指定区域数据 日常工作,我们经常需要汇总相同格式的工作簿的某个工作表的数据 如1月业绩、2月业绩。。。。12月业绩等 姓名 数量 数据22 22 数据23 23 数据24 24 数据25 25 数据26 26 数据27 27 数据28 28 数据29 29 数据30 30 数据31 31 数据32 32 数据33 33 数据34

陈表达的博客 5981

在Cursor中集成Ollama与Qwen2.5‑Coder:零成本本地AI开发环境搭建

本文详细介绍了如何零成本搭建本地AI开发环境,通过将Cursor IDE与本地运行的Ollama及Qwen2.5-Coder模型集成,实现数据不出本地的智能编程辅助。教程涵盖Ollama安装、模型拉取、ngrok内网穿透配置及Cursor设置等核心步骤,并提供了实战测试与常见问题排错指南,为注重隐私与成本的开发者提供安全高效的解决方案。

weixin_29296241的博客 1071

C语言面试题总结

1 预处理 问题1:什么是预编译?何时需要预编译? 答: 预编译又称预处理,是整个编译过程最先做的工作,即程序执行前的一些预处理工作。主要处理#开头的指令。如拷贝#include包含的文件代码、替换#define定义的宏、条件编译#if等。. 何时需要预编译: 1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包...

Demons的博客 3万+

S32K144(14)ADC

1、简介 开发板S32K144+S32DS+JLINK,裸机版的程序编写 S32K14x包含两个12位ADC模块,ADC0和ADC1 应用程序可能需要ADC的连续采样(4K采样/秒),这可能对CPU有相当大的负载。虽然使用可编程延迟块(PDB)来触发ADC可能会减少一些CPU负载,但当ADC以非常高的速率采样或PDB被绕过时,ADC支持DMA请求功能以获得更高的性能。ADC可以在转换完成时触发DMA(通过DMA请求)。TRGMUX会根据不同的应用需求,使用软件为用户提供更灵活的DMA触发方案,例如,可

朗朗上口就行啦的博客 1万+

c语言min函数_C语言面试题(一)

哈喽,前几篇文章将C语言基础 简单的写了写,不知道大家能不能理解哈,今天更新下C语言的一些常见面试题,希望能帮助到大家。1、描述⼀下gcc的编译过程? gcc编译过程分为4个阶段:预处理、编译、汇编、链接。 预处理:头⽂件包含、宏替换、条件编译、删除注释 编译:主要进⾏词法、语法、语义分析等,检查⽆误后将预处理好的⽂件编译成汇编⽂件。 汇编:将汇编⽂件转换成 ⼆进制⽬标⽂件 链接:将项⽬中的各个⼆...

weixin_39862382的博客 573

Hindsight 内存爆炸 4 个词排查清单:9,284 条 6 成是 SSH 调试日志——Agent 标签系统的实战复盘

9,284 条记忆里 66% 是 SSH 调试日志。4 个标签被滥用=0 区分度。3 个 entity_labels + retain_mission + retain_every_n_turns 配置把噪声压回 5%——附 PATCH 脚本和实测前后数据。

Starry-SkyJing的博客 57

Spring Security 珍藏版快速入门

文章目录一、前期配置二、Spring Security 测试三、案例:自定义页面(XML配置用户信息)三、案例:自定义页面(数据库存储用户信息) 一、前期配置 (1)pom.xml <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>${s

南淮北安的博客 633

C语言--指针进阶

指针进阶相关内容

Senyu_nuanshu的博客 410

CATIA二次开发——遍历几何图形集下的轴系及控制轴系生成位置

CATIA二次开发——轴系相关问题1.遍历几何图形集下的轴系2.解决轴系生成位置的问题 1.遍历几何图形集下的轴系 近期遇到的问题:遍历轴系的时候发现,AxisSystem属性的轴系只有放在轴系集合下,才能被找到,放在几何图形集或其他位置均不能被找到。本来想遍历几何图形集下的轴系元素,但是发现没有对应的属性,只能查找 几何图形集、几何元素、草图等元素,无法直接遍历轴系。 解决办法:(加入选择集,在选择集中筛选轴系类型) HybridBody axisHB = activePart.HybridBodies

WorkMan的博客 2730

C语言面试题3道

在我们最近的一个项目中,我们遇到了一个内存碎片化的问题。我们的应用程序运行一段时间后,尽管可用的总内存量足够,但我们却无法分配较大块的连续内存。你能分析一下可能的原因,并给出解决办法吗?请用具体的例子来说明。

横竖撇折点 956

流体动力学仿真软件:Star-CCM+_(19).软件定制与脚本编写

自定义插件开发可以扩展Star-CCM+的功能,实现特定的仿真需求。插件开发通常需要使用Java语言,并且需要对Star-CCM+的API有深入的了解。以下是一个简单的Java插件示例,展示如何创建一个自定义插件来显示仿真项目的信息。// 导入必要的Star-CCM+ API import star . ccm . product . CCMProject;// 自定义插件类 public class CustomPlugin {// 插件主方法 public void run() {

kkchenjj的博客 936

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

华为C语言面试题集 C语言面试题-华为C语言面试题 深圳华为面试

C语言面试题  1、局部变量能否和全局变量重名?   答:能,局部会屏蔽全局。要用全局变量,需要使用"::"   局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。   2、如何

u010325051的专栏 1545

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

c 复杂的前置后置面试题_c 高级面试题目【精选】

c高级面试题目1、有一分数序列:1/2,1/4,1/6,1/8„„,用函数调用的方法,求此数列前20项的和#includedoublegetvalue{doubleresult=0;inti=2;while{result+=/i;s://一定要使用做除数,不能用1,否则结果将自动转化成整数,即i+=2;}returnresult;}intmain{printf);sy...

weixin_39933356的博客 117

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

奇怪的面试题

某网站看到的奇怪面试题: #include int main(){ if( ?){ printf("Hello"); }else{ printf("World!\n"); } } 要求if添写什么条件打印出:Hello World!,是不是很怪异? 答案如下: #include int main(){ if(!print

The Coding World 706

C语言-右左法则

右左法则是一个既著名又常用的方法。不过,右左法则其实并不是c标准里面的内容,它是从c标准的声明规定中归纳出来的方法。c标准的声明规则,是用来解决如何建立声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文原文是这样说的: the right-left rule: start reading the declaration from the innermost parentheses, go right, and then go left. when you encounter

Flin 306

一文弄懂链表(C语言实现)

int data;// 数据域// 指针域} Node;

一念的博客 1184
上一篇: C语言面试题---指针篇(五)
下一篇: C语言面试题---函数(二)
study_plus
博客等级 码龄9年 132粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值