多个一维数组可以合并成一个二维数组,这些一维数组中变量类型必须一样并且变量个数也必须一样。二维数组声明如下
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语言学习指导。 教程内容可能包括以下几个方面: 1. **C语言概述**:介绍C语言的历史、特点和应用领域,让学习者对C语言有一个初步的认识。 2. **基本...
《C语言基础教程》是吕凤翥先生撰写的一本经典C语言教材,尤其适合初学者入门。这本书以其清晰的语言和实例解析,深受广大编程爱好者的喜爱。在学习C语言的过程中,掌握其基础知识至关重要,因为C语言是许多现代编程...
《C语言基础课件》是针对初学者及计算机考级者设计的一套全面而详细的教程,旨在帮助读者从零开始掌握C语言的基础知识。这套课件由清华大学出版社出版,其内容涵盖C语言的核心概念和常见编程技巧。通过PPT的形式,...
【标题】"C语言基础学习包"所涵盖的知识点主要围绕C语言的基础概念、语法结构、数据类型、控制结构、函数、数组、指针等方面展开。C语言是一种强大的、低级的编程语言,广泛用于系统编程、嵌入式开发、软件工程等多...
"C语言基础教材"是一份专为初学者设计的学习资源,旨在帮助零基础的学习者逐步掌握C语言的核心概念和技术。 这份教材以HTML格式提供,方便在网页浏览器中阅读和学习,同时也便于检索和打印。HTML文档通常包含丰富的...
由丹尼斯·里奇(Dennis MacAlistair Ritchie)以肯尼斯·蓝·汤普森(Kenneth Lane Thompson)设计的B语言为基础发展而来,在它的主体设计完成后,汤普森和里奇用它完全重写了UNIX,且随着UNIX的发展,c语言也得到...
C语言基础教程是一门针对初学者的编程课程,旨在教授如何使用C语言进行程序设计。C语言是一种广泛应用的计算机编程语言,因其高效、灵活和强大的功能而被广泛应用于系统编程、软件开发、嵌入式系统等多个领域。本...
**C语言基础** C语言是一种强大的、通用的编程语言,起源于1972年,由丹尼斯·里奇在贝尔实验室开发。它是许多现代编程语言的基石,因其高效、灵活和可移植性而广受程序员喜爱。"C语言基础.ppt"这份教程将引导初学...
本资源“C语言基础练习面试题”是针对初学者和有一定经验的开发者设计的一系列练习,旨在帮助他们巩固C语言基础知识,提升编程技能,并为面试做好准备。 在C语言的基础部分,这些练习涵盖了以下几个关键知识点: 1...
以下是对"c语言基础教程电子书"中各章节内容的详细解释: 第一章:C语言概论 在这一章中,你会了解到C语言的历史背景,它由Dennis Ritchie在贝尔实验室为UNIX操作系统开发。C语言的特点包括直接对硬件的访问能力、...
C语言是一种广泛应用于系统编程、应用编程、嵌入式开发等多个领域的高级编程语言,它的语法简洁明了,是学习其他编程语言的良好基础。本课件集合涵盖了C语言的基础知识,适合初学者入门学习,同时也对准备二级考试的...
根据给定的C语言基础练习题及其描述,我们可以总结出一系列重要的C语言知识点,这些知识点不仅对于在校大学生,而且对于所有初学者都是极其宝贵的。下面将详细解释这些知识点: ### 1. C语言标识符规则 C语言中的...
本资源“C语言基础程序代码合集”旨在为初学者提供一系列基础的C语言程序示例,帮助他们理解和掌握C语言的核心概念。 在C语言中,基础知识点主要包括以下几个方面: 1. **基本数据类型**:C语言有几种基本的数据...
"C语言基础知识复习资料" 本资源摘要信息涵盖了C语言的基础知识,包括变量、数据类型、运算符、控制结构、函数、数组、指针等方面。通过学习和掌握这些知识点,可以帮助读者更好地理解和应用C语言。 变量和数据...
"C语言基础知识总结" 本资源摘要信息将对C语言的基础知识进行总结,涵盖了计算机基础知识、C语言基础知识、标识符、整数与实数、算术表达式、赋值表达式、复合赋值表达式、自加表达式、逗号表达式、强制类型转换、...
### C语言基础知识详解 #### 一、C语言概论及发展历程 C语言作为一种重要的编程语言,在计算机科学领域占据着举足轻重的地位。它最早出现于20世纪70年代初期,由美国电话电报公司(AT&T)的贝尔实验室开发。1978年...