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

C语言复习提纲

C语言复习提纲
C语言复习提纲

C语言复习提纲

第一章 C语言程序设计概述

一、Visual C++6.0开发环境

1、了解Visual C++6.0的安装过程;

2、了解Visual C++6.0的工作界面,菜单和工具栏的使用;

▲二、掌握C语言程序运行的过程

1、编辑:是指把按照C语法规则编写的程序代码通过编辑器(Visual C++ 6.0,Turbo C 3.0)输入计算机,并存盘。在存盘时,C源文件的扩展名为 .c

2、编译:将C语言源程序编译成目标程序,即对源程序进行编译,并将源程序转换为扩展名为.obj的二进制目标代码(即把已经编辑好的源程序翻译成二进制目标代码的过程)。

3、连接:将用户程序生成的目标代码文件(.obj)和系统提供的库文件(.lib)中的某些代码连接在一起,生成一个可执行文件(.exe)。

4、执行:执行生成的可执行代码,并输出结果。

5、调试:是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。

▲三、结构化程序设计的基本概念

1、概念

以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,将原来较为复杂的问题化简为一系列简单模块的设计,任何模块都可以使用一些基本的结构来实现,任何复杂的程序,都可以使用这些基本结构按一定的顺序组合起来,这些基本结构的特点都是只有一个入口、一个出口,这样的程序设计方法称为结构化程序设计。

2、基本思想

结构化程序设计的基本思想是采用"自顶向下,逐步细化、模块化设计、结构化编码"的程序设计方法和"单入口单出口"的控制结构。

3、三种基本结构

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

4、三种基本结构的特点

?只有一个入口?只有一个出口

?每一个基本结构中的每一部分都有机会执行到

?结构内不存在“死循环”

5、设计原则

?自顶向下?逐步细化?模块化设计

?结构化编码

▲四、C程序的基本组成:

C程序是由若干个函数构成的,至少有一个主函数main(),main()的位置可以任意,其他各函数在程序中的前后位置也是可以任意的。程序的执行总是从主函数开始,在主函数中结束。主函数是可以调用其他任何非主函数的函数,任何非主函数也可以调用其它任何非主函数。

C程序的基本组成:声明区、主程序区、函数定义区。

1、声明区

处在程序文件的所有函数的外部,一般包含:包含头文件、宏定义、类定义、结构体定义、函数声明、全局变量声明、条件编译等。

2、主程序区

主程序以main()函数开始,main()函数(主函数)是程序运行时的入口,包含局部变量的声明、函数调用、一般运算、结构控制、对象与结构的处理、文件处理等。

3、函数定义区

4、注释

//或/* */为注释,不能嵌套

不产生编译代码,不影响程序的执行效率。 ▲五、标识符

1、标识符的定义:用来对变量、符号常量名、函数、数组、类型等命名的有效字符序列统称为标识符。

2、标识符的命名规则:由字母、数字或下画线组成,并且第1个字符必须为字母或下画线。 注意:标识符区分大小写,即大写字母和小写字母的通常意义不同,且不能与关键字重名。 练习1_1:下列变量标识符哪些是正确的,哪些是不正确的?

a3bc if a!bc _abc abc _3abc a_bc 3abc

3、标识符分类:关键字、预定义标识符、用户自定义标识符。

第二章 数据类型、运算符和表达式

▲一、C 语言的数据类型

C 语言中基本数据类型包括整型、实型、字符型、枚举类型,构造类型有数组、结构体、共用体等。

?、基本数据类型(见P 17)

?、构造类型又称为组合类型,它是由基本类型按照某种规则组合而成的。 ? 数组:是由具有相同数据类型的元素组成的集合。

? 结构体:是由不同的数据类型构成的一种混合的数据结构,构成结构体的成员的数据类型一般不同,并且在内存中分别占据不同的存储单元。

? 共用体:是类似于结构体的一种构造类型,与结构体不同的是构成共同体的数据成员共用同一段内存单元。

? 枚举:是将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。

?、指针类型变量用于存储另一变量的地址,而不能用来存放基本类型的数据。它在内存中占

图2_1 C 语言的数据类型

数据类型

基本类型

空类型(无值类型)void

构造类型

指针类型 实型(浮点型)

联合型类型union

单字符型

char

整型int

单精度型

float

双精度型double

字符型

宽字符型w-char

逻辑型

bool 类类型class

枚举类型enum

结构类型struct 数组类型

据一个存储单元。

?、类是一种数据类型,它定义的是一种对象类型,由数据和方法组成,描述了属于该类型的所有对象的性质。

二、常量和变量

?、常量:在程序运行的整个过程中,其值始终保持不变的量。

?整型常量:表示形式有十进制、八进制(以0开头)和十六进制(以0x或0X开头)。整型常量可以后缀字母L(或l)表示长整数,后缀字母U(或u)表示无符号整数。

?实型常量(浮点型常量):表示形式有一般形式和指数形式。实型常量缺省为double型(双精度型),如后缀f或F,则为float型(单精度型)。

?字符常量:用单撇号括起来的一个字符。如'A','*'等。

转义字符:用反斜杠引导的,具有特定含义的字符(见P22表2-4),如 '\n','\367','\x8a'。

注:C语言字符集中的任何一个字符均可用转义字符来表示。

?字符串常量:用双撇号括起来的字符序列。如"student","广东广州"等。

?布尔常量:false,true。

?符号常量:

?#define 宏名常数

练习2_1:下列哪些是合法的常量:

①12.7f ②0986 ③0986.012 ④、0625L ⑤87U

⑥-0x98C2 ⑦01a ⑧-6.87E-2 ⑨1.2e0.5 ⑩E-3

⑾0xFF ⑿2L ⒀'\72' ⒁160 ⒂-0xffff

⒃5E2.0⒄-0xcdf ⒅1.3E⒆2E0 ⒇0668

(21)011 (22)0xe (23)-01 (24)-0x48a (25)0x

?变量:指程序在运行时其值可改变的量。

?变量应先定义(声明其类型和名称)后使用;

?变量定义的一般形式为:

◆< 数据类型 > <变名1>,<变名2>,…,<变名n>;

?在定义一个变量的同时,也可以给它赋以初值。

练习2_2以下正确的变量标识符是

①3abc ②$amount ③Num_of_Student④ if ⑤a!bc

⑥_above ⑦_abc ⑧a>b ⑨sin ⑩day

▲三、运算符和表达式

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

注意:int i=1.2*3; //结果为3,而不是3.6。 int i=5/3结果为1。

表达式17/5的结果是3,表达式17%5的结果是2。

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

注意:

?赋值运算符的结合性是从右至左的

?复合赋值运算符:int a=12; a+=a-=a*=a;(a=a+(a=a-(a=a*a)),结果为0)

注意:

在C语言中,定义int a=b=c=3;是错误的,而定义int a,b,c; a=b=c=3;是正确的。

练习2_3设m=9,i=3,则执行运算m%=i+1后,m的值是多少?结果1。

m=m%(i+1)→m=9%(3+1)→m=1。

3、关系运算符和关系表达式

注意:

?关系运算符的优先级低于算术运算符。例如:a+b>c 等价于 (a+b)>c,a!=b>c 等价于

a!=(b>c)

?“=”与“==”的区别

注意:

?逻辑非的优先级最高,逻辑与次之,逻辑或最低

练习2_4 若有int a=3,b=0;则表达式a&&!b的值为1。

练习2_5设有变量说明:int a=8,b=7;那么执行语句:printf("%d,%d \n",++a,b--),输出的结果是9,7

练习2_6设a,b,c均为int型变量,则执行语句a=b=3;c=++a||++b;后,b的值为3。

练习2_7设x、y和z都是int型变量,且x=8, y=3, z=5, 则表达式x*y/z+6-14%z的值为6。

