您的位置:首页 > 编程语言 > C语言/C++

3-iOS开发 C语言基础教程 选择分支

2014-08-14 15:38 323 查看
1:输入输出的作用

输入的作用:将键盘输入的数据取出来保存

内存中变量里

输出的作用:将内存中变量里保存的数据

取出来输出到终端上

2:格式化输入输出函数

格式化输出:printf

格式化输入:scanf

3:格式化输出函数

数据类型

基本数据类型

整型

字符型(char)

char a;scanf(“%c”, &a);printf(“%c\n”, a);

短整型(short)

short b;scanf(“%hd”, &b);printf(“%hd\n”, b);

整型(int)

int c;scanf(“%d”, &c);printf(“%d\n”, c);

长整型(long)

long d;scanf(“%ld”, &d);printf(“%ld\n”, d);

浮点型

单精度(float)

float e;scanf(“%f”, &e);printf(“%f\n”, e);

双精度(double)

double f;scanf(“%lf”, &f);printf(“%lf\n”, e);

派生数据类型

枚举



格式化输出函数:printf

格式:printf(格式控制, 输出列表);

作用:实现输出功能

注:格式控制要输出列表一一对应

练习:每种基本类型定义出一个变量,

并用printf输出该变量的值

#include <stdio.h>

int main(int argc, char *argv[])

{

//整型

char a = 'A';

short b = 1;

int c = 2;

long d = 3;

//浮点型

float e = 1.1;

double f = 3.1;

#if 0

printf("a = %c\n", a);

printf("b = %hd\n", b);

printf("c = %d\n", c);

printf("d = %ld\n", d);

printf("e = %f\n", e);

printf("f = %lf\n", f);

#endif

printf("a = %c\nb = %hd\nc = %d\nd = %ld\ne = %f\nf = %lf\n", a, b, c, d, e, f);

return 0;

}

4:格式化输入函数

格式化输入函数:scanf

格式:scanf(格式控制,地址列表);

作用:实现输入功能

注:格式控制和输入列表要一一对应

练习:用scanf对变量进行输入,

并用printf输出

#include <stdio.h>

int main(int argc, char *argv[])

{

//整型

char a = 'A';

short b = 1;

int c = 2;

long d = 3;

//浮点型

float e = 1.1;

double f = 3.1;

#if 0

scanf("%c", &a);

scanf("%hd", &b);

scanf("%d", &c);

scanf("%ld", &d);

scanf("%f", &e);

scanf("%lf", &f);

printf("a = %c\n", a);

printf("b = %hd\n", b);

printf("c = %d\n", c);

printf("d = %ld\n", d);

printf("e = %f\n", e);

printf("f = %lf\n", f);

#endif

scanf("%c%hd%d%ld%f%lf", &a, &b, &c, &d, &e, &f);

printf("a = %c\nb = %hd\nc = %d\nd = %ld\ne = %f\nf = %lf\n", a, b, c, d, e, f);

return 0;

}

5:格式化输入输出的过程

格式化输入:键盘输入的数据——>缓冲区——>scanf——>内存(变量)

格式化输出:内存(变量中的数据)——>printf——>缓冲区———>终 端上

Pasted Graphic.pdf ¬

6:单个字符的输入输出

单个字符的输入:getchar

单个字符的输出:putchar

7:单个字符的输入

函数:getchar()

作用:getchar会从终端上获取一个字符,如果你需要这个字符时

需要在程序中用一个变量来保存getchar的返回值

例子:

char ch;

ch = getchar();

8:单个字符的输出

函数:putchar(字符);//字符可以是字符常量也可以是字符变量

作用:将字符输出到终端上

例子:

1:char ch = ‘A’;putchar(ch);

2:putchar(‘H’);

课堂练习:

例子:

char ch;

ch = getchar();

例子:

1:char ch = ‘A’;putchar(ch);

2:putchar(‘H’);

1:用getchar输入boy,并用putchar输出

#include <stdio.h>

int main(int argc, char *argv[])

{

putchar(getchar());

putchar(getchar());

putchar(getchar());

putchar('\n');

return 0;

}

2:从键盘输入一个大写字母,输出与其对应的小写 字母。

#include <stdio.h>

int main(int argc, char *argv[])

{

putchar(getchar()+32);

putchar('\n');

return 0;

}

3:编程序,用getchar函数读入两个字符c1和c2, 然后分别用putchar函数和printf函数输出这两个字 符。

思考下面的问题:

1:变量c1和c2应定义成字符型还是整型?或二者皆可?

2:要求输出c1和c2的ASCII码,应如何处理?用putchar函数还是 printf函数

3:整型变量与字符型变量是否在任何情况下都可以相互替代?

如:char c1,c3;与int c1,c2是否无条件的等价?

