文档库 最新最全的文档下载
当前位置:文档库 › C++期末考试题及答案[1]

C++期末考试题及答案[1]

C++期末考试题及答案[1]
C++期末考试题及答案[1]

一、选择填空题(共20小题,每小题2分,共40分)。

1. 关于C++与C语言关系的描述中,()是错误的。

a.C语言是C++语言的一个子集

b.C语言与C++语言是兼容的

c.C++语言对C语言进行了一些改进

d.C++语言和C语言都是面向对象的

2.按照标识符的要求,()符号不能组成标识符。

a.连接符

b.下划线

c.大小写字母

d.数字字符

3. 为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。

a.缩排位置相同的if

b.在其之前未配对的if

c.在其之前未配对的最近的if

d.同一行上的if

4. 在"int a[ ][3]={{1},{3,2},{4,5,6},{0}};"中,a[2][2]的值是()。

a.1

b.0

c.6

d.2

5. 设"char **s;",以下正确的表达式是()。

a.s="computer";

b.*s="computer";

c.**s="computer";

d.*s='c';

6. 对于"int *pa[5];"的描述中,()是正确的。

a.pa是一个指向数组的指针,所指向的数组是5个int型元素

b.pa是一个指向某数组中第5个元素的指针,该元素是int型变量

c.pa [5]表示某个元素的第5个元素的值

d.pa是一个具有5个元素的指针数组,每个元素是一个int型指针

7. 在下列表示引用的方法中,()是正确的。

已知:int m=10;

a.int &x=m;

b.int &y=10;

c.int &z;

d.float &t=&m;

8. 下列for循环的次数为()。

for(i=0, x=0; !x&&i<=5; i++)

a.5

b.6

c.1

d.无限

