C语言 第二章 数据类型、变量和输入函数

it2024-12-28  18

 

7.3、输入字符串7.4、限定输入范围7.5、限定输入范围取反

一、数据类型简介

在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。

类型转换:

类型存储大小值范围char1 字节-128 到 127 或 0 到 255unsigned char1 字节0 到 255signed char1 字节-128 到 127int2 或 4 字节-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647unsigned int2 或 4 字节0 到 65,535 或 0 到 4,294,967,295short2 字节-32,768 到 32,767unsigned short2 字节0 到 65,535long4 字节-2,147,483,648 到 2,147,483,647unsigned long4 字节0 到 4,294,967,295

1.2、获得数据类型的长度

#include "stdio.h" void main() { //sizeof用于获得数字类型的长度 //sizeof是一个关键字(32个) printf("char占用字节数:%d \n",sizeof(char)); printf("short占用字节数:%d \n",sizeof(short)); printf("int占用字节数:%d \n",sizeof(int)); printf("long占用字节数:%d \n",sizeof(long)); printf("float占用字节数:%d \n",sizeof(float)); printf("double占用字节数:%d \n",sizeof(double)); }

二、变量定义

是用数据类型在内存中开辟的空间。一个变量应该有一个名字,也就是我们程序员给该空间取的名──叫变量名。它在内存中占据一定的存储单元。变量定义必须放在变量使用之前,即先定义后使用,一般都放在函数体的开头部分。

变量:在程序运行过程中可以变化的量。

常量:在程序运行过程中不可以变化的量。

#include "stdio.h" void main() { int i=100; i++; //i=i+1 printf("i=%d \n",i); //101 i--; //i=i-1 printf("i=%d \n",i); //100 i+=100; //i=i+100 printf("i=%d \n",i); //200 i/=3; //i=200/3=66.666667=66 printf("i=%d \n",i); //66 i+7; //在内存中66+7完成运算,但值没有写回 printf("i=%d \n",i); //66 }

2.1、变量名的取名规则

第一个字符只能是字母或下划线( _ );

第一个字符的后而只能跟字母、数字和下划线( _ );

关键字(写上去会变色的那些单词)不能用作变量名;

区分大小写;

第一位(a-zA-Z_)后续(a-zA-Z_0-9)

请问下面那些是非法的,为什么?

1name_product_9527Doubleint_producT_producttotal

2.2、变量定义的多种形式

/* Note:Your choice is C IDE */ #include "stdio.h" void main() { //定义变量并赋值 int i=100; //先定义再赋值 float j; //j=99.5f; 错误,变量定义必须放在变量使用之前,即先定义后使用,一般都放在函数体的开头部分 //同时定义多个变量 char a,b,c; //同时定义多个变量并赋值 double x=1.5,y=1.6,z; j=99.5f; z=x+y; }

三、整型(int)

#include "stdio.h" void main() { int i; i++; //i=i+1 printf("i=%d \n",i); //101 i--; //i=i-1 printf("i=%d \n",i); //100 i+=100; //i=i+100 printf("i=%d \n",i); //200 i/=3; //i=200/3=66.666667=66 printf("i=%d \n",i); //66 i+7; //在内存中66+7完成运算,但值没有写回 printf("i=%d \n",i); //66 }

四、字符型(char)

五、单精度浮点型(float)

六、双精度浮点型(double)

七、输入scanf

#include "stdio.h" void main() { //判断年龄如果小于18岁则提示年轻真好,否则输出年龄 //定义变量 int age; //用户输入年龄 printf("请输入年龄:"); //从键盘输入,&表示取变量地址 scanf("%d",&age); //条件判断 if(age<18){ //如果条件成立 printf("年轻真好"); } else{ //如果条件不成立 //输出 printf("您的年龄是:%d",age); } }

scanf("格式控制",地址列表); “格式控制”的含义同printf函数;“地址列表”是由若干个地址组成的表列,可以是变量的地址,或字符串首地址

%f 单精度

%lf 双精度 

%c 从键盘接收一个字符%d 从键盘接收十进制整数%s 从键盘接收一个字符串,遇空格、制表 符或换行符表示接收完毕。%[] 从键盘接收一包含在括号内的字符,只 要遇到有一个不在其内的字符,便表 示接收完毕。

输入时如果遇到 空格 回车 Tab则表示结束

7.1、输入时指定分隔符

#include "stdio.h" void main() { int a,b,c; printf("请输入年-月-日:"); scanf("%d-%d-%d",&a,&b,&c); printf("%d年%d月%d日",a,b,c); }

7.2、清除缓冲

#include "stdio.h" void main() { char x,y,z; printf("输入:"); scanf("%c",&x); printf("输入:"); scanf("%c",&y); printf("输入:"); scanf("%c",&z); printf("%c,%c,%c",x,y,z); }

 

#include "stdio.h" void main() { char x,y,z; printf("输入:"); scanf("%c",&x); fflush(stdin); //清除缓冲 printf("输入:"); scanf("%c",&y); fflush(stdin); //清除缓冲 printf("输入:"); scanf("%c",&z); fflush(stdin); //清除缓冲 printf("%c,%c,%c",x,y,z); }

 

7.3、输入字符串

#include "stdio.h" void main() { char a[100]; //数组,char只能是单个字符 scanf("%s",a); //不要取地址 printf("%s",a); }

7.4、限定输入范围

#include "stdio.h" void main() { //限定输入范围 char a[100]; scanf("%[0123456789]s",a);//只能输入0-9,其它表示结束 printf("%s",a); }

 

7.5、限定输入范围取反

#include "stdio.h" void main() { char a[100]; scanf("%[^a]s",a); //^取反,如果是a则表示结束 //scanf("%[^\n]s",a); //如果是换行则结束,其它字符都可以 printf("%s",a); }

 

 练习:

#include "stdio.h" void main() { int nianling; //年龄 float fenshu; //分数 char aihao[30]; //爱好 printf("请输入年龄:"); scanf("%d",&nianling); printf("请输入分数:"); scanf("%f",&fenshu); printf("请输入爱好:"); scanf("%s",aihao); printf("您的年龄是%d,分数:%f,爱好:%s",nianling,fenshu,aihao); }

 

转载于:https://www.cnblogs.com/zzqwe/p/7598738.html

最新回复(0)