文档视界 最新最全的文档下载
当前位置:文档视界 › 专升本C语言历年考试题及答案5

专升本C语言历年考试题及答案5

专升本C语言历年考试题及答案5
专升本C语言历年考试题及答案5

(一)程序设计语言的发展

1、机器语言

2、汇编语言

3、面向过程的语言

4、面向对象的程序设计语言

(二) C程序设计语言的执行过程

1、编辑

2、编译

3、连接

4、执行

(三)用库函数组装C程序

例1:计算2.1715的正弦值。

#in clude ―m at h.h‖

m ain()

{

f lo at a; /*定义a为实型变量*/

a=sin(2.1715); /*调用sin函数*/

p r in t f(―%f\n‖,a); /*调用p r in t f函数,输出a的值*/

}

详解:

1、在本例中用到的sin函数称为数学函数,它是为了用户使用方便,由一批厂家开发编写的函数,并不是C语言的一部分。在使用数学函数时,往往要用到函数执行时所需的一些信息(例如宏定义),这些信息包含在―m at h.h‖中。因此在程序开头用#in cl ude ―m at h.h‖将有关的标头文件包括到程序中。

2、一个C语言源程序文件由一个或多个函数组成,C语言的基本组成单位是函数。一个完整的C语言程序有且只有一个称为主函数的m ain函数,程序总是从m ain函数开始执行,调用其它函数后再回到m ain函数,在m ain函数中结束整个程序的运行。

3、m ain是函数名称,没有参数可以不写,但圆括号不能省略,m ain()后面有一对花括号,花括号内的部分称为函数体,m ain函数可以在程序的任意位置。

4、C规定每个语句以分号(;)结束,分号是语句不可缺少的组成部分,每行中可以写多条语句。

5、/*与*/之间为注释信息,对程序运行结果不发生影响,也不被编译,注释说明可以放在语句的任意位置。

6、f lo at a;此语句是把a定义为一个实型变量。

7、C语言本身没有输入、输出语句,本例使用p r in f t函数输出数据。p r in f t函数的括号内包括

双引号外的变量的打印格式。此例中双引号中有一个‖%f‖,它是输出一个保留小数点后6位数字的格式字符,小数点前的位数不指定。

二、练习

(一)选择题

1、以下叙述正确的是_C___。

(A)在C程序中,m ain函数必须位于程序的最前面

(B)C程序的每行中只能写一条语句

(C)C语言本身没有输入输出语句

