当前位置:文档之家› C++期末考试复习题及答案

C++期末考试复习题及答案

C++期末考试复习题及答案
C++期末考试复习题及答案

(11)以下对C/C++语言函数的描述中,正确的是C

A)C程序由一个或一个以上的函数组成

B)C函数既可以嵌套定义又可以递归调用

C)函数必须有返回值,否则不能使用函数

D)C++程序中调用关系的所有函数必须放在同一个程序文件中

(12)以下正确的描述为C

A)每个C++语言程序必须在开头用预处理命令:

B)预处理命令必须位于C++源程序的首部

C)在C++语言中预处理命令都以”#”开头

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

(13)下列叙述中正确的是 B

A)全局变量的作用域一定比局部变量的作用域范围大

B)静态类别变量的生存期贯穿于整个程序的运行期间

C)函数的形参都属于全局变量

D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值

(14)以下选项中合法的用户标识符是B

A)long

B)_2Test

C)3Dmax

D)A.dat

(15)已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量"\101"是 A

A)字符A

B)字符a

C)字符e

D)非法的常量

(16)下面对宏定义的描述中不正确的是C

A)宏不存在类型问题,宏名无类型,它的参数也无类型

B)宏替换不占用运行时间

C)宏替换时先求出实参表达式的值,然后代入形参数运算求值

D)其实,宏替换只不过是字符替代而已

(17)下列不是循环语句的是 D

A)while语句

B)do…while语句

C)for语句

D)if…else语句

(18)如果a=l,b=2,c=3,d=4,则表达式a

A)1

B)2

C)3

D)4

(19)有关构造函数的说法中错误的是D

A)构造函数名字和类的名字一样

B)构造函数在说明类变量时自动执行

C)构造函数无任何函数类型

D)构造函数有且只有一个

(20)以下有关析构函数的叙述不正确的是B

A)一个类只能定义一个析构函数

B)析构函数和构造函数一样可以有形参

C)析构函数不允许有返回值

D)析构函数名前必须冠有符号“~“

(21)以下关于静态成员变量的叙述不正确的是D

A)静态成员变量为类的所有对象所公有

B)静态成员变量可以在类内任何位置上声明

C)静态成员变量的赋初值必须放在类外

D)定义静态成员变量时必须赋初值

(22)若执行下面的程序时,从键盘上输入3和4,则输出结果是 B main()

{

A)14

B)16

C)18

D)20

(23)以下程序不用第三个变量实现将两个数进行对调的操作,划线处应为B

A)a+b

B)a-b

C)b*a

D)a/b

(25)如下程序的输出结果是C

A)O

B)1

C)2

D)3

(26)有以下程序段A

intk=O:

while(k=1)k++;

while循环执行的次数是

A)无限次

B)有语法错,不能执行

C)一次也不执行

D)执行1次

(27)以下程序的输出结果是B

main()

A)1234

B)123

C)12

D)1

(28)设有数组定义:chararray[]=”China”;贝4数组array所占的空间为C

A)4个字节

B)5个字节

C)6个字节

D)7个字节

(29)以下程序的输出结果是D

A)20

B)24

C)25

D)15

(30)有以下程序A

执行后输出结果是

A)7

B)6

C)8

D)无确定值

填空

(3)在面向对象的程序设计中,用来请求对象执行某一处理或回答某些信息的要求称为消息

(4)程序的测试方法分为静态分析和动态分析。使用测试用例在计算机上运行程序,使呈序在运行过程中暴露错误,这种方法称为动态分析

(6)执行”cout<

(7)十进制28和3.26的类型分别是int和double

(8)假定一个二维数组的定义为”inta[3][5];”,则该数组所含元素的个数为15,所占的

字储空间的字节数为60

(9)假定要动态分配一个类型为Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句是Worker*r=newWorker[n]

(1O)将关键字const写在函数头之后,函数体之前,说明该函数是一个const成员函数。

比时const不是指定函数的返回值,而是修饰this指针。

(11)若要在程序文件中进行标准输入输出操作,则必须在开始的#include命令中使用

头文件iostream

(12)下列程序的输出结果为良好优秀良好

(14)下列程序的执行结果是20

C++程序设计试题(上)样卷(卷面50分)

(考试用时90分钟)

一、选择题(每题1分,共5分)

1.对于面向对象的程序设计(OOP)和过程性(SP)的程序设计,那些说法是正确的

B 。

A.面向对象的程序设计和过程性程序设计是两个独立的程序设计范型。

B.面向对象的程序设计和过程性程序设计不是两个独立的程序设计范型,前者包含后者。

将两者分开并列是不妥的。

C.面向对象是编程的总体框架,而过程性是编写解决具体问题的程序段的工具。

D.面向对象只是一种语法现象,而过程性程序设计才是编程的工具。

2.下面有关函数调用的说法哪一个是错误的 C 。

A.实参与形参的数目要求必须是相同的。

B.实参与形参的对应关系取决于位置而不是名字。

C.实参与对应的形参应类型匹配,即实参的类型可以转化为形参类型。

D.C++有两种调用方式:传值与引用。

3.C++中表示字符A的正确方法是 D 。

A.’\65’ B.”A” C.65 D.’A’

4.有关函数重载的要求哪一个是正确的 D 。

A.必须保证参数类型和返回值类型均不同。

B.必须保证返回值类型不同。

C.必须保证参数的数量不同。

D.必须保证参数类型或数量不同。

5.下列有关枚举类型的说明哪些是错误的? C

A.枚举常量(或称枚举成员)是以标识符形式表示的整型量。

B.默认状态下,这个整数就是所列举元素的序号,序号从0开始。

C.类型定义时可以为部分或全部枚举常量指定整数值,其余的枚举常量仍按默认方式取值。D.各枚举常量的值可以重复,但各枚举常量标识符必须不同。

二、简答题(每题1分,共5分)

1.什么是逻辑表达式的求值优化?举例说明。

答、在求逻辑表达式值的过程中,一旦表达式的值能够确定,就不再逐步进行下面的运算。例如,假定a=2, b=0, c=3,逻辑表达式:a||b++||c--

因a为非0整数,表达式的值立即可以确定为true,后面的运算b++和c--不再进行,最后b仍为0,c仍为3。

2.下面4个类定义中,是否有错?如有错请说明错在哪里。

(1) class Square{

private:

int upper_left_x, upper_left_y;

int side_length;

public:

void Square(int x=0,int y=0,int len=2);

~Square();

int draw();

};

(2) class Circle{

private:

register int atom_x,atom_y;

auto int radius;

public:

Circle(int x=0,int y=0,int radius=3);

~ Circle();

int darw();

};

(3) class Figure{

public:

Figure();

~ Figure(bool have_drawn);

};

(4) class Line{

private:

int start_x=0,start_y=0;

int end_x=0,end_y=0;

public:

int draw();

int is_on_line(int x,int y);

};

答案:(1)构造函数无函数返回类型说明。

(2)定义类时成员数据不分配内存,不可加存储类型说明。

(3)析构函数是无参函数。

(4) 定义类时成员数据不分配内存,不可赋初值。

三、阅读程序段(每题4分,共16分)

1.以下是运输公司对所运货物计费的程序。

设每公里每吨的基本运费为p,货物重量为w,总运输里程在某段中的里程为Δs,折扣为d,

则该段运费为:p*w*Δs*(1-d)。总费用为各段费用之和,采用不加break的switch语句。

int main(){

int c,s,s1;

double p,w,d,f;

cout<<"输入运输单价p,重量w和里程s:"<

cin>>p>>w>>s;

s1=s;

f=0;

c=s/250;

switch(c){

default:d=0.15;f+=p*w*(s-3000)*(1-d);s=3000;

case 8: case 9: case 10: case 11: d=0.1;f+=p*w*(s-2000)*(1-d);s=2000;

case 4: case 5: case 6: case 7: d=0.08;f+=p*w*(s-1000)*(1-d);s=1000;

case 2: case 3: d=0.05;f+=p*w*(s-500)*(1-d);s=500;

case 1: d=0.02;f+=p*w*(s-250)*(1-d);s=250;

case 0: d=0;f+=p*w*s*(1-d);

}

cout<<"运输单价:"<

cout<<"折扣后运费:"<

return 0;

}

运输公司是怎样分段的?并给出各段的折扣率。,设输入运输单价、重量和里程为0.5 40 4300,输出结果是什么?

答:分段与运费打折情况如下:

s<250 不打折扣

250<=s<500 2%折扣

500<=s<1000 5%折扣

1000<=s<2000 8%折扣

2000<=s<3000 10%折扣

3000<=s 15%折扣

输出结果:

运输单价:0.5 重量:40 里程:4300

折扣后运费:77900

2.下面的程序演示静态局部变量的应用。请写出程序运行的输出结果。

void tripe_it(int);

void main(){

int i;

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

tripe_it(i);

return;

}

void tripe_it(int i){

static int total = 0; // local and static

int ans; // local and automatic

ans=i*3;

total+=ans;

cout<<"Sum of 1*3 to "<

return ;

}

答:Sum of 1*3 to 1*3 is 3

Sum of 1*3 to 2*3 is 9

Sum of 1*3 to 3*3 is 18

Sum of 1*3 to 4*3 is 30

3.写出以下程序中递归函数求解的数学式。

#include

using namespace std;

double P(int n,double x){

if (n==0) return 1;

if (n==1) return x;

return ((2*n-1)*x*P(n-1,x)-(n-1)*P(n-2,x))/n;

}

int main(){

cout<<"P(4,1.5)="<

return 0;

}

4.给出输出的结果。

void swap(int &,int &);

int main(){

int i=3,j=5;

swap(i,j);

cout<<"i="<

cin>>n;

s= f(n) ;

cout<<"The result is "<

return 0;

}

int f(int n){ //递归法求平方和函数

if ( n==1 ) return 1;

else return ( n*n+f(n-1) );

}

2.若一头小母牛从出生第四个年头开始每年生一头母牛,按此规律,第n年时总共会有多少头母牛。采用递推算法。

void main(){

int n,i;

long a=0, b=0, c=0, d=1,temp;

//a是3岁及以上母牛数,b是2岁,c是1岁,d是0岁

cout <<"请输入年数n: ";

cin >>n;

cout<

for(i=1; i

a+=b ; //第n年时,3岁及以上母牛数

b=c ; //第n年时,2岁母牛数

c=d ; //第n年时,1岁母牛数

d=a ; //第n年时,新生牛数

}

cout <<"第n年总共有"<< a+b+c+d <<"头母牛。"<

}

3.在矩形类中重载关系运算符>=,采用友元,比较的依据是矩形面积的大小。重载算术运算符+=,采用成员函数,更新矩形对象,其长与宽,分别添上形参矩形的长与宽。重载算术运算符+,利用构造函数,采用友元。

class CRect{

int length,witdth;

public:

CRect(int l,int w){

length=l;

width=w;

}

friend int operator>=( CRect& r1, CRect& r2){

return (12) >= (13) ; //比较面积}

void operator+=( CRect& r){

(14) ; //求长

(15) ; //求宽

}

friend operator+( CRect& r1, CRect& r2){

return CRect( (16) ); //利用构造函数}

}

解: r1.length*r1.width (13) r1.length*r1.width

(14) length+=r.length (15) width+=r.width

(16) r1.length+r2.length, r1.width+r2.width

一、单项选择题(每题1分,共20分)

1. C语言规定:在一个源程序中,main函数的位置( C )。

A. 必须在最开始

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

C. 可以任意

D. 必须在最后

2. 下面四个选项中,均是合法浮点数的选项是( B )。

A. +1e+1 5e-9.4 03e2

B. -.60 12e-4 -8e5

C. 123e 1.2e-.4 +2e-1

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

3. 若a=-14,b=3,则条件表达式 a

A. -14

B. -13

C. 3

D. 4

4. 已知:int n,i=1,j=2;执行语句n=i

A. 1,2

B. 1,3

C. 2,2

D. 2,3

5. 为了判断两个字符串s1和s2是否相等,应当使用( D )

A. if (s1==s2)

B. if(s1=s2)

C. if (strcmp(s1,s2))

D. if (strcmp(s1,s2)==0)

6. 以下正确的描述是( B )。

A. 函数的定义可以嵌套,但函数的调用不可以嵌套。

B. 函数的定义不可以嵌套,但函数的调用可以嵌套。

C. 函数的定义和函数的调用均不可以嵌套。

D. 函数的定义和函数的调用均可以嵌套。

7. 在C语言中,下面对函数不正确的描述是( D)。

A. 当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变。

B. 允许函数递归调用。

C. 函数形参的作用范围只是局限于所定义的函数内。

D. 子函数必须位于主函数之前。

8. 如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是( A)。

A. 该变量只在该复合语句中有效

B. 该变量在该函数中有效

C. 该变量在本程序范围内均有效

D. 该变量为非法变量

9. 以下正确的函数形式是( D )。

A. double fun(int x,int y) { z=x+y;return z;}

B. fun(int x,y) { int z; return z;}

C. fun(x,y) { int x,y; double z; z=x+y; return z;}

D. double fun( int x,int y) {double z; z=x+y; return z; }

10. 以下程序的输出结果是( B )。

#include

#define F(y) 8.19-y

#define PRINT(a) printf("%d",(int)(a))

void main(void)

{

int x=2;

PRINT(x*F(3));

}

A. 10

B. 13

C. 11

D. 报错

11. 以下程序中编译和运行结果均正确的一个是( C )。

A. A. void main(void)

{

union

{

int n;

float x;

} comm={1};

printf("%d",comm.n);

}

B. B. void main(void)

{

union

{

int n;

float x;

} comm={12.5};

printf("%f",comm.x);

}

C. C. void main(void)

{

union

{

float x;

int n;

} comm={12.5}

printf("%f",comm.x);

}

D. D. void main(void)

{

union

{

int n;

float x;

} comm=5;

printf("%d", comm.n);

}

12. 设有定义:int a=1,*p=&a; float b=2.0; char c='A'; 以下不合法的运算是( A)。

A. p++;

B. a--;

C. b++;

D. c--;

13. 以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( B )。main()

{

int *p,*q,a,b;

p=&a;

printf("input a:");

scanf("%d",*p);

}

A. *p表示的是指针变量p的地址

B. *p表示的是变量a 的值,而不是变量a的地址

C. *p表示的是指针变量p的值

D. *p只能用来说明p是一个指针变量

14. 若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32);后num的值为( C )。

A. 4

B. 16

C. 32

D. 52

15. 已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是( C ),(注: _ 表示空格)

int al,a2,char c1,c2;

scanf("%d%c%d%c",&a1,&c1,&a2,&c2);

A. 10A_20_B

B. 10_A_20_B

C. 10A20B

D. 10A20_B

16. 若有说明:int a[10]; 则对a数组元素的正确引用是(C )。

A. a[10]

B. a[3.5]

C. a[5-3]

D. a[-1]

17. 在C语言中, 一维数组的定义方式为类型说明符数组名;( A)

A. [整型常量表达式]

B. [表达式]

C. [整型常量]

D. [整型表达式]

18. 以下能对一维数组a进行正确初始化的语句是( C )。

A. in a[10]=(0,0.0,0,0);

B. int a[10]={};

C. int a[]={0};

D. int a[10]={10*1};

19. 以下程序段( C )。

x=-1;

do

{

x=x*x;

}

while(! x);

A. 是死循环

B. 循环执行二次

C. 循环执行一次

D. 有语法错误

20. 以下关于do-while循环的不正确描述是( B )。

A. do-while的循环体至少执行一次

B. do-while循环由do开始,用while结束,在while(表达式)后面不能写分号

C. 在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作

D. do-while的循环体可以是复合语句

二、是非判断题(每题1分,共15分)

1. C语言规定,标识符中的字母一般区分大、小写。T

2. 控制台标准输入设备一般是指键盘。T

3. 使用while和do-while循环时,循环变量初始化的操作应在循环语句之前处理。T

4. 循环体中continue语句的作用是结束整个循环的执行。F (结束本次循环)

5. 关系表达式的值是0或1。T

6. 若有说明:int a[3][4]={0},则只有元素a[0][0]可得到初值0。 T

7. 字符串作为一维数组存放在内存中。T

8. 字符数组中的一个元素存放一个字符T。

9. 字符数组中的最后一个字符必须是'\0'。F

10. 形参为指针变量时,实参必须是数组名。 F

11. 用数组名作函数参数时传递的是数组的值。 F

12. 全局变量可以被任何一个函数中的任何一个表达式使用。T

三、多项选择题(每题1分,共5分)

1. 若要求在if 后一对圆跨括号中表示a不等于0的关系,则不能正确表示这一关系

的表达式为( ABC ).

A.a<>0

B.!a

C.a=0

D.a

E.a!=0

2. 选出所有合法的常量( CEGIJ )。

A.3e22.5

B.-e-3

C.-.1e-1

D.'BASIC'

E.'\045'

F.0fd

G.0xfdaL

H.e8

I.'\\'

J."\""

3. 以下关于函数原型说法错误的是: (ADFHI)

(1)对变量的定义”和“声明”是一回事,对函数的“定义”和“声明”也是一回事。

(2)在声明函数原型时,允许只写出参数的类型,而不必写出参数的名称。

(3)如果在定义函数时不指定函数类型,系统会隐含指定函数类型为int型。

(4)调用一个函数时,函数名、实参个数、实参类型必须与函数原型一致。

(5)如果被调函数的定义出现在主调函数之前,可以不必加以声明。

(6)所有的函数之间可以互相调用。

(7)在C语言中,所有函数都是平行的,一个函数不能从属于另一个函数,即不能嵌套定义的。

(8)如果函数没有返回值,在定义时可以省略函数类型。

(9)在C语言中,任何函数的定义都不允许为空。

(10)C语言规定,实参变量对形参变量的数据传递是“值传递”。

4. 请从下面关于指针的叙述中, 选出5个正确的叙述。(ABDEH)

(1)指针即地址。

(2)指针须先赋值后使用。

(3)当指针p指向数组a的首址后,由于p和a都能引用数组元素,所以这里p和a是等价的。

(4)int *p表示定义了一个指向int类型数据的指针变量p。

(5)数组的指针是指数组的起始地址。

(6)若有定义int a[4],*p=a,则p++后p指向数组a所占内存的第二个字节。

(7)使用指针变量作函数参数采取的是"值传递"的方式。

(8)相同类型的指针可以进行减法运算。

(9)指针变量和许多变量一样可以进行四则运算。

(10)指针p指向数组元素a[2],若要其指向a[4],执行p=p*2即可。

5. 以下关于数组的叙述中,5个最确切的说法是: (BEGHI )

(1)在声明一个数组变量时必须指定大小。

(2)必须用常量表达式来说明一个数组变量的大小。

(3)在对数组进行初始化时大括号中的数据个数必须和数组的大小相同。

(4)有变量定义int a[3]={0,1,2},b[3];,可以用b=a,使数组b的每个元素和a的每个元素相等。

(5)在C语言中,可以将字符串作为字符数组来处理。

(6)定义了字符数组char c[11];为了给它赋值,可以用c="china";。

(7)如果有char s[15]={"I am a\0 student"};,则strlen(s)的值为6。

(8)C语言中,二维数组中元素排列的顺序是:按行存放。

(9)在C语言中,不能对局部的数组变量进行初始化。

(10)在声明时对数组进行进行初始化必须指定数组大小。

四、程序运行结果题(每题4分,共20分)

1. (4分)

下面程序的运行结果是( t*M ) 。

#include

void main(void)

{

int i;

char a[]="Time",b[]="Tom";

for(i=0;a!='\0'&&b!='\0';i++)

if (a==b)

if (a>='a' && a<= 'z') printf("%c",a-32);

else printf("%c",a+32);

else printf("*");

}

2. (4分)

下面程序段的运行结果是( 8 ) 。

i=1;s=3

do

{

s+=i++;

if (s%7==0) continue;

else ++i;

} whlie(s<15);

printf("%d",i);

3. (4分)

若运行时输入:5999,则以下程序的运行结果(保留小数点后一位)是( 3635.4 )。void main(void)

{

int x;

float y;

scanf("%d",&x);

if (x>=0 && x<=2999) y=18+0.12 * x;

if (x>=3000 && x<=5999) y=36+0.6*x;

if (x>=6000 && x<=10000) y=54+0.3*x;

printf("%6.1f",y);

}

4. (4分)

以下程序的运行结果是( 6 8 10 )。

void main(void)

{

int a=1,k;

for(k=0;k<3;k++) printf("%4d",f1(a))

}

int f1(int x)

{

static int z=3,y=0;

y++;

z++;

return(x+y+z);

}

五、程序填空题(每题2分,共20分)

1.下面程序的功能是用公式:π×π/6=1/(1×1)+1/(2×2)+1/(3×3)+......

求π的近似值, 直到最后一项的值小于10e-6为止。

#include

#include

void main(void)

{

long i=1;

double pi=0;

while (i*i<=10e+6) { pi=pi+1.0/(i*i) ; i++; }

pi=sqrt(6.0*pi);

printf("pi=%10.6f\n",pi);

}

2. 下面程序的功能是把以下给定的字符按其矩阵格式读入数组str1中,并输出行列号之和是3的数组元素。

void main(void)

{

char str1[4][3]={'A','b','C','d','E','f','G','h','I','j','K','i'

};

int x,y,z;

for(x=0;x<4;x++)

for(y=0; y<3;y++)

{

z=x+y;

if (z==2) printf("%c\n",str1[x][y]);

}

}

3. 以下程序的功能是用递归方法计算学生的年龄,已知第一位学生年龄最小,为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。

递归公式如下:

age(1)=10

age(n)=age(n-1)+2 (n>1)

#include

int age(int n)

{

int c;

if (n==1) c=10;

else c=age(n-1)+2

return c;

}

4. 以下程序的功能是判断输入的年份是否是闰年。

void main(void)

{

int year,yes;

scanf("%d",&year);

if (year%400==0) yes=1;

else if (year%4==0&&yeaar%100!=0 ) yes=1;

else yes=0

;

if(yes) printf("%d is ",year);

else printf("%d is not ",year);

printf("a leap year.\n");

}

5. 以下程序实现: 输入三个整数,按从大到小的顺序进行输出。

void main(void)

{

int x,y,z,c;

scanf("%d %d %d",&x,&y,&z);

if ( z>y) { c=y;y=z;z=c;}

if ( z>x) { c=x;x=z;z=c;}

if ( y>x) { c=x;x=y;y=c;}

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

}

一、单选题(每小题2分,共12分)

1.设x和y均为boo1量,则x&&y为真的条件是( A )。

A.它们均为真 B.其中一个为真

C.它们均为假 D.其中一个为假

2.设x和y均为bool量,则x||y为假的条件是( C )。

A.它们均为真 B.其中一个为真

C.它们均为假 D。其中一个为假

3.声明或定义一个内联函数时,必须在函数开始使用保留宇( C )。

A. static B.const

C. inline D。extern

4.在下面的函数声明中,存在着语法错误的是( D )。

A.BC(int a, int); B. BC(int,int);

C. DC(int,int=5); D. BC(int x; inl y);

5.假定AB为一个类,则执行“ABa(4),b[5],*p[2]:”语句时,自动调用该类构造函数的次数为( A )。

A.6 B.7

C. 9 D. 11

6.假定AB为一个类,px为指向该类动态对象数组的指针,该数组长度为n,则执行

“del ete[]px;”语句时,自动调用该类析构函数的次数为( B )。

A.1 B.n

C n—l D.n+l

二、填空题(每小题2分,共24分)

7.已知’A’一’Z’的ASCII码为65—90,当执行"charch=14*5+2;cout<

8.float和double类型的长度分别为 4 和8。

9.表达式x=x+l表示成增量表达式为 ++x 。

10.关系表达式x+y>5的相反表达式为x+y<=5

11.假定一个二维数组的定义为“int a[3][6];”,则该数组所含元素的个数为18存储空间的字节数为72

12.执行“typedef int ABC[20];”语句把ABC定义为具有20个整型元素的数组类型

13.假定p所指对象的值为36,p+l所指对象的值为49,则*++p的值为49

14.假定a是一个二维数组,则 a[i][i]的指针访问方式为*,(a[i]+”或*(*(a+i)十j)

15.假定要访问一个结构对象x中的由a指针成员所指向的对象,则表示方法为 *(x。a)

16.对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构造函数中的函数体实现。

17.当一个类对象离开它的作用域时,系统将自动调用该类的析构函数

18.假定AB为一个类,则执行"ABa[8];”语句时,系统自动调用该类构造函数的次数为 8

三、给出下列程序运行后的输出结果(每小题6分,共30分)

19. #include

void SB(char ch) {

switch(ch) {

case "A": case "a":

cout<<"well !"; break;

case "B": case "b"

cout<<"good !"; break;

case "C": case "c":

c语言期末复习试题(附答案)

试卷编号:11201 所属语言:C语言 试卷方案:C语言期末考试 试卷总分:100分 共有题型:4种 一、单项选择共30题(共计60分) 第1题(2.0分) 设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( A ). A:k++ B:k+=1 C:++k D:k+1 第2题(2.0分) 已知int i=5,执行语句i+=++i后, i的值是( C). A:10 B:11 C:12 D:A、B、C都不对 第3题(2.0分) 以下程序的功能是:给r输入数据后,计算半径为r的圆面积s.程序在编译时出错. #include void main( ) /* Beginning */ { int r; float s; scanf("%d",&r); s=p*r*r; printf("s=%f\n",s); 出错的原因是(D ). A:注释语句书写位置错误 B:存放圆半径的变量r不应该定义为整型

C:输出语句中格式描述符非法 D:计算圆面积的赋值语句中使用了非法变量 第4题(2.0分) "\\\″ABC\″\\″的长度是( B ). A:11 B:7 C:5 D:3 第5题(2.0分) 已知int j,i=1;,执行语句j=–i++;后,j的值是( C ). A:1 B:2 C:-1 D:-2 第6题(2.0分) 有以下程序: #include void main( ) { int s=0, a=1, n; scanf("%d", &n); do{ s+=1; a=a–2; }while(a!=n); printf("%d\n", s); } 若要使程序的输出值为2,则应该从键盘输入给n的值是( B ). A:-1 B:-3

江苏大学大一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期末考试试题及答案完整版

c期末考试试题及答案 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

AutoCAD 试卷 一、 单项选择 1、AutoCAD 默认扩展名是 A 、dwt B 、dwg C 、bak D 、dxf 答案:B 2、在CAD 中,以下哪个命令可用来绘制横 平竖直的直线 A 、栅格 B 、捕捉 C 、正交 D 、对象捕捉答案:C 3、按哪个键可切换文本窗口和绘图窗口 A 、F2 B 、F8 C 、F3 D 、F5答案:A 4、默认情况下,命令提示行显示为几行 A 、3 B 、5 C 、2 D 、8答案:A 5、在CAD 中为一条直线制作平行线用什么命令 A 、移动 B 、镜像 C 、偏移 D 、旋转答案:C 6、在图层特性管理器中不可以设定哪项 A 、颜色 B 、页面设置 C 、线 宽 D 、是否打印答案:B 7、绘制建筑图步骤为 A 、墙线、轴线、门窗 B 、墙线、 门窗、轴线 C 、轴线、门窗、墙线 D 、轴线、 墙线、门窗答案:D 8、哪个命令可用于绘制直线与圆弧的复合 体 A 、圆弧 B 、构造线 C 、多段线 D 、样条曲线答案:C 9、如何在图中输入“直径”符号 A 、%%P B 、%%C C 、%%D D 、%%U 答案:B

10、如果要在一个圆的圆心写一个“A”字,应使用以下哪种对正方式 A、中间 B、对齐 C、中心 D、调整答案:A 11、在哪个层创建的块可在插入时与当前层特性一致 A、0层 B、在所有自动产生的层 C、所有图层 D、新建的图层答案:A 12、一个完整的尺寸由几部分组成 A、尺寸线、文本、箭头 B、尺寸线、尺寸界线、文本、标记 C、基线、尺寸界线、文本、箭头 D、尺寸线、尺寸界线、文本、箭头 答案:D 13、要将图形中的所有尺寸都为原有尺寸的2倍,应设定以下哪项A、文字高度 B、使用全局比例 C、测量单位比例 D、换算单位 答案:B 14、三维模型中哪种模型可以进行布尔运算 A、线框模型 B、实心体模型 C、表面体模型答案:B 15、渲染三维模型时,哪种类型可以渲染出物体的所有效果 A、一般渲染 B、普通渲染 C、照片级真实感渲染 D、照片级光线跟踪渲染答案:D 16、样板文件的括展名是 A、BAK B、SVS C、DWT D、DWG 答案:C 17、以下哪种相对坐标的输入方法是画8个单位的线长 A.8, 0 B.@0,8 C.@0<8

数据结构c语言版期末考试复习试题

《数据结构与算法》复习题 一、选择题。 1在数据结构中,从逻辑上可以把数据结构分为 C 。 A ?动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构 2?数据结构在计算机内存中的表示是指_A_。 A .数据的存储结构B.数据结构 C .数据的逻辑结构 D .数据元素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的A结构。 A .逻辑 B .存储C.逻辑和存储 D .物理 4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储_C A .数据的处理方法 B .数据元素的类型 C.数据元素之间的关系 D .数据的存储方法 5.在决定选取何种存储结构时,一般不考虑A A .各结点的值如何C.对数据有哪些运算 B .结点个数的多少 D .所用的编程语言实现这种结构是否方 6.以下说法正确的是D A .数据项是数据的基本单位 B .数据元素是数据的最小单位 C.数据结构是带结构的数据项的集合 D .一些表面上很不相同的数据可以有相同的逻辑结构 7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。 (1) A .找出数据结构的合理性B.研究算法中的输入和输出的关系 C .分析算法的效率以求改进C.分析算法的易读性和文档性 (2) A .空间复杂度和时间复杂度B.正确性和简明性 &下面程序段的时间复杂度是0( n2) s =0; for( I =0; i

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期末考试题及答案 Revised at 2 pm on December 25, 2020.

一、填空题(每空0.5分,共30分) 1、世界坐标系简称__WCS_用户自定义坐标系简称__UCS_。 2、工作空间的切换:“工具”/“工作空间”或“工作空间”工具栏。 3、工具栏包括30种,系统默认的显示工具栏包括:“标准”、“属性”、“绘图”和“修改”等工具栏。 4、多线的对正方式有_上(T)_、_无(Z)_和_下(B)_。 5、文字标注包括标注单行文字和标注多行文字。 6、渲染环境是指在渲染对象时进行的雾化和深度设置。 7、漫游和飞行用户可以通过键盘和鼠标来控制视图显示,并创建导航动画。 8、编辑实体的边的种类:压印边、复制边、着色边。 9、动态块是通过自定义夹点或自定义特性定义的块。在图形中使用动态块,用户可以随时对组成块的对象进行修改。 10、三维实体是具有体积、质量、重心、回转半径、惯性距等特征的三维对象。 11、在AutoCAD 2007中,用户可以创建的光源有电光源、聚光灯光源和平行光光源。 12、相切、相切、半径法是指:通过指定圆的两个切点和半径来绘制圆。 13、绘制圆环的步骤中,先输入圆环的内径和外径,后确定圆环的中心点。 14、计算机辅助设计是:工程技术人员在CAD系统的辅助下,根据产品的设计程序进行设计的一项新技术。 15、菜单栏包括11种,每一种菜单中都含有四种显示情况:命令后跟右三角 、后跟省略号、后跟快捷键或功能键或命令呈灰色。 16、要对图形对象进行编辑就必须选中图形对象,在AutoCAD 2007中,选择对象的方法很多,常用的有_直接拾取_、矩形框选择_、_不规则区域选择_和快速选择。 17、在设置显示精度时,如果设置的精度越高,即分辨率就越高,计算机计算的时间 也越长,显示图形的速度也就越慢。 18、三维基本实体的种类包括:多段体、长方体、楔体、圆柱体、圆锥体、球体、圆环体、棱锥面。 19、布尔运算中只留重复的一部分的运算是交集运算。从一个图形中去掉与另一个图形重复部分的运算是差集运算。

C期末考试复习题理工

一、单项选择题 ( 本大题共 10 小题,每小题 2 分,共 20 分) 1. 在C++中,函数原型不能标识(D ) A. 函数的返回类型 B.函数参数的个数 C.函数参数类型 D.函数的功能 2. 在C++程序中,对象之间的相互通信通过(B ) A. 继承实现 B.调用成员函数实现 C.封装实现 D.函数重载实现 3. 对于任意一个类,析构函数的个数最多为 (B ) 5. 友元关系不能 (A ) A. 继承B.是类与类的关系C.是一个类的成员函数与另一个类的关系 D.提高程序的运行效率 6.语句ofstream f ’,ios::a pp | ios::b in ary) ?的功能是建立流对象f,试图打开文件 并 与 之连接,并且 (A ) 将文件写指针定位于文件尾;若文件不存在,建立一个新文件 7.下面说法正确的是 (B ) A. 内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B. 内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C. 类的内联函数必须在类体内定义 D. 类的内联函数必须在类体外通过加关键字 inline 定义 以用 的形式访问派生类对象P 的基类成员a ,其中a 是(D ) A.私有继承的公有成员 B.公有继承的私有成员 C.公有继承的保护成员 D.公有继承的公有成 公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是 ( C) A. 派生类的对象可以赋给基类的对象 B. 派生类的对象可以初始化基类的引用 的指针 A.若文件存在, B. 若文件存在, 将其置为空文件;若文件不存在,打开失败 C. 若文件存在, 将文件写指针定位于文件首;若文件不存在,建立一个新文件 D. 若文件存在, 打开失败;若文件不存在,建立一个新文件 C. 派生类的对象可以直接访问基类中的成员 D. 派生类的对象的地址可以赋给指向基类

大一C语言期末考试题

大一C语言期末考试题 悬赏分:40 |解决时间:2010-6-29 14:28 |提问者:345387547 1. 数组int a[3][5]; 共定义了____15_________个元素。 2. 有float f= 3.1415927; 则printf(“%5.4f”, f );输出的结果是 _______________。 3. 下面程序的功能是:输出100以内(不包含100)能被3整除且个位数为6的所有整数,请填空。 main( ) { int i; for(i=1; ___i<100____________; i++) if (___i/3_=__=0__i_______) printf("%d", i); } 4. 设有“int x=2, y”说明,则逗号表达式“y=x+5,x+y”的值是_________7 ______ 5. 以下是使用指针,进行字符串复制的程序,请填空。 main() { char a[]= “Tsinghua University”, b[30], *p1,*p2; p1=a; p2=b; for(; *p1!= _______________; p1++, p2++) _______________=_______________; *p2= ______________; printf(“string a is:%s\n”,a); printf(“string b is:%s\n”,b); } 6. 下面程序用冒泡法对数组a进行降序排序,请填空。 main() { int a[5]={4,7,2,5,1}; int i,j,m; for(i=0;i<4;i++) for(j=0;j<_______________;j++) if( _______________< _______________ ) { m=a[ j]; a[ j]=a[ j+1]; a[ j+1]= m; } for(i=0;i<5;i++) printf("%d ",a[i]); } 7. 函数fun的功能是:使一个字符串按逆序存放,请填空。 void fun (char str[]) { char m; int i,j; for(i=0,j=strlen(str);i<_______________;i++,j--)

C期末考试题及答案

一、选择填空题(共20小题,每小题2分,共40分)。 1. 关于C++与C语言关系的描述中,(D)是错误的。 语言是C++语言的一个子集 语言与C++语言是兼容的 ++语言对C语言进行了一些改进 ++语言和C语言都是面向对象的 2.按照标识符的要求,(A)符号不能组成标识符。 a.连接符 b.下划线 c.大小写字母 d.数字字符 3. 为了避免嵌套的if-else语句的二义性,C语言规定else总是与(C)组成配对关系。 a.缩排位置相同的if b.在其之前未配对的if c.在其之前未配对的最近的if d.同一行上的if 4. 在"int a[ ][3]={{1},{3,2},{4,5,6},{0}};"中,a[2][2]的值是(C)。 5. 设"char **s;",以下正确的表达式是(B)。 ="computer"; b.*s="computer"; c.**s="computer"; d.*s='c'; 6. 对于"int *pa[5];"的描述中,(D)是正确的。 是一个指向数组的指针,所指向的数组是5个int型元素 是一个指向某数组中第5个元素的指针,该元素是int型变量

[5]表示某个元素的第5个元素的值 是一个具有5个元素的指针数组,每个元素是一个int型指针 7. 在下列表示引用的方法中,(A)是正确的。 已知:int m=10; &x=m; &y=10; &z; &t=&m; 8. 下列for循环的次数为(B)。 for(i=0, x=0; !x&&i<=5; i++) d.无限 9. 对于C/C++语言的函数,下列叙述中正确的是(A)。 a.函数的定义不能嵌套,但函数调用可以嵌套 b.函数的定义可以嵌套,但函数调用不能嵌套 c.函数的定义和调用都不能嵌套 d.函数的定义和调用都可以嵌套 10. 在一个被调用函数中,关于return语句使用的描述,(D)是错误的。 a.被调用函数中可以不用return语句 b.被调用函数中可以使用多个return语句 c.被调用函数中,如果有返回值,就一定要有return语句 d.被调用函数中,一个return语句可以返回多个值给调用函数 11. 在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( A)。 a.内联函数 b.重载函数

大学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、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键

大一C语言期末考试试题

6.以下程序的输出结果为(D)。 main( ) { char c; int i; for(i=65;i<68;i++) { c=i+32; switch(c) { case ‘a’:printf("%c,",c);break; case ‘b’:case ‘e’:printf("ok,"); default: printf("end"); } } } A a,ok,end B a,ok,endend C a,ok,end,end D a,ok,ok 9.以下程序的输出结果为(B)。 #define A 3 #define B(a) (A+1)*a main() { int x; x=3*A+B(7); printf("x=%d\n",x); } A x=93 B x=37 C x=60 D x=90 三写出下列程序的运行结果(10分,每小题2分) 1.main( ) { char c1=‘A’,c2=‘\144’,c3=‘\x44’,c=0xf5,x=13,a; int i=0122,j=0xa4; printf(“c1=%c,c4=%c\tc5=%c\n”,c1,c2,c3); printf(“%d,%d\n”,i,j); i=-34; j=20; printf(“%d,%d,%d\n”,i%j,i&j<<2,sizeof(j)); printf(“c=%d\n”,c|x); a=c^x<<2;

printf(“a=%d\n”,a); } 2.main() { int x,y=1,z=10; if(y!=0) x=5; printf(“x=%d\t”,x); x=1; if(z<0) if(y>0) x=3; else x=5; printf(“x=%d\n”,x); if(z=y<0) x=3; else if(y==0) x=5; else x=7; printf(“x=%d\t”,x); printf(“z=%d\n”,z); } 3.main( ) { char s[20]=“I like it.”,t[20]=“Are you?”,c[20]; int i=0; while(s[++i]!=‘\0’) t[i]=s[i]; t[i]=0; printf(“string s:%s\n”,s); printf(“string t:%s\n”,t); } 4.int i=5; main( ) { int i=3; { int i=10; i++; printf(“%d\n”,i);

C期末考试试卷及答案

C++期末考试试卷及答案1 一、单项选择题(每题2分,共40分) 1. ______不是属于面向对象程序设计的特性 A. 抽象性 B. 数据相关性 C. 多态性 D. 继承性 2. 将对某一类数据的处理算法应用到另一类数据的处理中,要用到C++的______ A. 类 B. 虚函数 C. 运算符重载 D. 模板 3. C++与C语言最根本的不同之处在于_______ A. 使用了类 B. 能够实现变量自动初始化 C. 支持软件重用 D. 支持接口重用 4. 动态内存分配的主要目的是_______ A. 使程序按动态联编方式运行 B. 正确合理的使用内存 C. 提高程序的运行速度 D. 提高程序的可维护性 5. 在C++函数的形参前加const关键字,是为了提高函数的_______ A. 数据封装性 B. 可理解性 C. 可维护性 D. 可重用性 6. 函数重载的目的是________ A. 实现共享 B. 使用方便,提高可读性 C. 提高速度 D. 减少空间 7. 从程序片断:char name[] = "C++"; course(name);可判断函数course的调用采用的是_______ A. 传值调用 B. 带缺省参数值的函数调用 C. 引用调用 D. 传址调用 8. 用来说明类中公有成员的关键字是________

9. 如果一个类的成员函数print()不修改类的数据成员值,则应将其声明为 A. void print() const; B. const void print(); C. void const print(); D. void print(const); 10. 下列关于构造函数的论述中,不正确的是_______ A. 构造函数的函数名与类名相同 B. 构造函数可以设置默认参数 C. 构造函数的返回类型缺省为int型 D. 构造函数可以重载 11. 在程序代码:A::A(int a, int *b) { this->x = a; this->y = b; }中,this的类型是______ A. int B. int * C. A D. A * 12. 内存泄漏是指_______ A. 内存中的数据出现丢失 B.试图释放一个已经释放了的动态分配的堆内存 C. 函数中局部变量所占的栈内存没有及时回收 D. 动态分配的堆内存在程序退出后始终被占用 A. 私有成员数据 B. 私有成员函数 C. 公有成员数据 D. 公有成员函数 14. 友元函数_______ A. 可以被声明为const B. 没有this指针 C. 可以用类名或对象名来调用 D. 只能用对象名来调用 15. 若一个类的成员函数前用static关键字修饰,则该成员函数________ A. 可以被声明为const B. 没有this指针 C. 可以访问该类的所有成员 D. 只能用对象名来调用 16. C++是用_______实现接口重用的

C期末考试复习题理工

一、单项选择题(本大题共10 小题,每小题2 分,共20 分) 1.在C++中,函数原型不能标识(D ) A.函数的返回类型 B.函数参数的个数 C.函数参数类型 D.函数的功能 2.在C++程序中,对象之间的相互通信通过(B ) A.继承实现 B.调用成员函数实现 C.封装实现 D.函数重载实现 3.对于任意一个类,析构函数的个数最多为(B ) A.0 B.1 C.2 D.3 5.友元关系不能(A ) A.继承 B.是类与类的关系 C.是一个类的成员函数与另一个类的关系 D.提高程序的运行效率 6.语句ofstream f(″SALARY.DAT″,ios::app|ios::binary)?的功能是建立流对象f,试图打开文件SALARY.DAT 并与之连接,并且(A ) A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件 B.若文件存在,将其置为空文件;若文件不存在,打开失败 C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件 D.若文件存在,打开失败;若文件不存在,建立一个新文件 7.下面说法正确的是(B ) A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C.类的内联函数必须在类体内定义 D.类的内联函数必须在类体外通过加关键字inline 定义 //当程序使用内敛函数时,编译器将每个函数调用都用函数内的语句代替,这样就省去了函数调用地开销 8.可以用p.a 的形式访问派生类对象p 的基类成员a,其中a 是(D ) A.私有继承的公有成员 B.公有继承的私有成员 C.公有继承的保护成员 D.公有继承的公有成员

精选-C语言期末考试题(含答案)

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不. 相符的是( ) A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是( ) A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf(“%d,%d,%d\n ”,i,j,k);} 执行后的输出结果是( ) A )1,1,2 B )2,2,1 C )2,2,2 D )2,2,3 9、有以下程序: #include void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n ”,s);} 程序执行后的输出结果是( ) A )自然数1~9的累加和 B )自然数1~10的累加和

江苏大学大一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语言期末考试试题附答案 一选择题(7分,每小题0.5分) 1.C语言源程序的基本单位是()。 A 过程 B 函数 C 子程序 D 标识符 2.下列程序的输出结果是()。 main( ) { int a=7,b=5; printf("%d\n",b=b/a); } A 5 B 1 C 0 D不确定值 3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。 A 7 B 8 C 9 D 2 4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534; a=(int)125.521%4; a=5<<2; A 125,31,1 B 125,1,20 C 125,31,20 D 125.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 B 3 C 5 D 语法错误 9.以下程序的输出结果为()。 #define ADD(x) x*x main( ) { int a=4,b=6,c=7,d=ADD(a+b)*c;

大学C期末考试试卷(含答案)

一、单项选择题(每题2分,共40分)1-5. BDABC 6-10. BDAAC 11-15. CADBB 16-20. CADDA B 1. ______不是属于面向对象程序设计的特性 A. 抽象性 B. 数据相关性 C. 多态性 D. 继承性 D 2. 将对某一类数据的处理算法应用到另一类数据的处理中,要用到C++的______ A. 类 B. 虚函数 C. 运算符重载 D. 模板 A 3. C++与C语言最根本的不同之处在于_______ A. 使用了类 B. 能够实现变量自动初始化 C. 支持软件重用 D. 支持接口重用 B 4. 动态内存分配的主要目的是_______ A. 使程序按动态联编方式运行 B. 正确合理的使用内存 C. 提高程序的运行速度 D. 提高程序的可维护性 C 5. 在C++函数的形参前加const关键字,是为了提高函数的_______ A. 数据封装性 B. 可理解性 C. 可维护性 D. 可重用性 B 6. 函数重载的目的是________ A. 实现共享 B. 使用方便,提高可读性 C. 提高速度 D. 减少空间 D 7. 从程序片断:char name[] = "C++"; course(name);可判断函数course的调用采用的是_______ A. 传值调用 B. 带缺省参数值的函数调用 C. 引用调用 D. 传址调用 A 8. 用来说明类中公有成员的关键字是________ A. public B. private C. protected D. friend A 9. 如果一个类的成员函数print()不修改类的数据成员值,则应将其声明为 A. void print() const; B. const void print(); C. void const print(); D. void print(const); C 10. 下列关于构造函数的论述中,不正确的是_______ A. 构造函数的函数名与类名相同 B. 构造函数可以设置默认参数 C. 构造函数的返回类型缺省为int型 D. 构造函数可以重载 C 11. 在程序代码:A::A(int a, int *b) { this->x = a; this->y = b; }中,this的类型是______ A. int B. int * C. A D. A * A 12. 内存泄漏是指_______ A. 内存中的数据出现丢失 B.试图释放一个已经释放了的动态分配的堆内存 C. 函数中局部变量所占的栈内存没有及时回收 D. 动态分配的堆内存在程序退出后始终被占用 D 13. 从程序片断:student zhangsan("张三","M",22); zhangsan.id("2005131000");可判断id 是一个________ A. 私有成员数据 B. 私有成员函数 C. 公有成员数据 D. 公有成员函数

C语言期末考试复习题及答案

C语言期末考试复习题及答案 一、选择题:下列各题A)、B)、C)、D)四个选项中只有一个是正 确的,请将正确的选项涂写在答案纸上。答在试卷上不得分。 (1)C语言规定:在一个源程序中,main函数的位置 D 。 A)必须在最后B)必须在系统调用的库函数的后面。 C)必须在最开始。。D)可以任意 (2) C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 A 。 A)必须为字母或下划线。。B)必须为下划线。 C)必须为字母D)可以是字母、数字和下划线中的任一种字符。 (3)下面四个选项中,均是正确的八进制数或十六进制数的选项是 B 。 A)-10 0x8f -011 B) 010 -0x11 0xf1 C) 0abc -017 0xc D) 0a12 -0x123 -0xa (4) C语言中int型数据在内存中占两个字节,则unsegned int取值范围是 A 。 A)0 ~ 65535 B)0 ~ 32767 C)-32767 ~ 32768 D)-32768 ~ 327687 (5) 若有定义:int a = 7; floa x = , y = ; 则表达式x + a % 3 * (int) (x + y) % 2/4 的值是 D 。 A) B) 0.00000 C) D) (6)已知ch是字符型变量,下面不正确的赋值语句是 B 。 A)ch = 5 + 9 ; B) ch= ' a + b '; C) ch = ' \ 0 '; D) ch= '7' + '6' ; (7) 设x , y和z是int型变量,且x = 3, y = 4 , z = 5 则下面表达式中值为0的

