1、C+期中考试试题一、 选择题(20*1)1设有说明“int a = 3,b = 5,m;”,则执行表达式“m = a=3& a+bx;float z, yx=1,2,3,4,5,6,7,8; /A z=v3;/B 则以下说法中正确的是 。Az的值为4 Bz的值为3 CB行语句错 DA行语句错4有关函数重载的正确说法是 。 A函数名不同,但参数的个数和类型相同 B函数名相同,但参数的个数不同或参数的类型不同 C函数名相同,参数的个数和类型也相同 D函数名相同,函数的返回值不同,而与函数的参数和类型无关5数组作为函数的形参时,把数组名作为实参,传递给函数的是 。 A该数组的首地址 B该数组的元素个
2、数 C该数组中的各元素值 D该数组的大小 6执行以下语句序列: enum Red,Blue,Yellowcl,c2;cl=YeHow;/A cout cl; /B则 。A输出1B输出2C输出3DB行语法错7设有说明语句“int a34=1,2,3,4,5,6,7,8,9,10,11,12; int * p=&a00;”,能够正确表示数组元素a22的表达式是 。Ap22B*(*(p+2)+2)C*(p+10)D*(p+8)8在循环语句的循环体中使用break语句的作用是 。A结束本次循环B结束该层的循环C结束开关语句D结束程序执行9设有说明语句“int A43=1,2,3,4,5,6,7,8,9
3、,10;”,则A02和A22的初始化值分别为 。A0、7B3、8C3、7D0、810设有语句“float(*p)(int,int);”,该语句的作用是 。A函数原型说明Bp为指向函数的指针变量C函数定义Dp为指向整数的指针变量11循环语句for(;)中,的执行情况是 。A至少执行一次B至少执行两次C可能执行,也可能不执行D不执行12设有函数定义“int f1(void)return 100,200;”,设用函数f1()时, 。A函数返回值100B函数返回两个值100和200C函数返回值200D语句“return 100,200;”语法错,不能调用函数13设有语句“int fun(char*,i
4、nt &);char str100;int k;”,则对函数fun的正确的调用形式是 。Afun(str, &k)Bfun (str, k)Cfun(str100, k)Dfun(str100, &k)14执行下列程序段后,变量i的值为 。int i = 10;switch(i) case 9: i+=1;case 10: i+=1;case 11: i+=1;default: i+=1; A. 13 B.12 C.11 D.1415设有语句“for(int i=5, sum=0; i10, sum+; i+)sum+=i;”,则for()语句的执行情况是 。A循环0次B循环4次C循环5次D循
5、环6次16设有说明“int x=1,2,3,4,5, *p=x;”,输出值不是5(数组x的元素个数)的是 。Acoutsizeof(x)/sizeof(int)n;Bcoutsizeof(x)/sizeof(x0)n;Ccoutsizeof(p)/sizeof(int)n;Dcoutsizeof(x)/sizeof(1)n;17下列数组定义中错误的是 。Achar s1a;Bchar s26=string;Cstatic int a4=1;Dchar * p=A,B,C;18.在数学式中,变量x和y的取值为整数,而变量a和b的取值为实数,在C+程序中对应的正确表达式是 。A.3/5*x*y/a
6、/bB.3*x*y/5/a/bC.3*x*y/5*a*bD.3/a/b/5*x*y19.编译以下程序时,结果是 。#include /第1行#define aa 123;/第2行void main(void)/第3行coutaan;/第4行A.编译时第2行出错B.编译时第4行出错C.编译时第2行和第4行均出错D.编译时无错误20若定义了说明语句:int m=10;下列选项中,能正确说明引用类型变量x的语句是 Aint &x=m;Bint &x=10;Cint &x;Dint &x=&m; 二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行) 基本概念题(6*1)1C+关系表达式中
7、的关系成立时,则该关系表达式的值为 。2静态整型变量有确定的初值,其缺省的初值是 。3.设有语句“char s=China0Nanjin;int m=strlen(s);”,则m的值是 。4若有宏定义:# define T(x,y,z) x*y*z/4则表达式T(3+4,2*4,4+4)的值是 。5以下语句输出结果为 。 int a = 10; int b = 6; int cbit = a | b; int clogic = a | b; cout cbit “n” clogic “n” ;6vector b(10, 1) 请解释该语句的作用 : 阅读程序题(10*3)7以下程序输出的第一行
8、是 ,第二行是 。int a = 15;void main()int a = 20, b = 40;int a = 0, b = 0;for(int i = 1; i 3; i+)a += i; b += a;cout a b :a endl;cout a b endl;8以下程序输出的第一行是 ,第二行是 。int f(int x=0)static int t = 10; /Aint a = 10; /Bt += 5; a += 5;return x * a + t; /C void main(void)coutf()endl; coutf(5)endl;9以下程序的输出结果是 。void
9、f(int &a, int&b)int t=a;a=b;b=t;void main(void)int x=100,y=200; f(x, y); coutxtyn;10以下程序的输出结果是 。void p(int *a, int *b)int *t=a;a=b;b=t;void main(void)int x=100,y=200;p(&x,&y);coutxtyn;11以下程序输出的结果是 。void main(void)for(int a=1,b=1;a=8) break;if(b%2=1)b+=7;continue;b-=3;couta=anb=bn;12以下程序输出的第一行是 ,第二行是
10、 。void main(void)int x=6;dox-=2;coutxn;while(-x);13以下程序输出的第一行是 ,第二行是 。int f(void)static int a,b=10,c=1;a+=b;b+=c;return c=a+b;void main(void) coutf()endl;coutf()endl;14以下程序输出的第一行至第三行分别是 、 和 。int f(int x,int y)return x*y;void main(void)int i,j,(* fun)(int,int);fun=f;for(i=1;i4;i+)switch(i)case 1:case
11、 2:j=(*fun)(i,i+1);break;case 3:j=(*fun)(i-1,i+2);break;coutj=jn;15以下程序输出的第一行至第三行分别是 、 和 。#include #include #include int main(void) using namespace std; vector vec; vector:const_iterator i; vec.push_back(bird); vec.push_back(girl); vec.push_back(boy); for(i=vec.begin(); i!=vec.end(); +i) cout(*i)endl; return 0;16以下程序输出的第一行至第三行分别是 、 和 。#include #include int main(void)using namespace std;/创建堆栈对象stack s;/元素入栈s.push(3);s.push(19);s.push(23);/元素依次出栈while(!s.empty() cout s.top() endl; /打印栈顶元素s.pop(); /出栈return 0;