文档库 最新最全的文档下载
当前位置:文档库 › C语言复习资料

C语言复习资料

C语言复习资料
C语言复习资料

C语言复习资料

第一部分C语言基础知识

1.1 程序的结构

一、C语言程序的结构

1、函数由函数头和函数体构成,是C程序的基本单位。

2、函数体中的程序行称为语句,它的结束字符是分号,以分号来识别一个语句是否结束。

3、C语言源程序是由函数组成,它们的数目可以有一个或者多个。

4、在C程序中必须有一个函数名为main的函数。main函数后的小括号没有任何内容,它不可以省略。

5、C程序中的语句用分号结束,在一个程序行上可以写多个语句,一个C语句能写在多个程序行上。C语言的程序一行写不下时,可以在任意空格处换行。

6、C语言程序总是从主函数开始,从主函数结束。

7、主函数也即main()函数。

二、标识符

标识符是命名程序对象名称的字符序列。

1、标识符的命名规则:

标识符由字母、数字、下划线组成。

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

标识符中的字母区分大小写,由一个或多个字符组成。

标识符要能反映程序对象的内容特征,不宜随意命名。

保留字不能用于程序中的用户自定义对象的标识符。

三、程序生成文件

1、C语言源程序的运行要经过编辑、编译、连接和运行,每步生成的文件扩展名分别是.C、.obj、.exe 。

四、知识盘点:

1、C语言程序由一个或多个函数组成,函数是一段具有特定格式的程序段,其中有且仅有一个main函数。函数是C程序的基本单位。

2、C函数由函数头和函数体2部分组成。函数名后必须跟有一对小括号,小括号是函数的标志;函数体由一对大括号括起来的语句序列组成。

3、分号“;”是C语句的结束符。C编译器以分号来识别一个语句,因此,一行可写多个语句,一个语句也可以写在多个程序行上。

1.2 基本数据对象

二、常量

1、概念:是在程序运行中值不发生变化的数据对象

整型常量:23、586

实型常量:2.6、456.23

2、分类:字符型常量:’a’,’A’

字符串型常量:”fgdssf”、”gttyjj”

符号常量:#define DE 20

3、书写规则

4、定义符号常量

(1)定义形式

#define 标识符常量

(2)注意

严格遵守上面的定义格式。

标识符就是符号常量,其中的字符按约定大写。

在程序中要用该常量的地方,直接写符号常量即可。

三、变量

1、概念:指在程序中可以发生改变的数据对象。

2、认识:

变量的三要素:数据类型、变量名、变量值。

注意:变量必须“先定义,后使用”

3、书写格式

数据类型变量名

例:int x;

int x,y,z; /*对定义同类型多个变量时,变量名这间用分号分隔*/ float v1;

double d1,d2,d3;

char nm;

4、变量赋初值

(1)边定义、边赋值

例:int x=4,y=3;

float v1,v2=4.5;

char c=’H’;

(2)先定义、后赋值

例:int x,y;

x=4;y=5;

注意:变量在参加算前必须要有明确的值。

1.3运算符与表达式

例:2/3=0

%:当分子小于分母时,余为分子本身。

例:2%3=2

2、算术运算符的优先级和结合性

(1)优先级不同运算符在同一个表达式中运算的先后次序。

算术运算符的优先级:-(取负)、* 、/ 、%、+ 、-

(2)结合性是指运算符与操作数的结合顺序。

算术运算符的结合性是左结合

3.算术运算中的数据类型转换

(1)自动

在运算中系统自动把表示数据范围小的数据类型转换为表示数据范围大的数据类型。运算结果的数据类型决定于表达式操作数中数据范围数据最大的数据类型。

例:int + float + ’a’+ double 结果类型:double

(2)强制转换

格式:(类型标识符)表达式

例:int x;

float y=3.56;

x=(float)x;/*原本x为int,现在将x强制转换为float类型*/

printf(“x=%d,y=%f”,x,y);

输出结果:x=3,y=3.560000

类型转换表达式的值由小括号中的类型标识符决定。即:()作用就是将原本变量的数据类型强制转换成()中的数据类型。

4、正确书写C语言表达式

如何把数学表达式改写成正确的C语言表达式?

两个原则:

遵守C语言表达式的语法规则。

保持原数学表达式的数学含义。

二、赋值运算符及表达式

1.赋值操作一般格式:

<变量名>=<表达式>;

注意:

赋值号左边必须是单个的变量。例:A=5,b=6

表达式可以是常量、变量。变量必须有确定的值。

例:x=a+b/*a、b使用时一定要有确定的值进行运算,然后将值赋给x*/ 2.赋值操作的功能

改变变量的值,变量值的改变遵循“新来旧去”规则,即用表达式的值替换变量原来的值。

注意:当赋值符号左右两边的数据类型不同时,右边的数据类型会被强制

转换成左边的数据类型。 3.复合赋值运算符

复合赋值运算由其它运算符和赋值运算符组合 例如:

+=-=*=/=%=

int x=6;x+=5x-=5

x*=5x/=5x%=5

x=x+5x=x-5

x=x*5x=x/5x=x%5

等价

三、自增(++)与自减(--)

y=x++;

printf(“y=%d,x=%d ”,y,x); 结果:y=3,x=4 y=++x;

printf(“y=%d,x=%d ”,y,x); 结果:y=4,x=4 y=x--;

printf(“y=%d,x=%d ”,y,x); 结果:y=3,x=2 y=--x;

printf(“y=%d,x=%d ”,y,x); 结果:y=2,x=2 注意:自增自减运算不会改变自身变量的最后结果,但是会影响其他的变量最后结果。仔细观察上例题中,y 和x 的变化,x 不论是自增自减它都会增1或减1,但是y 却会受到影响。

自增自减运算符的操作数只能是一个变量

四、逗号表达式

逗号表达式是由逗号(,)分隔的其他表达式给合而成。其它表达式称为子表达式。

逗号表达式的值是由最后一项表达式值决定。

例如:

y=(a=3,b=2+a,6,a+b)

结果:y=8

五、关系运算符与表达式

1、关系运算是指两个数据对象进行大小关系比较的运算。

2、关系运算符:>、>=、<、<= 、==、 !=

3、关系表达式:用关系运算符连接而成的式子就称为关系表达式

4、关系表达的结果用真(1)或者假(0)来表示,即关系成立为真,其值为1,关系不成立为假,其值为0。

例:3>4 不成立为假,用0表示结果

7>=7 成立即为真,用1表示结果

优先级:>、>=、<、<= 高于==、 !=(前四个是同一级别就象乘号和除号一样,属一个级别,此时就以结合性来运算)

结合性:从左自右

例1:4>6<=8 此时>与<=在一个级中,所以看结合性从左自右开始进行计算。

六、逻辑运算符与表达式

1、逻辑运算表达式:就是用逻辑运算符连接而成的式子就称为逻辑运算表达式。逻辑运算符不公能连接关系表达式还能连接其他类型的表达式。

例:3>6&&6+4<9||!1

2、优先级:!、&&、|| (由高到低排列)

3、结合性:!为右结合,&&和||为左结合。

4、逻辑表达式的结果也用真(1)或者假(0)来表示,即关系成立为真,其值为1,关系不成立为假,其值为0。

在一个逻辑表达式中,如果能在第一次就能判断出结果的时候,后面的运算电脑会自动省略进行计算,所以有些值就不会变化。

例:int y=1,x=1;

y++&&--y||++x

printf(“y=%d,x=%d”,y,x);/*x在运算过程中没有发生变化*/

按要求写出正确的关系表达式或逻辑表达式。(P44页6题)

1.4 输入、输出函数

一、标准输入、输出函数

输入函数功能:要求从电脑键盘上任意输入数据 输出函数功能:就是显示出程序最终的结果。 1、scanf( )函数

1)、格式:scanf(“格式控制串”,变量地址列表); 说明:

格式控制串:主要由格式转换说明符组成的字符串,格式转换说明符由%和一个代表数据格式的字符组成。 %d %f %c

例: scanf(“x=%d ”,&x);/*作用:在键盘上任意输入一个数赋值给x*/ 变量地址列表:由变量的地址组成。变量的地址表示为:&变量名(注意:取地址符“&”不能丢掉)。

2)

3)、scanf ①%d 、%f 、%s 转换的输入时默认由空白字符(空格、水平制表符、换行符)做为一个数或者一串字符的结束标志,但是%c 却会把空白字符视为有效字符,无结束标志,

即有几个字符变量就连续输入对应个数的字符再敲回车键即可。

%s 以空白字符作为字符串结束标志。

例1:

scanf(“%d%f%f”, &m, &x, &y);

输入时:123 34.5 34 它们这间用空格相隔,表示前一个数据输入完毕

例2:scanf(“%c%c ”, &m, &n);

输入时:若b o

实际m 和n 的字为:b 赋值给m ,而空格却赋值给了n

例3:若输入a 和回车键

若输连续输入ab 后敲回车键,则如上图2。 例4:char str[20]; scanf(“%s ”,str); /*此时没有取地址符了,因为str 数组名已经代表该数组的在内存中的起始位置了*/

如果输入 how are you

输出的结果为:how,后面的are you不能送入到str中去,因为“%s”格式说明符以空白字符作为了结束标志。

②格式转换说明符与地址列表中的变量要一一对应,即个数相同,类型一致。

2、printf( )函数

1)、格式:printf(“格式控制串”,输出列表);

说明:

格式控制串:由格式转换说明符和普通字符组成,用于说明输出数据的格式。

输出列表:由要输出的数据项组成,它们可以是常量、变量和表达式。

2)

3)、

①在printf()函数的格式控制串中出现的普通字符,将原样输出到显示器屏幕上,可以利用这些普通字符来设计数据的输出格式

例1:

int x=57;

float y=3.65;

char z=…A?;

printf(“x=%d,y=%f,z=%c”,x,y,z);

x=57,y=3.650000,z=A

例2:起提示作用

printf( “请输入一个数:” );/*这时不存在格式说明符,只有普通字符,这时会原样输出文字*/

②实数在输出的时候,printf()函数自动保留6位小数,不足6位小数补0,超过6位,进行四舍五入。

③格式转换说明符与表达式列表中的数据项要一一对应,即个数相同,类型一致。

二、字符输入、输出函数

1、getchar()函数

作用:从键盘上输入一个字符

1)、格式:变量名=getchar( );

例:char ch;

ch=getchar(); /*从键盘上输入一个字符赋值给ch*/

2)、注意

①getchar的()中没有参数,一定要有一个变量来存放getchar输入的值。

例:char ch;

getchar(ch); ×

ch= getchar;×

ch=getchar(); √

②一次只能输入一个符。

③等价于:scanf(“%c”,&ch);

2、putchar()函数

作用:在显示上显示出结果

1)格式:putchar(变量名);

例:char ch;

putchar(ch); /*将ch的值输出到显示器上*/

2)、注意

①putchar的()中有参数,括号中的参数即需求的变量的结果。

例:char ch;

ch=getchar();

getchar(ch); √

ch=getchar(); ×

getchar(); ×

②一次只能输出一个字符

③等价于:printf(“%c”,ch);

三、字符串输入、输出(多个字符的输入、输出)

1、gets()函数

作用:输入一串字符到相应的字符数组中,输入的字符序列可以包含空格。

格式:gets(字符数组名);

例:char ch[20];

gets(ch); /*输入字符串到数组ch中*/

注意:

①gets()函数的结束标志为回车键。

例:char a[20];

gets(a); /*括号中有参数,为数组名称*/

2、puts()函数

作用:输出字符串

格式:puts(字符数组名);

区别:gets()\puts()函数一次只能输入、输出一个字符串,而scanf()\printf()一次可以输入、输出多个字符串。(例题参阅书:P131页5题)

1.5 算法的表示

流程线

3、基本程序结构的特点

①只有一个入口和一个出口。

②结构内的语句都有机会被执。

③结构内不存在无限循环。

4、C语言语句是编写程序的基本要素。

①先用流程图表示出算法,将有利于提高程序的代码的质量,特别是对于复杂问题的编程。

②结构化程序设计中,任何复杂的程序都是由顺序结构、分支结构和循环结构三种基本结构组成的。

③程序设计的一般步骤为:

分析问题→确定算法→编写程序→调试程序

main(){

float r,s;

scanf (“%f”,&r );s=3.14*r*r;

printf (“s=%f \n”,s );

}第二部分 C 程序基本结构

任何复杂的程序都是由顺序结构、分支结构和循环结构三种基本结构组成的。

