今天在康佳集团总部面试,笔试题目不难,大部分是C相关题目,但还有些细节程序没有设计的好,现在在重新写出来,下次再遇到这样的题目,就可以给出完美的答案的,算是今天面试总结吧。
编程题目:
1、编程统计文本文件"d:\\test.txt"中英文字母的个数,并打印输出。
源代码如下:
#include
#include
#include
int main()
{
int i;
FILE *fp;
char ch;
int num[26];
memset(res,0,26*sizeof(int)); /*
初始化res数组使其中的每个元素为0*/
fp=fopen("d:\\fhq.txt", "r");
while((ch=fgetc(fp))!=EOF)
{
if ((ch<=90) && (ch>=65))
ch+=32; /*
把所有大写字母变为小写字母一起统计*/
num[ch-97]++; /*a对应res[0],b对应res[1],以此类推*/
}
fclose(fp);
for(i=0;i<26;i++)
printf("%c\t%d\n",97+i,res[i]);
getch(); /*从控制台读取一个字符,但不显示在屏幕上
return 0;
}
2、有一个单链表,删除节点中数据域中数据为5的节点,编程一个函数实现。节点结构为:
struct student{
int number;
struct student *next;
}
#include
#include
int DelNumber5(struct student *head, int key)
{
struct student *pointer,back;
pointer = head;
while(1)
{
if(pointer->next == NULL)
printf("There is no node of 5 in the chain ");
break;
if(point->number == key) //删除首节点
{
head = head->next;
//free(pointer);
continue;
}
back = pointer;
pointer = pointer->next; //往下一个节点
if(pointer->number == key)
{
back->next->pionter->next;
continue;
}
}
}
//存在内存泄漏
int main()
{
}
3、有一个数组a[100],删除数组中元素为n的元素,并把数组元素往前移。编写一个函数。
注:不另外申请空间,程序高效。
源代码如下:
int DelNumber(int *p, int key)
{
assert(p!=NULL);
int *temp;
int n=0;
p=temp;
while(*temp++!=NULL)
{
if(*temp == key)
p[n]=p[n+1]
}
return 0;
}
还有一道英文技术资料翻译成中文的题目,大概意思是讲如何提高处理器处理指令的速度。
最后有一道智力测试题目:
有12个球,其中只有一个球的质量不一致,现在只有一个天平,只能称4次,如何找出这个不一致的球?
阅读(1205) | 评论(0) | 转发(0) |