亚洲国产福利在线一二三观看_精品国产伦一区二区三区欲臀_国产a∨视频精品视频护士_精品八戒人妻少妇av

江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
C語言上機模擬二

一、改錯題(18)

    函數(shù)void fun(char *P,char *b)的功能是:將P所指字符串中每三個字符之后插入一

個空格,所得新字符串存放于字符數(shù)組b中。

    例如,原始字符串為ABCDEFGH,插入空格后為ABC DEF GH。

    含有錯誤的源程序如下:   

l    #include<stdioh>

2    void fun(char *p,char *b)

3    {

4     int i,k=0;

5     while(*p)

6     {

7      i=1

8      while(i<3&&*p)

9      {

10       b[k++]=p;

11       P++;i++;

12     }

13     if(*p)

14     {

15       b[k++]="";

16     }

17    }

18    b[k]="\0"

19    }

20    main()

21    {

22    char a[80],b[80];

23    printf("Enter a string")gets(a);

24    fun(ab);

25    printf("\nThe result is");

26    puts(b);

27   }

     【要求】

  1•將上述程序錄人到文件myflc中,根據(jù)題目要求及程序中語句之間的邏輯關系對

程序中的錯誤進行修改。

  2•改錯時,可以修改語句中的一部分內容,調整語句次序,增加少量的變量說明或編譯

   預處理命令,但不能增加其他語句,也不能刪去整條語句。

  3.改正后的源程序(文件名myflc)必須放在考試軟盤的根目錄下,供閱卷用,否則不

  予評分。

    二、編程題(22)

    1.編寫函數(shù)void fun(int nint *t,int *r),其功能是計算1n之間所有奇數(shù)之和,通

過指針t返回.,所有偶數(shù)之和通過指針r返回。。

    2.編rmain函數(shù),通過鍵盤輸入一個不大于100的整數(shù),調用fun函數(shù),將指針tr

返回的值寫入文件myf2out中。

    【要求】   

    1.將源文件取名為myf2c,輸出結果文件取名為myf2out。   

    2.數(shù)據(jù)文件的打開、使用和關閉等操作均用C標準庫中緩沖文件系統(tǒng)的文件操作函數(shù)

實現(xiàn)。

    3.源程序文件和運行結果文件均須保存在考試軟盤的根目錄下,供閱卷用。

    4.不要將myf2obj、myf2exe保存到考試軟盤中。

    答案分析

    一、改錯題

    1.第8while(i<3&&*p)    改為    while(i<=3&&*p)

    2.第10b[k++]=p;      改為     b[k++]=*p;

    3.第15b[k++]="";    改為  b[k++]='';

    4.第18b[k]="\0"    改為  b[k]='\0';

    分析:程序中,第一個循環(huán)用于遍歷原始字符串,第二個循環(huán)用于把連續(xù)三個字符寫入

數(shù)組b中,此循環(huán)結束后,先判斷是否已到字符串尾部,若不是,則在三個字符之后插入一個

空格;若是,則在新生成的字符串尾部加入結束符。

    二、編程題

    #include<stdioh>

    void fun(int nint *t,int *r)

    {

      int i

      *t=0;*r=0;  

      for(i=1i<=ni++)

      {

        if(i%2)  *t+=i;

        else *r+=i;

 

      }

      main() 

      {

      int x,t,r;

      FILE  *out

      if((out=fopen("myf2.out","w"))==NULL)

      {

        printf("open file myf2out failed!\n")

        exit(0);

       }

     printf("\nPlease enter a integer numbers");

     scanf("%d"&x);

     fun(x&t,&x);   

     fprintf(out,"x is:%d,t is:%d, r is %d",m,n);

     fclose(out) 

    }