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

C语言总复习

C语言总复习
C语言总复习

C语言复习

第一章:

总结:

(1) C程序是由函数构成的。这使得程序容易实现模块化。

(2) 一个函数由两部分组成:

函数的首部:例1.3中的max函数首部

int max(int x,int y )

函数体:花括号内的部分。若一个函数有多个花括号,则最外层的一对花括号为函数体的范围。

函数体包括两部分:

声明部分:int a,b,c; 可缺省

执行部分:由若干个语句组成。可缺省

注意:

函数的声明部分和执行部分都可缺省,

例如:

void dump ( )

{

}

这是一个空函数,什么也不做,但是合法的函数

(3) C程序总是从main函数开始执行的,与main函数的位置无关。

(4) C程序书写格式自由,一行内可以写几个语句, 一个语句可以分写在多行上,C程序没有行号。

(5) 每个语句和数据声明的最后必须有一个分号。

(6) C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf 等函数来完成的。C对输入输出实行“函数化”

第二章:

算法的特性

1.有穷性:一个算法包含有限的操作步骤

2.确定性:算法中的每一个步骤是确定的,含义是唯一的

3.有零个或多个输入

4.有一个或多个输出

5.有效性:算法中每一个步骤应能有效运行

三种基本结构

顺序结构、选择结构、循环结构

顺序结构

选择结构

第三章:

一、数据类型

1.标识符(identifier)

定义:用来标识变量、常量、函数等的字符序列

组成:

只能由字母、数字、下划线组成,且必须是字母或下划线开头,C 语言中大小写敏感(如count ,Count ,COUNT 是三个不同的标识符。)不能使用关键字

长度:最长32个字符

命名原则:见名知意 不宜混淆 如l 与I, o 与0

当型(While 型)循环结构

直到型(Until 型)循环

2.常量

定义:程序运行时其值不能改变的量(即常数)

分类:(符号常量,直接常量)

符号常量:用标识符代表常量

定义格式:#define

3.变量

概念:其值可以改变的量

变量名与变量值

变量定义的一般格式:

数据类型变量1[,变量2,…,变量n];

二、整型变量的分类:

分为四种:基本型、短整型、长整型、无符号型

1.基本型:

用“int”表示

2.短整型:

用“short int”或“short”表示

3.长整型:

用“long ”或“long int ”表示

4.无符号型:(修饰符:unsigned)

不存放符号,则不带符号数.

又分无符号整型,无符号短整型, 无符号长整型。分别以unsigned int、unsigned short和unsigned long表示。

各种整型的取值范围:

三、浮点型数据

1.实型常量(实数或浮点数)表示形式:

(1)十进制数形式:数字和小数点组成(必须有小数点)如0.123, .123, 123.0, 0.0, 123.

(2)指数形式:(e或E之前必须有数字;e后必须为整数)如12.3e3 ,123E2, 1.23e4 , e-5 , 1.2E-3.5

2.实型常量的类型

默认double型

在实型常量后加字母f或F,认为它是float 型

如:12.3f

一个浮点型常量可以赋给一个float型,double型,long double型变量,根据变量的类型截取实型常量中相应的有效位数。

1.浮点型数据在内存中的存放形式

浮点型数据是按照指数形式存储的。系统把一个浮点数据分成小数部分和指数部分,分别存放。指数部分采用规范化的指数形式。

2.浮点变量分类

1)单精度(float型)

2)双精度(double型)

3)长双精度(long double型)

3.字符常量

定义:用单引号括起来的单个普通字符或转义字符

转义字符:反斜线后面跟一个字符或一个代码值表示

4.C语言的运算符

1.算术运算符:(+ - * / % ++ --)

2.关系运算符:(< <= == > >= !=)

3.逻辑运算符:(!&& ||)

4.位运算符:(<< >> ~ | ^ &)

5.赋值运算符:(= 及其扩展)

6.条件运算符:(?:)

7.逗号运算符:(,)

8.指针运算符:(* &)

9.求字节数:(sizeof)

10.强制类型转换:(类型)

11.分量运算符:(. ->)

12.下标运算符:([])

13.其它:(如函数调用运算符( ))

5..算术运算符和表达式

基本算术运算符:+ - * / %

结合方向:从左向右

优先级:- ---->* / % -----> + -

6.自增、自减运算符++ --

作用:使变量值加1或减1

种类:

前置++i, --i (先执行i+1或i-1,再使用i值)

后置i++,i-- (先使用i值,再执行i+1或i-1)

说明:

++ -- 不能用于常量和表达式,如5++,(a+b)++

++ --结合方向:自右向左

优先级:- , ++ , -- > * , / , % > + , -

四、逗号运算符和表达式

逗号运算符(顺序求值运算符)

基本形式:表达式1,表达式2

扩展形式:表达式1,表达式2,…表达式n

结合性:从左向右

逗号表达式的值:等于表达式2的值

用途:常用于循环for语句中

注意:并不是任何地方出现的逗号都是作为逗号运算符。例如函数参数也是用逗号来间隔的。

如: printf(“%d,%d,%d”,a,b,c);“a,b,c”并不是一个逗号表达式,它是printf函数的3个参数

printf(“%d,%d,%d”,(a,b,c),b,c) “(a,b,c)”是一个逗号表达式,它的值等于c的值。

第四章:

一、格式输出函数

格式:printf(“格式控制串”,输出表)

功能:按指定格式向终端输出若于个任意类型的数据

输出表:(此项是可选的)输出表中是需要输出的一些数据,也可以是表达式。如果要输出的数据不止1个,相邻2个之间用逗号分开。例:

(1)printf("I am a student.\n");

(2)printf("%d",3+2);

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

必须强调:“格式字符串”中的格式符,必须与“输出项表”中、输出项的数据类型一致,否则会引起输出错误。

二、格式符:

1.d格式符──以带符号的十进制整数形式输出。

%d %md %ld %mld

printf("n=%d,n=%5d,n=%2d,n=%ld",123,123,123,135790);

说明:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于则按实际长度输出。

输出结果:n=123,n=??123,n=123,n=135790

2. S格式符──输出一个字符串

1)%S:按实际字符串长度输出

2)%ms:输出的字符串占m列,如果字符串长度大于m,

则突破m的限制,将字符串全部输出。若串长小于m

则左补空格。

3)%-ms:如果串长小于m 则在m 列范围内,字符左靠,

右补空格。

4)%m.ns:输出占m列,但只取字符串左端的n个字符,

且这n个字符输出在m列的右端,左端补空格

5)%-m.ns:其中m,n的含义同上,n个字符输出在m 列的

左侧,右端补空格

第五章:

一、.关系运算符及其优先次序

1.< (小于)

2.<= (小于或等于)

3.> (大于)

4.>= (大于或等于)

5.== (等于)

6.!=(不等于)

说明:

关系运算符的优先级低于算术运算符

关系运算符的优先级高于赋值运算符

二、用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式,赋值表达式,字符表达式)接起来的式子,称关系表达式。

C语言中没有专用的逻辑值,1代表真,0代表假

三、逻辑运算符及其优先次序

&& (逻辑与) 相当于其他语言中的AND

|| (逻辑或) 相当于其他语言中的OR

! (逻辑非) 相当于其他语言中的NOT

例:a&&b 若a,b为真,则a&&b为真。

a||b 若a,b之一为真,则a||b为真。

!a 若a为真,则!a为假。

优先次序:

!(非)->&&()->||()

?逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于算

术运算符

四、短路效应

在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行。

(1)a&&b&&c 只有a为真时,才需要判断b的值,只有a和b都为真时,

才需要判断c的值。

(2)a||b||c 只要a为真,就不必判断b和c的值,只有a为假,才

判断b。a和b都为假才判断c

五、

If语句的嵌套

在if语句中又包含一个或多个if语句称为if语句的嵌套。

形式:

If()

if() 语句1

else 语句2

Else 内嵌if

if() 语句3

else 语句4

六.If语句的三种基本形式

(1)if (表达式)语句

例:i f(x>y) printf(“%d”,x);

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

else 语句2

例:if (x>y) printf(“%d”,x);

else printf(“%d”,y);

(3)if(表达式1)语句1

else if(表达式2)语句2

else if(表达式3)语句3

……

else if(表达式m)语句m

else 语句n

七.条件运算符

格式:表达式1?表达式2∶表达式3

功能:判断表达式1的值,如果成立就执行表达式2,否则就执行表达式3使用场合:若在if语句中,当被判别的表达式的

值为“真”或“假”时,都执行一个赋值语

句且向同一个变量赋值时,可以用一个

条件运算符来处理。

说明:

(1).条件运算符的执行顺序:先求解表达式1,若为非0(真)

则求解表达式2,此时表达式2的值就作为整个条件表达式

的值。若表达式1的值为0(假),则求解表达式3,表达

式3的值就是整个条件表达式的值。

(2).条件运算符优先级高于赋值运算符,低于关系运算符

和算术运算符。

(3).条件运算符的结合方向为“自右至左”。

(4).“表达式2”和“表达式3”不仅可以是数值表达式,还可以

是赋值表达式或函数表达式。

(5).条件表达式中,表达式1的类型可以与表达式2和表达

式3的类型不同。

switch语句的格式:

switch(表达式)

{case常量表达式1:语句1

case常量表达式2:语句2

case常量表达式n:语句n

default :语句n+1

说明:

(1)switch后面括弧内的“表达式”,ANSI标准允许

它为任何类型。

(2) 当表达式的值与某一个case后面的常量表达式的值相

等时,就执行此case后面的语句,若所有的case

中的常量表达式的值都没有与表达式的值匹配的,就执行

default后面的语句。

(3) 每一个case的常量表达式的值必须互不相同,否则就

会出现互相矛盾的现象(对表达式的同一个值,有两种或

多种执行方案)。

(4) 各个case和default的出现次序不影响执行结

果。例如,可以先出现“default:…”,再出现

“case ′D′:…”,然后是“case ′A′:…”。

(5) 执行完一个case后面的语句后,流程控制转移到下一

个case继续执行。“case常量表达式”只是起语句

标号作用,并不是在该处进行条件判断。在执行

switch语句时,根据switch后面表达式的值

找到匹配的入口标号,就从此标号开始执行下去,不再进

行判断。应该在执行一个case分支后,可以用一个

BREAK语句来终止switch语句的执行。

(6) 多个case可以共用一组执行语句。

第六章:

一、用while语句实现循环

注意:

(1)循环体如果包含一个以上的语句,应该用花括弧括起来,以复合语句形

式出现。

(2)在循环体中应有使循环趋向于结束的语句。如果无此语句,则i的值始终

不改变,循环永不结束

二、

do-while语句的特点:先执行循环体,然后判断循环条件是否成立。

一般形式: do

循环体语句

while (表达式);

执行过程:先执行一次指定的循环体语句,然后判别表达式,当表达式的值为非零(“真”) 时,返回重新执行循环体语句,如此反复,直到表达式的值等于0为止,此时循环结束。

三、while语句和用do-while语句的比较:

在一般情况下,用while语句和用do-while语句处理同一问题时,若二者的循环体部分是一样的,它们的结果也一样。但是如果while后面的表达式一开始就为假(0值)时,两种循环的结果是不同的。

四、用for 语句实现循环

?C语言中的for语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。

一般形式:

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

★for语句的执行过程:

(1) 先求解表达式1。

(2) 求解表达式2,若其值为真(值为非0),则执

行for语句中指定的内嵌语句,然后执行下

面第(3)步。若为假(值为0),则结束循环,

转到第(5)步。

(3) 求解表达式3。

(4) 转回上面第(2)步骤继续执行。

(5) 循环结束,执行for语句下面的一个语句

说明:

(1) for语句的一般形式中的“表达式1”可以省略,此时应在for语句之前给循环变量赋初值。注意:省略表达式1时,其后的分号不能省略。如for(;i<=100;i++) sum=sum+i;

执行时,跳过“求解表达式1”这一步,其他不变。

(2) 如果表达式2省略,即不判断循环条件,循环无终

止地进行下去。也就是认为表达式2始终为真。

例如:for(i=1; ;i++) sum=sum+i;

表达式1是一个赋值表达式,表达式2空缺。它相当于:

i=1;

while(1)

{sum=sum+1;i++;}

(3) 表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束。如:

for(i=1;i<=100;)

{sum=sum+i;i++;}

在上面的for语句中只有表达式1和表达式2,而没有表达式3。i++的操作不放在for语句的表达式3的位置处,而作为循环体的一部分,效果是一样的,都能使循环正常结束。

(4) 可以省略表达式1和表达式3,只有表达式2,即只

给循环条件。如:

for(;i<=100;) while(i<=100) {sum=sum+i; 相当于{sum=sum+i;

i++;} i++;}

在这种情况下,完全等同于while语句。可见for语句

比while语句功能强,除了可以给出循环条件外,还可

以赋初值,使循环变量自动增值等。

(5) 3个表达式都可省略,如:

for(; ;) 语句

相当于

while(1) 语句

即不设初值,不判断条件(认为表达式2为真值),

循环变量不增值。无终止地执行循环体。

(6)表达式1和表达式3可以是一个简单的表达式,也可以

是逗号表达式,即包含一个以上的简单表达式,中间用

逗号间隔。如:

for(sum=0,i=1;i<=100;i++) sum=sum+i;

for(i=0,j=100;i<=j;i++,j--) k=i+j;

表达式1和表达式3都是逗号表达式,各包含两个赋值

表达式,即同时设两个初值,使两个变量增值.

在逗号表达式内按自左至右顺序求解,整个逗号表达

式的值为其中最右边的表达式的值。如:

for(i=1;i<=100;i++,i++) sum=sum+i;

相当于

for(i=1;i<=100;i=i+2) sum=sum+i;

四、几种循环的比较

(1)四种循环都可以用来处理同一问题,一般情况下它们可以互相代替。但一般不提倡用goto型循环。

(2)在while循环和do-while循环中,只在while后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环体中包含使循环趋于结束的语句(如i++,或i=i+1等)。

for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式3中。因此for语句的功能更强,凡用while循环能完成的,用for循环都能实现。

(3)用while和do-while循环时,循环变量初始化的操作应在while和do-while 语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。

(4)while循环、do-while循环和for循环,可以

用break语句跳出循环,用continue语句结束本

次循环(break语句和continue语句见下节)。而

对用goto语句和if语句构成的循环,不能用

break语句和continue语句进行控制.

五、break语句

break语句可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句

一般形式:break;

注意:break语句不能用于循环语句和switch语句之外的任何其他语句中。continue语句

作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定.

一般形式:continue;

continue语句和break语句的区别

continue语句只结束本次循环,而不是终止整个循环的执行。

while(表达式1) for

{ …

if(表达式2) continue;

}0

break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。while(表达式1) for

{ …

if(表达式2) break;

}

第七章

一、一维数组

数组:数组是一组有序数据的集合,数组中每一个元素的类型相同。用数组名和下标来唯一确定数组中的元素。

定义方式:类型说明符数组名[下标常量表达式]

例、int a[10]

定义一个数组,数组名a,有10个元素,每个元素的类型均为int。这10个元素分别是:a[0]、a[1]、a[2]、a[3]、a[4]、....、a[8]、a[9]。

注意:

(1)C语言中,数组下标从0开始.

(2)C语言不允许对数组的大小做动态定义

二、一维数组的初始化

1.初始化:在定义时指定初始值,编译器把初值赋给数组变量。

2.赋值:使用赋值语句,在程序运行时把值赋给数组变量,如a[0] = 2。

二、二维数组的定义

一般形式:

类型说明符数组名[常量表达式][常量表达式]

例、

float a[3][4]; a为3×4(3行4列)的数组

float b[5][10]; b为5×10(5行10列)的数组

三、

strcat():连接字符串。

strcat(字符串1,字符串2);把“字符串2”连接到“字符串1”的后面。

strcpy():字符串拷贝

strcpy(字符串1,字符串2);把“字符串2”的值拷贝到“字符串1”中

第八章:

1.什么是函数?

函数是完成特定功能的一组程序代码,

它以一个名称来标识,用此名称来实现调用。

函数的功能?

将一个复杂的任务分割为相对小的、功能特定的小任务,从而使复杂的任务更易理解和实现。

实现代码的重用。

说明:

必须有且只能有一个名为main的主函数。

C程序的执行总是从main函数开始,在main中结束。

函数不能嵌套定义,可以嵌套调用。

1.在C语言中,所有的函数定义,包括主函数main在内,都是平行

的。

2.在一个函数的函数体内,不能再定义另一个函数。但是函数之间

允许相互调用,也允许嵌套调用。

3.调用者称为主调函数。函数还可以自己调用自己,称为递归调用。

main 函数是主函数,它可以调用其它函数,而不允许被其它函数调用。

2.形式参数和实际参数

在定义函数时函数名后面括号中的变量名称为“形式参数”,在主调函数中调用一个函数时,函数名后面括号中的参数称为“实际参数”。

形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送

函数的形参和实参具有以下特点

1.形参变量只有在被调用时才分配内存单元,在调用结束时,立即释放所分配的内存单元。

2. 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。

3. 实参和形参在数量上,类型上,顺序上应严格一致。

4. 在C语言中,实参向形参的数据传递是“值传递”,单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中实参和形参是不同的单元。

3.函数的返回值

函数的值是指函数被调用之后,执行函数体中的程序,所取得的并返回给主调函数的值

4.C语言中规定在以下几种情况时可以省去主调函数中对被调函数的函数说明。

1) 如果被调函数的返回值是整型时,可以不对被调函数作说明,而直接调用。这时系统将自动对被调函数返回值按整型处理

2) 当被调函数的函数定义出现在主调函数之前时,在主调函数中也可以不对被调函数再作说明而直接调用。

3) 如在文件开头(所有函数定义之前),对本文件中所调用的函数进行了说明,则在以后的各主调函数中,可不再对被调函数作说明。

5.用数组名作为函数参数时还应注意以下几点:

a. 形参数组和实参数组的类型必须一致,否则将引起错误。

b. 形参数组和实参数组的长度可以不相同,因为在调用时,只传送首地址而不检查形参数组的长度。当形参数组的长度与实参数组不一致时,虽不至于出现

语法错误(编译能通过),但程序执行结果将与实际不符,这是应予以注意的。

c. 在函数形参表中,允许不给出形参数组的长度,或用一个变量来表示数组元素的个数。

例如,可以写为:

void nzp(int a[ ])

或写为

void nzp(int a[ ],int n)

其中形参数组a没有给出长度,而由n值动态地表示数组的长度。n的值由主调函数的实参进行传送。

d. 多维数组也可以作为函数的参数。在函数定义时对形参数组可以指定每一维的长度,也可省去第一维的长度。因此,以下写法都是合法的。

int MA(int a[3][10])

或int MA(int a[ ][10])

第7章指针

1.指针的定义:在C语言中,指针是一种特殊的变量,它是存放地址的一个变量的地址称为该变量的“指针”

2.指针的使用

对“&”和“*”运算符说明:

1.取地址运算符”&”它的一般格式: & 变量名

说明:

①”&”的功能是取变量的地址,即它将返回操作对象在内存中的存储地址

②”&”只能用于一个具体的变量或者数组元素,而不能是表达式或者常量

举例:p_ch = &ch;//将变量ch的地址赋给指针变量p_ch2.取内容运算符”*”它的一般格式: * 指针变量名

说明:

①”*”的功能是用来表示指针变量所指存储单元中的内容

②在”*”运算符之后的变量必须是指针变量

举例:int i, *p;

p=&i ;

*p=1 ; //将1存储在p所指向的地址中,也就是i的地址

结构体:类和对象:

类也是数据类型。对象是类的一个实例。一个类可以声明多个对象,且定义对象时系统会自动调用构造函数来实现对象的初始化操作。

构造函数和析构函数是属于成员函数友元函数(friend)不属于成员函数。

C语言题库及答案

C语言题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项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 )。 A.-a1 B.a[i] C.a2_i D.int 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# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

计算机C语言趣味的程序设计——题目百例

Contest - 2011级C语言课程大作业 Start Time: 2012-02-19 16:25:00 End Time: 2012-03-01 22:00:00 Current Time: 2012-2-23 15:51:18 Status:Running Public

写在最前: 本文档中的题目;在不不同的编译器中可能会有提示错误,呵呵,小小的动动手改下变量的定义就可以运行了……………….. 由于能力不足..有题目未解决的…或者有错误的我会…认真听取大家的..意见的…. 呵呵……..有一两个….偷了下懒哦……… 提供原题目还有本人自己的解答的源代码。感谢大家的。。。。建议……………. 问题A: 趣味程序设计_狼追兔子 时间限制: 1 Sec 内存限制: 128 MB 提交: 341 解决: 63 [提交][状态][讨论版] 题目描述 一只兔子躲进了n个环形分布的洞的某一个中。狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找;也没有找到,就隔两个洞,到第六个洞去找。以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中? 输入 有多组测试数据,读取到文件结尾符为止。每组测试数据输入n(2≤n≤100),即洞穴个数。输入到文件结尾符为止。 输出 兔子可能藏匿的洞。如果不止一个,按从小到大的顺序输出。如果不存在,输出空行。

样例输入 10 8 15 样例输出 2 4 7 9 2 4 5 7 8 9 11 12 14 提示 用一个数组a[10],对应的元素a[0],a[1],a[2]……a[9]对应表示10个洞,初值均置1。通过一个循环用“穷举法”找兔子,第n次查找对应第(n-1)%10个洞,如果在第(n-1)%10个洞中没有找到兔子,因此将数组元素a[(n-1)%10]置0值。循环完成后,检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身该洞中。 #include #include int ok[110]; int main() { int n,s,i,find; while(scanf("%d",&n)!=EOF) { memset(ok,0,sizeof(ok)); for(i=1;i<=200;i++) if(!ok[find=(i*(i+1)/2)%n]) if(find==0) ok[n]=1; else ok[find]=1; for(s=0,i=1;i<=n;i++) s+=ok[i]; for(i=1,find=0;i<=n;i++) if(!ok[i]) { if(find!=(n-s-1)) { printf("%d ",i);find++;

计算机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 语言的标识符只能由字母、数字和下划线三种字符组成。 第三章数据类型、运算符和表达式

大学c语言考试题库含答案

================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10; printf("%d",a++); A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B

能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 main() {int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++;} printf("a=%d,b=%d",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0;

c语言趣味编程实例

1、编程序求5X+2Y+Z=50 的所有非负整数解。 #include int main() { int x, y, z; int count = 0; for (x = 0; 5 * x <= 50;x++) for (y = 0; 2 * y <= 50; y++) for (z = 0; z <= 50; z++) { if (5 * x + 2 * y + z == 50) { count++; printf("%d :", count); printf("x=%d,y=%d,z=%d", x, y, z); printf("\n"); } } return 0; } 2、把25个字母A、B、C、···、X、Y按如下要求打印出来:从最中间的字母M 开始打印,然后一左一右依次打印出其它字母,即M,L,N,K,O,...。 要求:初始化时按字母表顺序赋值。 #include int main() { char x[] = "ABCDEFGHIJKLMNPQRST"; int k; int n = 0; while (x[n]) { n++; if (x[n] == 'M') { k = n;break; } } printf("%c,",x[k]); for (int i = 1; i <= 12; i++) if (i <= 11) printf("%c,%c,", (x[k] - i), (x[k] + i)); else printf("%c,%c。", (x[k] - i), (x[k] + i)); printf("\n");

C语言考试重点(考前必看,吃透必过)

C语言最重要的知识点 总体上必须清楚的: 1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。 byte是指字节, 一个字节 = 八个位. 概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、define PI 3.1415926; 这个写法是错误的,一定不能出现分号。 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。记住预定义标识符可以做为用户标识符。

C语言经典编程

猴子吃桃 1、题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 1.程序分析:采取逆向思维的方法,从后往前推断。 2.程序源代码: main() { int day,x1,x2; day=9; x2=1; while(day>0) {x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/ x2=x1; day--; } printf("the total is %d\n",x1); } 回文数问题 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法) 2.程序源代码: main( ) { long a,b,c,d,e,x; scanf("%ld",&x); a=x/10000;/*分解出万位*/ b=x%10000/1000;/*分解出千位*/ c=x%1000/100;/*分解出百位*/ d=x%100/10;/*分解出十位*/ e=x%10;/*分解出个位*/ if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a); else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b); else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c); else if (d!=0) printf("there are 2, %ld %ld\n",e,d); else if (e!=0) printf(" there are 1,%ld\n",e); } 杨辉三角 题目:打印出杨辉三角形(要求打印出10行如下图) 1.程序分析: 1 1 1

最新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

CC语言趣味程序设计编程百例精解

C-C++语言趣味程序设计编程百例精解() ?81.角谷猜想 日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。请编程验证。 *问题分析与算法设计 本题是一个沿未获得一般证明的猜想,但屡试不爽,可以用程序验证。题目中给出的处理过程很清楚,算法不需特殊设计,可按照题目的叙述直接进行证。 *程序说明与注释 #include<stdio.h> int main() { int n,count=0; printf("Please enter number:"); scanf("%d",&n); /*输入任一整数*/ do{ if(n%2)

n=n*3+1; /*若为奇数,n乘3加1*/ printf("[%d]:%d*3+1=%d\n",++count,(n-1)/3,n); } else { n/=2; /*若为偶数n除以2*/ printf("[%d]: %d/2=%d\n",++count,2*n,n); } }while(n!=1); /*n不等于1则继续以上过程*/ } 82.四方定理 数论中著名的“四方定理”讲的是:所有自然数至多只要用四个数的平方和就可以表示。 请编程证此定理。 *问题分析与算法设计 本题是一个定理,我们不去证明它而是编程序验证。 对四个变量采用试探的方法进行计算,满足要求时输出计算结果。 *程序说明与注释 #include<stdio.h> #include<stdlib.h> int main()

C语言复习

2. 下列可用于C语言用户标识符的一组是 A)void, define, WORD B)a3_b3, _123,Car C)For, -abc, IF Case D)2a, DO, sizeof 3. 若有说明语句:char c='\72';则变量c A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法,c的值不确定 4. 有字符串如下,"\n\\as1xabc",则字符串的长度为 A)8 B)9 C)10 D)11 5. C语言中运算对象必须是整型的运算符是 A)%= B)/ C)= D)<= 6. 若变量已正确定义并赋值,以下符合C语言语法的表达式是 A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b 7. 若变量a,i已正确定义,且i已正确赋值,合法的语句是 A)a= =1 B)++i;C)a=a++=5;D)a=int(i); 8. 若有定义:int a=7; float x=2.5,y=4.7; , 则表达式x+a%3*(int)(x+y)%2/4的值是 A)2.500000 B)2.750000 C)3.500000 D)0.000000 9. 已知int i,a;执行语句i=(a=3,a++,- -a,a+4,a+5,++a);后,变量i的值为 A)2 B)3 C)4 D)5 10. 设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为 A)int B)float C)double D)不确定 11. 设有int x=11;则表达式(x++*1/3)的值是 A)3 B)4 C)11 D)12 12. 以下程序的输出结果是 void main() { int a=21,b=11; printf("%d\n",- -a+b,- -b+a); } A)30 B)31 C)32 D)33 13. 已知int a=6; 则执行a+=a-=a*a;语句后,a的值为 A)36 B)0 C)-24 D)-60 14. 在内存中,存储字符′x′要占用1个字节,存储字符串″X″要占用个字节

C语言函数题库及答案

C语言函数题库及答案 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

第六部分函数 一、单项选择题 1.C语言中的函数返回值的类型是由(D)决定 A.return语句中的表达式B.调用函数的主调函数 C.调用函数时临时D.定义函数时所指定的函数类型 2.下面不正确的描述是(B)。 A.调用函数时,实参可以是表达式 B.调用函数时,实参和形参可以共用内存单元 C.调用函数时,将形参分配内存单元 D.调用函数时,实参与形参的类型必须一致 3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是 (D) A.地址传递B.值传递 C.由实参传递给形参,并由形参传回给实参D.由用户指定传递方式 4.下面的函数调用语句中含有(A)个实参 inta,b,c; intsum(intx1,intx2); …… total=sum((a,b),c); A.2B.3C.4 D.5 5.在C语言中(C) A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义和调用均不可以嵌套 C.函数的定义不可以嵌套,但是函数的调用可以嵌套 D.函数的定义和调用均可以嵌套 6.关于C语言中的return语句正确的是(C) A.只能在主函数中出现 B.在每个函数中都必须出现 C.可以在一个函数中出现多次 D.只能在除主函数之外的函数中出现 7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是(D) (floatx[],intn) (float*x,intn) (floatx[10],intn) (floatx,intn) 8.在C语言中,函数的数据类型是指(A) A.函数返回值的数据类型 B.函数形参的数据类型 C.调用该函数时的实参的数据类型 D.任意指定的数据类型 9.已知如下定义的函数: fun1(a) {printf("\n%d",a); } 则该函数的数据类型是(C)

C语言编程练习题绝对经典!

马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人 解方程组 编写程序,采用穷举法求出结果。 编写程序,根据以下公式求e 的值。要求用两种方法计算: 1) for 循环,计算前50项 2)while 循环,直至最后一项的值小于10-4 从键盘中输入一个数字(不限位数),用循环语句编程判断并输出这个数字的位数。 猴子吃桃子问题。猴子第一天摘下若干个桃,当即只一半,又多吃一个。第二天早上又将剩下的一半吃掉一半,双多吃一个。以后每天早上都吃了前天剩下的一半零一个,到第10天早上 只剩下最后一个桃。问第一天摘了几个桃。 编程打印九九乘法表 青年歌手参加歌曲大奖赛,有10个评委打分,试编程求选手的平均得分(去掉一个最高分和一个最低分)。 从键盘中输入一个数字(可以包含小数点,其位数在60位以下,求其整数的有效位数,如输入,返回值为整数有效位数为3) 1) 输入数据为浮点型,不用数组,不用字符串,只有变量的算术运算实现此功能。 2) 使用数组来进行编程。 使用数组,编写一个十进制正整数转换为任意进制数的转换工具。 (大进制向小进制的转换。(方法是相除去余) 10进制327转八进制: 327/8 = 40 余数为7 40/8 = 5 余数为0 于是八进制数为507(第一位5是最后的商)) 使用数组,编写一个任意进制正整数转换为十进制的转换工具。(以2,10进制互转为例,其他请举一反三: 二进制数1101转十进制: 1×2的三次幂+1×2的二次幂+0×2的一次幂+1×2的零次幂=8+4+0+1=13) 10个小孩围成一圈分糖果,老师顺次分给每个人的糖块数为12,2,8,22,16,4,10,6,14,20。然后按下列规则调整,所有小孩同时把自己的糖果分一半给右边的小孩,糖块数变为 奇数的人,再向老师补要一块,问经过多少次调整后,大家的糖块一样多,且每人多少块。 11111111!2!3!4!5!!e n ≈++++++??????+

C语言考试总结复习要点总结.doc

C语言考试复习要点 1.程序结构是三种:顺序结构, 循环结构 (三个循环结构 ), 选择结构 (if 2.读程序都要从main() 入口 , 然后从最上面顺序往下读(碰到循环做循环 3.计算机的数据在电脑中保存是以二进制的形式.数据存放的位置就是是位是指为0或者1。byte是指字节,一个字节=八个位. 5.一定要记住二进制如何划成十进制。和 switch) ,碰到选择做选择 他的地址 . )。 概念常考到的: 编译预处理不是 C 语言的一部分,不占运行时间,不要加分号。 C 语言编译的程序称为源程序,它以ASCII 数值存放在文本文件中。 每个 C 语言程序中main 函数是有且只有一个。 在函数中不可以再定义函数。 算法的是一定要有输出的,他可以没有输入。 break 可用于循环结构和switch 语句。 逗号运算符的级别最低。 第一章 1)合法的用户标识符考查: 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了。 关键字不可以作为用户标识符号。 main define scanf printf 都不是关键字。迷惑你的地方 If 是可以做为用户标识符。因为 If 中的第一个字母大写了,所以不是关键字。 2)实型数据的合法形式: 就是合法的,且数据是×10-1 。 考试口诀: e 前 e 后必有数, e 后必为整数 3)字符数据的合法形式:: '1' 是字符占一个字节,"1" 是字符串占两个字节(含有一个结束符号 )。 '0' 的 ASCII 数值表示为48, 'a' 的 ASCII 数值是 97, 'A' 的 ASCII 数值是 65。 一般考试表示单个字符错误的形式:'65'"1" 字符是可以进行算术运算的,记住:'0'-0=48 大写字母和小写字母转换的方法:'A'+32='a' 相互之间一般是相差32。 4)整型一般是两个字节, 字符型是一个字节,双精度一般是 4 个字节: 考试时候一般会说,在 16 位编译系统,或者是32 位系统。碰到这种情况,不要去管,一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是 4 个字节就可以了。5)转义字符的考查: 在程序中 int a = 0x6d ,是把一个十六进制的数给变量 a 注意这里的0x 必须存在。 在程序中 int a = 06d, 是一个八进制的形式。 在转义字符中,’ x6d’才是合法的,0 不能写,并且x 是小写。 141’是合法的,0 是不能写的。 ‘108’是非法的,因为不可以出现8 。 6)算术运算符号的优先级别: 同级别的有的是从左到右,有的是从右到左。 7)强制类型转换: 一定是(int)a不是int (a),注意类型上一定有括号的。 注意( int )( a+b )和( int ) a+b的区别。前是把a+b转型,后是把 a 转型再加b。8)表达式的考查:

2019二级C语言题库参考答案解析

2019年C语言考题答案 1、程序填空题 给定的程序的功能是调用fun 函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat 的二进制中。 填空:( 1) STYPE(2)FILE(3)fp 改错:(1) for(i=0;i<=sl;i++)(2)t[2*sl]= 0“ 或t[sl+sl]= 0“ 编程: *c=(a/10)*1000+(b/10)*100+(a%10)*10+(b% 10); 2、程序填空题给定程序的功能是:从键盘输入若干文本 (每行不超过80 个字符),写到文件myfile4.txt 中,用-1 作为字符串输出输入的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText 和Writetext 实现。 填空:(1)*fw(2)str (3) str 改错:(1)voidfun(longs,long*t)(2) s1=s1*10; 编程:int i,j=0,min=a[0].s; for(i=0;i

else if(min==a[i].s) b[j++]=a[i]; } return j; 3、程序填空题 给定程序中,函数fun 的功能是:讲自 然数1~10 以及它们的平方根写到名为myfile3.txt 的文本中,然后再按顺序读出显示在屏幕上。 填空:( 1) fp( 2)fclose(fp)(3)myfile3.txt 改错:( 1)for(i=j+1;i

趣味c语言编程100例

趣味 c 语言编程100 例 【程序 1】 题目:有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、 2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) / *以下为三重循环 */ for( j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /* 确保 i 、 j、 k 三位互不相同 */ printf("%d,%d,%d\n",i,j,k); } } 程序 2】 题目:企业发放的奖金根据利润提成。利润 (I) 低于或等于 10 万元时,奖金可提 10% ;利润高于 10 万元,低于 20 万元时,低于 10 万元的部分按 10% 提成,高于 10 万元的部分,可可提成 7.5% ; 20 万到 40 万之间时,高于 20 万元的部分,可提成 5% ; 40 万到 60 万之间时高于

40 万元的部分,可提成 3% ;60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5% ,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总 数? 1. 程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2. 程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000) bonus=bonus4+(i-400000)*0.03;

2020全国计算机等级考试二级C语言知识点全套复习提纲(精华版)

全国计算机等级考试二级C语言全套复习提纲(精华 版)

目录 第一部分公共 基础知识 第1 章算法与数据结构 (1) 考点1 算法 (1) 考点2 数据结构 (1) 考点3 线性表及其顺序存储结构 (1) 考点4 栈和队列 (1) 考点5 线性链表 (2) 考点6 树与二叉树 (2) 考点7 查找技术 (3) 考点8 排序技术 (3) 第2 章程序设计基础.4 考点1 程序设计方法 与风格 (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 与getchar 函数 (17) 考点3 printf 函数 (17) 考点4 scanf 函数 (18) 考点5 位运算的含义和应用 (18) 第3 章选择结构 (19) 考点1 关系运算符和关系表达式 (19) 考点2 逻辑运算符和逻辑表达式 (19)

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 巧夺偶数 2 五猴分桃 3 高次方数 4 借书方案 5 过桥问题 6 数制转换7 打渔晒网8 喝酒问题9 哥德巴赫猜想10 打印日历11 抓交通肇事逃逸犯12 反序数13 新郎新娘14 称重砝码15 求车速16 谁是窃贼17 出售金鱼18 百钱百鸡19 谜语博士20 猜牌术(-)21 舍罕王的失算22 怎样存钱利最大23 猜牌术(二)24 爱因斯坦的数学题25 取火柴游戏26 平分鱼和筐27 可逆素数28 三色球问题29 抢n游戏30 问题A: 趣味程序设计_狼追兔子 时间限制: 1 Sec 内存限制: 128 MB 提交: 341 解决: 63 [提交][状态][讨论版] 题目描述 一只兔子躲进了n个环形分布的洞的某一个中。狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找;也没有找到,就隔两个洞,到第六个洞去找。以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中? 输入 有多组测试数据,读取到文件结尾符为止。每组测试数据输入n(2≤n≤100),即洞穴个数。输入到文件结尾符为止。 输出 兔子可能藏匿的洞。如果不止一个,按从小到大的顺序输出。如果不存在,输出空行。 样例输入 10 8 15

样例输出 2 4 7 9 2 4 5 7 8 9 11 12 14 提示 用一个数组a[10],对应的元素a[0],a[1],a[2]……a[9]对应表示10个洞,初值均置1。通过一个循环用“穷举法”找兔子,第n次查找对应第(n-1)%10个洞,如果在第(n-1)%10个洞中没有找到兔子,因此将数组元素a[(n-1)%10]置0值。循环完成后,检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身该洞中。 #include #include int ok[110]; int main() { int n,s,i,find; while(scanf("%d",&n)!=EOF) { memset(ok,0,sizeof(ok)); for(i=1;i<=200;i++) if(!ok[find=(i*(i+1)/2)%n]) if(find==0) ok[n]=1; else ok[find]=1; for(s=0,i=1;i<=n;i++) s+=ok[i]; for(i=1,find=0;i<=n;i++) if(!ok[i]) { if(find!=(n-s-1)) { printf("%d ",i);find++; } else printf("%d",i); } printf("\n"); } return 0; } 问题B: 趣味程序设计_巧夺偶数 时间限制: 1 Sec 内存限制: 128 MB

C语言期末考试全部知识点复习

C语言知识点复习资料 考试就是难得得训练自己得机会,在特定得时间、特定得地点、特定得气氛下,您需要调动各方面得能力。而在每一次考试中,我都下意识地应用自己摸索出来得“目标控制法”,做到了每次考试有有收获与进步。每次考试前,我都会在一张白纸上写满通过本次考试要达到得目标:要注意克服哪些易犯得错误,尤其就是要克服前几次考试中暴露出来得共性得失误;要积累哪些经验,应用哪些技巧,比如选择题中得特征值法;要在多长得时间内完成卷面各部分,比如,争取35分钟内完成数学试卷中得选择题与填空题;要培养锻炼哪些考试应试得心理素质等。 也就就是说,我们要把考试瞧成就是一个完整得流程,包括考前准备、考场发挥与考后调整三个阶段。同学中存在得误区往往就是只注意考前得准备与考场得发挥两个阶段,对考后调整注意不够。事实上,高考之前得每一次模拟考试,最重要得就就是考试后得总结与反思,只有这样,才能认识到自己得薄弱环节,不断提高考试能力。所以,有心得同学一定要注意做好健全得考后调整,不断提高自己得实力。 总体上必须清楚得: 1.程序中基本得控制结构就是三种: 顺序结构、选择结构(分支结构)、循环结构。 2.读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3.计算机得数据在电脑中保存就是以二进制得形式、数据存放得位置就就是它得地址、 4.bit就是位就是指为0 或者1。 byte 就是指字节, 一个字节 = 八个位、5、编译预处理不就是C语言得一部分,不占运行时间,不要加分号。(常考!) #define PI 3、1415926; 这个写法就是错误得,一定不能出现分号。 6、每个C语言程序中main函数就是有且只有一个。 7、用C语言编写得程序称为源程序,扩展名就是、c。C程序必须经过编辑、 编译、链接、运行四个步骤才可得到运行结果。注意、c与、obj文件时无法运行得,只有、exe文件才可以运行。(常考!) 8、 C语言书写格式就是自由得,每行可以写多个语句,一条语句也可以写在多行。 9、一个C语言程序有且只有一个main函数,就是程序运行得起点。

2020最新C语言题库及答案

2020最新C语言题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项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 )。 A.-a1 B.a[i] C.a2_i D.int 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# His.age

相关文档