C++模拟.docx

上传人:b****9 文档编号:26372164 上传时间:2023-06-18 格式:DOCX 页数:10 大小:34.11KB
下载 相关 举报
C++模拟.docx_第1页
第1页 / 共10页
C++模拟.docx_第2页
第2页 / 共10页
C++模拟.docx_第3页
第3页 / 共10页
C++模拟.docx_第4页
第4页 / 共10页
C++模拟.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

C++模拟.docx

《C++模拟.docx》由会员分享,可在线阅读,更多相关《C++模拟.docx(10页珍藏版)》请在冰豆网上搜索。

C++模拟.docx

C++模拟

 

模拟试题

一.单项选择题(每小题2分,共48分)

1.下列字符列中,合法的浮点型常量是:

 

  (A)457      (B)6e5.3      (C)e7      (D)123e6

2.字符串常量”w\x42\\\nx\103y”的长度是:

  (A)7     (B)11     (C)15     (D)16

3.以下运算符中,自右向左结合的运算符是:

 

  (A)[]    (B)<=   (C)*=    (D)<<

4.表达式4/8*100/2.0的值是:

 

   (A)25     (B)25.0    (C)0      (D)0.0

5.设变量inta=5;下列哪个表达式计算后,使得变量b的值不为2?

 

  (A)b=a/2      (B)b=6-(--a)      (C)b=a%2        (D)b=a<3?

3:

2

6.设a是整型变量,不能表达数学关系式11

 

  (A)a>11&&a<15          (B)a==12||a==13||a==14

  (C)!

(a<=11)&&!

(a>=15)      (D)11

   对C++表达式 11

 

  ①11

  ②0<15è1或1<15è1  

  原因:

C++的逻辑判断结果为整型值

7.下列C++代码中,不能正确对字符串s1置值的代码是:

 

  (A)char*s1=newchar[20];cin>>s1;  (B)chars1=”name”;   //s1是字符变量,不能赋给串值 

  (C)chars1[5]=”name”;      (D)chars1[]={”name”};

8.一个具有6个整型指针元素的一维数组的正确定义是:

 

  (A)int**p[6]          (B)int(*p)[6]

  (C)int*p[6]           (D)*(*(p)[6])

  试比较以下几种说明形式:

 

   int*p;      //p是指向整型变量的指针(p是关联类型为整型的指针) 

   int*pa[10];  //pa是数组,元素类型是整型指针 

   int(*pb)[10];    //pb是指针,指向(关联类型)长度为10的整型数组 

   int*f();    //f是返回整型指针的函数名 

   int(*f)();       //f是指针,指向(关联类型)是返回整型值的无参函数 

    例:

有声明 

       int(*f)(intint); intmax(int,int); intmin(int,int);

   则:

f=max; f(a,b);    //等价于(*f)(a,b);   max(a,b);

       f=min; f(a,b);    //等价于(*f)(a,b);   min(a,b);

9.执行语句x=1;while(x++<7)cout<<’*’;后输出结果是:

 

  (A)**         (B)****       (C)******    (D)*******

  (x++<7)   ①x<7     ②x=x+1

10.若用一维数组名作为调用函数时的实参,则传递给形参的是:

 

  (A)数组首元素的地址       (B)数组首元素的值 

  (C)数组元素的个数            (D)数组中全部元素的值

11.运算符优先级从高到低顺序的正确排列是(   )。

 

  (A)*=、&&、>、%                (B)*=、%、&&、>        

  (C)%、>、&&、*=                (D)&&、%、>、*=

12.可以正确表示a、b之中只有一个大于k的表达式是(   )。

 

  (A)a>b>k      (B)ak        (C)a>k||b>k       (D)a>k!

=b>k

13.已知inti=0,x=0;下面while语句执行时循环次数为(   )。

  while(x||i){x++;i++;}

  (A)3          (B)2          (C)1          (D)0

14.执行语句x=1;while(++x<7)cout<<’*’;后输出结果是:

(   ) 

  (A)*****      (B)******     (C)*******    (D)********

15.有函数原型voidf(int*);下面选项中,正确的调用是(   )。

 

  (A)char*s="ABCD";f(s);            (B)inta=15; f(a); 

  (C)intm=100; f(&m);             (D)doublepi=3.14;f(pi);

16.以下正确的函数原型是:

(   ) 

  (A)voidfun(int,int=0);             (B)floatfun(x,y);

  (C)voidfun(*,&);                (D)intfun(int=0,int);

17.设有变量定义inta[]={2,3,5,9,11,13},*pa=a,w;执行语句w=++(*pa++);后,变量w和*pa的值是:

 

  (A)3和3   (B)4和3   (C)3和4   (D)4和4

18.下面的变量定义中,不正确的是:

 

  (A)char*p=”string”;      (B)inta[]={‘A’,’B’,’C’};

  (C)int&q=b;intb;       (D)doublea;double*r=&a;

19.下述叙述正确的是(   )。

 

  (A)字符型变量不能赋予整数        (B)任意整数都能表示字符 

  (C)字符型变量可存放多个字符       (D)字符数据的值是整数值

20.设有变量定义inti,j;与表达式i==0&&j==0等价的表达式是:

(   ) 

  (A)i==j       (B)i&&j           (C)!

i&&!

j         (D)i||j

21.执行C++程序时出现的“溢出”错误属于( )错误。

 

  (A)编译      (B)连接      (C)运行      (D)逻辑

22.下列选项中,全部都是C++关键字的选项为(   )。

 

  (A) while IF Static          (B)break char go

  (C) sizeof case extern         (D)switch float integer

23.按C++标识符的语法规定,合法的标识符是(   )。

 

  (A)_abc          (B)new       (C) π       (D)“age“

24.C++语句中,两个标识符之间(   )不能作为C++的分隔符。

 

  (A)数字           (B);         (C):

         (D)+

二.简答题(每小题3分,共18分)

1.设整型变量x为任何一个整数,表达式–2

  

2.调用函数时,希望从提供的实参变量中得到函数的结果,则对应的形参应该是?

 

3.设有变量定义char*s[]={“Beijing”,”Shanghai”,”Guangzhou”};执行语句cout<<*(s+1)+1;输出是?

4.设有变量定义inta[4][3],*p=a[2];表达式p+2指向的元素是?

5.将字符串str2拷贝到字符数组str1[]中,应调用函数?

6.设有函数调用语句Count(a,num,max,min,average);功能是由参数max,min,average返回整型数组a前num个元素中的最大值,最小值和平均值。

对应的函数原型是?

三.分析程序,写输出结果(每小题3分,共9分)

1.求>0的元素和;>0的元素个数。

#include

voidmain()

{inta[10]={2,4,0,-5,10,6,-8,9,6,7};

 inti,s=0,count=0;

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

   if(a[i]>0)s+=a[i],count++;

     elsecontinue;

 cout<<"s="<

}   

2.测试静态变量和自动变量。

静态变量第一次自动初始化为0,再调用时不改变。

 

a

b

a+=3

a+b

0

2

 

 

 

 

 

3

5

3

2

 

 

 

 

 

6

8

6

2

 

 

 

 

 

9

11

9

2

 

 

 

 

 

12

14

#include

voidfun();

voidmain()

{inti;

 for(i=1;i<5;i++) fun(); cout<

}

voidfun()

{staticinta; intb=2;

 cout<<(a+=3,a+b)<<'\t';

3.求最小公倍数

#include

intlcm(intm,intn)

{intr,a,b;

 a=m;b=n;r=m;

 do{             //辗转相除法,求最大公约数 

 m=n;n=r;r=m%n;

 }while(r);

 returna*b/n;       //求最小公倍数 

}

voidmain()

{cout<

四.根据程序功能填空。

(每空2分,共10分)

1.本程序按以下公式计算e的值,精度为1e-6。

 

    

#include

voidmain()

{doublee,t,n;

  e=0;

t=n=_____

(1)_____;      

  while(_____

(2)_____)   

  {e+=t;

   _____(3)_____;   

   n=n+1.0;

  }

 cout<<"e="<

}

2.本程序由主函数输入一字符串,调用函数,把该字符串中的数字0~9转换成小写字母a~j;所有小写字母转换成大写字符。

然后在主函数输出转换后的字符串。

 

#include

#include

_____(4)_____         

voidmain()

{charstr1[20],str2[20];

 cin>>str1;

 change(str1,str2);

 cout<

}

voidchange(char*s1,char*s2)

{while(_____(5)_____)    

 {if(*s1>='0'&&*s1<='9')

    *s2=*s1+'a'-'0' 

  else*s2=toupper(*s1);

 s1++;s2++;

 }

 *s2='\0';

}

五.程序设计

1.编写函数输出以下形状的图形,其中构成图形的符号和输出的行数通过参数传送。

(6分)

  

 

参考答案

一.单项选择题(每小题2分共50分)

题号

1

2

3

4

5

6

7

8

9

10

答案

D

A

C

D

D

D

B

C

C

A

题号

11

12

13

14

15

16

17

18

19

20

答案

C

D

D

A

C

A

A

A

D

C

题号

21

22

23

24

 

 

 

 

 

 

答案

C

C

A

A

 

 

 

 

 

 

二.简答题(每小题3分,共18分)

1.设整型变量x为任何一个整数,表达式–2

     

2.调用函数时,希望从提供的实参变量中得到函数的结果,则对应的形参应该是?

 

指针或引用类型参数 

 注意使用方法:

 

 函数定义                   调用 

 voidfun1(intx1);         inta1;fun1(a1);      //传值参数 

 voidfun2(int*x2);      inta2;fun2(&a2);     //指针参数,传地址 

 voidfun3(int&x3);       inta3;fun3(a3);      //引用参数,传名

3.设有变量定义char*s[]={“Beijing”,”Shanghai”,”Guangzhou”};执行语句cout<<*(s+1)+1;输出是?

 

hanghai

 s是字符指针数组 

4.设有变量定义inta[4][3],*p=a[2];表达式p+2指向的元素是?

   a[2][2]

5.将字符串str2拷贝到字符数组str1[]中,应调用函数?

    strcpy(str1,str2)

6.设有函数调用语句Count(a,num,max,min,average);功能是由参数max,min,average返回整型数组a前num个元素中的最大值,最小值和平均值。

对应的函数原型是?

voidCount(int[],int,int&,int&,float&);

若调用语句为 Count(a,num,&max,&min,&average);

则函数原型为 voidCount(int[],int,int*,int*,float*);

三.分析程序,写输出结果(每小题3分,共9分)

1.求>0的元素和;>0的元素个数。

 

#include

voidmain()

{inta[10]={2,4,0,-5,10,6,-8,9,6,7};

 inti,s=0,count=0;

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

   if(a[i]>0)s+=a[i],count++;

     elsecontinue;

 cout<<"s="<

}    

s=44 count=7

2.测试静态变量和自动变量。

静态变量第一次自动初始化为0,再调用时不改变。

 

#include

 

a

b

a+=3

a+b

0

2

 

 

 

 

 

3

5

3

2

 

 

 

 

 

6

8

6

2

 

 

 

 

 

9

11

9

2

 

 

 

 

 

12

14

voidfun();

voidmain()

{inti;

 for(i=1;i<5;i++) fun(); cout<

}

voidfun()

{staticinta; intb=2;

 cout<<(a+=3,a+b)<<'\t';

}  5   8  11  14

3.求最小公倍数 

#include

intlcm(intm,intn)

{intr,a,b;

 a=m;b=n;r=m;

 do{             //辗转相除法,求最大公约数 

 m=n;n=r;r=m%n;

 }while(r);

 returna*b/n;       //求最小公倍数 

}

voidmain()

{cout<

}  

21   12

四.根据程序功能填空。

(每空2分,共10分)

1.本程序按以下公式计算e的值,精度为1e-6。

 

    

#include

voidmain()

{doublee,t,n;

  e=0;

t=n=_____

(1)_____;       1.0

  while(_____

(2)_____)     t>=1e-6

  {e+=t;

   _____(3)_____;       t=t/n

   n=n+1.0;

  }

 cout<<"e="<

}

2.本程序由主函数输入一字符串,调用函数,把该字符串中的数字0~9转换成小写字母a~j;所有小写字母转换成大写字符。

然后在主函数输出转换后的字符串。

 

#include

#include

_____(4)_____          voidchange(char*,char*); 

voidmain()

{charstr1[20],str2[20];

 cin>>str1;

 change(str1,str2);

 cout<

}

voidchange(char*s1,char*s2)

{while(_____(5)_____)     *s1

 {if(*s1>='0'&&*s1<='9')

    *s2=*s1+'a'-'0' 

  else*s2=toupper(*s1);

 s1++;s2++;

 }

 *s2='\0';

}

五.程序设计

1.编写函数输出以下形状的图形,其中构成图形的符号和输出的行数通过参数传送。

(6分)

答案:

 

#include

#include

voidprint_figure(introw,chartag)     //行参数和符号参数 

{inti;

 cout<

 for(i=2;i

  cout<

 for(i=1;i<=2*row-1;i++)cout<

 cout<

}

voidmain(){print_figure(5,'*');}

2.编写一个程序,实现如下功能:

(9分)

(1)输入k(<100)个整数到数组x[100]中; 

(2)计算k个数的平均值及大于平均值的元素个数。

 

答案:

 

#include

voidmain()

{intx[100],k,i,n;

 doublesum=0.0,ave;

 cout<<"HowmanyData?

\n";

 cin>>k;

 for(i=0;i

 {cin>>x[i];sum+=x[i];}

 ave=sum/k;            //求平均值 

 n=0;

 for(i=0;i

  if(x[i]>ave)n++;

 cout<<"average="<

 cout<<"Thereare"<

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1