`

C语言基础五

    博客分类:
  • c
c 
阅读更多
多个一维数组可以合并成一个二维数组,这些一维数组中变量类型必须一样并且变量个数也必须一样。二维数组声明如下
int shu_zu[2][3];
其中2表示由2个一维数组构成,3表示每个一维数组中有三个变量。

函数可以用来表示一段数据处理过程,函数声明方法如下
int jia(int shu_zi, int shu_zi1) {
    处理语句
}
jia叫做函数名称,int表示函数返回值的类型,小括号内部叫做形参列表。

函数的使用方法如下
shu_zi = jia(2, 7);
赋值操作符右面的语句叫函数调用语句,其中jia表示函数名称,2和7叫做实参(实参用来对形参进行初始化)
这条语句中函数jia叫做被调用函数,主函数叫做调用函数。

没有明确指定返回值类型则按照int处理
如果函数有返回值但是没有使用return关键字指定返回值数值则返回任意一个数值
如果return语句指定的数字类型和返回值类型不一致则自动进行类型转换。
如果函数没有返回值则需要使用void来表示返回值类型

函数声明部分可以构成一条独立的语句。
如果在gcc编译过程中首先处理函数调用语句则会采用隐式声明。
函数的隐式声明不可靠
1.如果返回值类型不是int有可能会出错
2.隐式声明是参数类型会自动提升,所有整数类型(char,short等)都会被提升成int,float类型会被提升成double。

return语句可以结束函数的执行,exit(0)语句可以结束整个程序的运行(需要包含stdlib.h头文件)



/*
	数组练习
*/
#include <stdio.h>
int main() {
    int shu_zu[6] = {0}, xun_huan = 0, shu_zi = 0, xia_biao = 5;
	 printf("请输入一个数字:");
	 scanf("%d", &shu_zi);

	 /*while (shu_zi != 0) {
			shu_zu[xia_biao] = shu_zi % 10;
			xia_biao--;
			shu_zi /= 10;
	 }*/
	 for (xun_huan = 5; xun_huan >= 0; xun_huan--) {
        shu_zu[xun_huan] = shu_zi % 10;
		  shu_zi /= 10;
    }

	 for(xun_huan = 0; xun_huan <= 5; xun_huan++) {
        printf("%d ", shu_zu[xun_huan]);
	 }
	 printf("\n");
    return 0;
}


/*
	数组练习
*/
#include <stdio.h>
int main() {
    int shu_zu[10] = {0}, shu_zi = 0, xun_huan = 0;
	 printf("请输入一个数字:");
	 scanf("%d", &shu_zi);
	 do {
        shu_zu[shu_zi % 10]++;
		  shu_zi /= 10;
	 } while (shu_zi != 0);
	 for (xun_huan = 0; xun_huan <= 9; xun_huan++) {
        printf("数字%d出现的次数是%d\n", xun_huan, shu_zu[xun_huan]);
    }
    return 0;
}

/*
	二维数组练习
*/
#include <stdio.h>
int main() {
    //int shu_zu[2][3] = {{1, 2, 3}, {4, 5, 6}};
    //int shu_zu[2][3] = {{1, 2}, {4, 5, 6}};
    //int shu_zu[][3] = {{1, 2}, {4, 5, 6}};
    //int shu_zu[][3] = {1, 2, 4, 5, 6};
    int shu_zu[2][3] = {[1][2] = 6, [0][0] = 1};
    int hang = 0, lie = 0;
	 //int shu_zu[2, 3];   错误
	 for (hang = 0; hang <= 1; hang++) {
        for (lie = 0; lie <= 2; lie++) {
            printf("%d ", shu_zu[hang][lie]);
		  }
		  printf("\n");
	 }
    return 0;
}

/*
	二维数组练习
*/
#include <stdio.h>
int main() {
    int shu_zu[4][4] = {{1}, {0, 1}, {0, 0, 1}, {0, 0, 0, 1}};
	 int hang = 0, lie = 0;
	 for (hang = 0; hang <= 3; hang++) {
        for (lie = 0; lie <= 3; lie++) {
            printf("%d ", shu_zu[hang][lie]);
		  }
		  printf("\n");
	 }
    return 0;
}


/*
	二维数组练习
*/
#include <stdio.h>
int main() {
    int shu_zu[2][3];
	 printf("sizeof(shu_zu)是%d\n", sizeof(shu_zu));
	 printf("shu_zu是%p,&shu_zu[0][0]是%p\n", shu_zu, &shu_zu[0][0]);
	 printf("shu_zu + 1是%p\n", shu_zu + 1);
    return 0;
}



/*
	数组初始化练习
*/
#include <stdio.h>
int main() {
    int shu_zu[4] = {1, 2, 3, 4};
    //int shu_zu[] = {1, 2, 3, 4};
    //int shu_zu[4] = {1, 2};
    //int shu_zu[4] = {[2] = 3, [1] = 2};
	 int xun_huan = 0, ge_shu = 0;
	 ge_shu = sizeof(shu_zu) / sizeof(shu_zu[0]);
	 for (xun_huan = 0; xun_huan <= (ge_shu - 1); xun_huan++) {
        printf("%d ", shu_zu[xun_huan]);
    }
	 printf("\n");
    return 0;
}


/*
	随机数练习
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
    srand(time(0));
    printf("%d\n", rand());
    printf("%d\n", rand());
    printf("%d\n", rand());
    return 0;
}

/*
	函数练习
*/
#include <stdio.h>
int jia(int shu_zi, int shu_zi1) {
    return shu_zi + shu_zi1;
}
int cheng(int shu_zi, int shu_zi1) {
    return shu_zi * shu_zi1;
}
int du() {
    int shu_zi = 0;
	 printf("请输入一个数字:");
	 scanf("%d", &shu_zi);
	 return shu_zi;
}
int main() {
    int shu_zi = 0;
	 //shu_zi = jia(10, 21);
	 //shu_zi = cheng(4, 8);
	 shu_zi = du(shu_zi);
	 printf("%d\n", shu_zi);
    return 0;
}


/*
	函数练习
*/
#include <stdio.h>
/*jia(int shu_zi, int shu_zi1) {
    return shu_zi + shu_zi1;
}*/
int jia(int shu_zi, int shu_zi1) {
    shu_zi + shu_zi1;
}
int main() {
    int shu_zi = 0;
	 shu_zi = jia(2, 4);
	 printf("结果是%d\n", shu_zi);
    return 0;
}


/*
	函数练习
*/
#include <stdio.h>
//int jia(int , int );
//int jia();  //隐式函数声明格式
int main() {
    int shu_zi = 0;
	 shu_zi = jia(2, 8);
	 printf("shu_zi是%d\n", shu_zi);
    return 0;
}
/*int jia(int shu_zi, int shu_zi1) {
    return shu_zi + shu_zi1;
}*/
/*void jia(int shu_zi, int shu_zi1) {
    shu_zi + shu_zi1;
}*/
int jia(double shu_zi, double shu_zi1) {
    return shu_zi + shu_zi1;
}

/*
	函数练习
*/
#include <stdio.h>
void da_yin(int);
int main() {
    da_yin(7);
    return 0;
}
void da_yin(int shu_zi) {
    printf("%d\n", shu_zi);
}


/*
	函数练习
*/
#include <stdio.h>
#include <stdlib.h>
void ce_shi(void) {
    //return ;
    exit(0);
	 printf("2\n");
}
int main() {
    ce_shi();
	 printf("3\n");
    return 0;
}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics