C++基础+编程题复习 下载本文

内容发布更新时间 : 2024/4/28 6:39:34星期一 下面是文章的全部内容请认真阅读。

C. char cl[ ]={?1‘,‘2‘,‘3‘,‘4‘,‘5‘}; D. char c2[ ]={?\\x10‘,‘\\xa‘,‘\\x8‘};

168. 对以下说明语句的正确理解是___b___

int a[10]={6,7,8,9,10};

A. 将5个初值依次与给a[1]至a[5] B. 将5个初值依次与给a[0]至a[4] C. 将5个初值依次与给a[6]至a[10] D. 因为数组长度与初值的个数不同,所以此语句不正确

169. 以下各组选项中,均能正确定义二维实型数组a的选项是:___c___

A. float a[3][4]; float a[ ][4]; float a[3][ ]={{1},{0}};

B. float a(3,4); float a[3][4]; float a[ ][ ]={{0};{0}};

C. float a[3][4]; static float a[ ][4]={{0},{0}}; auto float a[ ][4]={{0},{0},{0}};

D. float a[3][4]; float a[3][ ]; float a[ ][4] 170.若有说明:int a[3][4];则数组a中各元素___c__ A. 可在程序的运行阶段得到初值0 B. 可在程序的编译阶段得到初值0 C. 不能得到确定的初值

D. 可在程序的编译或运行阶段得到初值0 171. 若有说明:int a[3][4]={0};则下面正确的叙述是___d___

A. 只有元素a[0][0]可得到初值0 B. 此说明语句不正确

C. 数组a中各元素都可得到初值,但其值不一定为0

D. 数组a中每个元素均可得到初值0 172. 以下不能对二维数组a进行正确初始化的语句是___c___ A. int a[2][3]={0};

B. int a[ ][3]={{1,2},{0}};

C. int a[2][3]={{1,2},{3,4},{5,6}}; D. int a[ ][3]={1,2,3,4,5,6};

173. 以下能对二维数组a正确初始化的语句是___b___

A. int a[2][ ]={{1,0,1},{5,2,3}}; B. int a[ ][3]={{1,2,3},{4,5,6}}; C. int a[2][4]={{1,2,3},{4,5},{6}}; D. int a[ ][3]={{1,0,1},{ },{1,1}}; 174. 若有说明:int a[3][4];则对a数组元素的非法引用是___d__

A. a[0][2*1] B. a[1][3] C. a[4-2][0] D. a[0][4]

175. 若有说明:int a[3][4];则对a数组元素的正确引用是____c__ A. a[2][4] B. a[1,3] C. a[1+1][0] D. a(2)(1)

176. 以下对二维数组a正确说明是___c___

A. int a[3][ ]; B. float a(3,4);

C. double a[1][4]; D. float a(3)(4); 177. 在C++语言,一维数组的定义方式为:<类型说明符> 数组名 ___d___; A. [常量表达式] B. [整型表达式] C. [整型常量]或[整型表达式] D. [整型常量]

178. 若有说明:int a[10];则对a数组元素的正确引用是___d___

A.a[10]B. a[3.5] C. a(5) D. a[10-10]

179.以下定义一维整型数组a的正确方法是_d__ A. int a(10); B. int n=10,a[n]; C. int n;cin>>n;int a[n]; D. #define SIZE 10 int a[SIZE];

180. 在C++语言中,引用数组元素时,其数组下标的数据类型允许的是___c___ A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式 -2.填空题

1. 下面程序的功能是:从键盘上输入若干个整数,按升序排序后输出。 #include void sort(int a[],int n) { for(int i=0;_______;i++) for(int j=i+1;j

if(a[i]>a[j]){ int t=a[i];a[i]=a[j];a[j]=t;} }

void Input(int *p,int n)