(D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误

2、C语言规定:在一个源程序中,m ain函数的位置___C_。

(A)必须在最开始

(B)必须在系统调用库函数的后面

(C)可以任意

(D)必须在最后

3、一个C语言程序是由____B。

(A)一个主程序和若干子程序组成

(B)函数组成

(C)若干过程组成

(D)若干子程序组成

4、一个C程序的执行是从A____。

(A)本程序的m ain函数开始,到m ain函数结束

(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

(C)本程序的m ain函数开始,到本程序文件的最后一个函数结束

(D)本程序文件的第一个函数开始,到本程序m ain函数结束

5、以下叙述不正确的是__D__。

(A)一个C源程序可由一个或多个函数组成

(B)一个C源程序必须包含一个m ain函数

(C)C程序的基本组成单位是函数

(D)在C程序中,注释说明只能位于一条语句后面

1、一个C源程序中至少包括一个__m ain函数____。

2、在一个C源程序中,注释部分两侧的分界符分别为____/*____和_*/_______。

第二章数据描述与基本操作

一、主要知识点

(一) C的基本数据类型节短整型(sh o r t)

整型整型(in t)

基本类型字符型(ch ar)长整型(n g)

实型(浮点型)单精度型(f lo at)

枚举类型双精度型(do ub le)

数据类型构造类型数组类型

结构类型(st r uct)

指针类型共用类型(un io n)

空类型(v o id)文件类型(FI LE)

(二)常量和符号常量

1、常量定义:在程序运行过程中,其值不能被改变的量称为常量。常量常区分不同的类型,如1

2、0、-3为整型常量,‘a‘、‘D‘为字符常量。

2、符号常量:用一个标识符代表一个常量的,称为符号常量,即标识符形式的常量。常量不同于变量,它的值在作用域内不能改变,也不能再被赋值。

例1:已知商品的单价及数量求商品的总价值。

#def in e P RI CE 30

m ain()

{

in t n um=10,t ot al;

t ot al=n um*P RI CE;

p r in t f(―t ot al=%d‖,t o t al);

}

详解:

1、程序中用#def in e命令行定义P RI CE代表常量30,此后凡在此文件中出现的P RI CE都代表30,可以和常量一样进行运算。

2、符号常量不同于变量,它的值在其作用域内不能改变,也不能再被赋值。如再用以下赋值语句给P RI CE赋值:P RI CE=40;是错误的。

(三)变量

1、变量定义:其值可以改变的量称为变量。

2、标识符的命名规范

和其它高级语言一样,用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为标识符,C语言中的标识符命名规范为:

①变量名只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。

②C语言中标识符的长度(字符个数)无统一规定,随系统而不同。许多系统(如I BM P C的MS C)取前7个字符,假如程序中出现的变量名长度大于7个字符,则只有前面7个字符有效,后面的不被识别。

③C语言有32个关键字(例如if、e lse、wh i le)它们已有专门含义,不应用采用与它们同名的变量名。

④C语言将大写字母和小写字母认为是两个不同字。

例2:在下列符号中,可以选用哪些作变量名?哪些不可以?

a3B3aB ∏+a -b *x$_b5_if n ex t_da y e_2OK? in t eger MAXNUMB ER i*j

答案:_b5_a3B n ex t_day e_2MAXNUMBER可作变量名,其它的作变量名不可以。

详解:

①MAXNUMBER可作变量名。习惯上符号常量名用大写,变量名用小写以示区别,但大写字母作变量名并无错误。

②if、in t eger属于保留字,保留字不可作变量名。

③∏+a -b *x$OK? i*j不可作变量名,因为变量名只能由字母、数字和下划线三种字符组成。

④3aB不可作变量名,因为变量名的第一个字母必须为字母或下划线。

(四)整型数据

整型常量即整常数。C语言整常数可用以下三种表示形式。

①十进制表示。如231、-56.478

②八进制表示。以0开头的数是八进制数。如0123即(123)8=1*82+2*81+3*80=64+16+3=83。

③十六进制表示。以0x开头的数是16进制。如0x123即(123)

=1*162+2*161+3*160=256+32+3=291。

16

2、整型变量

整型变量分为:基本型、短整型、长整型、和无符号型四种。

①基本型,以in t表示

②短整型,以sh o r t in t表示或以sh o r t表示

③长整型,以lo n g in t表示,或以lo n g表示

④无符号型,存储单元中全部二进制位(bit)用作存放数本身,而不包括符号。无符号型中又分为无符号整型、无符号短整型和无符号长整型,分别以un si gn ed in t、un si gn ed sh o r t和un si gn ed lo n g 表示。

3、整型数据的取值范围

C标准没有具体规定各类型所占内存字节数,各种机器处理上有所不同,以I BM P C为例,数的范围如表2.1所示。

表 2.1

4、整型常量的分类

①一个整常量,如果其值在-32768~32767范围内,认为它是in t型,它可以赋值给in t型和lo n g in t型变量。

②一个整常量,如果其值超过了上述范围,而在-2147483648~2147483647范围内,则认为它是lo n g in t型,可以将它赋值给一个lo n g in t型变量。

③如果某一计算机系统的C版本确定的sh o r t in t与int型在内存中占据的长度相同,则一个in t 型的常量出同时一个sh o r t in t型常量。

④常量中无un si gn ed型。但一个非负值的整常量可以赋值给un si gn ed型整变量,只要它的范围不超过变量的取值范围即可。例如:将50000赋给一个un s ign e d in t型变量是可以的,而将70000赋给它是不行的(溢出)。

⑤在一个整常量后面加一个字母l或L,则认为是lo n g in t型常量。

(五)实型数据

1、实型常量

实数在C语言中又称为浮点数。实数有两种表示形式:

①十进制形式。它由数字和小数点组成(注意必须有小数点)。例如:0.123、.123、123.0、0.0都是十进制数形式。

②指数形式。如123.56e4或123.56E4都代表123.56*104。但字母e(或E)之前必须有数字,e 后面指数必须为整数。例如:e3、2.1e3.5、.e3、e等都不是合法的指数形式。

例3:下面四个选项中,均是不合法的浮点数的选项是_____。

(A)160. 0.12e3(B)1232e4.2.e5

(C)-.18 123e40.0(D)-.e3.2341e3

答案:B

详解:

①160. 0.12-.18123e40.0.2341e3是实数的十进制形式或指数形式。

②e32e4.2.e5-.e3不是正确的指数形式。因为正确的字母e(或E)之前必须有数字,e 后面指数必须为整数。对于数据表示形式.e5以及-.e3,e前的.与-.不是有效的数字表示形式。

③123是整数形式。

2、实型变量

C实型变量分为单精度(f lo at型)和双精度(do u bl e型)两类。

在一般系统中,一个单精度型数据在内存中占4个字节(32位),一个do u ble型数据占8个字节。一个单精度型变量能接收7位有效数字,一个do ub le型变量能接收17位有效数字,数值的范围随机器系统而异。在I BM P C中,单精度实数的范围约为±(3.4E10-38~3.4E1038),双精度实数的范围约为±(1.7E10-308~1.710308)。

例4:

m ain( )

{ f lo at a;

p r in t f(―%f‖,a);

}

输出结果:111111.640621

详解:

①一个实型常量不分f lo at型和do u ble型。一个实型常量可以赋给一个f lo at型或do u ble型变量。根据变量的类型截取实型常量中相应的有效位数字。

②由于f lo at型变量只能接收7位有效数字,因此在把111111.666666赋给a时,a只接收了111111.6,由于输出函数p r in t f中的%f格式表示输出小数点后的6位小数,所以111111.6后的40621属于无意义数字。

③如果a改为do ub le型,则能全部接收上述12位数字。

(六)字符型数据

1、字符常量:

①普通形式的字符常量:用引号(即撇号)括起来的一个字符,如‘a‘、‘D‘、‘$‘、‘?‘等都是字符常量。

②转义符:以“\”开头的字符序列。

常用的以“\”开头的特殊字符见表2.2

表 2.2

例5:若有说明语句:ch ar c=‘\729‘;则变量c_____。

(A)包含1个字符(B)包含2个字符

(C)包含3个字符(D)说明不合法

答案:D

详解:‖\‖后可以有1到3位8进制所代表的字符,本题中‖\‖后的‖72‖属于8进制所代表的字符,

而‖9‖则不属于8进制位所代表的字符,则‘\729‘中包含了两个字符常量‘\72‘和‘9‘。而字符常量是用引号(即撇号)括起来的一个字符,所以答案为D。

2、字符变量

字符变量是用来存放字符常量的存储单元。

3、字符数据在内存中的存储形式

将一个字符常量存放到一个字符变量中,实际上并不是把该字符本身存放到内存单元中去,而是将该字符的相应的A SCI I码值存放到存储单元中去。

例6:将小写字母转换成大写字母

m ain( )

{ ch ar c1=‘a‘;

c1=c1-32;

p r in t f(―%c‖,c1);

}

输出结果:A

详解:

①‘a‘的A SCI I码为97,所以c1=‘a‘;语句的功能是把97赋值给了c1。

②c1=c1-32;语句的功能是把97-32的值65赋值给c1。

③p r in t f函数中的%c格式表示以字符方式输出。A SCI I码值为65的字符为A,所以运行结果为:A

(七)字符串常量

字符常量是用一对双引号括起来的零个或多个字符序列。C规定以字符‘\0‘作为字符串结束标志。所以字符串‖a‖实际上包含2个字符:‘a‘、‘\0‘,因此下面的语句:

c=‖a‖;

把一个串赋值给一个字符变量c是错误的。

例7:下面不正确的字符串常量是______。

(A)‘abc‘ (B)‖12‘12‖(C)‖0‖(D)‖ ‖

答案:A

详解:‘abc‘是用单引号引来的,所以‘a bc‘不是正确的字符串常量。

(八)算术运算符和算术表达式

①C语言中有5个基本算术运算符:

+(加法运算符。如3+5、+3)

-(减法运算符。如5-2、-3)

*(乘法运算符,如3*5)

/(除法运算符,如5/3,5.0/3)

%(求余运算符,要求%两侧均为整型数据)

例8:在C语言中,要求运算数必须是整型的运算符是____。

(A)/ (B)++ (C)!= (D)%

答案:D

详解:对于%运算符来说,要求两侧均为整型数据,所以表达式3.5%2与3%2.0是错误的。

例9:写出下列程序的输出结果

m ain( )

{

p r in t f(―%d,%d\n‖,5/3,5%3);

p r in t f(―%d,%d\n‖,-5/-3,-5%-3);

p r in t f(―%d,%d\n‖,-5/3,-5%3);

p r in t f(―%d,%d\n‖,5/-3,5%-3);

}

输出结果:

1,2

1,-2

-1,-2

-1,2

详解:两个同号整数相除时结果为正整数,如5/3、-5/-3的结果值为1。两个异号整数相除时结果为负整数,多数机器采取“向零取整”法,即-5/-3=-1,5/-3=-1,但如果参加运算的两个数中有一个数为实数时结果为实数。对于求余(%)运算,运算结果与第一个数的符号相同。

②优先级别:先*、/、%后+、-

③运算量:双元运算量,%前后必须为整数。

④左右结合性:自左至右参预运算。

①C语言中有4种形式的自加自减运算符:

++i (先使i加1后使用)

i++(先使用后使i加1)

--i (先使i减1后使用)

i--(先使用后使i减1)

②优先级别:高于算术运算。

例10:若x和n均是in t型变量,且x和n的初值均为5,则计算表达式后x的值为______,n 的值为______。

x+=n++

答案:10 6

详解:根据优先级别选运算表达式n++,因为n++是后缀表示形式,所以n先参预运算,再运算表达式x+=n,则x为10,最后n自加为6。

例11:

m ain()

{

in t x,y,m,n;

x=2;y=2

m=x++*5;

n=++y*5;

p r in t f(―%d,%d,%d,%d‖,x,y,m,n);

}

输出结果:3,3,10,15

详解:对于后缀来说是先使用后运算,所以m的值为x在自加以前的2*5得10赋值给m后,x自加变为3。对于前缀来说是先运算后使用,所以m的值为x在自加以后的3*5得15赋值给n。

③运算量:单元运算量,此运算量必须为变量,所以表达式5++、(x+y)++是错误的。

④左右结合性:自右至左参预运算。

(九)关系运算

1、C语言提供的关系运算符有:

>(大于)>=(大于或等于)<(小于)

2、优先级别:关系运算符的优先级别低于纯算术类,高于赋值类。后两个的优先级小于前四个。如表达式a+b

3、运算量:关系运算符是双元运算符,整型、实型、字符都可以参预运算。

4、左右结合性:从左向右的结合方向

5、关于关系运算符的进一步说明:

①关系表达式的值是整型数0或1,故也可以将其看成一种整型表达式。例如:

in t i=1,j=7,a;

a=i+(j%4!=0);

的执行结果为:a的值为2。

②要说明x在区间[a,b]中,普通数学中使用表达式a≤x≥b。但C语言中应写成a<=x&&x<=b。

③表达式5>2>7>8在数学上是不允许的,而在C中是允许的。按自左至右求解。

④字符数据的比较按其A SCI I码值进行。

⑤在判定两个浮点数是否相等时,由于存储上的误差,会得出错误的结果。例如:

1.0/3.0*3.0==1.0

该表达式的值为0。

(十)逻辑运算

1、C语言提供的逻辑运算符:

&&(逻辑与)||(逻辑或)!(逻辑非)

2、优先级别:&&与||的优先级别低于关系运算符,高于条件运算符,&&的优先级别高于||,!的优先级别与自加运算符(++)、自减运算符(--)同级。

3、运算量:&&和||是双元运算符,!是单元运算符。

例12:已知x=43,ch=‘A‘,y=0;则表达(x>=y&&ch<‘B‘&&!y)的值是______。

(A)0(B)语法错(C)1(D)“真”

答案:C

详解:C语言不提供逻辑性数据“真”和“假”,在进行逻辑运算时,结果不是1就是0。

4、左右结合性:&&和||运算符的结合方向为自左至右,!的结合方向为自右至左。

5、关于逻辑运算符的进一步说明:

①在一个&&表达式中,若&&的一端为0,则不必再计算另一端,该表达式的值肯定为0。

②在一个||表达式中,若||的一端为0,则不必再计算另一端,该表达式的值肯定为1。

m ain( )

{

in t x,y,z;

x=y=z=0;

++x&&++y||++z;

p r in t f(―%d,%d,%d‖,x,y,z);

x=y=z=0;

++x||++y&&++z;

p r in t f(―%d,%d,%d‖,x,y,z);

}

输出结果:

1,1,0

1,0,0

详解:

①因为&&的优先级别高于||,所以表达式++x&&++y||++z是一个或表达式,根据||的一端为0,则不必再计算另一端的原则,先计算表达式++x&&++y的值为1,因为1或任何值都为1,所以表达式++z没有运算,输出结果为:1,1,0。

②表达式++x||++y&&++z也是一个或表达式,同样根据||的一端为0,则不必再计算另一端的原则,先计算表达式++z的值为1,因为1或任何值都为1,所以表达式++y&&++z没有运算,输出结果为:1,0,0。

(十一)赋值运算

1、基本的赋值运算符:

=(将赋值运算符右侧的表达式赋给左侧的变量)

2、自反算术赋值运算符

C语言中有5个基本自反算术赋值运算符:

+=(a+=3等价于a=a+3)

-=(a-=3等价于a=a-3)

*=(a*=3等价于a=a*3)

/=(a*=3等价于a=a*3)

3、优先级别:赋值运算符与自反算术赋值运算符属于同等级别,低于条件运算符,高于逗号运算符。如对于表达式x%=y+3完全等价于x%=(y+3)。

例14:若有以下定义,则能使值为3的表达式是______。

I n t k=7,x=12;

(A)x%=(k%5)(B)x%=(k-k%5)

(C)x%=k-k%5(D)(x%=k)-(k%=5)

答案:D

详解:表达式(x%=k)-(k%=5)完全等价于(x=x%k)-(k=k%5)等价于5-2,此表达式的结果为3。

4、运算量:双元运算量,赋值运算符与自反算术赋值运算的第一个量必须为变量,且%=前后必须为整型数据。如对于表达式a*3+=2是错误的。因为此表达式完全等价于(a*3)=(a*3)+2。

5、左右结合性:自右至左参预运算。

例15:若a是in t型变量,且a的初值为6,则计算表达式后a的值为______。

a+=a-=a*a

答案:-60

详解:表达式从左向右运算,先计算表达式a=a-36后a为-30,再计算表达式a=a+a后a的值变为-60。

(十二)条件运算:

1、条件运算符的基本形式及功能:

条件运算是一种在两个表达式的值中选择一个的操作。它的一般形式为:

e1?e2:e3

它的操作过程为,若e1为真,则表达式的值为e2,若为假表达式的值为e3。

2、优先级别:低于逻辑运算,高于赋值运算。

3、运算量:三元运算量,e1一般为算术表达式,e2、e3可以是任意类型的表达式,条件表达式的值的类型为e2与e3二者中类型较高的。

例16:若有条件表达式(ex p)?a++:b--,则以下表达式中能完全等价于表达式(ex p)的是______。

答案:exp!=0

详解:对于表达式e1?e2:e3,e1一般为算术表达式、逻辑表达式、关系表达式,结果为1(真)或0(假)。也可以为数值ex p,结果为结果为非0(真)或0(假)在本例中与ex p完全等价的表达式是ex p!=0。

例17:以下程序的运行结果是______。

m ain()

{

in t k=4,a=3,b=2,c=1;

p r in t f(―%d‖,k

}

答案:1

详解:条件表达式是从右向左运算,所以在本例中先计算表达式c

(十三)逗号运算

1、逗号运算符的基本形式及功能:

逗号表达式的一般形式为:表达式1,表达式2。逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个表达式的值是表达式2的值。

2、优先级别:逗号运算符是所有运算符中级别最低的。

例18:以下符合C语言语法的赋值表达式是______。

(A)d=9+e+f=d+9(B)d=(9+e,f=d+9)

(C)d=9+e,e++,d+9(D)d=9+e++=d+7

答案:B

解析:表达式d=9+e+f=d+9中9+e+f=d+9是不正确的表示形式,因为赋值号(=)左边不能是表达式。表达式d=9+e,e++,d+9是逗号表达式,因为赋值运算符(=)的优先级别高于逗号运算符(,)。表达式d=9+e++=d+7中9+e++=d+7是不正确的表达式,因为赋值号(=)左边不能是表达式。

3、运算量:二元运算量。

4、左右结合性:从左向右运算。

例19:假设所有变量均为整型,则表达式a=2,b=5,b++,a+b的值是______。

答案:8

解析:根据逗号运算符从左向右运算的原则,首先把2和5分别赋值给了a,b。再计算表达式b++,b变为6,再计算表达式a+b的值,最后整个表达式的值是8。

(十四)强制类型转换

1、强制类型一般形式及功能:

do u ble类型)其一般形式为:

(类型名)(表达式)

2、优先级别:强制类型转换运算符与逻辑非(!)、自加(++)、自减(--)属于同等级别,高于算术运算符。

3、运算量:单元运算量

4、关于强制类型转换运算符的进一步说明:

①强制转换表达式时,表达式应该用括号括起来。如果写成(in t )x+y则只将x转换成整型,然后与y相加。

②如果x原指定为f lo at型,进行强制类型运算后得到一个in t型的中间变量,它的值等于x的整数部分(截去小数部分),而x的类型不变(仍为f lo at型)。

例20:

m ain( )

{

f lo at x=3.6;

in t i;

i=(in t)x

p r in t f(―x=%f,i=%d‖,x,i);

}

输出结果:x=3.600000,I=3

解析:变量x进行强制类型运算后,其类型仍为f lo at型,值仍为3.6。

(十五) prin t f函数

p r in t f函数可以输出任意类型的多个数据。

1、p r in t f函数的一般格式

p r in t f(格式控制,输出表列)

①“格式控制”是用双引号括起来的字符串,也称“转换控制字符串”,它包括两种信息:格式说明和普通字符。格式说明是由“%”和格式字符组成,如%d,%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由‖%‖字符开始的。普通字符即需要原样输出的字符。

②输出表列是指需要输出的一些数据,可以是表达式,它们之间用“,”隔开。

2、格式控制的完整格式:

下面对组成格式说明的各项加以说明:

①%:表示格式说明的起始符号,不可缺少。

②-:有-表示左对齐输出,如省略表示右对齐输出。

③0:有0表示指定空位填0,如省略表示指定空位不填。

④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。

⑤l或h:l对整型指lo n g型,对实型指do u ble型。h用于将整型的格式字符修正为sh o r t型。

3、格式字符:

格式字符用以指定输出项的数据类型和输出格式。

①d格式:用来输出十进制整数。有以下几种用法:

%d:按整型数据的实际长度输出。

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

%ld:输出长整型数据。

②o格式:以无符号八进制形式输出整数。对长整型可以用“%lo”格式输出。同样也可以指定字段宽度用“%m o”格式输出。

例21:

m ain()

{ in t a=-1;

p r in t f(―%d,%o‖,a,a);

}

运行结果:-1,177777

程序解析:-1在内存单元中(以补码形式存放)为(1111111111111111)2,转换为八进制数为(177777)8。

③x格式:以无符号十六进制形式输出整数。对长整型可以用“%lx”格式输出。同样也可以指定字段宽度用“%m x”格式输出。

④u格式:以无符号十进制形式输出整数。对长整型可以用“%lu”格式输出。同样也可以指定字段宽度用“%m u”格式输出。

⑤c格式:输出一个字符。

%s:例如:p r in t f(―%s‖,‖CHI NA‖)输出“CHI NA”字符串(不包括双引号)。

%m s:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格。

%-m s:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。

%m.n s:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。

%-m.n s:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出。

⑦f格式:用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法:

%f:不指定宽度,整数部分全部输出并输出6位小数。

%m.n f:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。

%-m.n f:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。

⑧e格式:以指数形式输出实数。可用以下形式:

%e:数字部分(又称尾数)输出6位小数,指数部分占5位或4位。

%m.n e和%-m.n e:m、n和‖-‖字符含义与前相同。此处n指数据的数字部分的小数位数,m 表示整个输出数据所占的宽度。

⑨g格式:自动选f格式或e格式中较短的一种输出,且不输出无意义的零。

4、关于p r in t f函数的进一步说明:

如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示,如:

p r in t f(―%f%%‖,1.0/3);

输出0.333333%。

(十六) s can f函数

scan f函数可以用来输入任何类型的多个数据。

1、scan f函数的一般格式

scan f(格式控制,地址表列)

①“格式控制”的含义同p r in t f函数。普通字符即需要原样输入的字符。

②地址表列是指由若干个地址组成的表列,它们之间用“,”隔开。

2、格式控制的完整格式:

% *m l或h格式字符

格式。

②可以指定输入数据所占列宽,系统自动按它截取所需数据。如:

scan f(―%3d%3d‖,&a,&b);

输入:123456

系统自动将123赋给a,456赋给b。

③%后的“*”附加说明符,用来表示跳过它相应的数据。例如:

scan f(―%2d%*3d%2d‖,&a,&b);

如果输入如下信息:1234567。将12赋给a,67赋给b。第二个数据‖345‖被跳过不赋给任何变量。

④输入数据时不能规定精度,例如:

scan f(―%7.2f‖,&a);

是不合法的,不能企图输入:12345.67而使a的值为12345.67。

3、输入数据流分隔

①根据格式字符的含义从输入流中取得数据,当输入流中数据类型与格式字符要求不符时,就认为这一项结束。如:

scan f(―%d%c%f‖,&a,&b,&c);

如果输入如下信息:

1234r1234.567

则scan f函数在接收数据时发现‖r‖类型不匹配,于是把‖1234‖转换成整型赋值给a,把‖r‖赋给变量b,最后把‖1234.567‖转换成实型数据赋给c。

②根据格式项中指定的域宽分隔出数据项。如语句:scan f(―%2d%3f%4f‖,&a,&b,&c);

如果输入如下信息:

123456789012345

则scan f函数在接收数据时根据域宽把12赋值给a,345赋值给b,6789赋值给c。

③隐示分隔符。空格、跳格符(‘\t‘)、换行符(‘\n‘)都是C语言认定的数据分隔符。

④显示分隔符。在scan f函数的两个格式说明项间有一个或多个普通字符,那么在输入数据时,在两个数据之间也必须以这一个或多个字符分隔。如语句:

scan f(―a=%d,b=%f,c=%f‖,&a,&b,&c);

则输入数据应该为:

a=1234,b=67.8,c=98.123

①scan f函数中的“格式控制”后面应当是变量地址,而不应是变量名。例如,如果a、b为整型变量,则

scan f(―%d,%d‖,a,b);

是不对的,应将‖a,b‖改为‖&a,&b‖。

②如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。例如:

scan f(―%d,%d‖,&a,&b);

输入时应输入:3,4。3与4之间的逗号应与scan f函数中的“格式控制”中的逗号相对应,输入其它符号是不对的。

③在用“%c”格式输入字符时,空格字符和转义字符都作为有效字符输入。

scan f(―%c%c%c‖,&c1,&c2,&c3);

如输入:a b c 。字符‘a‘赋给c1,字符(空格)‘ ‘赋给c2,字符‘b‘ 赋给c3。

5、scan f的停止与返回

①格式参数中的格式项用法----正常结束。

②发生格式项与输入域不匹配时----不正常退出:

(十七) ge t ch a r、pu t ch a r函数

1、get ch ar函数

get ch ar函数是从终端输入一个字符。get ch ar函数没有参数,其一般形式为:get ch ar( )。

2、p ut ch ar函数

p ut ch ar函数的作用是向终端输出一个字符。

二、练习

(一)选择题

1、下面四个选项中,均是不合法的用户标识符的选项是____。

(A)A P_0do(B)f lo at la0_a

(C)b-a go t o in t(D)_123t emp I NT

2、若x,i,j和k都是in t型变量,则计算下面表达式后,x的值为______。x=(i=4,j=16,k=32)

(A)4(B)16(C)32(D)52

3、下列四个选项中,均是不合法的整型常量的选项是______。

(A)--0f1-0x ff f f0011

(C)-0189995e2

(D)-0x48eg -06803f

4、下面四个选项中,均是合法浮点数的选项是______。

(A)1e15e-9.403e2

(B)-.6012e-4-8e5

(C)123e 1.2e-.42e-1

(D)-e3.8e-4 5.e-0

5、下面四个选项中,均是合法字符的选项是______。

(A)‘\‘‘ ?\\‘ ?\x f‘ (B)‘\‘ ?\017‘ ?\n‘

(C)‘\018‘ ?\f‘ ?x ab‘(D)‘\0‘ ?\101‘ ?x lf‘

6、以下不正确的叙述是______。

(A)在C程序中,逗号运算符的优先级最低。

(B)在C程序中,AP H和ap h是两个不同的变量

(C)若a和b类型相同,在计算机了赋值表达式a=b后,b的值不变。

(D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数据。

第三章C程序的流程设计

一、算法

1、算法的概念

为解决某一个问题而采取的方法和步骤,就称为算法。

2、算法的性质

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

②一个初始:此动作序列只有一个初始动作

③确定性:算法中的每一个步骤都应当是确定性的,仅有一个后继动作。

c语言程序设计试题答案

习题7 7.1选择题。 (1)下列对字符串的定义中,错误的是: A 。 A) char str[7] = "FORTRAN"; B) char str[] = "FORTRAN"; C) char *str = "FORTRAN"; D) char str[] = {'F','O','R','T','R','A','N',0}; (2)以下程序段的输出结果是:____D_________ char a[] = "ABCDE" ; char *p = NULL; for (p=a; p main() { static char a[5]; a = "abcde" ; printf("%s\n", a); }

B) #include <> main() { static char a[7]= "goodbye!"; printf("%s\n", a) ; } C) #include <> main() { char a[5] = "abcde"; printf("%s\n", a) ; } D) #include <> main() { static char a[]="abcde"; printf("%s\n", a) ; } (4)阅读下列函数,函数功能为___A_____。 void Exchange(int *p1, int *p2) { int p; p = *p1; *p1 = *p2; *p2 = p; } A)交换*p1和*p2的值B)正确,但无法改变*p1和*p2的值 C)交换*p1和*p2的地址 D)可能造成系统故障

