1、 华为 1.static 有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用 2.引用与指针有什么区别? 1) 引用必须被初始化,指针不必。 2) 引用初始化以后不 能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。 3.描述实时系统的基本特性在特定
2、时间内完成特定的任务,实时性与可靠性。 4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在堆栈。 5.什么是平衡二叉树? 左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于 1。 6.堆栈溢出一般是由什么原因导致的? 没有回收垃圾资源。 7.什么函数不能声明为虚函数? constructor 函数不能声明为虚函数。 8.冒泡排序算法的时间复杂度是什么? 时间复杂度是 O(n2)。 9.写出 float x 与“零值”比较的 if 语句。 if(x0.000001 p=h; for(i=0;inext = s; printf(“Pleas
3、e input the information of the student: name sex no age n“); scanf(“%s %c %d %d“,s-name, s-next = NULL; p = s; printf(“Create successful!“); return(h); void deletelist(struct stu *s,int a) struct stu *p; while(s-age!=a) p = s; s = s-next; if(s=NULL) printf(“The record is not exist.“); else p-next =
4、s-next; printf(“Delete successful!“); void display(struct stu *s) s = s-next; while(s!=NULL) printf(“%s %c %d %dn“,s-name,s-sex,s-no,s-age); s = s-next; int main() struct stu *s; int n,age; printf(“Please input the length of seqlist:n“); scanf(“%d“, s = creatlist(n); display(s); printf(“Please input
5、 the age:n“); scanf(“%d“, deletelist(s,age); display(s); return 0; 2、实现一个函数,把一个字符串中的字符从小写转为大写。 #include “stdio.h“ #include “conio.h“ void uppers(char *s,char *us) for(;*s!=0;s+,us+) if(*s=a /*判断正整数是否溢出 */ if (*p-0) (4294967295-(nNumber*10) return 4; nNumber = (*p-0) + (nNumber * 10); p+; /*将数字逆序组合,直
6、接抄楼上高手的代码,莫怪,呵呵 */ n = nNumber; while(n) /*判断正整数是否溢出 */ if (n%10) (4294967295-(nTemp*10) return 3; nTemp = nTemp*10 + n%10; n /= 10; /*比较逆序数和原序数是否相等 */ if (nNumber != nTemp) return 3; return 0; 方法二 /* - 功能: 判断字符串是否为回文数字 实现: 先得到字符串的长度 ,再依次比较字符串的对应位字符是否相同 输入: char *s:待判断的字符串 输出: 无 返回: 0:正确; 1:待判断的字符串为空; 2:待判断的字符串不为数字; 3:字符串不为回文数字 - */ unsigned IsSymmetry_2(char *s) char *p = s; int nLen = 0; int i = 0; /*判断输入是否为空 */ if (*s = 0) return 1; /*得到字符串长度 */ while (*p != 0) /*判断字符是否为数字 */ if (*p9) return 2; nLen+;