C++基础+编程题复习(3)

2019-02-15 19:03

}

cout<<'\\n'<

11. 设有语句 int a=6,b=3; float x=8,y; y=b/a*x/2; 则y的值是__0.0____。 12. 设int a=1,b=2,c,d,e;执行: c=(-a++)+(++b); d=(b--)+(++a)-a;

e=(a/(--b))-(b/(--a)); 语句序列后,变量a、b、c、d、e的结果分别是_2_、_1_、_2_、3_、_3_。

13. 以下程序输出的第一行是__20__,第二行是___400___ 。 #include int f(int x)

{ static int u=1; x+=x; return u*=x; }

void main(void) { int x=10;

cout<

14. #include int f(int n,int k)

{ if(k<1) return f(n/10,k+1); else return(n); }

void main(void)

{ int y1=f(45678,3); int y2=f(5432,2); int y3=f(987,1); int y;

y=y1+y2+y3+f(23,0);

cout<<\<<\}

程序输出的第一行是 __y1=8__,第三行是__y3=7__。

15. 已知函数f的定义是: int f(int n)

{ n*=2; return n+1;} 则执行 int m=6,n=2; 精品文档 欢迎下载

m=f(n);

后,m和n的值分别是__5_2___。

16. 有如下函数说明: void display(char c);则它的返回值是__无值型__。

17. 以下程序的执行结果是__3_6_1_3_______ 。 #include static int x=5; void f1(); void f2(); void main( ) { auto int x=3; cout<

cout<

void f1() { x+=1;

cout<

void f2() { int x=1; cout<

18. 若有宏定义: #define T(x,y,z) x*y*z/4 则表达式T(8-3,2*4,2+3)的值是__-40___。 19. 设有语句int a=258,b; unsigned char c;b=c=a;则b的值是__2__。

20. 有语句“int a=5,b=7,c=15,d ; d=b>a||(c=a+b);”, 则c的值是__15___。 21. 下列程序运行后的输出结果是____s=7__。

#include void main() {int s=0,k;

for (k=7;k>=0;k--) { switch(k) {case 1: case 4:

case 7:s++;break; case 2: case 3:

case 6:break;

case 0:

case 5:s+=2;break; } }

cout<<\ }

22. 函数my_cmp( )的功能是比较字符串s和t 的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即当s>t时返回正值,当s

my_cmp(char *s, char *t) {

while (*s==*t) {

if (*s=='\\0') return(0); ++s, ++t; }

return__________; } *s-*t

23. 52.若有宏定义: #define N 3

#define Y(n) ((N+1)*n)

则执行语句“z=2*(N+Y(N+2));”后,z的值为 ___34____。

24. 语句cout<<\的输出结果为_\\\\___。 25. 对数组按值从大到小的顺序排序后输出,请填空。

#include void main() {

float a[7]={2,6,3,8,3,12,9}; _________________; sort(a,7);

for(int i=0;i<7;i++) cout<

void sort(float *p,int n) {int i,j,k; float t; for(i=0;i

for(j=i+1;j

if(____________) k=j; 精品文档 欢迎下载

if(________)

{ t=*(p+i); *(p+i)=*(p+k); *(p+k)=t; } }

} void sort(float*,int) p[k]

26. 以下程序的执行结果是__d=20___。 #include void main()

{int a=0,b=1,c=0,d=20,x; if(a) d=d-10; else if(!b)

if(!c) x=15; else x=25;

cout<<\ }

27. 以下程序的执行结果是_firstthird__。 #include void main() { int x=1,y=0; switch(x) { case 1:

switch(y)

{ case 0: cout<<\ case 1: cout<<\ }

case 2: cout<<\ } }

28. 设有语句“int m;float x,y;y=m=x=5.99;”,则y的值是__5___。

29. 每个基本语句的结束标志是_分号___。 30. 执行cout<<\的输出结果为__abc123_。

31. 下列函数用于将任意方阵(行数等于列数的二维数组)转置,请填空。 void mt(float *a,int n) 如数组:1 11 3 -2

{ int i,j; float t; 2 3 4 5

for(i=0;i

for( _________ ) 4 5 6 7 {

t=*(a+i*n+j);

精品文档 欢迎下载

#include 转置后为:

*(a+i*n+j)=*(a+j*n+i); void func(int); 1 2 7 4 void main() _________; { int x=10; 11 3 -4 5 func(x); } cout<<\ -3 4 4 6 } } void func(int x) -2 5 2 7 j=0;j_。 33. 以下程序运行后输出的结果是

__2_4_6_________。

#include int sbc(int a) { static k; a+=k++; return a; } void main() { cout< void main() { int x,y; for(x=1,y=1;y<=10;y++) { if(x>=10) break; if(x%2==1){ x+=5;continue;} x-=3; } cout<

if(j==0) i++; else i--; 后i的值为___11___ 。

36. break语句只能用在循环语句和_switch_

语句中。

37. 以下程序的执行结果是__x=10__。 { x=20; } 38. 如果一函数直接或间接地调用自身,这样的调用称为__递归调用__。 39. 以下程序的输出结果是s=__10__ ,k=___7__ 。

#include void main(void) {int j,k,s,m; for(k=1;k<7;k++){ s=1;m=k+2; for(j=k;j

int i, p=0; while(x>w[p]) p++; for(i=n+1;i>p;i--) w[i]=_______;

w[p]=x; ++n; } w[i-1] 44. 验证哥德巴赫猜想:任何一个大于6的

偶数均可表示为两个素数之和。要求将6~100之间的偶数都表示为两个素数之和。素数指只能被1和自身整除的正整数,1不是素数,2是素数。请填空。

#include int prime(int n) { int k;

for( k=2; k<=n/2; k++)

if( n%k==0) return 0 ; return__________; }

