您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页C++题库

C++题库

来源:华佗小知识


〖第1题〗『填 空』(2.0分)(题号:85)

设x=62,表达式x>=60&&x<70||x==1的值为【1】. 答案:

1). 1 〖第2题〗『填 空』(2.0分)(题号:6578) 【1】是标准C++指定的一个名字空间. 答案:

1). std

〖第3题〗『填 空』(2.0分)(题号:6557)

在面向对象程序设计中,与构造函数相对应的函数称为【1】函数. 答案:

1). 析构 〖第4题〗『填 空』(2.0分)(题号:67) 设(k=a=5,b=3,a*b),则k值为【1】. 答案:

1). 5 〖第5题〗『填 空』(2.0分)(题号:75)

设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值为【1】. 答案:

1). 1

〖第6题〗『填 空』(2.0分)(题号:6399) int x=2,y=3,z=4; 则表达式!x+y>z的值为【1】. 答案:

1). 0 〖第7题〗『填 空』(2.0分)(题号:24)

程序段int k=10; while(k=0) k=k-1循环体语句执行【1】次. 答案:

1). 0

〖第8题〗『填 空』(2.0分)(题号:6501)

以下程序段要求从键盘输入字符,当输入字母为'Y' 时,执行循环体,则在括号内填写. #include \"iostream.h\" main()

{char ch=cin.get();

while(ch 【1】 'Y')/*在括号中填写*/ ch=cin.get(); }

答案:

1). == 〖第9题〗『填 空』(2.0分)(题号:6532)

执行语句char s[5]=\"abcd\的值是【1】. 答案: 1). c

1

〖第10题〗『填 空』(2.0分)(题号:91)

数组在内存中占一段连续的存储区,由【1】代表它的首地址. 答案:

1). 数组名 〖第1题〗『判 断』(1.0分)(题号:1455) 定义符号常量pi.const float pi= 3.1415926f; 答案:Y 〖第2题〗『判 断』(1.0分)(题号:1433)

成员函数与一般的函数一样可以重载.内联和设置参数的默认值. 答案:Y 〖第3题〗『判 断』(1.0分)(题号:1436)

派生类只继承基类中的公有成员和保护成员,而不继承私有成员. 答案:N 〖第4题〗『判 断』(1.0分)(题号:1428)

创建对象时系统自动调用相应的构造函数为对象初始化. 答案:Y 〖第5题〗『判 断』(1.0分)(题号:1453) a'代表一个字符常量,占一个字节. 答案:Y 〖第6题〗『判 断』(1.0分)(题号:1624)

若x为int型变量,则执行以下语句后x的值为-24. x=6;

x+=x-=x*x; 答案:N 〖第7题〗『判 断』(1.0分)(题号:1655)

定义一个输入文件流对象,并打开d盘du文件夹下的abc.dat文件方法是: ifstream fin;

fin.open(\"d:\\du\\abc.dat\"); 答案:N 〖第8题〗『判 断』(1.0分)(题号:1449)

使用预定义操纵算子,首先必须在源程序的开头包含iomanip.h文件. 答案:Y 〖第9题〗『判 断』(1.0分)(题号:1526) 一次性输入、输出字符数组时,只写字符数组名. 答案:Y 〖第10题〗『判 断』(1.0分)(题号:18) int *p=null;是正确的定义. 答案:N 〖第1题〗『单项选择』(1.0分)(题号:3679)

设有定义char str[]=\"abcde\则下列语句中能正确输出字符串的是(). A:cout<2

答案:B 〖第2题〗『单项选择』(1.0分)(题号:3472) 以下不正确的叙述是().

A:在C++程序中所用的变量必须先定义后使用 B:程序中,APH和aph是两个不同的变量

C:若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变 D:当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值 答案:D 〖第3题〗『单项选择』(1.0分)(题号:3412)

经过下列的语句 int j,a[10],*p;定义后,下列语句中合法的是(). A:p=p+2; B:p=a[5]; C:p=a[2]+2; D:p=&(j+2);

答案:A 〖第4题〗『单项选择』(1.0分)(题号:3429) 下列数组说明中,正确的是(). A:int array[][4]; B:int array[][]; C:int array[][][5]; D:int array[3][]; 答案:A 〖第5题〗『单项选择』(1.0分)(题号:3681) 函数重载是指().

A:两个以上的函数取相同的函数名,但形参的个数或类型不同

B:两个以上的函数取相同的名字和相同的参数个数,但形参的类型可以不同 C:两个以上的函数名字不同,但形参的个数或类型相同 D:两个以上的函数名字、参数的个数和类型都相同 答案:A 〖第6题〗『单项选择』(1.0分)(题号:3527)

假定int类型变量占用四个字节,其有定义:int x[10]={0,2,4};, 则数组x在内存中所占字节数是(). A:6 B:12 C:20 D:40 答案:D 〖第7题〗『单项选择』(1.0分)(题号:3693) 在派生类的函数中能够直接访问基类的(). A:公有成员和私有成员 B:保护成员和私有成员 C:公有成员和保护成员 D:仅能是公有成员 答案:C

3

〖第8题〗『单项选择』(1.0分)(题号:3571) 下列表达式中,可作为C++合法表达式的是(). A:[3,2,1,0] B:(3,2,1,0) C:3=2=1=0 D:3/2/1/0 答案:B 〖第9题〗『单项选择』(1.0分)(题号:3558)

若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是(). A:&t[3][2] B:t[3] C:&t[1] D:t[2]

答案:D 〖第10题〗『单项选择』(1.0分)(题号:3455)

设a=12,且a定义为整型变量.执行语句a+=a-=a*=a;后a的值为(). A:12 B:144 C:0 D:132

答案:C 〖第1题〗『程序填空』(8.0分)(题号:348) 【程序填空】

题目:求1-10之间的奇数和。 #include void main() {

/***********SPACE***********/ 【?】; k=0;i=1;

/***********SPACE***********/ while(【?】)

/***********SPACE***********/ {if(【?】) { k+=i;} i++; }

/***********SPACE***********/ cout<<【?】; }

答案:

1). int k,i 或 int i,k 2). i<10 或 i<=10

4

3). i%2==1 或 i%2!=0 4). k 〖第2题〗『程序填空』(8.0分)(题号:351) 【程序填空】

题目:将一维数组大于等于平均值的元素存入另一个数组, 小于平均值的元素仍存在原数组,并打印这两个数组。 #include void main() {

int i,sum,la,lb,av,n; float a[100],b[100];

/***********SPACE***********/ 【?】;

for(i=0;i>a[i];

/***********SPACE***********/ 【?】;

for(i=0;i/***********SPACE***********/ 【?】; la=lb=0;

for(i=0;i=av) b[lb++]=a[i]; else

/***********SPACE***********/ {【?】; }

for(i=0;i答案:

1). cin>>n 2). sum=0 3). av=sum/n 4). a[la++]=a[i] 〖第3题〗『程序填空』(8.0分)(题号:58) 【程序填空】

题目:以下程序的功能是将一个数组中的元素按逆序存放。 #include

5

#define N 7 void main () {

static int a[N]={12,9,16,5,7,2,1},k,s; cout << \"\\n the origanal array:\\n\"; for (k=0;kcout << a[k] << \" \";

/***********SPACE***********/ for (k=0;ks=a[k];

/***********SPACE***********/ 【?】 ;

/***********SPACE***********/ 【?】 ; }

cout << \"\\n the changed array:\\n\"; for (k=0;k/***********SPACE***********/ 【?】 << a[k] << \" \"; cout<答案:

1). k++ 或 k=★k★+★1 或 k+=1 或 ++k

2). a[k]=a[N-k-1] 或 a[k]=a[N-1-k] 或 a[k]=a[6-k] 或 a*(a+k)=*(a+N-k-1] 或 *(a+k)=*(a+N-1-k] 或 a[k]=a[-1+N-k

3). a[N-k-1]=s 或 a[N-1-k]=s 或 a[6-k]=s 或 a[N★-k★-1]=s 或 *(a★+N★-k★-1)=s 4). cout 〖第1题〗『程序改错』(8.0分)(题号:290) 【程序改错】