9. 对于C/C++语言的函数,下列叙述中正确的是(。

a.函数的定义不能嵌套,但函数调用可以嵌套

b.函数的定义可以嵌套,但函数调用不能嵌套

c.函数的定义和调用都不能嵌套

d.函数的定义和调用都可以嵌套

10. 在一个被调用函数中,关于return语句使用的描述,()是错误的。

a.被调用函数中可以不用return语句

b.被调用函数中可以使用多个return语句

c.被调用函数中,如果有返回值,就一定要有return语句

d.被调用函数中,一个return语句可以返回多个值给调用函数

11. 在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。

a.内联函数

b.重载函数

c.递归调用

d.嵌套调用

12. 使用fseek函数可以实现的操作是(。

a.改变文件指针的当前位置

b.文件的顺序读写

c.文件的随机读写

d.以上都不对

13. 下列存储标识符中,()的可见性与存在性不一致。

a.外部类

b.自动类

c.内部静态类

d.寄存器类

14. 在如下结构定义中,不正确的是()。

a.struct student

{int no;

char name[10];

float score;

};

b.struct stud[20]

{

int no;

char name[10];

float score;

};

c.struct student

{

int no;

char name[10];

float score;

} stud[20];

d.struct

{

int no;

char name[10];

float score;

}stud[100] ;

15. 将两个字符串连接起来组成一个字符串时,选用()函数。

a.strlen( )

b.strcpy( )

c.strcat( )

d.strcmp( )

16. ( )不是构造函数的特征

a.构造函数的函数名与类名相同

b.构造函数可以重载

c.构造函数可以设置缺省参数

d.构造函数必须指定类型说明

17. 已知:类A中一个成员函数说明如下:

void Set(A&a);

其中,A&的含义是( )。

a.指向类A的指针为a

b.将a的地址值赋给变量Set

c.a是类A对象的引用,用来作函数Set()的参数

d.变量A与a按位与作为函数Set( )的参数

18. 已知:print( )函数是一个类的常成员函数,它无返回值,下列表示中,()是正确的。

a.void print( ) const;

b.const void print( );

c.void const print( );

d.void print(const);

19. 关于虚函数的描述中,()是正确的。

a.虚函数是一个static类型的成员函数

b.虚函数是一个非成员函数

c.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数

d.派生类的虚函数与基类的虚函数具有不同的参数个数和类型

20. 关于new运算符的下列描述中,()是错的。

a.它可以用来动态创建对象和对象数组

b.使用它创建的对象和对象数组可以使用运算符delete删除

c.使用它创建对象时要调用构造函数

d.使用它创建对象数组时必须指定初始值

三、(6分)分析下面程序的运行结果

#include

class B

{

public:

B(){}

B(int i){b=i;}

virtual void virfun()

{

cout<<"B::virfun() called.\n";

}

private:

int b;

};

class D:public B

{

public:

D(){}

D(int i,int j):B(i){d=j;}

private:

int d;

void virfun()

{

cout<<"D::virfun() called.\n";

}

};

void fun(B *obj)

{

obj->virfun();

}

void main()

{

D *pd=new D;

fun(pd);

}

四、(9分)下面的程序可以统计命令行第一个参数中出现的字母个数,请填充下面空白,完成程序。

#include

#include

void main(int argc, argv[];)

{

char *str;

int count=0;

if(argc<2)exit(1);

str= _____;

while(*str)

if(isalpha(____ )) count++;

printf("\n字母个数:%d\n",count);

}

提示:int isalpha(int ch)函数功能是检查ch是否是字母

五、(8分)定义一个字符栈类Stack(包括类的实现)。数据成员包括一个存放字符的数组stck[ ]和一个栈指针tos。栈数组的尺寸由常量SIZE确定。栈的基本操作为Push()和Pop()。

六、(10分)完成下面的函数,对有n个元素的数组a,使数组元素按逆序排列。

void inverse(int *a, int n)

{

}

七、(12分)下面的函数统计子字符串substr在字符串str中出现的次数,如果substr 在str中不出现,则返回值0。请完成该函数。

int str_count(char *substr, char *str)

{

}

二、问答题

1、虚析构函数有什么作用?

解答要点:

对象销毁时,需要调用析构函数。在多态调用时,是用基类的指针访问派生类的对象。如果析构函数是非虚函数,则基类指针只能访问基类的析构函数,而不能访问派生类的析构函数,导致派生类对象销毁时,没有调用派生类的析构函数,只是调用了基类的析构函数。如果把析构函数定义成虚函数,则可克服这个问题。

2、拷贝构造函数在哪几种情况下调用?

解答要点:

用一个对象初始化另一个对象时

当用对象作为函数参数传递时

当函数返回对象时

3、函数重载与函数覆盖有什么不同,它们与多态有什么关系?

解答要点:

函数重载是指函数名相同,而函数的参数个数或类型不同;覆盖是指在派生类中成员函数与基类成员函数的函数名、参数个数、类型与返回值均相同;C++中正是通过虚函数的覆盖,实现多态的功能。

4、 C++继承是如何工作的?

答:继承使得派生类能够使用基类的公有和保护成员,从而实现代码的复用,派生类可以增加成员,也可以隐藏和覆盖基类的成员。对于公有继承,基类成员的访问权限在派生类保持不变。

5、类与对象有什么区别?

答:类是类型,是对象的抽象,对象是类的具体实例。一个类可以有多个对象,每个对象都有自己的存储单元,而类不占存储单元。

三、运行结果为: D::virfun() called.

四、填空

① char * ② argv[1] ③ *str++

五、(8分)定义一个字符栈类Stack(包括类的实现)。数据成员包括一个存放字符的数组stck[ ]和一个栈指针tos。栈数组的尺寸由常量SIZE确定。栈的基本操作为Push()和Pop()。

const int SIZE=27;

class Stack

{

public:

Stack():tos(0){};

void Push(char ch);

char Pop();

private:

char stck[SIZE];

int tos;

};

void Stack::Push(char ch)

{

if(tos==SIZE)

cout<<"\nStack is full\n";

else{

stck[tos]=ch;tos++;

}

}

char Stack::Pop()

{

if(tos==0){

cout<<"\nStack is empty\n";

return 0;

}

tos--;

return stck[tos];

}

六、(10分)完成下面的函数,对有n个元素的数组a,使数组元素按逆序排列。

void inverse(int *a, int n)

{

}

int i,*p;

p=new int[n];

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

p[i]=a[i];

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

a[i]=p[n-i-1];

delete []p;

七、(12分)下面的函数统计子字符串substr在字符串str中出现的次数,如果substr 在str中不出现,则返回值0。请完成该函数。

int str_count(char *substr, char *str)

{

}

int count=0;

char *pChar;

if(substr==NULL||str==NULL) return count;

while(*str!='\0'){

pChar=substr;

while(*pChar==*str){

pChar++;

if(*pChar=='\0'){

count++;break;

}

else str++;

}//Match while(*pCh...) statement

str++;

}//Match while(*str...) statement

return count;

1D 2A 3C 4C 5B 6D 7A 8B 9A 10D 11A 12 C 13 A 14 B 15C 16D 17C 18C 19D 20 A

c语言试题1有答案

西北工业大学 — 学年第 一 学期考试题 教学中心: 命题教师 姜学锋 审题教师 课程: C 语言程序设计 考试时间 2 小时 考试形式: 开□ 闭? A 卷□ B 卷?

char f(char x , char y) { if(x>y) return y; else return x; } void main() { int a=’9’,b=’8’,c=’7’,d=’6’; printf(“%c\n”,f(f(a,b),f(c,d))); }

西北工业大学考试试题(B卷)答案 一、单项选择题(每题2分,15小题,共30分) 评分标准: 题号答案题号答案题号答案 1 A 6 C 11 C 2 D 7 D 12 D 3 C 8 B 13 A 4 A 9 B 14 B 5 D 10 C 15 D 阅卷说明:错画叉(),对画钩(),合计本题得分并记录在得分栏上 二、填空题(每空1分,20空,共20分) 评分标准: 题号答案备注 1 函数 2 字母或下划线仅有字母、下划线算错 3 32 4 1.0/2.0*(a*x+(a+x)/(4*a)) 可能还有其他写法(需判断) 5 8 2 6 4.0 4算对 7 函数函数调用 8 x<0&&y<0||x<0&&z<0||y<0&&z<0 可能还有其他写法(需判断) 9 gets(S1); 分号不写算对,S1小写算对 10 7 11 54321 654321 12 0 a[2][1] 13 实参变量的值或值 实参数组的起始地址或地址表示“值”的说法均算对 表示“地址”的说法均算对 14 auto 自动 15 0 16 24 3*sizeof(double)算对 阅卷说明:错画叉(),对画钩(),合计本题得分并记录在得分栏上

c语言试题及答案

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

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

选择题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

一、单选题:(40分) 1.设有int x=11; 则表达式( 1/3 * ++ x ) 的值是 A) 0 B) 3 C) 11 D) 12 2.定义int x=9 , y=4 , *p ; 执行p=&y ; y=x+++*p ; 后,则*p 的值为:(A)4 B)9 C)13 D)14 3. 当C只包含一个函数时,函数名必须是( ) . A) scanf B) printf C) main D) return 4.与y=(x>0?1:x<0?-1:0);的功能相同的if语句是 A) if (x>0) y=1; B) if(x) else if(x<0) y=-1; if(x>0) y=1; else y=0; else if(x<0) y=-1; else y=0; C) y=-1 D) y=0; if(x) if(x>=0) if(x>0) y=1; if(x>0) y=1; else if(x==0) y=0; else y=-1; else y=-1; 5.阅读程序 #include main() {int i=4,a; a=i++; printf(“a=%d,i=%d”,a,i);} A) a=4,i=4 B) a=5,i=4 C) a=4,i=5 D) a=5,i=5 6.以下循环体的执行次数是 main() { int i, j; for(i=0, j=1; i<=j+1; i+=2, j--) printf("%d \n", i); } A) 3 B) 2 C) 1 D) 0 7.以下叙述中不正确的是 A) 在不同的函数中可以使用相同名字的变量 B) 函数中的形式参数是局部变量 C) 在一个函数内定义的变量只在本函数范围内有效

c 试题及答案

一、单项选择题 1、下列哪个类型的对象是https://www.wendangku.net/doc/012863340.html,在非连接模式下处理数据内容的主要对象? (D ) A. Command B. Connection C. DataAdapter D. DataSet 2、枚举类型是一组命名的常量集合,所有整形都可以作为枚举类型的基本类 型, 如果类型省略,则定义为( A )。 A. int B. sbyte C. uint D. ulong 3、创建数据库连接使用的对象是( A )。 A. Connection B. Command C. DataReader D. DataSet 4、C#中导入某一命名空间的关键字是( A )。 A. using B. use C.import D. include 5、一般情况下,异常类存放在什么命名空间中?( B )。 A. 生成异常类所在的命名空间 B. System.Exception命名空 间 C. System.Diagnostics命名空间 D. System命名空间 6、若将数据库中的数据填充到数据集,应调用SqlDataAdapter的( C )方 法。 A. Open B. Close C. Fill D. Update 7、若将数据集中所作更改更新回数据库,应调用SqlAdapter的(A )方法。 A. Update B. Close C. Fill D. Open 8、在使用FileStream 打开一个文件时,通过使用FileMode 枚举类型的( A ) 成员,来指定操作系统打开一个现有文件并把文件读写指针定位在 文件尾部。 A. Append B. Create C. CreateNew D. Truncate 9、在菜单项File中,为将F设为助记符,应将该菜单项的Text属性设置为 (B )。 A. @File B.&File C. %File D._File 10、指定操作系统读取文件方式中的FileMode .Create的含义是( D)。 A. 打开现有文件 B. 指定操作系统应创建文件,如果文件存在,将出现异常 C. 打开现有文件,若文件不存在,出现异常 D. 指定操作系统应创建文件,如果文件存在,将被改写 11、枚举类型是一组命名的常量集合,所有整形都可以作为枚举类型的基本类 型,如果类型省略,则定义为( D )。 A. uint B. sbyte C. ulong D. int 12、当运行程序时,系统自动执行启动窗体的( C )事件。 A. Click B.DoubleClick C. Load D. Activated

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 试题 (1)

