当前位置:文档之家› 第一章C语言基础知识

第一章C语言基础知识

第一章C语言基础知识
第一章C语言基础知识

例1:计算两个整数之和的C程序

#include "stdio.h"

main( ) /*求两数之和*/

{

int a,b,sum; /*变量说明*/

a=10; /*把整数10赋值给变量a */

b=20; /*把整数20赋值给变量b */

sum=a+b; /*把两数之和赋值给变量sum */

printf("a=%d,b=%d,sum=%d\n",a,b,sum); /*把计算结果输出到用户屏幕上*/

}

2、关于注释的说明(考点一)

?程序中以“/*”开头并且以“*/”结尾的部分表示程序的注释部分。

?注释可以加在程序的任何位置。

?注释是为了提高程序的可读性而增加的,不属于C语言。

?/*/*ddddddd*/*/ 这样的注释不是合法的。注释是从“/*“开始到”*/“结束的。就近原则,以该例为准,

属于注释的就是/* */两个之间的/*ddddddd,所以最后剩下的*/就是多余了。

例1:阅读以下程序,想一想结果是多少?

main( )

{ int a=0,b=0;

a =10; /*给a赋值

b=20; 给b赋值*/ 这句等于/*给a赋值b=20; 给b赋值*/ printf("a+b=%d\n",a+b); /*输出计算结果*/

}

这是2006年9月全国计算机等级考试二级考试的第19题。需要特别注意的是,程序第三行“/*”开始的注释部分,直到第四行末尾才结束。因此上面的程序等价于以下的程序:

main( )

{ int a=0,b=0;

a =10;

printf("a+b=%d\n",a+b);

}

3、标识符(考试重点)

在C语言中用于标识名字的有效字符序列称为标识符。标识符可以用作常量名、变量名、符号名、函数名和后面要学到的指针名、数组名等。C语言中标识符的命名规则如下:

1)标识符只能由字母、数字和下划线组成;

2)标识符的第一个字符必须是字母或下划线。

3)标识符区分大小写字母。如int与Int是两个完全不同的标识符。

合法的标识符:

a x sum spels program ab1 _to file_5 a1b2c3 _2 B3

非法的标识符:

ab12# (含有不合法的字符“#”)

a1-c (含有不合法的字符“-”)

ab c (空格不是合法标识符)

πr (“π”不是字母,为不合法标识符字符)

23ab (第一个字符不能为数字)

C语言的标识符分为如下三类:

1)关键字

关键字是具有特定含义的、专门用来说明C语言特定成分的一类标识符。关键字均由小写字母构成。Int 就不是关键字。

2)预定义标识符

预定义标识符(如printf,scanf,sin,isalum等)和编译预处理命令名(如define,include等)。注意,预定义标识符可以作为“用户标识符”使用。

3)用户标识符(考试重点):只要不是关键字,且满足标示符定义的就是用户标识符。

不能是关键字;只能由字母、数字和下划线组成;第一个字符必须是字母或下划线。

Int可以作为用户标识符,int就不可以作为用户标识符。

例2:以下不能定义为用户标识符的是

A)scanf B)V oid C)_3com_ D)int

分析:本题答案选D。因为int是关键字,关键字不能作为用户标识符。答案(A)的scanf虽然是预定义标识符,但是预定义标识符可以作为用户标识符使用。(B)中V oid的第一个字符V大写,它与关键字void 是两个不同的标识符,故它可以作为用户标识符。(C)中的_3com_符合标识符的命名规则,且不是关键字,故可以定义为用户标识符。

例3:以下不合法的用户标识符是

A)j2_KEY B)Double C)4d D)_8_

分析:本题答案选C。答案(A)是一个用户标识符,符合标识符的命名规则。答案(B)也是用户标识符,需要注意的是,它与关键字double是两个不同的标识符。答案(D)是用户标识符,由数字和下划线组成,且第一个字符为下划线。只有答案(C)是不合法的用户标识符,因为它的第一个字符是数字,不符合标识符的命名规则。

5、变量

与常量对应的是变量。顾名思义,变量就是在程序的运行过程中其值可以改变的量。例1中的a,b都是变量,它们是由用户定义的标识符,变量的命名必须遵循标识符的命名规则。float sa$a;错误$

第二节整型数据

进制的常见错误:

1. 八进制数据中出现8,甚至是9.

2. 十六进制中,把15当成一个字符(实际上应该是f)。

2、整型常量

注意,在C语言中没有直接表示二进制的整型常量。(常考)

(1)十进制整型常量由一串连续的0~9数字组成。如:0、120、365、-12等。

(2)八进制整型常量以数字0开头,其中的数字为0~7。如:0112(十进制74)、0123(十进制83)、077(十进制63)等。

(3)十六进制整型常量以0x(数字0和字母x)或0X开头,其中的数字可以是0~9、a~f或A~F中的数字或英文字母。如:0x11(十进制17)、0xa5(十进制165)、0X5a(十进制90)等。

例1:以下选项中可作为C语言合法整数的是

A) 10110B B) 0386 C) 0Xffa D) x2a2

分析:本题答案为C。

选项(A)不是C语言中三种整型常量之一。

选项(B)不是合法的八进制整型常量,因为八进制整型常量中不可能出现“8”字符。

选项(D)中x2a2前加上“0”就是一个合法的十六进制整型常量。

3、整型变量

定义基本整型变量用关键字int,形式如下:

int i;

int类型所占据的字节长度因不同类型的机器或编译器而有所不同:

如果使用VC++6.0,则会为int型变量分配4个字节长度的存储单元。我们使用的将是这种情况。

说明:int 占4个字节float占4个字节short占2个字节

1) 如果要表示一个长整型常量,则应该在对应的整型常量后面加上一个字母后缀l(L的小写)或者是L。

如0L、110L、123L等。这是因为如果不加上L(或l),则表明这个整型常量为基本整型常量,在内存中占两个字节的存储单元,而加上之后,则表明为长整型常量,在内存中占四个字节存储单元。

2)无论是短整型还是长整型常量,C语言系统都默认为是有符号整数。无符号整数在数字的后面加上一个字母后缀u或者是U。若是长整型无符号整型常量,则应该加后缀lu或者是LU。

例2:以下选项中不属于C语言的类型的是

A) signed short int B) unsigned long int

C) unsigned int D) long short

分析:根据表2可知,正确答案为D。

4、整数在内存中的存储形式

在计算机内存中最小存储单位称为“位(bit)”。。一个字节(Byte)有8个二进制位。

注意:计算机中(或者说内存中)的数据都以它对应的补码形式存在。

1.正数补码为:原码

2.负数的补码:求-6的补码6的原码为0000 0000 0000 0110 (1)求反:1111 1111 1111 1001(2)再反码加1 1111 1111 1111 1010 -6的补码为1111 1111 1111 1101

第三节实型数据

1、实型常量

在C语言中,实型常量有两种表示形式:小数形式和指数形式。

(1)小数形式

规则如下:1. 有且仅有一个小数点。

2.左边和右边可以有一边没有数据,但是不能同时没有数据。

如:3.14159 0.158 12. .36 0.0 -18.0

(2)指数形式(E前E后必有数,E后必为整数)

规则如下:1. 有且仅有一个字母e(或者E)。

2. 左右两边都必须有数据。

3. 左边可以是整数也可以是小数。

4. 右边只能是整数。

以下列举出几个正确的指数形式:

1e5 (表示数值1?105)

1.25E+4 (表示数值1.25?104)

2.0E-3 (表示数值2.0?10-3)

实型常量的常见错误:

12 (缺少小数点,12其实为一个整型的常量而不是实型常量)

e5 (缺少小数部分)

1.25E (缺少指数部分)

2.0E1.3 (指数部分不是整数)

例1:以下选项中合法的实型常数是

A)5E2.0 B)E-3 C).2E0 D)1.3E

分析:本题的答案是C。

选项(A)的指数部分不是整数。

选项(B)缺少小数部分。

选项(D)缺少指数部分。

例2:以下选项中,不能作为合法常量的是

A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0

分析:选项(B)的指数部分不是整数,所以答案为B,其它选项均为正确的常量。

第四节字符型数据

1、字符常量字符常量是由一对单引号括起来的。

1)由一对单引号括起来的单个字符:

单引号中只有一个字符:'0'、'A'、'a'、' '、'#'。

2)由一对单引号括起来的,里面是由斜杠“\”引起的若干字符:

在单引号中,都由“\”开头:'\n '、'\t '、'\\'、'\''、'\"'、'\0 '、'\377 '、'\xff '。这个“\”称为转义字符。转义字符后面的内容失去了原来的意义,如'\n'表示换行符,而不是字母n了。

每个字符都有一个ASCII码与之对应。(字符可以看成整形)

如字符'0'的ASCII码值为48,我们简称字符'0'的值为48。同样,'A'的值为65,'a'的值为97。

字符型数据进行运算,使用的其实都是这个字符对应的ASCII码值。

(2)八进制转义字符

它是由“\”与其后的1~3位八进制数字构成的字符序列。

反斜杠后面的八进制数不需要以0开头。’\061’就错了

'\61'首先把61这个八进制化成十进制,得到49,ASCII为49的字符就是?1?。.

'\101'首先把101这个八进制化成十进制,得到65,ASCII为65的字符就是?A?。.

(3)十六进制转义字符

它是由“\x”与其后的1~2位十六进制数字构成的字符序列。

反斜杠后面的十六进制数不需要以0x开头。’\0x77’错了!

但是反斜杠之后的必须是小写字母x,而不能是大写字母X,也不能是其它形式。’\0X77’错了!

'\x42'表示字符常量'B'

'\x6e'分别表示字符常量和'n'。

字符型常量的常见错误:

(1)把"a"看作字符常量。字符常量的标志是一对单引号' ',而不是双引号" "。

(2)一对单引号中有多个字符。'65'是非法的字符常量。(常考)

(4)′\ooo′中出现数字8。′\ooo′中只能出现字符0~7。

(5)'\xhh'中,忘记书写字符x。

例1:以下不合法的字符常量是

A ′\018′

B ′\′″

C ′\\′

D ′\xcc′

分析:本题是2006年4月考题,考察点在字符常量的概念。此题答案为A。

A中为八进制转义字符,但是八进制数不能出现8,因此错误。

B中是一般转义字符,表示一个双引号字符,正确。

C中是一般转义字符,表示一个反斜杠字符,正确。

D中匹配十六进制转义字符,cc是合法的十六进制数,正确。

例2:已定义c为字符型变量,则下列语句中正确的是

A) c=…97?; B) c="97"; C) c=97; D) c="a";

分析:答案选择C。

A中'97'为非法的字符常量。单引号内不能出现多个字符。

B中"97"为字符串,字符常量的标志的一对单引号,而不是双引号。

C将整型量97赋给字符变量c,即将ASCII码值为97的字符常量'a'赋给变量c,正确。

D中"a"不是字符常量,而是字符串。

3、对字符型数据的运算

2、大写字母的ASCII码与对应的小写字母的ASCII码相差32。

大写字母转换成小写字母

'A' 加上32 'a'

3、字符数字的ASCII码与对应的数字的ASCII码相差了48.

字符数字转换成数字

…1?减去48 1

4.使用putchar函数输出(每次输出一个字符)

putchar(c) c可以是字符变量名或字符常量

putchar(…c?) 输出c

putchar(…\\?)参数是转义字符输出\

5.使用getchar输入

c=getchar( )表示从键盘输入字符。

使用putchar getchar要用#include”stdio.h”

第五节算术表达式

1、算术运算符与算术表达式

2、求余运算符%的运算对象只能是整型,即%左侧的被除数与右侧的除数都只能为整型值。

求余得到的运算结果的符号与被除数相同。(3%1.2错了)

如:12%9运算结果为3,12%-9的运算结果也为3。

-12%9运算结果为-3,-12%-9的运算结果也为-3。

3、求余就是求余数,而不是求商,这点总是容易被弄混淆。

想一想:3%9运算结果为多少??(结果为3而不是0)

4、1/2得到的数据是为0的,这个原则是当除号“/“左右两边都为整数的时候,我们遵守取整丢小数的原则。那么如果希望1和2相除得到0.5,我们就可以用1.0/2,或者1/2.0,或者1.0/2.0都可以实现。

下面,大家自己算算,表达式3.6-5/2+1.2+5%2的值应该是多少?

A)4.3 B)4.8 C)3.3 D)3.8

分析:根据表3列出的算术运算符优先级,本题目应先计算5/2与5%2得到2和1,然后再计算3.6-2+1.2+1,得到答案D。

2、强制类型转换

强制类型转换表达式为:(类型名)表达式

其中,“(类型名)”是强制类型转换符,它将右边表达式的类型转换为括号中的类型。

强制类型转换并不会改变右边表达式的值,(类型名)表达式这个整体产生了一个临时值。

例:有如下代码:

float a=3.8;

int b;

b=(int)a;

这段代码把a强制转化为整型数据3(注意C语言里的强制转换都是截取,而不是四舍五入),并把这个值3赋给整型变量b。注意,此时a的值仍然是3.8。

强制转换只控制其后的一个数据

例:(int ) a+b和(int ) (a+b)不同:

前者是把a强制转换为整型,再把这个临时的整型值和b作运算。

后者是先计算a+b,之后把它们的值做整体的强制转换。

强制转换需要注意的几点:

1) 类型名外的()必不可少

第六节赋值表达式

1、赋值运算符和赋值表达式

int a = 12;

它的含义是将赋值运算符右边的表达式的运算结果赋值给左边的变量。

说明:

1)赋值运算符左边必须是单个变量。例如x+1=3在数学上虽然是正确的,可是在C语言中却

是错误的,不能将一个常量赋值给一个表达式。

2)赋值运算会将左边变量的值用右边表达式的值来代替,右边的值不会改变。

例如,int x=3,y=5;

x=y+1;

以上代码先将x初始化为3,将y初始化为5。执行完赋值语句x=y+1;后,变量x的值被y+1覆盖掉,即x的值变成了6,变量y的值不会改变。

3)赋值表达式的值是赋值号左边变量被赋值后的值。

例如:x=0整个赋值表达式的值是变量x被赋值之后的值,也就是说这个表达式的值为0。

4)可以将赋值表达式的值再赋值给变量,形成连续赋值运算。(学会分析过程)

例如,x=(y=25)是一个连续赋值表达式。由于赋值表达式的结合形式是从右到左,因此可以简写为x=y=25,它表达的含义是将25赋值给变量y,然后将表达式y=25的值赋值,即变量y的值赋给变量x,结果使变量x 和y的值都变为25。

5)虽然可以连续赋值,但是不能连续初始化。(考试重点)

例如:int x=y=25; 就是错误的。

对于int x=y=25;我们会先计算y=25,此时,y并没有定义,而是在直接使用,所以就会报错。

如果我们把上面的连续初始化改成:int y; int x=y=25; 这样就没有错了。

6)赋值运算符不同于数学上的“等号”。(C语言中“=”表示赋值,“= =”表示等号)

因为赋值运算符的操作是将赋值号右边的表达式的值赋给左边的变量。它是单方向的操作。例如在数学中,i=i+1不成立,但在赋值表达式中却是成立的,它表示将变量i的值增加1之后得到的结果赋值给变量i,因此,该表达式的含义是使变量i的值增加1。

7)如果赋值号两边的运算对象类型不一致,则系统会自动进行类型转换。

8)自动类型转换的实例:int a=3.6;

赋值号左边的变量类型是整数,右边的值是实数,因此将右边的值转换成整数。3.6转换成整数后是3,因此a的值被赋为了3。

注意:实数转换成整数的方法是截取而不是四舍五入,因此直接把小数点后的数据去掉就行了。

例1:已知变量n的初始值为8,计算表达式n+=n*=n-2的值。(经典考题)

分析:表达式中有两个复合赋值运算符:+=和*=。它们优先级相同,运算方向均为自右向左。因此,运算的步骤如下:

(1)先计算最右边表达式n-2的值为6;

(2)再计算n*=6,该表达式等价n=n*6,将n中的值8乘以6,得到48,并赋值给n,因此变量n的值为48,表达式n*=n-2的值为48;

(3)最后计算n+=48,该表达式相当于n=n+48。因为上一步计算出n的值为48,所以n+48的值为96,即n的值最终为96。

通过计算,表达式n+=n*=n-2的值为96。原先的值被覆盖掉,用新值

例2:int a=5,b=6,c=2;

c *=a+b;

请问:c的值最终是多少?

错误的算法:c=c*a+b;得到的是16。

正确的算法:c=c*(a+b);得到的是22。

第七节自加表达式

1、自加与自减运算符(超级重点)

自加、自减运算是一种赋值运算。

?遇到a++(加号在后,则先使用后自加)

?遇到++a(加号在前,则先自加后使用)。

例如有以下代码(通过以下代码,学会分析a++和++a的执行过程):

int a=3,b;

b=a++;

这段代码执行完后,b的值为3,a的值为4。

int a=3, b;

b=++a,代码发生了变化,那么执行完后,a和b的值分别为多少呢?

对于语句b= ++a; 按照以上所说,我们把a值先加一,得到a的值为4。之后赋值给b。因此,整个这段代码结束后,a、b的值都为4。

补充考点:

1)增量运算符的运算对象只能为单个变量,不能是常量或是表达式。例如:++3、++(i+1)

都是不合法的增量表达式。

2)不论“++”在变量的前面还是在变量的后面,对于变量本身都具有“增加1”的相同效果。

例如i++、++i两个增量表达式运算后变量i的值都是增加1。

3)自加、自减运算符的结合方向是“从右到左”。

例如有如下代码:

int y,x=3;

y=-x++;

负号“-”与自加运算符“++”具有相同的运算优先级,但是根据“从右到左”的结合方向,那么应该先计

算x++,不是++x,x++才为整体,而x++可以先看成就是x。取其负值3赋给y,那么y的值就为-3,这部分执行结束了,x的值再加一,所以这段代码结束后,x的值为4,y的值为-3。

4)在使用“++”运算符时,变量应该有个确定的值。例如:int a; a++; 就是错误的。因为刚定

义好的a值不确定。让一个垃圾值自加一没有任何意义。

经典考题:

例1:有以下定义语句:double a,b; int w; long c;

若各变量已正确赋值,则下列选项中正确的表达式是

A)a=a+b=b++ B)w%((int)a+b) C)(c+w)%(int)a D)w=a%b;

分析:答案C正确。

选项A是一个连续赋值表达式,先将表达式b++的值赋值给表达式a+b,因为赋值语句的左边只能是变量名称,因此这时会出错。

选项B是一个求余运算符连接起来的两个运算对象,除数((int)a+b)看起来比较复杂,它先将双精度类型变量a的值强制转换为整型,然后再与双精度类型变量b求和,得到的值的类型仍为双精度类型,也就是说除数是一个实数而不是整数,因此不能使用%运算符,所以答案B错误。

选项C的被除数是两个整型数相加,运算结果为整型,除数为(int)a,也为整型,答案C正确。

选项D中a%b错误。

例2有以下程序

main()

{ int m=12,n=34;

printf("%d%d",m++,++n);

printf("%d%d\n",n++,++m);

}

程序运行后的输出结果是

A)12353514 B)12353513 C)12343514 D)12343513

答案为A。

第八节逗号表达式

5、逗号运算符和逗号表达式

1、在C语言中,逗号除了做分隔符,还可以作一种运算符——逗号运算符。用逗号运算符把两个或两个以上的表达式连接起来,可以构成一个新的表达式,即逗号表达式。例如:

x=5,y=6,z=7 整个(x=5,y=6,z=7)是逗号表达式,他的数值等于7,

2、逗号运算符是级别最低的运算符号,比赋值还要低。

3、逗号运算符具有从左到右的结合性,即先计算第一个表达式,然后计算第二个表达式,直到最后一个表达式。最后一个表达式的值就是整个逗号表达式的值。上述的逗号表达式的值就是表达式z=7的值7。

x=5,y=6,z=7 是个逗号表达式,它的数值为7。x的数值为5。

x=(5,y=6,z=7)是个逗号表达式,它的数值为7,x的数值为7。

.

例1: 有以下程序

main( )

{ int a1=3,a2=9;

printf("%d\n",(a1,a2));

}

以下叙述中正确的是

A)程序输出3B)程序输出9

C)格式说明符不足,编译出错D)程序运行时产生出错信息

分析:函数体中首先变量初始化,变量a1、a2的值分别为3和9,接下来的printf输出语句中,要输出的项是(a1,a2),在此要明白输出项是一个逗号表达式就不会选错答案。逗号表达式a1,a2的值就是a2的值,因此本题的答案为B。

请注意它与printf("%d\n",a1,a2)的区别。

例2:有以下程序(经典考题)

main( )

{ int x,y,z;

x=y=1;

z=x++,y++,++y;

p rintf(“%d,%d,%d\n”,x,y,z);

}

程序运行后的输出结果是

A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,1

本题答案为C。

补充:

int a=1,x;

x= (a++,a++,++a)后,x的数值为多少?x为4

int a=1,x;

x= a++,a++,++a后,x的数值为多少?x为1

C语言基础练习题(含答案)Word版

第一章C语言基础知识 1.1 选择题 1. 以下不是C语言的特点的是()。B A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2. 下列字符序列中,不可用作C语言标识符的是()。B A.abc123 B.no.1 C._123_ D._ok 3. 正确的C语言标识符是()。A A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。B A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 5. 下列符号中,不属于转义字符的是()。B A.\\ B.\0xAA C.\t D.\0 6. 不属于C语言关键字的是()。d A.int B.break C.while D.character 7. 是C语言提供的合法关键字的是()。b A.Float B.signed C.integer D.Char 8. 以下不能定义为用户标示符的是()。b A.scanf B.Void C._3com_ D.int 9. 一个C程序是由()。 b A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成 10. C语言程序的基本单位是()。 c A.程序行 B.语句 C.函数 D.字符 11. 下列说法中,错误的是()。 a A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用 D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12. 以下说法中正确的是()。 c A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行

《C语言程序设计》基本知识点

《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5)复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

第一章 C语言基础知识ji

第一章C语言基础知识 一、选择题 1.C语言规定,必须用 C 作为主函数名。(0级) A)Function B)include C)main D)stdio 2.一个C程序可以包含任意多个不同名的函数,但有且仅有一个B,一个C程序总是从B开始执行。(0级) A)过程B) 主函数C)函数D)include 3.A是C程序的基本构成单位。(0级) A)函数B) 函数和过程C) 超文本过程D) 子程序4.下列说法正确的是C。(0级) A)一个函数的函数体必须要有变量定义和执行部分,二者缺一不可 B)一个函数的函数体必须要有执行部分,可以没有变量定义 C)一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数 D)以上都不对 5.下列说法正确的是D。(0级) A)main函数必须放在C程序的开头 B)main函数必须放在C程序的最后 C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的 D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的 6.下列说法正确的是C。(0级) A)在执行C程序时不是从mian函数开始的 B)C程序书写格式严格限制,一行内必须写一个语句 C)C程序书写格式自由,一个语句可以分写在多行上 D)C程序书写格式严格限制,一行内必须写一个语句,并要有行号 7.在C语言中,每个语句和数据定义是用C结束。(0级) A)句号B)逗号C)分号D)括号 8.下列字符串是标识符的是A。(0级) A)_HJ B)9_student C)long D)LINE 1 (因为有空格) 9.以下说法正确的是C。(0级) A)C语言程序总是从第一个定义的函数开始执行 B)在C语言程序中,要调用的函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行 D)C语言程序中的main()函数必须放在程序的开始部分 10.B不是C语言提供的合法关键字。(0级) A)switch B)print C)case D)default 11.C语言提供的合法关键字是A。(0级) A)break B)print C)funiton D)end 12.C语言提供的合法关键字是A。(0级) A)continue B)procedure C)begin D)append 13. C语言规定: 在一个源程序中, main函数的位置C。(02~03第一学期试题)(?) A) 必须在最开始B) 必须在系统调用的库函数的后面

C语言程序设计基础知识 习题一及参考答案

第一章:程序设计基础知识 一、单项选择题 1、以下( )是面向过程的程序设计语言。 A)机器语言B)汇编语言C)高级语言D)第四代语言 2、程序设计一般包含以下四个步骤,其中其中首先应该完成的是( )。 A)设计数据结构和算法B)建立数学模型 C)编写程序D)调试和运行程序 3、以下常用算法中适合计算等差级数的算法是( )。 A)枚举法B)递推法C)分治法D)排序法 4、以下不属于算法基本特征的是( )。 A)有穷性B)有效性C)可靠性D)有一个或多各输出 5、以下描述中不正确的是( )。 A)程序就是软件,但软件不紧紧是程序。 B)程序是指令的集合,计算机语言是编写程序的工具。 C)计算机语言都是形式化的语言,它有一个语法规则和定义。 D)计算机语言只能编写程序而不能表示算法。 6、下面描述中,正确的是( ) A)结构化程序设计方法是面向过程程序设计的主流。 B)算法就是计算方法。 C)一个正确的程序就是指程序书写正确。 D)计算机语言就是编写程序的工具而不是表示算法的工具。 7、下面描述中,不正确的是( )。 A)递归法的关键是必须有一个递归终止的条件。

B)递归算法要求语言具有反复自我调用子程序的能力。 C)对于同一个问题,递推算法比递归算法的执行时间要长。 D)递推算法总可以转换为一个递归算法。 8、N-S图与传统流程图比较,主要优点是( )。 A)杜绝了程序的无条件转移。 B)具有顺序、选择和循环三种基本结构。 C)简单、只管。 D)有利于编写程序。 A)B)C)D) 二、填空题 1、在流程图符号中,判断框中应该填写的的是________。(判断条件) 2、结构化程序设计是__________应遵循的方法和原则。(面向过程编程) 3、结构化程序必须用__________程序设计语言来编写。(具有结构化控制语句) 4、可以被连续执行的一条条指令的集合称为计算机的________。(程序) 5、只描述程序应该“做什么”,而不必描述“怎样做”的语言被称为________。(面向对象) 6、任何简单或复杂的算法都是由_____和_____这两个要素组成。(数据结构算法) 7、算法的_______特征是指:一个算法必须在执行有限个操作步骤后终止。(有穷性) 8、在三种基本结构中,先执行后判断的结构被称为_________。(直到型循环结构) 9、在程序设计中,把解决问题确定的方法和有限的步骤称为______。(算法) 10、程序设计风格主要影响程序的________。(可读性) 11、用模块组装起来的程序被成为________结构化程序。(模块化) 12、采用自上而下,逐步求精的设计方法便于____________。(结构化和模块化) 三、应用题

第1章 C语言基本知识

第一章C语言基本知识 一、C语言的产生和发展 1、C语言的发展源于人们希望用高级语言编写操作系统。(C-BCPL第二字母)ALGOL60(高级语言)->CPL(硬件支持)-BCPC->B->C->标准C->ANSI C->ISO C 2、语言既具有高级语言特性,又具有低级语言特性-中级语言。 二、C语言的特点 1、语言简明、紧凑、使用方便、灵活。 2、运算符丰富。 3、数据结构丰富,具有现代化语言的各种数据结构。 4、具有结构化的控制语句。 5、语法限制不太严格,程序设计自由度大。 6、C语言允许直接访问物理地址,能实现汇编语言的大部分功能,可以直接对硬件进行操作。 7、生成目标代码质量高,程序执行效率高。 8、用C语言写的程序可移植性好。 三、C程序的基本规则 1、C程序由函数构成。(亦称为函数语言。) 2、C程序中每条语句都用一个分号结尾,分号是C程序语句的必要组成部分,语句最后的分号不能省略。 3、每个C程序都有一个主函数(main()),且只有一个主函数。并且程序是从主函数开始执行的。 4、调用C语言的标准函数通常要在程序开头使用包含命令include,C程序中的命令不用分号结尾。 5、C程序中的变量必须先定义,后使用。 6、C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写,同一字母的大小写被作为两个不同的字符。 7、C程序中可以用“/*……*/”的形式加注释。 8、C程序书写格式自由,一行内可以写几条语句,一条语句可以写在多行。 9.一个函数包含两个部分: (1)函数的说明部分。包括函数名,函数类型,函数属性,函数参数名等。 如:int max(x,y) int x,y; 函数名后必须跟一对圆括弧,函数参数可以没有,如:main()。 (2)函数体。