江苏大学大一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、一个C程序可能出现的错误有(A)A,以上都包括 B,逻辑错误 C,运行错误 D,语法错误 2、C程序中一般可以包含几个函数(D) A.1个 B.多个 C.0个 D.至少一个 3.C语言属于程序设计语言的哪个类别(B) A.机器语言 B.高级语言 C.面向对象语言 D.汇编语言 4.以下关于C语言描述错误的是(B) A.一个C程序总是从main函数开始执行 B.一个C程序可以包含多个main函数 C.每个语句的最后必须有一个分号 D.C语言的注释符是以"/*"开始并以"*/"结束

5、在调试过程中,逻辑错误是指(C) A.所书写的语句,不符合C的语法。 B.在从obj生成exe文件的过程中,如果函数名书写错误,可能产生的错误。 C.程序的运行结果不符合题目要求。 D.在exe文件的执行过程中,产生运行异常。 第二章 1、16位的二进制数可以表示的整数的范围是(C) A.[-32768,32768] B.[-32767,32768] C.[-32768,32767] D.[-32767,32767] 2、C语言中的实型数据包括(A) A.float和double B.int和float C.float和char D.int和double 3、以下不合法的字符常量是(C) A.'2' B.'A' C.'ab'

4、在以下各组标识符中,均是合法的C语言标识符是(A) A.abc,A_4d,_student,xyz_abc B.auto,12-a,a_b,ab5.x C.A_4d,_student,xyz_abc,if D.abc,a_b,union,scan 5、若有定义:chara;intb;floatc;doubled; 则表达式a*b+d-c值的类型为(A) A.char B.float C.double D.int 6、类型修饰符unsigned不能修饰(D) A.char B.longint C.int D.float 7、若有定义:doublex=1,y; 执行语句,则y的值是(B) A,1 B,2.0