9:c语言中的程序结构

顺序

选择

循环

10:为什么要使用分支?分支的要素?

结婚对象

1:经济适用男 不用干家务 2:高大帅气男 犯花痴

3:成熟富有男 刷卡

4:都没看上 孤独终老

为什么使用分支:当程序面临选择的时候,并且每种选择下会

对应不同的操作

分支的要素:

1:面临选择 ——>()

2:该选择下的操作 ——>{}

if(选择){

操作

}

11:常见分支的种类

1:if构成的分支

1:if单分支

2:if-else

3:if-else if

4:if-else的嵌套

2:switch构成

12:if构成的分支

1:if单分支

格式:if (表达式){

语句1;

语句2;

……

语句n;

}

表达式:一般是关系表达式(>,>=,<,<=,==,!=)

或逻辑表达式(&&,||,!)

执行过程:

当程序执行到if的时候,首先判断if后面()小括号里表达式

的值是否为真(不为0),如果为真执行表达式后面大括号{}

里面的操作,如果为假(0),则跳出if执行后续的语句

例子:

int a = 0;

scanf(“%d”, &a);

if (a > 5){

printf(“a = %d\n”, a);

}

c程序中的零:

1:数值0

2:字符的结束标志’\0’

3:NULL NULL—>(void *)0

练习:

1:输入两个不等数,输出较大的数。

#include <stdio.h>

int main(int argc, char *argv[])

{

int a = 0;

int b = 0;

scanf("%d%d", &a, &b);//格式化输入

if (a > b){//if单分支

printf("a = %d\n", a);

}

if (b > a){

printf("b = %d\n", b);

}

return 0;

}

2:输入三个不等整数,输出其中值最大数和最小数

#include <stdio.h>

int main(int argc, char *argv[])

{

int a = 0;

int b = 0;

int c = 0;

scanf("%d%d%d", &a, &b, &c);

//最大的数

if ((a>b) && (a>c)){//a最大

printf("a = %d\n", a);

}

if ((b>a) && (b>c)){//b最大

printf("b = %d\n", b);

}

if ((c>a) && (c>b)){//c最大

printf("c = %d\n", c);

}

return 0;

}

3:输入两个不等数,按从小到大顺序输出

#include <stdio.h>

int main(int argc, char *argv[])

{

int a = 0;

int b = 0;

int tmp = 0;

scanf("%d%d", &a, &b);

if (a > b){//if单分支

tmp = a;//交换

a = b;

b = tmp;

}

printf("a = %d\n", a);

printf("b = %d\n", b);

return 0;

}

4:对三个数排序

#include <stdio.h>

int main(int argc, char *argv[])

{

int a = 0;

int b = 0;

int c = 0;

int tmp = 0;

scanf("%d", &a);

scanf("%d", &b);

scanf("%d", &c);

if (a > b){//if单分支

tmp = a;//交换

a = b;

b = tmp;

}

if (a > c){

tmp = a;//交换

a = c;

c = tmp;

}

if (b > c){

tmp = b;//交换

b = c;

c = tmp;

}

printf("a = %d\n", a);

printf("b = %d\n", b);

printf("c = %d\n", c);

return 0;

}

2:if-else

格式:if(表达式){

语句1;

语句2;

……

语句n;

}

else{

语句1;

语句2;

……

语句n;

}

表达式:一般是关系表达式或逻辑表达式

执行过程:当程序执行到if时,首先判断表达式的值是否

为真(非0),如果为真,则执行if后面大括号{}里面的操作,

如果为假,则执行else后面大括号{}里面的操作

例子:

int a = 0;

scanf(“%d”, &a);

if (a > 5){

printf(“a = %d\n”, a);

}

else {

printf(“a = %d\n”, ++a);

}

CocoaLigature1

练习:

1:输入一个数,输出这个数的绝对值

#include <stdio.h>

int main(int argc, char *argv[])

{

int a = 0;

scanf("%d", &a);

if (a > 0){//if-else

printf("a = %d\n", a);

}

else {

printf("a = %d\n", -a);

}

return 0;

}

2:输入一个字符,判断是否为大写字母,如果是,将它转换成小写字母后 输出,如果不是,原样输出

#include <stdio.h>

int main(int argc, char *argv[])

{

char ch = 0;

ch = getchar();

if ((ch >= 'A') && (ch <= 'Z')){//if-else

printf("ch = %c\n", ch+32);

}

else {

printf("ch = %c\n", ch);

}

return 0;

}

3:输入一个数,判断这个数能否同时被3和5整除,可以输出yes不可以输出no

#include <stdio.h>

int main(int argc, char *argv[])

{

int n = 0;

scanf("%d", &n);

if ((n%3==0)&&(n%5==0)){//if-else

printf("Yes\n");

}

else {

printf("No\n");

}

return 0;

}