第一章C语言概述

第一章C语言概述 一、选择题: 1、一个C程序的执行是从( A )。 A本程序的main函数开始,到main函数结束 B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C本程序的main函数开始,到本程序文件的最后一个函数结束 D本程序文件的第一个函数开始,到本程序main函数结束 2、在 C 语言中,每个语句必须以( D )结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 3、C 语言规定:在一个源程序中,main函数的位置( C )。 A. 必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 4、一个C 语言程序是由( B )。 A. 一个主程序和若干子程序组成 B. 函数组成 C. 若干过程组成 D. 若干子程序组成 5、下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数

D. 程序可以从任何非主函数开始执行 6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D. 自动保存源文件 二、填空题: 1、C 语言只有 32 个关键字和 9 种控制语句。 2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C 语言程序。 3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 \* 符号作为开始标记,以 */ 符号作为结束标记。 4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函 数 printf 完成的。 5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名 是 .exe 。 6、C 语言的标识符只能由字母、数字和下划线三种字符组成。 第三章数据类型、运算符和表达式 一、选择题: 1、以下选项中,不正确的 C 语言浮点型常量是( C )。

C语言公共基础知识总结(不容错过)

C语言公共基础知识总结 公共基础知识总结 第一章数据结构与算法 1.1 算法 算法:是指解题方案的准确而完整的描述。 算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。 算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。特征包括: (1)可行性; (2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性; (3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义; (4)拥有足够的情报。 算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。 指令系统:一个计算机系统能执行的所有指令的集合。 基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。 算法的控制结构:顺序结构、选择结构、循环结构。 算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。 算法复杂度:算法时间复杂度和算法空间复杂度。 算法时间复杂度是指执行算法所需要的计算工作量。 算法空间复杂度是指执行这个算法所需要的内存空间。 1.2 数据结构的基本基本概念 数据结构研究的三个方面: (1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;

(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。 数据结构是指相互有关联的数据元素的集合。 数据的逻辑结构包含: (1)表示数据元素的信息; (2)表示各数据元素之间的前后件关系。 数据的存储结构有顺序、链接、索引等。 线性结构条件: (1)有且只有一个根结点; (2)每一个结点最多有一个前件,也最多有一个后件。 非线性结构:不满足线性结构条件的数据结构。 1.3 线性表及其顺序存储结构 线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。 在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。 非空线性表的结构特征: (1)且只有一个根结点a1,它无前件; (2)有且只有一个终端结点an,它无后件; (3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。结点个数n称为线性表的长度,当n=0时,称为空表。 线性表的顺序存储结构具有以下两个基本特点: (1)线性表中所有元素的所占的存储空间是连续的; (2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)为第一个元素的地址,k代表每个元素占的字节数。

学习c语言的必备基础知识.doc

学习C语言的必备基础知识 第一章计算机和数据的存储 第一节了解计算机 很奇怪的一件事,现在的。语言教材,一上来就是变量,表达式,一点也不提计算机原理方面的事,把c语言当作语言,数学来学,只是生硬的列出一些语法规则,学生们难以理解,只好死记硬背,没有把握住本质的东西,也就无法随心所欲,其实c语言是一门非常好学的语言,核心的语法规则是非常少的,而旦都是和计算机息息相关,所以必须要学习好计算机的一些基础,掌握好计算机的基础知识对学习C语言至关重要,对将来其它语言的编程都极其有益,C语言还有一个优点,就是写法非常简洁明了,和c++, java, C#, javascript等语言有着非常相似的书写方式,所以学好C语言,可以轻松的过渡到大量其它编程语言。讲完C以后,将陆续推出java ,C#, C++, javascript, ruby, python等,不过都是在此教程的基础之上进行,所以C语言乃基础之基础,想要学编程,强烈建议从C语言开始。下面开始了解计算机。 按照冯诺依曼的理论,计算机含有5个部分,运算器、控制器、存储器、输入和输出设备。现在我们通常把运算器、控制器和在一起,称为CPU(中央处理器),存储器就是我们说的内存和硬盘,输入设备就是鼠标,键盘等,输出设备主要是显示器、打印机、绘图仪等。 其中CPU和内存最关键,CPU是执行指令的部件,内存是一些连续的存储单元,用来存储指令和数据,每个单元可以存8位二进制数,也称为1个字节,计算机里存储器都是以字节为单位的,在描述网络速度的时候通常以位为单位,大家注意区别。CPU要执行的指令就存在内存里,CPU按照指定顺序连续地执行内存中的指令,这就是冯诺依曼体系的基本工作原理。 什么是指令,就是一些二进制的数,比如10010001是一条加法指令, 10011011是一条存储指令,CPU遇见不同的指令就会完成不同的操作,CPU能够执行的指令是生产厂家生产时就设计好的,比如8086 基本指令有70条,那么CPU就只认识这70条指令,CPU在不断升级, 除了运行速度加快还会增加一些新的指令,CPU的指令分三大类:传

C语言第一章基础练习题

第一章基础练习题 一、填空题 1、C语言是在70 年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。后来由美国国家标准协会(American National Standards Institute)在此基础上制定了一个C 语言标准,于一九八三年发表。通常称之为ANSI C。 2、目前最流行的C语言有以下几种:Microsoft C 或称MS C ,Borland Turbo C 或称Turbo C ,AT&T C ,这些C语言版本不仅实现了ANSI C标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。 9 种控制语句,程序书写自由,主要用小写字母表示,压缩了一切不必要的成分。 Turbo C扩充了11个关键字: asm _cs _ds _es _ss cdecl far huge i nterrupt near pascal 注意:在C语言中,关键字都是小写的。 4、运算符丰富。共有34 种。C把括号、赋值、逗号等都作为运算符处理。从而使C 的运算类型极为丰富,可以实现其他高级语言难以实现的运算。 5、C源程序的结构特点 1>.一个C语言源程序可以由一个或多个源文件组成。 2>.每个源文件可由一个或多个函数组成。 3>.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。 4>.每个函数由两部分组成:说明部分与函数体,其中说明部分主要包括返回类型、函数名、形参例表。函数体包括:说明部分与执行部分。在C语言中函数的定义是并列的,而函数的调用可嵌套。 5>.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。 6>.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。 6、从书写清晰,便于阅读,理解,维护的角度出发,在书写程序时应遵循以下规则: 1>.一个说明或一个语句占一行。 2>.用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。 3>.低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。 7、C语言字符集由字母,数字,空格,标点和特殊字符组成。在字符常量,字符串常量和注释中还可以使用汉字或其它可表示的图形符号。 8、Turbo C 2.0主菜单有:File Edit Run Compile Project Options Debug Break/watch 共10个。除Edit外, 其它各项均有子菜单, 只要用Alt 加上某项中第一个字母, 就可进入该项的子菜单中。 File菜单 Load :装入一个文件, 可用类似DOS的通配符(如*.C)来进行列表选择。也可装入其它扩展名的文件, 只要给出文件名(或只给路径)即可。该项的热键为F3, 即只要按F3即可进入该项, 而不需要先进入File菜单再选此项。 Pick :将最近装入编辑窗口的8个文件列成一个表让用户选择, 选择后将该程序装入编辑区, 并将光标置在上次修改过的地方。其热健为Alt-F3。 New :新建文件, 缺省文件名为NONAME.C, 存盘时可改名。 Save :将编辑区中的文件存盘, 若文件名是NONAME.C时, 将询问是否更改文件名, 其热键为F2。 Write to :可由用户给出文件名将编辑区中的文件存盘, 若该文件已存在, 则询问要不要覆盖。 Directory :显示目录及目录中的文件, 并可由用户选择。 Change dir:显示当前默认目录, 用户可以改变默认目录。 Os shell:暂时退出Turbo C 2.0到DOS提示符下, 此时可以运行DOS 命令, 若想回到 Turbo C 2.0中, 只要在DOS状态下键入EXIT即可。 Quit :退出Turbo C 2.0, 返回到DOS操作系统中, 其热键为Alt+X。 Run菜单 Run :运行由Project/Project name项指定的文件名或当前编辑区的文件。如果对上次编译后的源代码未做过修改, 则直接运行到下一个断点(没有断点则运行到结束)。否则先进行编译、连接后才运行, 其热键为Ctrl+F9。 Program reset:中止当前的调试, 释放分给程序的空间, 其热键为Ctrl+F2。 Go to cursor ::调试程序时使用, 选择该项可使程序运行到光标所在行。光标所在行必须为一条可执行语句, 否则提示错误。其热键为F4。 Trace into :在执行一条调用其它用户定义的子函数时, 若用Trace into项, 则执行长条将跟踪到该子函数内部去执行, 其热键为F7。 Step over :执行当前函数的下一条语句, 即使用户函数调用, 执行长条也不会跟踪进函数内部,

第1章 C语言基础知识

第一章 C语言基础知识 一、选择题 1.算法具有五个特性,以下选项中不属于算法特性的是______。 A)有穷性B)简洁性C)可行性D)确定性 【答案】B 【解析】本题考查的是算法的特性。一个算法应当具有以下5个特性:有穷性;确定性;可行性;有零个或多个输入:由一个或多个输出。简洁性不属于这5个特性,所以本题应该选择B。 2.以下叙述中错误的是 A)用户所定义的标识符允许使用关键字 B)用户所定义的标识符应尽量做到“见名知意” C)用户所定义的标识符必须以字母或下划线开头 D)用户定义的标识符中,大、小写字母代表不同标识 【答案】A 【解析】本题考查C语言中标识符的概念。用用户标识符是由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,并且不能与C语言关键字相同。所以本题应该选择A。 3. 以下4组用户定义标识符中,全部合法的一组是() A)_main B)If C)txt D)int enclude -max REAL k_2 sin turbo 3COM _001 【答案】A 【解析】本题考核的知识点是C语言中的标识符命名规则。标识符是以字母或下划线开头,由字母、数字或下划线组成的字符序列(例如,-max含非法字符-),并且用户标识符不能与C语言中的32个关键字同名(例如,int是关键字,不是合法的用户标识符)。选项B中-max不是字母、数字或下划线组成的字符序列,故选项B不正确;选项C中3COM 不是由字母或下划线开头,故选项c不正确;选项D中int为C语言中的关键字,故选项D不正确;选项A中全部为合法的标识符,所以,4个选项中选项A符合题意。 4. 以下选项中,合法的一组c语言数值常量是( ) A)028 B)12. C).177 D)0x8a .5e-3 0Xa23 4e1.5 10,000 -0xf 4.5e0 0abc 3.e5 【答案】B 【解析】本题考查的知识点是:数值常量。 数值常量分为整型和实型两类。其中,整型有十进制、八进制和十六进制三种表示法;实型有小数形式和指数形式两种表示法。十进制和书面使用的数据表示一样;八进制是以数字O开头,后面跟由0~7组成的八进制数组成;十六进制是以0x(或OX)开头,后面跟由0~9与A~F(或a~f)组成的十六进制数组成;小数形式由数字和小数点组成,其整数部分或小数部分如果为0可省略,但不能同时省略。指数形式由小数形式或十进制形式开头,后面跟e(或E),再跟一个十进制整数组成。选项A中,028是八进制形式,但后面跟的8不在0~7之内,所以非法;选项c中,4e1.5是指数形式,但e后面所跟的不是整数,所以非法;选项D中,10,000中不能有?,?,所以非法。故本题应该选择B。 5. 以下叙述中正确的是() A)C语言的源程序不必通过编译就可以直接运行 B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令

