基于Linux学习 C语言——基础 DAY6

一、输入输出(接DAY5)

1.1putchar(单字符输出)

#include<stdio.h>
int main(){
	//可以传字符常量
	putchar('M');
	putchar('\n');
	
	//也可以传ascii码
	putchar(65);
	putchar(10);  //换行符
	
	//也可以传保存字符ascii码的变量
	char value='B';
	putchar(value);
	putchar(10);
	
	//也可以传一个能计算出结果的表达式
	putchar('A'+4);
	putchar(3+7);
	
	//printf("%c",value);
	return 0;
}

1.2getchar(单字符输入)

#include <stdio.h>
int main()
{
char v1=getchar();
printf("v1=[%d][%c]\n",v1,v1);

//注意 连续多次调用getchar在终端获取字符时 回车也会被识别为字符
//这种对于我们没有用的字符   我们称之为 垃圾字符
getchar();//用来清理垃圾字符 吃掉回车

char v2=0;
v2=getchar();
printf("v2=[%d][%c]\n",v2,v2);
    
return 0;
}

二、运算符

2.1算术运算

表达式格式: 表达式1 运算符 表达式2

1+2 a+b (a+b)/3

表达式:常量、变量、表达式

运算符:算数运算、关系运算、逻辑运算、条件运算、赋值运算、逗号运算、位运算

2.2逻辑运算

格式: 表达式1 逻辑运算符 表达式2

说的是真假,0表示假,非0表示真,

2.3 关系运算

> >= < <= == !=

 2.4三目运算/条件运算

2.5 赋值运算

a+1 --->不改变a的值

a+=1 ---->改变a的值

a++ ---->改变a的值

 2.6逗号运算

int a=1,b=2;
int c=(a+b,a++,--b,++a,a/b);  // c=3 a=3 b=1

2.7 位运算

主要是二进制运算,运算需要转换为补码运算之后再从补码转回原码

& 按位与

1&1=1

1&0=0

0&1=0

0&0=0

有一个0,结果结果0

全部为1,结果为1

3&2=2

-3&2=0

| 按位或

1|1=1

1|0=1

0|1=1

0|0=0

有一个1,结果结果1

全部为0,结果为0

3|2=3

^ 异或

1^1=0

1^0=1

0^1=1

0^0=0

相同为0不同为1

3^2=1

~ 取反

~1=0

~0=1

非0结果为1

非1结果为0

~3=-4

左移一位表示乘以2

4

左边去掉,右边补0

>> 右移

右移一位表示除以2

-4>>2=-1

右边去掉,左边最高位如果是1则补1,如果是0则补0

2.8sizeof

        sizeof是计算字节的关键字,同时也是运算符,但不是函数!!!!

 2.9运算符优先级

三、三大控制结构

i) 单分支选择结构

 

如判断语句if...else...就是一个单支选择结构

格式:
    if(表达式)
    {
        C语句;
    }

ii)双分支选择结构

格式:
    if(表达式)
    {
        C语句1;
     }
     else
     {
         C语句2;     
     }

        如果表达式1没达成则进入else执行c语句2

        注意:else不能单独写,得和if成对

iii)多分支选择结构

多用于两个以上的判断条件

格式:
    if(表达式1)
    {
        C语句1;
    }
    else if(表达式2)
    {
        C语句2;    
    }
    .....
    else
    {
        C语句n;    
    }

 else if可以先n个,但else只能写一个,且不能单独写。

习题

1.任意输入两个数,请从小到大输出

#include<stdio.h>
int main(int argc, const char *argv[]) 
{

	int num1=0;
	int cha=0;
	int num2=0;
	scanf("%d",&num1);
	scanf(" %d",&num2);
	if(num1>num2){
		cha=num1;
		num1=num2;
		num2=cha;
		printf("%d %d\n",num1,num2);
	}else if(num1<num2){	
		printf("%d %d\n",num1,num2);
	}else{
		printf("输入错误");
	}
	return 0;
}

2.计算三个数的最大值

#include<stdio.h>
int main(int argc, const char *argv[])
{
	int a=0;
	int b=0;
	int c=0;
	scanf("%d %d %d",&a,&b,&c);
	if((a>b&&a>c)||(a>c&&a>b)){
		printf("max=%d\n",a);
	}else if((b>a&&b>c)||(b>c&&b>a)){
		printf("max=%d\n",b);
	}else if((c>a&&c>b)||(c>b&&c>a)){
		printf("max=%d\n",c);
	}else{
		printf("输入错误");
	}
	return 0;
}

3.输入一个字符, 如果是大写转换小写, 如果是小写转换大写, 如果是数字输出平方, 如果是特殊字符则直接输出

#include<stdio.h>
int main(int argc, const char *argv[])
{
	int a=getchar();
	if(a>64&&a<91){
		printf("%c\n",a+' ');
	}else if(a>96&&a<123){
		printf("%c\n",a-' ');	
	}else if(a>47&&a<58){	
			int b=(a-48)*(a-48);
			printf("%d\n",b);
	}else{
		printf("%c\n",a);	
	}
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值