c语言面试题目100及最佳答案,c语言常见面试题

1,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语言面试题目100及最佳答案,c语言常见面试题】
2 , C语言面试题C语言是一门通用计算机编程语言 , 应用广泛 。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言 。下面就由我为大家介绍一下C语言面试题的文章,欢迎阅读 。C语言面试题篇11、已知字母b的ASCII码的十进制代码为98,则执行下列语句输出为( C)ch=b;ch–;printf(%d,%c\n”,ch,ch);A)a,b B)运算不合法,故有语法错 C)97,aD)格式描述和输出项不匹配,输出无值2、若变量a已说明为float类型,则能实现将a中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( C)A)a=(a*100+0.5)/100.0 B)a=(a*100+0.5)/100 C)a=(int)(a*100+0.5)/100D)a=(a/100+0.5)*100.03、下列程序段的输出结果是(B )int a=5,b=7;printf(“%d,%d”,a++,++b);A)5, 7 B)5, 8 C)6, 7 D)6, 8C语言面试题篇21、下列程序的输出结果是(D )main()a*=a+=6;printf(“%d\n”,a);}A)40 B)60 C)80 D)1002、下列程序的输出结果是( C)main()printf(“%a”,(a=a*5,a+6));}A)14 B)40 C)46 D)50C语言面试题篇31、定义a为整型 , 下列表达式a=3>6的运行后,a的值为(A )A)0 B)1 C)3 D)表达式错误2、、如果a=1,b=2,c=3,d=4,则条件表达式a>b?a: c>d?c: d的值为( D)A)1 B)2 C)3 D)43、下述程序段的输出结果是( A)a%=7;printf(“%d, ”,a);a+=a*=a-=a*=2;printf(“%d”,a);}A)5, 0 B)0, 0 C)5, 12 D)0, 124、下列变量名中合法的是(A )A)Tom B)3a6b C)6a7b D)5ABC5、对于条件表达式(M)?(a++): (a–),其中的表达式M等价于(C )A)M= =0 B)M= =1 C)M!=0 D)m!=1
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
4,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;}5 , 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 程序设计指南》多看看

    推荐阅读