1. 简述一个Linux驱动程序的主要流程与功能。

2. 请列举一个软件中时间换空间或者空间换时间的例子。

void swap(int a,int b)

{

int c; c=a;a=b;b=a;

}

--->空优

void swap(int a,int b)

{

a=a+b;b=a-b;a=a-b;

}

6. 请问一下程序将输出什么结果?

char *RetMenory(void)

{

char p[] = “hellow world”;

return p;

}

void Test(void)

{

char *str = NULL;

str = RetMemory();

printf(str);

}

RetMenory执行完毕,p资源被回收,指向未知地址。返回地址,str的内容应是不可预测的,

打印的应该是str的地址

写一个函数,它的原形是int continumax(char *outputstr,char

*intputstr)

功能:

在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回

9,outputstr所指的值为123456789

int continumax(char *outputstr, char *inputstr)

{

char *in = inputstr, *out = outputstr, *temp, *final;

int count = 0, maxlen = 0;

while( *in != \'\\0\' )

{

if( *in > 47 && *in < 58 )

{

for(temp = in; *in > 47 && *in < 58 ; in++ )

count++;

}

else

in++;

if( maxlen < count )

{

maxlen = count;

count = 0;

final = temp;

}

}

for(int i = 0; i < maxlen; i++)

{

*out = *final;

out++;

final++;

}

*out = \'\\0\';

return maxlen;

}

不用库函数,用C语言实现将一整型数字转化为字符串

方法1:

int getlen(char *s){

int

n;

for(n =

0; *s != \'\\0\'; s++)

n++;

return

n;

}

void reverse(char s[])

{

int c,i,j;

for(i = 0,j = getlen(s) -

1; i < j; i++,j--){

c = s[i];

s[i] = s[j];

s[j] = c;

}

}

void itoa(int n,char s[])

{

int i,sign;

if((sign = n) < 0)

n = -n;

i = 0;

do{/*以反序生成数字*/

s[i++] = n%10 + \'0\';/*get next number*/

}while((n /= 10) >

0);/*delete the number*/

if(sign < 0)

s[i++] = \'-\';

s[i] = \'\\0\';

reverse(s);

}

方法2:

#include

using namespace std;

void itochar(int num);

void itochar(int num)

{

int i = 0;

int j ;

char stra[10];

char strb[10];

while ( num )

{

stra[i++]=num%10+48;

num=num/10;

}

stra[i] = \'\\0\';

for( j=0; j < i; j++)

{

strb[j] = stra[i-j-1];

}

strb[j] = \'\\0\';

cout<

}

int main()

{

int num;

cin>>num;

itochar(num);

return 0;

}

前几天面试,有一题想不明白,请教大家!

typedef struct

{

int a:2;

int b:2;

int c:1;

}test;

test t;

t.a = 1;

t.b = 3;

t.c = 1;

printf("%d",t.a);

printf("%d",t.b);

printf("%d",t.c);

谢谢!

t.a为01,输出就是1

t.b为11,输出就是-1

t.c为1,输出也是-1

3个都是有符号数int嘛。

这是位扩展问题

01

11

1

编译器进行符号扩展

求组合数: 求n个数(1....n)中k个数的组合....

如:combination(5,3)

要求输出:543,542,541,532,531,521,432,431,421,321,

#include

int pop(int *);

int push(int );

void combination(int ,int );

int stack[3]={0};

top=-1;

int main()

{

int n,m;

printf("Input two numbers:\\n");

while( (2!=scanf("%d%*c%d",&n,&m)) )

{

fflush(stdin);

printf("Input error! Again:\\n");

}

combination(n,m);

printf("\\n");

}

void combination(int m,int n)

{

int temp=m;

push(temp);

while(1)

{

if(1==temp)

{

if(pop(&temp)&&stack[0]==n)

//当栈底元素弹出&&为可能取的最小值,循环退出

break;

}

else if( push(--temp))

{

printf("%d%d%d ",stack[0],stack[1],stack[2]);//§ä¨ì¤@?

pop(&temp);

}

}

}

int push(int i)

{

stack[++top]=i;

if(top<2)

return 0;

else

return 1;

}

int pop(int *i)

{

*i=stack[top--];

if(top>=0)

return 0;

else

return 1;

}

1、用指针的方法,将字符串“ABCD1234efgh”前后对调显示

#include

#include

#include

int main()

{

char

str[] = "ABCD1234efgh";

int

length = strlen(str);

char * p1

= str;

char * p2

= str + length - 1;

while(p1

< p2)

{

char c = *p1;

*p1 = *p2;

*p2 = c;

++p1;

--p2;

}

printf("str now is %s\\n",str);

system("pause");

return

0;

}

2、有一分数序列:1/2,1/4,1/6,1/8……,用函数调用的方法,求此数列前20项的和

#include

double getValue()

{

double

result = 0;

int i =

2;

while(i

< 42)

{

result += 1.0 /

i;//一定要使用1.0做除数,不能用1,否则结果将自动转化成整数,即0.000000

i += 2;

}

return

result;

}

int main()

{

printf("result is %f\\n", getValue());

system("pause");

return

0;

}

有一个数组a[1000]存放0--1000;要求每隔二个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。

以7个数为例:

{0,1,2,3,4,5,6,7}

0-->1-->2(删除)-->3-->4-->5(删除)-->6-->7-->0(删除),如此循环直到最后一个数被删除。

方法1:数组

#include

using namespace std;

#define null 1000

int main()

{

int arr[1000];

for (int i=0;i<1000;++i)

arr[i]=i;

int j=0;

int count=0;

while(count<999)

{

while(arr[j%1000]==null)

j=(++j)%1000;

j=(++j)%1000;

while(arr[j%1000]==null)

j=(++j)%1000;

j=(++j)%1000;

while(arr[j%1000]==null)

j=(++j)%1000;

arr[j]=null;

++count;

}

while(arr[j]==null)

j=(++j)%1000;

cout<

return 0;

}方法2:链表

#include

using namespace std;

#define null 0

struct node

{

int data;

node* next;

};

int main()

{

node* head=new node;

head->data=0;

head->next=null;

node* p=head;

for(int i=1;i<1000;i++)

{

node* tmp=new node;

tmp->data=i;

tmp->next=null;

head->next=tmp;

head=head->next;

}

head->next=p;

while(p!=p->next)

{

p->next->next=p->next->next->next;

p=p->next->next;

}

cout<data;

return 0;

}

linux驱动程序是什么,简述一个Linux驱动程序的主要流程与功能相关推荐

  1. linux 多个定时器,timer: 一个Linux下的超级精简的多重定时器:可实现成千上万个定时任务,定时精度可达纳秒级别,且同一时间点可添加不同的任务!适用于云后台服务和嵌入式等各种环境。...

    MT_Timer(MT译为Multiple或Multi) 一.介绍 一个Linux下的超级简洁的定时器:利用epoll机制和timerfd新特性实现的多重.多用.多个定时任务实现.只需要使用TIMER ...

  2. linux成功mysql数据直接拷贝_mysql数据库数据从一个linux系统移植到另一个linux系统的方法...

    背景 问题介绍 现在有一个linux系统的机器上数据需要移植到另外一个linux系统上.老机器称A机器,新机器称B机器. 前期调研 鉴于网上资料很多都是相同内容,而数据库的数据一般都很重要,这些方法都 ...

  3. linux的so命令,每天一个 Linux 命令(67): ldd 命令

    原标题:每天一个 Linux 命令(67): ldd 命令 ldd 命令用于打印程序或者共享库文件所依赖的共享库列表. 注意,ldd 本身不是一个二进制程序,而是一个 Shell 脚本,使用文本编辑器 ...

  4. dsc linux 软件安装_介绍一个linux各软件安装教程网站linuxize

    前言 相信有很多开发者安装linux系统软件时都会根据不同的发行版本去百度不同软件的安装步骤,但有时候可能会出现读者根据博主的安装步骤进行却出现了无法安装成功的情况,其实我作为一名读者有时也会出现这样 ...

  5. linux set命令例子,学习一个 Linux 命令:declare/typeset 命令

    原标题:学习一个 Linux 命令:declare/typeset 命令 1 功能简介 declare(别名 typeset)属 Shell 内建命令,用于申明 Shell 变量并设置变量属性,或查看 ...

  6. linux查看网络带宽_每天一个Linux命令之~wget命令

    " 勤能补拙是良训,一分辛劳一分才." 01 - 命令介绍 wget 命令用于在终端中下载网络文件 功能和特点 支持断点下传功能 同时支持FTP和HTTP下载方式 程序小,完全免费 ...

  7. linux touch 源码,每天一个Linux命令(09)--touch命令

    linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件. 1.命令格式: touch  [选项]··· 文件··· 2.命令参数: -a 或 ...

  8. mail linux 客户端,Nylas Mail: 一个 Linux 的免费邮件客户端

    Nylas Mail An Amazing Free Email Client For Linux 有一个经常被提及的问题是 Ubuntu 是否还应该提供默认的电子邮件客户端.就个人而言,我已经很长时 ...

  9. linux桌面另一个,linux远程桌面连接另一个linux教程

    我们知道在windows下面我们可以用远程桌面连接来控制其它电脑, 但linux远程桌面连接? 不过在说怎样连接之前还是要先明确一个概念,为什么我标题没有用linux中的远程桌面连接呢, 这是因为Li ...

最新文章

  1. hdu 1404/zoj 2725 Digital Deletions 博弈论
  2. 使用LocalDate,LocalTime和LocalDateTime
  3. HTTPHandler有什么作用
  4. 160 - 24 Chafe.2
  5. 设计模式-责任链模型
  6. 发年终奖了,创了新高
  7. WinForm 处理未处理的异常 Application.ThreadException + AppDomain.CurrentDomain.UnhandledException
  8. react-router-dom v4
  9. 基于Socket的UDP和TCP编程介绍-转
  10. Excel 哪个版本的好用?
  11. MATLAB dir函数文件名排序问题
  12. 计算机网络中期论文,计算机 毕业论文(设计)中期报告
  13. 银行储蓄系统软件结构图
  14. HTML5游戏引擎(八)-矢量绘图——绘制矩形-drawRect 绘制圆形-drawCircle 绘制直线-moveTo和 lineTo
  15. 2015 年度新增开源软件排名TOP100
  16. 未来科技感UI界面设计欣赏
  17. android 不停弹出权限,Android部分手机“后台弹出界面权限”解决方案
  18. 虚拟机WMware NAT方式共享物理主机IP地址上网设置方式
  19. 3D游戏建模到底需要学习哪些美术基础?新手如何开始学习3D建模?
  20. Android中对menu、home、back键的监听

热门文章

  1. pve远程连接 spcie_proxmox折腾 篇一:解决j3455直通iommu分组问题,PVE内核编译教程...
  2. 解决远程连接mysql错误1130
  3. TortoiseSVN搭载
  4. 程序的又一次测量学实际应用(程序对全站仪测量学导出数据文件的读取与修改)...
  5. UA MATH571B 试验设计VI 随机效应与混合效应2
  6. 初次使用CxImage类库、VC6配置UNICODE的方法
  7. windbg查看SSDT表
  8. 使用纯 Win32 API 编程实现Winpcap 封包捕获的第一个例子
  9. 图解MySql命令行创建存储过程
  10. 图解Oracle同义词