1,C语言面试题目急

前面两位虽说的有一定道理,但到这里来的同志不是来寻求打击的。 社会上各个层面的人都有,各个层面的需求也都有,所以不要那样了。 C程序如下: #define N 24 #include "stdlib.h" void RandArrayN(int *a,int n) { int i,t,; n=n-1; for(i=0;i<=n;i++) a[i]=0; // 全部清零,还没有置数的状态。 for(i=0;i<n;i++){ // 只循环了n-1次,每次置入的数据分别为n-1,n-2,...,1,最后剩余未置(非零)数的那个位置就本身已经置入0了。 while(a[t=rand(n)]!=0); // 每次找一个未置数位置 // 若该位置已经放下一个数(不等于0),则找下一个位置,直到找到为0的位置(还没有置入一个数) a[t]=n-i; // 第i次找到的位置置入数n-i, } } void main() { int a [N]; RandArrayN(a,N); } 汇编中要实现随机数好像比较麻烦,但整体思路是一样的,你还需要自己编写一个伪随机数产生子程序,目前我还没有研究过。

C语言面试题目急

2,c语言常见面试题

网上找的#include <stdio.h>int cal(int h1,int length,int b[]);int main()unsigned int n[]=;int length=7;printf("%d",cal(-2,length,n));return 0;}int cal(int h1,int length,int b[])if (length-h1==1)return b[h1];if (length-h1==2)return (b[h1]>b[h1+1]?b[h1]:b[h1+1]);if (length-h1==3)return (b[h1]+b[h1+2]>b[h1+1]?b[h1]+b[h1+2]:b[h1+1]);if (h1>=0) return b[h1]+(cal(h1+2,length,b)>cal(h1+3,length,b)?cal(h1+2,length,b):cal(h1+3,length,b));elsereturn (cal(h1+2,length,b)>cal(h1+3,length,b)?cal(h1+2,length,b):cal(h1+3,length,b));}

c语言常见面试题

3,C语言面试题

#include<stdio.h>typedef int(*FUNC1) (int in);typedef int(*FUNC2) (int*,int*,int*);int inc(int a)int multi(int*a,int*b,int*c) return(*c=*a**b);}void show(FUNC2 fun,int arg1,int*arg2)FUNC1 p=&inc;int temp=p(arg1);fun(&temp,&arg1,arg2);printf("%d",*arg2);}main()int a;//局部变量a为0;show(multi,10,&a);printf("\n");return 0;}这样就能编译过去了
c语言一般都是内存上的东西,比如说声明一个int类型占用多大之类的 还有类型转换,指针移动,链表,二叉树。 .net话,就是要你理解c#的一些概念,比如泛型,反射,接口,还有既然是.net数据库是必须得。一般问的是查询,排序,取记录 还有一些软件工程知识,比如类与类的几个关系
11*10=110,输出是110
照你的程序,两个函数指针类型的定义会编译出错,应改成:typedef int(*FUNC1) (int in);typedef int(*FUNC2) (int*,int*,int*);输出为:110n

C语言面试题

4,一道c语言面试题

强制类型转换,a+b 变是一个unsigned int 类型,usigned int 的范围 0~4294967295,不存在负数,这样便产生了数据溢出,数据补一位再减去14,即2^32-14,所以会比6要大
网上找的#include &lt;stdio.h&gt;int cal(int h1,int length,int b[]);int main()unsigned int n[]=int length=7;printf("%d",cal(-2,length,n));return 0;}int cal(int h1,int length,int b[])if (length-h1==1)return b[h1];if (length-h1==2)return (b[h1]&gt;b[h1+1]?b[h1]:b[h1+1]);if (length-h1==3)return (b[h1]+b[h1+2]&gt;b[h1+1]?b[h1]+b[h1+2]:b[h1+1]);if (h1&gt;=0) return b[h1]+(cal(h1+2,length,b)&gt;cal(h1+3,length,b)?cal(h1+2,length,b):cal(h1+3,length,b));elsereturn (cal(h1+2,length,b)&gt;cal(h1+3,length,b)?cal(h1+2,length,b):cal(h1+3,length,b));}

5,C语言简单面试题

浮点型变量并不精确,所以不可将float变量用“==”或“!=”与数字比较,应该设法转化为“>=”或"<="形式。具体如下:int型变量:if(a==0)float型变量:const float EPSINON=0.00001;if((x>=-EPSINON)&&(x<=EPSINON)指针变量:if(a==NULL)bool型变量:if(!a)
int IsZero(int Var) if(Var) return 1; else return 0;
c语言一般都是内存上的东西,比如说声明一个int类型占用多大之类的 还有类型转换,指针移动,链表,二叉树。 .net话,就是要你理解c#的一些概念,比如泛型,反射,接口,还有既然是.net数据库是必须得。一般问的是查询,排序,取记录 还有一些软件工程知识,比如类与类的几个关系
int IsZero(int Var) if(Var) return 1; else return 0;}int IsZero(float Var) if(Var) return 1; else return 0;}int IsZero(int Var) if(Var) return 1; else return 0;}int IsZero(bool Var) if(Var) return 1; else return 0;}

6,c语言常见面试题

网上找的#include int cal(int h1,int length,int b[]); int main(){ unsigned int n[]=; int length=7; printf("%d",cal(-2,length,n)); return 0; } int cal(int h1,int length,int b[]){ if (length-h1==1) return b[h1]; if (length-h1==2) return (b[h1]>b[h1+1]?b[h1]:b[h1+1]); if (length-h1==3) return (b[h1]+b[h1+2]>b[h1+1]?b[h1]+b[h1+2]:b[h1+1]); if (h1>=0) return b[h1]+(cal(h1+2,length,b)>cal(h1+3,length,b)?cal(h1+2,length,b):cal(h1+3,length,b)); else return (cal(h1+2,length,b)>cal(h1+3,length,b)?cal(h1+2,length,b):cal(h1+3,length,b)); }
这道题其实出的不好。函数printf里面my(4)和my(5)执行顺序是不确定的,和编译器有关。按照上面的意思应该是my(5)先执行,count初始化为a,即5,return的是count+a,等于10。执行my(4)的时候,count依然是5,return的是9。
你在网上找找 林锐博士的 《高质量 C++/C 程序设计指南》多看看

文章TAG:c语言  语言  面试  试题  c语言面试题  
下一篇