c语言程序设计期末试题B(含答案)

c语言程序设计期末试题B(含答案) 一单项选择题(每小题1分,共10分) 1. A 2. C 3. D 4. A 5. B 1.以下4组用户定义标识符中,全部合法的一组是() A)_total clu_1 sum B)if -max turb C)txt REAL 3COM D)int k_2 _001 2.以下程序的输出结果是() #include main( ) { int a = 1, b = 2, c = 3; printf(“%d”, c>b>a); } A) 2 B) 1 C) 0 D) 3 3.以下正确的叙述是() A) 在C语言中,main函数必须位于文件的开头 B) C语言每行中只能写一条语句 C) C语言本身没有输入、输出语句 D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误 4.设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是() A)scanf("%d",pa); B)scanf("%d",a); C)scanf("%d",&pa); D)scanf("%d",*pa); 5.若有以下程序段, int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是() A) 0 B) 0.5 C) 1 D) 2 6. D 7. D 8. A 9. C 10. D 6.能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是() A) a>=10 or a<=0 B)a>=0|a<=10 C)a>=10 &&a<=0 D)a>=10‖a<=0 7.执行下面的程序时,将1、2、3、4分别赋给a、b、c、d,正确的输入是() main( ) { int a,b,c,d; scanf(“%d,%d,%d%d”,&a,&b,&c,&d); … } A)1 2 3 4 B)1 2 3,4 C) 1,2,3,4 D) 1,2,3 4