C++程序设计试题 1、请解释以下定义的对象的区别(10分): int a=1024; int *p=&a; int *pt=new int(1024); int *pa=new int[1024]; 2、以下语句段正确的是 。(5分) 3、写出以下程序的运行结果:a ) b ) c ) (5分) 4、为什么以下重载的fun 函数调用具有二义性?(10分) 5、Tstring 类用于实现对字符串的管理,请完成成员函数的定义。(18分) class Tstring{ char *str; int len; public: Tstring(const char *ps); ~Tstring( ); Tstring(const Tstring & source); Tstring& operator=(Tstring& it); Tstring& operator=(const char * ps); Tstring& operator+( Tstring& it);//实现字符串连接 }; a) int a; int *pi=&a; void *pv=pi; const int *pci=&a; pv=pci; b) int a; int *pi1=&a; void * pv=pi1; int *pi2=pv; c) int a=6,b=7; const int *pc=&a; pc=&b; b=8; d) int k=10,j; int *const pic=&k; *pic=8; pic=&j; a) void fun(int &x) { x=x+1;} int main( ) { int a=9; fun(a); cout<

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语言期末考试题

大一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试题库有答案的

C++试题库 一、选择题 1、求“abc\\12\n”字符串的长度( C ) (A) 5 (B) 6 (C) 7 (D) 8 2、字符串常量”\tMyNane\103”的长度是:( B ) (A) 6 (B) 8 (C) 12 (D) 14 3、设x=7,执行语句y=++x,则y等于( D ) (A) 6 (B) 7 (C) 9 (D) 8 4、下列字符列中,合法的长整型常量是:( D ) (A) 4.18e3 (B) 0.46793 (C) 4L (D) 956738 5、在C++中,char类型数据在内存的存储形式是:( D ) (A) 原码(B) 反码(C) 补码(D) ASCII码 6、以下运算符中,优先级最高的是:( B ) (A) *= (B) –> (C) && (D) >= 7、若有定义“int x”,则下面不能将x的值强制转换成双精度数的表达式(D )(A)(double)x (B) double(x)(C)(double)(x)(D)x(double) 8、设有变量定义 int i, j; 与表达式 i==0 && j==0 等价的表达式是:( b ) (A) i||j (B) !i&&!j (C) !i==!j (D) i==j 9、下述叙述正确的是()。 (A)字符型变量不能赋予整数(B) 任意整数都能表示字符 (C)字符型变量可存放多个字符(D) 字符数据的值是整数值 10、设变量int a = 5; 下列哪个表达式计算后,使得变量b的值等于2 ?( A ) (A) b=a/2 (B) b=6-(a--) (C) b=a%2 (D) b=a>3?3:2 11、if…else中为避免嵌套出现二义性,C++规定else子句总与( B ) (A)其之前最近的if语句 (B)其之前最近且尚未配对的if语句 (C)缩排位置相同的if语句 (D)其之后最近的if语句 12、逻辑运算符两侧运算对象的数据( D ) (A)只能是逻辑型数据(B)只能是整型数据 (C)只能是整型或字符型数据(D)可以是任何类型的数据

C语言试题及答案

第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。 第2章数据类型运算符和表达式习题 1. 单项选择题 (1) 以下选项中,正确的 C 语言整型常量是 D 。 A. 32L B. 510000 C. -1.00 D. 567 (2) 以下选项中, D 是不正确的 C 语言字符型常量。

大学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语言期末考试试题

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语言试题1

安徽大学20 -20 学年第学期 《C语言程序设计》期末考试试卷(B卷120分钟) 年级院系专业姓名学号座位号 题号 一 二 三 四 五 六 七 八 得分 得分 得分 一. 单项选择题:(每题2分,共20分) 下列各题A)、B)、C)、D)四个选项中只有一个是正确的,请将正确选项填在答题卡相应题目的横线上。答在试卷上不得分。 1.执行程序: int a; printf("%d \n", (a=3*5, a*4, a+5) );后,a的值是______。

A)60 B)20 C)15 D)10 2.程序段:int x=023; printf("%d \n", --x );的输出是______。 A)19 B)18 C)23 D)22 3.程序段:static char s[10]={'C','h','i','n','a'}; printf("%d\n",strlen(s));的输出是______。 A)6 B)5 C)11 D)10 4.若fun( int x) { printf(“%d\n”,x);}, 则fun_______。 A)返回值为void 类型B)返回值类型无法确定 C)返回值为int 类型D)没有返回值 5. 有宏定义:#define MULT1(a,b) a*b #define MULT2(a,b) (a)*(b) 且引用宏:y=MULT1(3+2,5+8); z=MULT2(3+2,5+8); 则y和z的值是______。 A)y=65,z=65 B)y=21,z=65 C)y=65,z=21 D)y=21,z=21 6.程序段char s[]="Hello", *p; p=s;执行后,*(p+5)的值是______。 A)'o' B)'\0' C)'o'的地址D)不确定的值7. 程序段:char *s=”ABCD”, *p; for( p=s; *p ; p++) printf("%s\n", p);的输出是______。 A)ABCD B)A C)D D)ABCD BCD B C ABC CD C B AB D D A A 8. 若定义:int (*p)[3]; 则标识符p______。 A)定义不合法。

C语言试题及答案

一、单项选择题 1. 软件危机具有下列表现( d )。 I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住 III. 软件常常不可维护IV. 软件成本逐年上升 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。 A. 运行和维护阶段 B. 设计阶段 C. 代码实现阶段 D. 测试阶段 3. 下列属于软件的特点的是(D )。 A. 软件是一种逻辑实体,具有抽象性 ~ B. 软件在使用过程中没有磨损、老化的问题 C. 软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高 D. 以上都正确 4. 软件工程的出现是由于(D )。 A. 软件危机的出现 B. 计算机硬件技术的发展 C. 软件社会化的需要 D. 计算机软件技术的发展 5. 软件开发技术不包含( d )。 A. 软件开发方法学 B. 软件工程环境 C. 软件工具 D. 软件质量度度量 6. 软件工程的课程特点( D )。 【 I. 学科理论及其知识应用的多维性 II. 工程化 III. 浓厚的方法学色彩 IV. 实践性、指导性强 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 7. 下列属于应用软件的是( b )。 I. 计算机辅助教学软件II. 软件测试工具 III. 办公自动化软件IV. 工程与科学计算软件

A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 8. 需求分析阶段最重要的技术文档是( b )。 - A. 设计说明书 B. 需求规格说明书 C. 可行性分析报告 D. 用户手册 9. 以下关于数据流图的说法错误的是( c )。 A. 数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储 B. 数据流图是用作结构化分析的一种工具 C. 传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成 D. 数据流图的绘制采用自上向下、逐层分解的方法 10. 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( c )。 A. 数据库设计 B. 数据通信 C. 数据定义 D. 数据维护 11. 需求分析阶段的研究对象是( b )。 ¥ A. 系统分析员要求 B. 用户要求 C. 软硬件要求 D. 系统要求 12. 结构化方法的基本原则是( b )。 A. 模块化 B. 抽象与分解 C. 信息隐蔽 D. 逐步求精 13. 耦合度最高的是(b)耦合。 A. 环境 B. 内容 C. 控制 D. 数据 14. 内聚程度较低的是( a )内聚。 A. 偶然 B. 通讯 C. 顺序 D. 时间 15. 对一个程序来说,组成系统的模块数目( b ),则开发成本越小。 A. 越多 B. 越少 C. 顺序 D. 时间> 16. 画软件结构图时应注意调用关系只能是(B )。 A. 从下到上 B. 从上到下 C. 从左到右 D. 从右到左 17. 程序流程图中的箭头代表( b )。 A. 数据流 B. 控制流 C. 顺序流 D. 调用 18. 软件测试是软件质量保证的重要手段,下述( B )是软件测试的最基础环节。

C语言期中考试试题及答案 1

高级语言程序设计试题 答案在最后 一、单项选择题(本大题共20 小题,每小题 2 分,共20 分)在每小题列出的四个选项中只有一 个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。 1.C 语言程序编译时,程序中的注释部分是() A. 参加编译,并会出现在目标程序中 B. 参加编译,但不会出现在目标程序中 C. 不参加编译,但会出现在目标程序中 D. 不参加编译,也不会出现在目标程序中 2.设int a=3 ;则表达式a<1&&--a>1 的运算结果和a 的值分别是() A.0 和2 B.0 和3 C.1 和2 D.1 和3 3. 与语句if(a>b)if(c>d)x=1;else x=2; 等价的是() A.if(a>b){if(c>d)x=1;else x=2;} B.if(a>b){if(c>d)x=1;}else x=2; C.if((a>b)&&(c>d))x=1;else x=2; D.if(a<=b)x=2;else if(c>d) x=1; 4.设char x='a:则 printf("x=%c,y=%c \ n",x,97);的输出是() A.x=a,y=97 B.x=97,y=a C.x=97,y=97 D.x=a,y=a 5. 执行下列程序 int a[3][3]={{1},{2},{3}}; int b[3][3]={1,2,3}; main() {printf("%d、n”,a : 1: : 0]+b[0][0]);} 后输出的结果是() A.0 B.1 C.2 D.3 6. 结构化程序设计所规定的三种基本控制结构是() A)输入、处理、输出B)树形、网形、环形 C)顺序、选择、循环D)主程序、子程序、函数 7. 完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( ) A. 连接、编译 B.编译、连接 C.连接、运行 D.运行

C试题及答案一

C++程序设计模拟试卷(一) 一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中 只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无 分。 1. 编写C++程序一般需经过的几个步骤依次是() A. 编辑、调试、编译、连接 B. 编辑、编译、连接、运行 C. 编译、调试、编辑、连接 D. 编译、编辑、连接、运行 答案:B 解析:经过编辑、编译、连接和运行四个步骤。编辑是将C++源程序输入计算机的过程,保 存文件名为cpp。编译是使用系统提供的编译器将源程序cpp生成机器语言的过程,目标文件为 obj,由于没有得到系统分配的绝对地址,还不能直接运行。连接是将目标文件obj转换为可执行 程序的过程,结果为exe。运行是执行exe,在屏幕上显示结果的过程。 2. 决定C++语言中函数的返回值类型的是() A. return语句中的表达式类型 B. 调用该函数时系统随机产生的类型 C. 调用该函数时的主调用函数类型 D. 在定义该函数时所指定的数据类型 答案:D 解析:函数的返回值类型由定义函数时的指定的数据类型决定的。A项的表达式的值要转换 成函数的定义时的返回类型。 3. 下面叙述不正确的是() A. 派生类一般都用公有派生 B. 对基类成员的访问必须是无二义性的 C. 赋值兼容规则也适用于多重继承的组合 D. 基类的公有成员在派生类中仍然是公有的 答案:D 解析:继承方式有三种:公有、私有和保护。多继承中,多个基类具有同名成员,在它们 的子类中访问这些成员,就产生了二义性,但进行访问时,不能存在二义性。赋值兼容规则是指 派生类对象可以当作基类对象使用,只要存在继承关系,所以单继承或多继承都适用。基类中的 公有成员采用私有继承时,在派生类中变成了私有成员,所以D项错误。 4. 所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体 也就是() A. 类 B. 对象 C. 函数体 D. 数据块 答案:A 解析:类即数据和操作的组合体,数据是类的静态特征,操作是类具有的动作。 5. 在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中 的() A. 私有成员 B. 公有成员 C. 保护成员 D. 保护成员或私有成员 答案:A 解析:在派生类中基类的保护或者基类公有都可以直接访问,基类的私有成员只能是基类 的成员函数来访问。所以选择A项。 6. 对基类和派生类的关系描述中,错误的是() A. 派生类是基类的具体化 B. 基类继承了派生类的属性 C. 派生类是基类定义的延续 D. 派生类是基类的特殊化 答案:B 解析:派生类的成员一个是来自基类,一个来自本身,所以派生类是基类的扩展,也是基 类的具体化和特殊化,派生类是对基类扩展。B项基类不能继承派生类成员,所以错误。 7. 关于this指针使用说法正确的是() A. 保证每个对象拥有自己的数据成员,但共享处理这些数据的代码

江苏大学大一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;

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