C语言笔试面试题整理.doc
- 文档编号:2499041
- 上传时间:2022-10-30
- 格式:DOC
- 页数:19
- 大小:60KB
C语言笔试面试题整理.doc
《C语言笔试面试题整理.doc》由会员分享,可在线阅读,更多相关《C语言笔试面试题整理.doc(19页珍藏版)》请在冰豆网上搜索。
现在的公司招聘,都要笔试面试.如果你不是那种编程功底非常深厚的人,又不好好准备一番,在笔试面试中往往会处于被动局面.虽然有些笔试题是故意为难我们,
有点钻牛角尖.但是很多笔试题面试题确实能够很好地看出我们的基础.在这里,我就略去那些钻牛角尖的题.从csdn论坛我近半年的收集中选出10道有代表性的题目,
难度基本上是逐渐加大.对数组,指针,数据结构,算法,字符串,文件操作等问题都有覆盖.主要以c语言的实现为主,也有c++的题.大家可以先做做这10道题,测试一下自己的水平.
1.下面这段代码的输出是多少(在32位机上).
char*p;
char*q[20];
char*m[20][20];
int(*n)[10];
structMyStruct
{
chardda;
doubledda1;
inttype;
};
MyStructk;
printf("%d%d%d%d",sizeof(p),sizeof(q),sizeof(m),sizeof(n),sizeof(k));
2.
(1)
chara[2][2][3]={{{1,6,3},{5,4,15}},{{3,5,33},{23,12,7}}};
for(inti=0;i<12;i++)
printf("%d",_______);
在空格处填上合适的语句,顺序打印出a中的数字
(2)
char**p,a[16][8];
问:
p=a是否会导致程序在以后出现问题?
为什么?
3.用递归方式,非递归方式写函数将一个字符串反转.
函数原型如下:
char*reverse(char*str);
4.strcpy函数和memcpy函数有什么区别?
它们各自使用时应该注意什么问题?
5.写一个函数将一个链表逆序.
一个单链表,不知道长度,写一个函数快速找到中间节点的位置.
写一个函数找出一个单向链表的倒数第n个节点的指针.(把能想到的最好算法写出).
6.用递归算法判断数组a[N]是否为一个递增数组。
7.
有一个文件(名为a.txt)如下,每行有4项,第一项是他们的名次,写一个c程序,将五个人的名字打印出来.并按名次排序后将5行数据仍然保存到a.txt中.使文件按名次排列每行.
2,07010188,0711,李镇豪,
1,07010154,0421,陈亦良,
3,07010194,0312,凌瑞松,
4,07010209,0351,罗安祥,
5,07010237,0961,黄世传,
8.写一个函数,判断一个unsignedchar字符有几位是1.
写一个函数判断计算机的字节存储顺序是升序(little-endian)还是降序(big-endian).
9.微软的笔试题.
ImplementastringclassinC++withbasicfunctionalitylikecomparison,concatenation,inputandoutput.Pleasealsoprovidesometestcasesandusingscenarios(samplecodeofusingthisclass).
PleasedonotuseMFC,STLandotherlibrariesinyourimplementation.
10.有个数组a[100]存放了100个数,这100个数取自1-99,且只有两个相同的数,剩下的98个数不同,写一个搜索算法找出相同的那个数的值.(注意空间效率时间效率尽可能要低).
这十道题还是能够看出自己的水平如何的.如果你能不假思索地做出这10道题,估计去国外大公司是没有问题了,呵呵.
答案我在整理中,以后陆续发布.................
下面有些题也不错,可以参考.
1.下面的代码输出是什么,为什么?
voidfoo(void)
{
unsignedinta=6;
intb=-20;
(a+b>6)?
puts(">6"):
puts("<=6");//puts为打印函数
}
输出>6.
就是考察隐式转换.int型变量转化成unsignedint, b成了正数.
2.b)运行下面的函数会有什么结果?
为什么?
voidfoo(void)
{
charstring[10],str1[10];
inti;
for(i=0;i<10;i++)
{
str1[i]='a';
}
strcpy(string,str1);
printf("%s",string);
}
首先搞清strcpy函数的实现方法,
char*strcpy(char*strDest,constchar*strSrc)
{
if((strDest == NULL) || (strSrc == NULL))
throw"Invalidargument(s)";
char*strDestCopy = strDest;
while((*strDest++ = *strSrc++) !
= '\0');
returnstrDestCopy;
}
由于str1末尾没有'\0’结束标志,所以strcpy不知道拷贝到何时结束.
printf函数,对于输出char*类型,顺序打印字符串中的字符直到遇到空字符('\0')或已打印了由精度指定的字符数为止.
下面是微软的两道笔试题....
3.ImplementastringclassinC++withbasicfunctionalitylikecomparison,concatenation,inputandoutput.Pleasealsoprovidesometestcasesandusingscenarios(samplecodeofusingthisclass).
PleasedonotuseMFC,STLandotherlibrariesinyourimplementation.
我的实现方案如下,这道题真地对c++的主要特性都进行了较好地考察.
String.h:
#ifndefSTRING_H
#defineSTRING_H
#include
usingnamespacestd;
classString{
public:
String();
String(intn,charc);
String(constchar*source);
String(constString&s);
//String&operator=(char*s);
String&operator=(constString&s);
~String();
char&operator[](inti){returna[i];}
constchar&operator[](inti)const{returna[i];}//对常量的索引.
String&operator+=(constString&s);
intlength();
friendistream&operator>>(istream&is,String&s);//搞清为什么将>>设置为友元函数的原因.
//friendbooloperator<(constString&left,constString&right);
friendbooloperator>(constString&left,constString&right);//下面三个运算符都没必要设成友元函数,这里是为了简单.
friendbooloperator==(constString&left,constString&right);
friendbooloperator!
=(constString&left,constString&right);
private:
char*a;
intsize;
};
#endif
String.cpp:
#include"String.h"
#include
#include
String:
:
String(){
a=newchar[1];
a[0]='\0';
size=0;
}
String:
:
String(intn,charc){
a=newchar[n+1];
memset(a,c,n);
a[n]='\0';
size=n;
}
String:
:
String(constchar*source){
if(source==NULL){
a=newchar[1];
a[0]='\0';
size=0;
}
else
{size=strlen(source);
a=newchar[size+1];
strcpy(a,source);
}
}
String:
:
String(constString&s){
size=strlen(s.a);//可以访问私有变量.
a=newchar[size+1];
//if(a==NULL)
strcpy(a,s.a);
}
String&String:
:
operator=(constString&s){
if(this==&s)
return*this;
else
{
delete[]a;
size=strlen(s.a);
a=newchar[size+1];
strcpy(a,s.a);
return*this;
}
}
String:
:
~String(){
delete[]a;//
}
String&String:
:
operator+=(constString&s){
intj=strlen(a);
intsize=j+strlen(s.a);
char*tmp=newchar[size+1];
strcpy(tmp,a);
strcpy(tmp+j,s.a);
delet
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 笔试 试题 整理