初始C语言(二)

本文介绍了C语言中的选择语句,如if...else...,用于根据条件执行不同代码块。接着讲解了循环语句,包括while循环,用于重复执行任务。函数的概念被引入以解决代码冗余问题,提高代码复用。数组作为构造数据类型,允许存储多个相同类型的数据,文章提供了一个计算学生平均成绩的例子。最后,文章提到了各种操作符的分类,为后续深入学习奠定基础。
摘要由CSDN通过智能技术生成

目录

六、选择语句

七、循环语句

八、函数

九、数组

 十、操作符

算术操作符

移位操作符

位操作符

赋值操作符

单目操作符

关系操作符

逻辑操作符

条件操作符

逗号表达式

下标引用、函数调用和结构成员

十一、习题


接初始C语言(一)

六、选择语句

选择大家都不陌生,考试的选择题、人生面临的选择等等。那么在C语言中选择是怎么样的呢?

在C语言中,用if......else......语句来表达选择。比如你如果好好学习,毕业的时候找个好工作,走向人生巅峰;如果不好好学习,毕业就失业。

代码举例:

​
#include <stdio.h>
int main()
{
	int coding = 0;
	printf("你会去敲代码吗?(选择1 or 0):>");
	scanf("%d", &coding);
	if (coding == 1)
	{
		printf("人生巅峰!\n");
	}
	else
	{
		printf("毕业就失业!\n");
	}
	return 0;
}

​

如果你会去敲代码,人生巅峰!不去敲代码,毕业就失业!

七、循环语句

有些事情是每天重复做的,比如每天吃饭,学习。还比如:

 通过不断的好好学习,走向大牛,然后到达人生巅峰。

C语言中的循环是通过while语句、for语句、do...while语句实现的,这里先了解while语句

#include<stdio.h>
int main()
{
	int sum = 0;
	while (sum <= 25000)
	{
		sum++;
		if (sum == 20000)
		{
			printf("人生巅峰!");
			break;
		}
	}
	return 0;
}

当sum等于20000时,输出人生巅峰并退出循环。

好的,这就是对选择和循环语句的简单介绍。后面的文章会详细介绍选择和循环语句的使用方法。

八、函数

在书写代码时,我们常常会遇到代码冗余的问题,比如在main函数的不同地方进行加法运算,必须书写多次相同的代码,这就造成了代码的冗余。为解决这个问题,在这里我们引入函数的概念。代码格式:

返回类型 函数名(形参列表){代码块}

函数的应用对比

int main()
{
    //不调用函数,进行多次加法运算
    int a = 0;
    int b = 0;
    int c = 0;
    printf("请输入:");
    scanf("%d %d", &a, &b);
    printf("c的值为:", a + b);
    while ((a + b) < 10)
    {
        printf("%d", a + b);
    }
    return 0;
}

//函数的定义
int Add(int a, int b)
{
    return a + b;
}
int main()
{
    //使用函数进行加法运算
    int a = 0;
    int b = 0;
    int c = 0;
    printf("请输入:");
    scanf("%d %d", &a, &b);
    printf("c的值为:", Add(a,b));
    while ((Add(a,b) < 10))
    {
        printf("%d", Add(a,b));
    }
    return 0;
}

注意:return语句在函数中可以有多个,但只能返回一个数值。

        函数在调用时会给形参开辟空间,用把实参传给形参,调用结束后空间销毁。

        函数的特点就是简化代码,代码复用。  

九、数组

在应用计算机语言处理问题的时候,经常需要很多个相同类型的数据。这就需要定义很多的相同类型的变量。在前面的初始C语言(一)中介绍了整型,实型,字符型等数据类型,均是C语言的基本数据类型,相应的变量都是简单变量。仅用基本数据类型以及简单变量在求解一些数据量大,而且个数据间存在一定关系的问题时时不够的(见代码)。这就需要一种新的数据类型——数组。在C语言中,数组是由基本数据类型按一定规则组成的,称其为构造数据类型。构造数据类型包括数组,结构体,共用体等,使用构造数据类型可以求解更为复杂的问题。

数组是最基本的构造类型,是相同类型数据的有序集合。数组中的元素在内存中连续存放,用数组名和下标可以唯一确定数组元素。

下面来看一个例子。

问题描述:

输入某班50个学生某门课程的成绩,计算并输出全班学生的平均成绩,同时统计并输出成绩低于平均分的人数。