C语言程序设计模拟试题1附答案

《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。

大学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)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-”,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是( B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A) %x B) a+b C) a123 D) 123 选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 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.“假”

C语言程序设计的试题及答案

C语言程序设计的试题及答案 C语言程序设计的试题及答案C语言程序设计的试题及答案第一章基础知识 一、填空 1.每个C程序都必须有且仅有一个________函数。 2.C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3.软件是程序,以及______、使用和维护所需要的所有文档。 4.国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5.程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6.C语言是由________组成的。 7.C语言的函数可分为主函数ain、标准库函数和_________。 8.一个函数是由两部分组成的,即:________和函数体。 9.编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自

动化、管理信息系统、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11.机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12.与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。 13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14.C程序的执行均是由执行_________开始。15.函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C语句组成的执行部分。 16.C语言程序中一条简单语句是以________字符作为结束符的。 17.C语言是结构化、________的程序设计语言。 18.由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19.用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.第一个系统体现结构化程序设计思想的教学工具语言是_______语言。

c语言程序设计期末试题A(含答案)

c语言程序设计期末试题A(含答案) 一、单项选择题(选择一个最佳答案,每题2分,共20分) 1.一个C程序的执行是从(A )。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序的main函数开始,到本程序文件的最后一个函数结束 D) 本程序文件的第一个函数开始,到本程序main函数结束 2.下列选项中,不能用作标识符的是(D )。 A) _1234_ B) _1_2 C) int_2_ D) 2_int_ 3.以下定义语句中正确的是( C)。 A) char a='A'b='B'; B) float a=b=10.0; C) int a=10,*b=&a; D) float *a,b=&a; 4.设有以下定义:#define d 2 int a=0; double b=1.25; char c=’A’; 则下面语句中错误的是(B)。 A) a++; B) b++ C) c++; D) d++; 5.以下4个选项中,不能作为一条C语句的是(D)。 A) {;} B) a=0,b=0,c=0; C) if(a>0); D) if(b==0) m=1;n=2; 6.有以下定义语句 double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是( C)。 A) a=a+b=b++ B) w%(int)a+b) C) (c+w)%(int)a D) w=a==b; 7.设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是(D)。 A) p=1; B) *q=2; C) q=p; D) *p=5; 选D. A.p是一个指针,不能给它赋一个整型的值1 B.*q仍然是一个指针,*q就是p.所以也不能给它赋一个整型的值. C.q=p;q是个二级指针,p是一级指针,不能把一级指针赋给二级指针. *p=5,即给n赋值为5,正确.

