1. <small id="kntrr"><delect id="kntrr"></delect></small>
    2. <sub id="kntrr"></sub>
        1. <form id="kntrr"><listing id="kntrr"></listing></form>
            江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
            C語言上機模擬二

            一、改錯題(18)

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

            個空格,所得新字符串存放于字符數組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(a,b);

            25    printf("\nThe result is");

            26    puts(b);

            27   }

                 【要求】

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

            程序中的錯誤進行修改。

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

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

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

              予評分。

                二、編程題(22)

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

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

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

            返回的值寫入文件myf2out中。

                【要求】   

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

                2.數據文件的打開、使用和關閉等操作均用C標準庫中緩沖文件系統的文件操作函數

            實現。

                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';

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

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

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

                二、編程題

                #include<stdioh>

                void fun(int n,int *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); 

                } 

            国产在线精品一区二区三区不卡_亚洲第一极品精品无码_永久免费无码网站在线观看_亚洲av综合日韩