题目:打印扬辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1

注意:不可以增加或删除程序行,也不可以更改程序的结构。 #include void main() {int a[5][5],i,j; for(i=0;i<5;i++) {

/***********FOUND***********/ a[i][1]=1;

6

a[i][i]=1;

for(j=1;j<=i-1;j++)

/***********FOUND***********/ a[i][j]=a[i-1][j-1]+a[i][j]; }

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

/***********FOUND***********/ for(j=0;j<5;j++)

/***********FOUND***********/ cout<答案:

1). a[i][0]=1;

2). a[i][j]=a[i-1][j-1]+a[i-1][j]; 3). for(j=0;j<=i;j++) 4). cout<题目:已知一个数列从第0项开始的前三项分别为0、0、1,以 后的各项都是其相邻的前三项的和。下列给定程序中, 函数fun的功能是:计算并输出该数列的前n项的平方根 之和sum,n的值通过形参传入。

例如,当n=10时,程序的输出结果应为23.177745。 请更改程序中的错误,使它能得出正确的结果。

注意:不可以增加或删除程序行,也不可以更改程序的结构。 #include #include

/**********FOUND**********/ fun (int n) {

double sum,s0,s1,s2,s; int k;

/**********FOUND**********/ sum=0.0;

if(n<=2) sum=0.0; s0=0.0; s1=0.0;

/**********FOUND**********/ s2=0.0;

/**********FOUND**********/ for(k=4;k>n;k++) {

7

s=s0+s1+s2; sum+=sqrt(s); s0=s1;s1=s2;s2=s; }

return sum; }

void main() {

int n; cin>>n;

cout<答案:

1). double fun (int n)

2). sum=1.0; 或 sum=1; 3). s2=1.0; 或 s2=1;

4). for(k=4;k<=n;k++) 或 for(k=4;n>=k;k++) 或 for(k=4;kk;k++) 或 for(k=4;1 〖第1题〗『程序设计』(10.0分)(题号:226) 【程序设计】

题目: 将1-100之间奇数顺序累加存入n中,直到其和等于或大于200为止 注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。 #include #include #include void writeinfile(int n) {

fstream myfile;

myfile.open(\"f.txt\myfile<void main() {int m,n=0;

/**********Program**********/ /********** End **********/ writeinfile(n); }

答案:

for(m=1;m<=100&&n<200;m+=2) n+=m;

〖第2题〗『程序设计』(10.0分)(题号:159

8

或 【程序设计】

题目:在一维数组中分类统计正数和负数的个数。

正数的个数存入变量C1中,负数个数存入变量C2中. 注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。 #include #include void wwjt(int ,int ); void main() {

int a[10]={1,-2,0,4,-5,0,7,8,-9,10}; int c1=0,c2=0; int i;

/**********Program**********/

/********** End **********/ wwjt(c1,c2); }

void wwjt(int o,int p) {

int k;

fstream myfile;

myfile.open(\"out.txt\ myfile<答案:

for (i=0; i<10; i++) if (a[i]>0) c1++; else if (a[i]<0) c2++; 二

〖第1题〗『填 空』(2.0分)(题号:63) cin.get()函数只能接收一个【1】. 答案:

1). 字符 〖第2题〗『填 空』(2.0分)(题号:58) 若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3

该数组的元素中,数值最大的元素的下标值是【1】. 答案:

9

1). 2

〖第3题〗『填 空』(2.0分)(题号:03) int x=2,y=3,z=4; 则表达式x+y&&z的值为【1】. 答案:

1). 1

〖第4题〗『填 空』(2.0分)(题号:19)

x=5,y=8时,C++语言表达式5-2>=x-1<=y-2的值是【1】. 答案:

1). 1

〖第5题〗『填 空』(2.0分)(题号:6521) 已知int a=13,b=6; a/b的十进制数值为【1】. 答案:

1). 2

〖第6题〗『填 空』(2.0分)(题号:75)

设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值为【1】. 答案:

1). 1

〖第7题〗『填 空』(2.0分)(题号:65)

设 x 的值为15,n 的值为2,则表达式 x%=(n+3) 运算后 x 的值是【1】. 答案:

1). 0 〖第8题〗『填 空』(2.0分)(题号:40)

将数组a的首地址赋给指针变量p的语句是【1】. 答案:

1). p=a; 或 p=&a[0]; 〖第9题〗『填 空』(2.0分)(题号:6513)

已知 i=5,写出语句 i*=i+1; 执行后整型变量 i 的值是【1】. 答案:

1). 30 〖第10题〗『填 空』(2.0分)(题号:6501)

以下程序段要求从键盘输入字符,当输入字母为'Y' 时,执行循环体,则在括号内填写. #include \"iostream.h\" main()

{char ch=cin.get();

while(ch 【1】 'Y')/*在括号中填写*/ ch=cin.get(); }

答案:

1). == 〖第1题〗『判 断』(1.0分)(题号:1424)

类中的成员函数都是公有的,数据成员都是私有的. 答案:N 〖第2题〗『判 断』(1.0分)(题号:1527)

输入字符数组的字符串应短于定义的字符数组个数,否则下标越界.

10

答案:Y 〖第3题〗『判 断』(1.0分)(题号:10) continue是C++语言中的关键字. 答案:Y 〖第4题〗『判 断』(1.0分)(题号:1427)

对象成员的表示方法与结构体变量成员的表示方法相同. 答案:Y 〖第5题〗『判 断』(1.0分)(题号:1650) 定义输入文件流对象fin方法是:ofstream fin; 答案:N 〖第6题〗『判 断』(1.0分)(题号:1463) a=3*5 , a*4; 最终a为60. 答案:N 〖第7题〗『判 断』(1.0分)(题号:1478)

break语句只能跳出switch选择或循环语句的当前嵌套层次. 答案:Y 〖第8题〗『判 断』(1.0分)(题号:1547)

int x,a[10]={0,1,2},*p=a;x=*(p+2);此语句将a[2]赋值给变量x 答案:Y 〖第9题〗『判 断』(1.0分)(题号:15) 对二维数组正确定义的形式是:int a(2)(3); 答案:N 〖第10题〗『判 断』(1.0分)(题号:1653)

定义一个输出文件流对象,并打开d盘du文件夹下的abc.dat文件方法是: ofstream fout;

fout.open(\"d:\\\\du\\\\abc.dat\"); 答案:Y 〖第1题〗『单项选择』(1.0分)(题号:3443) 以下描述中,正确的是().

A:预处理是指完成宏替换和文件包含中指定的文件的调用 B:预处理指令只能位于C源文件的开始

C:C源程序中凡是行首以#标识的控制行都是预处理指令

D:预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备 答案:C 〖第2题〗『单项选择』(1.0分)(题号:3501)

在C++语言中,要求运算数必须是整型的运算符是(). A:&& B:% C:! D:>

答案:B 〖第3题〗『单项选择』(1.0分)(题号:3471)

以下标识符中,不能作为合法的C用户定义标识符的是(). A:return

11

B:_double C:_123 D:INT 答案:A 〖第4题〗『单项选择』(1.0分)(题号:30)

设有定义: char str[100]; 当执行 cin>>str; 后,从键盘输入: ″C++ programming windows″ 时(不包括双引号),str中的结果是(). A:C++

B:C++ programming C:windows

D:C++ programming windows

答案:A 〖第5题〗『单项选择』(1.0分)(题号:3429) 下列数组说明中,正确的是(). A:int array[][4]; B:int array[][]; C:int array[][][5]; D:int array[3][]; 答案:A 〖第6题〗『单项选择』(1.0分)(题号:3540)

若使用一维数组名作函数实参,则以下正确的说法是(). A:必须在主调函数中说明此数组的大小 B:实参数组类型与形参数组类型可以不匹配 C:在被调用函数中,需要考虑形参数组的大小 D:实参数组名与形参数组名必须一致 答案:A 〖第7题〗『单项选择』(1.0分)(题号:3655)

若有int i=3,*p;p=&i;下列语句中输出结果为3的是(). A:cout<<&p; B:cout<<*i; C:cout<<*p; D:cout<已知year为整型变量,不能使表达式(year%4==0&&year%100!=0) ||year%400==0的值为\"真\"的数据是(). A:1990 B:1992 C:1996 D:2000 答案:A 〖第9题〗『单项选择』(1.0分)(题号:3431) 下列语句的输出结果是().

12

cout<<(int)(2.5+3.0)/3<<\"\\n\"; A:有语法错误不能通过编译 B:2 C:1 D:0

答案:C 〖第10题〗『单项选择』(1.0分)(题号:3672) 以下字符串赋值中不正确的是(). A:char str[]=\"abcdefg\";

B:char str[80]; str=\"abcdefg\"; C:char *pstr=\"abcdefg\"

D:char *pstr=NULL; pstr=\"abcdefg\";

答案:B 〖第1题〗『程序填空』(8.0分)(题号:207) 【程序填空】

题目:在一维数组中统计正数和负数的个数,正数中的个数存入 变量C1中,负数的个数变量C2中。 #include void main() {

int a[10]={1,-2,3,4,-5,6,7,8,-9,10}; /***********SPACE***********/ 【?】

/***********SPACE***********/ for (int i=0;【?】;i++)

/***********SPACE***********/ if(【?】>0) c1++; else

/***********SPACE***********/

【?】;

cout<答案:

1). int★c1=0★,★c2=0★; 2). i<10 3). a[i] 4). c2++ 〖第2题〗『程序填空』(8.0分)(题号:238) 【程序填空】