第一章 C语言基础知识

第一章C语言基础知识 考点 1 C语言程序的结构认识 本节通过一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使读者对c语言有个初步认识。 例1 计算两个整数之和的c程序: #include main() { int a,b,sum; /*定义变量a,b,sum为整型变量*/ a=20; /*把整数20赋值给整型变量a*/ b=15; /*把整数15赋值给整型变量b*/ sum=a+b; /*把两个数之和赋值给整型变量sum*/ printf(“a=%d,b=%d,sum=%d\n”,a,b,sum); /*把计算结果输出到显示屏上*/ } 重点说明: 1、任何一个c语言程序都必须包括以下格式: main() { } 这是c语言的基本结构,任何一个程序都必须包含这个机构。括号内可以不写任何内容,那么该程序将不执行任何结果。 2、main()----在c语言中称之为“主函数”,一个c程序有且仅有一个main函数,任何一个c 程序总是从main函数开始执行,main函数后面的一对圆括号不能省略。 3、被大括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执行的内容。 4、在{ }里面每一句话后面都有一个分号(;),在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志。 5、printf(“a=%d,b=%d,sum=%d\n”,a,b,sum); ----通过执行这条c语言系统提供给我们直接使用的屏幕输出函数,用户即可看到运行结果,本程序运行后,将在显示器上显示如下结果: a=20,b=15,sum=35 6、#include 注意:(1)以#号开头(2)不以分号结尾 这一行没有分号,所以不是语句,在c语言中称之为命令行,或者叫做“预编译处理命令”。 7、程序中以/*开头并且以*/结尾的部分表示程序的注释部分,注释可以添加在程序的任何位置,为了提高程序的可读性而添加,但计算机在执行主函数内容时完全忽略注释部分,换而言之就是计算机当做注释部分不存在于主函数中。 考点 2 C程序的生成过程 C程序是先由源文件经编译生成目标文件,然后经过连接生成可执行文件,如图所示。 编译过程

C语言期末考试题库(第一章c语言基.doc

一、单项选择 1.算术运算符 ,赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为 (). A、关系运算 ,赋值运算 ,算术运算 B、算术运算 ,关系运算 ,赋值运算 C、算术运算 ,赋值运算 ,关系运算 D、关系运算 ,算术运算 ,赋值运算 答案: B 2.下述正确的 C语言常量是 :(). A、E2 B、3e-3 C、1.5E2.5 D、5.0E 答案: B 3.使用共用体变量 ,不可以 (). A、进行动态管理 B、节省存储空间 C、同时访问所有成员 D、简化程序设计 答案: C 4.为表示关系 x>=y>=z,应使用 C语言表达式为 :()

A、(x>=y)&(y>=z) B、(x>=y>=z) C、(x>=y)&&(y>=z) D、(x>=y)AND(y>=z) 答案: C 5.以下程序的输出结果是(). main() {char str[]="ABCD",*p=str;printf("%s\n",p);} A、68 B、ABCD C、不确定的值 D、字符 D 的地址 答案: B 6.char a[10];不能将字符串 "abc"存储在数组中的是 (). A、a="abc"; B、a[0]=0;strcat(a,"abc"); C、int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0; D、strcpy(a,"abc"); 答案: A 7.fscanf 函数的正确调用形式是 (). A、fscanf(文件指针 ,格式字符串 ,输入表列 );

B、fscanf(格式字符串 ,文件指针 ,输出表列 ); C、fscanf(fp,格式字符串 ,输出表列 ); D、fscanf(格式字符串 ,输出表列 ,fp); 答案: A 8.下列数组说明中正确的是(). A、int array[][]={1,2,3,4,5,6,7,8,9,10}; B、int array[][][5]={1,2,3,4,5,6,7,8,9,10}; C、int array[][4]={1,2,3,4,5,6,7,8,9,10}; D、int array[3][]={1,2,3,4,5,6,7,8,9,10}; 答案: C 9.以下选项中 ,与 k=n++完全等价的表达式是 (). A、n=n+1,k=n B、k+=n+1 C、k=++n D、k=n,n=n+1 答案: D 10.针对下列程序段回答问题(). for(t=1;t<=100;t++) { scanf("%d",&x); if(x<0)continue;

C语言基础知识总复习

C语言基础知识总复习(考前突击专用) 总体上必须清楚的: 1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。 byte是指字节, 一个字节 = 八个位. 概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、define PI ; 这个写法是错误的,一定不能出现分号。 3、每个C语言程序中main函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、break可用于循环结构和switch语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章 C语言的基础知识 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。 3、一个C语言程序有且只有一个main函数,是程序运行的起点。 第二节、熟悉vc++ 1、VC是软件,用来运行写的C语言程序。 2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c---.obj---.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。(常考!)第三节、标识符

1、标识符(必考内容): 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了 2、标识符分为关键字、预定义标识符、用户标识符。 关键字:不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 预定义标识符:背诵define scanf printf include。记住预定义标识符可以做为用户标识符。 用户标识符:基本上每年都考,详细请见书上习题。 第四节:进制的转换 十进制转换成二进制、八进制、十六进制。 二进制、八进制、十六进制转换成十进制。 第五节:整数与实数 1)C语言只有八、十、十六进制,没有二进制。但是运行时候,所有的进制都要转换成二进制来进行处理。(考过两次) a、C语言中的八进制规定要以0开头。018的数值是非法的,八进制是没有8的,逢8进1。 b、C语言中的十六进制规定要以0x开头。 2)小数的合法写法:C语言小数点两边有一个是零的话,可以不用写。 在C语言中可写成1. 在C语言中可以写成.1。 3)实型数据的合法形式: a、就是合法的,且数据是×10-1。 b、考试口诀:e前e后必有数,e后必为整数。请结合书上的例子。 4)整型一般是4个字节, 字符型是1个字节,双精度一般是8个字节: long int x; 表示x是长整型。 unsigned int x; 表示x是无符号整型。

第一章C语言基础知识

例1:计算两个整数之和的C程序 #include "stdio.h" main( ) /*求两数之和*/ { int a,b,sum; /*变量说明*/ a=10; /*把整数10赋值给变量a */ b=20; /*把整数20赋值给变量b */ sum=a+b; /*把两数之和赋值给变量sum */ printf("a=%d,b=%d,sum=%d\n",a,b,sum); /*把计算结果输出到用户屏幕上*/ } 2、关于注释的说明(考点一) ?程序中以“/*”开头并且以“*/”结尾的部分表示程序的注释部分。 ?注释可以加在程序的任何位置。 ?注释是为了提高程序的可读性而增加的,不属于C语言。 ?/*/*ddddddd*/*/ 这样的注释不是合法的。注释是从“/*“开始到”*/“结束的。就近原则,以该例为准, 属于注释的就是/* */两个之间的/*ddddddd,所以最后剩下的*/就是多余了。 例1:阅读以下程序,想一想结果是多少? main( ) { int a=0,b=0; a =10; /*给a赋值 b=20; 给b赋值*/ 这句等于/*给a赋值b=20; 给b赋值*/ printf("a+b=%d\n",a+b); /*输出计算结果*/ } 这是2006年9月全国计算机等级考试二级考试的第19题。需要特别注意的是,程序第三行“/*”开始的注释部分,直到第四行末尾才结束。因此上面的程序等价于以下的程序: main( ) { int a=0,b=0; a =10; printf("a+b=%d\n",a+b); } 3、标识符(考试重点) 在C语言中用于标识名字的有效字符序列称为标识符。标识符可以用作常量名、变量名、符号名、函数名和后面要学到的指针名、数组名等。C语言中标识符的命名规则如下: 1)标识符只能由字母、数字和下划线组成; 2)标识符的第一个字符必须是字母或下划线。 3)标识符区分大小写字母。如int与Int是两个完全不同的标识符。 合法的标识符: a x sum spels program ab1 _to file_5 a1b2c3 _2 B3 非法的标识符: ab12# (含有不合法的字符“#”) a1-c (含有不合法的字符“-”) ab c (空格不是合法标识符) πr (“π”不是字母,为不合法标识符字符) 23ab (第一个字符不能为数字) C语言的标识符分为如下三类: 1)关键字 关键字是具有特定含义的、专门用来说明C语言特定成分的一类标识符。关键字均由小写字母构成。Int 就不是关键字。

c语言基础知识及考点整理解读

第一周 int定义整型变量所有字母都要先定义再使用。 算法:描述完成任务的步骤序列。 算法的三个基本结构:顺序、分支、循环。 算法的表示:自然语言、程序流图、N-S图 程序流图中判定框用菱形,开始结束用圆角矩形,赋值用矩形。 main:主函数,后面一定是英文输入法下的() int:定义“整形变量” printf:输出语句 scanf:输入语句 %:占位符一个占位符就是占据一个字符的位置,格式化输出时显示为个空格. 具体用法如下: %a,%A 读入一个浮点值(仅C99有效) %c 读入一个字符 %d 读入十进制整数 %i 读入十进制,八进制,十六进制整数 %o 读入八进制整数 %x,%X 读入十六进制整数 %s 读入一个字符串,遇空格、制表符或换行符结束。 %f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。 %p 读入一个指针 %u 读入一个无符号十进制整数 %n 至此已读入值的等价字符数 %[] 扫描字符集合

%% 读%符号(c此内容来自baidu) &:“取地址”运算符:这个运算发可以这样理解,比如说&a的含义就是a在内存中的地址。因为&运算符能够取出一个变量在内存中的地址,所以叫做取地址运算符。 输入语句scanf("%d %d",&a,&b); 输出语句printf("%d", c); 输出内容由“”引出 注意一个;就是一个语句,每句话后都要有分号,不能丢。括号是英文的, 一个程序主要由顺序分支循环3种结构构成 { }不能忘,限制变量作用范围 进入CodeBlocks之后新建一个项目,在project选项中选择控制台应用程序Console application进行编写。 输入语句scanf和输出语句printf中的“f”指的是format格式。 程序编写完成后点击Build——Build and run 或F9进行运行,并可点击View——log看到编程日志,检查错误。 分号;不能少 P.S.如果觉得编写过程中字符显示太小可以按住ctrl并将鼠标滚轮向下滚来放大~ 第二周 计算一元二次方程的根的题目中,遵守四则运算法则,求根公式.../2a中的2a 要用()括起来 华氏温标(Fahrenheit temperature scale)符号℉,1724年,德国人华伦海特制定了华氏温标,他把一定浓度的盐水凝固时的温度定为0℉,把纯水凝固时的温度定为32 ℉,把标准大气压下水沸腾的温度定为212℉,中间分为180等份,每一等份代表1度,这就是华氏温标,用符号F表示,这就是华氏温度 摄氏温度(℃)和华氏温度(℉)之间的换算关系为:

第1章C语言基础选择题

(1)以下叙述中错误的是 A)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件 B)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中 C)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 D)C语言源程序经编译后生成后缀为.obj的目标程序 (2)下列叙述中错误的是 A)C程序可以由多个程序文件组成 B)一个C语言程序只能实现一种算法 C)C程序可以由一个或多个函数组成 D)一个C函数可以单独作为一个C程序文件存在 (3)以下叙述中错误的是 A)结构化程序由顺序、分支、循环三种基本结构组成 B)C语言是一种结构化程序设计语言 C)使用三种基本结构构成的程序只能解决简单问题 D)结构化程序设计提倡模块化的设计方法 (4)以下叙述中错误的是 A)算法正确的程序最终一定会结束 B)算法正确的程序可以有零个输入 C)算法正确的程序可以有零个输出 D)算法正确的程序对于相同的输入一定有相同的结果 (5)以下选项中关于程序模块化的叙述错误的是 A)把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块B)可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序 C)把程序分成若干相对独立的模块,可便于编码和调试 D)可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序 (6)C语言源程序名的后缀是 A).exe B).obj C).c D).cp (7)关于算法,以下叙述中错误的是 A)同一个算法对于相同的输入必能得出相同的结果 B)一个算法对于某个输入的循环次数是可以事先估计出来的 C)某个算法可能会没有输入 D)任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕(8)以下不能用于描述算法的是

C语言期末考试题库(第一章 c语言基础知识)

C语言考研题库(第一章c语言基础知识) 一、单项选择 1.算术运算符,赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为(). A、关系运算,赋值运算,算术运算 B、算术运算,关系运算,赋值运算 C、算术运算,赋值运算,关系运算 D、关系运算,算术运算,赋值运算 答案:B 2.下述正确的C语言常量是:(). A、E2 B、3e-3 C、1.5E2.5 D、5.0E 答案:B 3.使用共用体变量,不可以(). A、进行动态管理 B、节省存储空间 C、同时访问所有成员 D、简化程序设计 答案:C 4.为表示关系x>=y>=z,应使用C语言表达式为:() A、(x>=y)&(y>=z) B、(x>=y>=z) C、(x>=y)&&(y>=z) D、(x>=y)AND(y>=z) 答案:C 5.以下程序的输出结果是(). main()

{char str[]="ABCD",*p=str;printf("%s\n",p);} A、68 B、ABCD C、不确定的值 D、字符D的地址 答案:B 6.char a[10];不能将字符串"abc"存储在数组中的是(). A、a="abc"; B、a[0]=0;strcat(a,"abc"); C、int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0; D、strcpy(a,"abc"); 答案:A 7.fscanf函数的正确调用形式是(). A、fscanf(文件指针,格式字符串,输入表列); B、fscanf(格式字符串,文件指针,输出表列); C、fscanf(fp,格式字符串,输出表列); D、fscanf(格式字符串,输出表列,fp); 答案:A 8.下列数组说明中正确的是(). A、int array[][]={1,2,3,4,5,6,7,8,9,10}; B、int array[][][5]={1,2,3,4,5,6,7,8,9,10}; C、int array[][4]={1,2,3,4,5,6,7,8,9,10}; D、int array[3][]={1,2,3,4,5,6,7,8,9,10}; 答案:C 9.以下选项中,与k=n++完全等价的表达式是(). A、n=n+1,k=n B、k+=n+1 C、k=++n D、k=n,n=n+1

相关主题
文本预览
相关文档 最新文档