/4.1/

#include<stdio.h>
int main(){
    int a[2][3] = {{1,2,3},{4,5,6}};
    char b[2][3] = {{'1','2','3'},{'4','5','6'}};
    int i,j;
    for(i = 0;i < 2; ++i)
       for(j = 0;j < 3; ++j)
           printf("%x: %d\n",&a[i][j],a[i][j]);
          
    printf("\n");
          
    for(i = 0;i < 3; ++i)
        for(j = 0;j < 3; ++j)
            printf("%x: %c\n",&b[i][j],b[i][j]);
} 

1.是按行连续存放,每个元素占四个字节。2.是按行连续存放,每个元素占一个字节。

/4.2/

#include <stdio.h> 
#define N 1000 
int fun(int n, int m, int bb[N])
{ 
    int i, j, k = 0, flag;
    for (j = n; j <= m; j++) 
    {
      flag = 1; 
      for (i = 2; i < j; i++) 
      if (j%i==0)
        { flag = 0;
          break; 
        } 
        if (flag==1) 
        bb[k++] = j; 
    }
        return k; 
}
int main() 
{ 
   int n = 0, m = 0, i, k, bb[N];
   scanf("%d", &n);
   
  scanf("%d", &m); 
  for (i = 0; i < m - n; i++) 
  bb[i] = 0; 
  k = fun(n,m,bb);
  for (i = 0; i < k; i++) 
  printf("%4d", bb[i]);
   return 0; 
   }

 /4.3/

#include <stdio.h> 
const int N = 5;
 int find_max(int x[], int n); 
 void input(int x[], int n); 
 void output(int x[], int n); 
 int main() 
 {
       int a[N]; 
       int max; 
       
       input(a, N);
       output(a,N);
       max = find_max(a, N); 
        
       printf("max = %d\n", max); 
       return 0; 
}

void input(int x[], int n) 
{ 
       int i; 
       for (i = 0; i < n; ++i) 
       scanf("%d", &x[i]); 
} 

void output(int x[], int n) 
{ 
        int i; 
        for (i = 0; i < n; ++i) 
        printf("%d ", x[i]); 
        printf("\n"); 
}

int find_max(int x[],int n)
{
    int max = x[0];
    int i;
    for(i = 1;i < n;i++){
        if(x[i]>x[i-1]) max = x[i];
    }
    
    return max;
}

 /4.4/

#include <stdio.h> 
#include<math.h>
void dec2n(int x, int n); 
int main() 
{ 
     int x; 
     
     printf("输入一个十进制整数: "); 
     scanf("%d", &x); 
     
     dec2n(x, 2); 
     dec2n(x, 8); 
     dec2n(x, 16); 
       
    return 0; 
}
void dec2n(int x,int n)
{ 
    int e,d[100];
    int a,b = 0,i = 0;
    if(n<16) {
    while(x)
    {
        a = x%n;
        x = x/n;
        b = b + a*pow(10,i);
        i++;
    }  
    printf("%d\n",b);
}
else{
    int c[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    while(x){
        e = x%16;
        d[i++] = e;
        x = x/16;
    }
    for(i=i-1;i>=0;i--){
        printf("%c",c[d[i]]);
    }
}
}

 /4.5/

#include<stdio.h>
#define num(n) (n*n)
int main(){
    int i,n,j,x=0,y;
    printf("Enter n:");
    while(scanf("%d",&n)!=EOF){
        for(i=1;i<=n;i++){
       y = 1;
       x = 0;
             for(j=1;j<=n;j++){
                if(y<=i) {
                 x = x + 1;
                printf("%d ",x);
                y++;
                 }        
                else printf("%d ",x);
            } 
            printf("\n");
        }
        printf("\n");
         printf("Enter n:");
    }
}