题目:函数func的功能是:使一个字符串按逆序存放。 #include #include void func (char str[])

13

{

/***********SPACE***********/ 【?】 int i,j;

/***********SPACE***********/ for(i=0,【?】;im=str[i];

/***********SPACE***********/ 【?】; str[j]=m; }

/***********SPACE***********/ cout<<【?】<void main() {

char str[]=\"12345\"; func(str); }

答案:

1). char m;

2). j=strlen(str)-1 3). str[i]=str[j] 4). str

〖第3题〗『程序填空』(8.0分)(题号:332) 【程序填空】

题目:以下程序的功能是产生并输出杨辉三角的前七行。 1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1 #include void main ( ) {

/***********SPACE***********/ 【?】; int i,j,k;

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

/***********SPACE***********/ {a[i][0]=1; 【?】;}

14

for (i=2;i<7;i++) for (j=1;j/***********SPACE***********/ a[i][j]=【?】; for (i=0;i<7;i++) {

/***********SPACE***********/ for (j=0;【?】;j++) cout<答案:

1). int a[7][7] 或 int a[10][10] 或 int a[8][8] 或 int a[9][9] 2). a[i][i]=1

3). a[i-1][j-1]+a[i-1][j] 或 a[i-1][j]+a[i-1][j-1] 4). j<=i 或 i>=j 或 jj 〖第1题〗『程序改错』(8.0分)(题号:270) 【程序改错】

题目:统计100-300之间同时被3,7整除的数的个数N,输出这些数的平方和NS #include void main() {float ns;

/***********FOUND***********/ int k,j; n=0;

/***********FOUND***********/ ns=1;

for(k=100;k<=300;k++) {

/***********FOUND***********/ n37=7%k+3%k;

/***********FOUND***********/ if(n37=0) {n++;

ns=ns+k*k; }

}cout<答案:

1). int n37, k,j,n; 2). ns=0;

3). n37= k %7 + k %3; 4). if(n37==0)

15

〖第2题〗『程序改错』(8.0分)(题号:272) 【程序改错】

题目:计算T=1-1/2+2/3-3/4+……-29/30

注意:不可以增加或删除程序行,也不可以更改程序的结构。 #include void main()

/***********FOUND***********/ { int t1,f,k; float t=1;

/***********FOUND***********/ f=1;

/***********FOUND***********/ for(k=1;k<=30;k++) {

/***********FOUND***********/ t1=(k-1)/k; t+=t1*f; f=-f; }

cout<答案:

1). int f,k; float t1, t=1; 或 int f,k; float t=1,t1; 2). f=-1;

3). for(k=2;k<=30;k++)

4). t1=(float)(k-1)/k; 或 t1=(k-1)/(float)k; 〖第1题〗『程序设计』(10.0分)(题号:226) 【程序设计】

题目: 将1-100之间奇数顺序累加存入n中,直到其和等于或大于200为止 注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。 #include #include #include void writeinfile(int n) {

fstream myfile;

myfile.open(\"f.txt\myfile<void main() {int m,n=0;

/**********Program**********/

16

/********** End **********/ writeinfile(n); }

答案:

for(m=1;m<=100&&n<200;m+=2) n+=m;

〖第2题〗『程序设计』(10.0分)(题号:217) 【程序设计】

题目: 已知一个数m(=252)求各位数字之和

注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。 #include #include #include void writeinfile(int n) {

fstream myfile;

myfile.open(\"f2.txt\myfile<void main() {

int m,s=0,n; m=252;

/**********Program**********/ /********** End **********/ writeinfile(s); }

答案:

while( m!=0)

{n=m%10;s+=n;m=m/10;} 三

第1题〗『填 空』(2.0分)(题号:86)

设x=72,表达式x=(x>=60)的值为【1】.

答案:

1). 1 〖第2题〗『填 空』(2.0分)(题号:23) 表达式18 && 53 的值是【1】. 答案:

1). 1

17

〖第3题〗『填 空』(2.0分)(题号:6557)

在面向对象程序设计中,与构造函数相对应的函数称为【1】函数. 答案:

1). 析构 〖第4题〗『填 空』(2.0分)(题号:6567)

在C++程序中使用文件结束后要关闭文件,关闭文件的函数名是【1】. 答案:

1). close

〖第5题〗『填 空』(2.0分)(题号:42)

如果函数不要求带返回值,可用【1】来定义函数返回值为空. 答案:

1). void

〖第6题〗『填 空』(2.0分)(题号:6554)

在类中,成员的缺省权限是【1】有的. 答案:

1). 私 〖第7题〗『填 空』(2.0分)(题号:6573)

C++中,实参和形参之间的参数传递有三种:值传递、引用传递和【1】. 答案:

1). 地址传递 〖第8题〗『填 空』(2.0分)(题号:21) 表达式 a+=b 相当于表达式【1】. 答案:

1). a=a+b 或 a=b+a 〖第9题〗『填 空』(2.0分)(题号:08) int x=2;z=++x+1; 则x的值为【1】. 答案:

1). 3 〖第10题〗『填 空』(2.0分)(题号:6544) C++程序在执行中,不检查数组下标是否【1】. 答案:

1). 越界 〖第1题〗『判 断』(1.0分)(题号:1436)

派生类只继承基类中的公有成员和保护成员,而不继承私有成员. 答案:N 〖第2题〗『判 断』(1.0分)(题号:1555) 指针函数是指函数的返回值为指针的函数. 答案:Y 〖第3题〗『判 断』(1.0分)(题号:1556) int *fun(int a) {

函数体语句 }

18

函数fun()是一个指针函数,返回值为一个整型的指针. 答案:Y 〖第4题〗『判 断』(1.0分)(题号:1440) 基类中的成员在派生类中都是可以直接访问的. 答案:N 〖第5题〗『判 断』(1.0分)(题号:1480)

在C++中,一个程序无论由多少个源程序文件组成,其中有且仅有一个主函数main(). 答案:Y 〖第6题〗『判 断』(1.0分)(题号:1538)

指针变量的值是指指针所指向的变量在内存中的地址. 答案:Y 〖第7题〗『判 断』(1.0分)(题号:1427)

对象成员的表示方法与结构体变量成员的表示方法相同. 答案:Y 〖第8题〗『判 断』(1.0分)(题号:1519)

字符常量初始化.char ch[7]={'s ' , 't ' , 'u ', 'd ', 'e ', 'n ', ' t' } ; 答案:Y 〖第9题〗『判 断』(1.0分)(题号:1421) 没用参数的两个函数是不能重载的. 答案:Y 〖第10题〗『判 断』(1.0分)(题号:1535)

