1。以下两个程序哪个的performance高,并解释为什么。 a) extern int foo(void); int main() { int i; for(i=0;i<10000;i++) foo();return i; } b) extern int foo(void); int i; int main() { for(i=0;i<10000;i++) foo(); return i; } 2。C程序写结果。 #include <stdio.h> #define ADD(p) {p++;(*p)++;} Add(int *p) {p++;(*p)++;} int a[]={0,1,2}; int main() { int *p=a; ADD(p) ADD(p) printf("%d,%d,%d\n",a[0],a[1],a[2]); p=a; Add(p); Add(p); printf("%d,%d,%d\n",a[0],a[1],a[2]);} 3。说明下面的的表达有没有不同,如果不同,请说明不同在哪里。 char* s1="hello"; char s2[]="world"; 4.说明下面程序的作用。 func(char*a,char*b) { while(*a++=*b++); return; } 5.printf可以接受多个参数,为什么,请写出printf的原型。 6.说明malloc和calloc的区别。 7, 三组程序,找出错误,如果有的话. 1>a.c long temp[255]; b.c extern *temp; 2>a.c long temp[255]; b.c extern temp[256]; 3>a.c long temp[255]; b.c extern temp[]; 8, printf("0x%x", (&0)[-1]); 请问打印了什么? 9. a=5,b=5 问下式的执行结果: (a++)==b?a:b 10. a[]={1,2,3,4,5} *p={a+3,a+2,a+1,a} **q=p 问下式执行结果: *(a[1]+1)+**(q+2) 11. 写出表达式表示出sin(360 度)/[(x^2+y^2)的平方根 12. 如何把a 数组的前n个字符拷贝到b数组去(字符数组) 13、有数组a[M][N],问下面那种算法效率高(a)for(int i=0;i<M;i++) for(int j=0;j<N;j++) xxx=a[i][j]......... (b)for(int i=0;i<N;i++) for(int j=0;j<M;j++) xxx=a[j][i]......... 14、关于递归调用的一个题: int foo(int i) { if(i==0) return 0; reurn foo(i/2)+1; } 问foo(4)=? 15、构造函数都不定义返回类型,对吗? 16、拷贝构造函数在什么情况下被调用? 17、1000!有几位数,为什么 18、F(n)=1 n>8 n<12 F(n)=2 n<2 F(n)=3 n=6 F(n)=4 n=other 使用+ - * /和sign(n)函数组合出F(n)函数 sign(n)=0 n=0 sign(n)=-1 n<0 sign(n)=1 n>0

评论