上海海事大学(C语言期末)上机题库

试卷编号:9688 所属语言:C语言 试卷方案:期中考试 试卷总分:100分 共有题型:5种 一、填空共15题(共计15分) 第1题(1.0分)题号:528 设a、b、c为整型数, 且a=2、b=3、c=4, 则执行完以下语句: a*=16+(b++)-(++c); 后,a的值是【1】. 答案: =======(答案1)======= 28 第2题(1.0分)题号:78 已知 i=5;写出语句 i+=012; 执行后整型变量 i 的十进制值是【1】. 答案: =======(答案1)======= 15 第3题(1.0分)题号:510 若a是int型变量,则计算表达式 a=25/3%3 后a的值为【1】. 答案: =======(答案1)======= 2 第4题(1.0分)题号:437 以下程序的输出结果为【1】, #include "stdio.h" main(){int a=010,j=10;printf("%d,%d\n",++a,j--);}

答案: =======(答案1)======= 9,10 第5题(1.0分)题号:431 执行下面两个语句,输出的结果是【1】,char c1=97,c2=98;printf("%d %c",c1,c2); 答案: =======(答案1)======= 97 b *第6题(1.0分)题号:293 getchar()函数只能接收一个【1】. 答案: =======(答案1)======= 字符 第7题(1.0分)题号:440 设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值为【1】. 答案: =======(答案1)======= 1 第8题(1.0分)题号:95 已知a=13,b=6, a&&b的十进制数值为【1】. 答案: =======(答案1)======= 1 第9题(1.0分)题号:306 当a=1,b=2,c=3时,执行以下程序段后b=【1】.

