<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            C語言

            計算機二級C語言備考習題及答案

            時間:2025-02-03 14:16:39 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語言備考習題及答案】相關文章:

            計算機二級備考習題及答案(C語言)201708-20

            2017計算機二級C語言備考習題及答案08-02

            計算機二級C語言考試備考復習題及答案10-10

            2017年計算機二級C語言備考習題及答案11-01

            2017計算機二級C語言考試備考復習題及答案06-28

            2017年計算機二級C語言考試備考習題及答案10-07

            2017計算機二級C語言備考練習題及答案08-10

            2016計算機二級《C語言》備考練習題及答案09-09

            2017計算機二級C++備考習題及答案09-25

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看