{ cout<<\输入\个整数:\\n\for(int i=0;i> _________; }

void Output(int * p,int n)

{ for(int i=0;i

cout<<\输入要排序数的个数(小于200):\cin>>num;

Input(x,num);sort(x,num);Output(x,num); } i

2. 在C++中,字符串常量“Students”的值是_该字符串的首地址_。 3. 设有语句“int x[4][3]={3,4,5,6,7,8,9,10,11,12};”,则x[3][2]的初值是__0__。

4. 设有语句“int a[10];”,则a的值是_数组a的起始地址_。

5. 以下程序的执行结果是__0 2 4 6 。 #include void func(int[]); void main()

{ int a[]={5,6,7,8},i; func(a);

for(i=0;i<4;i++) cout<

void func(int b[]) { int j;

for(j=0;j<4;j++) b[j]=2*j; }

6. 以下程序的执行结果是_s=55___ 。 #include int sum(int); void main() { int s,i;

for(i=1;i<=10;i++) s=sum(i);

cout<<\}

int sum(int k) { static int x=0; return(x+=k); }

7. 以下程序的执行结果是__5678901234__ 。 #include

void fun(int *s,int nl,int n2) { int i,j,t; i=nl;j=n2; while(i

{ t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; i++; j--; } }

void main()

{ int a[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a; fun(p,0,3);fun(p,4,9);fun(p,0,9); for(i=0;i<10;i++) cout<<*(a+i); cout<

8. 以下程序的执行结果是_120_ 。 #include f(int b[],int n) { int i,r=1;

for(i=0;i<=n;i++) r=r*b[i]; return r; }

void main ( )

{ int x,a[]={2,3,4,5,6,7,8,9}; x=f(a,3);

cout<

9. 已知f定义为double f[4][3]={{1,2},{5},{6,7,8}};则f共有___6__个值为0的元素。

10. 下面程序运行后输出的结果是____4_3___ 。

#include void main()

{ char a[]=\ int i1=0,i2=0,i=0; while(a[i])

{ if(a[i]=='a') i1++; if(a[i]=='b') i2++; i++; }

cout<

}

11. 下面程序运行后输出的结果是___c_e_g_ 。

#include void main()

{ char s[][5]={\ int x,y;

for(x=0;x<3;x++) for(y=0;y<4;y++) { int z=x+y; if(z==3)

cout<

12. 执行完

int data[ ]={0,1,2,3,4,5};

#define SIZE sizeof(data)/sizeof(data[0]) 则SIZE的值为_6___。 13. 执行语句序列

char s[20]=\程序设计\ cout<

输出结果是____8___。

14. 执行语句序列 char s1[20]=\ strcat(s1,strcat(s2,s3));

后s1,s2,s3的值分别是___(1)___ 、___(2)___ 、ccccc 。 Aaabbbbccccc bbbbccccc 15. 执行语句序列

char s1[10]=\int k=0,j=0;

while(s2[k]) k++;

while(s1[j]) s2[--k]=s1[++j];

后,数组s2中的字符串是__XYZ__ 。 16. 执行语句序列

char s1[ ]=\for(int i=0;s2[i]=s1[i];i++);

后,数组s2中的字符串是__ABCD__。 17. 字符串\zht\\n\占用的存储单元为___9__。

18. 有程序如下,运行后输出的是___16__。 #include void main(void) { int a[4][4]={{1,2,0,-1},{3,-2,-3,0},{4,0,-5,5},{-6,

6,0,7}};

for(int i=0,s=0;i<4;i++) for(int j=0;j<4;j++) { if(a[i][j]<0)continue; if(a[i][j]==0)break; s+=a[i][j]; }

cout<

19. 以下程序输出的第一行是_221___,第二行是__y=0___。 #include void main(void) { int y=290,b[10]; for(int i=0;y;i++) { b[i]=y;y=y/16; } for(int j=0;j

cout<<\}

20. 设有语句“ char s[ ]=\; int m=strlen(s);”,则m 的值是_5___。

21. 设有语句”char s[]=\m=sizeof(s);”,则m的值是__7__。 22. 52.若有宏定义: #define N 3

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

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

23. 以下程序的输出结果是 __200,100__。 #include

void f(int &a,int &b){int t=a;a=b;b=t;} void main(void) { int x=100,y=200; f(x,y);

cout<

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

25. 若有宏定义: #define T(x,y,z) x*y*z/4 则表达式T(8-3,2*4,2+3)的值是__-40__。 26. 以下程序输出结果的第一行是_1 2 3 4

5__,第二行是__7____。 #include int k;

void main(void) { k=5;

for(int i=0;i<5;i++){ int k;k=i+1; cout<

cout<<'\\n'<

27. 以下程序输出的第一行是____2____,第三行是____24___。 #include int fun(int n) { static int j=1; return j*=++n; }

void main(void)

{ for(int k=1;k<=4;k++) cout<

28. 以下程序使用递归函数实现单向链表操作,完成链表的创建和显示、释放链表的结点。

#include struct node{ float data; node *next; };

void ShowChain(node *head) //依次输出每一个结点上的数据 { if(head)

{ cout<data<

if(head->next) ShowChain(____(1)____); } }

void AddNode(node *p,node *&head) //将p所指向的结点插入链尾

{ if(head==NULL) head=____(2)____; else AddNode(p,head->next); }

void DeleteChain(node *head) { node *p=head; if(p)

{head=___(3)____; delete p;

if(head) DeleteChain(head); } }

void main(void)

{node *head=NULL,*temp; temp=new node; while(2)

{ temp->next=NULL; cout<<\输入数据:\ cin>>temp->data;

if(temp->data>0) AddNode(temp,head); //将新结点加入链表的尾部 else

{ delete temp; break; }

temp=new node; }

ShowChain(head); DeleteChain(head);

} head->next p head->next/p->next

29. 执行以下语句序列后,y的值为____17___。 #define S(x) x*x int y,z=5; y=S(z+2);

30. #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______。

31. 运行以下程序后输出的第二行是___6__,第四行输出的是__20_____。 #include int f(int n,int x) { x+=1;

if(n==3) return x;

else return x+f(n+1,x+1); }

void main(void)

{ cout<

32. 如果一函数直接或间接地调用自身,这样的调用称为__递归调用__。 33. 已知函数f的定义是: int f(int n)

{ n*=2; return n+1;} 则执行 int m=6,n=2; m=f(n);

后,m和n的值分别是__5__2____。 34. 已知函数f的定义是: int f(int n,int m=8) { return n*m;} 则执行 int a=3; cout<

后输出的结果是___24_____。

35. 下面程序运行后输出的第二行是___10_35_5______ 。 #include int a=5;

void main() { int a=10,b=20;

cout<

for(int i=1; i<6; i++) {a+=i; b+=a; }

cout<

36. 以下程序运行后输出的结果是___36___。

#include

int get(int x[],int n) //n表示数组x中的元素个数

{ if(n==1) return x[0];

else return get(x,n-1)+x[n-1]; }

void main( )

{ int x[]={0,1,2,3,4,5,6,7,8}; int n=sizeof(x)/sizeof(int); cout<

37. 以下程序运行后输出的结果是____2_4_6_______。 #include int sbc(int a) { static k; a+=k++; return a; }

void main()

{ cout<

38. #define的作用是__宏定义__。

39. C++中默认main函数的返回类型是__int__,所以在定义main函数时可以不写返回值类型。

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

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

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

cout<<\}

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