C语言程序设计期末考试试题及答案

C 语言程序设计 试 题 (2008 /2009 学年 第 二 学期) 一. 选择题(满分30分,每题2分) 1.若a 、b 、c 都定义为int 类型且初值为0,则以下不正确的赋值语句是 D 。 A. a=b=c+8; B. a+=y+3; C. c++; D. a+b+c 2. 已知int j ,i=1;执行语句“j=i++;”后,变量i 的值是 B 。 A. 1 B. 2 C. –1 D. -2 3.执行下面程序: #include "stdio.h" void main() { int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf(“%d,%d,%d ”,a,b,c); } 则输出结果是: A 。 A. 2,2,4 B. 4,2,3 C. 5,5,3 D. 4,2,5 4.若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为 D 。 A. a< >0 B. !a C. a=0 D. a 5. for (j=0;j<11;j++);循环结束后,j 的值是 B 。 A. 12 B. 11 C. 10 D. 9 6. C 语言中函数返回值的类型由 D 决定的。 A. return 语句中的表达式类型 B. 调用该函数的主调函数的类型 C. 调用函数时临时决定 D. 定义函数时所指定的函数类型 7. 下列说法中正确的是 B 。 A 在调用用户自定义函数时,必须对其进行声明。 B 函数可以返回一个值,也可以什么值也不返回。 C 说明函数时,必须明确参数的类型和返回值。 D 在程序设计中空函数没有什么作用。 8. 若int i=10;执行下列程序后,变量i 的正确结果是 D 。 switch ( i ) {case 0: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; } A. 10 B. 11 C. 12 D. 13 9. 下列语句中不正确的字符串赋值或初始化的是 C 。 A . char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'}; C. char str[10]; str= "strings"; D. char str[]= "strings"; 10. 有如下程序: #include void main() { int a=1,b=0,c=0; if (a

大学生C语言期末考试必做题库

C语言

第一题 在屏幕上显示一个短句“Programming in C is fun!” #include int main() { printf("Programming in C is fun!\n"); return 0; } 第二题 在屏幕上显示如下网格。 +---+---+ | | | | | | +---+---+ #include int main( ) { printf("+---+---+\n| | |\n| | |\n+---+---+\n"); return 0; } 第三题 在屏幕上显示一条语句“This is a C program.” #include int main() { printf("This is a C program.\n"); return 0; } 第四题 输出如下图形: ********** very good! ********** #include int main( ) { printf("**********\nvery good!\n**********\n"); return 0; }

第一题求平方根(基础) 程序填空,不要改变与输入输出有关的语句。 输入1个实数x,计算并输出其平方根(保留1位小数)。 例:输入17输出The square root of 17.0 is 4.1 #include #include int main( ) { double x, root; scanf("%lf", &x); root=sqrt(x); printf("The square root of %0.1f is %0.1f\n", x, root); return 0; } 第二题计算一个三位数的个十百位之和 编写程序。 输入一个三位数(大于0),计算这个三位数的个位、十位、百位数字之和. 例如:输入:152输出:sum=8 #include #include int main() { int n,a,b,c,sum; scanf("%d",&n); a=n/100; b=n%100/10; c=n%10; sum=a+b+c; printf("sum=%d\n",sum); return 0; } 第三题(公共)求圆的周长、面积及圆球体积 程序填空,不要改变与输入输出有关的语句。 求以r为半径的圆周长c和圆面积s,再求以r为半径的圆球体积v。(已知r=3.67在程序中直接赋值,pi的值为3.1415926) 按照下列形式输出: printf("c=%f\ns=%f\nv=%f\n",c,s,v); #include int main( ) { double r,c,s,v,pi=3.1415926; r=3.67; c=2*pi*r;

