总体上必须清楚的:
1.程序有3中基本结构: 顺序结构、选择结构和循环结构。
2.用C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c”;源程序经编译后生成后缀名为
“.obj”的目标文件;再把目标文件与各种库函数连接起来,生成“.exe”的可执行文件。
3.main函数,又称主函数,每个C程序有且只有一个main函数;无论main函数在整个程序中的位置如何,
程序总是从main函数开始执行、也从main函数结束。读程序时应从main函数开始, 然后从上往下读(碰到循环做循环,碰到选择做选择)。
4.无论是数值数据还是非数值数据(如字符等)在计算机中均以二进制形式存储;由0或1构成的二进制称
为位(bit),八个位构成一个字节(Byte),1个Byte=8个bit。二进制、八进制、十六进制转化为十进制采用按权展开法进行,十进制转化为二进制、八进制、十六进制采用除R取余法(R可取2、8或16);数据的存放位置就是它的地址。
概念常考到的:
1.编译预处理不是C 语言的一部分,不占运行时间,不要加分号。
2.每个C 语言程序中main 函数是有且只有一个。
3.在函数定义中不可以再定义函数、即不允许函数嵌套定义。
4.算法可以没有输入,必须要有输出。
5.break只能用于循环结构和switch语句中。
6.逗号运算符的级别最低。
7.任意合法的表达式一定有一个数值与它对应。
第一章 C语言基础知识
【考点1】C程序基本常识
该考点主要从C程序书写规范、main函数及函数基础知识、C程序开发流程及各阶段产生的文件等方面进行考察。
每条C语句的后面必须有一个分号,分号是语句的一部分;一行内可写多条语句,一个语句可以分成多行书写。
C程序中对字母的大小写是敏感的,如A与a是不同的标识符。
注释:是对程序的说明,目的是提高程序的可读性,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行,不允许嵌套注释。
【1】下列叙述中正确的是()
A.每个C程序文件中都必须要有一个main()函数
B.在C程序中main()函数的位置是固定的
C.C程序中所有函数之间都可以相互调用,与函数所在位置无关
D.在C程序的函数中不能定义另一个函数
【2】以下叙述中错误的是( )
A)C程序在运行过程中所有计算都以二进制方式进行
B)C程序在运行过程中所有计算都以十进制方式进行
C)所有C程序都需要编译链接无误后才能运行
D)C程序中整型变量只能存放整数,实型变量只能存放浮点数
【考点2】标识符
合法的标识符只能由字母、数字和下划线组成,并且不能以数字开头;预定义标识符可以当作合法的用户标识符,用户标识符不能与关键之相同;
例如main、define、scanf、printf 都不是关键字;If是合法的用户标识符,而if是关键字、不能用
作用户标识符;
注意:连接(-)符不能出现在标识符中;区分字母o与数字0;熟悉常见的关键字
【3】可在C程序中用做用户标识符的一组标识符是。
A)and B)Date C)Hi D)case
_2007 y-m-d Dr.Tom Bigl
【考点3】判断常量是否合法
常量是指在程序运行过程中,其值不能改变的量;分为整型常量、实型常量、字符常量、字符串常量、符号常量5种。
整型常量:有十进制、八进制和十六进制三种表示形式,没有二进制形式;八进制整型常量加前导数字0,十六进制常量加前导0X,八进制常量中每个数位的数值不会大于7。
例如:- 080不是合法的整型常量
实型常量:有两种表示形式:小数形式和指数形式;掌握判定指数形式合法性。
口诀:E前E后必有数,E后必须为整数。
字符常量:稍后介绍
字符串常量:注意空串和空格串的区别
符号常量:如使用define定义的常量M,#define M 3
【4】以下选项中可作为C语言合法常量的是______。
A)_80. B) _080 C)_8e1.0 D)_80.0e
【考点4】变量
在程序运行过程中其值可以改变的量称为变量。
整型变量可分为基本整型(int)、短整型(short)、长整型(long)、和无符号整型(unsigned);一个基本整型占4个字节,其它类型的整型占用字节数和取值范围详见教材第16页,注意:变量在计算机中所占用存储空间的大小由C语言编译系统决定。
实型变量分为单精度型(float)和双精度型(double),单精度型占四个字节。
【5】数字字符0的ASCII值为48,若有以下程序
main()
{ char a='1',b='2 ';
printf("%c,",b++);
printf("%d\n",b-a);
}
程序运行后的输出结果是______。
A) 3,2 B)50,2 C)2,2 D)2,50
【考点5】字符型数据
字符型数据包括字符常量和字符变量,在计算机中占用1个字节的存储空间;计算机处理时把字符型数据当作等值的整型ASCII值进行存储或运算。
转义字符:
在程序中 int a = 0x6d,是把一个十六进制的数给变量a 注意这里的0x 必须存在。
在程序中 int a = 06d, 是一个八进制的形式。
在转义字符中,’\x6d’才是合法的,0 不能写,并且x 是小写。
‘\141’是合法的, 0 是不能写的。
‘\108’是非法的,因为不可以出现8
大小写字母的转换:
大写字母转换成对应小写字母:ch + 32 如‘A’ + 32 = ‘a’
小写字母转换成对应大写字母:ch – 32 如‘y’– 32 = ‘Y’
数字字符与对应数字的转换:ch – 48 如‘1’– 48 = 1
【6】#include
main()
{
char a,b,c,d;
scanf("%c%c",&a,&b);
c=getchar(); d=getchar();
printf("%c%c%c%c\n",a,b,c,d);
}
当执行程序时,按下列方式输入数据(从第一列开始,
12
34
则输出结果是:
A、1234
B、12
C、12
D、12
3 34
【7】已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是___________
#include"stdio.h"
void main()
{char a,b;
a=getchar( );scanf("%d",&b);
a=a-'A'+'0';b=b*2;
printf("%c%c\n",a,b);
}
【8】以下选项中能表示合法常量的是
A)整数:1,200 B)实数:1.5E2.0 C )字符斜杠:‘\’D)字符串:"\007"
【考点6】算术运算
算术运算符一共有+、—、*、/、%这五个;求余运算要求运算对象只能为整型,除法运算符两边运算对象都为整型时,运算结果也为整型,即舍掉小数部分。
例如:18 / 10结果为1,而不是1.8 ; 3.5 % 3是非法的表达式
【考点7】强制类型转换
将一个运算对象转换成指定类型,格式为(类型名)表达式,注意小括号位置。
例如:(int)3.8结果为3 ;而int(3.8)是非法的表达式
【考点8】赋值运算及表达式
赋值运算符为“=”,不同于关系等于“= =”。赋值表达式格式为:变量名=表达式,赋值运算符左边必须为变量,赋值运算是把赋值运算符右边表达式的值赋给左边变量。
复合赋值运算符是将算术运算符或位运算符与赋值运算符组合在一起组成的运算符,掌握复合赋值表达式转化为赋值表达式的方法。如n+=100可转化为n=n+100。
注意赋值运算符和复合赋值运算符的优先级仅仅高于逗号运算符,结合性为从右到左
例如:有语句 int a=5 ;
表达式 a = 6 值为6,而表达式 a = = 6结果为0
【9】设变量已正确定义并赋值,以下正确的表达式是。
A)x=y*5=x+z B)int(15.8%5)
C)x=y+z+5,++y D)x=25%5.0
【10】表达式(int)((double)(5/2)+2.5)的值是。
【考点9】表达式的考查
是表达式就一定有数值。
赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。
自加、自减表达式:
考试口诀:++在前先加后用,++在后先用后加。
逗号表达式:优先级别最低;表达式的数值逗号最右边的那个表达式的数值。
(2,3,4)的表达式的数值就是4。
【11】有以下程序
main()
{int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
【12】程序运行后的输出结果是________。
A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,1
【考点10】位运算
处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。
例1: char a = 6, b;
b = a<<2; 这种题目的计算是先要把a 的十进制6 化成二进制,再做位运算。
例2:一定要记住,异或的位运算符号。0 异或 1 得到1。
0 异或 0 得到0。两个女的生不出来。
1 异或 1 得到0。两个男的生不出来。
考试记忆方法:一男(1)一女(0)才可以生个小孩(1)。
例3:在没有舍去数据的时候,<<左移一位表示乘以2;>>右移一位表示除以2。
【13】有以下程序
#include<stdio.h>
main()
{ short c=124;
c=c_______;
printf(“%d\n”、C);
}
若要使程序的运行结果为248,应在下划线处填入的是
A)>>2 B)|248 C)&0248 D)<<1
【考点11】三种取整丢小数的情况
1、int a =1.6;
2、(int)a;
3、 3/2;
【考点12】字符型和整数是近亲
char a = 65 ;
printf(“%c”, a); 得到的输出结果:a
printf(“%d”, a); 得到的输出结果:65
第二章数据的输入输出
【考点1】printf函数
%d 对应整型;%c 对应字符;%f 对应单精度等;宽度及左对齐等修饰;%ld 对应 long int;%lf 对应double。
【14】以下程序运行后的输出结果是。
main()
{
int m=011,n=11;
printf("%d %d\n",++m,n++);
}
【考点2】scanf函数
注意该函数的第二个部分是&a这样的地址,不是a;scanf(“%d%d%*d%d”,&a,&b,&c); 跳过输入的第三个数据。
【15】有以下程序
#include<stdio.h>
main()
{int x,Y;
scanf(”%2d%ld”,&x,&y);printf(”%d\n”,x+y);
}
程序运行时输入:1234567程序的运行结果是【7】。
【考点3】putchar函数和getchar函数
char a = getchar() 是没有参数的,从键盘得到你输入的一个字符(包括回车、空格等字符)给变量a。【16】#include
main()
{
char a,b,c,d;
scanf("%c%c",&a,&b);
c=getchar(); d=getchar();
printf("%c%c%c%c\n",a,b,c,d);
}
当执行程序时,按下列方式输入数据(从第一列开始,
12
34
则输出结果是:
A、1234
B、12
C、12
D、12
3 34
【考点4】如何交换两个变量a和b
使用中间变量t,交换语句为:t=a ; a=b ; b=t
【考点5】如何实现保留三位小数,第四位四舍五入的程序
【17】若有语句:double n=123.45678;
则语句: printf(“result=%.5f\n”,(int)( n*1000 + 0.5) / 1000.0);
输出结果为:______________
第三章选择结构
【考点1】关系运算
C语言用非0表示逻辑真,用0表示逻辑假。关系运算符有6个,分别是>,>=,<,<=,==,!=,前四种优先级高于后两种。关系表达式真时为1,假时为0。注意ab>c);输出结果为:__________ 【考点2】逻辑运算
逻辑运算符共有3个:逻辑与(&&),逻辑或(||),逻辑非(!)。注意短路现象,例a++||b++,如果表达式a++的值非零,则表达式b++不再执行。
【19】设x为int型变量,请写出一个关系表达式【6】,用以判断x同时为3和7的倍数时,关系表达式的值为真。
【20】有以下程序:
void main()
{int a=1,b=2,m=0,n=0,k;
k=((n=b>a)+b)||(m=a
printf("%d,%d\n",k,m);
}
程序运行后的输出结果是()
A.0,0
B.0,1
C.1,0
D.1,1
【考点3】运算符的优先级和结合顺序
运算符按参加运算的对象数目可分为单目运算符、双目运算符和三目运算符。初等运算符的优先级别最高,然后依次是单目运算符、算术运算符、关系运算符、逻辑运算符(除逻辑非!)、条件运算符、赋值运算符、逗号运算符。位运算符优先级介于算术运算符与逻辑运算符之间。结合顺序大多为自左向右,而自右向左的有三个:单目运算符、条件运算符和赋值运算符。
【考点4】if语句
可以单独出现,也可以与else匹配出现。if语句可以嵌套,这时else总是与离它最近的且没有与else 匹配的if匹配。
【21】在执行以下程序时,为了使输出结果为t=4,给a和b输入的值应该满足的条件是()
void main()
{int s,t,a,b;
scanf("%d,%d",&a,&b);
s=1;t=1;
if(a<0) s=s+1;
if(a>0) t=s+1;
else if(a==b) t=5;
else t=2*s;
printf("t=%d\n",t);
}
A.a>b
B.a