✨作者:@平凡的人1 ✨专栏:《C语言从0到1》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改变 ---- 简单回顾一下,我们上一篇的内容:主要介绍了指针与数组笔试题目。...这一篇,我们继续趁热打铁,主要介绍——8道指针笔试题,不说多的,直接开整 文章目录 第一题 第二题 第三题 第四题 第五题 第六题 第七题 第八题 总结 第一题 #include int...] = {"ENTER","NEW","POINT","FIRST"}; char**cp[] = {c+3,c+2,c+1,c}; char***cpp = cp; printf("%s\n",...2,c+2指向point地址,第二*得到point *–*++cpp+3:++cpp指向c+1的地址,解引用找到c+1,–就把c+1变成了c,c指向ENTER的地址,在解引用,得到ENTER,+3就是ENTER...2,-1得到c+1,c+1就是NEW的地址,在解引用得到NEW,+1得到EW。
A: main()函数里的i是一个未定义值 B: main()函数的i为1 C: 编译器不允许这种写法 D: main()里i的值为0 解答:当笔试者看到此代码时,可能会觉得古怪。...虽然在C++中编译是可以通过的(显然是不合理)。当main()函数里的i从定义开始,外部的全局变量i就已经被屏蔽掉,所以main()函数里作为右值的i的值不会0也不会是1,与外部的i无关。...A:13 13 B:112 13 C :12 12 D:12 13 解析:本题主要考察指针以及栈的概念 。...以下代码说法正确的是: A:一定输出-120 B:一定不能输出-120 C:可能输出-120 D:输出%d 解答:本题乍一看,-120木有问题!...答案:C C语言(clang.cc)研究中心
C语言编程笔试题(二)已更新
1.输入原字符串,在这里我们要用gets函数,不能用scanf函数,因为scanf在读取到空格时就会停止。
思路: 1.先求出最大公约数 q 2.计算出最小公倍数 p 实现代码 #include int main() { int a = 0; int b = 0; int c = 0; scanf...= 0) { c = a%b; a = b; b = c; } if (a%b == 0) { c = b; } printf("%d\n",(m*n)/c); return...1) n2 ^= arr[i]; //新数组中的数字全部异或得到那个只出现一次的数字 } printf("%d %d\n", n1, n2); return 0; } 切记:要牢记C语言中位操作符的使用...未完待续… C语言编程笔试题(三)已更新
A: main()函数里的i是一个未定义值 B: main()函数的i为1 C: 编译器不允许这种写法 D: main()里i的值为0 解答:当笔试者看到此代码时,可能会觉得古怪。...虽然在C++中编译是可以通过的(显然是不合理)。当main()函数里的i从定义开始,外部的全局变量i就已经被屏蔽掉,所以main()函数里作为右值的i的值不会0也不会是1,与外部的i无关。...A:13 13 B:112 13 C :12 12 D:12 13 解析:本题主要考察指针以及栈的概念 。...以下代码说法正确的是: A:一定输出-120 B:一定不能输出-120 C:可能输出-120 D:输出%d 解答:本题乍一看,-120木有问题!...答案:C
121、为了避免嵌套的条件语句if-else的二义性,C语言规定:else与(B )匹配。...B ) A)执行8次 B)执行9次 C)是无限循环 D)循环体一次也不执行 123、下面程序的运行结果是(C ) main() { int s1=2, c2=0; while(!...c2–) printf(%d, %d, c1–, c2); } A)陷入死循环 B)不输出任何内容 C)输出2, -1 D)输出2,0 124、在下述程序中,判断i>j共执行了(A )次。...(“%d”, &c); w=b; if(wc) printf(“%d”, w); else w=c; A)b>c B)ba&&c 126、执行下面的程序后的数学户结果为( )...–); printf(“y=%d”,Y); } A)Y=0 B)Y=1 C)Y=随机值 D)Y=-1 129、C语言中,下列说法正确的是( )
✨作者:@平凡的人1 ✨专栏:《C语言从0到1》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改 ---- 文章目录 前言 一维数组 字符数组 1 2 3 二维数组 总结...个字节 return 0; } 字符数组 1 #include #include int main() { char arr[] = { 'a','b','c'...)); return 0; } 代码解析: #include #include int main() { char arr[] = { 'a','b','c'...注意’\0’之前的出现的字符个数 #include #include int main() { char arr[] = "abcdef"; //a b c
#include int main() { char *c[] = {"ENTER","NEW","POINT","FIRST"}; char**cp[] = {c+3,c+2,c+...1,c}; char***cpp = cp; printf("%s\n", **++cpp); printf("%s\n", *--*++cpp+3); printf("%s\n", *cpp[-2]+...3); printf("%s\n", cpp[-1][-1]+1); return 0; } 这道题目的复杂地方就在于指针指向的不断变化 (1)首先main函数里面c,c+1,c+2,c+3要正确的理解...,分别指向哪些内容; (2)明白指向的地址以后cpp加加后指向了c+2所在地方,进行两次解引用以后就是ENTER; (3)第二个输出在第一个加加的基础上,这个时候指向c+2,然后减减就是cp里面的第三个元素指...,所以打印TER; 这个要注意执行顺序的问题,也就是优先级,在没有+3之前,整体是从右边向左边执行的; (4)cpp[-2]等价于*(cpp-2),所以这个时候又回到了最开始的位置你,也就是cpp指向c+
一位朋友最近面试腾讯的腾讯云通信IM后台开发工程师,熊哥从他那获取到该岗位一面的笔试题。 今天将这次笔试的题目分享给大家,看看大家能正确做出多少道?是否能通过该岗位的一面?或者说离通过一面还有多远?...(i == 0) C. (i) D. 非法语句 3、以下程序的运行结果是什么?屏幕上面显示什么?...a = SQR(b + 2); printf("a = %d\n", a); return 0; } 5、求下面结构体大小(5分) struct B {int b; char c;...}; typedef struct { int a; char b; short c; char d; B e; } S; 求sizeof...() << endl; memcpy(str2.data(),"abc",3); cerr c_str() <<endl; return 0; } 8、UDP通信
我那时候也就顺便给他找了一些C语言、Linux等等笔试题,后面也教他稍微修改过几次简历。 总体来说,这位同学能有现在的三个比较好的offer很大原因在于他自身的基础不错,肯付出、肯努力的结果。...前几天和我分享了他参加面试遇到的一道c语言笔试题,他说当时有点整不会了,竟然做错了,然后面试官也让他自己回去想想。因为大部分题做的还可以,最后也通过了面试。...有没有一种感觉: 自以为对指针的基本操作已经掌握,但是看到这道面试题,是不是被狠狠扇了一下。 说实话这完全是坑爹不实际的笔试题,不过这样坑爹的笔试题还有很多!...但是在c/c++中,函数指针解引用还是会当成函数指针处理,所以函数指针可以不限次数的解引用,效果和不解引用是一样的,可以换句话说:*操作对它是无效的!
本文我们就详细介绍一下动态内存管理相关的函数和知识点 二、malloc和free C语言的动态内存分配是通过库函数实现的,该节我们就来讲解其中的malloc函数和free函数的作用及用法,使用这两个库函数需要包含头文件...malloc开辟空间失败了,我们就需要打印一下开辟失败的原因,然后给出一个错误返回,结束程序,这是一个好习惯,我们可以在每次开辟空间时都判断一下,避免出错 如果不会perror函数的,可以参考文章:【C语言...或者calloc的时候开辟的空间还是固定的,比如开辟了10个整型,那么就只能使用10个整型,所以如果使用第11个整型的空间,那么程序就会报越界访问的错误 对⾮动态开辟内存使⽤free释放:这样的操作是C语言标准未定义的...动态开辟内存忘记释放(内存泄漏):由于动态开辟的内存操作系统不会主动收回,所以即使我们不使用那些空间了,也会一直占用内存空间,如果大量动态开辟的空间占据了内存,那么就会造成内存泄漏 五、动态内存经典笔试题...C++中程序内存区域划分 在动态内存管理的最后,我们将C/C++中程序内存区域划分拿来总结一下C/C++程序内存分配的⼏个区域: 栈区(stack):在执⾏函数时,函数内局部变量的存储单元都可以在栈上创建
malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。 它们都可用于申请动态内存和释放内存。...因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库函数。...这个唯一选择很关键,它说明了引用的重要性以及无可替代性,也许这就是C++语言中引入引用这个概念的原因吧。...C++是不是类型安全的? 答案:不是。两个不同类型的指针之间可以强制转换(用reinterpret cast)。C#是类型安全的。 16. main 函数执行以前,还会执行什么代码?...C++/C 语言没有办法知道指针所指的内存容量,除非在申请内存时记住它。注意当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。
(i=0; i<2; i++){ fork(); printf("-"); } return 0; } A.2 B.4 C.6...(i=0; i<2; i++){ fork(); printf("-\n"); } return 0; } A.2 B.4 C.6
一、sizeof和strlen的对比 有一个很神奇的现象,就是在C语言中sizeof和strlen是两个毫不相干的东西一个是操作符,一个是库函数。但是对于初学者来说就是很容易把两者弄混淆。...printf("%d\n", sizeof a); printf("%d\n", sizeof(int)); return 0; } 代码运行结果如下: 1.2 strlen strlen是C语言库函数...计算操作数所占内存的大小,单位是字节 2.strlen是求字符串长度的,统计的是\0之前字符的个数 3.不关注内存中存放什么数据 3.关注内存中是否有\0,如果没有\0,就会持续往后找,可能会越界 对于下面的笔试题...二、数组和指针笔试题 在下面的题目中sizeof的情况比较简单,对于strlen有些地方稍微有点难度,我会为大家做出相应的解释。...三、指针运算笔试题 3.1 题目1 #include int main() { int a[5] = { 1, 2, 3, 4, 5 }; int* ptr = (int*)(&
Go 语言笔试面试题 日常收集的题 一. 基础语法 1 = 和 := 的区别?...var y int = M 7 fmt.Println(x, y) 8} 答案 编译失败:cannot use M (type int32) as type int in assignment Go 语言中...2 3import "fmt" 4 5func main() { 6 a := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 7 b := a[2:5] 8 c...:= a[9:10] 9 b = append(b, 1) 10 c = append(c, 1) 11 fmt.Println(a) 12} 答案 [0 1 2 3 4 1 6 7 8 9]
今天(2021.02.05)晚上,笔者的一位做软件开发的朋友参加了腾讯云通信IM后台开发的视频面试,现分享一下面试的真题,供大家参考,以备不时之需。...岗位:腾讯云通信IM后台开发工程师 职位描述 ? 负责即时通信IM云相关产品的后台架构设计和功能开发; 搭建云化开放覆盖全球的稳定、实时、高效的消息服务。...工作要求 本科及以上学历,计算机或相关专业; 2年以上Linux/Unix后台开发经验,精通C/C++/go其中一种开发语言; 熟悉TCP/IP协议、网络编程,熟悉Redis、Mysql、Kafka等常用数据库...通过腾讯云技术认证或同等资格认证的优先录取。 ? ? 笔试题 说明:以下题目均在32位linux环境下,小端字节序 ? 1、以下语句分别输出什么?...5、求下面结构体大小(5分) struct B { int b; char c; }; typedef struct { int a; char b; short c;
九、C++部分:(共14 题:基础10 道,中等1 道,较难3 道) 188、以下三条输出语句分别输出什么?...int main(){ CLS obj; cout <<obj.m_i << endl; } 答:输出不是0; 196、C+...str+0, 9); cout << str << endl; //将输出"0012345678" return 0; } 199、非C+...【较难】 void char2Hex(char c){ //将字符以16 进制显示 char ch = c/0x10 + '0'; if(...ch>'9') ch += ('A'-'9'-1); char cl = c%0x10 + '0'; if(cl>'9') cl += ('A'-'9'-
给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。
C语言引入了动态内存开辟,让程序员自己可以申请和释放空间,就比较灵活了。...2. malloc函数和free函数 2.1 malloc函数 C语言提供了⼀个动态内存开辟的函数: void* malloc (size_t size); 这个函数向内存申请⼀块连续可用的空间,并返回指向这块空间的指针...【示例】:内存的申请 2.2 free函数 C语言提供了另外⼀个函数free,专门是用来做动态内存的释放和回收的,函数原型如下: void free (void* ptr); free函数用来释放动态开辟的内存...3. calloc函数和realloc函数 3.1 calloc函数 C语言还提供了⼀个函数叫 calloc, calloc 函数也用来动态内存分配。...动态内存经典笔试题分析 【题目1】: void GetMemory(char* p) { p = (char*)malloc(100); } void Test(void) { char* str
领取专属 10元无门槛券
手把手带您无忧上云