高级语言程序设计课程第七次个人作业
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];
}