字符串复制函数strcpy (字符数组1, 字符数组2),字符数组1的长度应大于等于字符数组2的长度. 答案:Y 〖第1题〗『单项选择』(1.0分)(题号:35)

指针变量p进行自加运算(即 执行p++;)后,地址偏移值为1,则其 数据类型为(). A:int B:float C:double D:char 答案:D 〖第2题〗『单项选择』(1.0分)(题号:3495)

C++语言中 while 和 do-while 循环的主要区别是(). A:do-while 的循环体至少无条件执行一次

B:while的循环控制条件比 do-while的循环控制条件更严格 C:do-while 允许从外部转到循环体内 D:do-while 的循环体不能是复合语句 答案:A 〖第3题〗『单项选择』(1.0分)(题号:36) 执行以下程序段后,输出结果是(). #include void main() {

19

int a=10; cout<A:一个指针变量只能指向同一类型变量 B:一个变量的地址称为该变量的指针

C:只有同一类型变量的地址才能放到指向该类型变量的指针变量之中 D:指针变量可以由整数赋,不能用浮点赋 答案:D 〖第5题〗『单项选择』(1.0分)(题号:3676)

设有定义: double array[10]; 表达式 sizeof(array)/sizeof(array[0])的结果是(). A:array数组首地址 B:array数组中元素个数

C:array数组中每个元素所占的字节数 D:array数组占的总字节数 答案:B 〖第6题〗『单项选择』(1.0分)(题号:3482) 以下运算符中,优先级最高的运算符是(). A:= B:!=

C:*(乘号) D:()

答案:D 〖第7题〗『单项选择』(1.0分)(题号:3685)

在声明类时,关键字private、public和protected出现(). A:至少一次 B:至多一次

C:public至少一次 D:任意次数 答案:D 〖第8题〗『单项选择』(1.0分)(题号:3517)

设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型为(). A:float B:char C:int D:double 答案:D

20

〖第9题〗『单项选择』(1.0分)(题号:3421)

设C++语言中,int类型数据占4个字节,则short类型数据占(). A:1个字节 B:2个字节 C:4个字节 D:8个字节 答案:B 〖第10题〗『单项选择』(1.0分)(题号:3485)

在C++语言中,为了结束由while语句构成的循环,while后一对圆括号 中表达式的值应该为(). A:0 B:1 C:True

D:非0 答案:A 〖第1题〗『程序填空』(8.0分)(题号:341) /*------------------------------------------------------- 【程序填空】

--------------------------------------------------------- 题目:输出4行4列矩阵的转置矩阵 -------------------------------------------------------*/ #include void zz(int a[4][4]) { int b,i,j; for(i=0;i<4;i++)

/***********SPACE***********/ for(j=0;j<【?】;j++) {b=a[i][j]; a[i][j]=a[j][i];

/***********SPACE***********/ 【?】;} }

void main() {

/***********SPACE***********/ int【?】,i,j; for(i=0;i<4;i++) for(j=0;j<4;j++) cin>>a[i][j];

/***********SPACE***********/ 【?】;

for(i=0;i<4;i++) {for(j=0;j<4;j++) cout<21

cout<答案:

1). i 或 i+1 2). a[j][i]=b 3). a[4][4] 4). zz(a);

〖第2题〗『程序填空』(8.0分)(题号:343) /*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

题目:输出100以内能被3整除的且个位是6的所有整数之和 -------------------------------------------------------*/ #include void main()

/***********SPACE***********/ {int sum,【?】 sum=0;

/***********SPACE***********/ for(i=1;i<=100;【?】)

/***********SPACE***********/ if(【?】) sum+=i;

/***********SPACE***********/ cout<<【?】; }

答案:

1). i;

2). i++ 或 i=i+1 或 i+=1

3). i%10==6&&i%3==0 或 i%10==6★&&★i%3==0 4). sum

〖第3题〗『程序填空』(8.0分)(题号:345) /*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

题目:求100-1000之间的水仙花数(水仙花数是每位数字的立方 和等于这个数本身的三位数,范例见图1。) -------------------------------------------------------*/ #include void main() {

int i,i1,i2,i3,m;

/***********SPACE***********/

22

for(i=100; i<【?】;i++) {

/***********SPACE***********/ i1=【?】;

/***********SPACE***********/ i2=【?】;

/***********SPACE***********/ i3=【?】;

m=i1*i1*i1+i2*i2*i2+i3*i3*i3; if(i==m)

cout<答案:

1). 1000 2). i/100

3). i/10% 10 或 i%100/10 4). i%10 〖第1题〗『程序改错』(8.0分)(题号:286) /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

题目:在[100,5000]之间打印出各位数字和为5的所有整数的个数. --------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include void main() {

int a,b,c,d,k,i; k=0;

for(i=104;i<=500;i++) {

/***********FOUND***********/ a=i%100;

b=(i-a*100)/10; c=i-a*100-b*10;

/***********FOUND***********/ if(a+b+c<>5) k++;}

for(i=1000;i<=5000;i++) {a=i/1000;

b=(i-a*1000)/100;

/***********FOUND***********/ c=(i-A*1000-b*100)/100;

23

d=i-a*1000-b*100-c*10;

/***********FOUND***********/ if(a+b+c==5) k++; }

cout<答案:

1). a=i/100;

2). if(a+b+c==5) k++;

3). c=(i-a*1000-b*100)/10; 4). if(a+b+c+d==5) k++; 〖第2题〗『程序改错』(8.0分)(题号:)

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:下列给定程序中,函数fun的功能是:求1到10的阶乘的 和。主函数和fun函数中,各有两个错误,请改正,使其 能得到正确的运行结果。

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include #include float fac(int n) {

/**********FOUND**********/ int y=1; int i;

for(i=1 ;i<=n;i++) y=y*i;

/**********FOUND**********/ return; }

void main() { int i; float s=0;

float fac(int n);

/**********FOUND**********/ for(i=1;i<10;i++)

/**********FOUND**********/ s=fac(i);

cout<24

答案:

1). float y=1.0; 或 float y=1;

2). return y; 或 return(y); 或 return (y);

3). for(i=1;i<=10;i++) 或 for(i=1;10>=i;i++) 或 for(i=1;i<11;i++) 或 for(i=1;11>i;i++) 4). s=★s★+★fac(i)★; 或 s+=fac(i); 或 s=fac(i)+s; 〖第1题〗『程序设计』(10.0分)(题号:217) /*------------------------------------------------ 【程序设计】

--------------------------------------------------

题目: 已知一个数m(=252)求各位数字之和 --------------------------------------------------

注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。

------------------------------------------------*/ #include #include #include void writeinfile(int n) {

fstream myfile;

myfile.open(\"f2.txt\myfile<void main() {

int m,s=0,n; m=252;

/**********Program**********/

/********** End **********/ writeinfile(s);

}答案:

---------------------- while( m!=0)

{n=m%10;s+=n;m=m/10;} ----------------------

〖第2题〗『程序设计』(10.0分)(题号:219)

25

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

题目: 已知一个数m(=252),求各位数字之积 f 。

--------------------------------------------------

注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。

------------------------------------------------*/ #include #include #include void writeinfile(int n) {

fstream myfile;

myfile.open(\"f3.txt\myfile<void main() {

int m,f=1,n; m=252;

/**********Program**********/

/********** End **********/ writeinfile(f); }

答案:

---------------------- while( m!=0)

{n=m%10;f*=n;m=m/10;} ---------------------- 四

〖第1题〗『填 空』(2.0分)(题号:78)

设w=5;w+= -2;则w的值为【1】.

答案:

26

1). 3

〖第2题〗『填 空』(2.0分)(题号:6393) int x; x=(3+4)%5-6, 则x的值为【1】. 答案:

1). -4

〖第3题〗『填 空』(2.0分)(题号:45)

若a是int型变量,且a的初值为6,则计算表达式 a+=a-=a*a 后a的值为【1】. 答案:

1). -60

〖第4题〗『填 空』(2.0分)(题号:41) 求字符串长度的函数是【1】,只写函数名即可. 答案:

1). strlen

〖第5题〗『填 空』(2.0分)(题号:6506)

已知 a=10,b=15,c=1,d=2,e=0,则表达式a++&&e++&&c++的值为【1】. 答案:

1). 0

〖第6题〗『填 空』(2.0分)(题号:6521) 已知int a=13,b=6; a/b的十进制数值为【1】. 答案:

1). 2 〖第7题〗『填 空』(2.0分)(题号:6532)

执行语句char s[5]=\"abcd\的值是【1】. 答案: 1). c

〖第8题〗『填 空』(2.0分)(题号:97)

以下do-while语句中循环体的执行次数是【1】. a=10; b=0;

do { b+=2; a-=2+b; } while (a>=0); 答案:

1). 3

〖第9题〗『填 空』(2.0分)(题号:6390)

int a=1,b=2,c=3; 表达式(a&&b)||(a||b) 的值是【1】. 答案:

1). 1 〖第10题〗『填 空』(2.0分)(题号:52)

若有定义:char c='\\010'; 则变量C中包含的字符个数为【1】. 答案:

1). 1 〖第1题〗『判 断』(1.0分)(题号:1468) !2,得到0值. 答案:Y

27

〖第2题〗『判 断』(1.0分)(题号:1636) DO是C++语言中的关键字. 答案:N 〖第3题〗『判 断』(1.0分)(题号:1552)

在c++中实参和形参有3种结合方式,分别为:值传递、引用传递和地址传递 答案:Y 〖第4题〗『判 断』(1.0分)(题号:1563) 静态存储变量具有局部的生存期. 答案:N 〖第5题〗『判 断』(1.0分)(题号:1658) 关闭文件可以使用成员函数fclose(); 答案:N 〖第6题〗『判 断』(1.0分)(题号:1548)

char *p =\"PCGAME\";是定义初始化指针变量,指针变量的值是一个字符串. 答案:N 〖第7题〗『判 断』(1.0分)(题号:1571) 若有定义和语句:

int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0; for(i=0;i<3;i++) sum+=a[i][2-i];则sum=21. 答案:Y 〖第8题〗『判 断』(1.0分)(题号:1634) break是C++语言中的关键字. 答案:Y 〖第9题〗『判 断』(1.0分)(题号:1441)

私有继承中基类的私有成员在派生类中还是私有的. 答案:N 〖第10题〗『判 断』(1.0分)(题号:1536) 字符串比较函数是strcmp( ) 答案:Y 〖第1题〗『单项选择』(1.0分)(题号:3626) 以下正确的描述是:在C++语言程序中().

A:函数的定义可以嵌套,但函数的调用不可以嵌套 B:函数的定义不可以嵌套,但函数的调用可以嵌套 C:函数的定义和函数的调用均不可以嵌套 D:函数的定义和函数的调用均可以嵌套 答案:B 〖第2题〗『单项选择』(1.0分)(题号:3552)

若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是(). A:p1=&m;p2=&p1

B:p1=&m;p2=&n;*p1=p2; C:p1=&m;p2=p1; D:p1=&m;*p2=*p1; 答案:C 〖第3题〗『单项选择』(1.0分)(题号:3473)

28

以下程序的运行结果是(). main() {

int i=1,sum=0;

while(i<10) sum=sum+1;i++; cout<<\"i=\"<A:i=10,sum=9 B:i=9,sum=9 C:i=2,sum=1 D:死循环 答案:D 〖第4题〗『单项选择』(1.0分)(题号:3631) 用户不可以调用的函数是(). A:非整型返回值的 B:本文件外的 C:main函数

D:本函数下面定义的 答案:C 〖第5题〗『单项选择』(1.0分)(题号:3459) 设j和k都是int类型,则for循环语句 for(j=0,k=0;j<=9&&k!=876;j++) cin>>k; A:最多执行10次 B:最多执行9次 C:是无限循环

D:循环体一次也不执行 答案:A 〖第6题〗『单项选择』(1.0分)(题号:3452)

经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在 微机上的值分别为(). char x=65; float y=7.3f; int a=100; double b=4.5; A:2,2,2,4 B:1,2,2,4 C:1,4,4,8 D:2,4,2,8 答案:C 〖第7题〗『单项选择』(1.0分)(题号:3614) 以下叙述中不正确的是().

A:预处理命令行都必须以#号开始

B:在程序中凡是以#号开始的语句行都是预处理命令行

29

C:C++程序在执行过程中对预处理命令行进行处理 D:以下是正确的宏定义 #define IBM_PC 答案:C 〖第8题〗『单项选择』(1.0分)(题号:3508) int a[10];合法的数组元素的最小下标值为(). A:10 B:9 C:1 D:0

答案:D 〖第9题〗『单项选择』(1.0分)(题号:3607) 以下对一维整型数组a的正确说明是(). 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]; 答案:D 〖第10题〗『单项选择』(1.0分)(题号:3527)

假定int类型变量占用四个字节,其有定义:int x[10]={0,2,4};, 则数组x在内存中所占字节数是(). A:6 B:12 C:20 D:40

答案:D 〖第1题〗『程序填空』(8.0分)(题号:291) /*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:以下程序用来对从键盘上输入的两个字符串进行比较, 然后输出两个字符串中第一个不相同字符的ASCII码之差。

例如:输入的两个字符串分别为abcdef和abceef,则输出为-1,请填空。 -------------------------------------------------------*/ #include

#include void main() {

char str1[50],str2[50]; int i,s;

cout<<\"\\n input string 1:\\n\"; /***********SPACE***********/ 【?】

cout<<\"\\n input string 2:\\n\"; cin.getline(str2,50);

30

i=0;

/***********SPACE***********/

while((【?】)&&(str1[i]!='\\0')) /***********SPACE***********/ 【?】;

/***********SPACE***********/ 【?】; cout<答案:

1). cin.getline(str1,50); 或 gets(str1) 2). str1[i]==str2[i] 或 str2[i]==str1[i] 3). i++ 或 i=i+1 或 i+=1 4). s=str1[i]-str2[i]

〖第2题〗『程序填空』(8.0分)(题号:44) /*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:已定义一个含有30个元素的数组s,函数fun1的功能是按 顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序 每五个元素求一个平均值, 并将该值存放在数组w中。 程序中有4个空,填空使程序完整。 -------------------------------------------------------*/ #include float s[30],w[6]; void fun1(float s[]) {

int k,i;

for(k=2,i=0;i<30;i++) {

/***********SPACE***********/ 【?】

k+=2; } }

void fun2(float s[],float w[]) {

float sum=0.0; int k,i;

for(k=0,i=0;i<30;i++) {

sum+=s[i];

/***********SPACE***********/ 【?】

31

{

w[k]=sum/5;

/***********SPACE***********/ 【?】 k++; } } }

void main() {int i; fun1(s);

/***********SPACE***********/ 【?】

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

if(i%5==0) cout << endl; cout << s[i] << \" \"; }

cout << endl; for(i=0;i<6;i++)

cout << w[i] << \" \"; }

答案:

1). s[i]=k;

2). if(★(★i★+★1★)%5★==★0★) 3). sum=0; 或 sum=0.0; 4). fun2(s,w); 〖第3题〗『程序填空』(8.0分)(题号:330) /*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:以下程序的功能是输入字符串,再输入一个字符,将字符串 中与输入字符相同的字符删除。 -------------------------------------------------------*/ #include #include #include

void fun(char a[],char c) {

int i,j;

/***********SPACE***********/ for(i=j=0;【?】;i++)

32

if(a[i]!=c) a[j++]=a[i];

/***********SPACE***********/ 【?】; }

