C语言错题笔记!

与大伙分享C语言错题笔记:

字符型的赋值要用单引号(  '       '    )括起来。

sizeof关键字,  不是函数

C语言源程序中,main函数可以在其它函数之后

函数不能嵌套定义

C语言程序不能有多个main函数

指针可以用关系运算符进行比较

指针之间相乘无意义

C标识符命名规则:

1、由字母、数字及下划线组成,其中第一个字符必须是字母或下划线;

2、不能和C关键字同名;

        浮点型常量:(1)一般形式(如3.1415926);(2)指数形式:由字母E或e连接两个数组成,要求E或e的前后都有数且之后必须为整数,如1.5e-3

        字符常量:用一对单引号及其所括起来的字符组成,如’Aa9$,一些特殊字符的表示可以通过转义符\来实现如:"\n"(换行)

\r 回车(不换行) , \r后边的数字替代 这一行最开始的相等数目的数字

\b 退格 ,也就是电脑键盘上的backspace

\b后边有几个数字 就往前删除几个数字  并将\b后边的数字补上去,有多少补多少。

        字符串常量:由双引号引起来的0到多个字符序列组成,双引号中包括任何字符,包括前面列出的转义字符。编译器自动在字符串后面加上空字符’\0作为结束标志。

#include<stdio.h>
#include <string.h>
int main() {
	char x[] = "12345", y[] = { '1','2','3','4','5' };
	char str[]={'1','2','3'},str2[3]={'1','2','3'},str3[4]={'1','2','3'},str4[5]={'1','2','3'};

printf("字符型数组x的长度为:%d\n",strlen(x));
printf("字符型数组y的长度为:%d\n",strlen(y));
printf("字符型数组x的大小为:%d\n",sizeof(x));
printf("字符型数组y的大小为:%d\n",sizeof(x));
printf("字符型数组str[]的大小为:%d\n",sizeof(str));
printf("字符型数组str2[3]的大小为:%d\n",sizeof(str2));
printf("字符型数组str3[4]的大小为:%d\n",sizeof(str3));
//str3[4]实际为 {'1','2','3','\0'}末尾有个空标识符 
//0在ASC||里对应的字符是'0' 
printf("字符型数组str4[5]的大小为:%d\n",sizeof(str4));
//'\0'只是为了在字符串里转义。因为并没有一个具体的符号用来表示值为0的那个字符

	return 0;
}

运行结果:

float精度为6-7位

double精度为15-16位

所以一般来说遇到浮点数可都用double类型名

算术运算符:

(1)/  :两整数相除结果为整数

(2)% :求余运算,要求两操作数必须为整数

条件运算符

如果a,b,c是表达式,那么:a?b:c表示当a的值不为0时表达式等于b,否则等于c,两选一,相当于一个双分支语句。

10、优先级顺序:由高到低

(1)有括号先算括号

(2)单运算符:!,++,--

(3)*   /   % 

(4)+ -

(5)<,  <= , >,  >=

(6)= =, !=

(7)&&

(8)||

(9)条件运算符  ? :

(10)赋值运算符

(11)逗号运算符

C语言程序组成:

C程序有且只能有一个主函数main( ),C程序总是从main函数开始执行的,与main函数的位置无关;

 switch 语句

switch(表达式)

    case 常量表达式1:语句段1; break;

    case 常量表达式2:语句段2 ; break;

        ....

    case 常量表达式n:语句段n ; break;

    default :         语句段n+1 ; break;

}

若是无break,则会接着执行下一步,直到break,例如:

#include<iostream>
using namespace std;
int main() {
	int a=2;
	//cin >> a;
	switch (a) {
	case 1:cout << 1 << endl; break;
	case 2:cout << 2 << endl;
	case 3:cout << 3 << endl; break;
	case 4:cout << 4 << endl; break;
	case 5:cout << 5 << endl; break;
	default:	cout << "无该情况"; break;

	}
	return 0;
}

结果为:

格式控制说明  %…

输出数据类型

十进制

八进制

十六进制

int

%d

%o

%x

long

%ld

%lo

%lx

unsigned

%u

%o

%x

unsigned long

%lu

%lo

%lx

输出数据类型

格式符

float

%f

double

%lf

char

%c

字符串

%s

常用字符的ASCII码

A:65     a:97     0:48

开大数组:

//取模运算中结果的正负只取决于被除数的正负

#include <iostream>
#include<cstdio>
using namespace std;
int main()
{
      cout << 5 % 2 << endl;
      cout << -5 % 2 << endl;
      cout << -5 % 2 << endl;//取模运算中结果的正负只取决于被除数的正负
      cout << -5 % -2 << endl;
      printf("%d %d", 5 % 2, -5 % 2);
    return 0;
}

结果为

若要输出%号,则需要加上它的转义字符——%即

#include <stdio.h>
int main() {
	int a, b,c,d;
	scanf("%3d%*5d%4d %d*3d%3d", &a, &b);
	
//对输入的整数取前3位送给 a,再取5位不用,后面的给b,但中间不能输入空白字符

	printf("a=%d,b=%d", a, b);
	return 0;
}
#include <stdio.h>
int main() {
	int a = 10, b = 3;
	int x = (a + b - 1) / b;
	printf("%d", x);//a除以3并且向上取整
	return 0;
}

调用#include<math.h>中的pow(x,y)时,要注意x和y都是double类型的浮点数,pow返回的也是double的浮点数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值