最新C语言编程题范文模板 12页.docx

上传人:b****3 文档编号:814220 上传时间:2022-10-13 格式:DOCX 页数:10 大小:17.60KB
下载 相关 举报
最新C语言编程题范文模板 12页.docx_第1页
第1页 / 共10页
最新C语言编程题范文模板 12页.docx_第2页
第2页 / 共10页
最新C语言编程题范文模板 12页.docx_第3页
第3页 / 共10页
最新C语言编程题范文模板 12页.docx_第4页
第4页 / 共10页
最新C语言编程题范文模板 12页.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

最新C语言编程题范文模板 12页.docx

《最新C语言编程题范文模板 12页.docx》由会员分享,可在线阅读,更多相关《最新C语言编程题范文模板 12页.docx(10页珍藏版)》请在冰豆网上搜索。

最新C语言编程题范文模板 12页.docx

最新C语言编程题范文模板12页

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!

==本文为word格式,下载后可方便编辑和修改!

==

C语言编程题

  1)读文件file1.txt的内容(例如):

  12

  34

  56

  输出到file2.txt:

  56

  34

  12

  (逆序)

  第一题,注意可增长数组的应用.

  #include

  #include

  intmain(void)

  {

  intMAX=10;

  int*a=(int*)malloc(MAX*sizeof(int));

  int*b;

  FILE*fp1;

  FILE*fp2;

  fp1=fopen(“a.txt”,”r”);

  if(fp1==NULL)

  {printf(“error1″);

  exit(-1);

  }

  fp2=fopen(“b.txt”,”w”);

  if(fp2==NULL)

  {printf(“error2″);

  exit(-1);

  }

  inti=0;

  intj=0;

  while(fscanf(fp1,”%d”,&a[i])!

=EOF)

  {

  i++;

  j++;

  if(i>=MAX)

  {

  MAX=2*MAX;

  b=(int*)realloc(a,MAX*sizeof(int));

  if(b==NULL)

  {

  printf(“error3″);

  exit(-1);

  }

  a=b;

  }

  }

  for(;–j>=0;)

  fprintf(fp2,”%d\n”,a[j]);

  fclose(fp1);

  fclose(fp2);

  return0;

  }

  可谓是反序的经典例程.

  voidinverse(char*p)

  {

  if(*p==‘\0′)

  return;

  inverse(p+1);

  printf(“%c”,*p);

  }

  intmain(intargc,char*argv[])

  {

  inverse(“abc\0″);

  return0;

  }

  借签了楼上的“递规反向输出”

  #include

  voidtest(FILE*fread,FILE*fwrite)

  {

  charbuf[1024]={0};

  if(!

fgets(buf,sizeof(buf),fread))

  return;

  test(fread,fwrite);

  fputs(buf,fwrite);

  }

  intmain(intargc,char*argv[])

  {

  FILE*fr=NULL;

  FILE*fw=NULL;

  fr=fopen(“data”,“rb”);

  fw=fopen(“dataout”,“wb”);

  test(fr,fw);

  fclose(fr);

  fclose(fw);

  return0;

  }

  在对齐为4的情况下

  structBBB

  {

  longnum;

  char*name;

  shortintdata;

  charha;

  shortba[5];

  }*p;

  p=0×1000000;

  p+0×200=____;

  (Ulong)p+0×200=____;

  (char*)p+0×200=____;

  希望各位达人给出答案和原因,谢谢拉

  解答:

假设在32位CPU上,

  sizeof(long)=4bytes

  sizeof(char*)=4bytes

  sizeof(shortint)=sizeof(short)=2bytes

  sizeof(char)=1bytes

  由于是4字节对齐,

  sizeof(structBBB)=sizeof(*p)

  =4+4+2+1+1/*补齐*/+2*5+2/*补齐*/=24bytes(经Dev-C++验证)

  p=0×1000000;

  p+0×200=____;

  =0×1000000+0×200*24

  (Ulong)p+0×200=____;

  =0×1000000+0×200

  (char*)p+0×200=____;

  =0×1000000+0×200*4

  你可以参考一下指针运算的细节

  2、运用四色定理,为N个局域举行配色,颜色为1、2、3、4四种,另有数组adj[][N],如adj[i][j]=1则表示i区域与j区域相邻,数组color[N],如color[i]=1,表示i区域的颜色为1号颜色。

  四色填充

  3、用递归算法判断数组a[N]是否为一个递增数组。

  递归的方法,记录当前最大的,并且判断当前的是否比这个还大,大则继续,否则返回false结束:

  boolfun(inta[],intn)

  {

  if(n==1)

  returntrue;

  if(n==2)

  returna[n-1]>=a[n-2];

  returnfun(a,n-1)&&(a[n-1]>=a[n-2]);

  }

  4、编写算法,从10亿个浮点数当中,选出其中最大的10000个。

  用外部排序,在《数据结构》书上有

  《计算方法导论》在找到第n大的数的算法上加工

  5、编写一unix程序,防止僵尸进程的出现.

  3.可怕的题目终于来了

  象搜索的输入信息是一个字符串,统计300万输入信息中的最热门的前十条,我们每次输入的一个字符串为不超过255byte,内存使用只有1G,

  请描述思想,写出算发(c语言),空间和时间复杂度,

  4.国内的一些帖吧,如baidu,有几十万个主题,假设每一个主题都有上亿的跟帖子,怎么样设计这个系统速度最好,请描述思想,写出算发(c语言),空间和时间复杂度,

  1.简述一个Linux驱动程序的主要流程与功能。

  2.请列举一个软件中时间换空间或者空间换时间的例子。

  voidswap(inta,intb)

  {

  intc;c=a;a=b;b=a;

  }

  —>空优

  voidswap(inta,intb)

  {

  a=a+b;b=a-b;a=a-b;

  }

  6.请问一下程序将输出什么结果?

  char*RetMenory(void)

  {

  charp[]=“hellowworld”;

  returnp;

  }

  voidTest(void)

  {

  char*str=NULL;

  str=RetMemory();

  printf(str);

  }

  RetMenory执行完毕,p资源被回收,指向未知地址。

返回地址,str的内容应是不可预测的,打印的应该是str的地址

  写一个函数,它的原形是intcontinumax(char*outputstr,char*intputstr)

  功能:

  在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。

例如:

”abcd12345ed125ss123456789″的首地址传给intputstr后,函数将返回

  9,outputstr所指的值为123456789

  intcontinumax(char*outputstr,char*inputstr)

  {

  char*in=inputstr,*out=outputstr,*temp,*final;

  intcount=0,maxlen=0;

  while(*in!

=‘\0′)

  {

  if(*in>47&&*in<58)

  {

  for(temp=in;*in>47&&*in<58;in++)

  count++;

  }

  else

  in++;

  if(maxlen

  {

  maxlen=count;

  count=0;

  final=temp;

  }

  }

  for(inti=0;i

  {

  *out=*final;

  out++;

  final++;

  }

  *out=‘\0′;

  returnmaxlen;

  }

  不用库函数,用C语言实现将一整型数字转化为字符串

  方法1:

  intgetlen(char*s){

  intn;

  for(n=0;*s!

=‘\0′;s++)

  n++;

  returnn;

  }

  voidreverse(chars[])

  {

  intc,i,j;

  for(i=0,j=getlen(s)–1;i

  c=s[i];

  s[i]=s[j];

  s[j]=c;

  }

  }

  voiditoa(intn,chars[])

  {

  inti,sign;

  if((sign=n)<0)

  n=-n;

  i=0;

  do{/*以反序生成数字*/

  s[i++]=n%10+’0′;/*getnextnumber*/

  }while((n/=10)>0);/*deletethenumber*/

  if(sign<0)

  s[i++]=‘-’;

  s[i]=‘\0′;

  reverse(s);

  }

  方法2:

  #include

  usingnamespacestd;

  voiditochar(intnum);

  voiditochar(intnum)

  {

  inti=0;

  intj;

  charstra[10];

  charstrb[10];

  while(num)

  {

  stra[i++]=num%10+48;

  num=num/10;

  }

  stra[i]=‘\0′;

  for(j=0;j

  {

  strb[j]=stra[i-j-1];

  }

  strb[j]=‘\0′;

  cout<}

  intmain()

  {

  intnum;

  cin>>num;

  itochar(num);

  return0;

  }

以下文字仅用于测试排版效果,请使用时删除!

冬是清寒的。

站在有风的地方,悄然回首,看见来时的路。

一路有花的娇艳,有草的青葱,有树的挺拔,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1