面试题练习01
来源:互联网 发布:大数据上市公司有哪些 编辑:程序博客网 时间:2024/05/16 14:32
试卷二
一、填空选择题
1、请写出 char *p 与“零值”比较的 if 语句 if(p == NULL)
2、写出打印结果___255____
#include<stdio.h>
#include<string.h>
int main()
{
char a[1000];
int i;
for(i=0;i<1000;i++)
{
a[i]=-1-i;
}
printf("%d",strlen(a));
return 0;
}
3、分析输出结果______8 8________________
int arr[] = {6,7,8,9,10};
int *ptr = arr;
*(ptr++)+=123;
printf(“ %d %d ”, *ptr, *(++ptr));
4、f(657, 789)_________673_______
int f(int x, int y)
{
return (x&y)+((x^y)>>1)
}
5、Linux文件权限一共10位长度,分成四段,第三段表示的内容是___C__________
A、文件类型
B、文件所有者的权限
C、文件所有者所在组的权限
D、其他用户的权限
二、简答题
1、用变量a给出下面的定义
1) int a; 一个整型数;
2) int *a; 一个指向整型数的指针
3) int **a; 一个指向指针的的指针,它指向的指针是指向一个整型数
4) int a[10]; 一个有10个整型数的数组
5) int *a[10]; 一个有10个指针的数组,该指针是指向一个整型的
6) int (*a)[10]; 一个有10个整型数组的指针
7) int (*a)(int); 一个指向函数的指针,该函数有一个整型参数并返回一个整型数
8) int (*a[10])(int); 一个有10个指针的数组,改指针指向一个函数,该函数有一个有一个整型的参数返回值是一个整型数;
2、关键字const的作用是什么?
(1):欲阻止一个变量被改变,可以使用const关键字,在定义该const变量时,通常需要对其
初始化,因为以后就没有机会改变这个这个变量。
(2)对指针来说,可以指定指针的本身就是const,也可以指定指针所指的数据为const,或者同时指定为const.
(3)在一个函数的声明中,const可以修饰形参,标明它是一个输入参数,在函数的内部不能改变其值
(4)对于类的成员函数,若指定为const类型,则标明其是一个常函数,不能修改类的成员变量。
3、内存的分配方式的分配方式有几种?
(1)静态的分配,在编译的时候就已经分配好空间的,在整个程序的运行的期间都存在
如:全局变量,static变量
(2)在栈上上创建,在执行函数的时候,函数局部变量在栈上创建,在执行完成后,系统会自动的释放那些内存,栈内分配的运算的处理器的指令集中,效率很高,但是分配的内存容量有限。
(3)在堆上分配,也叫动态分配,动态的分配的内存的空间存在的时间,有编写的程序员所决定的,如果分配了,那么苏姚收回它,否则运行的程序会出现内存的泄漏,频繁的分配和释放不同大小的堆栈的空间会产生堆内的碎块。
4、进程和线程的区别
线程:没有地址孔家,多线程共享资源,多线程的系统的系统处理高并发操作的效率高
进程:有独立的地址空间,多个进程之间资源保密。
进程与线程的主要的区别,在于他们不同的操作系统的资源的管理的方式。
每个进程有自己的独立的地址空间,也就意味着进程之间资源是保密的,一个进程崩溃了,
在保护模式下,并不会对其他的进程产生影响,而一个线程只是一个进程中不同的执行的路径。每个线程都有自己的堆栈空间与局部变量,但是,线程回见没有独立的地址空间,一个线程死掉,整个进程就会死掉。
简单的说:
进程是资源分配的最小的单位
线程是程序执行的最小的单位
进程有独立的地址空间,一个进程崩溃后,在保护模式下,其他的进程不会受到影响,
线程是进程中的不同的执行的路径,一个线程崩溃,那么整个进程就会崩掉。
5、进程间通信方式有哪些?各自有哪些优缺点?
(1)无名管道通信:
1.较早的一种通信方式,缺点:只能用来亲缘关系进程之间的通信,只支持单向的数据流,如果要双向的通信,需要创建多个管道;
2.自身具备同步的机制
3.随进程持续
(2)有名管道:
1.支持不是亲缘之间的通信,,和内存共享类似,提供一个路径的名字,将各个没有亲缘关系的进程关联在一起,但是需要创建两个描述符来实现双向的通信。
2.自身具备同步的机制
3.随进程持续
(3)共享内存:
1.最快的一种通信方式,多个进程可同时的访问同一片内存的空间,相对其他的方式,更少的数据的拷贝,效率较高。
2.需要结合信号灯和其他的方式来实现多个进程之间 同步,自身不具备同步机制
3.随内核持续,相比于随进程持续的生命力更强
(4)信号量:
1.这种的通信携带的信息极少,不适合需要经常携带数据的通信。
2.不具备同步的机制,类似于中断,什么时候产生信号,进程是不知道的。
(5)消息队列:
1.与内存共享和有名管道类似,使用一个路径名来实现各个无亲缘关系的进程之间的通信。但是它的优点是:它提供有格式的字节流,减少了开发人员的工作量,消息具有类型额优先级
2.具备同步的机制;
3.随内核持续;
(5)socket:
1.实现起来简单,可以使用因特网域和linux域来实现,使用英特网域可以实现不同主机之间的通信
2.自带同步机制,
3.随进程持续;
三、程序题
1、C语言库函数里是否有将字符串转化为数字的函数,若有则用自己的方式实现它。
int my_stoi(char const*src)
{ int falg = 1;
int num = 0;
char * temp = src;
if( (*temp) ==‘-’)
{
flag = -1;
temp++;
}
while(*(temp++) !=’ \0’)
{
num = num *10 + (*temp)-‘0’;
}
return flag * num;
}
2、编写一个程序,实现输出链表中倒数第K个结点
void print_k(int k, Node *head)
{
Node *temp;
int num;
int i;
temp = head;
while(temp != NULL)
{
num++;
temp = temp ->next;
}
temp = head;
for(i = 0; i < num -k; i ++)
{
temp = temp->next;
}
printf(“result = %d\n”,temp->data);
}
- 面试题练习01
- 练习迅雷面试题
- 迅雷面试题练习
- 面试题-练习一
- 面试题练习
- 面试题练习
- 面试题练习
- 腾讯面试题练习
- linux 多线程练习、面试题
- java面试题练习160711
- 练习(面试题) :字符串截取
- c++练习2 微软面试题
- c++练习3 新浪面试题
- c++ 练习4 google面试题
- 简单的面试题小练习。
- 找工作之面试题练习1
- 找工作之面试题练习2
- [每日练习]百度算法面试题
- JavaScript基础系列2---数据类型和运算符
- 精通 CSS+DIV 网页样式与布局 1 什么是样式表
- 初识Javascript
- java 内部类(成员内部类)
- 浅谈java代理类proxy
- 面试题练习01
- bzoj3156
- VS error C4996: 'fopen': This function or variable may be unsafe
- Eighth records of career
- android屏幕适配之单位及文件夹
- 第14周项目1-(2)验证分块查找算法
- 润乾报表调用js打开模态窗口
- html、css杂知识
- 28 leetcode - Implement strStr()