void main() {

char a[20],cc;

/***********SPACE***********/ 【?】;

cc=getchar();

/***********SPACE***********/ 【?】; cout<答案:

1). a[i]!='\\0' 或 a[i]!=0 或 i3). cin>>a 或 scanf(\"%s\或 gets(a) 或 cin.getline(a,20) 4). fun(a,cc) 〖第1题〗『程序改错』(8.0分)(题号:275) /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

题目: 下列程序是求某班级的最高成绩、最低成绩和平均成绩 的程序,输入-1表示结束。

‘--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include void main()

{float cj,sum,max,min,ave; int n;

/***********FOUND***********/ n=0

cin>>cj;

/***********FOUND***********/ sum=0;

/***********FOUND***********/ min=max=0; cin>>cj;

/***********FOUND***********/ while(cj!=0) {n++; sum+=cj;

33

if(cj>max) max=cj; if(cj>cj;} ave=sum/n;

cout<答案:

1). n=1; 2). sum=cj;

3). min=max=cj; 4). while(cj>=0) 〖第2题〗『程序改错』(8.0分)(题号:277) /*------------------------------------------------------

【程序改错】

-------------------------------------------------------- 题目:计算分段函数的值

0 (x=0)

y = 2x+20 (x>0)

3x (x<0)

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include void main() {float x,y; cin>>x;

/***********FOUND***********/ if(x=0) y=0;

/***********FOUND***********/ else if (x<0)

/***********FOUND***********/ y=2x+20; else

/***********FOUND***********/ y=3x;

cout<答案:

1). if(x==0)

34

2). else if (x>0) 3). y=2*x+20; 4). y=3*x; 〖第1题〗『程序设计』(10.0分)(题号:268) /*------------------------------------------------

【程序设计】

--------------------------------------------------

题目: 一个数列,它的第一项是0,第二项是1,以后每 项都是前两项之和,求前20项之和 s --------------------------------------------------

注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。

------------------------------------------------*/ #include #include #include void writeinfile(int n) {

fstream myfile;

myfile.open(\"f.txt\myfile<void main() {

int k,a1=0,a2=1,s=a1+a2;

/**********Program**********/

/********** End **********/ writeinfile(s); }

答案:

---------------------- for(k=2;k<=10;k++) {a1=a1+a2; a2=a1+a2; s=s+a1+a2;} ---------------------- 〖第2题〗『程序设计』(10.0分)(题号:125) /*------------------------------------------------ 【程序设计】

--------------------------------------------------

35

题目: 求多项式 1!+2!+3!+……+15!的值。 存入变量 out 中.

--------------------------------------------------

注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。

------------------------------------------------*/ #include #include void wwjt(int o); void main() {

int n=1,s=0,out=0;

/**********Program**********/

/********** End **********/ wwjt(out); }

void wwjt(int o) {

int k;

fstream myfile;

myfile.open(\"out.txt\ myfile<答案:

----------------------

for (int i=1; i<=15; i++) {

n = n*i; s += n; }

cout <〖第1题〗『填 空』(2.0分)(题号:05)

36

int x=2,y=3,z=4; 则表达式x+y>z&&y==z的值为【1】.

答案:

1). 0

〖第2题〗『填 空』(2.0分)(题号:6560)

在面向对象程序设计中,基类的【1】函数和析构函数不能被继承. 答案:

1). 构造 〖第3题〗『填 空』(2.0分)(题号:6559)

在面向对象程序设计中,基类的构造函数和【1】函数不能被继承. 答案:

1). 析构 〖第4题〗『填 空』(2.0分)(题号:62) 若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3 该数组中下标最大的元素的值是【1】. 答案:

1). 3 〖第5题〗『填 空』(2.0分)(题号:96)

一个C源程序中至少应包括一个【1】函数,它是C程序中唯一可以直接执行的函数,其他函数都是直接或间接由它调用执行的. 答案:

1). main 或 main() 或 主 〖第6题〗『填 空』(2.0分)(题号:6544) C++程序在执行中,不检查数组下标是否【1】. 答案:

1). 越界 〖第7题〗『填 空』(2.0分)(题号:50)

若所用变量都已正确定义,请填写以下程序段的输出结果【1】. for(i=1;i<=5;i++); cout<<\"OK\"<答案:

1). OK 〖第8题〗『填 空』(2.0分)(题号:6528) 执行下列语句后,*(p+1)的值是【1】. char s[3]=\"ab\ p=s; 答案:

1). b 〖第9题〗『填 空』(2.0分)(题号:45)

若a是int型变量,且a的初值为6,则计算表达式 a+=a-=a*a 后a的值为【1】. 答案:

1). -60

37

〖第10题〗『填 空』(2.0分)(题号:6541) #define A(n) 2*n+1,则表达式A(2+3)的值是【1】 答案:

1). 8

〖第1题〗『判 断』(1.0分)(题号:1452) 在C++中常量可分为6种,它们是整型常量、实型常量、字符型常量、字符串常量、符号常量、逻辑型常量. 答案:Y 〖第2题〗『判 断』(1.0分)(题号:1508) int a [10]={0, 1, 2, 3, 4, 5};a[6]~ a[9]均为0. 答案:Y 〖第3题〗『判 断』(1.0分)(题号:1453) a'代表一个字符常量,占一个字节. 答案:Y 〖第4题〗『判 断』(1.0分)(题号:1440) 基类中的成员在派生类中都是可以直接访问的. 答案:N 〖第5题〗『判 断』(1.0分)(题号:1654)

定义一个输入文件流对象,并打开d盘du文件夹下的abc.dat文件方法是: ifstream fin;

fin.open(\"d:\\\\du\\\\abc.dat\"); 答案:Y 〖第6题〗『判 断』(1.0分)(题号:1499)

由于函数的递归调用函数是在调用自己,因此在递归调用中必须有方法避免函数无休止运行. 答案:Y 〖第7题〗『判 断』(1.0分)(题号:1485)

函数的返回值是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值. 答案:Y 〖第8题〗『判 断』(1.0分)(题号:1591) 若有int i=10,j=0;则执行完语句 if (j=0)i++; else i--; i的值为11. 答案:N 〖第9题〗『判 断』(1.0分)(题号:1516)

二维数组初始化的方法是:int a[3][3]={{1},{2},{3}}; 答案:Y 〖第10题〗『判 断』(1.0分)(题号:1565)

结构体就是一个可以包含不同数据类型的一个结构. 答案:Y 〖第1题〗『单项选择』(1.0分)(题号:3613) 以下叙述正确的是().

A:在C++程序中,main函数必须位于程序的最前面 B:C++程序的每行中只能写一条语句 C:C++语言本身没有输入输出语句

D:在对一个C++程序进行编译的过程中,可发现注释中的拼写错误

38

答案:C 〖第2题〗『单项选择』(1.0分)(题号:3590)

已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是(). A:0

B:语法错 C:1 D:\"假\" 答案:C 〖第3题〗『单项选择』(1.0分)(题号:3658) 下列程序的输出结果是(). #include void main() {

int a=7,b=5; cout<D:不确定值 答案:A 〖第4题〗『单项选择』(1.0分)(题号:3456)

设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是(). A:552 B:144 C:2 D:-2

答案:D 〖第5题〗『单项选择』(1.0分)(题号:3462) 下列语句中,不正确的是(). A:static char a[2]={1,2}; B:static int a[2]={'1','2'}; C:static char a[2]={'1','2','3'}; D:static char a[2]={'1'}; 答案:C 〖第6题〗『单项选择』(1.0分)(题号:3584) 下面有关 for 循环的正确描述是().

A:for 循环只能用于循环次数已经确定的情况

B:for 循环是先执行循环循环体语句,后判断表达式 C:在 for 循环中,不能用 break 语句跳出循环体

D:for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 答案:D 〖第7题〗『单项选择』(1.0分)(题号:3594) 以下不能正确定义二维数组的选项是().

39

A:int a[2][2]={{1},{2}}; B:int a[][2]={1,2,3,4}; C:int a[2][2]={{1},2,3}; D:int a[2][]={{1,2},{3,4}};

答案:D 〖第8题〗『单项选择』(1.0分)(题号:38) 执行下列语句后的输出结果为(). #include void main() {

char a='a'; a--;

cout<B:a--运算不合法,故有语法错 C:98,99

D:格式描述和输出项不匹配,输出无定值 答案:C 〖第9题〗『单项选择』(1.0分)(题号:3485)

在C++语言中,为了结束由while语句构成的循环,while后一对圆括号 中表达式的值应该为(). A:0 B:1 C:True

D:非0 答案:A 〖第10题〗『单项选择』(1.0分)(题号:3676)

设有定义: double array[10]; 表达式 sizeof(array)/sizeof(array[0])的结果是(). A:array数组首地址 B:array数组中元素个数

C:array数组中每个元素所占的字节数 D:array数组占的总字节数 答案:B 〖第1题〗『程序填空』(8.0分)(题号:49) /*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:以下程序是用选择法对10个整数按升序排序,程序中有4个空, 填空使程序完整。

-------------------------------------------------------*/ #include

/***********SPACE***********/ 【?】 void main()

40

{

int i,j,k,t,a[N]; for(i=0;i<=N-1;i++) cin >> a[i];

for(i=0;i/***********SPACE***********/ 【?】

/***********SPACE***********/ for(j=i+1; 【?】;j++) if(a[j]/***********SPACE***********/ if(【?】){t=a[i];a[i]=a[k];a[k]=t;} }

cout << \"output the sorted array:\\n\"; for(i=0;i<=N-1;i++) cout << a[i] << ' '; cout << endl; }

答案:

1). #define N 10 2). k=i;

3). jj 4). ★k★!=★i★ 〖第2题〗『程序填空』(8.0分)(题号:50) /*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

题目:以下程序的功能是以每行5个数来输出300以内能被7或17 整除的偶数,并求出其和。

-------------------------------------------------------*/ #include void main() {

