指針綜述

Description

鍵盤輸入6個整數存到二維數組a[2][3]中,要輸出它們,請填空:數組

int main()函數

{spa

    int a[2][3], i, j;3d

    _____________;    //定義一個指向變量的指針變量p1並賦初值指針

    _____________;    //定義一個指向一維數組的指針變量p2並賦初值ip

    for(i=0;i<=1;i++)io

         for(j=0;j<=2;j++)class

                      scanf("%d", &a[i][j]);後臺

   for(i=0;i<=1;i++)變量

        for(j=0;j<=2;j++)

               _____________________;    //利用p1輸出每一個整數

    printf("\n");

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

        for(j=0;j<=2;j++)

               _____________________; //利用p2輸出每一個整數

   printf("\n");

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

       for(j=0;j<=2;j++)

               _____________________; //利用數組名a輸出每一個整數,用指針法,不要用下標法

    printf("\n");

    return 0;

}

 

Input

輸入6個整數

Output

按要求輸出數據,每一個數據佔3位

Sample Input

2 3 5 1 6 4

Sample Output

2 3 5 1 6 4 2 3 5 1 6 4 2 3 5 1 6 4 
 

#include <stdio.h>
#include <stdlib.h>

int main()

 

{

 

int a[2][3], i, j;

 

int *p1=a[0]; //定義一個指向變量的指針變量p1並賦初值

 

int (*p2)[3]=a; //定義一個指向一維數組的指針變量p2並賦初值

 

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

 

for(j=0;j<=2;j++)

 

scanf("%d", &a[i][j]);

 

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

 

for(j=0;j<=2;j++)

 

printf("%3d",*(p1+3*i+j)); //利用p1輸出每一個整數

 

printf("\n");

 

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

 

for(j=0;j<=2;j++)

 

printf("%3d",*(*p2+3*i+j)); //利用p2輸出每一個整數

 

printf("\n");

 

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

 

for(j=0;j<=2;j++)

 

printf("%3d",a[i][j]); //利用數組名a輸出每一個整數,用指針法,不要用下標法

 

printf("\n");

 

return 0;

 

}

 

Description

設有以下主函數:

int main()

{   int a[2][3];

    __________;  //定義指針變量並賦初值

    __________ ; //輸入a[0][0]的值,利用數組名錶示a[0][0]    (用下標法)

     __________ ; //輸入a[0][1]的值,利用數組名錶示a[0][1]    (用指針法)

     __________ ; //輸入a[0][2]的值,利用指針變量表示a[0][2]   (用下標法),  此處的指針變量是指向變量的

     __________ ; //輸入a[1][0]的值,利用指針變量表示a[1][0]   (用指針法), 此處的指針變量是指向變量的

     __________ ; //輸入a[1][1]的值,利用指針變量表示a[1][1]     (用下標法), 此處的指針變量指向一維數組

     __________ ; //輸入a[1][2]的值,利用指針變量表示a[1][2]    (用指針法), 此處的指針變量指向一維數組

     __________; //調用sub函數,使每一個數據翻番

    for( ___________)     //輸出全部數據,要求用最快的方法

                  ____________________;

    return  0;

}

請完善主函數,並寫出sub函數的定義。

 

Input

共輸入6個整數

Output

輸出通過被調函數處理後的數據

Sample Input

1 2 3 4 5 6

Sample Output

2 4 6 8 10 12

 

 

#include <stdio.h>
#include <stdlib.h>

 

void sub(int *p)
{
int i;
for(i=0;i<6;i++)
{
*p=*p*2;
p++;
}
}

 

int main()

 

 

 

{ int a[2][3];

 

 

 

int *p=a[0]; //定義指針變量並賦初值



int i;

 

 

 

scanf("%d",&a[0][0]); //輸入a[0][0]的值,利用數組名錶示a[0][0] (用下標法)

 

 

 

scanf("%d",&a[0][1]) ; //輸入a[0][1]的值,利用數組名錶示a[0][1] (用指針法)

 

 

 

scanf("%d",&a[0][2]); //輸入a[0][2]的值,利用指針變量表示a[0][2] (用下標法), 此處的指針變量是指向變量的

 

 

 

scanf("%d",&a[1][0]); //輸入a[1][0]的值,利用指針變量表示a[1][0] (用指針法), 此處的指針變量是指向變量的

 

 

 

scanf("%d",&a[1][1]); //輸入a[1][1]的值,利用指針變量表示a[1][1] (用下標法), 此處的指針變量指向一維數組

 

 

 

scanf("%d",&a[1][2]); //輸入a[1][2]的值,利用指針變量表示a[1][2] (用指針法), 此處的指針變量指向一維數組

 

 

 

sub(*a); //調用sub函數,使每一個數據翻番

 

 

 

for( i=0;i<6;i++) //輸出全部數據,要求用最快的方法

 

 

 

printf("%d ",*(p+i));

 

 

 

return 0;

 

 

 

}

 

Description

主函數代碼以下:

int main()  
{
    int i,s[2][3];
    for(i=0;i<=5;i++)
         scanf("%d",*s+i);
    sub(s);
    for(i=0;i<=5;i++)
         printf("%d ",*(*s+i));
    return 0;  
}

其中sub()函數的功能是將數組s中的全部數據都變爲2倍,主函數已在後臺,請編寫sub函數。系統會自動將主函數代碼添加到你提交的代碼以後。

Input

輸入6個整數

Output

輸出最終的數據

Sample Input

1 2 3 4 5 6

Sample Output

2 4 6 8 10 12 
 

#include <stdio.h>
#include <stdlib.h>

void sub(int (*p)[3])
{
int i;
int j;
for(i=0;i<6;i++)
{
*(*p+i)=*(*p+i)*2;
}
}

int main()

{

int i,s[2][3];

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

scanf("%d",*s+i);

sub(s);

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

printf("%d ",*(*s+i));

return 0;

}

相關文章
相關標籤/搜索