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

             第一部分 公共基礎

            第二部分  C語言

            1(單選題):

            若有聲明int a=3,b=4,c=5;,則執行語句a>b?a--:(b>c?b++:(c/=2)); printf("%d\n",a+b+c);時輸出_____9_____。

             

            9 

            9.5 

            11 

            13 

             

             

            2 (填空題 <3> ) :

            以下程序運行時輸出結果中第一行是3  ,第二行是  5   ,第三行是4  。

            #include

            typedef struct node

            {

                int  value;

                struct node *next;

            } NODE;

            void Max(NODE *head)

            {

                NODE  *p,*first,*second;

                first=second=NULL; 

                p=head;

                while(p!=NULL)

                {

                    if(first==NULL||p->value>=first->value)

                    {

                        second=first;

                        first=p;

                    }

                    else if(second==NULL||p->value>=second->value) 

                        second=p;

                    p=p->next;

                }

                 printf("%d\n%d", first->value, second->value);

            }

            int main( )

            {

                NODE a[]={{3,&a[1]},{1,&a[2]},{5,&a[3]},{4,NULL}},*head=&a[0];

                printf("%d\n", head->value);

                Max(head);

                return 0;

            }

             

            3(單選題):

            若有聲明“char s1[80]="good ",s2[80]="luck ",s3[80]="to you";”,則執行語句

            “strcpy(s1+5,strcat(s2,s3)); printf("%s",s1);”時輸出____ good luck to you ______。

             

             

             

             

            4 (填空題 <2> ) :

            以下程序運行時輸出結果中第一行是22,第二行是11。

            #include

            void  series(int n)

            {

                while(n!=1)

                {

                    if(n%2!=0)

                        n=3*n+1;

                    else

                        while(n%2==0) n/=2; 

                    printf("%d\n",n);

                }

            }

            int main( )

            {

                series(7);

                return 0;

            }

             

            5 (填空題 <2> ) :

             以下程序運行時輸出結果中第一行是0,第二行是4。

            # include

            int f(int x,int y)

            {

                int t,i,M=23;

                if(y==1) return 0;

                for(i=t=1;i

                {

                    t=t*x%M; 

                    if(t==y) return i; 

                }

                printf("沒有結果\n");

                return 0;

            }

            int main( )

            {

                printf("%d\n%d",f(3,1),f(4,3));

                return 0;

            }

             

            6(單選題):

            以下聲明中正確的是__________。

             

            unsigned char x; 

            unsigned float x; 

            signed double x; 

            long char x; 

             

             

            8 (填空題 <3> ) :

            以下程序運行時輸出結果中第一行是1,第二行是1,第三行是3。

            #include

            void Pascal(int a[],int n)

            {

                int i,j;

                for(a[0]=1,i=1;i<=n;i++) a[i]=0;

                for(i=1;i<=n;i++)

                    for(j=i;j>0;j--)

                        a[j]+=a[j-1];

            }

            int main( )

            {

                int b[20];

                Pascal(b,1); 

                printf("%d\n",b[1]);

                Pascal(b,3); 

                printf("%d\n%d\n",b[0],b[2]);

                return 0;

            }

             

            9(單選題):

            若有聲明“int b=1,c[10]={2},*x=c; ”,則以下語句中正確的是__________ 。

             

            *x=c[10]; 

            b=*x; 

            c={1,2,3}; 

            *        &b=c;

            *        1(完善程序):

            *        完善程序(共12分,每空3分) 

            *         

            *        【要求】

            *        1. 打開T盤中文件myf0.c,按以下程序功能完善文件中的程序。

            *        2. 修改后的源程序仍保存在Tmyf0.c文件中,請勿改變myf0.c的文件名。

            *        【程序功能】

            *        假定Min函數形參a指向的結構數組前n個元素中存儲了n個二維點坐標值且互不相同。Min函數的功能是將這n個點坐標中排序最小的點坐標從數組中刪除,函數返回被刪除的點坐標值。

            *        所謂排序最小的點坐標指的是在所有點坐標(x,y)中,x值最小且y值最小。

            *        【測試數據與運行結果】

            *        測試數據:{0.5,3.0},{-3.0,5.0},{-1.5,3.5},{-3.0,-2.5}

            *        輸出:

            *          排序最小的點坐標是:(-3.0,-2.5)

            *             剩余的點坐標: 

            *          (0.5,3.0)     (-3.0,5.0)      (-1.5,3.5)

            *        【待完善的源程序】

            *        #include

            *        #include

            *        struct Point

            *        {   double x,y;  };

            *        struct Point Min(struct Point a[ ], int n)   

            *        {

            *            int i,k; 

            *            struct Point p;

            *            for(k=0,i=1;i

            *            {

            *                if(a[i].x   1a[i].y    ) 

            *                   k=i;

            *            }

            *            p=a[k];

            *            for(i=k;i

            *               a[i]=a[i+1];

            *            return      2  p    ;               

            *        }

            *        int main()

            *        {

            *               struct Point 3   pt[200]={ {0.5,3.0},{-3.0,5.0},{-1.5,3.5},{-3.0,-2.5}},p; 

            *            int i,n=4;

            *            p=Min(pt,n);

            *            printf("排序最小的點坐標是:(%.1f,%.1f)\n",    4 p.x,p.y    );

            *            printf("剩余的點坐標:\n");

            *            for(i=0;i

            *                printf("(%.1f,%.1f)\t",pt[i].x,pt[i].y);

            *            printf("\n");

            *            getch();

            *            return 0;

            *        }

            *         

            *         

            *        2(改錯題):

            *        改錯(共16分,每個錯4分)

            *            

            *        【要求】

            *        1. 打開T盤中文件myf1.c,按以下程序功能改正文件中程序的錯誤。

            *        2. 可以修改語句中的一部分內容,調整語句次序,增加變量聲明或預處理命令,但不能增加其他語句,也不能刪去整條語句。

            *        3. 修改后的源程序仍保存在Tmyf1.c文件中,請勿改變myf1.c的文件名。

            *        【程序功能】

            *         函數find的功能是在a指向二維數組中存儲的一個5×5階矩陣內查找并輸出所有具有以下特性的數組元素a[i][j]:第i行上所有元素之和等于第j列上所有元素之和(0≤i<5,0≤j<5)。

            *        【測試數據與運行結果】

            *            測試數據:

            *                   2  8  1  9  4

            *                   5  7  1  3  0

            *                   7  1  7  5  2

            *                   3  2  2  1  5

            *                   0  2  1  6  8

            *            輸出:

            *                  a[0][3]    a[4][0]

            *        【含有錯誤的源程序】

            *        #include

            *        #include

            *        void find(int a[5][])       修改為 void find(int a[5][5])

            *        {

            *            int i,j,row,col,sum1,sum2;

            *            for(i=0;i<5;i++)

            *                for(j=0;j<5;j++)

            *             {

            *                    sum1=sum2=0;

            *                    for(col=0;col<5;col++)

            *                        sum1+=a[i][col];

            *                    for(row=0;row<5;row++)

            *                        sum2+=a[j][row];         修改為 sum2+=a[row][j];     

            *                    if(sum1=sum2)             修改為 if(sum1==sum2)   

            *                        printf("a[%d][%d]  ",i,j);

            *                }

            *        }

            *        int main()

            *        {

            *            int a[5][5]={{2,8,1,9,4},{5,7,1,3,0},{7,1,7,5,2},{3,2,2,1,5},{0,2,1,6,8}};

            *            find(a[5][5]);       //修改為  find(a)

            *            getch();

            *            return 0;

            *        }

            *         

            *         

            *        3(編程題):

            *        編程(共22分) 

            *         

            *        【要求】

            *        1. 打開T盤中文件myf2.c,在其中輸入所編寫的程序。

            *        2. 數據文件的打開、使用、關閉均用C語言標準庫中緩沖文件系統的文件操作函數實現。

            *        3. 請勿改變myf2.c的文件名。

            *        【程序功能】

            *            數組數據處理。

            *        【編程要求】

            *        1.編寫void process(int *a,int n,int m1,int m2)函數。函數功能:先將a指向數組前n個元素中存儲的數據按升序排列,再將a[m1]~a[m2]中的數據逆置。

            *        2.編寫main函數。函數功能:聲明1個一維數組和變量m1、m2并用測試數據初始化,用數組及變量作實參調用process函數,將處理后的數組中數據輸出到顯示器屏幕及文件myf2.out中。最后將考生本人準考證號輸出到文件myf2.out中。

            *        【測試數據與運行結果】

            *        測試數據:  4  31  -23  49  87  65  0  -67  17  79,m1=2, m2=6

            *            輸出:  -67  –23  49  31  17   4   0  65  79  87

             

             

            編寫時按步驟給分

            *         

            *         

            *         

            *         

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