好文档 - 专业文书写作范文服务资料分享网站

C-C++习题一期末考试例题(附答案) - 图文 

天下 分享 时间: 加入收藏 我要投稿 点赞

C/C++语言程序设计单元测试(一)

班级: 学号: 姓名: 得分: 一、选择题

1.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( C ) A.必须为字母 B.必须为下划线 C.必须为字母或下划线 D.可以是字母,数字和下划线中任一种字符 2.以下4组用户定义标识符中,全部合法的一组是(A) A._main enclude sin1 B.If -max turbo C.txt REAL 3COM D.int k_2 _001 3. 下列不是C++语言合法的关键字是( D )

A. swicth B. char C. sizeof D. cin 4.下面正确的字符常量是( C ) A.\ B.'\\\\'' C.'W' D. ' ' 5.下面不正确的字符串常量是( A ) A.'abc' B.\ C.\ D.\ 6. 字符串“cp”存放在内存中占用字节数为( C ) A.2 B.4 C. 3 D. 1

7.设有数组定义:char array[ ]=\则数组所占的空间是 ( C )。

A. 4个字节 B. 5个字节 C. 6个字节 D. 7个字节 8. 设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;功能是( D ) A. 把x和y按从大到小排列 B. 把x和y按从小到大排列 C. 无确定结果 D. 交换x和y中的值

9.字母A的ASCII码为65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为( B ) A.D B.68 C.不确定的值 D.C

10.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(B) A.2.500000 B.2.7500OO C.3.500000 D.0.000000

11.设有说明: char w; int x; f1oat y; double z;则表达式w* x+z一y值的数据类型为( D ) A.float B.char C.int D.double 12.若有以下定义,则能使值为3的表达式是(D ) int k= 7,x =12; A.x%=(k%=5) B.x%=(k-k%5) C.x%=k- k%5 D.(x%=k)-(k%=5)

12.若希望当A的值为奇数时,表达式的值为\真\,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是( C ) A. A%2= =1 B.!(A%2 = =0) C.!(A%2) D.A%2 13.设有 int a = 1,b=2,c =3, d =4, m=2, n=2; 执行(m= a>b)&&(n=c>d)后n的值为(B) A.1 B.2 C.3 D.4 14.若w=1,x = 2,y= 3,z=4,则条件表达式w

1

15.若s是int型变量,则表达式s=17/3%3的值为( C )。 A.25 B.1 C.2 D.3

16. 设有程序段int m=0; while (m=2) m=m++;则下面描述中正确的是( D )。 A. while 循环执行2 次 B. 循环体语句执行1次 C. 循环体语句1次也不执行 D. 循环是无限循环

17. 若已定义int a[10];则在下列表达式中不表示a[1]的地址的是( A ) A.a++ B.a+1 C.&a[0]+1 D.&a[1] 18. 面有关C语言函数的叙述正确的是( B ) 。

A.可嵌套定义 B.嵌套调用和递归调用均可 C.不可以嵌套调用 D.可嵌套调用但不可递归调用 19.定义int a=10; int *p=&a; 下列描述( D )是正确的。 A.&a和&p的值相同; B.&a和*p的值相同; C.a和p的值相同; D.&a和p的值相同; 20.下列关于结构体描述中,错误的是( C)。

A.结构体可以包括基本数据类型变量 B.结构体可以包含其他已定义的结构体变量 C.结构体可以包含自身类型的变量 D. 结构体可以包含自身类型的指针变量

21. 下面对于友元函数描述正确的是( C )。

A. 友元函数是类的成员函数 B. 友元函数的实现必须在类的内部定义 C. 友元函数破坏了类的封装性 D. 友元函数不能访问类的私有成员 15. 公有继承时,子类函数只可访问父类中的( B )和子类自己的公有成员。 A.非私有成员; B.公有成员; C.私有成员; D.保护成员;

二、程序分析题

1. 以下程序的运行结果 10-9 #include int main( ) {

int x=1, y=0, a=10, b=10; switch(x) {

case 1:

switch(y) {

case 0: a--; break; case 1:b++; break; }

case 2:a++;b--;break; }

cout<

