李sir_Blog

博客园 首页 联系 订阅 管理
上一页 1 ··· 39 40 41 42 43 44 45 46 47 ··· 71 下一页

2011年1月15日

摘要: 1. 找错试题1:Void test1(){char string[10];char* str1="0123456789";strcpy(string, str1);}试题2:Void test2(){char string[10], str1[10];for(I=0; I10;I++){str1[i] ='a';}strcpy(string, str1);}试题3:Void test3(char* str1){char string[10];if(strlen(str1) = 10){strcpy(string, str1);}}在swap函数中,p是一个“野”指针,有可能指向系统区,导 阅读全文
posted @ 2011-01-15 20:21 李sir 阅读(2591) 评论(0) 推荐(0)

摘要: 3.技巧题试题1:请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1解答: int checkCPU(){ {  union w  {    int a;   char b;  } c;  c.a = 1;  return (c.b == 1); }}剖析:   嵌入式系统开发者应该对Little-endian和Big-endian模式非常了解。采用Little-endian模式的CPU对操作数的存放方 式是从低字节到高字节,而Big-endian模式对操作数的存放方式是从高字节到低字节。例如,16bit宽的数0x1234在Little- e 阅读全文
posted @ 2011-01-15 19:58 李sir 阅读(1301) 评论(0) 推荐(0)

摘要: 1.设一棵完全二叉树有700个结点,则在该二叉树中有多少个叶子结点如果一棵具有n个结点的深度为k的二叉树,它的每一个结点都与深度为k的满二叉树中编号为1~n的结点一一对应,这棵二叉树称为完全二叉树。 可以根据公式进行推导,假设n0是度为0的结点总数(即叶子结点数),n1是度为1的结点总数,n2是度为2的结点总数,由二叉树的性质可知:n0=n2+1,则n= n0+n1+n2(其中n为完全二叉树的结点总数),由上述公式把n2消去得:n= 2n0+n1-1,由于完全二叉树中度为1的结点数只有两种可能0或1,由此得到n0=(n+1)/2或n0=n/2,合并成一个公式:n0=(n+1)/2 ,就可根据完 阅读全文
posted @ 2011-01-15 19:57 李sir 阅读(3005) 评论(0) 推荐(0)

摘要: 1、将一个链表逆序 LinkList *reverse(LinkList *head){LinkList *p1,*p2 = NULL,*p3 = NULL;if(head == NULL || head-next == NULL)return head;p1 = head-next;while(p1!=NULL){p3 = p1-next;p1-next = p2;p2 = p1;p1 = p3;}head-next = p2;// head = p2;return head; }2、计算一个字节里(byte)里面有多少bit被置1#include stdio.hint com 阅读全文
posted @ 2011-01-15 19:55 李sir 阅读(16080) 评论(2) 推荐(2)

摘要: MTK深圳嵌入式软件工程师笔试题(B卷)1.#define pi 3.14#define Area(R) pi*R*Rmain(){int r1=5,r2=2;double s=0;s=Area(r1-r2);printf("The area is %f",s);}求结果: The area is 3.7000002.函数 int compare(int a,int b),定义为该函数的函数指针P:为 int(*p)(int,int);p= compare;3.求输出结果#includestdio.hvoid sub(char*s,int num){int i ,j=num;char t 阅读全文
posted @ 2011-01-15 19:54 李sir 阅读(5458) 评论(0) 推荐(0)

摘要: 选择题 1:设float a=2, b=4, c=3;,以下C语言表达式与代数式 (a+b)+c计算结果不一致的是 A.(a+b)*c/2 B.(1/2)*(a+b)*c C.(a+b)*c*1/2 D.c/2*(a+b) 参考答案:B,因为a,b,c三个变量都是浮点数,所以在B答案中其结果是0,因为在计算1/2是就是0,如果改成1/2.0就正确了。2:为了向二进制文件尾部增加数据,打开文件的方式应采用 A.″ab″ B.″rb+″ C.″wb″ D.″wb+″ 参考答案:D3:下述程序执行后的输出结果是 #include main() { int x='f'; printf("%c\n",' 阅读全文
posted @ 2011-01-15 19:53 李sir 阅读(23123) 评论(0) 推荐(3)

摘要: 二分查找的代码.int bfind(int* a,int len,int val){ int m = len/2; int l = 0; int r = len; while(l!=m && r!= m) { if(a[m] val) { r = m; m = (m+l)/2; } else if(a[m] val) { l = m; m = (m+r)/2; } else return m; } return -1; //没有找到}写出在母串中查找子串出现次数的代码.int count1(char* str,char* s){ char* s1; char* s2; i 阅读全文
posted @ 2011-01-15 19:51 李sir 阅读(2025) 评论(0) 推荐(1)

摘要: 1 读程序段,回答问题int main(int argc,char *argv[]){int c=9,d=0;c=c++%5;d=c;printf("d=%d\n",d);return 0;}a) 写出程序输出b) 在一个可移植的系统中这种表达式是否存在风险?why?#include "stdio.h"int a=0; int b;static char c;int main(int argc,char *argv[]){char d=4;static short e;a++;b=100;c=(char)++a;e=(++d)++;printf("a=%d, b=%d, c=%d, d= %d 阅读全文
posted @ 2011-01-15 19:50 李sir 阅读(7115) 评论(0) 推荐(0)

摘要: 1.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)    #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL  我在这想看到几件事情:  1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)  2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。  3). 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。  4). 如果你在你的表达式中用到UL(表示无符号长整 阅读全文
posted @ 2011-01-15 19:47 李sir 阅读(2516) 评论(0) 推荐(1)

摘要: 第1题: 考查对volatile关键字的认识#includesetjmp.hstaticjmp_bufbuf;main(){volatileintb;b=3;if(setjmp(buf)!=0){printf("%d",b);exit(0);}b=5;longjmp(buf,1);}请问, 这段程序的输出是(a) 3(b) 5(c) 0(d) 以上均不是第2题:考查类型转换main(){structnode{inta;intb;intc;};structnodes={3,5,6};structnode*pt=&s;printf("%d",*(int*)pt);}这段程序的输出是:(a) 3 阅读全文
posted @ 2011-01-15 19:45 李sir 阅读(1513) 评论(0) 推荐(0)

上一页 1 ··· 39 40 41 42 43 44 45 46 47 ··· 71 下一页