4:输入两个整数,打印两数之差的绝对值。

#include <stdio.h>

int main(int argc, char *argv[])

{

int a = 0;

int b = 0;

scanf("%d", &a);

scanf("%d", &b);

if (a > b){

printf("a - b = %d\n", a - b);

}

else {

printf("b - a = %d\n", b - a);

}

return 0;

}

5:写一个程序,判断某一年是否为闰年

#include <stdio.h>

int main(int argc, char *argv[])

{

int year = 0;

scanf("%d", &year);

if (((year%4==0)&&(year%100!=0))||(year%400==0)){

printf("Yes\n");

}

else {

printf("No\n");

}

return 0;

}

3:if-else if

格式:

if (表达式1){

语句1;

语句2;

……

语句n;

}

else if(表达式2){

语句1;

语句2;

……

语句n;

}

else if(表达式3){

语句1;

语句2;

……

语句n;

}

……

else if(表达式n){

语句1;

语句2;

……

语句n;

}

else{ //可有可无

语句1;

语句2;

……

语句n;

}

表达式:一般是关系表达式或逻辑表达式

执行过程:当程序执行到if时,首先判断if后

面小括号()里面的表达式是否为真,如果为真

则执行if后面大括号{}里面的操作,如果表达式

值为假,判断elseif后面小括号里面的表达式,

依此类推

课堂练习:

3:给出一个百分制成绩,要求输出成绩等 级’A’、’B’、’C’、’D’、’E’。90分以上输出’A’,80~ 89分输出’B’,70~79分输出’C’,60~69分输出’D’,60分以下 输出’E’

#include <stdio.h>

int main(int argc, char *argv[])

{

int score = 0;

scanf("%d", &score);

if (score >= 90){

printf("A\n");

}

else if ((score>=80)&&(score<90)){

printf("B\n");

}

else if ((score>=70)&&(score<80)){

printf("C\n");

}

else if ((score>=60)&&(score<70)){

printf("D\n");

}

else {

printf("E\n");

}

return 0;

}

4:输入两个整数,打印出它们的大小关系

#include <stdio.h>

int main(int argc, char *argv[])

{

int a = 0;

int b = 0;

scanf("%d", &a);

scanf("%d", &b);

if (a > b){

printf("a > b\n");

}

else if(a == b){

printf("a == b\n");

}

else {

printf("a < b\n");

}

return 0;

}

5:输入三个不等整数,输出最大的数。(分析if和if-else if的执行过程的 区别)

#include <stdio.h>

int main(int argc, char *argv[])

{

int a = 0;

int b = 0;

int c = 0;

scanf("%d", &a);

scanf("%d", &b);

scanf("%d", &c);

if ((a>b) && (a>c)){

printf("a = %d\n", a);

}

else if ((b>a) && (b>c)){

printf("b = %d\n", b);

}

else {

printf("c = %d\n", c);

}

return 0;

}

4:if-else的嵌套

if(表达式1){

if(表达式1.1){

CocoaLigature1 语句1;

语句2;

……

语句n;CocoaLigature0

}

else{

CocoaLigature1 语句1;

语句2;

……

语句n;CocoaLigature0

}

}

else{

if(表达式2.1){

CocoaLigature1 语句1;

语句2;

……

语句n;CocoaLigature0

}

else{

CocoaLigature1 语句1;

语句2;

……

语句n;CocoaLigature0

}

}

13:switch构成的分支

格式:

switch(常量表达式){

case 常量1:语句1;break;

case 常量2:语句2;break;

case 常量3:语句3;break;

case 常量4:语句4;break;

…….

case 常量n:语句n;break;

default:语句n+1;//可有可无

}

执行过程:

当程序运行到switch时,首先计算常量表达式的值,接着进入switch后面的大括号{}中,将常量表达式的值和case后面的常量进行匹配,匹配成功,执行case后面的语句;

练习:

1:编写一程序实现如下功能:输入1、2、3、4、5、6、7(分别对应星 期一至星期日)中的任何一个数,便能 输出与之对应的英文名称。如输入 1,则输出Monday。

#include <stdio.h>

int main(int argc, char *argv[])

{

int day = 0;

scanf("%d", &day);

switch(day){

case 1:printf("Monday\n");break;

case 2:printf("星期二\n");break;

case 3:printf("星期三\n");break;

case 4:printf("星期四\n");break;

case 5:printf("Friday\n");break;

case 6:printf("星期六\n");break;

case 7:printf("sunday\n");break;

default:printf("input error\n");

}

return 0;

}

2:输入一个月数,然后输出对应月份有多少天(不考虑闰年),将天数 输 出,注意输入使用scanf输入
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: