文档库 最新最全的文档下载
当前位置:文档库 › 第1章 C语言基础知识

第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源程序经编译形成的二进制代码可以直接运行

D)C语言中的函数不可以单独进行编译

【答案】B

【解析】本题考核的知识点是C程序从编写到生成可执行文件的步骤。C语言采用编译方式将源程序转换为二进制的目标代码,编写好一个C程序到完成运行一般经过以下几个步骤:编辑;编译,就是将已经编辑好的源程序翻译成二进制的目标代码,经编译后的得到的二进制代码还不能直接执行,因为每一个模块往往是单独编译的,必须把经过编译的各个模块的目标代码与系统提供的标准模块链接后才能运行:链接,将各模块的二进制目标代码与系统标准模块经链接处理后,得到具有绝对地址的可执行文件,它是计算机能直接执行的文件:执行,执行一个经过编译和链接的可执行的目标文件。由以上定义可知,选项A)C)D均不正确。所以,4个选项中选项B符合题意。

6.下列叙述中正确的是

A)每个C程序文件中都必须要一个main()函数

B)在C程序中main()函数的位置是固定

C)C程序中所有函数之间都可以相互调用,与函数所在位置无关

D)在C程序的函数中不能定义另一个函数

【答案】D

【解析】本题考查的知识点是函数。每一个c程序中都必须有且只有一个main()函数但一个C程序可以由多个程序文件组成,所以并非每个c程序文件中都必须要有一个main()函数,故选项A不正确。c语言并未对main()函数的位置作要求,因此选项B也是错误的。C语言中,在一个函数被调用之前一定要先声明该函数,所以定义靠后的函数若在前面没有声明该函数的原型,是不能被定义靠前的函数所调用的,即除数函数数之间的调用并非与函数所在位置无关,所以选项C不正确。故本题的正确答案应该为选项D。

7.下列叙述中错误的是( )

A)计算机不能直接执行用C语言编写的源程序

B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件

C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件

D)后缀为.obj和.exe的二进制文件都可以直接运行

【答案】D

【解析】本题考查的知识点是:c语言的基本概念。

c语言源程序经过c语言编译程序编译后,会生成一个二进制文件,后缀为.obj,称为目标文件。然后还要经过?连接程序?,把此.obj文件与c语言提供的各种库函数连接起来,生成后缀为.exe的可执行文件,才能够运行。故本题中只有选项D是错误的。

8. 以下叙述中错误的是( )

A)C语言是一种结构化程序设计语言

B)结构化程序有顺序、分支、循环三种基本结构组成

C)使用三种基本结构构成的程序只能解决简单问题

D)结构化程序设计提倡模块化的设计方法

【答案】c

【解析】本题考查的知识点是:结构化程序设计。

结构化程序由3种基本结构组成:顺序结构、选择结构和循环结构。已经得到证明,由3种基本结构组成的算法结构可以解决任何复杂的问题。故本题中选项c是错误的。

9.用C语言编写的代码程序

A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行

【答案】B

【解析】本题考核的知识点是c程序的基本概念。c语言一种高级语言,c语言源程序经过c语言编译程序编译之后,生成一个后缀为.OBJ的二进制文件(称为目标文件),晟后还要由称为?链接程序?(Link)的软件,把此.OBJ文件与c 语言提供的各种库函数连接在一起,生成一个后缀.EXE的可执行文件。显然c语言不能立即执行,故选项A错误;根据以上定义。选项C和选项D错误,所以,4个选项中选项B符合题意。

10.结构化程序由三种基本结构组成,三种基本结构组成的算法

A)可以完成任何复杂的任务 B)只能完成部分复杂的任务

C)只能完成符合结构化的任务 D)只能完成一些简单的任务

【答案】A

【解析】本题考核的知识点是c程序的三种基本结构。C程序由三种基本的结构组成,分别为顺序结构、选择结构和循环结构,这三种结构可以组成任何复杂的C程序,即可以完成任何复杂的任务,故选项B)选项c和选项D都不正确。所以,4个选项中选项A符合题意。

11. C语言源程序名的后缀是( )

A).exe B).C C).obj D).cp

【答案】B

【解析】本题考查的知识点是:c语言的基本概念。

c语言源程序的后缀为.c;经过编译得到的目标程序文件的后缀为.obj;再将目标程序文件链接后得到可执行文件的后缀为验证.exe。故本题应该选择B。

12.以下叙述中错误的是

A)C语句必须以分号结束

B)复合语句在语法上被看作一条语句

C)空语句出现在任何位置都不会影响程序运行

D)赋值表达式末尾加分号就构成赋值语句

【答案】C

【解析】本题考查了C语言中语句的一些概念。C语句必须以分号结束,选项A是正确的。复合语句在语法上被看作一条语句,选项B也是正确的。空语句也算是一条语句,因此如果空语句出现在条件或者循环语句中,一样会被当作条件子句或者循环体来看待,所以选项C是错误的。赋值表达式末尾加分号就构成赋值语句,选项D正确。故本题应该选择c。

13.以下能正确定义且赋初值的语句是

A)int n1=n2=10; B)char c=32; C)float f=f+1.1; D)double x=12.3E2.5;

【答案】B

【解析】本题考查的知识点是变量赋初值。选项A中的语句只能起定义nl的作用,而n2=10是n1的初始值表达式,但因前面没有定义过n2,所以编译会报错?n2未定义?,故不正确。选项B使用一个整数初始化一个字符变量是正确的,因为字符变量中保存的本来就是整数(某字符的ASCII码值)。选项c定义的初始值表达式中出现了它自身,某些编译器能通过编译,但f在初始化之前是一个未知的值,用未知值来初始化也还是未知值,这是不可取的。选项D的初始值是一个非法常量,因为实型常量指数形式的指数部分必须为整数,这里的2.5非法。

14.有以下程序

main()

{ char a1='M', a2='m';

printf("%c\n", (a1, a2) ); }

以下叙述中正确的是

A)程序输出大写字母M B)程序输出小写字母m

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

【答案】B

【解析】本题考查的是逗号表达式。因为整个逗号表达式的值为逗号表达式最后一个子表达式的值,所以本题输出的是a2的值‘m’。故应该选择B。

15. 以下符合C语言语法的实型常量是()

A)1.2E0.5 B)3.14.159E C).5E-3 D)E15

【答案】C

【解析】本题考核的知识点是实型常量和指数形式表示数的书写格式。实型常量只能用十进制形式表示,不能用八进制或十六进制形式表示,实型常量可以用小数形式或指数形式表示,在C语言中,可以用指数形式将实型常量表示为数值和指数两部分,数值部分不能为空,指数部分只能为整数表示。选项A中1.2和0.5都不是整数,故选项A不正确;选项B中3.14159也不是整数,故选项B不正确;选项D中数值分不能为空,故选项D也不正确;所以,4个选项中选项C符合题意。

16.若以下选项中的变量已正确定义,则正确的赋值语句是()

A)x1=26.8%3; B)1+2=x2 ;C)x3=0x12; D)x4=1+2=3;

【答案】C

【解析】本题考核的知识点是C语言中对变量赋值的应用。赋值操作由赋值运算符?=?来完成,一般形式为变量=表达式,赋值的方向为由右向左,即将?=?右侧表达式的值赋给?=?左侧的变量,执行步骤是先计算再赋值。选项A 中运算符?%?的运算对象必须为整数,而选项A中26.8不是整数,故选项A不正确;选项B将一个变量赋值给一个表达式,这在C语言中是不允许的,故选项B不正确;选项D中也是将一个常量3赋值给一个表达式,故选项D不正确;所以,4个选项中选项C符合题意。

17.设有以下定义

int a=0;

double b=1.25;

char c=’A’;

#define d 2

则下面语句中错误的是()

A)a++; B)b++ ;C)c++; D)d++;

【答案】D

【解析】本题考核的知识点是自加运算符的运算对象。自加运算对象可以是整型变量也可以是实型变量,但不能是表达式和常量。本题中,#define d 2定义了d为常数2,不能在对d进行自加运算。故选项D是个不正确的语句,所以,4个选项中选项D符合题意。

18. 设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式1/2(a+b)h 计算结果不相符的是()

A)(a+b)*h/2 B)(1/2)*(a+b)*h C)(a+b)*h*1/2 D)h/2*(a+b)

【答案】B

【解析】本题考核的知识点是将简单的数学表达式表示成合法的C程序的语句。选项B中由于l和2都是整型,其l/2的运算结果为0,故整个表达式的值为0,所以它的结果和题目中要求的代数式的计算结果不相符,所以,4个选项中选项B符合题意。

19.有以下定义语句

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

【解析】本题考核的知识点是c语言中一些运算符的简单应用。选项A中不是合法的赋值语句,将最右边的第一个赋

值表达式加括号即为a=b+(b=b++)才正确,故选项A不正确;选项B中运算符?%?的对象必须是整型,而在选项B 中(int)a+b为double型,故选项B不正确;选项a,b都为double?==?应该改为?=?,故选项D不正确。所以,4个选项中选项c符合题意。

20.有以下程序

main()

{ int m=3,n=4,x;

x=-m++;

x=x+8/++n;

printf("%d\n",x);

}

程序运行后的输出结果是

A)3 B)5 C)-1 D)-2

【答案】D

【解析】本题考核的知识点是运算符的优先级。主函数中首先定义了整型变量m、n和x,并给m和n赋初值为3和4,接着执行两条赋值语句,第一条x=-m++等价于X=-(m++),其值即为-3,第二条x=x+8/++n等价于x=+8/(++n),即为x=-3+8/5=-2,因此最后输出x的值为-2。所以,4个选项中选项D符合题意。

21.有以下程序

main()

{ char a='a',b;

print("%c,",++a);

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

}

程序运行后的输出结果是

A)b,b B)b,c C)a,b D)a,c

【答案】A

【解析】本题考核的知识点是运算符++的用法。程序中的第一个输出语句输出表达式++a的值,该++a是在使用a之前,先使a的值加1,即为a加1为字符b,此时a的值为b,所以第一个输出语句输出的值为b,第二个输出语句中输出的b的值,这时b的值为表达式a++的值,a++是在使用a之后(此时a的值为b,所以赋给b的值为b),使a的值加一,因此第二个输出的值也为b。所以,4个选项中选项A符合题意。

22.有以下程序

main()

{ char a,b,c,d;

scanf("%c,%c,%d,%d",&a,&b,&c,&d);

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

}

若运行时从键盘上输入:6,5,65,66。则输出结果是

A)6,5,A,B B)6,5,65,66 C)6,5,6,5 D)6,5,6,6

【答案】A

【解析】本题考核的知识点是字符表示。主函数中首先定义了4个字符变量A)B)C) d,然后通过scanf()函数输入A)B)C)d。输入中a和b是按字符格式c输入的,c和d是按整型符号d输入的。在看下面的printf()函数中,要求A)B)C)d都按字符输出,故a和b原样输出为6、5、c和d将把与其ASCII码对应的字符输出,65和66的ASCII码对应字符A和B,故最后的输出为?6,5,A,B?。所以,4个选项中选项A符合题意。

23. 以下关于long、int和short类型数据占用内存大小的叙述中正确的是( )

A)均占4个字节 B)根据数据的大小来决定所占内存的字节数

C)由用户自己定义 D)由c语言编译系统决定

【答案】D

【解析】在c语言的标准中,short占2个字节、long占4个字节,但int的大小和编译系统相关。例如在Turbo C 2.0中,int占2个字节,但在Visual C++6.0(VC6可以用做c语言编译器)中占4个字节。故本题应该选择D。

24.以下不合法的字符常量是

A)'\018' B)'\"' C)'\\' D)'\xcc'

【答案】A

【解析】本题考查的知识点是字符常量中的转义字符。转义字符是以一个?\?开头的字符序列,它只代表一个字符。在选项A中,?\?后跟着三个数字,是表示一个ASCII码值等于这三位数字所组成的八进制数数值的字符,但是八进制数只能是由0~7这八个数字表示,而选项A中出现了数字8所以是不合法的。选项B是表示一个双引号的转义字符表示方法;选项c表示的是一个反斜杆;选项D表示一个ASCII值为十六进制值cc的字符。故应该选择A。

25.表达式3.6-5/2+1.2+5%2的值是

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

【答案】D

【解析】本题考查的知识点是算术表达式的运算。算术表达式是由+、一、*、/和%五种算术运算符所组成的表达式,其中*、/和%的优先级要高于+和一,同级别的运算符从左至右运算。所以本题首先计算5/2和5%2,虽然我们都知道5/2的结果应该是2.5,但C语言中规定了两个整数相除的结果为整数。而且是截尾取整,所以5/2的结果是2;5%2表示的是5除以2所得的余数,其结果为1。计算完后,表达式变为3.6 -2+1.2+1,从左至右计算不难得出结果为3.8,故应该选择D。

26.以下四个程序中,完全正确的是

A) #include

main( );

{ /* programming */

printf("programming!\n"); }

B) #include

main( )

{ /*/ programming /*/

printf("programming!\n"); }

C) #include

main( )

{ /*/* programming */*/

printf("programming!\n");}

D) include

main( )

{ /* programming */

printf("programming!\n");}

【答案】B

【解析】本题考查了一些书写代码时经常容易犯的错误。选项A在定义main()函数时,函数头后面多了一个分号,故选项A不正确;C语言中的注释是不能嵌套的,故选项C不正确;选项D在使用预编译指令#include时漏掉了#号,所以也是错误的。故应该选择B。

27.以下叙述中错误的是

A)C程序中的#include和#define行均不是C语句

B)除逗号运算符外,赋值运算符的优先级最低

C)C程序中,j++;是赋值语句

D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算

【答案】D

【解析】%是求余运算符,只能用于整型数的运算,故答案D是错误的。

28.以下叙述中正确的是

A)预处理命令行必须位于C源程序的起始位置

B)在C语言中,预处理命令行都以“#”开头

C)每个C程序必须在开头包含预处理命令行:#include

D)C语言的预处理不能实现宏定义和条件编译的功能

【答案】B

【解析】预处理命令行可以出现在C源程序的任何位置.故选项A不正确。#include〈stdio.h>预处理命令行的意思是将stdio.h头文件插入源程序中该行命令所在的位置,表示我们将在后续行中用到stdio.h头文件中定义的函数或类型,若程序中没有用到这些函数或类型就可以不用包含此头文件,故选项C不正确。C提供的预处理功能主要有:宏定义、文件包含和条件编译三种功能。故选项D不正确。在C语言中,预处理命令行都以?#?开头,故应该选择B。

29.下列叙述中错误的是

A)一个C语言程序只能实现一种算法

B)C程序可以由多个程序文件组成

C)C程序可以由一个或多个函数组成

D)一个C函数可以单独作为一个C程序文件存在

【答案】A

【解析】本题考查c语言的特点。一个c语言程序可以实现多种算法,因此本题应该A。

30.下面程序的输出结果是

#include <stdio;h>

main()

{ int i=010,j=10;

printf("%d,%d", i,j--);}

A)11,10 B)9,10 C)010,9 D)10,9

【答案】B

【解析】程序中i的值用八进制表示(十进制为8), i是在变量使用前自身先加1,而j--是在变量使用后自身减1。

31.若有定义:int a=8,b=5,c;执行语句c=a/b*0.4;后,c的值为

A)1.4 B)1 C)2.0 D)2

【答案】B

【解析】在表达式中根据运算的结合性和运算符的优先级,首先计算的是a/b(8/5=1),再将1.4赋值给c,由于c为整型变量所以要将1.4转换为整型,即舍弃小数位(c的值变为1)。

32.C语言程序的基本单位是

A) 程序行B) 语句C) 函数D) 字符

【答案】C

【解析】C语言程序的基本单位是函数。

33.C语言中最简单的数据类型包括

A) 整型、实型、逻辑型B) 整型、实型、字符型

C) 整型、字符型、逻辑型D) 整型、实型、逻辑型、字符型

【答案】B

【解析】C语言三种基本数据类型是整型、实型、字符型

34.以下选项中属于C语言的数据类型是

A) 复数型 B) 逻辑型 C) 双精度型 D) 集合型

【答案】C

【解析】C语言没有逻辑型和集合型,更不会有复数型,所以只有C正确

35.下列叙述中正确的是

A) C语言中既有逻辑类型也有集合类型 B) C语言中没有逻辑类型但有集合类型

C) C语言中有逻辑类型但没有集合类型 D) C语言中既没有逻辑类型也没有集合类型

【答案】D

【解析】C语言中没有逻辑类型和集合类型。

36.C语言提供的合法的数据类型关键字是

A) Double B) short C) integer D) Char

【答案】B

【解析】C语言关键字必须小写,所以A和D都是错误的,integer不是C语言关键字,所以应该选择B

37.在使用程序流程图来表示算法时,菱形用来表示______。

A)输入与输出 B)子程序C)判断分支 D)循环边界

【答案】C

【解析】美国国家标准化协会ANSI规定了一些常用的流程图符号,其中椭圆框表示起止框,方框表示处理框,菱形框表示判断分支,箭头表示流程线。

38.与十进制数200等值的十六进制数为______。

A)A8 B)A4 C)C8 D)C4

【答案】C。

【解析】本题考查的是进制之间的转换。

用十--十六进制转换法,除16,由下而上取余法。

16 200 (8)

└─────

16 C …… C

39. 有以下程序

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。

【解析】本题考查的是变量的自加运算。

++在变量前和变量后的唯一区别就在于在执行"++变量"所在的语句时,是先将变量加1再执行它所在语句还是先执行它所在的语句再使变量加1,当++在变量后时,也就是"变量++",那就是先将变量值代入表达式运算后再使变量

加1;而"++变量"是先使变量加1,再把加1后的结果放入表达式进行运算。这两种情况,在执行完变量所在的语句后,它们在内存中的值都是加过1之后的值了。

本题执行"printf("%d%d",m++,++n);"后,输出的是m和n+1的值1235,接着使m+1=13,执行"printf("%d%d\n",n++,++m);"输出n和m+1的值3514。

40.有以下程序

main()

{ int a,b,d=25;

a=d/10%9;

b=a&&(-1);

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

}

程序运行后的输出结果是______。

A)6,1 B)2,1 C)6,0 D)2,0

【答案】B。

【解析】本题考查的是算术运算符。

如果算术运算符"/"中参与运算的变量都是整型变量,则"/"表示整除运算,"%"表示求余。本题中"a=d/10%9;"的值为25/10%9=2;"b=a&&(-1);"为2&&(-1)=1(注意:-1表示真,只有0才表示假),所以a,b的值分别为2,1。

41. 设int a=12,则执行完语句a+=a-=a*a后,a的值是______。

A)552 B)264 C)144 D)-264

【答案】D。

【解析】本题的考查点是赋值表达式的求解。

第一步:a*a=144 ;(此时a=12)

第二步:a-=144相当于a=a-144,a=a-144=-132;(此时a=-132)

第三步:a+=a相当于a=a+a,a=a+a=-264;

所以该表达式最后的值应当为-264。

42. 在C语言中,要求运算数必须是整型的运算符是______。

A)% B)/ C)< D)!

【答案】A。

【解析】本题的考查点是运算符。

题目的四个选项中,(B)(C)(D)都不要求运算数必须为整数,参与模运算(%)的运算数必须是整型数据。

43.设有语句char a='\072';,则变量a______。

A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法

【答案】A。

【解析】本题考查的是字符型数据。

'\072'表示的是ASCII码等于72的那个字符,即为":",所以在字符变量中存储的只是":"这一个字符。

44.要把高级语言编写的源程序转换为目标程序,需要使用______。

A)编辑程序 B)驱动程序 C)诊断程序 D)编译程序

【答案】D。

【解析】编绎程序的作用就是将已编辑好的源程序翻译成二进制的目标代码。在编译时,还要对源程序进行检查,如发现错误,则在屏幕上显示出错信息,此时应重新进入编辑状态,对源程序进行修改后再重新编译,直到通过编译为止。不过值得注意的是:经编译得到的二进制代码还不能直接参与执行,因为每一个模块往往是单独编译的,必须把经过编译的各个模块的目标代码与系统提供的标准模块连接后才能运行。

45. 英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为______。

A)50 B)66 C)52 D)68

【答案】D。

【解析】本题主要考的是英文大小写字母间ASCII码值的差异,只要记住英文大写字母比其对应的英文小写字母的ASCII码值小32。

46.以下选项中不属于C语言的类型是______。

A)signed short int B)unsigned char C)signed long D)long short

【答案】D。

【解析】C语言中归纳起来,基本类型数据有以下几种:

[singed] char;

unsigned char;

[signed] short [int];

unsigned short [int];

[signed] long [int];

unsigned long [int];

float;

double;

long double;

47. 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是______。

A)a=20000+20000 B)a=4000*10 C)a=30000+10000 D)a=4000L*10L

【答案】D。

【解析】除D之外的选项的右边的表达式都超过了16位带符号整数的范围(32767)。

48. 已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是______。

A)字符A B)字符a C)字符e D)非法的常量

【答案】A。

【解析】本题的考查点是字符与ASCII码的转换。

八进制101转换为10进制即为65,而字母A的ASCII码是65,所以用八进制表示的字符常量'\101'是A。

49. 下列关于单目运算符++、--的叙述中正确的是______。

A)它们的运算对象可以是任何变量和常量

B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D)它们的运算对象可以是char型变量、int型变量和float型变量

【答案】D。

【解析】本题的考查点是自增、自减运算符。

自增、自减运算符的作用是使变量的值增1或减1,只能用于变量,包括char型变量、int型变量和float型变量,而不能用于常量或表达式。

二、填空题

1.以下程序运行后的输出结果是 _______。

main()

{ char c; int n=100;

float f=10; double x;

x=f*=n/=(c=50);

printf("%d %f\n",n,x);

}

【答案】 2 20.0或2 20或2 20.或2 20.000000

【解析】本题考查的是赋值运算符。所有的赋值运算符的优先级都相同,它们的结合性为从右至左,它们返回的表达式值为赋给变量的值。所以,语句x=f*=n/=(c=50);→X=f*=n/=50;→x= f*=2;(n的值变成2) →x=20;。故最终输出的结果应该是2 20.000000

2.已知字母A的ASCII码为65。以下程序运行后的输出结果是 _____。

main()

{ char a, b;

a='A'+'5'-'3'; b=a+'6'-'2' ;

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

}

【答案】67G

【解析】本题考查的是字符型变量的算术运算。字符型变量中保存的是某个字符的ASCII码值,是一个整数,因此字符型变量的算术运算和整型变量并无区别。所以a=‘A’+‘5’-‘3’=‘A’+(‘5’-‘3’)=‘A’+2=65+2=67;b=a+‘6’-‘2’=‘C’+(‘6’-‘2’) =‘C’+4=‘G’。最后分别按十进制整数和字符形式输出a和b的值为:67G。3.已知字符A的ACSII码值为65,以下语句的输出结果是______

char ch=’B’;printf(“%c %d\n”,ch,ch);

【答案】B 66

【解析】本题考核的知识点是printf函数的应用。printf函数的功能是按照指定的格式,在标准输出设备上输出数据,它有两种参数:格式控制参数和输出项参数。本题中,printf(“%c %d”,ch,ch)表示以字符格式和十进制整数格式输出ch,B的ACSll码值为66,即在计算机中B的十进制整数格式是66。所以,输出为B 66。

4. 执行以下程序后的输出结果是 _____ 。

main()

{ int a=10;

a=(3*5,a+4); printf("a=%d\n",a);

}

【答案】a=14

【解析】本题主要考查了逗号表达式。逗号表达式的值是以逗号分隔的最后一个表达式的值。所以题目中的语句a=(3*5,a+4);就等价于a=a+4;。故本题输出结果是a=14。

5.以下程序的输出结果是______ 。

main()

{ int a=0;

a +=(a=8);

printf("%d\n",a);

}

【答案】16

【解析】在程序中首先将8赋值给变量a,然后再进行复合赋值运算。即a=a a=8 8=16,所以该空格处应该填16。

6.在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为_______ 。

【答案】8

【解析】在一般16位PC机中,一个float型数据在内存中占4个字节(32位),一个double型数据占8个字节。

7. 若有定义:int a=10,b=9,c=8;,接着顺序执行下列语句,变量b中的值是______。

c=(a-=(b-5));

c=(a % 11)+(b=3);

【答案】3。

【解析】这里:b-5 = 4,a -= 4之后a的值为6,并把它赋给c。此时b的值并未被改变。在第2个表达式中,也只有赋值表达式b = 3改变了b的值。所以两行语句执行完毕,b的值应该为3。

8.设有以下变量定义,并已赋确定的值,char w;int x;float y;double z;则表达式:w*x+z-y所求得的数据类型为________。

【答案】double型或双精度型

【解析】①先进行w*x的运算,先将字符型w转换成整型,运算结果为整型;②再将w*x的结果与z相加,要先将第一步的整型转换为double型,运算结果为double型;③最后将w*x+z的结果与y相减,要先将float型y转换成double 型,结果为double型。

9.四条语句:x++;、++x;、x=x+1;、x=1+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)________。

【答案】x+=1;

【解析】题面中的四条语句的作用是使x的值加1,在C中有多种方法可以对变量进行加1操作,这里可以利用C的复合赋值运算符+=实现,【答案】x+=1;。

10. 以下程序的输出结果是______。

main()

{ int a=0;

a+=(a=8);

printf("%d\n",a);

}

【答案】16

【解析】本题主要考的是运算符的优先级。

a+=(a=8)可以写成a=a+(a=8)的形式,括号的优先级高于"+",而"+"的优先级又高于"=",所以先执行括号内的运算,将a赋值为8,然后再执行+运算。

11. 若有语句

int i=-19,j=i%4;

printf("%d\n",j);

则输出的结果是______。

【答案】-3。

【解析】本题的考查点是求模运算。

算术运算符中,%只能对整型运算量施加运算。在计算两个整数的余数时,余数的符号与被除数相同。例如,3%(-2)=1,-3%2=-1,3%2=1,-3%(-2)=-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

相关文档