C语言二级考前一个月复习概况.docx
《C语言二级考前一个月复习概况.docx》由会员分享,可在线阅读,更多相关《C语言二级考前一个月复习概况.docx(27页珍藏版)》请在冰豆网上搜索。
C语言二级考前一个月复习概况
文本文件
二进制文件
使用方式
含义
使用方式
含义
r
打开文本文件进行只读
rb
打开二进制文件进行只读
w
建立新的文本文件进行只写
wb
建立二进制文件进行只写
a
打开文本文件进行追加
ab
打开二进制文件进行追加/写
R+
打开文本文件进行读/写
Rb+
打开二进制文件进行读/写
W+
建立新的文本文件进行读/写
Wb+
建立二进制文件进行读/写
A+
打开文本文件进行读/写/追加
Ab+
打开二进制文件进行读/写/追加
整数的三种表示形式
表示形式
组成
开头部分
十进制
D,或不加表示
0-9
以1-9开头
八进制
O
0-7
以0开头
十六进制
H
0-9,A-F
以0x开头
inta[100],*p;
等价语句
p=a;
P=&a[0];
等价语句
p=a+1;
P=&a[1];
指针是以地址作为其值的变量,数组名的值是一个特殊的固定地址,可以作为常量指针。
类型
名称
类型名
数据长度
整型
整型
Int
32位
短整型
Shortint
16位
长整型
Longint
32位
字符型
字符型
Char
8位
实型(浮点型)
单精度浮点型
float
32位
双精度浮点型
double
64位
函数
数据类型
格式
printf
float
%f
double
%e
scanf
float
%f%e
double
%lf%le
字符串的输入和输出
输入
Scanf()
该函数遇到空格或回车输入结束
Gets()
该函数遇到回车符输入结束
输出
Printf()
输出时遇到’\0’输出结束
Puts()
输出时遇到’\0’输出结束
运算符
优先级
结合方式
优先级:
高->低
逻辑运算符
!
右->左
算术运算符
++--+-*
右->左
*/%+-
左->右
关系运算符
<=<>=>==!
=
左->右
逻辑运算符
&&||
左->右
条件表达式
?
:
右->左
赋值运算符
*=/=%=+=-==
右->左
逗号运算符
,
左->右
ASCII码集
符号
十进制
位运算符
‘a
97
与
&
A
65
或
|
0
48
异或
^
9
57
取反
~
左移
<<
右移
>>
‘fseek的调用形式:
(fp,offset,from)
‘fp:
文件指针
‘offset:
移动偏移量
‘from:
起始量
C语言中的转义字符
\n
换行符
\t
水平制表符
\b
退格符
\\
单斜杠
\’
单引号
\”
双引号
组合框、列表框都没有Selected属性。
‘int(*p)()p是一个函数指针,该指针指向整数数据。
打开文件:
fopen(“文件名”,文件打开的方式)
关闭文件:
fclose(文件指针)
‘fgetc(fp):
将fp所指的磁盘文件读入一个字符到ch。
‘fputc(ch,fp):
将字符ch写入fp所指的磁盘文件。
字符串的输入函数:
scanf/gets()
字符串的输出函数:
printf/puts()
字符型数据的输入:
scanf/getchar()
字符型数据的输出:
printf/putchar()
整型数据的输出格式控制说明:
十进制(%d),八进制(%o),十六进制(%x)。
\n(换行符),\t(转义字符,横向跳向另一制表位置)
赋值语句左边必须是变量,不能是表达式。
取余运算符结果的正负由被除数决定。
‘fread(buffer,size,count,fp);
‘buffer:
一个指针,表示存放输入数据的首地址,
‘size:
数据块的字节数
‘count:
要读写的数据块数
‘fp:
文件指针
‘fwrite(buffer,size,count,fp);
‘buffer:
存放输出数据的首地址
‘size:
数据块的字节数
‘count:
要读写的数据块数
‘fp:
文件指针
‘fread(fa,4,5,fp)的意义:
fp所指的文件中,每次读入4个字节(一个实数)送入实数组fa中,连续读了5次,即读5个实数到fa中。
全局变量的作用范围是从定义开始到程序所在文件的结束,它对作用范围内的所有函数都起作用。
一般把全局变量定义在程序的最前面,即第一个函数的前面。
局部变量:
定义在函数内部的变量,有效作用范围在所在函数的内部。
‘fseek:
C语言用来控制指针移动的函数。
‘for循环格式:
for(表达式1;表达式2;表达式3)
‘for语句中的break是结束循环,退出for语句。
‘for语句中的continue是结束这次循环,进行下一次循环(for循环的表达式3)
经典程序:
1:
位运算符
#include
intmain(void)
{
chara=2,b=4,c;
c=a^(b>>2);
printf("%d",c);
return0;
}
2:
字符串的比较
#include
#include
intmain(void)
{
char*s1="mbDuG";
char*s2="mbDuG";
intt;
t=strcmp(s1,s2);
printf("%d",t);
return0;
}
3:
递归函数
#include
intfun(intx);
intmain(void)
{
printf("%d",fun(7));
return0;
}
intfun(intx)
{
intp;
if(x==0||x==1)
return(3);
p=x-fun(x-2);
returnp;
}
4:
按位取反
#include
intmain(void)
{
ints,t;
s=0x11;
t=~0x11;
printf("%d\n",s);
printf("%x\n",t);
return0;
}
5:
字符串的比较输出
#include
intmain(void)
{
staticchara[]="Language",b[]="programe";
char*p1,*p2;
intk;
p1=a,p2=b;
for(k=0;k<=8;k++)
if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k));
return0;
}
6:
指针的交换输出
#include
intswap(char*x,char*y)
{
char*t;
t=x;
x=y;
y=t;
return0;
}
intmain(void)
{
char*s1="abc",*s2="123";
swap(s1,s2);
printf("%s,%s\n",s1,s2);
return0;
}
7:
符号的含义
#include
intmain(void)
{
printf("a\bre\'hi\'\\\bou\n");
return0;
}
8:
负数的补码输出
#include
intmain(void)
{
charx=0xFFFF;
printf("%d\n",x--);
return0;
}
8:
逗号运算符
#include
intmain(void)
{
inta;
printf("%d\n",(a=2*3,a*5,a+7));
return0;
}
9:
字符型数据的变换
#include
intmain(void)
{
chara='A';
intb;
intB;
B=((34&&56)&&(a<'b'));
printf("%d\n\n\n",B);
printf("%d\n",a);
return0;
}
10:
指针和数组之间的转换
#include
intmain(void)
{
inta[2][3]={{1,2,3},{4,5,6}};
int(*p)[3],i;
p=a;
for(i=0;i<3;i++)
{
if(i<2)
p[1][i]=p[1][i]-1;
else
p[1][i]=1;
}
printf("%d\n",a[0][1]+a[1][1]+a[1][2]);
return0;
}
11:
’for循环语句
%if(j%3)%
#include
intmain(void)
{
intj;
for(j=10;j>3;j--)
{
if(j%3!
=0)
j--;
--j;
--j;
printf("%2d",j);
}
return0;
}
12:
指针和数组
*p++;
*(p++)
*(p+i)
*(p)++
#include
intmain(void)
{
intx[6]={2,4,6,8,5,7};
int*p=x;
inti;
for(i=0;i<6;i++)
printf("%2d",*p++);
return0;
}
13:
字符型数据的变换
#include
intmain(void)
{
chara='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a);
return0;
}
14:
数组和指针的交换输出
#include
voidfun(int*a,inti,intj)
{
intt;
if(i{
t=a[i];
a[i]=a[j];
a[j]=t;
i++;
j--;
fun(a,i,j);
}
}
intmain(void)
{
intx[]={2,6,1,8};
inti;
fun(x,0,3);
for(i=0;i<4;i++)
printf("%2d",x[i]);
printf("\n");
return0;
}
15:
ifelse匹配
#include
intmain(void)
{
inta=2,b=-1,c=2;
if(a<0)%进入if语句的大前提,满足则进行下条语句,否则直接输出%
if(b<0)
c=0;
else
c++;
printf("%d\n",c);
return0;
}
16:
dowhile循环
#include
intmain(void)
{
inta=1,b=10;
do
{
b-=a;
a++;
}while(b--<0);如果while循环中b--<0成立进行循环,否则退出循环
printf("%d",b);
return0;
}
17:
不确定的for循环
#include
intf(inta)
{
returna%2;
}
intmain(void)
{
ints[8]={1,3,5,2,4,6};
inti,d=0;
for(i=0;f(s[8]);i++)
d+=s[i];
printf("%d\n",d);
return0;
}
18:
字符串与指针
#include
intmain(void)
{
charstr[][10]={"china","beijing"};
char*p;
p=str;
printf("%s\n",*(p+10));
return0;
}
19:
sizeofstrlen的区别
#include
#include
intmain(void)
{
chara[]={'a','b','c','d','e','f','\0'};
inti,j;
i=sizeof(a);
j=strlen(a);
printf("%d,%d",i,j);
return0;
}
20:
sizeof(长度,含字符串结束符)
strlen(有效字符个数)
#include
#include
intmain(void)
{
chars[10]="1234567\0\0";
intm,t;
t=strlen(s);
m=sizeof(s);
printf("%d\n",t);
printf("%d\n",m);
return0;
}
21:
p的值是x的地址
#include
intmain(void){
int*p,x=0;
p=&x;
printf("%d\n",p);
return0;
}
22:
*p的值是x的值。
#include
intmain(void){
int*p,x=0;
p=&x;
printf("%d\n",*p);
return0;
}
24:
%2d保留两位整数
#include
intmain(void)
{
inta;
floatb;
scanf("%2d%f",&a,&b);
printf("a=%d,b=%f",a,b);
return0;
}
25:
二次代入时a数值的变化
#include
intmain(void)
{
inta=1,b=2;
a=a^b;
b=b^a;
printf("%d,%d",a,b);
return0;
}
26:
字符串中多个字符的比较与输出
#include
#include
voidf(char*p[],intn)
{
char*t;
inti,j;
for(i=0;ifor(j=i+1;jif(strcmp(p[i],p[j])>0)
{
t=p[i];
p[i]=p[j];
p[j]=t;
}
}
intmain(void)
{
char*p[5]={"abc","aabdfg","abbd","dcdbe","cd"};
f(p,5);
printf("%d\n",strlen(p[1]));
printf("%s\n",p[0]);
printf("%s\n",p[1]);
printf("%s\n",p[2]);
printf("%s\n",p[3]);
printf("%s\n",p[4]);
return0;
}
27:
char型数据所占字节数
#include
intmain(void)
{
charp[]={'1','2','3'};
char*q=p;
intt1;
intt2;
intt3;
intt4;
t1=sizeof(char);
t2=sizeof(*q);
t3=sizeof(p);
t4=sizeof(p[0]);
printf("%d\n",t1);
printf("%d\n",t2);
printf("%d\n",t3);
printf("%d",t4);
return0;
}
28:
++x
#include
intmain(void)
{
intx=12;
printf("%d",++x);%13
printf("\n\n\n");
printf("%d",x);%13
return0;
}
28:
‘x++
#include
intmain(void)
{
intx=12;
printf("%d",x++);%12
printf("\n\n\n");
printf("%d",x);%13
return0;
}
29:
字符串的存储---数组的初始化
‘chars[6]={‘H’,’a’,’p’,’p’,’y’,’\0’};
‘chars[6]={“Happy”};
‘chars[6]=”Happy”;
‘sizeof的使用(运算符所占的字节数)
{一个整型变量占两个字节}{一个字符占一个字节}
30:
sizeof的使用
#include
intmain(void)
{
charp[]={'c','b','a'};
charq[]={"abc"};
printf("%d\n\n\n%d\n",sizeof(p),sizeof(q));
return0;
}
31:
形参中值的交换不影响实参
#include
voidfun2(chara,charb)
{
printf("%c%c",a,b);
}
voidfun1(chara,charb)
{
a='C';
b='D';
}
intmain(void)
{
chara='A',b='B';
fun1(a,b);
printf("%c%c",a,b);
fun2('E','F');
return0;
}
32:
主函数可以通过调用别的函数输出结果
#include
voidfun2(chara,charb)
{
printf("%c%c",a,b);
}
chara='A',b='B';
voidfun1()
{
a='C';
b='D';
}
intmain(void)
{
fun1();
printf("%c%c",a,b);
fun2('E','F');
return0;
}
33:
ifelse的使用
#include
intmain(void)
{
inta=3,b=2,c=1;
if(a
if(b<0)
c=0;
else
c++;
printf("%d\n",c);
return0;
}
34:
逗号运算符的使用
#include
intfun(intx,inty)
{
return(x+y);
}
intmain(void)
{
inta=1,b=2,c=3;
intsum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);
return0;
}
35:
嵌套for循环
#include
intmain(void)
{
inti,j,x=0;
for(i=0;i<2;i++)
{
x++;
for(j=0;j<=3;j++)
{
if(j%2)
continue;
x++;
}
x++;
}
printf("x=%d\n",x);
return0;
}
36:
十进制/十六进制的控制输出
#include
intmain(void)
{
intx=102,y=012;
printf("%2d,%2d\n",x,y);
return0;
}
37:
‘breakcontinue区别:
‘break一旦执行,循环提前结束,不再执行循环体中位于其后的其它语句。
’break结束循环。
‘continue只是跳过后面的语句继续进行下一次的循环。
38:
混合循环
#include
intmain(void)
{
char*p[]={"3697","2584"};
inti,j;
longnum=0;
for(i=0;i<2;i++)
{
j=0;
while(p[i][j]!
='\0')
{
if((p[i][j]-'\0')%2)
num=10*num+p[j][j]-'0';
j+=2;
}
}
printf("%d\n",num);
return0;
}
39:
‘if语句的使用:
#include
intmain(void)
{
inta,b,c;
a=b=c=0;
intx=12;
if(!
a)%!
a!
=0
x--;
else
x=5;
if(c)%c!
=0;
x=3;
else
x=4;
printf("%d",x);
return0;
}
40:
结构体变量输出值的限制:
#include
unionmyun
{
struct
{intx;
Inty;
Intz;
}u;
intk;
}a;
intmain(void)
{
a.u.x=4;
a.u.y=5;
a.u.z=6;
a.k=0;
printf("%d\n",a.u.x);
return0;
}
41:
‘*s与s[]区别:
#include
intmain(void)
{
char*s="abcde";
s+=2;
printf("%d\n",s[0]);
return0;
}
2013年6月英语四六级成绩将于8月21日上午9点发布
(1)短信查分:
发送A加15位准考证号到1066335577;
(2)网上查分:
;(3)查准考证号:
如果忘记自己的准考证号码了,只要进入按提示输入身份证号就可以查到准考证号了。