C语言第三章:C语言和程序结构

➢ 表达式语句:由表达式末尾加上分号构成。
➢ 函数调用语句:由函数调用表达式加上分号构成。
➢ 空语句: ;
➢ 选择结构语句:if语句 switch语句
➢ 循环语句:for语句 while语句 do while语句
复合语句:用花括号{}将以上任意语句括起来构成一条复合语句。
C语言的程序结构
第一节: 选择结构
一、变量在使用的过程中易犯的错误
1)、变量为什么进行出初始化?因为会出现不确定的值
2)、初始化的一些值由你自己的实际情况区定。
二、程序的结构
1)、结构化程序是一个设计思想
2)、分类:顺序结构、分支结构、循环结构(do while ,while,for)
!!!!在这里增加一些关系表达式和逻辑表达式 的问题,以免出现不理解的地方:
特别要注意:C语言中是用非0表示逻辑真的,用0表示逻辑假的。
C语言有构造类型,没有逻辑类型。
关系运算符号:注意<=的写法,==和=的区别!(考试重点)
if只管后面一个语句,要管多个,请用大括号!
1)关系表达式:
a、表达式的数值只能为1(表示为真),或0(表示假)。
如 9>8这个关系表达式是真的,所以9>8这个表达式的数值就是1。
如 7<6这个关系表达式是假的,所以7<6这个表达式的数值就是0
句空语句会造成死循环。
二、do while 循环
1、格式:do{ 循环体 }while(条件);//直到型循环,先执行循环体,在进行判断。
2、do while注意点:注意{}和while后的分号‘;’
3、while是当型循环,do{}while();直到型循环
4、关于while循环和while循环的对比
1)、当循环控制条件第一次判断不为假的时候
while和do while循环体执行的次数相同、
2)、当循环控制条件第一次判断为假的时候
while执行次数是0次
do while 执行是1次
三、for循环 for(表达式1;表达式2;表达式3){语句}
1、不仅可以用于循环次数确定的情况而且可以用于循环次数不确定的情况。
2、 a、初始化语句只会被执行一次
b、当条件不满足的时候,循环结束
输出是有缓存区的。。
3、for循环的其他形式
3.1、省略格式
for(;i<5;i++)//省略表达式1
//省略表达式1 ,表达式3
for(;i<5;)
{
i++;//可以写在里面
}
//省略表达式1 ,表达式2,表达式3
for(;;)
{
if(i<5){
printf(“”);
i++;
}else{
break
;
}
}
注意:for()循环的一些格式注意运行的格式
4、for循环的嵌套 大部分用于打印图形
注意:外层控制行数,内层控制列数

简答题:三种循环结构中的条件是循环进行条件还是循环结束的条件?循环结构中break和continue语句的作用是什么?二者有何区别
答:break语句的用法
break通常用于循环语句和开关语句中,通常是结束当前的循环,break以后的语句也不执行了
continue ,结束本次循环,继续下次循环 可以用在循环,可以用来加速循环 。
continue可以加速循环
2) break 和 continue的差别
记忆方法:
break:是打破的意思,(破了整个循环)所以看见break就退出整个一层循环。
continue: 是继续的意思,(继续循环运算),但是要结束本次循环,就是循环体内剩下的语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环。

1)三种循环结构:
a)for() ; while(); do- while()三种。
b)for循环当中必须是两个分号,千万不要忘记。
c)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。
d) do-while()循环的最后一个while();的分号一定不能够丢。(当心上机改错),do-while循环是至少执行一次循环。
3)嵌套循环
就是有循环里面还有循环,这种比较复杂,要一层一层一步一步耐心的计算,一般记住两层是处理二维数组的。
4) while((c=getchar())!=’\n’) 和
while(c=getchar() !=’\n’)的差别
先看a = 3 != 2 和 (a=3)!=2 的区别:
(!=号的级别高于=号 所以第一个先计算 3!=2) 第一个a的数值是得到的1;第二个a的数值是3。
考试注意点: 括号在这里的重要性。
5)每行输出五个的写法:
for(i=0;i<=100;i++)
{ printf(“%d”,i);
if((i+1)%5==0)printf(“\n”); 如果i是从1开始的话,就是if(i%5==0)printf(“\n”);
}
6)如何整除一个数: i%5==0表示整除5
I%2==0表示整除2,同时表示是偶数!
7)输入123,输出321逆序输出数据
int i=123;
while(i!=0)
{
printf(“%d”,i%10);
i=i/10;}
8)for只管后面一个语句:
int i=3;
for(i=3;i<6;i++):
printf(“#”): 请问最终打印几个#号?答案为一个!
9)不停的输入,直到输入# 停止输入! 不停的输入,直到输入停止输入!  
    while( (x=getchar())!=’ # ’ )                 while( (x=getchar())!=’
’ )
不停的输入,直到遇到?停止输入!
while( (x=getchar())!=’ ? ’) 解说:一定要注意这种给出了条件,然后如何去写的方法!
10)for循环和switch语句的和在一起考题!
思考题:

多次出现的考题:
int k=1 int k=1;
while(- -k); while(k- -);
printf(“%d”,k); printf(“%d”,k);
结果为0 结果为-1

三种死循环的方式:
while(1) { }
一些程序员更喜欢如下方案:
for(;;) { }
这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出这个作为方案,我将用这个作为一个机会去探究他们这样做的
基本原理。如果他们的基本答案是:“我被教着这样做,但从没有想到过为什么。”这会给我留下一个坏印象。
第三个方案是用 goto
Loop:

goto Loop;

b、考试最容易错的:就是int x=1,y=0,z=2;
                          x<y<z是真还是假?带入为1<0<2,从数学的角度出发肯定是
错的,但是如果是C语言那么就是正确的!因为要1<0为假得到0,表达式就变成
了0<2那么运算结果就是1,称为了真的了!
   c、等号和赋值的区别!一定记住“=”就是赋值,“= =”才是等号。虽然很多人可以背
诵,但我依然要大家一定好好记住,否则,做错了,我一定会强烈的鄙视你!
2)逻辑表达式:
   核心:表达式的数值只能为1(表示为真),或0(表示假)。
a)  共有&&   ||   ! 三种逻辑运算符号。
b)  !>&&>||  优先的级别。
c)  注意短路现象。考试比较喜欢考到。 
d)  表示 x 小于0大于10的方法。
0<x<10是不行的(一定记住)。是先计算0<x 得到的结果为1或则0;再用0,或110比较得到的总是真(为1)。所以一定要用 (0<x)&&(x<10)表示比0大比10小。



三、if()分支结构
    1)、if 的几种形式: 
            a、if(关系表达式){}
            b、if(表达式){}else{}  //表达式为真执行if{} ,否则执行else{}
            c、if(){}else{}的嵌套问题
            d、if(){}  if() {}
    2)、if语句的高级使用方法
        if()
        {
}else if(){

}else if(){

}else{}
    3if语句的注意点
        a、if(条件)可以直接写分号“;” ,其实if什么作用也没有
b、如果if之后的代码块,只有一句话,则可以省略大括号
            if(a>4printf(“条件成立我就执行,我是唯一的”);
        c、永真式,永假式
                if1){}//永真式。。大括号的内容永远执行
                if0){}//永假式,不执行
        d、if语句结合return语句
                if()
return  0;//任一函数中如果没有大括号,return之后的语句不会执行
        5if作用域的问题
        if(a==3){
    int  num=10;
}
//出了if就不会有值
    6、省略大括号的分析,开发中写if就要写上它对应的大括号
    7、随机数的函数:头文件 
1)、#include <stdlib.h>  int number=arc4random_uniform (n); //n是一个正整数 
2)、#include <stdlib.h>  int number=arc4random%10;//就是一个0-9的整数
经典考题:结合上面四种if语句题型做题,答错了,请自行了断!预备,开始!
int  a=1,b=0if(!a)b++;
else if(a= =0if(a)b+=2else b+=3;请问b的值是多少?
如果没有看懂题目,你千万不要自行了断,这样看得懂不会做的人才会有理由的活着。
 正确的是b为3int  a=1,b=0if(!a)b++;    是假的不执行
else if(a= =0)    是假的执行
if(a)b+=2; 属于else if的嵌套if语句,不执行。
else b+=3if-else-if语句没有一个正确的,就执行else的语句!

4)三目运算符:
     表达式1 ?表达式2 :表达式3
a、考试口诀:真前假后。
   b、注意是当表达式1的数值是非0时,才采用表达式2的数值做为整个运算结果,当表达式1的数值为0时,就用表达式3的数值做为整个的结果。
   c、int a=1,b=2,c=3,d=4,e=5;
k=a>b?c:d>e?d:e;求k的数值时多少?  答案为5


四、switch语句的基本格式
1switch开关语句:
  结构形式:switch (){
                    case 常量表达式:
break;
case 常量:
break;

default :
 语句;
}
2、什么是case穿透
  答:某个case语句执行完成后,并没有结束,而直接向下执行其他的case语句,这种现象称为case穿透。
3、如何防止case穿透 
  答:使用break关键字退出switch
4default: 如果不放在最后面,那么它放在前面就要加break,不然就会出现穿透问题,比如说:defaultprintf();  case  1: 出现问题 

**ifswitch的转换,有的时间可以转,但是有一定的限制
1)  分支比较多的而且无法穷尽或进行大量的列举最好用if
2)  如果分支不是很多,但是使用if代码量大可以使用switch
3)  一般的情况就是ifswitch的嵌套使用
if是判断为主,switch是以选择为主,以实际情况为主哦
5switch的使用注意事项
1)、switch(表达式)的类型:必须是整型或者可以转换为整型的值
一定注意不可以是浮点型 float double 
a、  可以是一个整型的变量
b、  可以放一个整型常量
c、  可以放一个返回值是整型的表达式,也可以是赋值表达式
d、  还可以放可以转换为int类型的表达式,‘a’ 也就是字符
6case语句的后面可以有多行语句,可以加括号也可以省略括号,break是结束switch语句,中断的意思。看情况加break7case语句的注意事项 
    case 语句格式:case 常量表达式:  空格和冒号不可以省略
