一、前言
这篇文章作为C语言基础知识点,介绍C语言常用的几个语句的用法、规则、使用案例。
介绍的语句如下:
if..else 判断语句
for循环语句
while循环语句
do..while循环语句
switch 语句
goto 语句
return 语句
break 语句
continue 语句
第二章介绍语法使用规则、使用案例,第三章列出了一些练习题,用于结合第二章介绍的语句完成知识点巩固。
二、知识点与案例代码
2.1 if语句语法规则、使用案例
if语句语法:
//形式1
if(<条件表达式>) //条件为真的时候执行
{
...执行的代码..
}
//形式2
if(<条件表达式>) //条件为真的时候执行
{
...执行的代码..
}
else //条件为假的时候执行 (else的语句块可以选择的,可以写也可以不写)
{
}
//形式3
if(<条件表达式>) //条件为真的时候执行
{
...执行的代码..
}
else if(<条件表达式>) //条件为假的时候执行 (else的语句块可以选择的,可以写也可以不写)
{
...执行的代码..
}
else if(<条件表达式>)
{
...执行的代码..
}
........
<条件表达式> 里可以写什么代码? 写的语句执行完必须返回具体的结果。
比如:12>34
比如: if(printf("12345"))
使用案例
#include
int main(int argc,char *argv[])
{
int a=100;
int b=20;
int c=30;
if(a>b)
{
printf("a>b\n");
}
if(a>b)printf("a>b\n");
//容易出错的地方
if(a==0) //if(a=0)
{
printf("a>b a>c\n");
}
//容易出错的地方
if(a&&b)//if(a&0)
{
printf("a>b a>c\n");
}
return 0;
}
/*
逗号、分号
逗号:间隔符号。 比如: int a,b,c,d;
! 逻辑非
&& 逻辑与 -- 并且
|| 逻辑或 --或者
& 按位与(3&1)、取地址(&a)
* 乘号(a*b) 、指针(*a)、 *(块注释)
*/
#include
int main(int argc,char *argv[])
{
int year;
printf("输入年份:");
scanf("%d",&year);
//判断平年和闰年 条件:能被4整除并且不能被100整除 条件2:能被400整除
if((year%4==0 && year%100!=0) || (year%400==0))
{
printf("闰年\n");
}
else
{
printf("平年\n");
}
//判断平年和闰年 条件:能被4整除并且不能被100整除 条件2:能被400整除
if(year%4==0 && year%100!=0)
{
printf("闰年\n");
}
else if(year%400==0)
{
printf("闰年\n");
}
else
{
printf("平年\n");
}
return 0;
}
2.2 while、do..while语句
//循环语句
while(<条件表达式>)
{
...执行的代码..
}
do
{
...执行的代码..
}while(<条件表达式>);
#include
int main(int argc,char *argv[])
{
int a=5;
int b=5;
//循环语句 a-- 、a=a-1、a-=1;
while(a--)
{
printf("a=%d\n",a);//4\3\2\1\0
}
//循环语句
do
{
printf("a=%d\n",b);//\5\4\3\2\1\0
}while(b--);
return 0;
}
2.3 for语句
#include
int main(int argc,char *argv[])
{
int a=0;
//写法1
for(<初始化语句>;<条件表达式>;<自增/自减>)
{
}
比如:
for(a=0;a<10;a++)
{
}
//写法2
for(;<条件表达式>;<自增/自减>)
{
}
比如:
for(;a<10;a++)
{
}
//写法3
for(;;) //条件永远为真
{
}
等价于
while(1)//条件永远为真
{
}
return 0;
}
#include
int main(int argc,char *argv[])
{
//打印99乘法口诀表
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
printf("%dx%d=%2d ",i,j,i*j);
}
printf("\n");
}
return 0;
}
/*
1x1=1
2x1=1 2x2=4....
3x1=1 3x2=6 3x3=9 .....
................
*/
2.4 break语句
作用: 跳出当前的一层循环,或者跳出switch语句。
#include
int main(int argc,char *argv[])
{
int i,j,cnt=1;
for(i=0;i<5;i++)
{
for(j=0;j<10;j++)
{
if(j==5)
{
break; //跳出当前一层循环
}
printf("cnt=%d\n",cnt++); //25
}
}
return 0;
}
2.5 goto跳转语句
可以在函数内设置标签,任意跳转。
#include
int main(int argc,char *argv[])
{
int i,j,cnt=1;
for(i=0;i<5;i++)
{
for(j=0;j<10;j++)
{
if(j==5)
{
goto AA; //跳转语句
}
printf("cnt=%d\n",cnt++); //5
}
}
AA:
printf("程序执行完毕.\n");
return 0;
}
2.6 continue语句
跳出本次循环,继续执行下一次新的循环。
#include
int main(int argc,char *argv[])
{
int i,j,cnt=1;
for(i=0;i<5;i++)
{
for(j=0;j<10;j++)
{
if(j==5)
{
continue; //跳出当前一次循环
}
printf("cnt=%d\n",cnt++); //
}
}
return 0;
}
2.7 switch 分支语句(C89标准和C99标准)
#include
int main(int argc,char *argv[])
{
int a;
scanf("%d",&a);
switch(a)
{
case 1:
printf("选择1.\n");
break;
case 2:
printf("选择2.\n");
break;
case 3:
printf("选择3.\n");
break;
case 4:
case 5:
case 6:
printf("选择4,5,6\n");
break;
default:
printf("选择默认值.\n");
break;
}
return 0;
}
三、练习题
3.1 输入整数,然后使用二进制方式输出(数据传输)
0x23; ---8次 00100011
#include
int main()
{
unsigned int a,i;
int flag=0;
printf("输入整数:");
scanf("%d",&a);
for(i=0;i<32;i++)
{
//if(a&0x1) //从低位开始判断
//if(a&0x80000000) //从高位开始判断
if(a&(1<<31)) //从高位开始判断
{
flag=1;
printf("%d",1);
}
else
{
if(flag)
{
printf("%d",0);
}
}
a<<=1; //把a的左边移动 (高位溢出、低位补0)
}
printf("\n");
return 0;
}
3.2 打印所有水仙花数。
所谓水仙花是指一个三位数,其各位数字的立方和等于该数
#include
int main()
{
int i;
int a, b, c;
for (i = 100; i <= 999; i++)
{
a = i / 100;
b = i % 100 / 10;
c = i % 10 / 1;
if ((a*a*a + b*b*b + c*c*c) == i)
{
printf("%d ", i);
}
}
return 0;
}
3.3 百元买百鸡
公鸡每只 5 元,母鸡每只 3 元,小鸡 3 只一元,问一百元买一百只鸡有几种买法。
#include
int main()
{
int m, g, x;
int m_max;
int g_max;
int x_max;
int q, cnt; //cnt=数量 q:钱
printf("公鸡每只 5 元,母鸡每只 3 元,小鸡 3 只一元\n");
printf("请输入要买鸡的数量:\n");
scanf("%d", &cnt);// 100 100
printf("请输入要买鸡的钱:\n");
scanf("%d", &q);// 100 100
/*1. 判断输入的数据是否合理*/
if (q>0 && cnt>0)
{
m_max = cnt / 3; // 母鸡 100 /3 =33
g_max = cnt / 5; // 公鸡 100 /5 =20
x_max = (cnt / 1) * 3; // 小鸡 100 /1*3 =300
for (g = 0; g;>
3.4 打印正三角形
#include
/*
1
121
12321
1234321
*/
int main()
{
int i, j;
int len;
scanf("%d", &len);
for (i = 1; i <= len; i++) //总行数
{
/*1. 打印空格*/
for (j = 1; j <= len - i; j++)
{
printf(" ");
}
/*2. 打印前面一半*/
for (j = 1; j <= i; j++)
{
printf("%d", j);
}
/*3. 打印后面一半*/
for (j = i - 1; j >= 1; j--)
{
printf("%d", j);
}
printf("\n");
}
return 0;
}
3.5 打印倒三角形
#include
int main()
{
int i, j;
int len;
scanf("%d", &len);
for (i = len; i >= 1; i--) //循环的总次数
{
/*1. 打印空格*/
for (j = len; j>i; j--)
{
printf(" ");
}
/*2. 打印前面部分*/
for (j = 1; j <= i; j++)
{
printf("%d", j);
}
/*3. 打印后半部分*/
for (j = i - 1; j >= 1; j--)
{
printf("%d", j);
}
printf("\n");
}
return 0;
}
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
C语言
+关注
关注
180文章
7591浏览量
135796 -
代码
+关注
关注
30文章
4719浏览量
68210
发布评论请先 登录
相关推荐
C语言的for循环语句的程序和电路图免费下载
1、在许多实际问题中,需要程序进行有规律的重复执行,这时可以用循环语句来实现。在c语言中。用来实现循环的语句有for语句,
发表于 08-20 17:31
•1次下载
while和if一起用的例子c语言
一、 在C语言中,while和if是两个非常常用的控制语句。while用于创建循环结构,使得程序可以重复执行一段代码块,而if则是用于条件判
c语言在while中嵌套if循环
C语言是一种广泛使用的面向过程编程语言,它提供了许多控制结构来帮助程序员实现复杂的逻辑和流程控制。其中,while循环和if语句是非常常见和
评论