基本数据类型
练习:
编写程序测试数据类型所占字节数:
short
int
long
float
double
char
void
如图为练习代码与结果:
1 #include <stdio.h>
2
3 int main(void)
4 {
5 printf("short所占字节长度为:%ld\n",sizeof(short));
6 printf("int所占字节长度为:%ld\n",sizeof(int));
7 printf("long所占字节长度为:%ld\n",sizeof(long));
8 printf("float所占字节长度为:%ld\n",sizeof(float));
9 printf("double所占字节长度为:%ld\n",sizeof(double));
10 printf("char所占字节长度为:%ld\n",sizeof(char));
11 printf("void所占字节长度为:%ld\n",sizeof(void));
12
13 return 0;
14 }
运行结果:
练习
要将“China”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母“A”后面第4个字母是“E”,用“E”代替“A”因此,“China”应译为"Glmre"请编一程序,用赋初值的方法使cl、c2、c3、C4、c5这5个变量的值分别为C’“h”i”n'a’,经过运算,使cl、c2、c3、c4、c5分别变为‘G’'l''m''r''e',并输出。
程序和运行结果如下图:
1 #include <stdio.h>
2
3 int main(void)
4 {
5 char c1 = 'C';
6 char c2 = 'h';
7 char c3 = 'i';
8 char c4 = 'n';
9 char c5 = 'a';
10
11 c1 = c1 + 4;
12 c2 = c2 + 4;
13 c3 = c3 + 4;
14 c4 = c4 + 4;
15 c5 = c5 + 4;
16
17 printf("翻译密码为:%c%c%c%c%c\n",c1,c2,c3,c4,c5);
18
19 return 0;
20 }
常量和变量及C语言常用的输入输出函数
"ab\0"所占字节运行结果:
1 #include <stdio.h>
2
3 int main(void)
4 {
5
6 printf("所占字节长度为:%ld\n",sizeof("ab\0"));
7
8 return 0;
9 }
"ab\\\123ab"所占字节运行结果:
1 #include <stdio.h>
2
3 int main(void)
4 {
5
6 printf("所占字节长度为:%ld\n",sizeof("ab\\\123ab"));
7
8 return 0;
9 }
#define N 50
宏只是代码的替换,中间不进行任何数据计算的操作 如下图其中N=50,M=N+N,若宏代码中间进行了操作则运行结果因该为10000,而运行结果为2600说明中间没有进行操作,运行结果是由50+50*50+50得来
1 #include <stdio.h>
2 #define N 50
3 #define M N + N
4
5 int main(void)
6 {
7 int num = 0;
8 num = M * M;
9
10 printf("num = %d\n",num);
11
12 return 0;
13 }
练习:
定义两个变量可以是整形或者浮点数类型,对这两个变量赋值,
并计算这两个数四则运算的结果并打印在终端
以整型为列实现方法如下:
1 #include <stdio.h>
2
3 int main(void)
4 {
5 int a = 0;
6 int b = 0;
7
8 printf("请输入两个数:");
9 scanf("%d%d",&a,&b);
10
11 printf("和为:%d\n减为:%d\n乘为:%d\n除为:%d\n",a + b,a - b,a * b,a / b);
12
13 return 0;
14 }
练习:定义三个变量,并对变量赋值,
通过三目运算符获得3个数中的最大值并打印
1 #include <stdio.h>
2
3 int main(void)
4 {
5 int a = 0;
6 int b = 0;
7 int c = 0;
8 int max = 0;
9 int N = 0;
10
11 printf("请输入三个数:");
12 scanf("%d%d%d",&a,&b,&c);
13
14 max = a > b ? a : b;
15 max = max > c ? max : c ;
16
17 printf("最大值为:%d\n",max);
18
19 return 0;
20 }
sizeof运算符
sizeof (数据类型/变量名) 获得数据类型/变量在内存中所占的字节数
实现方法如下
1 #include <stdio.h>
2
3 int main(void)
4 {
5 printf("short所占字节长度为:%ld\n",sizeof(short));
6 printf("int所占字节长度为:%ld\n",sizeof(int));
7 printf("long所占字节长度为:%ld\n",sizeof(long));
8 printf("float所占字节长度为:%ld\n",sizeof(float));
9 printf("double所占字节长度为:%ld\n",sizeof(double));
10 printf("char所占字节长度为:%ld\n",sizeof(char));
11 printf("void所占字节长度为:%ld\n",sizeof(void));
12
13 return 0;
14 }
练习:
利用putchar在屏幕上打印 Hello World!
下图为用ASCII码的方法完成的还可直接输入字符打出
1 #include <stdio.h>
2
3 int main(void)
4 {
5 putchar(72);
6 putchar(101);
7 putchar(108);
8 putchar(108);
9 putchar(111);
10 putchar(32);
11 putchar(87);
12 putchar(111);
13 putchar(114);
14 putchar(108);
15 putchar(100);
16 putchar(0x21);
17 putchar('\n');
18
19 return 0;
20 }
2.getchar
从终端接收一个字符 并用Putchar输出:
1 #include <stdio.h>
2
3 int main(void)
4 {
5 char ch = 0;
6
7 ch = getchar();
8
9 printf("%c\n",ch);
10
11 return 0;
12 }
练习:
1.定义一个圆的半径,并赋初值,计算圆的周长和面积完成打印
1 #include <stdio.h>
2 #define PI 3.1415926
3
4 int main(void)
5 {
6 double r = 0;
7 double l = 0;
8 double s = 0;
9
10 printf("请输入圆的半径:");
11 scanf("%lf",&r);
12
13 l = PI * 2 * r;
14 s = PI * r * r;
15
16 printf("圆的周长为:%lf\n 圆的面积为:%lf\n",l,s);
17
18 return 0;
19 }
2.利用putchar和getchar实现从终端接收一个小写字母,转换成其对应的大写形式输出
1 #include <stdio.h>
2
3 int main(void)
4 {
5 char ch = 0;
6
7 printf("请输入一个小写字母:");
8 ch = getchar();
9
10 ch -= 32;
11
12 putchar(ch);
13 putchar('\n');
14
15 return 0;
16 }
3.定义两个整形变量并对变量赋初值(初值为2位数),要求将两个数合并成一个新数并打印
新数的千位是第二个数的十位
新数的百位是第一个数的十位
新数的十位是第一个数的个位
新数的个位是第二个数的个位
1 #include <stdio.h>
2
3 int main(void)
4 {
5 int num1 = 12;
6 int num2 = 34;
7 int a = 0;
8 int b = 0;
9 int c = 0;
10 int d = 0;
11 int newnum = 0;
12
13 a = num2 / 10 * 1000;
14 b = num1 / 10 * 100;
15 c = num1 % 10 * 10;
16 d = num2 % 10 * 1;
17 newnum = a + b + c + d;
18
19 printf("newnum = %d\n",newnum);
20
21 return 0;
22 }