以下图形中有A 、B 的,A ,B 代表语句,它们可以是简单的一条语句,也可以是多条语句或是任意复杂程序的程序段。

1.1 顺序结构

一、顺序结构特点

观察上面程序,可知顺序流程图示:

例1:输入一个大写字母,转换成小写字母输出。 例2:输入2个整数a 、b,然后交换a 、b 的值输出。

按程序中语句的先后顺序执行,完成前面语句的执行后,接着执行紧跟其后的语句。 顺序结构的执行特点:程序按照语句从上到下的排列顺序依次执行,每条语句必须执行且只能执行一次。

例例

1.2 分支结构(也称选择结构)

分支结构有三种方法:if 语句、 if-else 语句 、 switch 语句 一、分支结构执行过程

二、if 语句

1、if 语句的一般形式:

1)、执行过程:首先计算if 命令后面中“表达式”,判断其值是真、是假,如果表达式是为真就执行“语句”,如果为假就跳过“语句”,执行if 后面的语句。

2)、注意:①if 括号后面是没有“分号”的,可以将上面的“格式”等价看成:if(表达式) {语句;} C 语言中,只有分号才表示一条语句表示完毕。

②如果if 中的语句只有一条语句是可以省略{}的,如有多条

语句就必须要用{}括起来。

③“表达式”通常使用的是关系表达式和逻辑表达式。在判断过

程中一定要注意:非零值就视为真值,如:-1,2……

2、if-else 语句

首先计算并判断条件的真假,然后选择执行条件为真或为假的分支上的语句。每次只可能有一个分支上的语句被执行,即二者只能选其一进行执行。

格式:if(表达式)

{语句;}

1)、执行过程:也是一种最基本的选择结构。如果“表达式”计算为真,执行语句1;否则执行语句2。不论是执行了语句1还是语句2,程序流程都会转到else 语句之后执行后面的语句。

2)、①else 不可单独使用,必须与if 配对使用。if 和else 只能控制其后的一条语句或一个语句块。

②如果if 和else 控制语句只有一句语句时可省略{},但若有多条语

句时必须要加上{}。

③else 与if 一样,它本身后面是没有分号的。

3)、if 和else 的配对原则:else 总是与它上面的、最近的、未配对的if 配对。除用{}可以改变配对情况外,都会遵守这一原则进行配对。 三、switch 语句

1、switch 语句一般形式: switch(表达式) {

case 常量表达式1: 语句部分1; case 常量表达式2: 语句部分2 ; ┇ ┇ case 常量表达式n : 语句部分n default: 语句部分n+1 }

2、执行过程:

①首先对switch 语句括号中的表达式进行计算。

②然后程序从上至下查找与表达式的值匹配的标号,以此为入口。如果找到匹配的标号,则执行标号后的语句,如遇到break 结束,否则一直执行下去,直到整个switch 语句结束。

③没有相匹配的标号,这时如果有标号default :,那么程序就转到此处执行,否则程序就跳出switch 语句,转而执行switch 结构后面的语句。

3、注意:

①break 的作用:当程序执行break 语句后,它就使程序流程跳出switch 结构,并转而执行switch 结构后面的第一条语句。如果程序中没有break 语句,那么从匹配标号到switch 结构结束,中间所有的语句均被执行一次。

②switch 后面的表达式是一个整型(或字符)表达式,case 后面则必须是一个整型(或字符)常量表达式。

例:switch(s/10) switch(x)

if …else 语句的形式:

if (表达式) 语句1; else 语句2;

③switch 语句中不能有重复的标号。

④default 通常出现在最后面,但实际是可以在任何位置。 ⑤在switch 语句中case 与标号间用空格相隔,而标号与语句这间用冒号(:)相隔。

例:case 5:printf(“%d ”,x);

1.3 循环结构

循环结构分为三种:for 、 while 、 do-while

一、while 语句

1、流程图:

2、术语

①循环条件:循环命令后面括号中的表达式就称为循环条件。 ②循环体:在每一次条件成立后要执行的语句就称为循环体。

③循环控制变量:在循环条件中控制条件真假的变量。它通常决定循环

体的执行次数,也即是循环次数。

3、注意

要写出正确的循环语句,要做以下3个工作: ①给循环控制变量赋初值。

首先判断条件的真假,条件为真执行语句A (循环体语句),然后再判断条件,如果仍为真,则重复执行循环体语句,以此类推,如果条件为假则结束循环语句执行。

执行过程: ①判断条件的真假,条件为真执行语句(循环体语句),开始循环周期;否则执行③。 ②执行语句,语句执行完后就结束

本次运算,然后返回①。

③结束循环,执行循环后面的语句。

②写出正确的循环条件。 ③循环控制变量的更新。 二、do-while 语句

1、执行流程图:

2、注意: 1)、整个do …while 循环在语法上被看成一条语句。 2)、while 与的区别:

①(表达式)后没有分号,而do …while (表达式);有分号。

②while 中,表达式如果为假,循环体一次都不会被执行,而do …while,不论表达式为真还是假,循环体至少会被执行一次。

例:比较下面2个程序,写出运行结果。

三、for 语句

1、for 语句一般形式:

for(表达式1;表达式2;表达式3) { 语句;}

1)、若语句只有一句时{}可以省略。但若有多条语句构成循环体时必须加上{}。

执行过程:

①执行do 下面的语句(循环体),开始一个循

环周期。 ②计算while 括号中的表达式(循环条件)。

如果表达式为真,结束本次循环,重新返回①,

开始下一个循环周期;否则,转③。

③结束do …while 循环,流程转到循环结构外

第1条语句。

①#include"stdio.h" ② #include"stdio.h" main() main() { { char ch; char ch; ch=getchar(); ch=getchar(); do while(ch!= '*') { { putchar(ch); putchar(ch); ch=getchar(); ch=getchar(); }while(ch!= '*'); } } } ①运行结果 ②运行结果 若输入:ABC* 若输入:ABC* 则输出: 则输出: 若输入:*AB* 若输入:*AB* 则输出: 则输出:

2)、for 命令小括号中3个表达式的作用依次循环变量赋初值、循环测试条件、循环变量更新。

3)、表达式与表达式之间用分号相隔,分号不能省略。 2、for 语句执行过程

for 语句) 1)流程图:

执行过程: ①计算表达式1。

②计算表达式2,如果结果为真转③;如果结果为假转⑤。 ③执行for 下面的语句,执行完后转④。