大一上学期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语言期末考试_试题及答案_201

C语言期末考试试题及答案最新2012年 一、单项选择题 1. ()是合法的用户自定义标识符。 A、b-b B、float C、 D、_isw 2. 若变量已正确定义并赋值,表达式()不符合C 语言语法。 A、a*b/c; B、3.14%2 C、2, b D、a/b/c 3. ()是不正确的字符常量。 A、“ n“、B“ 1“、C“ a“、D“ 101 “ 4. 在C 程序中,用()表示逻辑值“真”。 A、1 B、非0的数 C、非1的数 D、大于0的数 5. ()把x、y 定义成float 类型变量,并赋同一初值3.14。 A、float x, y=3.14; B、float x, y=2*3.14; C、float x=3.14, y=x=3.14; D、float x=y=3.14; 6. 若变量已正确定义,表达式()的值不是2。 A、2&3 B、1?1G a==2D 1八3 7?若变量已正确定义,语句“if(a>b)k=0;else k=1和()等价。 A、k=(a>b)?1:0; B、k=a>b; C、k=a<=b; D、a<=b ? 0 : 1; 8?设变量定义为“int a, b;,执行下列语句时,输入(),则a和b的值都是10。 scanf(“ a=%d, b=%d“ ,&;a, &b) A、10 10 B、10, 10 C、a=10 b=10 D、a=10, b=10

9. 下列程序的输出结果是()。fun(int a, int b, int c) { c =a*b; } void main () { int c; fun(2,3,c); printf(” %dn” ,c); } A、0 B、1 C 6 D、无法确定 10. 在C 程序中,若对函数类型未加说明,则函数的隐含类型为()。 A、int B、double C、void D、char 11. 表达式strlen(” he的0值是)()。 A、4 B、5 C、6 D、7 12. 设变量定义为“ int a[4];,则表达式()不符合C语言语法。 A、*a B、a[0] C、a D、a++ 13. 设变量定义为“int x, *p=&x;,则&*p相当于()。 A、p B、*p C、x D、*&x 14. 若变量已正确定义,()不能使指针p成为空指针。 A、p=EOF B、p=0 C、p=''、pD=NULL 15. 对于以下的变量定义,表达式()不符合C语言语法。struct node {

相关主题
文本预览
相关文档 最新文档