练习2_8设有定义:int x=1,y=-1;则执行语句printf("%d\n",(x--&++y);后的输出结果是0。

练习2_9 设x,y,z,t均为int型变量,则执行以下语句x=y=z=1;t=++x||++y&&++z; 后,x、y、z、t的值分别为2,1,1,1。

6、条件运算符

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

注意:

?结合性是自右向左。a>b?a:c>d?c:d相当于a>b?a:(c>d?c:d)

?条件运算符的优先级别高于赋值运算符,低于关系运算符和算术运算符。如:

a>b?a-b:b-a相当于a>b?(a-b):(b-a)

练习2_10设有变量说明:int x=3,y=5;那么表达式:z=x>y?x:y运算后,z的值是5。

7、位运算符

位运算符是对其操作数按其二进制形式逐位进行运算,参加位运算的操作数必须为整数。

练习2_11 int a=5,b=6;a&b=4;a|b=7;a^b=3;~b=-7;b<<2=24;b>>2=1。

注:在位运算中,操作数左移三位,其结果相当于操作数乘以8。

8、逗号运算符

表达式1, 表达式2, ……, 表达式n

注意:

自左至右,依次计算各表达式的值,“表达式n” 的值即为整个逗号表达式的值。如:a = 3 * 5, a * 4, a + 5的值为20。

▲四、运算符的优先级与结合性

1、所谓结合性是指,当一个操作数两侧的运算符具有相同的优先级时,该操作数是先与左边的运算符结合,还是先与右边的运算符结合。

自左至右的结合方向,称为左结合性。反之,称为右结合性。

结合性是C语言的独有概念。除单目运算符、赋值运算符和条件运算符是右结合性外,其它运算符都是左结合性。

2、表达式求值

?按运算符的优先级高低次序执行。例如,先乘除后加减。

?如果在一个运算对象(或称操作数)两侧的运算符的优先级相同,则按C语言规定的结合方向(结合性)进行。

例如,算术运算符的结合方向是“自左至右”,即:在执行“a –b + c”时,变量b先与减号结合,执行“a - b”;然后再执行加c的运算。

练习2_12 设int x=2,y=3,z=4; 执行语句行x++;y+=1;z=x+y--以后,x,y和z的值分别是多少?

答案:3,3,7

练习2_13 若有定义int m=2;则逻辑表达式(m=3)&&(m= =3)的值是1。

练习2_14 如果a=5,b=3,c=7,d=9,则条件表达式a

练习2_15设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b) && (n=c>d);后,n的值为2。

练习2_16 如果a=5,b=3,c=7,d=9,则条件表达式a

第三章顺序结构程序设计

▲一、顺序结构程序设计——数据的输入和输出

1、格式化输出——printf()函数

?printf()函数的一般格式如下:printf("格式字符串" [,输出项表]);

?输出项表:要输出的数据项(可以没有,有多个时以“,”分隔)

?格式控制串:包含两种信息

格式说明: %[修饰符]格式字符,用于指定输出格式

如:格式控制字符“%c”表示的含义是输出一个字符型数据。

普通字符或转义序列:原样输出。

?格式控制字符:

如:在C程序的格式输出中,%d表示输出十进制整数,%6.2f表示输出长度为6位,有2位小数的实数。printf("s=%-5.3s","student");的输出结果是s=stu 。

2、格式化输入——scanf()函数

scanf()函数的一般格式

scanf("格式字符串", 输入项首地址表);

注:

①格式输入函数scanf()可以从键盘上接收不同数据类型的数据。

②格式化输出函数(printf())和格式化输入函数(scanf())都包含在头文件“stdio.h”中。

?格式字符串。格式字符串可以包含3种类型的字符:格式指示符、空白字符(空格、Tab 键和回车键)和非空白字符(又称普通字符)。

格式指示符与printf()函数的相似,空白字符作为相邻2个输入数据的缺省分隔符,非空白字符在输入有效数据时,必须原样一起输入。

?输入项首地址表──由若干个输入项首地址组成,相邻2个输入项首地址之间,用逗号分

输入项首地址表中的地址,可以是变量的首地址,也可以是字符数组名或指针变量。

变量首地址的表示方法: &变量名

其中“&”是地址运算符。

?数据输入操作

?如果相邻2个格式指示符之间,不指定数据分隔符(如逗号、冒号等),则相应的2个输入数据之间,至少用一个空格分开,或者用Tab键分开,或者输入1个数据后,按回车,然后再输入下1个数据。

例如,scanf("%d%d",&num1,&num2);

假设给num1输入12,给num2输入36,则正确的输入操作为:12□36↙

或者:12↙

36↙

注:使用“↙”符号表示按回车键操作,在输入数据操作中的作用是,通知系统输入操作结束。

?“格式字符串”中出现的普通字符(包括转义字符形式的字符),务必原样输入。

例如,scanf("%d,%d",&num1,&num2);

假设给num1输入12,给num2输入36,正确的输入操作为:12,36↙

练习3_1已有定义double d,f;,数据的输入方式为:3.69 3.2,根据定义和数据的输入方式,输入函数语句的正确形式为scanf("%lf%lf",&d,&f)。

(scanf("%4.2lf%3.1lf",&d,&f) 或scanf("%4.2f%3.1f",&d,&f)都是错误的)

练习3_2 有下列程序段

int m=2, n=2;n = m++ -1;printf("%d %d\n", m ,n); 输出结果是3,1。

第四章选择结构程序设计

▲一、算法

1、算法的概念:算法是指为解决一个问题而采取的确定的、有限的方法和步骤。

2、算法的描述方法最常用的有自然语言、流程图、N-S流程图、PAD图和伪代码等。

▲二、顺序结构程序设计

顺序结构是结构化程序设计中最简单、最常见的一种程序结构。顺序结构中的语句是按照书写的先后次序执行的,并且每个语句都会被执行到。

练习4_1 编写一个程序,从键盘上输入一个学生5门课的成绩,计算出该学生的总成绩和平均成绩,并用自然语言描述算法。

解:设变量 a、b、c、d、e分别表示学生5门课的成绩,sum表示总成绩,aver表示平均成绩, 则用自然语言描述算法如下:

①输入学生5门课的成绩a、b、c、d、e;

②求总成绩sum=a+b+c+d+e;

③求平均成绩: aver =sum/5.0;

④输出总成绩和平均成绩。

程序如下:

#include

main()

{

float a,b,c,d,e,sum,aver;

printf("请输入学生5门课的成绩\n");

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

sum=a+b+c+d+e;

aver=sum/5.0;

printf("总成绩=%0.2f,平均成绩=%.2f\n",sum,aver);

练习4_2 编写一个程序,从键盘输入梯形的上底、下底和高的值(浮点数),计算并输出其面积(保留两位小数),并用N-S结构图表示算法。

解:设变量a、b、h、area分别表示梯形的上底、下底、高和面积,则用N-S结构图表示算法如下:

程序如下:

#include

main()

{

float a,b,h,area;

printf("请输入梯形的上底、下底和高\n");

scanf("%f,%f,%f",&a,&b,&h);

area=(a+b)*h/2.0;

printf("梯形的面积为%0.2f\n",area);

}

练习4_3 编写一个程序,从键盘输入圆的半径,计算并输出圆的周长和面积(保留两位小数),用伪代码表示出算法。

解:设用变量r 、length、area分别表示圆的半径、周长和面积,则用伪代码表示算法如下:BEGIN

input r

length=2*3.14*r

area=3.14*r*r

print length,area

END

程序如下:

#include

#define PI 3.14

main()

{

float r,length,area;

printf("请输入圆的半径\n");

scanf("%f",&r);

length=2*PI*r;

area=PI*r*r;

printf("圆的周长为%0.2f\n",length);

printf("圆的面积为%0.2f\n",area);

}

▲三、选择结构程序设计

1、if语句

?、if语句的一般格式

if(表达式)

{语句组1;}

{语句组2;} ]

?if语句中的“表达式”必须用“(”和“)”括起来。表示程序执行的条件,常用关系运算符、逻辑运算符等表示的条件表达式,其结果只有两个值“1”或“0”(成立或不成立)。

如:表示字符型变量ch是大写英文字符的C语言表达式是ch>='A'&&ch<='Z',要判断字符变

量ch中的值是否为数字字符,则其表达式是ch>='0'&&ch<='9'。

?else子句(可选)是if语句的一部分,必须与if配对使用,不能单独使用。

?当if和else下面的语句组,仅由一条语句构成时,也可不使用复合语句形式(即去掉花括号)。

?、if语句的执行过程

?缺省else子句时

?当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语句组1,否则直接转向执行下一条。

?指定else子句时

?当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语句组1,然后转向下一条语句;否则,执行语句组2。

?、if语句的嵌套与嵌套匹配原则

?if语句允许嵌套。所谓if语句的嵌套是指,在“语句组1”或(和)“语句组2”中,又包含有if语句的情况。

?if语句嵌套时,为避免嵌套的if-else语句的二义性,C语言规定:else总是与在其之前最近的未配对的if语句组成配对关系。

练习4_4:铁路托运行李,假设每张车票可按每公斤0.3元托运40公斤以内的行李,如果超过40公斤时,超过的部分每公斤加价0.5元,试编写一道计算行李托运费的程序。

解:/*程序功能:计算行李托运费*/

#include

Void main()

{

float w,x;

printf("输入行李的重量:");

scanf("%f",&w);

if(w>40.0)

x=40.0*0.3+(w-40.0)*0.8;

else

x=w*0.5;

printf("行李重量w=%.2f公斤,托运费x=%.2f元\n",w,x);

}

2.switch语句

?、switch语句的一般形式

switch(表达式)

{ case 常量表达式1:语句组;break;

case 常量表达式2:语句组;break;

......

case 常量表达式n:语句组;break;

[default:语句组;[break; ]]

}

?当switch后面“表达式”的值,与某个case后面的“常量表达式”的值相同时,就执行该case后面的语句(组);当执行到break语句时,跳出switch语句,转向执行switch语句的下一条。

?如果没有任何一个case后面的“常量表达式”的值,与“表达式”的值匹配,则执行default 后面的语句(组)。然后,再执行switch语句的下一条。

?说明

?switch后面的“表达式”,可以是int、char和枚举型中的一种。

?每个case子句后面的“常量表达式”的值,必须各不相同,否则会出现相互矛盾的现象(即对表达式的同一值,有两种或两种以上的执行方案)。

?case后面的常量表达式仅起语句标号作用,并不进行条件判断。系统一旦找到入口标号,就从此标号开始执行,不再进行标号判断,所以要退出switch语句,方法是使用break语句。

?各case及default子句的先后次序,不影响程序执行结果。

?多个case子句,可共用同一语句(组)

?用switch语句实现的多分支结构程序,完全可以用if语句或if语句的嵌套来实现。

练习4_5以下程序段的输出结果是

int x=7,y=8,z=9;

if(x>y)

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

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

结果:7,8,7

练习4_6 以下程序的输出结果是

#include

void main()

{

int m=5;

if(m++>5)

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

else

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

}

结果:6

练习4_7 以下程序的输出结果是

#include

void main()

{

int k=1,x=0,y=0;

switch(k)

{ case 0:y++;

case 1:x++;

case 2:x++;y++;

}

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

}

结果x=2,y=1

第五章循环结构程序设计

▲一、循环程序设计

?、一般格式

while(循环继续条件)

{ 循环体语句组;}

?、执行过程

①求解“循环继续条件”表达式。如果其值为非0,转②;否则转③。

②执行循环体语句组,然后转①。

③执行while语句的下一条。

练习5_1:/*程序功能:求1~100的累计和*/

#include

void main()

{ int i=1,sum=0; /*初始化循环控制变量i和累计器sum*/

while( i<=100 )

{ sum += i;/*实现累加*/

i++;/*循环控制变量i增1*/

}

printf(“sum=%d\n”,sum);

}程序运行情况如下:

sum=5050

2、do-while语句(直到型循环)

?、一般格式

do

{ 循环体语句组; }

while(循环继续条件);/*本行的分号不能缺省*/

当循环体语句组仅由一条语句构成时,可以不使用复合语句形式。

?、执行过程

①执行循环体语句组。

②计算“循环继续条件”表达式。如果“循环继续条件”表达式的值为非 0(真),则转向①继续执行;否则,转向③。

③执行do-while的下一条语句。

?、do-while循环语句的特点是:先执行循环体语句组,然后再判断循环条件。

因此do......while语句不论条件是否成立,至少要执行一次循环体。

练习5_2:用do-while语句求解1~100的累计和。

/*程序功能:求1~100的累计和*/

main()

{ int i=1, sum=0; /*定义并初始化循环控制变量,以及累计器*/

Do

{

sum += i; /*累加*/

i++;

}

while(i<=100);/*循环继续条件:i<=100*/

printf(“sum=%d\n”,sum);

}

3、for语句

?、for语句的一般格式

for([变量赋初值];[循环继续条件];[循环变量增值])

{ 循环体语句组;}

①求解“变量赋初值”表达式。

②求解“循环继续条件”表达式。如果其值非0,执行③;否则,转至④。

③执行循环体语句组,并求解“循环变量增值”表达式,然后转向②。

④执行for语句的下一条语句。

?、说明

①“变量赋初值”、“循环继续条件”和“循环变量增值”部分均可缺省,甚至全部缺省,但其间的分号不能省略。

②当循环体语句组仅由一条语句构成时,可以不使用复合语句形式。

③“循环变量赋初值”表达式,既可以是给循环变量赋初值的赋值表达式,也可以是与此无关的其它表达式(如逗号表达式)。

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

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

④“循环继续条件”部分是一个逻辑量,除一般的关系(或逻辑)表达式外,也允许是数值(或字符)表达式。

如:while(!E)等价于while(0),while(E)等价于while(1)。

for语句最为灵活,不仅可用于循环次数已经确定的情况,也可用于循环次数虽不确定、但给出了循环继续条件的情况。

练习5_3:求n的阶乘n!(n!=1*2*……*n)。

/*程序功能:求n!*/

main()

{ int i, n;

long fact=1;/*将累乘器fact初始化为1*/

printf(“Input n: ”);

scanf(“%d”, &n);

for(i=1; i<=n; i++)

fact *= i;/*实现累乘*/

printf("%d ! = %ld\n", n, fact);

}

程序运行情况如下:

Input n: 5↙

5 ! = 120

练习5_4 有以下程序

#include

void main()

{

int a=10,b=10,i;

for(i=0;a>8;b=++i)

printf("%d %d ",a--,b);

}

程序输出的结果是10 10 9 1

练习5_5 有以下程序

#include

void main()

{ int k;

for(k=0;k<10;k++);

printf("%d",k);

}

练习5_6以下程序的运行结果是

#include

void main()

{

int m;

for(m=1;m<=50;m++)

{

if(m%12!=0)

continue;

printf("%4d",m);

}

printf("\n");

}答: 12 24 36 48

4、循环的比较

?、While和 for都是先判断后循环,而do-while是先循后判断。即do-while语句在条件不成立时循环体也要被执行一次。

?、while和do-while语句的条件表达式只有一个,只起到控制循环结束的作用,循环变量的初值等都用其他语句完成;for语句则有3个表达式,不仅能起到控制循环结束的作用,还可给循环变量赋初值。

练习5_7 对于以下程序段

int m=-1;

do

{

m=m*m;

}

while(!m);

循环执行的次数为多少?答:1次。

练习5_8 对于以下程序段

int k=5; while(k=0)k=k-1;printf("%d\n",k);,循环体执行的次数为多少次?答:0次。

练习5_9 对于以下程序段

int a=5;while(a>=1) a--;程序执行后,a的值是0。

练习5_10以下程序

#include

void main()

{ int i;

for(i=0;i<10;i++);

printf("%d",i);

}输出结果是10。

5、循环的嵌套

?、循环语句的循环体内,又包含另一个完整的循环结构,称为循环的嵌套。循环嵌套的概念,对所有高级语言都是一样的。

?、for语句和while语句允许嵌套,do-while语句也不例外。

练习5_11:编程:

输出下列图形 *

***

*****

*******

解:/*程序功能:打印5行"*",第一行1个,第二行3个,第三行5个...*/

#include

void main()

{ int i=1;

while(i<=5)

{ int j=1,k=1;

while(j<=5-i)

{ printf(" ");

j++;

}

while(k<=2*i-1)

{ printf("*");

k++;

}

printf("\n");

i++;

}

}

6、break语句与continue语句

?、一般格式: break;

continue;

?、功能

①break:强行结束循环,转向执行循环语句的下一条语句。

②continue:对于for循环,跳过循环体其余语句,转向循环变量增量表达式的计算;对于while 和do-while循环,跳过循环体其余语句,但转向循环继续条件的判定。

?、说明

①break能用于循环语句和switch语句中,而continue只能用于循环语句中。

②break是终止整个循环的执行,而continue只是结束本次循环。

③循环嵌套时,break和continue只影响包含它们的最内层循环,与外层循环无关。

练习5_12 求Fibonacci数列前12项的和。

解:

每月新增兔子数Fn={1,1,2,3,5,8,13,21,34,…}(斐波那契数列)

月份n 兔子数Fn

1 F1=1

2 F2=1

3 F3=2=F1+F2

4 F4=3=F2+F3

n Fn=Fn-1+Fn-2

由此可写出递推公式

1 (n=1)

F(n)= 1 (n=2)

F(n-1)+ F(n-2) (n>3)

程序代码如下:

#include

void main()

{

int F,S=2,n=3;

while(n<=12)

{

F=F1+F2;

F1=F2;

F2=F;

S=S+F;

n++;

}

printf("S=%d\n",S);

}

第六章数组

数组是数目固定、类型相同的若干变量的有序集合。

▲一、一维数组

1、一维数组的定义:数据类型数组名[常量表达式][, 数组名2[常量表达式2]……];

?“数据类型”是指数组元素的数据类型。

?数组名,与变量名一样,必须遵循标识符命名规则。

?“常量表达式”必须用方括号括起来,指的是数组的元素个数(又称数组长度),它是一个整型值,其中可以包含常数和符号常量,但不能包含变量。

?数组元素的下标,是元素相对于数组起始地址的偏移量,所以从0开始顺序编号。

?数组名中存放的是一个地址常量,它代表整个数组的首地址。同一数组中的所有元素,按其下标的顺序占用一段连续的存储单元。

注:数组名能与其他变量名相同,数组名后是用方括号括起来的常量表达式,不能和圆括号。

2、数组元素的引用

引用数组中的任意一个元素的形式:数组名[下标表达式]

?“下标表达式”可以是任何非负整型数据,取值范围是0~(元素个数-1)。

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

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

?、一维数组元素的初始化

?初始化格式:数据类型数组名[常量表达式]={初值表}

?如果对数组的全部元素赋以初值,定义时可以不指定数组长度(系统根据初值个数自动确定)。如果被定义数组的长度,与初值个数不同,则数组长度不能省略。

?“初值表”中的初值个数,可以少于元素个数,即允许只给部分元素赋初值。

3、数组元素的存储

数组元素在计算机内存中存储时,占据一片连续的存储空间,数组名代表数组元素占据的内存空间的首地址。由于数组各元素的数据类型相同,因此在数组中,每一个元素在内存里占用的存储单元数都是相同的。

练习6_1:从键盘上任意输入n个整数,用冒泡法按从小到大地排序,并在屏幕上显示出来。

解:冒泡法排序的基本思想:从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比较后,最大的数已放在最后,第二遍只需考虑(N-1)个数,以此类推直到第(N-1)遍比较后就可以完成排序。

#include "stdio.h"

#define NUM 10 /*定义符号常量(数据个数N)*/

main()

{ int data[NUM]; /*定义1个1维整型数组data*/

int i,j,temp; /*定义循环变量和临时变量*/

printf("请输入10个整数:\n");

for(i=0; i

scanf("%d", &data[i]);

/*冒泡法排序*/

for(i=0; i

for(j=NUM-1; j>i; j--) /*内循环:进行每趟比较*/

if(data[j]

{temp=data[j];

data[j]=data[j-1];

data[j-1]=temp;

};

/*输出排序后的数据*/

printf("\n排序后的数据:\n");

for(i=0; i

printf("%d ",data[i]);

printf("\n");

}

练习6_2下列对一维数组正确赋初值的语句是

A、int a[10]= "I am a student";

B、char a[]="I am a student";

C、int a[3]={1,3,5,7,9,1};

D、char a[3]= " I am a student"。

练习6_3、在下面关于一维数组的定义中,有语法错误的是

A、int x[]={1,2,3,4,5};

B、int x[5]={0};

C、int x[5];

D、int x[];

答案:D

练习6 _4青年歌手参加歌曲大奖赛,有10个评委对他进行打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分),并在屏幕上输出去掉的最高分和去掉的最低分及这位选手的最后得分。

解:

#include

main()

{

int i,j,min;

float temp,ave=0;

float a[11];

printf("\n输入评委所打的分数:\n");

scanf("%f",&a[i]);

/*选择法排序*/

for(i=1;i<=9;i++)/*外循环:控制比较趟数*/

{

min=i;

for(j=i+1;j<=10;j++) /*内循环:每趟比较的次数*/

if(a[min]>a[j])

min=j;

temp=a[i];

a[i]=a[min];

a[min]=temp;

}

for(i=2;i<=9;i++) /*注意i值的变化范围*/

ave=ave+a[i];

printf("去掉一个最低分:%6.1f分\n",a[1]);

printf("去掉一个最高分:%6.1f分\n",a[10]);

printf("选手最后得分:%6.1f分\n",ave/8);

}

二、二维数组

1、二维数组的定义:

数据类型数组名[行常量表达式][列常量表达式][, 数组名2[行常量表达式2][列常量表达式2]……];

?数组元素在内存中的排列顺序为“按行存放”,即先顺序存放第一行的元素,再存放第二行,以此类推。

?设有一个m*n的数组x,则第i行第j列的元素x[i][j]在数组中的位置为:i*n+j(注意:行号、列号均从0开始计数)。

2、二维数组元素的引用

引用2维数组元素的形式为:

数组名[行下标表达式][列下标表达式]

?“行下标表达式”和“列下标表达式”,都应是整型表达式或符号常量。

?“行下标表达式”和“列下标表达式”的值,都应在已定义数组大小的范围内。假设有数组x[3][4],则可用的行下标范围为0~2,列下标范围为0~3。

?对基本数据类型的变量所能进行的操作,也都适合于相同数据类型的2维数组元素。

3、二维数组元素的初始化

?按行赋初值

数据类型数组名[行常量表达式][列常量表达式]={{第0行初值表},{第1行初值表},……,{最后1行初值表}};

赋值规则:将“第0行初值表”中的数据,依次赋给第0行中各元素;将“第1行初值表”中的数据,依次赋给第1行各元素;以此类推。

?按2维数组在内存中的排列顺序给各元素赋初值

数据类型数组名[行常量表达式][列常量表达式]={初值表};

如果对全部元素都赋初值,可以省略“行数”,但不能省略“列数”。注意:只能省略“行数”。

练习6_5 执行int a[][3]={1,3,5,7,9,11};语句后,a[1][0]的值是7。

练习6_6 以下对二维数组a进行正确初始化的是

A.int a[2][3]={{1,2},{3,4},{5,6}}; B.int a[][3]={1,2,3,4,5,6};

C.int a[2][]={1,2,3,4,5,6}; D.int a[2][]={{1,2},{3,4}};

三、字符数组

1、字符数组的定义

?1维字符数组,用于存储和处理1个字符串,其定义格式与1维数值数组一样。

?2维字符数组,用于同时存储和处理多个字符串,其定义格式与2维数值数组一样。

2、字符数组的初始化

字符数组的初始化,可以通过为每个数组元素指定初值字符来实现。

3、字符数组的引用

字符数组的逐个字符引用,与引用数值数组元素类似。

?字符数组的输入

除了可以通过初始化使字符数组各元素得到初值外,也可以使用getchar()或scanf()函数输入字符。

?字符数组的输出

字符数组的输出,可以用putchar()或printf()函数。

四、字符串及其结束标志

所谓字符串,是指若干有效字符的序列。C语言中的字符串,可以包括字母、数字、专用字符、转义字符等。

C语言规定:以‘\0’作为字符串结束标志(‘\0’代表ASCII码为0的字符,表示一个“空操作”,只起一个标志作用)。因此可以对字符数组采用另一种方式进行操作了──字符数组的整体操作。

注意:由于系统在存储字符串常量时,会在串尾自动加上1个结束标志,所以无需人为地再加1个。

另外,由于结束标志也要在字符数组中占用一个元素的存储空间,因此在说明字符数组长度时,至少为字符串所需长度加1。

1.字符数组的整体初始化

字符串设置了结束标志以后,对字符数组的初始化,就可以用字符串常量来初始化字符数组。

2.字符数组的整体引用

?字符串的输入

除了可以通过初始化使字符数组各元素得到初值外,也可以使用scanf()函数输入字符串。

?字符串的输出

printf()函数,不仅可以逐个输出字符数组元素,还可以整体输出存放在字符数组中的字符串。

五、常用的字符串处理函数

字符串标准函数的原型在头文件string.h中。

1、输入字符串──gets()函数

①调用方式:gets(字符数组)

②函数功能:从标准输入设备(stdin)──键盘上,读取1个字符串(可以包含空格),并将其存储到字符数组中去。

③使用说明

?gets()读取的字符串,其长度没有限制,编程者要保证字符数组有足够大的空间,存放输入的字符串。

?该函数输入的字符串中允许包含空格,而scanf()函数不允许。

2.输出字符串──puts()函数

②函数功能:把字符数组中所存放的字符串,输出到标准输出设备中去,并用‘\n’取代字符串的结束标志‘\0’。所以用puts()函数输出字符串时,不要求另加换行符。

③使用说明

?字符串中允许包含转义字符,输出时产生一个控制操作。

?该函数一次只能输出一个字符串,而printf()函数也能用来输出字符串,且一次能输出多个。

3、字符串比较──strcmp()函数

①调用方式:strcmp(字符串1 ,字符串2)

其中“字符串”可以是串常量,也可以是1维字符数组。

②函数功能:比较两个字符串的大小。

如果:字符串1=字符串2,函数返回值等于0;

字符串1<字符串2,函数返回值负整数;

字符串1>字符串2,函数返回值正整数。

③使用说明

?如果一个字符串是另一个字符串从头开始的子串,则母串为大。

?不能使用关系运算符“==”来比较两个字符串,只能用strcmp() 函数来处理。

4、拷贝字符串──strcpy()函数

①调用方式:strcpy(字符数组, 字符串)

其中“字符串”可以是串常量,也可以是字符数组。

②函数功能:将“字符串”完整地复制到“字符数组”中,字符数组中原有内容被覆盖。

③使用说明

?字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,连同结束标志'\0'一起复制。

?不能用赋值运算符“=”将一个字符串直接赋值给一个字符数组,只能用strcpy()函数来处理。

5.连接字符串──strcat()函数

①调用方式:strcat(字符数组, 字符串)

②函数功能:把“字符串”连接到“字符数组”中的字符串尾端,并存储于“字符数组”中。“字符数组”中原来的结束标志,被“字符串”的第一个字符覆盖,而“字符串”在操作中未被修改。

③使用说明

?由于没有边界检查,编程者要注意保证“字符数组”定义得足够大,以便容纳连接后的目标字符串;否则,会因长度不够而产生问题。

?连接前两个字符串都有结束标志'\0',连接后“字符数组”中存储的字符串的结束标志'\0'被舍弃,只在目标串的最后保留一个'\0'。

6.求字符串长度──strlen()函数(len是length的缩写)

①调用方式:strlen(字符串)

②函数功能:求字符串(常量或字符数组)的实际长度(不包含结束标志)。

练习6_7 执行 char str[10]= "I am a teacher\0";strlen(str)后的结果是14。

7.将字符串中大写字母转换成小写──strlwr()函数

①调用方式:strlwr(字符串)

②函数功能:将字符串中的大写字母转换成小写,其它字符(包括小写字母和非字母字符)不转换。

8.将字符串中小写字母转换成大写──strupr()函数

①调用方式:strupr(字符串)

②函数功能:将字符串中小写字母转换成大写,其它字符(包括大写字母和非字母字符)不转换。

第七章函数

▲一、函数的定义与调用

1、函数的定义

任何函数(包括主函数main())都是由函数说明和函数体两部分组成。根据函数是否需要参数,可将函数分为无参函数和有参函数两种。

?、无参函数的一般形式

函数类型函数名( void )

{ 说明语句部分;

可执行语句部分;

}

注意:在旧标准中,函数可以缺省参数表。但在新标准中,函数不可缺省参数表;如果不需要参数,则用“void”表示,主函数main()例外。

?、有参函数的一般形式

函数类型函数名( 数据类型参数[,数据类型参数2……] )

{ 说明语句部分;

可执行语句部分;

}

有参函数比无参函数多了一个参数表。调用有参函数时,调用函数将赋予这些参数实际的值。

为了与调用函数提供的实际参数区别开,将函数定义中的参数表称为形式参数表,简称形参表。练习7_1:定义一个函数,用于求两个数中的大数。

解:/*功能:定义一个求较大数的函数并在主函数中调用*/

int max(int n1, int n2) /*定义一个函数max()*/

{ return (n1>n2?n1:n2);

}

main()

{

int max(int n1, int n2);/*函数说明*/

int num1,num2;

printf("input two numbers:\n");

scanf("%d%d", &num1, &num2);

printf("max=%d\n", max(num1,num2));

}

?、说明

①函数定义不允许嵌套(但函数的调用可以嵌套)。

在C语言中,所有函数(包括主函数main())都是平行的。一个函数的定义,可以放在程序中的任意位置,主函数main()之前或之后。但在一个函数的函数体内,不能再定义另一个函数,即不能嵌套定义。

②空函数──既无参数、函数体又为空的函数。其一般形式为:

[函数类型] 函数名(void)

{ }

③在老版本C语言中,参数类型说明允许放在函数说明部分的第2行单独指定。

2、函数的返回值与函数类型

?.函数返回值与return语句

有参函数的返回值,是通过函数中的return语句来获得的。

①return语句的一般格式: return ( 返回值表达式 );

②return语句的功能:返回调用函数,并将“返回值表达式”的值带给调用函数。

注意:调用函数中无return语句,并不是不返回一个值,而是一个不确定的值。为了明确表示

?.函数类型

函数的类型说明符指明了函数的类型,它实际上是函数返回值的类型。如果不要求函数有返回值,函数的类型说明符可以写为void,如果缺省,C语言函数返回类型的默认定义类型是int型。

在定义函数时,对函数类型的说明,应与return语句中、返回值表达式的类型一致。

如果不一致,则以函数类型为准。如果缺省函数类型,则系统一律按整型处理。

即:在C语言中,函数返回值的数据类型取决于在定义该函数时所指定的数据类型。

3、对被调用函数的说明和函数原型

在ANSI C新标准中,采用函数原型方式,对被调用函数进行说明,其一般格式如下:

函数类型函数名(数据类型[ 参数名][, 数据类型[ 参数名2]…]);

C/C语言同时又规定,在以下3种情况下,可以省去对被调用函数的说明:

①当被调用函数的函数定义出现在调用函数之前时。因为在调用之前,编译系统已经知道了被调用函数的函数类型、参数个数、类型和顺序。

②如果在所有函数定义之前,在函数外部(例如文件开始处)预先对各个函数进行了说明,则在调用函数中可缺省对被调用函数的说明。

③当一个函数是int类型时,它与被调用者的前后位置关系可以忽略,可以省略对被调函数的说明。

4、函数的调用

一般形式为:函数名([实际参数表])

切记:实参的个数、类型和顺序,应该与被调用函数所要求的参数(形参)个数、类型和顺序一致,才能正确地进行数据传递。

?、调用函数方式:

①函数表达式。函数作为表达式的一项,出现在表达式中,以函数返回值参与表达式的运算。

②函数语句。C/C语言中的函数可以只进行某些操作而不返回函数值,这时的函数调用可作为一条独立的语句。

③函数实参。函数作为另一个函数调用的实际参数出现。这种情况是把该函数的返回值作为实参进行传送,因此要求该函数必须是有返回值的。

?、说明:

①调用函数时,函数名称必须与具有该功能的自定义函数名称完全一致。

②实参在类型上按顺序与形参,必须一一对应和匹配。如果类型不匹配,C编译程序将按赋值兼容的规则进行转换。如果实参和形参的类型不赋值兼容,通常并不给出出错信息,且程序仍然继续执行,只是得不到正确的结果。

③如果实参表中包括多个参数,对实参的求值顺序随系统而异。有的系统按自左向右顺序求实参的值,有的系统则相反。Turbo C和MS C是按自右向左的顺序进行的。

练习7_2 写出以下程序运行的结果

#include

void main()

{ int x=2,y=5;

int max(int, int);

max(x,y);

printf("max=%d\n",max(x,y));

}

int max(int a,int b)

{ int temp;

if(a>b)

temp=a;

else

temp=b;

C语言期末复习卷习题

C语言期末复习卷习题 Prepared on 24 November 2020

期末总复习(基础知识+程序设计部分) 一.填空 1.已知charch=’A’;则下列表达式的值是:a Ch=(ch>=’A’&&ch<=’Z’)(ch+32):ch; 2.若x=1,y=2,z=3,则表达式z+=++x+y++之值是7 3.若x=2,y=3,则x%=y+3之值为2 4..若有定义inty=3;floatz=,x=;则表达式y+=(int)x+x+z的值为17 5.设x,y,z为int型变量,且x=3,y=-4,z=5,请写出下列各表达式的值 1)(x&&y)==(x||z)1 2)!(x>y)+(y!=z)||(x+y)&&(y-z)0 3)x++-y+(++z)13 6.设x,y,z为int型变量,请用C语言表达式描述下列命题 1)x和y中有一个小于z(xz||x>z&&y=0||z<0&&y<0&&x>=0||y<0&&x<0&&z>=0)==1 3)y是奇数y%2!=0 7.下面for循环语句最多可执行4次 For(x=0,y=0;(y!=99)&&(x<4);x++) 8.设i,j,k均为int型变量,则执行以下for语句后,k的值是10 for(i=0,j=10;i<=j;i++,j--) k=i+j; 9.若已知x,y,z,m,n均为int型变量,则执行下面语句后,x的值为7y的值为9z的值为7 m=10;n=5; x=(--m==n++)--m:++n;

y=m++; z=n; 10.若有说明语句:w=1,x=2,y=3,z=4;则表达式w>xw:z>yz:x值是4 11.若定义的函数没有返回值时,则应该在该函数定义时加上类型说明符void 12.凡在函数中未指定存储类型的变量,其隐含的存储类别为动态存储 13.在C语言中,一个函数直接或间接地调用自身,编构成函数的递归 14.如果被调用的自定义函数和调用函数不再同一个文件中,则在应以函数的文件中应将该文件的存储类型定义成型,在调用函数的文件中将该函数说明为型。 15.对于所定义的二维数组a[2][3],元素a[1][2]是数组的第6个元素。N*j+m+1 16.若有定义:char*str=”Iamastudent.”;则字符串在存储单元中占16个字节。 17.在执行inta[][3]={{1,2},{3,4}};语句后,a[1][2]的值是0。 18.调用strlen(“abc\0ef\0g”)的返回值是3。\0为停止符 19.设有定义:chars[12]=“string”;则printf(“%d\n”,strlen(s));的输出值是6 20.执行下列程序段后,*p等于3 inta[5]={1,3,5,7,9};*p=a;p++; 二.判断(trueorfalse) 1.调用函数时,实参的类型、个数和顺序与函数定义时形参的类型、个数和顺 序完全一致。T 2.函数可以嵌套定义F 3.函数必须有返回值,否则不能正确作用F 4.C程序中有调用关系的所有函数必须放在同一源程序文件中。F 5.全局变量与函数体内定义的局部变量重名时,局部变量不起作用。F

大学C语言考试试题

C语言模拟试题 一、判断 1、关系运算符<= =与= =的优先级相同。(N ) 2、C语言的函数可以嵌套定义。(N ) 3、若有定义和语句:int a;char c;float f;scanf(“%d,%c,%f”,&a,&c,&f);若通过键盘输入:10,A,12.5, 则a=10,c=?A?,f=12.5.( Y ) 4、变量根据其作用域的范围可以分作局部变量和全局变量。( Y ) 5、#define和printf都不是C语句。( Y ) 6、Int I,*p=&I;是正确的C说明。( Y ) 7、结构体类型只有一种。( N ) 8、在Turbo C中,整形数据在内存中占2个字节。( N ) 9、一个include命令可以指定多个被包含的文件。( N ) 10、有如下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是*(p+8).( Y ) 二、选择 2、C语言中,char类型数据占(A) A、1个字节 B、2个字节 C、4个字节 D、8个字节 3、已知x=43,ch=?A?,y=o;则表达式(x>=y&&ch1;i--) for(j=1;j

江西理工C语言程序设计(B)试卷题型参考

江西理工大学考试试卷 1、C语言中的基本类型包括_____B_____ A.整型、实型、逻辑型B.整型、实型、字符型 C.整型、逻辑型、字符型 D. 整型、实型、逻辑型、字符型 2、C语言中,合法的用户标识符是(A ) A._a10 B.ab.txt C.return D.3ab 3、以下叙述中,不正确的是( A ) A.C语言程序中可以有若干个main()函数 B.C语言程序必须从main()函数开始执行 C.C语言程序中必须要有main()函数 D.C语言程序是由若干个函数组成 4、以下选项正确的定义语句是( C) A. double a; b; B.double a=b=7; C. double a=7,b=7; D. double ,a,b; 5、设“double x=1,y;”表达式y=x+3/2的值是_________ A. 1 B. 2 C. 2.0 D. 2.5 6、以下能正确定义二维数组的语名为_____D_______。 A.int a[][]; B.int a[][]4; C.int a[3][]; D.int a[3][4]; 7、C语言中,正确表示“1030”的条件表达式为______________。 A.(a>10&&a<20)&&(a>30) B.(a>10&&a<20)||(a>30) C.(a>10||a<20)||(a>30) D.(a>10&&a<20)||!(a<30) 8、设“int a=9;”,语句“a+=a-=a+a;”执行后,变量a的值是( C ) A.18 B.9 C.-18 D.-9 9、在以下一组运算符中,优先级最高的是:(C) A、<= B、== C、% D、&& 10、已知字母A的ASCII码为65,以下语句段的输出结果是____________。 Char c1=’A’,c2=’Y’; printf(“%d,%d\n”,c1,c2); A.输出格式非法,输出错误信息B.65,90 C.A,Y D.65,89 11、关于if后面一对圆括号中的表达式,叙述正确的是_______ A.只能用关系表达式 B 只能能逻辑表达式 C.只能用关系表达式或逻辑表达式 D 可以使用任意合法的表达式 12、C程序编译后最终产生(即计算机可执行)的文件的扩展名为( A ) A..exe B..c C..obj D..cpp

江苏大学大一c语言期末复习题汇总

选择题1.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.C._123_ D._ok 2.请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 3.不属于C语言关键字的是()。 A.int B.break C.while D.character 4.以下不能定义为用户标示符的是()。 A.scanf B.Void C._3com_ D.int 5.C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 6.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行 D.C语言程序中的main( )函数必须放在程序的开始部分 7.以下选项中,合法的用户标识符是()。 A.long B._2abc C.3dmax D. 8.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示 的字符常量’\101’是()。 A.字符A B.字符a C.字符c D.非法的常量 9.以下选项中,正确的字符常量是()。 A.”F”B.’\\’’C.’W’D.’’ 10.下列变量定义中合法的是 A.short _a=; B.double b=1+; C.long do=0xfdaL; D.float 2_and=1-e-3; 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if 12.下列运算符中优先级最高的是()。 A.< B.&& C.+ D.!= 13.判断char型变量s是否为小写字母的正确表达式是()。 A.’a’ <= s<=’z’B.(s>=’a’) & (s<=’z’) C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s)

浙江大学C语言总复习题--综合

综合练习 一、判断题 1.在Trubo_C中运行一个C程序时,实际上是运行后缀为.EXE的可执行文件。2.在C语言中整数可用十进制数、八进制数和二进制数三种数制表示。 3.在程序的运行过程中,整型常量的值是可以改变的。 4. C程序中,用/* 和 */界定的部分称之为注释,注释部分对程序的运行不起作用。5.大括弧 { } 只能用来括复合语句。 6. do_while语句构成的循环不能用其它循环语句来代替。 7.不能用scanf 函数输入字符。 8.在 C 程序中,函数的定义不可以嵌套,但函数的调用可以嵌套。 9. 一个变量的作用域取决于变量定义语句在程序中出现的位置。 10.C 语言的一个编译预处理命令用 # 开始,最后加分号。 11. C语言源程序文件经过编译、连接之后生成一个后缀为.EXE的文件。 12. C语言中以 %o开头的数是八进制整数。 13.在程序的运行过程中,符号常量的值是可以改变的。 14.在 C 程序中,APH 和 aph 代表不同的变量。 15.一个复合语句在语法上被认为是一条语句。 16. 只能用while语句构成循环。 17.不能用printf函数输出字符。 18. C程序中各函数之间既允许直接递归调用也允许间接递归调用。 19. 在函数外部定义的变量称为全局变量。 20.宏定义的命令行可以看作是一条C 语句。 21. C语言源程序是可以用来直接运行的程序。 22. C语言中以 %x 开头的数是十六进制整数。 23. C程序中定义的变量,代表内存中的一个存储单元。 24.在 C 程序中,9ab是非法的用户标识符。 25. C语句必须用一个分号作为结束。 26. do_while语句构成的循环不能用break语句退出。 27. scanf 函数是 c 语言的标准输入函数。 28. C程序的main函数不能有参数。 29. 在函数内部定义的变量称为局部变量。 30.用#include包含的头文件的后缀必须是.h。 31. C 语言程序的三种基本结构是顺序结构、选择结构和循环结构。 32.在C语言中整数只能表示为十进制数的形式。 33.在 C 程序中,无论多少大的整数还是实数,都能准确无误的表示。 34. Turbo-C 语言中,字符类型数据占1个字节。 35.空语句是合法的C语句。 36. while语句的循环体不能是复合语句。 37. printf 函数是 c 语言的标准输出函数。 38. C程序的main函数可以有参数,但参数不能是指针类型。 39.在 main函数中定义的变量称为全局变量。 40.#include 和 #define 不是 C 语句。 41. C 语言程序的三种基本结构是嵌套结构、选择结构和循环结构。 42. C语言中 018是合法的八进制整数。 43. C程序中所要用到的变量应该先定义,后使用。 44.十六进制数0x11的十进制数是17。 45.赋值语句是一种可执行语句。

大学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 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

C语言实验报告

C语言程序设计(B) (2010-2011-2) 实验报告 教学班级:学号:姓名: 课程教师:王华金实验辅导教师:王华金

P123--五、1、编写函数,找出5*5数组对角线上元素的最小值,并在主函数中调用它。要求元素的值通过键盘输入。 实验前的源程序: #include int func(int p[5][5]) { int i,j,min; min=p[0][0]; for(i=0;i<5;i++) for(j=0;j<5;j++) if(i==j) if(p[i][j]

南京晓庄学院—C语言期末考试复习提纲

习题一 1. 以下常量中正确的是。 A. ’abc’ B. ’\x123’ C. 3.145E-1.2 D.”a” 2. 设有“int a;”,以下不能正确表达数学关系1010&&a<15 D. !(a<=10)&&!(a>=15) 3. 以下程序段的输出结果是。 int a=0,b=4,k=2; k=a+1>0||(++a<0)&&(!(b--<=0)); printf(”%d,%d,%d”,k,a,b); A. 1,1,3 B. 1,1,4 C. 1,0,3 D. 1,0,4 4.若有“int a=5; a+=a-=-a*a;”,则a的值是。 5. 以下所列语句中,合法的语句是。 A. a=1,b=2 B. ++a; C. a=a+1=5; D. y=int(a); 6. 以下所列字符常量中,不合法的是。 A. ’\0xff’ B. ’\65’ C. ’$’ D.’\x1a’ 7. 设有定义“float y=3.45678; int x;”,则以下表达式中能实现将y中数值保留小数点后2位,第 3位四舍五入的表达式是。 A. y=(y*100+0.5)/100.0 B. x=y*100+0.5,y=x/100.0 C. y=y*100+0.5/100.0 D. y=(y/100+0.5)*100.0 8. 以下程序段输出结果是。 int a=10,b=11,c=12,s; s=a++<=10&&b--<=2&&c++; printf(”%d,%d,%d,%d”,s,a,b,c); A. 0,11,10,13 B. 1,11,10,13 C. 0,11,10,12 D. 1,11,10,12 9. 设有语句“int a=2,b=3,c=2; a+=b*=(++b-c++);”,变量b的值是。 习题二 1. 以下关于if语句的错误描述是。 A. 条件表达式可以是任意的表达式 B. 条件表达式只能是关系表达式或逻辑表达式 C. 条件表达式的括号不可以省略 D. 与else配对的if语句是其之前最近的未配对的if语句 2. 以下叙述中不正确的是。 A. 一个变量的作用域完全取决于变量说明语句的位置 B. 外部变量可以在函数以外的任何位置定义 C. 内部变量的生存期只限于本次函数调用,无法将内部变量的值保存至函数的下一次调用 D. 用static说明一个外部变量是为了限制其他编译单位的引用 3. 以下程序的输出结果是。 main()

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语言程序设计(B)试卷_杨崇联(A1)

江西理工大学考试试卷 班级学号姓名 一、单项选择题(每题2分,共40分) 1、C语言中的基本类型包括__________ A.整型、实型、逻辑型B.整型、实型、字符型 C.整型、逻辑型、字符型 D. 整型、实型、逻辑型、字符型 2、C语言中,合法的用户标识符是() A._a10 B.ab.txt C.return D.3ab 3、以下叙述中,不正确的是( ) A.C语言程序中可以有若干个main()函数 B.C语言程序必须从main()函数开始执行 C.C语言程序中必须要有main()函数 D.C语言程序是由若干个函数组成 4、以下选项正确的定义语句是() A. double a; b; B.double a=b=7; C. double a=7,b=7; D. double ,a,b; 5、设“double x=1,y;”表达式y=x+3/2的值是_________ A. 1 B. 2 C. 2.0 D. 2.5 6、以下能正确定义二维数组的语名为____________。 A.int a[][]; B.int a[][]4; C.int a[3][]; D.int a[3][4]; 7、C语言中,正确表示“1030”的条件表达式为______________。 A.(a>10&&a<20)&&(a>30) B.(a>10&&a<20)||(a>30) C.(a>10||a<20)||(a>30) D.(a>10&&a<20)||!(a<30) 8、设“int a=9;”,语句“a+=a-=a+a;”执行后,变量a的值是( ) A.18 B.9 C.-18 D.-9 9、在以下一组运算符中,优先级最高的是:() A、<= B、== C、% D、&& 10、已知字母A的ASCII码为65,以下语句段的输出结果是____________。

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函数,就是程序运行得起点。

C语言程序设计复习提纲

C语言程序设计复习提 纲 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

C语言程序设计复习提纲 第1章 C语言程序设计概述 1、程序和语言: (1)程序:用计算机语言描述的某一问题的解决步骤,符合一定语法规则的符号序列 (2)程序设计语言:描述问题的有规则的符号 程序设计语言有: ■机器语言――机器直接识别,与机器密切相关,用二进制代码描述低级语言 ■汇编语言――机器语言的助记符,通常和英文字符接近 ■算法语言:使用与自然语言接近的表示方式来表示程序,面向算法过程 Fortran ALGOL PASCAL C COBLE等 ■面向任务的语言:描述问题,用程序语言来实现。数据库操作语言,如SQL-SERVER,VFP等 ■面向对象的程序设计语言:是一种分析方法、设计方法和思维方法的综合。程序是相互协作的对象的集合。 2、算法 什么叫算法:用计算机解决问题的步骤称之算法 程序=数据结构+算法 算法的描述方法:自然语言、流程图、NS图、伪代码、计算机语言(C语言)

3、C语言程序的基本结构 (1)由函数构成,必须且只有一个主函数main() (2)“/* */”之间的内容构成C语言程序的解释部分 (3)预处理命令:#include<> #include “”的区别 #include<> #include<> (4)大小写字母在C程序中是有区别的 4、C语言字符集、标识符与关键字 字符集:英文字母,数字,下划线其他符号 标识符:用来表示函数、类型、变量的名称 32个关键字,9种控制语句,书写自由 运算符丰富:34种运算符 数据结构丰富:数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型 5、C语言的文件:原文件、目标文件、可执行文件(扩展名是什 么) 6、C语言的优点: 第二章结构化控制语句:if else do while for 等语法限制不太严格 位运算 目标代码质量高 可移植性好

大学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;

西南大学与第三军医大学西南医院高层次拔尖创新人才培养

江西理工大学 广东顺德工业设计研究院(广东顺德创新设计研究院)2019年硕士研究生联合培养项目招生简章 为创新专业学位研究生培养模式,提高研究生实践、创新和职业发展能力,江西理工大学与广东顺德工业设计研究院(广东顺德创新设计研究院)开展联合培养研究生项目,共同招收、培养研究生。 一、项目特色 以江西理工大学和广东顺德工业设计研究院(广东顺德创新设计研究院)为平台,以顺德智能制造产业为依托,实行“理论学习+企业实践”的双课堂教学形式,结合传统课堂教学方法,以企业项目导入的方式,参与企业实际项目的开发与研究,从理论学习、实践技能和职业能力发展需求等方面进行多角度、多层次的教学和实践。 二、培养目标 培养符合智能家电、智能装备、生命科学仪器产业发展需要,掌握扎实的现代电子信息技术专业和软件开发基础知识,具备创新思维和工程实践能力,具有良好职业素养以及多领域融合的高层次应用型、复合型人才,为成为智能产业工程师打下坚实基础。 三、招生对象和报名条件 符合教育部相关文件要求的各类考生,具体要求详见《江西理工大学2019年硕士研究生招生简章》。 四、报名、考试与录取 报名方式为推荐免试或公开报考。推荐免试按《江西理工大学2019年接收推免攻读硕士学位研究生简章》执行。公开报考考生应参加全国招收攻读硕士学位研究生的报名和统一入学考试,具体要求见《江西理工大学硕士研究生招生简章》。 拟安排20-30名招生计划,按照“单列计划、联合培养”的原则,由江西理

工大学—广东顺德工业设计研究院(广东顺德创新设计研究院)联合培养项目单独组织复试、录取工作。 五、学习年限及培养方式 联合培养项目以江西理工大学硕士研究生培养方案为基础,以“课程与职业需求对接、教学与生产实际结合”的原则,采取项目教学化、教学项目化的项目导入教学方式进行专业学位研究生培养。 基本学制3年,以1+2年的分段学习方式完成。第一学年在江西理工大学完成基础课程学习,第二、三学年在广东顺德工业设计研究院(广东顺德创新设计研究院)学习,依托顺德家电企业,以项目导入方式参与企业项目开发和研究,第三学年完成学位论文并参加答辩。 六、毕业和学位授予 在规定年限内,完成培养方案的规定课程和必修环节,获得相应学分,成绩合格,完成学位论文并通过答辩,达到江西理工大硕士学位基本要求,经江西理工大学校学位评定委员会审核批准,授予工程硕士专业学位,颁发学位证书和毕业证书。 七、广东顺德工业设计研究院(广东顺德创新设计研究院)简介 广东顺德工业设计研究院(广东顺德创新设计研究院)(以下简称“研究院”)于2014年正式成立,是顺德区直属事业单位,以创新创业孵化、企业科技服务和研究生联合培养为核心业务,以精密仪器研发、信息技术、机械自动化、工业设计等为主要研究领域,以“建设技术创新生态、服务顺德产业升级、培养高级复合人才”为宗旨,建设成为“政产学研”一体化的协同创新平台。 研究院开展先进医疗设备、智能制造装备、新能源等高科技产品研发与工程化项目10项,产出4个新产品样机(数字PCR仪器、常温下离体肝脏机械灌注设备、废液安全收集器、震动泡沫轴),申请创新医疗器械特别审批并通过了初审。作为新型研发机构,研究院重点围绕科技创新、区域产业发展的需求,积极推进服务于区域产业发展的加强生物医学技术、智能制造协同创新平台建设。 研究院聚焦生物医学领域,搭建高起点、国际化的科研协同创新平台。一是与西班牙的国际器官捐献与移植研究院、广州军区广州总医院合作共建“器官研究与发展国际基地”(国际合作协同创新中心),引进国际顶尖资源,开展具有国

(完整版)大一上学期C语言期末复习总结和模拟试题带答案,推荐文档

易错点 C语言中易犯的错误 对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误.看着有错的程序,不知该如何改起,一些C编程时常犯的错误,写给各位学员以供参考. ******************************** ******************************** ************************ 1.书写标识符时,忽略了大小写字母的区别. main() { int a=5; printf("%d",A); } 编译程序把a和A认为是两个不同的变量名,而显示出错信息. C认为大写字母和小写字母是两个不同的字符.习惯上,符号常量 名用大写,变量名用小写表示,以增加可读性. ******************************** ******************************** ************************ 2.忽略了变量的类型,进行了不合法的运算. main() { float a,b; printf("%d",a%b); } %是求余运算,得到a/b的整余数.整型变量a和b可以进行求余运算,而实型变量则不允许进行"求余"运算. ******************************** ******************************** ************************ 3.将字符常量与字符串常量混淆. char c; c="a"; 在这里就混淆了字符常量与字符串常量,字符常量是由一对单 引号括起来的单个字符,字符串常量是一对双引号括起来的字符序 列.C规定以"\"作字符串结束标志,它是由系统自动加上的,所 以字符串"a"实际上包含两个字符:'a'和'\',而把它赋给一 个字符变量是不行的. ******************************** ******************************** ************************ 4.忽略了"="与"=="的区别. 在许多高级语言中,用"="符号作为关系运算符"等于". 如在BASIC程序中可以写 if (a=3) then … 但C语言中,"="是赋值运算符,"=="是关系运算符.如: if (a==3) a=b; 前者是进行比较,a是否和3相等,后

数据结构严蔚敏C语言版学习复习提纲

期末复习 第一章 绪论 复习 1、计算机算法必须具备输入、输出、可行性、确定性、有穷性5个特性。 2、算法分析的两个主要方面是空间复杂度和时间复杂度。 3、数据元素是数据的基本单位。 4、数据项是数据的最小单位。 5、数据结构是带结构的数据元素的集合。 6、数据的存储结构包括顺序、链接、散列和索引四种基本类型。 数据结构 算 法 数据:计算机处理的信息总称 数据项:最小单位 数据元素:最基本单位 数据对象:元素集合 数据结构:相互之间存在一种或 多种特定关系的数据元素集合。 概念:数据元素之间的关系 线性结构:一对一 非线性结构 树:一对多 图:多对多 顺序存储结构 链表存储结构 索引。。。 散列。。。 算法描述:指令的有限有序序列 有穷性 确定性 可行性 输入 输出 时间复杂度 空间复杂度

第二章 线性表 复习 1、在双链表中,每个结点有两个指针域,包括一个指向前驱结点的指针 、一个指向后继结点的指针 2、线性表采用顺序存储,必须占用一片连续的存储单元 3、线性表采用链式存储,便于进行插入和删除操作 4、线性表采用顺序存储和链式存储优缺点比较。 5、简单算法 第三章 栈和队列 复习 定义 逻辑关系:前趋 后继 节省空间 随机存取 插、删效率低 插入 删除

1、 栈和队列的异同点。 2、 栈和队列的基本运算 3、 出栈和出队 4、 基本运算 第四章 串 复习 存储结构 栈的概念:在一端操作的线性表 运算算法 栈的特点:先进后出 LIFO 初始化 进栈push 出栈 pop 顺序队列 循环队列 队列概念:在两端操作的线性表 假溢出 链队列 队列特点:先进先出 FIFO 基本运算 顺序: 链队: 队空:front=rear 队满:front=(rear+1)%MAXSIZE 队空: rear 初始化 判空 进队 出队 取队首元素

c语言期中考试试题及答案

《C语言程序设计》期中考试试卷 课程编号:03402513试卷类型:A卷考试形式:笔试考试日期: 注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷的背面。 一、单项选择题(1空1分,共20分) 1、C语言程序的基本结构是(【1】) 。 【1】 A) 函数 B) 语句 C) 字符 D) 程序行 2、一个C程序的执行是(【2】) 。 【2】A) 从本程序的主函数开始,到本程序的主函数结束 B)从本程序的第一个函数开始,到本程序的最后一个函数结束 C) 从本程序的主函数开始,到本程序的最后一个函数结束 D)从本程序的第一个函数开始,到本程序的主函数结束 3、下列四个叙述中,错误的是(【3】) 。 【3】 A) 一个C源程序必须有且只能有一个主函数 B) 一个C源程序可以含一个或多个子函数 C) 在C源程序中注释说明必须位于语句之后 D) C源程序的基本结构是函数 4、下面不属于C语言保留字的是(【4】) 。 【4】 A) short B) ELSE C) extern D) for 5、下列四个叙述中,正确的是(【5】) 。 【5】 A) 库函数也是C语言本身的组成部分 B) C语言中的输入输出操作是由相应语句完成的 C) 库函数是C编译系统提供的功能函数 D) 标题文件(头文件)可以在程序的函数内部调用 6、下列四组数据类型中,C语言允许的一组是(【6】)。 【6】 A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、双精度型、布尔型 D) 整型、实型、复型 7、在C语言中不同数据类型的的长度是(【7】)。 【7】 A) 固定的 B) 由用户自己定义的 C) 任意的 D) 与机器字长有关

C语言实验指导及报告模板

C语言程序设计

附件1:实验报告模板 C语言程序设计 实验报告 实验一简单的C程序 教学班级:冶金136 学号:01 姓名:张博 课程教师:胡春安实验教师:胡春安 完成时间:2015-2016学年第1学期

实验一简单的C程序 实验时间:2机时 一、实验目的 1. 熟悉C程序编辑环境,掌握主要菜单项的操作和作用。 2. 熟悉编写一个C程序的上机过程(编辑、编译、链接和运行)。 二、实验意义 通过上机实验,加深对第一章所学基本知识:C语言的基本结构和简单C 程序的理解。通过调试简单的C程序,让学生对C程序的编辑、编译、链接和运行有一个直观的体验和熟悉,激发学习的好奇心和兴趣,为后面的全面学习奠定非常必要的基础。 三、实验内容 1.验证实验 (1)掌握程序的编辑、编译、连接、运行、调试过程,按以下步骤进行实验。 ?输入源程序 #include int main() { float a,b; a=12 b=10; c=a%b; printf("a=%d,b=%d,c=%d",a,b,c); return 0; } ?编译、链接及运行,并记录下列问题: ①您在编辑、编译该程序时,在输出窗口显示了几条错误信息?请记录在实验报告中。 C:\Users\h\Desktop\c\ex1\main.c||In function 'main':| C:\Users\h\Desktop\c\ex1\main.c|6|error: expected ';' before 'b'| C:\Users\h\Desktop\c\ex1\main.c|7|error: 'c' undeclared (first use in this function)| C:\Users\h\Desktop\c\ex1\main.c|7|note: each undeclared identifier is reported only once for each function it appears in| C:\Users\h\Desktop\c\ex1\main.c|7|error: invalid operands to binary % (have 'float' and 'float')| ||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===| 错误1:变量b前少了分号“;” 错误2:变量c未定义; 错误3:%运算符运算对象必须是整型数据。

江苏大学大一c语言期末复习题汇总

选择题 1.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 C._123_ D._ok 2.请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 3.不属于C语言关键字的是()。 A.int B.break C.while D.character 4.以下不能定义为用户标示符的是()。 A.scanf B.V oid C._3com_ D.int 5.C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 6.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行 D.C语言程序中的main( )函数必须放在程序的开始部分 7.以下选项中,合法的用户标识符是()。 A.long B._2abc C.3dmax D.A.dat 8.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示 的字符常量’\101’是()。 A.字符A B.字符a C.字符c D.非法的常量 9.以下选项中,正确的字符常量是()。 A.”F”B.’\\’’C.’W’D.’’ 10.下列变量定义中合法的是 A.short _a=1-.le-1; B.double b=1+5e2.5; C.long do=0xfdaL; D.float 2_and=1-e-3; 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if 12.下列运算符中优先级最高的是()。 A.< B.&& C.+ D.!= 13.判断char型变量s是否为小写字母的正确表达式是()。 A.’a’ <= s<=’z’B.(s>=’a’) & (s<=’z’) C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s) 14.已知x=45, y=’a’, z=0; 则表达式(x>=z && y<’z’ || !y)的值是()。 A.0 B.语法错 C.1 D.“假”

相关文档
相关文档 最新文档