Linux C程序设计--三大基本结构

目标:

掌握使用Linux C程序设计基本结构,并且熟练掌握一种结构程序的设计方法。熟练运用if-else和switch进行选择程序设计,熟悉两者之间的区别与关系,熟练运用for,while,do-while进程循环设计,理解三者之间的区别。

常用输出函数

多类型输出函数:printf("格式控制",输出)

%c:输出单个字符,%d:输出十进制整数,%o:输出八进制整数,%x:输出十六进制整数,%u:输出无符号整数,%f:输出浮点数,%s:输出字符串,%e:输出指数形式浮点数,%g:自动选择浮点数格式,%.2f:位数限制,%-3d:左对齐,(0,0x,0%d,0x%d):前导。


多类型输入函数:scanf("格式控制",地址列表)

1.按指定格式的要求将数据库保存到指定内存空间;

2.当格式控制部分中相邻的两个格式字符均为%c时,输出当时不能使用空格,Tab键或回车键进行区分;

3.格式字符串中出现的普通字符(包括转义字符)都需要原样输出。转义字符将被视为普通字符;

4.允许使用域宽和附加域宽进行输入控制;

5.可以使用[]制定输入范围,一次读取,直到越线为止;

6.尽可能给出输入提示,以便输入操作;

getchar():单个字符


三大基本结构

三大结构主要包括:顺序结构,选择结构,循环结构

1.顺序结构:按语句出现的先后顺序执行语句;

2.选择结构:依据条件判断是否执行相关语句;

3.循环结构:当条件成立,重复执行某些语句;

共同特点

1.均包含一个入口和一个出口;

2.每一个部分代码都有机会被执行;

3.绝对不会存在死循环;


顺序结构

输入三个数求三个数的平均值:

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
	
	double a,b,c;
	puts("请输出三个数值");
	scanf("%lf%lf%lf",&a,&b,&c);
	double avg=(a+b+c)/3;
	printf("三个数的平均数为:%.2f",avg);
	return 0;
}


选择结构

输入你的成绩看看你的成绩等级:

int _tmain(int argc, _TCHAR* argv[])
{
        float score;
	int k;
	puts("请输入你的成绩");
	scanf("%f",&score);
	k=(int) (score/10);

	if(score>=90)
	{
		printf("A");
	}
	else if(score<90&&score>=80)
	{
		printf("B");
	}
	else if(score<80&&score>=70)
	{
		printf("C");
	}
	else if(score<70&&score>=60)
	{
		printf("D");
	}
	else if(score<60)
	{
		printf("E");
	}
	return 0;
}

	float score;
	int k;
	puts("请输入你的成绩");
	scanf("%f",&score);
	k=(int) (score/10);
	switch(k){
	case 10:
    case 9:
		printf("A");
		break;
	case 8:
		printf("B");
		break;
	case 7:
		printf("C");
		break;
    case 6:	
		printf("D");
		break;
	default:
		printf("E");
	}
	return 0;


循环结构

输入学生人数,并求出这些学生的平均分:

int _tmain(int argc, _TCHAR* argv[])
{
	int num=0, score=0, sum=0,i=1;
		printf("请输入学生人数:");
		scanf("%d", &num);
			while(i<=num){
					printf("请输入第%d个学生人数:",i);
		scanf("%d", &score);
		sum += score;
		i++;
			}
		printf("学员的平均成绩:%.2f",1.0*sum/num);

		getchar();
}


break和continue,goto

break作用

1.一个循环中可以包含多个break语句,但是一般只有一个;

2.当循环内部含有switch语句,switch内部的break仅影响该switch语句,而不会影响其它循环;

3.break只能结束当前正在执行的循环,在执行多执行多重循环时需要特别注意;

continue作用

1.continue只能在循环里使用;

2.continue跳过循环体中剩余的语句而执行下一条循环;

goto作用

1.语句标号与goto语句可以不在一个循环内,但必须在同一个函数中;

