高级语言程序设计课程第七次个人作业

2024高级语言程序设计:https://edu.cnblogs.com/campus/fzu/2024C
高级语言程序设计课程第七次个人作业:https://edu.cnblogs.com/campus/fzu/2024C/homework/13304
学号:102400226
姓名:石华波

//1111.1
#include<stdio.h>

int main(){
    int arr[10][10];
    for(int i=0;i<10;i++){
        for(int j=0;j<10;j++){
            arr[i][j]=10*i+j;
        }
    }
    int *mar=arr;
    for(int i=0;i<10;i++){
        for(int j=0;j<10;j++){
            printf("%d %d\n",arr[i][j],*(mar+10*i+j));
        }
    }
    return 0;
}

//1111.2
#include<stdio.h>

int main(){
    int n;
    scanf("%d",&n);
    int pos[10][10]={0},x=1,y=1,d=0,m,k;
    int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
    for(int i=1;i<=n*n;i++) {
        pos[x][y]=i;
        m = x+dir[d][1];
        k = y+dir[d][0];
        if(m>=1&&m<=n&&k>=1&&k<=n&&pos[m][k]==0) {
            x = m;
            y = k;
        }
        else {
            d = (d+1)%4;
            x += dir[d][1];
            y += dir[d][0];
        }
    }
    for(int i=1;i<=n;i++) {
        for(int j=1;j<=n;j++) {
            printf("%3d",pos[j][i]);
            if(j%n==0)printf("\n");
        }
    }
    return 0;
}

//1111.3
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void SumGrade(int (*arr)[8]);

int main(){
    int arr[10][8];
    srand(time(NULL));
    for(int i=0;i<10;i++){
        arr[i][0]=0;
        for(int j=1;j<8;j++){
            arr[i][j]=rand()%100+1;
            printf("%d ",arr[i][j]);
        }
        putchar('\n');
        SumGrade(arr+i);
        printf("%d\n",arr[i][0]);
    }
} 

void SumGrade(int (*arr)[8]){
    for(int i=1;i<8;i++){
        arr[0][0]+=arr[0][i];
    }
    return 0;
}

//1111.4
#include<stdio.h>

int main(){
    int a;//定义int类型变量a
    int *a;//定义指向int类型数据的指针变量a;
    int **a;//定义一个指向int指针的指针变量a;
    int a[10];//定义一个容量10的int类型数组a
    int (*a)[10];//定义一个指向包含10个int类型元素的数组的指针a; 
    return 0;
}
//1111.5
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main(){
    int mar[10][10],arr[10][10];
    int (*ptr)[10]=arr;
    srand(time(NULL));
    for(int i=0;i<10;i++){
        for(int j=0;j<10;j++){
            arr[i][j]=rand()%100;
            mar[i][j]=ptr[i][j];
            printf("%d ",mar[i][j]);
        }
        putchar('\n');
    }
    return 0;
}

//1111.6
#include<stdio.h>

int Length(char *str);

int main(){
    char str[100];
    scanf("%s",str);
    printf("%d",Length(str));
    return 0;
} 

int Length(char *str){
    int len=0;
    while(*str!='\0'){
        len++;
        str++;
    }
    return len;
}

//1111.7
#include<stdio.h>

int main(){
    int a[3][4] = {0};
    
    printf("%d\n",sizeof(a));
    //整个数组总大小,48 
    printf("%d\n",sizeof(a[0][0]));
    //单个元素大小 ,4
    printf("%d\n",sizeof(a[0]));
    //一行的大小,16 
    printf("%d\n",sizeof(a[0]+1));
    //指向第一行第二个元素的指针的大小,8
    printf("%d\n",sizeof(*(a[0]+1)));
    //a[0][1]的大小,4
    printf("%d\n",sizeof(a+1));
    //指向数组a第二行的指针的大小,8
    printf("%d\n",sizeof(*(a+1)));
    //a[1]的大小,16 
    printf("%d\n",sizeof(&a[0]+1));
    //指向a[0][1]的指针的大小,8 
    printf("%d\n",sizeof(*(&a[0]+1)));
    //a[1]的大小,16
    printf("%d\n",sizeof(*a));
    //a[0]的大小,16 
      printf("%d\n",sizeof(a[3]));
      //越界,但编译可以通过,输出一行的大小,16 
    return 0;
}

//1111.8
#include<stdio.h>
#include<string.h>

void StrCopy(char *str1,char *str2,int m); 

int main(){
    char str1[31],str2[31];
    int m;
    scanf("%s %d",str1,&m);
    StrCopy(str1,str2,m);
    printf("%s",str2);
    return 0;
}

void StrCopy(char *str1,char *str2,int m){
    int c=0;
    for(int i=m-1;i<=strlen(str1);i++) str2[c++]=str1[i];
}

posted @ 2024-11-11 17:02  102400226石华波  阅读(30)  评论(0编辑  收藏  举报