④计算表达式3,结束本次循环周期,转回②,开始下一次循环。 ⑤结束循环,执行for 语句后的第1条语句。

2)、执行过程:

①计算外表达式1。

②计算外表达式2,如果结果为真转计算内表达式1。

③计算内表达式2,如果结果为真,那么执行内语句。

④计算内表达式3,返回③,直到内表达式2不成立。

⑤计算外表达式3,返回执行②、③、④。

⑥当②不成立时,那将结束整个循环。

四、循环辅助语句break和continue

1、break:在语句中的作用是提前结束包含它的循环语句的执行,使程序流程转向到该循环语句后面的语句。简单说就是一旦遇上break语句,那么就结束本层循环。

2、continue:作用是提前结束本次循环周期的执行而开始下一个循环周期。流程将跳过continue语句后到循环体结束的所有语句。

3、注意:

1)、break语句能用于循环语句或switch语句中,但不能用于其他地方;而continue语句只能用于循环。

2)、二者都只能控制直接包含它的循环语句流程。

第三部分一维数组

数组的基本概念:

1、数组:是一组有序的、连续的、类型相同的变量的集合。

2、数组元素:构成数组的数据。

3、数组长度:数组元素的个数。

4、下标:数组元素在数组中的位置序号,是一个从0开始的整型数据。

5、下标变量:形式“数组名[下标]”的变量,程序中通过下标变量来访问数组元素。

一、数值型数组

1、数组格式

数据类型数组名[数组长度];

例:int a[10];/*表示a这个数组中有10个元素,元素的类型都为整型*/注意:

①数组名命名必须遵守标识符的命名规则。

②数组长度必须为整型数据。

③数组的下标必须从0开始。

④数组名后是用方括号,不能用圆括号。

2、一个数组元素,实质上就是一个变量,它具有和相同类型单个变量一样的属性,可以对它进行赋值和参与各种运算。

在C语言中,数组作为一个整体,不能参加数据运算,只能对单个的元素进行处理。

3、数组初始化的一般形式

1)、类型标识符数组名[数组长度]={初值表};

例:int a[5]={1,2,3,4,6,};

2)、利用循环完成对数组赋值

例: int a[10];

for(i=0;i<=10;i++)/* i作为控制下标进行对元素进行赋值,因此从0开始*/ a[i]=i+1; /* a[0]=1,a[1]=2……a[9]=10 */

3)、注意:

①数组作为一种存放若干相同类型数据的集合是一个整体,是不允许当作变量来赋值的。

例如:int a[10];a=5;

这样的写法在C语言中是不允许的,因为a是一个数组,不能当作变量来使用。

②初始化数据的个数不能超过数组的长度。

例:× int a[3]={1,2,3,4,5};

√ int a[5]={1,2,3};/*当数组长度大于实际赋值时,后面都给赋上0, a[0]=1,a[1]=2,a[2]=3,a[3]=0,a[4]=0 */

③只有在进行带初始化的数组说明时才允许省略长度。在仅进行说明而没有初始化时,省略长度是错误的,因为编译器无法知道这个数组究竟有多大。

例:int a[]={1,2,3}; √

int a[]; ×

二、字符数组

C语言练习试题和答案

单项选择题: 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从 C开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 [i] t 6.下列C语言用户标识符中合法的是( B)。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C)。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# 语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A) B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

C语言复习题A

C语言复习题A 一、单项选择题 1、C语言提供的合法关键字是_______。 A、AUTO B、include C、unsigned D、dafault 2、合法的C语言标识符是__________。 A、2a B、sum C、default D、a+b 3、下面四个选项中,不是C语言整型常量的是。 A、01 B、0x11 C、081 D、-32768 4、下面四个选项中正确的实型常量是。 A、0x12 B、-12345.e-3 C、Ie0.5 D、e-5 5、若a为整型变量,则下面语句。 a=-2L; printf(“%d\n”,a); A、赋值不合法 B、输出值为-2 C、输出为不确定值 D、输出值为-2 6、在C语言中,要求参加运算的数必须是整数的运算符是。 A、/ B、! C、% D、= = 7、字符串“\\012\012”在内存中占用的字节数是个。 A、4 B、5 C、6 D、7 8、下列说法中,错误的是。 A、变量的定义可以放在所有函数之外 B、变量的定义可以不放在本编译单位中,而放在其他编译单位中 C、变量的定义可以放在某个函数的函数头中 D、变量的定义可以放在某个复合语句的开头 9、下列说法中,正确的是。 A、自动型变量是分配在内存的数据区的 B、寄存器型变量是分配在内存的数据区中的 C、表态型变量是分配在内存的数据区中的 D、外部参照型变量是分配在内存的数据区中的 10、在C语言中,一个int型数据在内存中占用2个字节,则int型数据的取值范围是。 A、-128~127 B、-32768~32767 C、0~65536 D、0~2147483647 11、下面不正确的字符串常量的。 A、’abc’ B、”12’12” C、”0” D、” ” 12、char型常量在内存中存放的是。 A、ASCII代码值 B、BCD代码值 C、内码值 D、十进制代码值 13、以下程序段。 int x=2,y=3;

2017全国计算机等级考试二级C语言知识点超全整(打印版).docx

全国计算机等级考试

目录 第-部分公共基础知识 第1章算法与数据结构 (1) 考点1算法........................... I 考点2数据结构.. (1) 考点3线性表及英顺序存储结构 (1) 考点4栈和队列 (1) 考点5线性链表 (2) 考点6树与二叉树 (2) 考点7查找技术 (3) 考点8排序技术 (3) 第2章程序设计基础 (4) 考点I程序设计方法与风格 (4) 考点2结构化程序设计 (5) 考点3面向对象的程序设计 (5) 第3章软件工程基础 (5) 考点1软件工程基本概念 (5) 考点2软件分析方法 (6) 考点3结构化设计方法 (7) 考点4软件测试 (8) 考点5程用的调试 (9) 笫4帝数据库设计基础 (9) 考点1数据库系统的基本概念 (9) 考点2数据带系统的基木概念 (10) 考点3关系代数 (12) 考点4数据库设计与管理 (12) 第二部分二级C语言 笫1章程序设汁基本概念 (14) 考点1程序设计 (14) 考点2 C程序的结构和格式 (14) 考点3常鱼和变蛍 (14) 考点4算术表达式 (15) 考点5赋值表达式 (16) 考点6自加.口减和逗号运算 (16) 第2章顺疗结构 (17) 考点1字符型常屋与变虽 (17) 考点 2 putchar 与gclchar 函数 (17) 考点3 printf函数 (17) 考点4 scanf函数 (18) 考点5位运算的含义和应用 (18) 第3章选择结构 (19) 考点1关系运算符和关系表达式 (19) 考点2逻轉运算符和逻辑表达式 (19) 考点3 if语句及其构成的选择结构 (19) 考点4 switch语句与break语句 (20) 第4章循环结构 (20) 考点1 while循环结构 (20) 考点2 do-while循环结构 (21) 考点3 for循环结构 (21) 考点4嵌套循环语句 (21) 第5章函数 (21) 考点I库函数 (21) 考点2函数的调用 (22) 考点3参数传递 (22) 考点4函数的递归调用 (23) 考点5局部、全局变量和存储分类 (23) 第6章地址与指针 (23) 考点1变量的地址和指针 (23) 考点2抬针变量的操作 (24) 考点3函数之间地址的传递 (24) 第7章数组 (24) 考点1 一维数组的定义及元素的引用??24 考点2函数对-维数组及元素的引用??25 考点3二维数组的定义 (25) 考点4二维数组和指针 (25) 考点5二维数组名和指针数组作为实参???26 第8章字符串 (26) 考点|用-?维字符数组存放字符出? (26) 考点2使指针指向字符串 (26) 考点3字符串的输入和输出 (26) 考点4字符串数组 (27) 考点5用于字符串处理的函数 (27) 第9章编译预处理和动态存储分配 (27) 考点I編译预处理 (27) 考点2宏替换 (27) 考点3文件包含处理 (28) 考点4动态存储分配 (28) 第10章结构体.共用体和用戸定义类型28考点1结构体 (28) 考点2共用体 (29) 考点3用户定义类型 (29) 第11章文件 (29) 考点1文件指针 (29) 考点2文件的读写 (30)

C语言常用函数

C语言的常用库函数 函数1。absread()读磁盘绝对扇区函数 原形:int absread(int drive,int num,int sectnum,void *buf) 功能:从drive指定的驱动器磁盘上,sectnum指定的逻辑扇区号开始读取(通过DOS中断0x25读取)num 个(最多64K个)扇区的内容,储存于buf所指的缓冲区中。 参数:drive=0对应A盘,drive=1对应B盘。 返回值:0:成功;-1:失败。 头文件:dos.h 函数2。abswrite()写磁盘绝对扇区函数 原形:int abswrite(int drive,int nsects,int lsect,void *buffer) drive=0(A驱动器)、1(B驱动器)、 nsects=要写的扇区数(最多64K个); lsect=起始逻辑扇区号; buffer=要写入数据的内存起始地址。 功能:将指定内容写入(调用DOS中断0x26)磁盘上的指定扇区,即使写入的地方是磁盘的逻辑结构、文件、FAT表和目录结构所在的扇区,也照常进行。 返回值:0:成功;-1:失败。 头文件:dos.h 函数3。atof()将字符串转换成浮点数的函数 原形:double atof(const char *s) 功能:把s所指向的字符串转换成double类型。 s格式为:符号数字.数字E符号数字 返回值:字符串的转换值。 头文件:math.h、stdlib.h 函数4。atoi()将字符串转换成整型数的函数 原形:int atoi(const char *s) 功能:把s所指向的字符串转换成int类型。 s格式为:符号数字 返回值:字符串的转换值。若出错则返回0。 头文件:stdlib.h 函数5。atol()将字符串转换成长整型数的函数 原形:long atol(const char *s)

c语言试题及答案

1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x,y); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式

C语言复习资料

第一章C语言概述1.1选择题 【题1.1】以下不是C语言的特点的是( B ) A.C语言简洁、紧凑 B.能够编制出功能复杂的程序 C. C语言可以直接对硬件进行操作 D.C语言移植性好 【题1.2】以下不正确的C语言标识符是( D )。A.ABC B.abc C.a_bc D.ab.c 【题1.3】以下正确的c语言标识符是( C )。 A.%x B.a十b C.a123 D.test! 【题1.4】一个c程序的执行是从( A ). A.main( )函数开始,直到main( )函数结束B.第一个函数开始,直到最后一个函数结束 C.第一个语句开始,直到最后一个语句结束 D.main( )函数开始,直到最后一个函数结束 【题1.5】一个C语言程序是由(B)。 A)一个主程序和若干子程序组成 B)函数组成 C)若干过程组成 D)若干子程序组成 【题1.6】一个c程序是由( B )。 A.一个主程序和若干子程序组成 B.一个或多个函数组成 C. 若干过程组成 D.若干子程序组成 【题1.7】C语言派程序的基本单位是( B )。 A.过程 B.函数 c子程序 D.标识符 【题1.8】编辑程序的功能是( A )。 A.建立并修改程序 B.将c源程序编译成目标程序C.调试程序 D.命令计算机执行指定的操作

1.2填空题 【题1.9】c语言符号集包括【英文字母、数字和一些有待定含义的标点符号】。 【题1.10】一个c程序有且仅有一个【main()】函数。 【题1.11】C程序的基本单位是【函数】。 【题1.12】一个c派程序有【1】个main( )函数和【若干】二个其他函数。【题1.13】在一个C源程序中,注释部分两侧的分界符分别是【/*】和【*/】。 【题1.14】结构化设计中的三种基本结构是【顺序结构、分支结构和循环结构】。 【题1.15】在C语言中,输入操作是由库函数【scanf】完成的,输出函数是由库函数【printf】完成的。 1.3编程题 【题1.16】编写一个程序,在屏幕上输出你的姓名。试着上机编辑、编译、运行你的程序。 #include main() { printf("My Name is : Your Name!\n"); } 第二章数据类型、运算符与表达式 2.1选择题 【题2.1】以下结果为整数的表达式(设有int i;char c;float f;)(B). A.i十f B.i*c C.c十f D.i十c十f 【题2.3】以下使i的运算结果为4的表达式是(D)。 A.int i=0,j=0; (i=3,(j十十)十i); B.int i=1,j=0; j=i=((i=3)*2); C.int i=0,j=1; (j==1)?(i=1);(i=3); D.int i=1,j=1;

计算机二级C语言高效考点

计算机二级C语言高效考点 2017年计算机二级C语言高效考点锦集 C语言基本知识 【考点1】C程序 C语言程序结构有三种:顺序结构,循环结构(三个循环结构),选 择结构(if和switch) 【考点2】main函数 每个C语言程序中main函数是有且只有一个。读程序都要从 main()入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做 选择)。 【考点3】存储形式 计算机的数据在电脑中是以二进制的形式保存。最低的存储单元是bit(位),位是由为0或者1构成。byte是指字节,一个字节=八 个位。数据存放的位置就是它的地址。 【考点4】注释 是对程序的说明,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行, 注释不可以嵌套。 【考点5】书写格式 每条语句的后面必须有一个分号,分号是语句的一部分。一行内可写多条语句,一个语句可写在多行上。 【考点6】标识符 合法的用户标识符考查: 合法的要求是由字母,数字,下划线组成。有其它元素就错了。

并且第一个必须为字母或则是下划线。第一个为数字就错了。 C语言标识符分如下3类 (1)关键字。它们在程序中有固定的含义,不能另作他用。如int、for、switch等。 (2)预定义标识符。预先定义并具有特定含义的标识符。如define、include等。 (3)用户标识符。用户根据需要定义的标识符,符合命名规则且不与关键字相同。 关键字不可以作为用户标识符号。maindefinescanfprintf都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 【考点7】实型数据 实型数据的合法形式:小数形式和指数形式。掌握判定指数形式合法性。 2.333e-1就是合法的,且数据是2.333×10-1。 考试口诀:e前e后必有数,e后必为整数。 【考点8】字符 字符数据的合法形式:: '1'是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。 '0'的ASCII数值表示为48,'a'的ASCII数值是97,'A'的ASCII数值是65。 字符型和整数是近亲: chara=65; printf(“%c”,a);得到的输出结果:a

C语言中常见的功能函数

C语言中常见的功能函数(应掌握的编程) 1、两个变量值的交换 void exchang(float *x,float *y) /*形参为两个变量的地铁(指针)*/ {float z; z=*x; *x=*y; *y=z; } void main() {float a,b; scanf(“%f%f”,&a,&b); exchang(&a,&b); /*因为形参是指针,所以实参必须给变量的地址,不能给变量名*/ printf(“a=%f,b=%f”,a,b); } 2、判断一个整数的奇偶 int jou(int n) /*如果是奇数返回1,否则返回0*/ { if(n%2==0) return 0; return 1; } 3、小写字符转换成大写字符 根据实参传给形参的字母,判断是否是小写字母,如果是小写字母,则转换成大写字母,否则不进行转换,函数返回转换后或原来的字符。 本函数仿照toupper()库函数的功能编写(toupper(c) 是将变量c字母转换成大写字母,如果不是小写字母不转换)。 char toupper1(char ch) {if(ch>=?a?&&ch<=?z?) ch-=32; /*小写字母比对应的大写字母ASCII码值大32*/ return ch; } 4、判断一个字符是否是字母(或数字) 根据实参传给形参的字符,判断是否是字母(或数字),如果是字母(或数字)返回1,否则返回0。此函数是根据库函数isalpha()(或isdigit())来编写的。 int isalpha1(char ch) /*判断是否是字母*/ {if(ch>=?A?&&ch<=?Z?||ch>=?a?&&ch<=?z?) return 1; else return 0; } int isdigit1(char ch) /*判断是否是数字字符*/ {if(ch>=?0?&&ch<=?9?) return 1; else return 0; } 5、根据学生成绩,返回其等级 char fun(float cj) {char c; switch((int)cj/10) {case 10:

C语言试卷及答案

一、选择题(每题 1 分,共 20 分) 1. C 语言程序的三种基本结构是顺序结构、选择结构和结构。 A、循环 B、递归 C、转移 D、嵌套 2. 下列标识符中,合法的是_______ 。 A) unsigned B) 5ab C) INT# D)_num2 3. 若float x ;x = 10/4 ;x的值是。 A、2.5 B、2.0 C、3 D、 2 4. 表达式!x 等价于。 A、x==0 B、x==1 C、x != 0 D、x != 1 5. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为。 A、算术运算、赋值运算、关系运算 B、关系运算、赋值运算、算术运算 C、算术运算、关系运算、赋值运算 D、关系运算、算术运算、赋值运算 6. 能将高级语言编写的源程序转换为目标程序的是。 A、链接程序 B、解释程序 C、编译程序 D、编辑程序 7. 下列语句定义pf为指向float类型变量f的指针,是正确的。 A、float f, *pf = f; B、float f, *pf = &f; C、float *pf = &f, f; D、float f, pf = f; 8. 一个C程序的执行是从。 A、本程序的main函数开始,到main函数结束 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束 9. 能正确表示“当x的取值在[1,10]或[[200,210]范围内为真,否则为假”的表达式是________。 A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B、(x>=1)||(x<=10)||(x>=200)||(x<=210) C、(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D、(x>=1)||(x<=10)&&(x>=200)||(x<=210) 10. 对两个数组a和b进行如下初始化 char a[]=“ABCDEF”;char b[]={ …A?,?B?,?C?,?D?,?E?,?F?}; 则以下叙述正确的是。 A、a和b数组完全相同 B、a和b长度相同 C、a和b中都存放字符串 D、a数组比b数组长度长 11. 是不正确的字符常量。 A、'\n' B、'1' C、"a" D、'\101' 12. 若变量已正确定义,语句“if(a>b) k=0; else k=1;”和等价。 A、k=(a>b)?1:0; B、k=a>b; C、k=a<=b; D、a<=b ? 0 : 1; 13. 设变量定义为“int x, *p=&x;”,则&*p相当于。 A、p B、*p C、x D、*&x 14. 有两个字符数组a、b,则以下正确的输入语句是。 A)gets(a,b); B) scanf(“%s%s”,a,b); C) scanf(“%s%s”,&a,&b); D) gets(“a”),gets(“b”); 15. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是。 A、地址传递 B、单向值传递

最新C语言考试复习题

一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个 C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与’A ’是相同的 B. 字符串是常量,字符是变量 C. “A ”与’A ’是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 if (x>y) {z=x; s=z*z;} else {z=y;s=1/(z*z);} if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);

D.语句的书写对程序的运行不起作用,因此可以随便写都可以 7.以下各标识符中,合法的用户标识符组为。 A.PAd,P#d,b-b,abc,_0123,ssiped B.cin,a10,CPP,float,del_word,signed C.void,max,hiy,,list,*jer D.a,temp,_isw,INT,keep,wind 8.字符串“\”E OF= -\61\””的长度是。 A.8 B.9 C.12 D.非法字符串9.数学式x sin在C程序中对应的不正确的表达式为。 A.sqrt(sin(x)>0?sin(x):-sin(x)) B.sqrt(fabs(sinx)) C.sqrt(sqrt(sinx*sinx)) D.fabs(sqrt(sin(x))) 10.下列是C语言的有效标识符? A._No1 B.No.1 C.12345 D.int 11.C语言中,表示一条语句结束的标号是 A.# B.; C.// D.} 12.每个C程序中都必须有且仅有一个 A.类B.预处理命令C.主函数D.语句13.下列数据类型不是C语言基本数据类型的是。 A.字符型B.整型C.实型D.数组 14.下列字符列中,可作为C语言程序自定义标识符是。 A.switch B.file C.break D.do 15.运算符+、<=、=、% 中,优先级最低的运算符是。 A.+ B.<= C.= D.% 16.下列字符列中,可以作为“字符串常量”的是。 A.ABC B.″xyz″ C.′uvw′ D.′a′ 17.设变量m,n,a,b,c,d均为0,执行(m = a= =b)||(n=c= =d)后,m,n的值是。 A.0,0 B.0,1 C.1,0 D.1,1 18.字符串"vm\x43\\\np\102q"的长度是。 A.8 B.10 C.17 D.16

C语言常用IO函数

一些比较常用的io函数,总结了一下,一块贴出来了 stdin标准输入流 stdout标准输出流 stderr标准错误流 字符IO函数 1.int getchar() 说明:从stdin读取1个字符 返回值:成功,返回该字符;出错,返回EOF; 2.int fgetc(FILE fp) 说明:功能同getchar,默认从文件fp读取; 返回值:成功,返回该字符;出错,返回EOF; 可以重定向 3.int getc(FILE fp) 说明:功能与fgetc相同,但getc既可以被用作 函数实现,也可以被用作宏实现,并且它的编码效率 可能会更高. 可以重定向 4.int putchar(int ch) 说明:向stdout输出字符ch; 返回值:成功,返回该字符;出错,返回EOF; 5.int fputc(int c,FILE fp) 说明:功能同putchar,默认向fp输出字符ch; 返回值:成功,返回该字符;出错,返回EOF; 6.int putc(int c,FILE fp) 说明:功能与fputc相同,但putc与getc一样既可能被用作 函数实现,也可能被用作宏实现,并且它的编码效率可能会更高;可以重定向 字符串IO函数 1.char gets(char str) 说明:从stdin读取字符串(不包括'n')写入到字符串str中; 返回值:成功,返回str首地址;错误,返回NULL; 2.char fgets(char str,int N,FILE fp) 说明:默认从文件fp中读取N个字符(包括'n')写入到字符串str中,

如果实际输入字符串小于N,fgets自动添加'n', 返回值:成功,返回字符串首地址;错误或遇到EOF,返回NULL;可以重定向 3.int puts(const char str) 说明:向stdout输出字符串str,然受输出一个'n', 返回值:成功,返回非负值;错误,EOF; 4.int fputs(const char str,FILE fp) 说明:功能同puts,默认向文件fp写入字符串str; 返回值:成功,返回非负值;错误,EOF; 可以重定向 格式化IO函数 1.int scanf(const char format,...) 说明:根据format从stdin格式化读取N个值,并输入到... 返回值:成功,返回读取的项数;出错,返回EOF 2.int fscanf(FILE fp,const char format,...) 说明:功能同scanf,默认从文件fp读取, 返回值:成功,返回读取的项数;出错或遇到文件尾,返回EOF 可以重定向 3.int sscanf(const char buf,const char format,...) 说明:根据format从buf格式化读取N个值,并输入到... 返回值:成功,返回读取的项数;出错,返回EOF 4.int printf(const char format,...) 说明:根据format格式化数据,并输出到stdout 返回值成功,返回输出字符数;错误,返回负数; 5.int fprintf(FILE fp,const char format,...) 说明:功能同printf,默认向文件fp写入; 可以重定向 6.int sprintf(char buf,const char format,...) 说明:根据format格式化数据,并输出到buf, 返回值:成功,返回输出字符数;错误,返回负数

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

C语言复习题答案

