2021-09-14 C语言 控制语句

练习_2021-01-09 这里写目录标题一、 C语言第1题第2题第3题第4题第5题第6题第7题第8题第9题第10题二、 数量关系第1题第2题第3题第4题第5题三、 判断推理第1题第2题第3题第4题第5题 一、 C语言 第1题 下列语句中与语句 while(1){ if(i>=100) break; s+=i; i++; } A、 for(;i<100;i++)s=s+i; B、for(;i<100;i++;s=s+i); C、for(;i<=100;i++)s= 阅读详情

Day4控制语句

分支结构:if()~else、switch
循环结构:for()、while()、do~while()、goto
辅助控制:contine、break、return
分支结构
1.if-else语句
1.1.一般形式:

if(表达式)
	语句块1;
else
	语句块2;

1.2.常见形式
1.2.1. 简化形式:if(表达式) 语句块 ;
例:

if(x>y) printf(“%d”,x) ;

1.2.2. 阶梯形式:(命令行模式下输入gg=G美化代码)

if(表达式1) 语句块1;
	else if(表达式2) 语句块2 ;
		else if(表达式3) 语句块3 ;
……
			else 语句块n ;

例:

if (!(score >= 0 && score <= 100)) 
        printf("not in [0, 100]\n");
else if (score >= 90) 
        printf("A-excellent\n");
else if (score >= 70) 
        printf("B-good\n");
else if (score >= 60) 
        printf("C-OK\n");
else 
        printf("D-not pass\n");

注:
语句块:当有若干条语句时,必须用{……}括起来。
表达式:一般情况下为逻辑表达式或关系表达式(如:if(ab&&xy) printf(“a=b,x=y”);)也可以是任意类型(包括整型、实型、字符型、指针类型)(如:if(‘a’) printf(“%d”,’a’) ; )注意区分if(x=1)和if(x==1)是不同的。
1.2.3. 嵌套形式

if(表达式1)
	if(表达式2) 语句块1 ;
	else 语句块2 ;
else
	if(表达式3) 语句块3 ;
	else 语句块4 ;

注:
else总是与它上面的最近的if配对,与书写格式无关;要实行强行配对关系可以利用{……}。
1.3.示例
已知三角形三边a、b、c,海伦公式:p=(a+b+c)/2、S=√(p(p-a)(p-b)(p-c)),求S。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main() 
{
        float a, b, c;
        float p;
        float area;
        printf("input a b c:");
        scanf("%f%f%f", &a, &b, &c);
        if ( a + b <= c || a + c <= b || b + c <= a) {
                printf("invalid input--1\n");
                return 0;
        }
        if (abs(a - b) >= c || abs(a - c) >= b || abs(b - c) >= a) {
                printf("invalid input--2\n");
                return 0;
        }
        p = (a + b + c) / 2;
        area = sqrt(p * (p - a) * (p - b) * (p - c));
        printf("%.2f, %.2f, %.2f--->%.2f\n", a, b, c, area);
        return 0;
}

2.switch语句
2.1.switch语句的基本形式

switch (表达式)
{
case 常量表达式1 : 语句块1 ;break ;
case 常量表达式2 : 语句块2 ;break ;
……
case 常量表达式n : 语句块n ;break ;
default : 语句块n+1 ;
}

2.2.switch语句的使用

  1. 每个常量表达式的值必须各不相同,否则将会出现矛盾
  2. 当表达式的值与case后面的常量表达式值相等时,就执行此case后面的语句
  3. switch中的表达式可以是整型、字符型表达式或枚举
  4. case常量只起语句标号作用
  5. break语句用于强行跳出switch体,一般每个case后面应有一个break语句,default分支后的break可以省略
  6. 多个case可以执行一组语句

2.3. 示例

enum weekday 
        {sun,mon,tue, wed} a;
        a = wed;
        switch (a) {
        case 1: 
                printf("1\n");
        case 2: 
                printf("2\n");
        case 3: 
                printf("3\n");
                break;
        default:
                printf("not 1 2 3\n");
        }
        return 0;

循环语句
1.goto语句
例:

int i = 1 ; int num = 0 ;
_loop :
if(i <= 100){
	sum += i ;
	i ++;
	goto _loop ;
}
printf(“1+2+3+……+%d\n”,i.sum) ;

注:
goto语句集中于一处退出函数
当函数有很多个出口,使用goto语句把这些出口集中到一处是很方便的,特别是函数中有许多重复的清理工作的时候
优点:

  1. 无条件跳转易于理解;
  2. 可以减少嵌套;
  3. 可以避免那种忘记跟新某一个出口点的问题;
  4. 算是帮助编译器做了代码优化。

2.while语句
基本形式:

while(表达式){
	语句块;
}

注意循环语句的使用:

  1. 循环变量初始化
  2. 循环终止条件
  3. 循环变量的变化

例:

int i = 1 ; int sum = 0 ;
while(i <= 100){
	sum += i ;
	i++ ;
}
printf(“1+2+3+ ……+%d\n”,i,sum) ;

先判断,后执行
3.do - while语句
基本形式:

do{
	语句块 ;
}while(表达式) ;

先执行,后判断
4.程序举例
“水仙花数”是指一个三位数,其各个位数字立方之和等于它本身。

int n = 100;
int a, b, c;//bai  shi ge 123

while (n <= 999) {
        a = n / 100;
        b = n / 10 % 10;
        c = n % 10;

        //if (a*a*a + b*b*b + c*c*c == n) 
        if (pow(a, 3) + pow(b, 3) + pow(c, 3) == n)
                printf("%d\n", n);
        n++;
}

5.for语句
一般形式:

for(表达式1;表达式2;表达式3){
	语句块;
}

其中表达式1通常代表初始值,表达式2通常代表循环条件,表达式3通常代表结束语句。
执行过程:
① 先求解表达式1(设初值)
② 求解表达式2,若为真,则执行循环体(语句块),然后执行步骤3;若为假,则执行步骤5
③ 求解表达式3
④ 转回执行步骤2
⑤ 执行for下面的语句(跳出for循环)
例:

for( i = 1 ; i <= 100 ; i ++ ){
	sum = sum + i ;
}

注:
① 表达式1可以省略,但循环之前应给循环变量赋值
② 表达式2可以省略,但将陷入死循环
③ 表达式3可以省略,但在循环体中增加使循环变量改变的语句
④ for括号内的“ ; ”不可省略
案例一:打印乘法表

int i, j;
for (i = 1; i <= 9; i++) {
        for (j = 1; j <= i ;j++)
                printf("%d*%d=%d\t", j, i, i * j );
        puts("");
}

案例二:利用循环打印以下图案:
F
_FE
__FED
___FEDC
____FEDCB
_____FEDCBA

int i, j;
char ch = 'F';
printf("please input char:");
scanf("%c", &ch); 
for (i = 0; i <= ch - 'A' ; i++) {
        for(j = 0; j < i; j++)
                putchar('_');
        for(j = 0; j <= i; j++)
                putchar(ch-j);
        putchar('\n');
}

辅助控制语句
1.break语句
用于从循环体内跳出循环体,即提前结束本层循环;break语句只能用于循环语句和switch语句中。
例:

for( r = 1 ; r <= 10 ; r ++ ){
	area = pi * r *r ;
	if( area > 100 ) break ;
	printf(“%f”,area) ;
}

案例:判断素数
对于一个大于或等于3的正整数,判断它是不是一个素数
步骤:
① 输入整数n的值
② i = 2;
③ n被i除得余数r
④ 若r = 0,则打印“n不是素数”,算法结束;否则执行步骤5
⑤ i++
⑥ 若i <= √n ,返回步骤3;否则打印“n是素数”,算法结束。

int n, m;
int i;
printf("input :");
scanf("%d", &n);
i = 2;
m = sqrt(n);
while (i <= m) {
        if (n % i == 0) 
                break;
        i++;
}
if (i > m)
        printf("yes:%d\n", n);

2.continue语句
结束本次循环,接着判定下一次是否执行循环;注意continue和break的区别:continue直接结束本次循环,而break终止本层循环。
例:

for( n = 100 ; n <= 200 ; n ++ ){
	if( n % 3 == 0 ) continue ;
	printf(“%d”,n) ;
}

