计算机二级C语言上机编程题及答案.docx

上传人:b****7 文档编号:10166438 上传时间:2023-02-09 格式:DOCX 页数:61 大小:33.68KB
下载 相关 举报
计算机二级C语言上机编程题及答案.docx_第1页
第1页 / 共61页
计算机二级C语言上机编程题及答案.docx_第2页
第2页 / 共61页
计算机二级C语言上机编程题及答案.docx_第3页
第3页 / 共61页
计算机二级C语言上机编程题及答案.docx_第4页
第4页 / 共61页
计算机二级C语言上机编程题及答案.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

计算机二级C语言上机编程题及答案.docx

《计算机二级C语言上机编程题及答案.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言上机编程题及答案.docx(61页珍藏版)》请在冰豆网上搜索。

计算机二级C语言上机编程题及答案.docx

计算机二级C语言上机编程题及答案

1、请编写函数fun,其功能是:

统计s所指字符串中的数字字符个数,并作为函数值返回。

  例如,s所指字符串中的内容是:

2def35adh253kjsdf7/kj8655x,

  函数fun返回值为:

11

  注意:

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

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

  #include  void

  intfun(char*s)

  {

}

  main()

  {char*s="2def35adh253kjsdf7/kj8655x";

  printf("%s\n",s);

  printf("%d\n",fun(s));

  }

1、intcount=0;

  while(*s!

='\0')

  {

  if(*s>=48&&*s<=57)

  count++;

  s++;

  }

  returncount;

2、编写一个函数,从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。

