C语言上机参考题库.docx

上传人:b****3 文档编号:11146817 上传时间:2023-05-29 格式:DOCX 页数:58 大小:27.62KB
下载 相关 举报
C语言上机参考题库.docx_第1页
第1页 / 共58页
C语言上机参考题库.docx_第2页
第2页 / 共58页
C语言上机参考题库.docx_第3页
第3页 / 共58页
C语言上机参考题库.docx_第4页
第4页 / 共58页
C语言上机参考题库.docx_第5页
第5页 / 共58页
C语言上机参考题库.docx_第6页
第6页 / 共58页
C语言上机参考题库.docx_第7页
第7页 / 共58页
C语言上机参考题库.docx_第8页
第8页 / 共58页
C语言上机参考题库.docx_第9页
第9页 / 共58页
C语言上机参考题库.docx_第10页
第10页 / 共58页
C语言上机参考题库.docx_第11页
第11页 / 共58页
C语言上机参考题库.docx_第12页
第12页 / 共58页
C语言上机参考题库.docx_第13页
第13页 / 共58页
C语言上机参考题库.docx_第14页
第14页 / 共58页
C语言上机参考题库.docx_第15页
第15页 / 共58页
C语言上机参考题库.docx_第16页
第16页 / 共58页
C语言上机参考题库.docx_第17页
第17页 / 共58页
C语言上机参考题库.docx_第18页
第18页 / 共58页
C语言上机参考题库.docx_第19页
第19页 / 共58页
C语言上机参考题库.docx_第20页
第20页 / 共58页
亲,该文档总共58页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言上机参考题库.docx

《C语言上机参考题库.docx》由会员分享,可在线阅读,更多相关《C语言上机参考题库.docx(58页珍藏版)》请在冰点文库上搜索。

C语言上机参考题库.docx

C语言上机参考题库

C语言上机参考题库

注意:

填空题填好答案要去掉下划线。

改错题**found**下面的一行为错误地方,直接按答案更正即可。

程序题答案只填在花括号中。

(记得保存)

第01套:

一、填空题:

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。

所有学生数据均以二进制方式输出到文件中。

函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

给定源程序:

#include 

#defineN5

typedefstructstudent{

 longsno;

 charname[10];

 floatscore[3];

}STU;

voidfun(char*filename,STUn)

{FILE*fp;

/**********found**********/

 fp=fopen(__1__,"rb+");

/**********found**********/

 fseek(__2__,-(long)sizeof(STU),SEEK_END);

/**********found**********/

 fwrite(&n,sizeof(STU),1,__3__);

 fclose(fp);

}

main()

