C语言作业

6b5aa564189e4055b43a6e7875d5536d.jpg

第一章:

一些重要知识点总结:

1.C语言规定:标识符只能由字母数字和下划线三种且第一个字符必须为字母/下划线

2.一个函数名后面必须跟一对圆括号,括号内写函数的参数名及其类型,如果函数没有参数,可以在括号中写void,也可以是空括号。

第二章:

都是些例题,就不做总结了

第三章:   顺序结构

1.实型常量:

指数形式:规定字母E/e代表以10为底的指数(但e/E之必须有数字,且e/E之必须为整数

2.字符常量:

①普通字符:用单撇号括起来的一个字符,如:'Z',但是不能写成'CH','12',同时'A','a'是不同的字符常量。

②转义字符:

457370ceb77c4e83a62b130a2e9578f4.jpg

 常用的主要是:\t 制表符   \n换行符

3.字符串常量:

用双撇号括起来

4.符号常量:

用#define指令,指定用一个符号名称代表一个常量

#define  PI  3.1416   //注意行末没有分号

这个指令表示程序里面所有PI都置换成3.1416,也就是不需要写很长的数字了.

习惯上符号常量大写,主要不要将符号常量误认为变量,符号常量不占内存,只是个临时符号,代表一个值。

5.变量:

必须先定义,后使用

6.常变量:

定义变量时,前面加一个关键字 const ,如:

const int a=3;

定义a为一个整型变量,指定其值为3,而且在变量存在期间其值不能变。

7.一般而言,变量名用小写字母表示

8.数据类型:

77f3ea8bbd3e41009a5b103b886ab2c4.jpg

ddf74c4c41f041cba15bfa12d922a4cf.jpg

 eg.       

short a;       //a为有符号的短整型变量
unsigned short b;   //b为无符号的短整型变量

说明:

①只有整型(包括字符型)数据可以加signed或unsigned修饰符,实型数据(见1.实型常量)不能加。

②对无符号整型数据用%u格式输出。%u表示用无符号十进制数的格式输出。如:

unsigned short price =50;                                
printf(“%u\n”,price);//指定无符号十进制格式输出

如果输入-1,结果是65535。   原因是因为系统对-1先转换为补码形式。

补充补码原码反码(正数三者相同)

原码反码补码
1110 10101001 01011001 0110
负数首位1,正数首位0首位不变其他位取反反码+1

 9.字符型数据

*不能显示的字符:空(null)字符(以'\0'表示)、警告(以'\a'表示)、退格(以'\b'表示)、回车(以'\r'表示)等

*字符变量:

             用类型符char定义字符变量     %d 表示十进制整数   %c表示字符形式输出

char c='?';  //定义c为?

printf("%d  %c\n".c.c);

输出结果 63  ?

10.浮点型数据:

*单精度浮点型:float 

c规定,float类型必须至少能表示6位有效数字,取值范围是10^-37~10^37

*双精度浮点型:double

*float 占4个字节   double占8个字节

*均用%f 来作为占位符

11.转换规范总览

以%开始标志最小字段宽度精度长度指定符转换操作
%- # 012.4ld
十进制整数常量(小数点也算一位)保留小数点后四位有h,hh,l,ll,z
#include <stdio.h>
int main()
{
int un=1234;
double df=123.456789;
printf("%2d\n",un);  //最小要求两位,有四位,不做处理//
printf("%6d\n",un);  //只有四位,补齐到六位//
printf("%12d\n",df);  //只有十位,补齐到十二位//
return 0;
}

18c63da4156a4ebebebf1374ea2687c9.png

12.整型类型占位符总结

类型占位
int%d
浮点double%f
字符char   /  字符串%c   /  %s
unsigned char,unsigned short,unsigned int(无符号十进制数%u
unsigned long%lu
unsigned long long%llu

13.运算符和表达式

%求余运算符
i++,i--先执行i
++i,--i先执行i=i+1

补充:

        逗号表达式:先求解表达式1,再求解表达式n。整个表达式的值是表达式n的值。 

eg.1.x=(a=3,6*3)

     2.x=a=3,6*a

第一个是赋值表达式,将一个逗号表达式的赋值给x,x的值等于18;

第二个是逗号表达式,包括一个赋值表达式和一个算术表达式,x的值等于3.

149b6b98290e404eb2a8bf29386fd621.png

 8853df90e42347d0bd2afb699857157c.png

 14.数据的输入输出

putchar输出字符
getchar输入字符
printf格式输出
scanf格式输入
puts输出字符串
gets输入字符串

第四章:选择结构 

 1.优先级(从上往下依次降低)

算术运算符加减乘除类
关系运算符大于小于类,==,!=(不等于)
&&和||
赋值运算符=(注意:从右至左)

 2.选择结构表达方式

4074cb5b01c84d36a0198d4e6a4f4b49.png

注意:C中非0均为假 

3.if 嵌套(利用else if 使程序更简略)

cc9679b0d63d4e1cb5c557b421763abc.png

注意:如果if或else if或else后只有一个语句可以不加{} 

 4.switch语句注意事项

*switch后面的括号只能填一个整型表达式

*case后的常量不能重复

*可以没有default.

dcb8d4029da741d8ae80a5c9c016de43.jpeg

5.break

*如果不想执行switch中后续的case,加上break,跳出整个switch

6.continue

提前结束本次循环 

第五章:循环结构

1.while

2. do while

a752abcd26324f3082a4ac07c7d85dea.png

 3.for循环

059853f37b28485bba7424987e801033.png

 例题1:

//给一个不多于五位的整数 1.求它是几位数2.分别输出每一位数字3.按逆序输出每个数字
int main()
{
	int n;
	printf("请输入数:");
	scanf("%d", &n);
	int m = n;
	if (n <= 0 || n > 99999)
	{
		printf("enter data error\n");
		return 0;
	}
	int count = 0;
	while (n != 0)
	{
		n /= 10;
		count = count + 1;
	}
	printf("位数是 %d\n", count);
	int index = 1;
	for (int i = 0; i < 4; i++)
	{
		index = index * 10;
	}
	n = m;
	while (n != 0)
	{
		printf("%d", n / index);
		n = n % index;
		index = index % 10;
	}
	printf("\n");
	n = m;
	while (n != 0)
	{
		printf("%d", n % 10);
		n /= 10;
	}
	printf("\n");
	return 0;
}

9bcb3e3f41fa4d83a33b51666ae506f9.png

 例题2:

//输入四个整数,按从小到大顺序输出
#include <stdio.h>
int main()
{
	int t,a, b, c, d;
	printf("请输入四个数:");
	scanf("%d %d %d %d", &a, &b, &c, &d);
	printf("a=%d,b=%d,c=%d,d=%d\n", a, b, c, d);
	if(a>b)
	{
		t = a; a = b; b = t;
	}
	if (a > c)
	{
		t = a; a = c; c = t;
	}
	if (a > d)
	{
		t = a; a = d; d = t;
	}
	if (b > c)
	{
		t = b; b = c; c = t;
	}
	if (b > c)
	{
		t = b; b = c; c = t;
	}
	if (b > d)
	{
		t = b; b = c; c = t;
	}
	if (c > d)
	{
		t = c; c = d; d = t;
	}
	printf("排序结果如下:\n");
	printf("%d %d %d %d \n", a, b, c, d);
	return 0;
}

19738a2d345c47ffb1509ea031729f5f.png

例题3: 

//求1!+2!+...+20!
#include <stdio.h>
int main()
{
	double s = 0, t = 1;
	int n;
	{
		t = t * n;
		s = s + t;
	}
	printf("1!+2!+...+20!=%22.15e\n", s);
	return 0;
}

401af5c8156245aba3cadf55e3fa08d9.png

 例题4:

//求水仙花数
#include <stdio.h>
int main()
{
	int i, j, k, n;
	printf("numbers are");
	for (n = 100; n < 1000; n++)
	{
		i = n / 100;
		j = n / 10 - i * 10;
		k = n % 10;
		if (n == i * i * i + j * j * j + k * k * k)
			printf("%d", n);
	}
	printf("\n");
	return 0;
}

f2af76534fb940fabd9c6021367e6cde.png

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值