int _tmain(int argc, _TCHAR* argv[])
{ 
	int i=1,sum=0;
	loop:if(i<=10)
	 {
		 sum+=i;
		 i++;
		 goto loop;
	 }
	 printf("sum=%d",sum);
	 getchar();
}


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
第1篇 LinuxC语言基础 第1章 Linux简介 1.1 GNU简介 1.2 Linux简介 1.2.1 Linux发展史 1.2.2 Linux发行版 1.2.3 Linux内核版本 1.2.4 Linux与UNIX的关系 1.2.5 Linux在服务器方面的发展 1.2.6 Linux在嵌入式系统方面的发展 1.2.7 Linux在桌面系统方面的发展 1.3 Linux环境下的其他编程语言 1.3.1 C++ 1.3.2 Java 1.3.3 Perl 1.3.4 Python 1.3.5 Ruby 1.3.6 PHP 第2章 控制结构 2.1 goto语句 2.1.1 C语言中的无条件跳转 2.1.2 使用goto语句进行出错处理 2.1.3 出错处理的一般模型 2.2 C语言中的分支结构 2.2.1 分支结构的翻译 2.2.2 使用goto语句实现分支结构 2.3 短路计算 2.3.1 短路计算 2.3.2 &&运算的短路计算 2.3.3 ||运算的短路计算 2.4 C语言中的循环结构 2.4.1 while循环 2.4.2 do…while循环 2.4.3 for循环 2.5 switch语句 2.5.1 switch语句的应用 2.5.2 使用goto语句实现switch语句 2.6 优化控制结构 2.6.1 表达式优化——使用替换程序中的乘除法 2.6.2  表达式优化——常量折叠 2.6.3 表达式优化——使用数学公式 2.6.4 表达式优化——存储问题 2.6.5 分支优化——改变判断顺序 2.6.6 分支优化——使用switch语句 2.6.7 循环优化——一次性计算 第3章 C语言中的函数 3.1 函数的本质 3.2 变量的作用域和生命期 3.2.1 全局变量 3.2.2 局部变量 3.3 变量的初始值 3.3.1 全局变量的初始值 3.3.2 局部变量的初始值 3.4 与函数有关的优化 3.4.1 函数调用与程序优化 3.4.2 变量存储优化 3.5 编写多文件程序——变量的存储类别 3.5.1 存储类别 3.5.2 static变量的作用——改变变量的生命期 3.5.3 static变量的作用——实现封装和模块化设计 3.6 编写多文件的程序——链接的作用 3.6.1 链接多个文件 3.6.2 链接时符号解析规则 3.6.3 链接规则的应用 3.7 可变参数 3.7.1 可变参数的概念 3.7.2 实现一个简单的可变参数的函数 3.7.3 可变参数实例 3.7.4 关于printf函数的疑问——缺少整型参数 3.7.5 关于printf函数的疑问——缺少字符串地址参数 第4章 C语言中的指针与字符串 4.1 sizeof运算符 4.1.1 sizeof运算符的应用——得到内置类型的大小 4.1.2 sizeof运算符的应用——得到复合类型的大小 4.2 指针的应用 4.2.1 指针与别名陷阱 4.2.2 数组的指针 4.2.3 指针的指针 4.2.4 指针与参数传递 4.2.5 指针类型的意义 4.2.6 void*型指针 4.3 函数的指针 4.3.1 C语言中的函数指针 4.3.2 函数指针的应用——回调函数 4.3.3 函数指针数组 4.4 字符串 4.4.1 字符串与字符数组 4.4.2 字符串与指针 4.4.3 限定修饰符const 4.4.4 const关键字修饰指针——在指针定义之前 4.4.5 const关键字修饰指针——在指针定义之中 4.4.6 const关键字修饰指针——在指针定义之前和定义之中 4.4.7 使用const关键字的意义 第5章 C语言的高级技术 第2篇 C语言开发环境 第6章 vi与vim编辑器 第7章 gcc编译器 第8章 makefile 第9章 gdb 第3篇 Linux进程操作 第10章 进程环境 第11章 进程控制 第12章 时间和日历历程 第13章 信号及信号处理 第14章 进程间通信 第15章 线程 第4篇 Linux文件操作 第17章 文件I/O 第18章 文件管理 第19章 目录操作 第20章 特殊文件 第21章 基于流的I/O 第5篇 Linux网络编程 第22章 TCP和UDP协议 第23章 网络编程基础 第24章 网络编程进阶 第25章 网络编程实例——实现文件传输程序 第26章 网络编程实例——简单的Web服务器 第6篇 shell脚本知识 第27章 shell脚本基础 第28章 shell脚本中的控制结构 844
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值