{STUt[N]={{10001,"MaChao",91,92,77},{10002,"CaoKai",75,60,88},{10003,"LiSi",85,70,78},{10004,"FangFang",90,82,87},{10005,"ZhangSan",95,80,88}};

 STUn={10006,"ZhaoSi",55,70,68},ss[N];

 inti,j;FILE*fp;

 fp=fopen("student.dat","wb");

 fwrite(t,sizeof(STU),N,fp);

 fclose(fp);

 fp=fopen("student.dat","rb");

 fread(ss,sizeof(STU),N,fp);

 fclose(fp);

 printf("\nTheoriginaldata:

\n\n");

 for(j=0;j

 {printf("\nNo:

%ldName:

%-8sScores:

",ss[j].sno,ss[j].name);

   for(i=0;i<3;i++)printf("%6.2f",ss[j].score[i]);

   printf("\n");

 }

 fun("student.dat",n);

 printf("\nThedataaftermodifing:

\n\n");

 fp=fopen("student.dat","rb");

 fread(ss,sizeof(STU),N,fp);

 fclose(fp);

 for(j=0;j

 {printf("\nNo:

%ldName:

%-8sScores:

",ss[j].sno,ss[j].name);

   for(i=0;i<3;i++)printf("%6.2f",ss[j].score[i]);

   printf("\n");

 }

}

解题答案:

/**********第一空**********/

 fp=fopen(filename,"rb+");

/**********第二空**********/

 fseek(fp,-(long)sizeof(STU),SEEK_END);

/**********第三空**********/

 fwrite(&n,sizeof(STU),1,fp);

******************************************

二、改错题:

给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。

请改正函数Creatlink中指定部位的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构!

给定源程序:

#include

#include

typedefstructaa

{intdata;

  structaa*next;

}NODE;

NODE*Creatlink(intn,intm)

{NODE*h=NULL,*p,*s;

  inti;

/**********found***********/

  p=(NODE)malloc(sizeof(NODE));

  h=p;

  p->next=NULL;

  for(i=1;i<=n;i++)

  {s=(NODE*)malloc(sizeof(NODE));

   s->data=rand()%m;s->next=p->next;

   p->next=s;p=p->next;

  }

/**********found***********/

  returnp;

}

outlink(NODE*h)

{NODE*p;

  p=h->next;

  printf("\n\nTHELIST:

\n\nHEAD");

  while(p)

  {printf("->%d",p->data);

   p=p->next;

  }

  printf("\n");

}

main()

{NODE*head;

  head=Creatlink(8,22);

  outlink(head);

}

解题答案:

/**********found***********/

 p=(NODE*)malloc(sizeof(NODE));

/**********found***********/

  returnh;

三、程序题:

请编写函数fun,函数的功能是:

统计一行字符串中单词的个数,作为函数值返回。

一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。

注意:

部分源程序在文件PROG1.C中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

给定源程序:

#include

#include

#defineN80

intfun(char*s)

{

}

main()

{charline[N];intnum=0;voidNONO();

  printf("Enterastring:

\n");gets(line);

  num=fun(line);

  printf("Thenumberofwordis:

%d\n\n",num);

  NONO();

}

voidNONO()

{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。

*/

 FILE*rf,*wf;inti,num;charline[N],*p;

 rf=fopen("in.dat","r");

 wf=fopen("out.dat","w");

 for(i=0;i< 10;i++){

   fgets(line,N,rf);

   p=strchr(line,'\n');

   if(p!

=NULL)*p=0;

   num=fun(line);

   fprintf(wf,"%d\n",num);

 }

 fclose(rf);fclose(wf);

}

参考答案:

intfun(char*s)

{

intk=1;

while(*s){

if(*s=='')k++;

s++;

}

returnk;

}

 

##################################

第02套:

一、填空题:

给定程序的功能是:

从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。

然后将文件的内容读出显示在屏幕上。

文件的读写分别由自定义函数ReadText和WriteText实现。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

给定源程序:

#include

#include

#include

voidWriteText(FILE*);

voidReadText(FILE*);

main()

{FILE*fp;

  if((fp=fopen("myfile4.txt","w"))==NULL)

  {printf("openfail!

!

\n");exit(0);}

  WriteText(fp);

  fclose(fp);

  if((fp=fopen("myfile4.txt","r"))==NULL)

  {printf("openfail!

!

\n");exit(0);}

  ReadText(fp);

  fclose(fp);

}

/**********found**********/

voidWriteText(FILE ___1___)

{charstr[81];

  printf("\nEnterstringwith-1toend:

\n");

  gets(str);

  while(strcmp(str,"-1")!

=0){

/**********found**********/

   fputs(___2___,fw);fputs("\n",fw);

   gets(str);

  }

}

voidReadText(FILE*fr)

{charstr[81];

  printf("\nReadfileandoutputtoscreen:

\n");

  fgets(str,81,fr);

  while(!

feof(fr)){

/**********found**********/

   printf("%s",___3___);

   fgets(str,81,fr);

  }

}

解题答案:

/**********第一空**********/

voidWriteText(FILE*fw)

/**********第二空**********/

   fputs(str,fw);fputs("\n",fw);

/**********第三空**********/

   printf("%s",str);

******************************************

二、改错题:

给定程序MODI1.C中函数fun的功能是:

从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。

高位仍在高位,低位仍在低位。

例如,当s中的数为:

7654321时,t中的数为:

7531。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构!

给定源程序:

#include

/************found************/

voidfun(longs,longt)

{longsl=10;

   *t=s%10;

   while(s> 0)

   {s=s/100;

     *t=s%10*sl+*t;

/************found************/

   sl=sl*100;

   }

}

main()

{longs,t;

  printf("\nPleaseenters:

");scanf("%ld",&s);

  fun(s,&t);

  printf("Theresultis:

%ld\n",t);

}

解题答案:

/************found************/

voidfun(longs,long*t)

/************found************/

   sl=sl*10;

******************************************

三、程序题:

函数fun的功能是:

将两个两位数的正整数a、b合并形成一个整数放在c中。

合并的方式是:

将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。

例如,当a=45,b=12时,调用该函数后,c=1524。

注意:

部分源程序存在文件PROG1.C中。

数据文件IN.DAT中的数据不得修改。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

给定源程序:

#include

voidfun(inta,intb,long*c)

{

}

main()

{inta,b;longc;

  voidNONO();

  printf("Inputa,b:

");

  scanf("%d,%d",&a,&b);

  fun(a,b,&c);

  printf("Theresultis:

%ld\n",c);

  NONO();

}

voidNONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/

 FILE*rf,*wf;

 inti,a,b;longc;

 rf=fopen("in.dat","r");

 wf=fopen("out.dat","w");

 for(i=0;i< 10;i++){

   fscanf(rf,"%d,%d",&a,&b);

   fun(a,b,&c);

   fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);

 }

 fclose(rf);

 fclose(wf);

}

解题答案:

{

*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);

}

##########################################

 

第03套:

一、填空题:

给定程序中,函数fun的功能是:

将自然数1~10以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

给定源程序:

#include

#include

intfun(char*fname)

{FILE*fp;inti,n;floatx;

  if((fp=fopen(fname,"w"))==NULL)return0;

  for(i=1;i<=10;i++)

/**********found**********/

   fprintf(___1___,"%d%f\n",i,sqrt((double)i));

  printf("\nSucceed!

\n");

/**********found**********/

  ___2___;

  printf("\nThedatainfile:

\n");

/**********found**********/

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

   return0;

  fscanf(fp,"%d%f",&n,&x);

  while(!

feof(fp))

   {printf("%d%f\n",n,x);fscanf(fp,"%d%f",&n,&x);}

  fclose(fp);

  return1;

}

main()

{charfname[]="myfile3.txt";

  fun(fname);

}

解题答案:

/**********第一空*********/

   fprintf(fp,"%d%f\n",i,sqrt((double)i));

  printf("\nSucceed!

\n");

/**********第二空**********/

  fclose(fp);

/**********第三空**********/

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

******************************************

改错题:

给定程序MODI1.C中fun函数的功能是:

将n个无序整数从小到大排序。

请改正程序中的错误,使它能得出正确的结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构!

给定源程序:

#include

#include

fun(intn,int*a)

{inti,j,p,t;

  for(j=0;j

  {p=j;

/************found************/

   for(i=j+1;i

   if(a[p]>a[i])

/************found************/

      t=i;

   if(p!

=j)

   {t=a[j];a[j]=a[p];a[p]=t;}

 }

}

putarr(intn,int*z)

{inti;

 for(i=1;i<= n;i++,z++)

 {printf("%4d",*z);

   if(!

(i%10))printf("\n");

 }printf("\n");

}

main()

{intaa[20]={9,3,0,4,1,2,5,6,8,10,7},n=11;

  printf("\n\nBeforesorting%dnumbers:

\n",n);putarr(n,aa);

  fun(n,aa);

  printf("\nAftersorting%dnumbers:

\n",n);putarr(n,aa);

}

解题答案:

#include

#include

fun(intn,int*a)

{inti,j,p,t;

  for(j=0;j

  {p=j;

/************found************/

   for(i=j+1;i

   /************found************/

      p=i;

******************************************

三、程序题:

函数fun的功能是:

将两个两位数的正整数a、b合并形成一个整数放在c中。

合并的方式是:

将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。

例如,当a=45,b=12时,调用该函数后,c=2514。

注意:

部分源程序存在文件PROG1.C中。

数据文件IN.DAT中的数据不得修改。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

给定源程序:

#include

voidfun(inta,intb,long*c)

{

}

main()

{inta,b;longc;

  voidNONO();

  printf("Inputa,b:

");

  scanf("%d,%d",&a,&b);

  fun(a,b,&c);

  printf("Theresultis:

%ld\n",c);

  NONO();

}

voidNONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/

 FILE*rf,*wf;

 inti,a,b;longc;

 rf=fopen("in.dat","r");

 wf=fopen("out.dat","w");

 for(i=0;i< 10;i++){

   fscanf(rf,"%d,%d",&a,&b);

   fun(a,b,&c);

   fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);

 }

 fclose(rf);

 fclose(wf);

}

解题答案:

{

*c=(b%10)*1000+(a%10)*100+(b/10)*10+a/10;

}

#########################################

 

第04套:

一、填空题:

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。

所有学生数据均以二进制方式输出到文件中。

函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的

学生数据输出到filename所指的文件中,覆盖原来的文件内容。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

给定源程序:

#include 

#defineN5

typedefstructstudent{

 longsno;

 charname[10];

 floatscore[3];

}STU;

voidfun(char*filename)

{

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2