1case 10break//必须加空格
    2、可以是常量
    3default 语句的位置可以任意放,但是注意break的使用
    4case的穿透同样的适用于default
    5、如果default语句放到最后可以不加break
    6、如果不放在最后一定要加上break7case语句后面不能是实数(小数)
    8case默认的第一句话默认不能定义变量,如果第一句话非要定义,应该加上大括号;第二句是可以放变量的定义的。
    9、编译器的bug ,这是一个Xcode的问题,自己注意

作业题:
0、使用ifswitch分别实现小于 60是E级, >60 > 70 是D级。。。。


第二节  循环结构
一 、while循环
1、  循环结构的条件:循环控制条件、循环体,结束循环语句(让循环成为假);
2while循环的格式
while(条件)
{
    循环体语句;
    结束循环的语句://一般是值得变化
}
3、  做循环题的方法:可以使用printf输出变化的值。还是进行debug调试也可以看出变量变化的值。
4while循环的陷进-------→死循环
5while的使用情况
6、  随机数的问题: arc4random_unform(n-m+1)+m   生成m-n范围的随机数  如  10-50之内 arc4random_unform(41)+10
7、  当一个变量与一个常量进行== !=的时候 ,通常把常量写在前面,while3==num){}
8、  如果while只有一句话的话可以省略大括号。While语
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 头歌c语言顺序结构程序设计第一关涉及到使用C语言进行编程,其要求我们设计一个程序,让用户输入两个整数,然后计算它们的和并输出结果。这个题目看上去非常简单,但是对于刚接触编程的人来说也是一个不错的练手题目。 为了完成这个题目,我们需要先学会C语言的基本输入输出函数。在本题,我们可以使用scanf函数来获取用户输入的两个整数,使用printf函数将计算出的结果打印出来。同时,我们需要了解如何进行基本的加法运算。 但是,为了让程序更具结构化和可读性,我们还需要考虑一些细节,比如如何给变量取名、如何采用恰当的缩进和注释等等。我们还可以使用一些简单的技巧,比如在代码前面添加头文件、定义常量等等,来让整个程序看起来更规范、更好维护。 当我们完成这个程序时,我们会发现它在功能上非常简洁明了,但是它也让我们对C语言基础语法有了更深入的理解和实践。实际上,这种从简单入手的方法也是学习编程最好的方式之一,因为它可以帮助我们尽快开始编程,增强自己的自信心和兴趣,从而更好地掌握编程技能。 ### 回答2: 头歌c语言顺序结构程序设计第一关,主要考察学生对C语言编程基础和顺序结构的掌握能力,让学生能够编写出简单的C语言程序。 在这个关卡,要求学生按照题目要求,通过C语言顺序结构编写程序,实现两个数的加减乘除运算。学生需要定义两个变量用于存储输入的两个数值,然后根据运算符的不同,分别进行加减乘除的运算,最终输出运算结果。此过程,学生需要注意数据类型转换的问题,以及需要对除数为0的情况进行特殊处理。 此关卡虽然简单,但对于学生来说也是一个很好的练手机会,通过编写简单的程序,提高了学生编程的思维能力和代码的实现能力,为以后更高深的程序设计打下基础。同时,此关卡也鼓励学生探索更多丰富多彩的程序设计内容,将所学知识发挥到极致,提高自身的综合素质。 ### 回答3: 头歌C语言顺序结构程序设计第一关是一道通过编写C语言程序来实现简单输出功能的练习。在开始编程之前,首先需要了解C语言的基本语法以及顺序结构C语言是一种广泛应用的编程语言,具有灵活、高效、可移植等优点。在编写C语言程序时,需要使用各种数据类型、运算符、控制结构等基本概念。其,顺序结构是一种简单的程序控制结构,指代码会按照事先确定的顺序依次执行。 在头歌C语言顺序结构程序设计第一关,我们需要按照要求定义所需输出的变量类型、名称,并利用C语言的printf函数将变量的值输出到控制台上。具体步骤如下: 首先,我们需要在程序的开始部分定义所需输出的变量类型,使用C语言的关键字“int”“char”等来定义。例如,定义一个输出整数的变量可以使用“int num”的形式。 其次,我们需要为所需输出的变量赋值,使用“=”赋值符号将具体数值赋给定义好的变量。例如,“num = 123”。 然后,我们需要使用printf函数来将变量的值输出到控制台上。该函数的语法形式为:“printf(“输出格式字符串”, 参数1, 参数2, …)”。其,输出格式字符串是指输出的格式,如“%d”表示输出整数,“%s”表示输出字符串等。其余的参数即为需要输出的变量名,需要与格式字符串对应。 最后,在程序的结尾部分我们需要加上return 0语句来结束程序。这条语句通常在main函数的最后面,函数返回值为0表示程序正常结束。 总之,头歌C语言顺序结构程序设计第一关是一项简单的程序练习,需要我们掌握C语言的基本语法和顺序结构的使用,通过编写程序实现简单的输出功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值