计算机二级考试C语言操作题题库
1. 下列程序定义了n×n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n]),该函数的功能是:使数组左下半三角元素中的值全部置成0。答案: int fun(int a[][N])  { 
  int I,j; 
  for(i=0;i<N;i++) for(j=0;j<=I;j++)  a[i][j]=0;  } 
  2. 请编写函数fun,对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。  答案: 
  void fun(char *s,int num)  { 
  char t;  int I,j; 
  for(i=1;i<num-2;i++)
  for(j=i+1;j<num-1;j++)
  3. 请编写函数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’;  } 
  4. 请编写函数fun,该函数的功能是:将m行n列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。  答案:  void fun(char (*s)[n]for(j=0;j<n;j++) }  ,char *b)  for(i=0;i<m;i++)  b[k]=‘\\0’; { { }  int i,j,k=0;  b[k]=*(*(s+i)+j) k++; 
  5.  请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指的数组中,非素数的个数通过k传回。  答案:  void fun(int m,int *k,int xx[])  if (i%j==0) break;  { if(j=40
&a<=49) b[4]+=1;  { else if(a>=50&a<=59) b[5]+=1;  int i,j;  else if(a>=60&a<=69) b[6]+=1;  for(j=0;i<m;j++) b[j]=0;  else if(a>=70&a<=79) b[7]+=1;  for(i=0;i<n;i++)  else if(a>=80&a<=89)  if(a>=0&a<=9) b[0]+=1;  b[8]+=1;  else if(a>=10&a<=19) b[1]+=1;  else if(a>=90&a<=99) b[9]+=1; else if(a>=20&a<=29) b[2]+=1;  else  b[10]+=1; else if(a>=30&a<=39) b[3]+=1;  }     
  7.  请编写函数fun,其功能时:将两个两位数的正整数a、b合并形成一个整数放在c中,合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b的十位和个位整数依次放在c数的百位和个位上。  答案:  void fun(int a,int b,long *c)  {
  *c=(a)*1000+(b/10)*100+(a/10)*10+b; }   
  8.  请编写函数fun,其功能使:将两个两位正整数a b合并形成一个整数放在c中。合并的方式使:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的千位和十位上。  答案:  void fun(int a,int b,long *c)  {
  *c=(b/10)*1000+(a/10)*100+(b)*10+a; }     
  9.  请编写函数fun,其功能是:将两个两位数的正整数a b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。  答案:  void fun(int a, int b, long *c)  { 
  *c=(a)*1000+(b)*100+(a/10)*10+b/10;  }   
  11.  请编写函数fun,它的功能是计算:s=(ln(1)+ln(2)+ln(3)+…+ln(m))(0.5),s作为函数值返回。  答案:  double fun(int m)  for(i=1;i<=m;i++) s=s+log(i);  {  s=sqrt(s);  int I;  return s;  double s=0.0, log(double x);  }    double fun(int [][N{  s+=w[N-1][j];  ])  s+=w[0][j];  k++;  {  k++;  }  int I,j,k=0;  }  for(i=1;i<double s=0.0;  for(j=0;j<N;j++)  =N-2;i++)  for(j=0;j<N;j++)  {  { 
  s+=w[i][0];  k++;  } 
  for(i=1;i=N-2;i++)  { 
  s+=w[i][N-1]; 
  <
  k++;  } 
  return s/=k;  } 
 
  13. n名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:出学生的最高分,由函数值返回。  答案:  double fun(STREC *h) Do  }    {  while(q!=0); {  if(q->s>max) max=q->s; return max; double max;    }    STREC *q=h; max=h->s; q=q->next; 
  14. 请编写函数fun,其功能是:将s所指字符串中除了下标为奇数、同时ascii值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的一个数组中。  答案:  void fun(char *s,char n=strlen(s);  t[j]=s[i]; j++;  t[])  for(i=0;I,n;i++)  }  {  if(i%2!=0&&s[i]%2!=0) t[j]=‘\\0’; int I,j=0,n;  {  }     
计算机二级c语言选择题库  15. 下列程序定义了n×n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n],int n),该函数的功能是:将数组右上半三角元素中的值乘以m。  答案: 
  void fun(int a[][n],int m)  for(i=0;i<=j;i++) {  a[j]=a[j]*m; int i,j;  }  for(j=0;j<n;j++)
   
 
  16.  已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入a机构体数组中。请编写函数fun,该函数的功能是:出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。  答案:  void fun(stu a[],stu *s)  if(a.s>max)  { { int i,max;  max=a.s; *s=a; max=a[0].s;  }
  }  for (i=0;i<n;i++) 
 
  17.  编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。  答案:  void fun(char p1[],char p2[ { p1=*q; q++; i++; ]) p++; n++; }  { } p1=‘\\0’; int i=0,n=0;  i=n;  }  char *p=p1,*q=p2; while(*p)  while (*p)  {
  18. 编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。  答案: 
  int fun(char *str,cha {  else break;  r *substr)  p=str; r=substr; if(*r==‘\\0’)  {  while(*r) n++; str++; int n;  if(*r==*p) } char *p,*r;  {  return n;  n=0;  r++; p++; }    while(*str) } 
  19.  请编写函数fun,其功能是:将s所指字符串中下标位偶数同时ascii值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。  答案:  void fun(char *s,char t[])  {
  int i,j=0,n=strlen(s);  for(i=0;i<n;i++)  if(i%2==0&s%2!=0)  else  {
  f[j]=s; j++; } 
  t[j]=‘\\0’; }   
  20.  请编写函数fun,该函数的功能是:实现b=a+a,即把矩阵a加上a的转置,存放在矩阵b中。计算结果在main函数中输出。  答案:  void fun(int a[3][3],int b[3] for(i=0;i=l&a.s<=h) 
 
  25.  编写函数藏服那,它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。  答案:  double fun(int n) if(i%3==0&i%7==0) s=s+i;  { s=sqrt(s);  double s=0.0;  return s; int i;  }
      for(i=1;i<n;i++) 
 
  26.  请编写函数fun,该函数的功能是:将m行n列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的储存单元中。  答案:  void fun(int(*s)[10],int *b,int *n,int mm,int  for(j=0;j<nn;j++)  nn) {  { b[*n]=*(*(s+i)+j); *n=*n+1; int i,j;  } for(i=0;i<mm;i++) }   
  27.  请别写函数fun,该函数的功能是:将放在字符串数组中的m个字符串(每串的长度不超过n),按顺序合并组成一个新的字符串。  答案:  void fun(char a[m][n],char for(j=0;j<n;j++)  b[k]=‘\\0’; *b)  if(*(*(a+i)+j)) } {  { }    int i,j,k=0;  b[k]=*(*(a+i)+j) k++; for(i=0;i<m;i++)  }  { else break; 
  28.  请编写函数fun,该函数的功能是:删去一维数组中所有相同的数,使之只剩
  一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。  答案:  int fun(int a[],int n) {  { a[j]=t; t=p; j++; int i,t,j=0, } *p=a; t=p[0];  if(i>=n) a[j]=t;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。