2.以下程序的输出结果是___________13*20_________________________________ #include int f(int n) {

static int k = 1; int m=2; k++;

2

return 3*n + k +m; }

int main() {

cout<< f(3)<<’*’; cout<

3.以下程序运行时,若从键盘上输入元素:10 9 8 7 6 1 2 3 4 5,请写出程序的运行结果: 1*5 。 #include int main() {

int a[10],*p,*s,i; for(i=0;i<10;i++) cin>>a[i]; p=a; s=a;

for(; p

if(*p<*s) s=p; }

cout<<*s<<\return 0; }

4.以下程序的运行结果是( 6 ) #include int main() { int m=5; if(m++> 5) cout<

三、程序完善题

1. 以下程序的功能是输出200~300之间所有素数,请完善代码。 #include #include int prime(int x) {

int i,k; k=sqrt(x);

for(i=2;i<=k;i++) {

if ( x%i==0 )

break; }

if ( (1) ) i<=k return 0; else

return 1; }

3

int main() {

int m,i,k;

for (m=200;m<=300;m++) {

if ( (2) ) prime(m)

cout<

return 0; }

2.以下程序用1-16给一个4行4列的数组赋值,并计算右上半三角元素的和,请完善代码。 #include int main( ) { int s[4][4]; int i,j,k=1,sum=0; for(i=0;i<4;i++) { for(j=0;j<4;j++) { s[i][j]=k; (1) ; k++ } } for(i=0;i<4;i++) { for(j=0; (2) ; j++) j<=I for(j=i; j<4 ; j++) sum+= (3) ; s[j][i] sum+= s[i][j] ; } cout<<\ return 0; }

下列程序功能是采用“顺序查找法”查找数组中是否存在元素n,请完善代码。 #include void main( ) {

int a[6]={ 1, 3, 2, 6, 4, 8}; int i, n; cin>>n;

for (i=0; i<6; i++) {

if ( (1) ) a[i]==n

(2) ; break }

if ( (3) ) i<6

cout<<“ 找到了!数组下标为”<

cout<<“数组中未找到!”; }

4

四、程序设计题

1. 编写子函数double fact(int n)计算n!,要求主函数键盘输入整数n,调用子函数计算n! ,并显示结果。

#include

double fact(int n); int main( ) {

int a; cin>>a;

cout<

double fact(int n){ if(n==1) return 1; return n*fact(n-1); } 2. 用

公式求?的近似值,直到某一项的绝对值小于0.0001为止。

#include

using namespace std; #include int main() {

double a, b = 3, c, d = 0;

for (a = 1; 1 / b > 0.0001; a =a + 4,b=b+4) {

c = 1 / a - 1 / b; d = c + d; }

cout<<4*d<

3.编写程序比较两个字符串,若相等,返回0;前字符串大,返回1;否则,返回-1;请完成子函数。 #include

int stringCompare(char s1[10],char s2[10]); void main( ) {

char str1[10],str2[10]; int flag; cout<<\ cin>>str1>>str2;

5

flag=stringCompare(str1,str2); cout<<\}

int stringCompare(char s1[10],char s2[10]) { int n; for(int i=0;i<10;i++){ n=s1[i]-s2[i]; if(n==0)return 0; else if(n>0)return 1; else return -1; } }

4. 下列代码是CmyPoint类的定义,请写出类的构造函数。 class CmyPoint {

private:

int X,Y; public:

CmyPoint(int x,int y); CmyPoint(CmyPoint& p); CmyPoint(){} ~CmyPoint(){}

int getX() { return X; } int getY() { return Y; } };

CmyPoint::CmyPoint(int x,int y){ X=x; Y=y; }

CmyPoint::CmyPoint(CmyPoint& p){ X=p.X; Y=p.Y; }

6

C-C++习题一期末考试例题(附答案) - 图文 

C/C++语言程序设计单元测试(一)班级:学号:姓名:得分:一、选择题1.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符(C)A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母,数字和下划
推荐度:
点击下载文档文档为doc格式
98bn02ujma4mn0g1mmp04oweh0q6fq00ojj
领取福利

微信扫码领取福利

微信扫码分享