(完整版)C语言程序设计选择题库及答案

单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题, 应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123 C) %d D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodb start$it line# pow ??? aBc 3pai His.age while

【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义

大学C语言期末考试试题及答案

大学C语言期末考试试题 一选择题(7分,每小题0.5分) 1。C语言源程序的基本单位是()。 A 过程B函数C子程序D标识符 2.下列程序的输出结果是()。 main( ) { inta=7,b=5; printf("%d\n",b=b/a); } A 5 B 1 C0 D不确定值 3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。 A7 B8 C9 D 2 4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534;a=(int)125.521%4;a=5<<2; A125,31,1 B125,1,20 C 125,31,20D125.534,2,20 5。设有如下程序段,下面描述中正确的是( )。 int k=10;while(k=0)k=k—1; A循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次 6。以下程序的输出结果为( ). int i; void prt() { for(i=5;i<8;i++) printf(”%c”,'*’); printf("\t"); } main( ) { for(i=5;i<=8;i++)prt( ); } A *** B ************ C *** *** D * ** 7。在C语言程序中,以下说法正确的是()。 A函数的定义可以嵌套,但函数的调用不可以嵌套 B函数的定义不可以嵌套,但函数的调用可以嵌套 C函数的定义和函数的调用都不可以嵌套 D函数的定义和函数的调用都可以嵌套 8。以下函数调用语句中含有( )个实参. func((e1,e2),(e3,e4,e5)); A 2 B3 C5 D语法错误 9.以下程序的输出结果为(). #defineADD(x)x*x main( ) {int a=4,b=6,c=7,d=ADD(a+b)*c; printf(”d=%d",d);

C语言程序设计期末考试选择题题库

第一章 1、一个C程序可能出现的错误有(A) A,以上都包括 B,逻辑错误 C,运行错误 D,语法错误 2、C程序中一般可以包含几个函数(D) A.1个 B.多个 C.0个 D.至少一个 3.C语言属于程序设计语言的哪个类别(B) A.机器语言 B.高级语言 C.面向对象语言 D.汇编语言 4.以下关于C语言描述错误的是(B) A.一个C程序总是从main函数开始执行 B.一个C程序可以包含多个main函数 C.每个语句的最后必须有一个分号 D.C语言的注释符是以"/*"开始并以"*/"结束 5、在调试过程中,逻辑错误是指(C) A.所书写的语句,不符合C的语法。 B.在从obj生成exe文件的过程中,如果函数名书写错误,可能产生的错误。 C.程序的运行结果不符合题目要求。 D.在exe文件的执行过程中,产生运行异常。 第二章 1、16位的二进制数可以表示的整数的范围是(C) A.[-32768,32768] B.[-32767,32768] C.[-32768,32767] D.[-32767,32767] 2、C语言中的实型数据包括(A) A.float和double B.int和float C.float和char D.int和double

3、以下不合法的字符常量是(C) A.'2' B.'A' C.'ab' D.'\n' 4、在以下各组标识符中,均是合法的C语言标识符是(A) A.abc,A_4d,_student,xyz_abc B.auto,12-a,a_b,ab5.x C.A_4d,_student,xyz_abc,if D.abc,a_b,union,scan 5、若有定义:char a;int b;float c;double d; 则表达式a*b+d-c值的类型为(A) A.char B.float C.double D.int 6、类型修饰符unsigned不能修饰(D) A.char B.long int C.int D.float 7、若有定义:double x=1,y; 执行语句y=x+3/2;,则y的值是(B) A,1 B,2.0 C,2 D,2.5 8、设int a=1,b=2;以下选项中不正确的语句是(B) A.a=a+b B.a*3=3 C.a+=3 D.a/=1 9、在C语言中,要求参加运算的数必须是整数的运算符是(C) A.* B./ C.% D.++

C语言程序设计期末考试试题及答案

C语言程序设计试题 (2008 /2009 学年第二学期) 一.选择题(满分30分,每题2分) 1.若a、b、c都定义为int类型且初值为0,则以下不正确的赋值语句是 D 。 A. a=b=c+8; B. a+=y+3; C. c++; D. a+b+c 2. 已知int j,i=1;执行语句“j=i++;”后,变量i的值是 B 。 A. 1 B. 2 C. –1 D. -2 3.执行下面程序: #include "stdio.h" void main() { int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf(“%d,%d,%d”,a,b,c); } 则输出结果是: A 。 A. 2,2,4 B. 4,2,3 C. 5,5,3 D. 4,2,5 4.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 D 。 A. a< >0 B. !a C. a=0 D. a 5. for (j=0;j<11;j++);循环结束后,j的值是 B 。 A. 12 B. 11 C. 10 D. 9 6. C语言中函数返回值的类型由 D 决定的。 A. return语句中的表达式类型 B. 调用该函数的主调函数的类型 C. 调用函数时临时决定 D. 定义函数时所指定的函数类型 7. 下列说法中正确的是 B 。 A 在调用用户自定义函数时,必须对其进行声明。 B 函数可以返回一个值,也可以什么值也不返回。 C 说明函数时,必须明确参数的类型和返回值。 D 在程序设计中空函数没有什么作用。8. 若int i=10;执行下列程序后,变量i的正确结果是 D 。 switch ( i ) {case 0: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; } A. 10 B. 11 C. 12 D. 13 9. 下列语句中不正确的字符串赋值或初始化的是 C 。 A. char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'}; C. char str[10]; str= "strings"; D. char str[]= "strings"; 10. 有如下程序: #include void main() { int a=1,b=0,c=0; if (a

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