多个一维数组可以合并成一个二维数组,这些一维数组中变量类型必须一样并且变量个数也必须一样。二维数组声明如下
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;
}
分享到:
相关推荐
C语言基础 五、循环
C语言基础C语言基础C语言基础C语言基础
由丹尼斯·里奇(Dennis MacAlistair Ritchie)以肯尼斯·蓝·汤普森(Kenneth Lane Thompson)设计的B语言为基础发展而来,在它的主体设计完成后,汤普森和里奇用它完全重写了UNIX,且随着UNIX的发展,c语言也得到...
标准C语言基础教程 5The programs examined so far have been useful in illustrating the correct structure of C programs and in introducing fundamental C input, output, assignment, and selection ...
总体上必须清楚的: 1)程序结构是三种: 顺序结构 、选择结构(分支结构)、循环结构...5、算法:可以没有输入,但是一定要有输出。 6、break可用于循环结构和switch语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。
第一章: C语言概论 第二章: 数据类型、运算符、表达式 第三章: C语言程序设计初步 第四章: 数组 第五章:函数
C语言基础课件对初学C语言者很有帮助,里面课件含有: 1.程序设计基础 2.数据类型 3.循环语句 4.数组 5.函数 6.指针 7.预处理命令 8.文件操作 9.结构体
c语言入门 c语言基础代码
C语言基础学习知识点 C语言基础学习知识点 C语言的具体结构 主函数 程序解释——注释 C语言标识符 变量及赋值 基本数据类型 格式化输出语句
c语言基础 C语言课程设计
c语言基础 入门 c语言代码
由丹尼斯·里奇(Dennis MacAlistair Ritchie)以肯尼斯·蓝·汤普森(Kenneth Lane Thompson)设计的B语言为基础发展而来,在它的主体设计完成后,汤普森和里奇用它完全重写了UNIX,且随着UNIX的发展,c语言也得到...
C 语言基础教程 第一章 C语言概述 第二章 程序的灵魂-算法 第三章 数据类型、运算符与表达式 第四章 顺序程序设计 第五章 选择结构程序设计 第六章 循环控制 第七章 数组 第八章 函数 第九章 预处理命令 第十章 ...
c语言基础
编程语言基础-C语言电子教案,共九章。
c语言基础
1972—1973年间,美国贝尔实验室的D.M.Ritchie 在B语言的基础上设计出了C语言。 最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。 随着UNIX的日益广泛使用,C语言也迅速得到推广。1978年以后,...
c语言基础
---------C基础--------- 第一章 C语言基本知识 【要点1】C程序 用C语言编写的程序被称为C语言源程序,源程序文件的后缀名为".c";源程序经编译后生成后缀名为".obj"的目标文件;目标文件与各种库函数连接,就生成...