二、选择题 1.C语言中形参的缺省存储类别是__A___。 A.自动(auto) B.静态(static) C.寄存器(register) D.外部(extern) 2.已知 struct sk { int a; float b; }data,*p; 若有p=&data; 则对data中成员a的正确引用是__B__。 A.(*p).data B.(*p).a C.p->data.a D.p.data.a 3.以下对C语言函数的描述中,正确的是__A__。 A.C程序由一个或一个以上的函数组成 B.C函数既可以嵌套定义又可以递归调用 C.函数必须有返回值,否则不能使用函数 D.C程序中调用关系的所有函数必须放在同一个程序文件中 4.以下说法中正确的是__C_。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main()函数中定义 C.C语言程序总是从main()函数开始执行 D.C语言程序中的main()函数必须放在程序的开始部分 5.设有以下说明语句: struct stu { int a; float b; }stutype ; 则下面的叙述不正确的是__C。 A.struct是定义结构体类型的关键字 B.struct stu是用户定义的结构体类型 C.stutype是用户定义的结构体类型 D.a和b都是结构体成员名 6.以下不正确的描述是__D。 A.在函数外部定义的变量是全局变量 B.在函数内部定义的变量是局部变量。 C.函数的形参是局部变量 D.局部变量不能与全局变量同名 7.已知学生记录描述为: struct student { int no; char name[20]; char sex; struct

国家二级C语言公共基础知识要点及历年真题

1算法 1.1 算法的基本概念 1.算法的概念(必记): 算法是指解题方案的准确而完整的描述。 分析:要用计算机实现某一任务时,先应设计出一整套解决问题的指导方案,然后具体实现。整套的指导方 案称之为算法,而具体的实现称之为程序。并且在设计指导方案时,可不用过多考虑到实现程序的具体细节(即可以一点点的理想化),但在程序实现时,必须受到具体环境的约束(现实不同于理想)。 结论:算法不等于程序,也不等于计算方法,程序的编制不可能优于算法的设计。 2.算法的基本特征(必记): a.可行性:由于算法总是在某个特定的计算工具上实现并执行的,因而受到计算工具的限制,所以在设计算法时,要考虑到设计的算法是否是可性的。 b.确定性:算法中的每一个步骤都必须是有明确定义的,不允许有模棱两可的解释,也不允许有多义性。 c.有穷性:算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。 d.拥有足够的情报:算法有相应的初始数据。 3.算法的基本要素: 一个算法通常由两个基本要素所组成:一是对数据对象的运算和操作,二是算法的控制结构。 基本运算和操作分为四类: a. 算术运算: (加、减、乘、除等运算) b. 逻辑运算: (与、或、非等运算) c. 关系运算: (大于、小于、等于、不等于等运算) d. 数据传输: (赋值、输入、输出等操作) 算法的控制结构: 算法中各操作之间的执行顺序称之为算法的控制结构。一个算法一般都可以用顺序、选择、循环三种基本控 制结构组合而成。 注意:一个计算机系统能执行的所有指令的集合,称为该计算机系统的指令系统。 4.算法设计基本方法: 列举法、归纳法、递推、递归、减半递推技术、回溯法。 1.2 算法的复杂度 (必记) 算法的复杂度主要包括时间复杂度和空间复杂度。 1.算法的时间复杂度: 是指执行算法所需要的计算工作量,是由算法所执行的基本运算次数来度量。 可用平均性态和最坏情况两种分析方法。其中平均性态分析是指用各种特定输入下的基本运算次数的加权平 均值来度量算法的工作量;而最坏情况分析是指在所有特定输入下的基本运算次数据的最大次数。 2.算法的空间复杂度: 一个算法的空间复杂度,是指执行这个算法所需要的内存空间。包含有三部分所组成:算法程序所占的空间 +输入的初始数据所占的存储空间+算法执行过程中所需要的额外空间。 历届的考题: 1、算法具有五个特性,以下选项中不属于算法特性的是(______) [2005.4] A)有穷性B)简洁性C)可行性D)确定性 2、问题处理方案的正确而完整的描述称为______。[2005.4] 3、下列叙述中正确的是________。[2006.9] A)一个算法的空间复杂度大,则其时间复杂度也必定大

C语言常用函数手册

1.分类函数,所在函数库为ctype.h int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0 int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非0值,否则返回0 int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0 int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F) 返回非0值,否则返回0 int isdigit(int ch) 若ch是数字('0'-'9')返回非0值,否则返回0 int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0 int islower(int ch) 若ch是小写字母('a'-'z')返回非0值,否则返回0 int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0 int ispunct(int ch) 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0 int isspace(int ch) 若ch是空格(' '),水平制表符('\t'),回车符('\r'), 走纸换行('\f'),垂直制表符('\v'),换行符('\n') 返回非0值,否则返回0 int isupper(int ch) 若ch是大写字母('A'-'Z')返回非0值,否则返回0 int isxdigit(int ch) 若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值, 否则返回0 int tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z') int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z') 2.数学函数,所在函数库为math.h、stdlib.h、string.h、float.h int abs(int i) 返回整型参数i的绝对值 double cabs(struct complex znum) 返回复数znum的绝对值 double fabs(double x) 返回双精度参数x的绝对值 long labs(long n) 返回长整型参数n的绝对值 double exp(double x) 返回指数函数ex的值 double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存贮在eptr中double ldexp(double value,int exp); 返回value*2exp的值 double log(double x) 返回logex的值 double log10(double x) 返回log10x的值 double pow(double x,double y) 返回xy的值 double pow10(int p) 返回10p的值 double sqrt(double x) 返回+√x的值 double acos(double x) 返回x的反余弦cos-1(x)值,x为弧度 double asin(double x) 返回x的反正弦sin-1(x)值,x为弧度 double atan(double x) 返回x的反正切tan-1(x)值,x为弧度 double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x为弧度double cos(double x) 返回x的余弦cos(x)值,x为弧度 double sin(double x) 返回x的正弦sin(x)值,x为弧度 double tan(double x) 返回x的正切tan(x)值,x为弧度 double cosh(double x) 返回x的双曲余弦cosh(x)值,x为弧度 double sinh(double x) 返回x的双曲正弦sinh(x)值,x为弧度

C语言试题与答案

大学C语言考试题库 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系

c语言复习题整理(1)

C语言程序设计习题与解答 题解1 绪论 习题 一、选择题 1.一个完整的可运行的C源程序中(B )。 A.可以有一个或多个主函数B.必须有且仅有一个主函数 C.可以没有主函数D.必须有主函数和其他函数 2.构成C语言源程序的基本单位是(D )。 A.子程序B.过程C.文本D.函数 3.某C程序由一个主函数main( )和一个自定义函数max( )组成,则该程序( D )。 A.总是从max( )函数开始执行B.写在前面的函数先开始执行 C.写在后面的函数先开始执行D.总是从main( )函数开始执行 4.C语言规定,一个C源程序的主函数名必须为(C )。 A.program B.include C.main D.function 5.下列说法正确的是(C)。 A.在书写C语言源程序时,每个语句以逗号结束 B.注释时,'/'和'*'号间可以有空格 C.无论注释内容的多少,在对程序编译时都被忽略 D.C程序每行只能写一个语句 6.C语言源程序文件的后缀是( C ),经过Compile后,生成文件的后缀是( A ),经过Build后,生成文件 的后缀是(B)。 A..obj B..exe C..c D..doc 7.Visual C++ IDE的编辑窗口的主要功能是(A ),输出窗口的主要功能是(D ),调试器(Debug)的主要功能是(C)。 A.建立并修改程序B.将C源程序编译成目标程序 C.跟踪分析程序的执行D.显示编译结果信息(如语法错误等) 8.在Visual C++ 开发环境下,C程序按工程(project)进行组织,每个工程可包括(D)C/CPP源文件,但只能有( A )main函数。 A.1个B.2个 C.3个D.1个以上(含1个) 9.调试程序时,如果某个语句后少了一个分号,调试时会提示错误,这种情况一般称之为(A )。而某个“计算2的平方”的程序在 调试时没有提示出错,而且成功执行并计算出了结果,只是结果等于5,这种情况一般称之为(D)。 A.语法错误B.正常情况 C.编译器出错D.逻辑设计错误

相关文档