int i,n,sum; sum=0;

/***********SPACE***********/ 【?】

/***********SPACE***********/ for(i=1; 【?】 ;i++)

/***********SPACE***********/ if(【?】) if(i%2==0)

{sum=sum+i;

41

n++;

cout << i << ' ';

/***********SPACE***********/ if(【?】) cout << endl; }

cout << \"\\ntotal=\" << sum; }

答案:

1). n=0;

2). i<=300 或 i<300 或 300>=i 或 300>i

3). ★i%7★==★0★||★i%17★==★0 或 !(i%7)||!(i%17) 或或 !(i%7&&i%14)

4). ★n%5★==★0 或 !(n%5) 〖第3题〗『程序填空』(8.0分)(题号:75) /*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:以下程序的功能:将s所指字符串的正序和反序进行连接, 形成一个新串放在t所指的数组中。

例如:当s串为\"ABCD\"时,则t串的内容应为\"ABCDDCBA\"。 -------------------------------------------------------*/ #include #include

void fun (char *s, char *t) {

int i, d;

/***********SPACE***********/ d = 【?】;

/***********SPACE***********/ for (i = 0; ivoid main() {

char s[100], t[100];

cout <<\"\\nPlease enter string S:\"; cin.getline(s,sizeof s); fun(s, t);

cout <<\"\\nThe result is: \" << t <42

!(i%17)||!(i%7) 答案:

1). strlen(s)

2). i++ 或 i=i+1 或 i+=1 或 ++i 3). d+i 或 i+d

4). 2*d 或 d*2 或 i+d 或 d+i 〖第1题〗『程序改错』(8.0分)(题号:299) /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

题目:在一个具有N个数的数组中查找并删除一个数K。 --------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #define n 10

#include void main() {

/***********FOUND***********/ int a[n],n,k,i,j;

/***********FOUND***********/ for(i=1;i<=n;i++) cin>>a[i]; cin>>k;

/***********FOUND***********/ for(i=1;i<=n||a[i]!=k;i++); if(i{for(j=i;j<=n-1;j++) a[j]=a[j+1];

/***********FOUND***********/ for(i=0;i{cout<<\"not found\"; for(i=0;i答案:

1). int a[n],k,i,j; 2). for(i=0;i3). for(i=0;i43

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

题目:在一个已按升序排列的数组中插入一个数,插入后,数 组元素仍按升序排列。

程序有4条错误语句,请改正错误。 --------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include #define N 11 void main() {

int i,number,a[N]={1,2,4,6,8,9,12,15,149,156};

cout<<\"please enter an integer to insert in the array:\\n\"; /**********FOUND**********/ cin>>number

cout<<\"The original array:\\n\"; for(i=0;i/**********FOUND**********/ for(i=N-1;i>=0;i--) if(number<=a[i])

/**********FOUND**********/ a[i]=a[i-1]; else

{a[i+1]=number;

/**********FOUND**********/ exit;}

if(number答案:

1). cin>>number;

2). for(i=N-2;i>=0;i--) 或 for(i=N-2;0<=i;i--) 3). a[★i★+★1★]=a[i]; 4). break;} 〖第1题〗『程序设计』(10.0分)(题号:126) /*------------------------------------------------ 【程序设计】

44

--------------------------------------------------

题目:将数组S中所有小写字母改写成大写字母。 --------------------------------------------------

注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。

------------------------------------------------*/ #include #include #include

void fun(char s[]) {

/**********Program**********/

/********** End **********/ }

void wwjt(char []); void main() {

char s[80] = \"abdsaFDSAFdsafASFDSafghHFDHTjte\"; fun(s); wwjt(s); }

void wwjt(char s[]) {

int k;

fstream myfile;

myfile.open(\"out.txt\ myfile<答案:

----------------------

for (int i=0; iif (s[i]>='a' && s[i]<='z') s[i]=s[i]-'a'+'A'; ---------------------- 〖第2题〗『程序设计』(10.0分)(题号:254) /*------------------------------------------------ 【程序设计】

--------------------------------------------------

45

题目: 用“辗转相除方法”计算两个数 x,y 的最大公约数

--------------------------------------------------

注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。

------------------------------------------------*/

#include #include #include void writeinfile(int n) {

fstream myfile;

myfile.open(\"f.txt\myfile<void main() {

int x,y,n; x=25,y=10;

/**********Program**********/

/********** End **********/ writeinfile(y); }

答案:

---------------------- n=x%y; while(n!=0)

{x=y;y=n;n=x%y;} ---------------------- 六

〖第1题〗『填 空』(2.0分)(题号:49)

若输入字符串:abcde<回车>,则以下while循环体将执行

while((ch=cin.get())=='e') cout<<\"*\"<答案:

46

1】 次. 【 1). 0

〖第2题〗『填 空』(2.0分)(题号:6536) 【1】只能用于单行注释 答案:

1). //

〖第3题〗『填 空』(2.0分)(题号:27) 当a=1,b=2,c=3时,执行以下程序段后c=【1】. if (a>c) b=a;

a=c;

c=b; 答案:

1). 2

〖第4题〗『填 空』(2.0分)(题号:6396) int x; x=-3+4%5-6, 则x的值为【1】. 答案:

1). -5 〖第5题〗『填 空』(2.0分)(题号:6381) C++语言表达式5>2>7>8的值是【1】. 答案:

1). 0

〖第6题〗『填 空』(2.0分)(题号:28) 当a=3,b=2,c=1;时,执行以下程序段后 a=【1】. if(a>b) a=b;

if(b>c) b=c;

else c=b; c=a; 答案:

1). 2 〖第7题〗『填 空』(2.0分)(题号:95)

写出语句 b=(a=6,a*3); 执行后整型变量b的值是【1】. 答案:

1). 18 〖第8题〗『填 空』(2.0分)(题号:6553) 在结构体中,成员的缺省存取权限是【1】有的. 答案:

1). 公 〖第9题〗『填 空』(2.0分)(题号:34)

函数的定义不可以嵌套,但函数的调用【1】嵌套. 答案:

47

1). 可以 〖第10题〗『填 空』(2.0分)(题号:6384) C++语言源程序的基本单位是【1】. 答案:

1). 函数 〖第1题〗『判 断』(1.0分)(题号:1467) int a(5),b(3);a || b结果为1. 答案:Y 〖第2题〗『判 断』(1.0分)(题号:1577) 若i=3,则cout<<-i++;输出的值为 -4. 答案:N 〖第3题〗『判 断』(1.0分)(题号:1552)

在c++中实参和形参有3种结合方式,分别为:值传递、引用传递和地址传递 答案:Y 〖第4题〗『判 断』(1.0分)(题号:1447)