(注意:

主函数中用****作为结束输入的标志,函数fun中给出的语句仅供参考。

  注意:

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

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

  #include  #include  voidfun(char(*a)[81],intnum,char**max)

  {

  /*以下代码仅供参考*/

  inti,k=0,len,maxlen;/*k为a数组中最长串所在元素的下标,初始为0,maxlen为其串长*/

  maxlen=strlen(a[k]);

  for(i=1;i  {

  /*以下完成查找最长串*/

  }

  *max=a[k];

  }

  main()

  {

  charss[10][81],*ps;void

  intn,i=0;

  printf("输入若干个字符串:

");

  gets(ss[i]);

  puts(ss[i]);

  while(!

strcmp(ss[i],"****")==0)

  {

  i++;

  gets(ss[i]);

  puts(ss[i]);

  }

  n=i;

  fun(ss,n,&ps);

  printf("\nmax=%s\n",ps);

  }

 2、len=strlen(a[i]);

  if(maxlen  {k=i;maxlen=len;}

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

求出ss所指字符串中指定字符的个数,并返回此值。

  例如,若输入字符串:

123412132,输入字符为:

1,则输出:

3。

  注意:

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

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

  #include  #include  #defineM81

  intfun(char*ss,charc)

  {

  }

  main()

  {chara[M],ch;

  void

  printf("\nPleaseenterastring:

");gets(a);

  printf("\nPleaseenterachar:

");ch=getchar();

  printf("\nThenumberofthecharis:

%d\n",fun(a,ch));

  }

3、intcount=0;

  while(*ss!

='\0')

  {

  if(*ss==c)

  count++;

  ss++;

  }

  returncount;

4、规定输入的字符串中只包含字母和*号。

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

将字符串中的前导*号全部删除,中间和尾部的*号不删除。

  例如,字符串中的内容为:

*******A*BC*DEF*G****,删除后,字符串中的内容应当是:

A*BC*DEF*G****。

在编写函数时,不得使用C语言提供的字符串函数。

  注意:

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

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

  #include  voidfun(char*a)

  {

  }

  main()

  {chars[81];

  void

  printf("Enterastring:

\n");gets(s);

  fun(s);

  printf("Thestringafterdeleted:

\n");puts(s);

  }

4、inti,len=0;

  while(a[len]=='*')

  len++;

  i=len;

  while(a[i]!

='\0')

  {

  a[i-len]=a[i];

  i++;

  }

5、请编写一个函数voidfun(chara[],charb[],intn),其功能是:

删除一个字符串中指定下标的字符。

其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n中存放指定的下标。

  例如,输入一个字符串:

World,然后输入3,则调用该函数后的结果为:

Word。

  注意:

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

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

  #include  #include  #defineLEN20

  voidfun(chara[],charb[],intn)

  {

  }

  main()

  {charstr1[LEN],str2[LEN];

  intn;

  void

  printf("Enterthestring:

\n");

  gets(str1);

  printf("Entertheindexofthechardeleted:

");

  scanf("%d",&n);

  fun(str1,str2,n);

  printf("Thenewstringis:

%s\n",str2);

  }

 5、a[n]=0;

  strcpy(b,a);

  strcat(b,a+strlen(a)+1);

6、请编写一个函数unsignedfun(unsignedw),w是一个大于10的无符号整数,若w是n(n≥2)位的整数,函数求出w的低n-1位的数作为函数值返回。

  例如:

w值为5923,则函数返回923;w值为923则函数返回23。

  注意:

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

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

  #include  unsignedfun(unsignedw)

  {

  }

  main()

  {

  void

  unsignedx;

  printf("Enteraunsignedintegernumber:

");scanf("%u",&x);

  printf("Theoriginaldatais:

%u\n",x);

  if(x<10)printf("Dataerror!

");

  elseprintf("Theresult:

%u\n",fun(x));

  }

6、unsignednum=w,n=1;

  while(num!

=0)

  {

  num=num/10;

  n=n*10;

  }

  n=n/10;

  returnw%n;

7、假定输入的字符串中只包含字母和*号。

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

除了字符串前导和尾部的*号之外,将串中其它*号全部删除。

形参h已指向字符串中第一个字母,形参p已指向字符串中最后一个字母。

在编写函数时,不得使用C语言提供的字符串函数。

  例如,字符串中的内容为:

****A*BC*DEF*G********,删除后,字符串中的内容应当是:

****ABCDEFG********。

在编写函数时,不得使用C语言提供的字符串函数。

  注意:

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

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

  #include  voidfun(char*a,char*h,char*p)

  {

  }

  main()

  {chars[81],*t,*f;

  void

  printf("Enterastring:

\n");gets(s);

  t=f=s;

  while(*t)t++;

  t--;

  while(*t=='*')t--;

  while(*f=='*')f++;

  fun(s,f,t);

  printf("Thestringafterdeleted:

\n");puts(s);

  }

 7、char*r,*q;

  for(q=p;q>h;q--)

  {

  if(*q=='*')

  {

  r=q;

  while(*r!

='\0')

  {

  *r=*(r+1);

  r++;

  }

  }

  }

8、已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。

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

找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。

  注意:

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

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

  #include  #include  #defineN10

  typedefstructss

  {charnum[10];ints;}STU;

  voidfun(STUa[],STU*s)

  {

  }

  main()

  {STUa[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},

  {"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}},m;

  inti;void

  printf("*****Theoriginaldata*****\n");

  for(i=0;i

  fun(a,&m);

  printf("*****THERESULT*****\n");

  printf("Thelowest:

%s,%d\n",m.num,m.s);

  }

 8、inti;

  *s=a[0];

  for(i=1;i

  {

  if((*s).s>a[i].s)

  *s=a[i];

  }

9、请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。

二维数组中的值在主函数中赋予。

  例如:

二维数组中的值为

  13579

  29994

  69998

  13570则函数值为61。

  注意:

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

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

  #include  #defineM4

  #defineN5

  intfun(inta[M][N])

  {

  }

  main()

  {intaa[M][N]={{1,3,5,7,9},

  {2,9,9,9,4},

  {6,9,9,9,8},

  {1,3,5,7,0}};

  inti,j,y;void

  printf("Theoriginaldatais:

\n");

  for(i=0;i  {for(j=0;j  printf("\n");

  }

  y=fun(aa);

  printf("\nThesum:

%d\n",y);

  printf("\n");

  }

 9、intsum=0,i;

  for(i=0;i  sum=sum+a[0][i]+a[M-1][i];

  for(i=1;i  sum=sum+a[i][0]+a[i][N-1];

  returnsum;

10、程序定义了N×N的二维数组,并在主函数中赋值。

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

求出数组周边元素的平均值并作为函数值返给主函数中的s。

  例如:

a数组中的值为

  |01279|

  |19745|

  a=|23831|

  |45682|

  |59141|则返回主程序后s的值应为:

3.375。

  注意:

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

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

  #include  #include  #defineN5

  doublefun(intw[][N])

  {

  }

  main()

  {inta[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1};

  inti,j;void

  doubles;

  printf("*****Thearray*****\n");

  for(i=0;i  {for(j=0;j  {printf("M",a[i][j]);}

  printf("\n");

  }

  s=fun(a);

  printf("*****THERESULT*****\n");

  printf("Thesumis:

%lf\n",s);

  }

10、intsum=0,i;

  for(i=0;i  sum=sum+w[0][i]+w[N-1][i];

  for(i=1;i  sum=sum+w[i][0]+w[i][N-1];

  return(double)sum/(4*N-4);

11、假定输入的字符串中只包含字母和*号。

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

删除字符串中所有的*号。

在编写函数时,不得使用C语言提供的字符串函数。

  例如,字符串中的内容为:

****A*BC*DEF*G*******,删除后,字符串中的内容应当是:

ABCDEFG。

  注意:

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

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

  #include  voidfun(char*a)

  {

  }

  main()

  {chars[81];

  void

  printf("Enterastring:

\n");gets(s);

  fun(s);

  printf("Thestringafterdeleted:

\n");puts(s);

  }

 11、voidfun(char*a)

  {

  char*t;

  while(*a)

  {

  if(*a=='*')

  {

  t=a-1;

  while(*a){*(a)=*(a+1);a++;}

  *a='\0';

  a=t;

  }

  a++;

  }

  }

12、请编写函数fun,其功能是:

将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。

  例如,若输入:

17,则应输出:

46891012141516。

  注意:

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

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

  #include  voidfun(intm,int*k,intxx[])

  {

  }

  main()

  {

  intm,n,zz[100];

  void

  printf("\nPleaseenteranintegernumberbetween10and100:

");

  scanf("%d",&n);

  fun(n,&m,zz);

  printf("\n\nThereare%dnon-primenumberslessthan%d:

",m,n);

  for(n=0;n

  printf("\nM",zz[n]);

  }

12、voidfun(intm,int*k,intxx[])

  {

  inti,j,num=0;

  for(i=2;i  {

  for(j=2;j

  {

  if(i%j==0){xx[num++]=i;break;}

  }

  }

  *k=num;

  }

13、已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。

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

找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。

已给出函数的首部,请完成该函数。

  注意:

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

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

  #include  #include  #defineN10

  typedefstructss

  {charnum[10];ints;}STU;

  voidfun(STUa[],STU*s)

  {

  }

  main()

  {

  void

  STUa[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},

  {"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}},m;

  inti;

  printf("*****Theoriginaldata*****\n");

  for(i=0;i

  fun(a,&m);

  printf("*****THERESULT*****\n");

  printf("Thetop:

%s,%d\n",m.num,m.s);

  }

13、voidfun(STUa[],STU*s)

  {

  inti,j=0,max;

  max=a[0].s;

  for(i=1;i  {

  if(max

  {max=a[i].s;

  *s=a[i];}

  }

  }

14、学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:

把分数最高的学生数据放在b所指的数组中,注意:

分数最高的学生可能不止一个,函数返回分数最高的学生的人数。

  注意:

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

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

  #include  #defineN16

  typedefstruct

  {charnum[10];

  ints;

  }STREC;

  intfun(STREC*a,STREC*b)

  {

  }

  main()

  {STRECs[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},

  {"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87},

  {"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},

  {"GA011",77},{"GA017",64},{"GA018",64},{"GA016",72}};

  STRECh[N];

  inti,n;FILE*out;

  n=fun(s,h);

  printf("The%dhighestscore:

\n",n);

  for(i=0;i  printf("%sM\n",h[i].num,h[i].s);

  printf("\n");

  out=fopen("c:

\\test\\out.dat","w");

  fprintf(out,"%d\n",n);

  for(i=0;i  fprintf(out,"M\n",h[i].s);

  fclose(out);

  }

14、intfun(STREC*a,STREC*b)

  {inti,num=0,max;

  max=a[0].s;

  for(i=1;i  {

  if(max

  }

  for(i=0;i  {

  if(max==a[i].s){b[num]=a[i];num++;}

  }

  returnnum;

  }

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

将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符

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

当前位置:首页 > 表格模板 > 合同协议

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

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