上海花千坊

C语言

计算机二级C语言备考习题及答案

时间:2024-10-09 11:11:50 C语言 我要投稿

计算机二级C语言备考习题及答案2017

   以下是百分网小编为大家整理的2017计算机二级C语言备考习题及答案,大家可以来做一做,巩固一下自己的知识。

  备考习题一

   1: 请编写函数fun,其功能是:将s所指字符串中除了下标为偶数、同时ascii值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的一个数组中。

  答案:

  void fun(char *s,char t[])

  {

  int I,j=0,n;

  n=strlen(s);

  for(i=0;I,n;i++)

  if(i%2==0&&s[i]%2==0)

  {

  t[j]=s[i];

  j++;

  }

  t[j]=‘\0’;

  }

   2: 请编写函数fun,其功能是:将s所指字符串中除了下标为奇数、同时ascii值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的一个数组中。

  答案:

  void fun(char *s,char t[])

  {

  int I,j=0,n;

  n=strlen(s);

  for(i=0;I,n;i++)

  if(i%2!=0&&s[i]%2!=0)

  {

  t[j]=s[i];

  j++;

  }

  t[j]=‘\0’;

  }

   3: 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。

  答案:

  void fun(char *a,int n)

  {

  int i=0;k=0;

  char *p, *t;

  p=t=a;

  while (*t)

  t++;

  t--;

  while(*t==‘*’)

  {

  k++;

  t--;

  }

  t++;

  if(k>n)

  {

  while (*p&&p

  {

  a[i]=*p;

  i++;

  p++;

  }

  a[i]=‘\0’;

  }

  }

   4: 学生的记录由学号和成绩组成,n名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能使:把分数最高的学生数据放在h所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。

  答案:

  int fun (STREC *a, STREC *b)

  {

  int I,j=0,n=0, max;

  max=a[0].s;

  for(i=0;i

  if(a[i].s>max)

  max=a[i].s;

  for(i=0;i

  if(a[i].s==max)

  {

  *(b+j)=a[i];

  j++;

  n++;

  }

  return n;

  }

  5: 请编写一个函数,用来删除字符串中的所有空格。

  答案:

  void fun(char *str)

  {

  int i=0;

  char *p=str;

  while (*p)

  {

  if(*p!=‘’)

  {

  str[i]=*p;

  i++;

  }

  p++;

  }

  str[i]=‘\0’;

  }

   6: 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。

  答案:

  void fun(char *a)

  {

  int i=0,n=0;

  char *p;

  p=a;

  while (*p==‘*’)

  {

  n++;

  p++;

  }

  while (*p)

  {

  a[i]=*p;

  i++;

  p++;

  }

  while(n!=0)

  {

  a[i]=‘*’;

  i++;

  n--;

  }

  a[i]=‘\0’;

  }

   7: 某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。请自己定义正确的形参。

  答案:

  void fun(STREC *p)

  {

  double av=0.0;

  int i:

  for(i=0;i

  av+=p->s[i];

  av/=N;

  p->ave=av;

  }

  8: 请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。

  答案:

  int fun(char *ss, char c)

  {

  int n=0;

  while (*ss)

  {

  if(*ss==c)

  n++;

  ss++;

  }

  return n;

  }

   9: 请编写函数fun,该函数的功能是:移动一维数组中的内容,若数组中由n个整数,要求把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后。

  答案:

  void fun(int *w, int p, int n)

  {

  int b[N], i, j=0;

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

  {

  b[i]=w[i];

  j++;

  }

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

  {

  w[j]=b[i];

  j++;

  }

  }

   10: 请编写函数fun,该函数的功能是移动字符串中内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。

  答案:

  void fun(char *w,int m)

  {

  char b[N];

  int I,j=0;

  for(i=0;i

  {

  b[j]=w[i];

  j++;

  }

  for (i=0;i

  w[i]=w[i+m];

  for(j=0;j

  {

  w[i]=b[j];

  i++;

  }

  w[i]=‘\0’;

  }

  备考习题二

   1: 第1题请编写函数fun,该函数的功能是:将m行n列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。

  答案:

  void fun(char (*s)[n],char *b)

  {int i,j,k=0;

  for(j=0;j

  for(i=0;i

  {b[k]=*(*(s+i)+j)

  k++;}

  b[k]=‘\0’;}

   2: 第2题下列程序定义了n×n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n],int n),该函数的功能是:将数组右上半三角元素中的值乘以m。

  答案:

  void fun(int a[][n],int m)

  {int i,j;

  for(j=0;j

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

  a[j]=a[j]*m;}

   3: 第3题编写一个函数,从传入的num个字符串中找出一个最长的一个字符串,并**形参指针max传回该串地址(用****作为结束输入的标志)。

  答案:

  char *fun(char (*a)[81],int num)

  {int i;

  char *max;

  max=a[0];

  for(i=0;i

  if(strlen(max)

  max=a;

  return max;}

  4: 第4题编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。

  答案:

  int fun(char *str,char *substr)

  {int n;

  char *p,*r;

  n=0;

  while(*str)

  {p=str;

  r=substr;

  while(*r)

  if(*r==*p)

  {r++;

  p++;}

  else

  break;

  if(*r==‘\0’)

  n++;

  str++;}

  return n;}

   5: 第5题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n 给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后的*个数。在编写时不得使用c语言给提供得字符串函数。

  答案:

  void fun(char *a,int n,int h,int e)

  {int i=0;

  char *p;

  for(p=a+h;p

  {*(a+i)=*p;

  i++;}

  *(a+i)=‘\0’;}

   6: 第6题学生得记录由学号和成绩组称个,n名大学生得数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能时:按分数的高低排列学生的记录,高分在前。

  答案:

  void fun(strec a[])

  {int i,j;

  strec t;

  for(i=0;i

  for(j=i;s

  if(a.s

  {t=a;

  a=a[j];

  a[j]=t; }}

   7: 第7题请编写一个函数void fun(char *ss),其功能时:将字符串ss中所有下标为奇数位置上的字母转换为大写(若位置上不是字母,则不转换)。

  答案:

  void fun(char *ss)

  {int i,n=0;

  char *p=ss;

  while(*p)

  {n++;

  p++;}

  for (i=0;i

   if ((ss=‘a’&ss<=‘z’)&i%2!=0)

  ss=ss-32;

  ss=‘\0’;}

   8: 第8题请编写函数fun,其功能是:将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。

  答案:

  void fun(int a,int b,long *c)

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

   9: 第9题请编写函数fun,其功能是:将s所指字符串中下标位偶数同时ascii值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。

  答案:

  void fun(char *s,char t[])

  {int i,j=0,n=strlen(s);

  for(i=0;i

  if(i%2==0&s%2!=0)

  else

  {f[j]=s;

  j++;}

  t[j]=‘\0’;}

   10: 第10题已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入a机构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,**形参返回主函数(规定只有一个最高分)。

  答案:

  void fun(stu a[],stu *s)

  {int i,max;

  max=a[0].s;

  for (i=0;i

  if(a.s>max)

  {max=a.s;

  *s=a;}}

【计算机二级C语言备考习题及答案】上海花千坊相关的文章:

2017计算机二级C语言备考习题及答案03-18

计算机二级备考习题及答案(C语言)201703-22

2017年计算机二级C语言考试备考习题及答案12-03

2017年计算机二级C语言备考习题03-20

2017年计算机二级C语言备考练习题及答案03-17

计算机二级《C语言》基础练习题及答案03-23

计算机二级C语言强化习题题及答案201712-05

计算机二级《C语言》练习题及答案201603-09

计算机二级《C语言》基础练习题及答案02-06