程序的开发过程:编辑、编译预处理、编译、连接、运行 答案:Y 〖第5题〗『判 断』(1.0分)(题号:1457) C++中,变量使用时遵循\"先定义,后使用\"的原则. 答案:Y 〖第6题〗『判 断』(1.0分)(题号:1609) 表达式4>5?1:0的值是1 答案:N 〖第7题〗『判 断』(1.0分)(题号:1460) a=7%4;最终a的结果是1 答案:N 〖第8题〗『判 断』(1.0分)(题号:1487)

函数定义时,出现在函数名后括号中的参数是形参. 答案:Y 〖第9题〗『判 断』(1.0分)(题号:1524) 一维字符数组的输入:char str[21] ;cin<< str; 答案:N 〖第10题〗『判 断』(1.0分)(题号:1475) 在for语句中,循环次数是由变量来控制的. 答案:Y 〖第1题〗『单项选择』(1.0分)(题号:39) 以下程序的输出结果是(). #include void main() {

char s[]=\"123\ p=s;

cout<<*p++<48

A:123 B:1 C:3 D:321

答案:B 〖第2题〗『单项选择』(1.0分)(题号:3400)

C++语言的if语句嵌套时,if与else的配对关系是(). A:每个else总是与它上面的最近的if配对 B:每个else总是与最外层的if配对 C:每个else与if的配对是任意的 D:每个else总是与它上面的if配对 答案:A 〖第3题〗『单项选择』(1.0分)(题号:3404) C++语言中,double类型数据占(). A:1个字节 B:2个字节 C:4个字节 D:8个字节 答案:D 〖第4题〗『单项选择』(1.0分)(题号:3695)

如果某类是从另一个类继承来的,对象释放时析构函数的调用顺序是(). A:不调用基类的析构函数

B:先调用基类的析构函数,再调用派生类的析构函数 C:先调用派生类的析构函数,再调用基类的析构函数 D:不调用派生类的析构函数 答案:C 〖第5题〗『单项选择』(1.0分)(题号:3424) 下列定义不正确的是(). A:#define PI 3.141592 B:#define S345

C:int max(x,y); int x,y; { } D:static char c;

答案:C 〖第6题〗『单项选择』(1.0分)(题号:3558)

若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是(). A:&t[3][2] B:t[3] C:&t[1] D:t[2] 答案:D 〖第7题〗『单项选择』(1.0分)(题号:3597) 以下不正确的if语句形式是(). A:if(x>y&&x!=y); B:if(x==y) x+=y;

49

C:if(x!=y) cin>>x else cin>>y; D:if(x在C++语言中,引用数组元素时,其数组下标的数据类型允许是(). A:整型常量 B:整型表达式

C:整型常量或整型表达式 D:任何类型的表达式 答案:C 〖第9题〗『单项选择』(1.0分)(题号:3514) char str[10]=\"China\";数组元素个数为(). A:5 B:6 C:9 D:10

答案:D 〖第10题〗『单项选择』(1.0分)(题号:3588) 一个C++语言程序是由().

A:一个主程序和若干子程序组成 B:函数组成 C:若干过程组成 D:若干子程序组成 答案:B 〖第1题〗『程序填空』(8.0分)(题号:334) /*------------------------------------------------------- 【程序填空】

--------------------------------------------------------- 题目:求两个数的最大公约数

-------------------------------------------------------*/ #include void main() {

int m,n,k; cin>>m>>n; k=m%n;

/***********SPACE***********/ while(【?】) {m=n;

/***********SPACE***********/ 【?】=k;

/***********SPACE***********/ k=【?】; }

50

/***********SPACE***********/ cout<<【?】; }

答案:

1). k!=0 2). n 3). m%n 4). n

〖第2题〗『程序填空』(8.0分)(题号:333) /*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

题目:以下程序的功能是将一个字符串中的前N个字符复制到一个 字符数组中去,不许使用strcpy函数。 -------------------------------------------------------*/ #include void main ( ) {

char str1[80],str2[80]; int i,n;

/***********SPACE***********/ cin>>【?】; cin>>n;

/***********SPACE***********/ for (i=0;【?】;i++)

/***********SPACE***********/ { 【?】;}

/***********SPACE***********/ 【?】; cout<答案:

1). str1

2). ii 或 i<=n-1 或 n-1>=i 3). str2[i]=str1[i]

4). str2[n]='\\0' 或 str2[i]='\\0' 或 str2[n]=0 或 str2[i]=0 〖第3题〗『程序填空』(8.0分)(题号:338) /*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

题目:求N个任意数的最大值和最小值之差。 -------------------------------------------------------*/ #include

51

void main() {

float x[100],max,min,r; int i,n; cin>>n;

/***********SPACE***********/ for(i=0;i<【?】;i++) cin>>x[i];

/***********SPACE***********/ max=min=【?】; for(i=0;i/***********SPACE***********/ {if(【?】) max=x[i];

/***********SPACE***********/ if(【?】) min=x[i]; }

r=max-min; cout<答案:

1). n 2). x[0]

3). maxmax 4). min>x[i] 或 x[i]--------------------------------------------------------

题目:打印出1000以内的同时满足如下条件的数

个位数字与十位数字之和除以10所得的余数等于百位数字

--------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include #include void main()

/***********FOUND***********/ int a,b,c,d,i,j,flag=1; for (i=3;i<1000;i++)

/***********FOUND***********/ { for (j=2;flag=1;j<=sqrt(i)&&flag;j++)

52

/***********FOUND***********/ if(i%j==1) flag=0;

/***********FOUND***********/ if(flag==0) {a=i/100;

b=(i-a*100)/10; c=i-a*100-b*10; d=b+c-(c+b)/10*10; if (d==a) cout<答案:

1). {int a,b,c,d,i,j,flag=1;

2). { for (j=2,flag=1;j<=sqrt(i)&&flag;j++) 3). if(i%j==0) flag=0; 或 if(!i%j==0) flag=0; 4). if(flag==1) 或 if(flag) 或 if(flag i=0) 〖第2题〗『程序改错』(8.0分)(题号:283) /*------------------------------------------------------ 【程序改错】

--------------------------------------------------------

题目: 一个数列的头三个数是0,0,1,第四个数是前三个数之和, 以后每个都是前三个数之和,问当该数列中的某个数值达 到10的15次方,它是该数列的第几项? --------------------------------------------------------

注意:不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include void main()

/***********FOUND***********/ {float i,j,k,l; i=j=0; k=1; n=3;

while(k<1e15) {n++; l=i+j+k;

/***********FOUND***********/ j = i;

/***********FOUND***********/ k = j;

/***********FOUND***********/ l=k;

53

}

cout<答案:

1). double i,j,k,l,n; 2). i=j; 3). j = k; 4). k=l;

〖第1题〗『程序设计』(10.0分)(题号:219) /*------------------------------------------------ 【程序设计】

--------------------------------------------------

题目: 已知一个数m(=252),求各位数字之积 f 。 --------------------------------------------------

注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。

------------------------------------------------*/ #include #include #include void writeinfile(int n) {

fstream myfile;

myfile.open(\"f3.txt\myfile<void main() {

int m,f=1,n; m=252;

/**********Program**********/

/********** End **********/ writeinfile(f); }

答案:

---------------------- while( m!=0)

{n=m%10;f*=n;m=m/10;} ----------------------

54

〖第2题〗『程序设计』(10.0分)(题号:126) /*------------------------------------------------ 【程序设计】

--------------------------------------------------

题目:将数组S中所有小写字母改写成大写字母。 --------------------------------------------------

注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。

------------------------------------------------*/ #include #include #include void fun(char s[]) {

/**********Program**********/

/********** End **********/ }

void wwjt(char []); void main() {

char s[80] = \"abdsaFDSAFdsafASFDSafghHFDHTjte\"; fun(s); wwjt(s); }

void wwjt(char s[]) {

int k;

fstream myfile;

myfile.open(\"out.txt\ myfile<答案:

----------------------

for (int i=0; iif (s[i]>='a' && s[i]<='z') s[i]=s[i]-'a'+'A'; ----------------------

55

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务