學(xué)習(xí)啦 > 創(chuàng)業(yè)指南 > 職場 > 筆試題 > c經(jīng)典筆試題

c經(jīng)典筆試題

時間: 護托1061 分享

c經(jīng)典筆試題

  C是高級語言:它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實用性結(jié)合起來。C 語言可以像匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單元。下面就由學(xué)習(xí)啦小編為大家介紹一下c經(jīng)典筆試題的文章,歡迎閱讀。

  c經(jīng)典筆試題篇1

  有兩個磁盤文件A和B,各存放一行字母,要求把這兩個文件中的信息合并(按字母順序排列),輸出到一個新文件C中.

  #include

  #include

  int main(int argc,char* argv[])

  {

  FILE* fp;

  int i,j,k,num,NUM;

  char c[50],t,ch;

  if((fp=fopen("A","r"))==NULL)

  /*can be replaced by open

  * int fd=open("A",O_RDONLY|O_CREAT);*/

  {

  printf("fileA cannot be opened\n");

  exit(0);

  }

  printf("\nA contents are:\n");

  for(i=0;(ch=fgetc(fp))!=EOF;i++)/*一個字符一個字符讀*/

  {

  c[i]=ch;

  putchar(c[i]);

  }

  num=i+1;

  fclose(fp);

  if((fp=fopen("B","r"))==NULL)

  {

  printf("fileB cannot be opened\n");

  exit(0);

  }

  printf("\nB contents are :\n");

  for(i=0;(ch=fgetc(fp))!=EOF;i++)

  {

  c[num+i]=ch;

  putchar(c[num+i]);

  }

  fclose(fp);

  NUM=num+i+1;

  for(k=0;k

  {

  for(j=0;j

  {

  if(c[j]>c[j+1])

  {

  t=c[j];

  c[j]=c[j+1];

  c[j+1]=t;

  }

  }

  }

  printf("\nC fileis:\n");

  fp=fopen("C","w");

  for(i=0;i

  {

  putc(c[i],fp);/*將字符一個個寫入文件中*/

  putchar(c[i]);/*一個個輸出字符*/

  }

  fclose(fp);

  return 1;

  }

  c經(jīng)典筆試題篇2

  有一浮點型數(shù)組A,用C語言寫一函數(shù)實現(xiàn)對浮點數(shù)組A進行降序排序,并輸出結(jié)果,要求要以數(shù)組A作為函數(shù)的入口.(建議用冒泡排序法)

  #include

  #include

  void BubbleSort(int arr[], int n)

  {

  int i,j;

  int exchange = 1;//交換標(biāo)志,提高算法效率;

  int temp;

  for(i=0;i

  {

  exchange=0;//本趟排序開始前,交換標(biāo)志應(yīng)為假

  for(j=0;j

  {

  if(arr[j+1] > arr[j])

  {

  temp=arr[j+1];

  arr[j+1]=arr[j];

  arr[j]=temp;

  exchange=1; //發(fā)生了交換,故將交換標(biāo)志置為真

  }

  }

  if(!exchange) //本趟排序未發(fā)生交換,提前終止算法

  return;

  }

  }

  int main(int argc,char* argv[])

  {

  int arr[5]={1,4,2,6,5};

  int i;

  BubbleSort(arr, 5);

  printf("after sort,arr is :\n");

  for(i=0;i<5;i++)

  {

  printf("%3d",arr[i]);

  }

  return 1;

  }

  c經(jīng)典筆試題篇3

  寫出二分查找的代碼:

  Int binary_search(int* arr,int key,int size)

  {

  Intmid;

  Intlow=0;

  Int high=size-1;

  While(low<=high)

  {

  Mid=(low+high)/2;

  If(arr[mid]>key)

  High=mid-1;

  ElseIf(arr[mid]

  Low=mid+1;

  Else

  Return mid;

  }

  Return -1;

  }

  請編寫一個C 函數(shù),該函數(shù)在一個字符串中找到可能的最長的子字符串,該字符串是由同一字符組成的。

  #include

  #include

  #include

  int ChildString(char*p)

  {

  char* q=p;

  int stringlen=0, i=0,j=1,len=0,maxlen=1;

  //stringlen=strlen(p);

  while(*q!='

c經(jīng)典筆試題

時間: 護托1061 分享

c經(jīng)典筆試題

  C是高級語言:它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實用性結(jié)合起來。C 語言可以像匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單元。下面就由學(xué)習(xí)啦小編為大家介紹一下c經(jīng)典筆試題的文章,歡迎閱讀。

  c經(jīng)典筆試題篇1

  有兩個磁盤文件A和B,各存放一行字母,要求把這兩個文件中的信息合并(按字母順序排列),輸出到一個新文件C中.

  #include

  #include

  int main(int argc,char* argv[])

  {

  FILE* fp;

  int i,j,k,num,NUM;

  char c[50],t,ch;

  if((fp=fopen("A","r"))==NULL)

  /*can be replaced by open

  * int fd=open("A",O_RDONLY|O_CREAT);*/

  {

  printf("fileA cannot be opened\n");

  exit(0);

  }

  printf("\nA contents are:\n");

  for(i=0;(ch=fgetc(fp))!=EOF;i++)/*一個字符一個字符讀*/

  {

  c[i]=ch;

  putchar(c[i]);

  }

  num=i+1;

  fclose(fp);

  if((fp=fopen("B","r"))==NULL)

  {

  printf("fileB cannot be opened\n");

  exit(0);

  }

  printf("\nB contents are :\n");

  for(i=0;(ch=fgetc(fp))!=EOF;i++)

  {

  c[num+i]=ch;

  putchar(c[num+i]);

  }

  fclose(fp);

  NUM=num+i+1;

  for(k=0;k

  {

  for(j=0;j

  {

  if(c[j]>c[j+1])

  {

  t=c[j];

  c[j]=c[j+1];

  c[j+1]=t;

  }

  }

  }

  printf("\nC fileis:\n");

  fp=fopen("C","w");

  for(i=0;i

  {

  putc(c[i],fp);/*將字符一個個寫入文件中*/

  putchar(c[i]);/*一個個輸出字符*/

  }

  fclose(fp);

  return 1;

  }

  c經(jīng)典筆試題篇2

  有一浮點型數(shù)組A,用C語言寫一函數(shù)實現(xiàn)對浮點數(shù)組A進行降序排序,并輸出結(jié)果,要求要以數(shù)組A作為函數(shù)的入口.(建議用冒泡排序法)

  #include

  #include

  void BubbleSort(int arr[], int n)

  {

  int i,j;

  int exchange = 1;//交換標(biāo)志,提高算法效率;

  int temp;

  for(i=0;i

  {

  exchange=0;//本趟排序開始前,交換標(biāo)志應(yīng)為假

  for(j=0;j

  {

  if(arr[j+1] > arr[j])

  {

  temp=arr[j+1];

  arr[j+1]=arr[j];

  arr[j]=temp;

  exchange=1; //發(fā)生了交換,故將交換標(biāo)志置為真

  }

  }

  if(!exchange) //本趟排序未發(fā)生交換,提前終止算法

  return;

  }

  }

  int main(int argc,char* argv[])

  {

  int arr[5]={1,4,2,6,5};

  int i;

  BubbleSort(arr, 5);

  printf("after sort,arr is :\n");

  for(i=0;i<5;i++)

  {

  printf("%3d",arr[i]);

  }

  return 1;

  }

  c經(jīng)典筆試題篇3

  寫出二分查找的代碼:

  Int binary_search(int* arr,int key,int size)

  {

  Intmid;

  Intlow=0;

  Int high=size-1;

  While(low<=high)

  {

  Mid=(low+high)/2;

  If(arr[mid]>key)

  High=mid-1;

  ElseIf(arr[mid]

  Low=mid+1;

  Else

  Return mid;

  }

  Return -1;

  }

  請編寫一個C 函數(shù),該函數(shù)在一個字符串中找到可能的最長的子字符串,該字符串是由同一字符組成的。

  #include

  #include

  #include

  int ChildString(char*p)

  {

  char* q=p;

  int stringlen=0, i=0,j=1,len=0,maxlen=1;

  //stringlen=strlen(p);

  while(*q!='\0') //不能用strlen,求得長stringlen

  {

  stringlen++;

  q++;

  }

  while( i< stringlen)

  {

  if(*(p+i)==*(p+j)&&j< stringlen)

  {

  len++; //統(tǒng)計子串長度

  i++;

  j++;

  }

  else

  {

  if(len>=maxlen) //統(tǒng)計最大子串長度

  {

  maxlen=len+1;

  len=0;

  }

  else

  len=0;

  i++;

  j++;

  }

  }

  return maxlen;

  }

  int main(int argc,char* argv[])

  {

  char arr[11];

  int len;

  printf("please input chararr(10):\n");

  scanf("%s",arr);

  len=ChildString(arr);

  printf("the len of childarr is:%d\n",len);

  return 1;

  }

') //不能用strlen,求得長stringlen

  {

  stringlen++;

  q++;

  }

  while( i< stringlen)

  {

  if(*(p+i)==*(p+j)&&j< stringlen)

  {

  len++; //統(tǒng)計子串長度

  i++;

  j++;

  }

  else

  {

  if(len>=maxlen) //統(tǒng)計最大子串長度

  {

  maxlen=len+1;

  len=0;

  }

  else

  len=0;

  i++;

  j++;

  }

  }

  return maxlen;

  }

  int main(int argc,char* argv[])

  {

  char arr[11];

  int len;

  printf("please input chararr(10):\n");

  scanf("%s",arr);

  len=ChildString(arr);

  printf("the len of childarr is:%d\n",len);

  return 1;

  }

3171440