代码如下:

#define N 50  //符号常量,N为学生人数
#include<stdio.h>
int main()
{
	float score[N]; //定义score为一维数组
	float aver = 0.0; //aver存放平均成绩
	int i, n = 0; //定义i为循环变量,n为平均成绩的人数
	for (i = 0; i < N; i++)
	{
		scanf("%f", &score[i]);  //输入学生成绩
		aver += score[i];  //学生成绩求和
	}
	aver = aver / N;   //计算平均成绩
	for (i = 0; i < N; i++)
	{
		if (score[i] < aver)
		{
			n++; //统计成绩低于平均值的学生数
		}
	}
	printf("平均值为:%4.1f,低于平均分的有:%2d", aver, n);//输出统计结果
	return 0;
}

说明:(1)程序中的语句float score[N];定义了一个score数组,这样系统在内存中开辟了N个连续的单元,用于存放数组score的N个元素float score[0]~float score[N-1]的值。每个数组元素存放一名学生的成绩,输入成绩后学生成绩可以反复使用

(2)在程序中使用数组,可以让一批相同类型的变量使用同一个数组变量名,用下标来相互区分。这样表示的优点是程序简洁,可读性好,便于使用循环结构

(3)该例子使用的是一维数组,在C语言中还有二维数组,两者都是在内存中开辟连续的空间。

数组的定义方式:

数据类型名 数组名[常量表达式] = {初始化};

int arr[6];

注意:C语言中方括号里面只能是常量或者常量表达式,不能是变量

数组内存的空间分配:

 十、操作符

这里只是让读者认识操作符,后面的文章会逐个介绍。

操作符可以分为:算数操作符,移位操作符,位操作符,赋值操作符,单目操作符,关系操作符,逻辑操作符,条件操作符,逗号表达式,下标引用、函数调用和结构成员。

算术操作符

%

移位操作符

>> <<

位操作符

& ^ |

赋值操作符

=   +=   -= *=   /=   &=  ^ =   |=     >>=   <<=

单目操作符

!           逻辑反操作
-           负值
+          正值
&          取地址
sizeof    操作数的类型长度(以字节为单位)
~          对一个数的二进制按位取反
--           前置、后置 --
++         前置、后置 ++
*           间接访问操作符 ( 解引用操作符 )
( 类型 )   强制类型转换

关系操作符

>
>=
<
<=
!=        用于测试 不相等
==       用于测试 相等

逻辑操作符

&&     逻辑与
||         逻辑或

条件操作符

exp1 ? exp2 : exp3

逗号表达式

exp1 , exp2 , exp3 , …expN

下标引用、函数调用和结构成员

[] () . ->
先认识C语言有那些操作符以后会对每个操作符进行详解。
注意 :前置++ 、- -,后置++、- -的区别。 
++自增运算符,为单目运算符,其功能是是变量的值自加1。自增运算符有两种使用形式:
前缀方式:用于变量前面,如:int a = ++x;它是先计算,后使用,即先将x的值自加1,然后将x的值赋给变量a。
后缀方式:用于变量后面,如:int a = x++;它是先使用,后计算,即先将x的值赋给变量a,然后再将x的值自加1。
--自减运算符,为单目运算符,其功能是是变量的值自减1。自增运算符有两种使用形式:
前缀方式:用于变量前面,如:int a = --x;它是先计算,后使用,即先将x的值自减1,然后将x的值赋给变量a。
后缀方式:用于变量后面,如:int a = x--;它是先使用,后计算,即先将x的值赋给变量a,然后再将x的值自减1。
代码举例:
int main()
{
	int a = 10;
	int b = 0;
	printf("a = %d\n", a--); //10
	printf("a = %d\n", a); //9
	b = ++a; //前置++ 
	b = a--; //后置--
	b = --a; //前置--
	printf("a = %d\n", a); //9
	printf("b = %d\n", b); //9
	printf("a = %d\n", a); //9
	printf("b = %d\n", b); //10
	printf("a = %d\n", a); //11
	printf("b = %d\n", b); //11
	b = a++;  //后置++
	printf("a = %d\n", a); //11
	printf("b = %d\n", b); //10
	return 0;
}

十一、习题

1、编程题。

 2、编程题。

 3、阅读程序题。

 4、阅读程序题。

 5、选择题。

 本篇文章结束,习题答案可以私信我。请大家多多支持,谢谢。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值