案例:对判断素数的程序进行完善,若用户输入的不是整数重新输入。

int n, m;
int i;
int ch;
while (1) {
        printf("input num(# exit):");
        if (scanf("%d", &n) == 0) {
                if ((ch = getchar()) == '#')
                        return 0;//break;
                else {
                        printf("error:again!\n");
                        continue;
                }
        }
        i = 2;
        m = sqrt(n);
        while (i <= m) {
                if (n % i == 0) 
                        break;
                i++;
        }
        if (i > m)
                printf("yes:%d\n", n);
        else
                printf("not:%d\n", n);

3.return语句
一般形式:

return(<表达式>)

主要用于终止包含该return的函数的执行,若终止的为主函数,则主程序结束。

C语言实现AES加解密 C语言实现AES加解密 #include<stdio.h> #include<string.h> #include<time.h> #include<windows.h> #define Nb 4 //数据块行数 #define Nk 4 //密码块行数 #define Nr 10 //轮加密次数 unsigned char RoundKey[4*Nb*(Nr+1)]; //轮密钥 unsigned char Key[17]; 阅读详情

相关推荐

GAN管CGH40010F设计宽带Doherty功放:如何用ADS搞定输入匹配、合路网络与功分器?

本文详细介绍了基于CGH40010F GaN晶体管的宽带Doherty功放设计流程,重点讲解在ADS平台中实现输入匹配网络、合路网络与功分器的关键技术。通过寄生参数补偿、渐变微带线设计和复合补偿结构等方法,解决了宽带化设计中的核心挑战,最终实现1.7-2.6GHz频段内72%的峰值效率和52%的回退效率。

weixin_42614269的博客 473

C语言的组成:32个关键词、9种控制语句、34种运算符

随着科技的进步,我们生活的方方面面都已经智能化了。智能手机,早已不局限于拍照听音乐,各种功能强大到你瞠目;智能电视,只要是加了微信,在公司也能遥控指挥,从此再不怕忘记关电视;智能空调,早已经拜托了遥控器,可以通过触摸的方式进行调节。这样的例子实在是不胜枚举,所以我也就不一一说明了。我今天要说的是,为什么我们的生活会变得如此方便?答案当然是程序!是程序让我们的生活变得丰富多彩,变得乐趣无穷。程序是这

bentengdehe的博客 1万+

STM32F0实现数字化SPWM纯正弦波逆变器

这个没啥好说的,搭电路的事。其核心思想是两边桥臂分别由两个180度相位差的正弦波与三角载波比较来控制,优点是在开关器件工作频率一样的情况下,输出PWM频率是单极性SPWM的2倍,能够明显减少谐波,因此只需要相对较小的电感和电容滤波器件就可以起到很好的滤波效果,提升了系统的性能,也精简了系统体积,降低了成本。而双极性pwm则是在整个正弦周期内,四只管子都在高频开关状态工作,对角线上的管子一起导通,另一对角线上管子互补导通,实际上只需要一路互补的PWM控制,负载上电压在正电压和负电压之间切换,不出现0v。

forlifefor的专栏 1万+

c语言第二课:循环语句与循环分支语句

利用循环写一个简单的猜数字小游戏:// 定义猜数字游戏的函数// 生成1到100之间的随机数作为要猜的数字printf("请输入你所猜测的数字->");// 循环,让玩家猜数字,直到猜中为止while (1)int b;if (r > b)printf("牢底,太小气\n");// 提示玩家猜的数字太小printf("牢底,太豪了\n");// 提示玩家猜的数字太大elseprintf("牢底,有实力的\n");// 猜中数字,游戏结束break;// 显示游戏主菜单的函数。

weixin_74150890的博客 2464

光模块组成

时钟恢复电路(Clock Data Recovery,简称CDR)是光模块中的关键组成部分,CDR的作用主要是从接收到的信号中提取出数据序列,并且恢复出与数据序列相对应的时钟时序信号,从而还原接收到的具体信息。因为光信号传输至一定距离的时候,通常是长距离传输,其波形会出现一定程度的失真,接收端接收到的信号是一个个长短不一的脉冲信号,这个时候在接收端,我们就无法得到我们需要的数据。所以,这个时候就需要有信号的再生,信号的再生功能为再放大、再整形和再定时,其中的再定时指的就是CDR时钟数据恢复。

han_better的博客 5725

基于 SpringAI 整合 DeepSeek 模型实现 AI 聊天对话

很多云平台都提供了一键部署大模型的功能,这里不再赘述(阿里云百炼平台、火山方舟-火山引擎等)Ollama。

📜一个热爱探索的人 1279

C语言

C语言 42.C语言是一种计算机高级语言。 43.C语言允许直接访问物理地址,能进行位操作。 44.C语言是结构化程序设计语言 45.c程序要通过编译,连接才能得到可执行的目标程序 46.用c语言编写程序,可以编写出任何类型的程序 47.C语言允许有空函数 48.C程序书写格式,允许一行内可以写几个语句 49.C程序的语句无行号 50.C语言的每个语句的最后必须有一个分号 51.C语言本身没有输入...

qq_45481418的博客 2万+

Synopsys 逻辑综合之 ICG

文章摘要: ICG(集成时钟门控单元)是一种用于降低时钟功耗的专用逻辑单元,通过控制时钟信号的传播实现节能。其核心原理是在寄存器前插入门控逻辑(如gclk=clk&en),但需避免直接使用AND门以防止毛刺,转而采用带锁存器的专用ICG单元。在RTL设计中,符合条件(如稳定使能信号)的if(en)结构可被综合工具(如DesignCompiler)自动识别并替换为ICG。使用时需配置时序检查(如PrimeTime分析使能路径、门控时钟延迟),并注意避免组合逻辑使能、多级门控等误区。ICG是芯片低功耗设

Serven的博客 4352

C语言03--控制流

C语言中的控制流语句,包括条件语句(如if和switch)、循环语句(如for、while和do while)以及跳转语句(如break、continue和return)。

weixin_69902486的博客 1136

晶晨S905L3S/S905L3SB芯片刷机实战:BL加载工具与线刷固件全解析

本文针对晶晨S905L3S/S905L3SB芯片电视盒子刷机时常见的2%失败问题,提供了两种核心解决方案。一是使用已集成特殊通信协议的专用版USB Burning Tool(如V2.2.5/V2.2.7),二是采用旧版工具配合独立的BootLoader加载工具。文章详细解析了两种方案的原理、操作步骤、固件选择及常见问题排查,旨在帮助用户成功完成刷机,让老旧设备焕发新生。

weixin_29238147的博客 1109

Windows 10/11 下用 Docker 一键部署 CVAT 标注工具(附 WSL2 配置指南)

本文详细指导如何在Windows 10/11系统上,通过配置WSL2和Docker Desktop,实现CVAT标注工具的一键部署。内容涵盖从环境准备、Docker安装、CVAT服务启动到性能优化与安全配置的全流程,为计算机视觉开发者提供稳定高效的本地标注平台解决方案。

weixin_28839601的博客 464

c语言输入输出必须有吗,c语言本身没有输入输出语句吗

在C语言中,有三个函数可以用来在显示器上输出数据,它们分别是:puts():只能输出字符串,并且输出结束后会自动换行,在《第一个C语言程序》中已经进行了介绍。putchar():只能输出单2021-02-02 00:43:57continue语句只用在while、for循环中,它的作用是:跳过循环体中剩余的语句而强制进入下一次循环。对于while循环,继续求解循环条件。而对于for循环程序流程接着...

weixin_29888579的博客 9245

结构光三维重建(一)条纹结构光三维重建

在近景三维重建领域,结构光技术可以说是应用最广泛的,尤其在工业领域。该技术目前具有高精度和无视弱纹理等优点,但复杂的室外环境还是会对该技术造成一定程度的干扰。目前用的比较多的结构光分别两大类:线结构光以及条纹结构光。接下来我先来简单介绍一下条纹结构光三维重建,事实上,条纹结构光的原理与双目立体匹配是非常相似的。...

AAAA202012的博客 1万+

C语言标准定义的32个关键字

C语言标准定义的32个关键字超级详细解析。

仅以此博客记录日常学习工作中所思所得,水平有限,难登大雅,万望海涵。 2492

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C语言---分支和循环语句(上)

C语言分支和循环语句(上)

分享记录学习的过程! 1084

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

c语言中语句作用,c语言中continue语句的作用是什么

前言继承是OOP设计中的重要概念。在C++语言中,派生类继承基类有三种继承方式:私有继承(private)、保护继承(protected)和公有继承(public)。一、继承规则继承是C++中的重要特性,派生2021-03-22 18:02:41大家有没有在项目中遇到过,将一些预定义的本地结构体转换为Json字符串后,发送到网络中的情形。那我猜想下大家常规的做法:写一个函数,传入结构体的指针,然后...

weixin_33911375的博客 215

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

《C语言动漫对话教程(入门篇)》

13万字《C语言动漫对话教程(入门篇)》

英雄哪里出来 4万+

C语言常见概念

每个 C 语⾔程序不管有多少⾏代码,都是从main函数开始执⾏的,main函数是程序的⼊⼝,main函数也被叫做主函数。main前⾯的int表⽰main函数执⾏结束的时候返回⼀个整型类型的值。所以在main函数的最后写return 0;正好前后呼应。main函数是程序的⼊⼝main函数有且仅有⼀个即使⼀个项⽬中有多个.c⽂件,但是只能有⼀个main函数(因为程序的⼊⼝只能有⼀个)第⼀次写代码,⼀些常⻅的错误总结:main 被写成了mian。

luoyurong__code的博客 1025

C 语言 printf格式控制详解

C 语言 printf格式控制详解 闲来无事,整理了一下C语言printf() 的格式控制语句。 PS:详细来源于网络。 printf的格式控制的完整格式: % - 0 m.n l或h 格式字符 下面对组成格式说明的各项加以说明: ...

dilan3700的博客 149

【C/C++】C/C++博客汇总

00. 目录 文章目录00. 目录01. C语言控制台相关文章02. Protocol Buffers相关文章 本博客不断更新,敬请关注… 01. C语言控制台相关文章 【C语言】控制台窗口图形界面编程(一)句柄和文本属性 【C语言】控制台窗口图形界面编程(二)窗口信息和填充缓冲区 【C语言】控制台窗口图形界面编程(三)窗口相关设置 【C语言】控制台窗口图形界面编程(四):文本输出 【C语言】控...

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 7394

C primer plus 第七章 C控制语句-分支和跳转 编程练习个人答案

// 第七章 C控制语句-分支和跳转.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include #include #define basic_wage_per_hour 1000 #define overtime_rate 1.5 #define under_300_tax_rate 0.

枯萎行者的博客 529

1.c语言概览

另有10个扩展符+=,-=,*=,/=,%=,>>=,

Oracle/MySQL 到 国产信创数据库|迁移 · 调优 · 信创替换 212

C语言大集合(持续更新)

C语言大集合内容

月仙儿的博客 2833

c语言中的34个运算符,C语言中的32个关键字9种控制语句34种运算符.doc

觉得对大家可能有帮助,传到群共享。C语言中的32个关键字auto :声明自动变量 一般不使用double :声明双精度变量或函数int: 声明整型变量或函数struct:声明结构体变量或函数break:跳出当前循环else :条件语句否定分支(与 if 连用)long :声明长整型变量或函数switch :用于开关语句case:开关语句分支enum :声明枚举类型register:声明积存器变量t...

weixin_31451617的博客 358

c语言基础09

类型说明符/数据类型 数组名[数组容量]数组的类型说明符由数组中的元素来决定,类型说明符也就是数据类型。元素是什么类型,数组就是什么类型。同一个数组中,所有元素的类型都是一致的。数组名也是标识符,数组名,可以理解为数据类型是数组的变量。数组容量也可以叫做常量表达式或者元素个数,其值必须为整型,可以包含常量和符号常量,但不能是变量类型:​ 代表了数组中元素的类型容量:​ 数组中能存储多少个元素,数组容量可以是一个常量、常量表达式、还可以是符号常量,但必须是整型。

云创413的博客 1025
上一篇: 2021-09-09 C语言 输入输出专题
下一篇: 2021-09-17 C语言 数组和字符串
Raymond430
博客等级 码龄7年 91粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值