一,一些概念
1.C++语言提供的基本控制结构可以分为3种类型:顺序结构、选择结构和循环结构
2.实参可以是常量、变量、表达式、函数等任意类型,形参只能是变量,在被定义的函数中,必须指定形参的类型
3.C语言中静态变量和外部变量的初始化是在___阶段完成的
4.形参只在调用的时候存在,实参的值单向传递给形参以后自己的值不变
5.函数的调用方式可以有:函数语句,函数表达式,函数作实参
6.float add(float ,float);这样写的函数声明是函数原型,在编译阶段对合法性做检查
7.对单目运算符重载为友元函数时,可以说明一个形参。而重载为成员函数时,不能显式说明形参。
8.抽象封装继承多态
9.抽象类是不能定义对象的,在实际中为了强调一个类是抽象类,可将该类的构造函数说明为保护的访问控制权限。 抽象类的主要作用是将有关的组织在一个继承层次结构中,由它来为它们提供一个公共的根,相关的子类是从这个根派生出来的。
10.析构函数不能重载。
11.引用&
二,简单语句的计算
1.a+=a*=10; a=100
2.如果a=1,b=2,c=3,d=4,则表达式a<b?a:c<d?c:d的值为 1
算术运算符>关系运算符>赋值运算符>逗号运算符,右结合
3.while(!x),表示取反的意思,所以如果x是真,!x就是假
4.switch 后面一定要有break;不然就连读
5.
int x = 5, y = 7;
void swap ( )
{
int z ;
z = x ; x = y ; y = z ;
}
int main(void)
{
int x = 3, y = 8;
swap ( ) ;
printf ("%d,%d \n", x , y ) ;
return 0 ;
}
/*1.从变量的作用域的角度来说函数void swap ()里面的x,y,z三个变量的有效范围是voidswap ()这个函数里面,离开这个函数,这三个变量就不存在了,voidswap ()的x,y跟main函数里面的x,y并不是同一个变量。
2.从函数的参数传递角度来说,分为之传递,地址传递和直接引用
上面程序调用voidswap ( )后,相当于什么没做,单纯浪费了CPU而已。选A*/
6.
int i;
int main()
{ void prt();
for(i=0; i<5; i++)
prt();
}
void prt()
{ for(i=0;i<5;i++)
printf("%c",'*');
printf("\n");
}//结果输出*****
7.int a[2]={1,3}, *p=&a[0]+1;
&a[0] 就是a数组的首地址 即相当于a 。 a+1就相当于指针下移一个单位。
8.
三,一些编程语句
1. 输入一行字符,以回车符 '\n'作为 结束符。
char c;while((c=getchar())!='\n'){}
2.闰年 (n%4==0)&&(n%100!=0)||(n%400==0)
四,令人叫妙的程序
1. 若输入:how are you? <回车>,输出结果是:How Are You?
#include <stdio.h>
void main(void )
{
int word;
char ch;
word=0;
while( (ch=getchar()) != '?' ){
if(ch==' ') word=0;
else if(word==0){
word=1;
if(ch<='z'&&ch>='a') ch=ch-'a'+'A';
}
putchar(ch);
}
return;
}
2.将一个正整数分解质因数
int main()
{ int First;
int number,i;
i=2 ; First = 1;
scanf("%d", &number);
printf("%d=", number);
while (number!=1)
{ if (number % i == 0)
{ if (First)
{ First=0;
printf("%d",i);}
else{
printf("*%d",i);
number=number/i;}
else i++;
}
五,误区警示
1.If是可以作为用户的标识符。因为If中的第一个字母大写了,所以不是关键字。
2.e前e后必有数,e后必为整数
3.'1’是字符占一个字节,”1”是字符串占两个字节(含有一个结束符号)。
4.表达式的数值逗号最右边的那个表达式的数值,(2, 3, 4)的表达式的数值就是4。
5.char str[10];str="string";错
6.