Chinaunix首页 | 论坛 | 博客
  • 博客访问: 50015
  • 博文数量: 20
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 195
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-26 12:07
文章分类

全部博文(20)

文章存档

2011年(1)

2009年(2)

2008年(17)

我的朋友
最近访客

分类: C/C++

2008-11-25 22:37:55

今天在康佳集团总部面试,笔试题目不难,大部分是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) |
给主人留下些什么吧!~~