void main( ) { int j, k ;

for(j=6; j<=100 ; j+=2) for(k=2; k<=j/2 ; k++) if(_________)

{ cout<

break; }

} 1 prime(k)>>prime(j-k)

45. 下列函数将判断字符c是否在字符串s中出现, 请填空。

int f(char *s , char c) {

for(__________) if(c==*s) break; return(c==*s); } *s;s++

46. 以下程序的执行结果是___x=1____。 #include int x=1;

void func(int); void main() { func(x);

cout<<\}

void func(int x) { x=3;}

47. 以下程序的执行结果是__25____ 。 #include int add(int a,int b); void main() { 精品文档 欢迎下载

extern int x,y;

cout<

int x=20,y=5; int add(int a,int b) {

int s=a+b; return s; }

48. 指出下面程序的输出结果_1_1_2_3_5_8_13_21 34 55 #include void main()

{ int i1=1,i2=1,i3,i;

cout<

cout<

49. 执行下列程序段后,i值为__2____。 int f(int x) {

static int k=0; x+=k++; return x; }

int i=f(f(1)) ;

50.在C++中,函数名的值是__函数的入口地址__。

VC练习卷1 总分:100分 -1.单项选择题

1.设有说明“int x=10,y=4,f;float m;”,执行表达式“f=m=x/y”后,则f、m的值分别为 A. 2、2.5 B. 3、2.5 C. 2.5、2.5 D. 2、2.0 d 2. 设int a=2,b=2;则++a+b的结果是___d___,a的结果是_____,b的结果是____。 A. 2 3 5 B. 3 2 5 C. 4 3 2 D. 5 3 2 3. 下列字符列中,可以作为“字符串常量”的是___b_____。

A. ABC B. ″xyz″ C. ′uvw′D. ′a′ 4. 设有变量说明:int a=3,b=4,c=5下列表

达式中,值为0的表达式是 d

A. ?a‘&&?b B. a<=b C. a || b+c && b-c D. !(a

5. 设int m=l,n=2;则m++==n的结果_a__。 A. 0 B. 1C. 2D. 3

6.表达式18/4*sqrt(4.0)/5值的数据类型是_c_

A. int B. float C. double D. 不确定 7. 设有语句“int k=7,x=12;”,则能使值为3的表达式是__d____

A. x%=(k%=5) B. x%=(k–k%5) C. x%=k–k/5 D. (x%=k)–(k%=5)

8. 设int m=l,n=2;则++m==n的结果是__b______。

A. 0 B. 1 C. 2 D. 3

9. 在C++语言中,自定义的标识符_______d_____。

A. 能使用关键字并且不区分大小写 B. 不能使用关键字并且不区分大小写

C. 能使用关键字并且区分大小写 D. 不能使用关键字并且区分大小写 10. 设有说明“int a=15,b=17,c;”,执行表达式“c=a||(b+=b)”后,则a、b、c的值分别是 a

A. 15、17、1 B. 1、34、35 C. 15、34、1 D. 15、17、15

11. 在ios中提供控制格式的标志位中,__a__是转换为十六进制形式的标志位。 A. hex B. oct C. dec D. 1eft

12. 若有执行语句char str[7];cin>>str;当输入为:ObjectWindowsPrograrmming!所得的结果是str=___b_____

A. Object Windows Programming! B. Object C. Object Windows

D. Object Windows Programming 13. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果分别是___b____. #include void main() { int x; cin>>x;

if(x++>5) cout<

A. 6和3 B. 7和5 C. 7和4 D. 6和4 精品文档 欢迎下载

14. C++中cin是______d______。

A. 一个标准的语句 B. 预定义的类 C. 预定义的函数 D. 预定义的对象

15. 使用如setw()的操作对数据进行格式输出时,应包含___c_____文件

A. iostream.h B. fstream.h C. iomanip.h D. stdlib.h

16. 设有两个语句“int x['a'];cin>>x;”,则编译器认为___c____

A. 说明语句“int x['a'];”错 B. 两个语句都错 C. 语句“cin>>x;”错 D. 两个语句正确,没有语法错 17. 控制格式I/O的操作中,__d___是设置域宽的。

A. ws B. oct C. setfill() D. setw() 18. 下列关于开关语句的描述中,__a_____是正确的.

A. 开关语句中default子句可以没有,也可以有一个

B. 开关语句中每个语句序列中必须有break语句

C. 开关语句中default子句只能放在最后 D. 开关语句中case子句后面的表达式可以是整型表达式

19. C++语言中while和do-while循环的主要区别是____a____.

A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格

C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句 20.下列DO-While循环的次数为___d_____. int i=5; Do

{ cout<

}while(i!=0);

A. 0 B. 1 C. 5 D. 无限

21. 下述关于break语句的描述中,____c___是不正确的

A. break语句可用于循环体内,它将退出该重循环

B. break语句可用于开关语句中,它将退出开关语句


C++基础+编程题复习(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: