C语言程序设计复习课.docx

上传人:b****6 文档编号:7129129 上传时间:2023-01-21 格式:DOCX 页数:33 大小:30.10KB
下载 相关 举报
C语言程序设计复习课.docx_第1页
第1页 / 共33页
C语言程序设计复习课.docx_第2页
第2页 / 共33页
C语言程序设计复习课.docx_第3页
第3页 / 共33页
C语言程序设计复习课.docx_第4页
第4页 / 共33页
C语言程序设计复习课.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

C语言程序设计复习课.docx

《C语言程序设计复习课.docx》由会员分享,可在线阅读,更多相关《C语言程序设计复习课.docx(33页珍藏版)》请在冰豆网上搜索。

C语言程序设计复习课.docx

C语言程序设计复习课

C++语言程序设计复习课

一、第一章单选题

1.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为()。

答案:

A

A.mainB.MAINC.nameD.function

2.C++源程序文件的缺省扩展名为()。

答案:

A

A.cppB.exeC.objD.lik

3.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用()符号作为分隔符。

答案:

D

A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车

4.C++程序的基本模块为()。

答案:

D

A.表达式B.标识符C.语句D.函数

5.每个C++程序文件的编译错误分为()类。

答案:

B//warningerror

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

二、第一章填空题

1.C++语言是在_________语言的基础上发展起来的。

答案:

C

2.C++语言中的每条基本语句以________作为结束符。

答案:

;(或分号)

3.C++语言中的每条复合语句以________作为结束符。

答案:

}(或右花括号)

4.在C++每个程序行的后面或单独一行的开始使用注释的标记符为__________。

答案:

//

5.单行或多行注释的开始标记符为__________、结束标记符为__________。

答案:

/*、*/

6.在一个C++程序文件中,若要包含另外一个头文件或程序文件,则应使用以__________标识符开始的预处理命令。

#include

7.C++程序中的所有预处理命令均以______字符开头。

#

8.在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是________定义的头文件。

用户(或编程者)

9.一个函数定义由________和________两部分组成。

答案:

函数头、函数体

10.用于输出表达式值的标准输出流对象是________,用于从键盘上为变量输入值的标准输入流对象是________。

答案:

cout、cin

11.当不需要函数返回任何值时,则应使用________标识符定义函数类型。

答案:

void

[第二章]

一、第二章单选题

1.设x和y均为bool量,则x&&y为真的条件是()。

答案:

A

A.它们均为真B.其中一个为真

C.它们均为假D.其中一个为假

2.设x和y均为bool量,则x||y为假的条件是()。

C

A.它们均为真B.其中一个为真

C.它们均为假D.其中一个为假

3.设有语句“inta=12;a+=a*a;”,则执行结束后,a的值为()。

C

A.12B.144C.156D.288

4.x>0&&x<=10的相反表达式为()。

A

A.x<=0||x>10B.x<=0&&x>10

C.x<=0||x<=10D.x>0&&x>10

5.x>0||y==5的相反表达式为()。

B

A.x<=0||y!

=5B.x<=0&&y!

=5

C.x>0||y!

=5D.x>0&&y==5

6.字符串“a+b=12\n”的长度为()。

答案:

B

A.6B.7C.8D.9

7.在下列的常值常量定义中,错误的定义语句是()。

答案:

C

A.constM=10;B.constintM=20;

C.constcharch;D.constboolmark=true;

8.枚举类型中的每个枚举常量的值都是一个()。

答案:

A

A.整数B.浮点数

C.字符D.逻辑值

9.含随机函数的表达式rand()%20的值在()区间内。

答案:

C

A.1~19B.1~20

C.0~19D.0~20

二、第二章填空题

1.十进制数25表示成符合C++语言规则的八进制数为________。

答案:

031

2.十进制数25表示成符合C++语言规则的十六进制数为________。

答案:

0x19

3.在c++语言中,操纵符________表示输出一个换行符。

答案:

endl

4.执行“cout<

答案:

C

5.已知'A'~'Z'的ASCII码为65~90,当执行“intx='C'+5;”语句后x的值为________。

答案:

72

6.已知'A'~'Z'的ASCII码为65~90,当执行“charch=14*5+2;cout<

答案:

H

7.假定一个枚举类型的定义为“enumRA{ab,ac,ad,ae};”,则枚举常量ac的值为________。

答案:

1

8.假定一个枚举类型的定义为“enumRB{a1,a2=3,a3,a4}x=a3;”,则x的值为________。

答案:

4

9.char、short、int、float、double类型的大小分别为________个字节。

10.十进制常数28和3.26的类型分别为________和________。

答案:

int、double

11.若需要定义一个常值常量,并且使C++能够进行类型检查,则应在定义语句的开始使用保留字__________。

答案:

const//#defineMAX100

12.使用const语句定义一个常值常量时,则必须对它同时进行__________。

答案:

初始化//如constintMM=20;

13.执行“intx=45,y=13;cout<

答案:

3

14.执行“intx=45,y=13;cout<

答案:

6

15.假定x=5,则表达式2+x++的值为________。

答案:

7

16.假定y=10,则表达式++y*3的值为________。

答案:

33

17.表达式float(25)/4的值为________。

答案:

6.25

18.表达式int(14.6)%5的值为________。

答案:

4

19.表达式x=x+y表示成复合赋值表达式为__________。

答案:

x+=y

20.表达式x=x+1表示成增量表达式为__________。

答案:

++x

21.增量表达式++y表示成赋值表达式为__________。

答案:

y=y+1

22.关系表达式(x==0)的等价表达式为________。

答案:

(!

x)

23.关系表达式(x!

=0)的等价表达式为________。

答案:

(x)

24.假定不允许使用逻辑非操作符,则关系表达式x+y>5的相反表达式为____________。

答案:

x+y<=5

25.若x=5,y=10,则x>y逻辑值为________。

答案:

false或0

26.若x=5,y=10,则x!

=y的逻辑值为________。

答案:

true或1

27.假定x=5,则执行“a=(x?

10:

20);”语句后a的值为________。

答案:

10

28.执行“typedefintDataType;”语句后,在使用int定义整型变量的地方都可以使用__________来定义整型变量。

答案:

DataTy

[第三章]

一、第三章单选题

1.当处理特定问题时的循环次数已知时,通常采用()来解决。

答案:

A

A.for循环B.while循环C.do循环D.switch语句

2.循环体至少被执行一次的语句为()语句。

答案:

C

A.for循环B.while循环C.do循环D.任一种循环

3.在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为()语句。

答案:

B

A.forB.ifC.doD.while

4.for语句能够被改写为()语句。

答案:

D

A.复合B.ifC.switchD.while

5.循环语句“for(inti=0;i

答案:

C

A.1B.n-1C.nD.n+1

6.下面循环语句执行结束后输出的i值为()。

答案:

Bfor(inti=0;in/2){cout<

A.n/2B.n/2+1C.n/2-1D.n-1

7.在下面循环语句中内层循环体S语句的执行总次数为()。

答案:

Dfor(inti=0;i

for(intj=i;j

A.n2B.(n+1)/2C.n(n-1)/2D.n(n+1)/2

8.在下面的while循环语句中,其循环体被执行的次数为()。

答案:

Cinti=0,s=0;while(s<20){i++;s+=i;}//s=1,3,6,10,15,21

A.4B.5C.6D.7

9.在下面的do循环语句中,其循环体被执行的次数为()。

答案:

Ainti=0;doi++;while(i*i<10);//i=0,1,2,3

A.4B.3C.5D.2

二、第三章填空题

1.在switch语句中,每个语句标号所含保留字case后面的表达式必须是_______。

整型常量

2.在if语句中,每个else关键字与它前面同层次并且最接近的________关键字相配套。

if

3.作为语句标号使用的C++保留字case和default只能用于________语句的定义体中。

switch

4.执行switch语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时(停止/不停止)________执行。

不停止

5.若while循环的“头”为”while(i++<=10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行______次后正常结束。

11

6.若do循环的“尾”为”while(++i<10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行______次后正常结束。

10

7.当在程序中执行到________语句时,将结束本层循环类语句或switch语句的执行。

答案:

break

8.当在程序中执行到________语句时,将结束所在循环语句中循环体的一次执行。

答案:

continue

9.在程序中执行到________语句时,将结束所在函数的执行过程,返回到调用该函数的位置。

答案:

return

10.在程序执行完一个________函数调用后,将结束整个程序的执行过程,返回到操作系统或C++集成开发环境界面窗口。

答案:

主(或main)

三、第三章程序运行结果

1.#include

voidmain()

{

intx=5;

switch(2*x-3){

case4:

cout<

case7:

cout<<2*x+1<<’’;

case10:

cout<<3*x-1<<’’;break;

default:

cout<<"default"<

}

cout<<"switchend."<

}答案:

1114switchend.

四、第三章函数功能

1.#include

intSA(inta,intb){

if(a>b)return1;

elseif(a==b)return0;

elsereturn-1;

}

答案:

比较两个整型参数a和b的大小,若a>b则返回1,若a==b则返回0,若a

2.intSC(inta,intb,intc){

if(a>=b&&a>=c)returna;

if(b>=a&&b>=c)returnb;

returnc;

}

答案:

求出a,b,c三个数中的最大值并返回。

3.intSE(intn){//n为大于等于1的整数

intx;cin>>x;

if(n==1)returnx;

intm=x;

while(--n){cin>>x;m+=x;}

returnm;

}

答案:

求出从键盘上输入的n个整数之和并返回。

4.doubleSF(doublex,intn){//n为大于等于0的整数

doublep=1,s=1;

for(inti=1;i<=n;i++){p*=x;s+=p/(i+1);}

returns;

}

答案:

计算1+x/2+x2/3+...+xn/(n+1)的值并返回。

5.#include

boolSG(intx){//x为大于等于2的整数

inta=int(sqrt(x));//取x的平方根

inti=2;

while(i<=a){if(x%i==0)break;i++;}

if(i<=a)return0;elsereturn1;

}

答案:

判断x是否为一个质数,若是则返回1,否则返回0。

6.floatFH(){

floatx,y=0,n=0;

cin>>x;

while(x!

=-1){n++;y+=x;cin>>x;}

if(n==0)returny;elsereturny/n;

}

答案:

求出从键盘上输入的一批常数的平均值,以-1作为结束输入的标志。

7.floatFI(intn){//n为大于等于1的整数

floatx,y=0;

do{

cin>>x;y+=x*x;

}while(--n>0);

returny;

}

答案:

求出从键盘上输入的n个常数的平方和并返回。

8.#include

#include

voidmain()

{

intx,y;

cin>>x;

y=int(sqrt(x));//sqrt(x)为求x的算术平方根

for(inti=1;i<=y;i++)

if(x%i==0)cout<<”x=”<

}

答案:

把从键盘上输入的一个整数x分解为所有可能的每两个因子之积。

五、第三章编写函数

1.编写一个主函数,利用while循环,求出并显示满足不等式1+1/2+1/3+...+1/n≥5的最小n值。

答案:

voidmain(){

inti=0;doubles=0;//或inti=1;doubles=1;

while(s<5)s+=double

(1)/++i;

cout<<"n="<

}

2.编写一个主函数,计算1+3+3^2+...+3^10的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。

voidmain(){

inti;//用i作为循环变量

intp=1;//用p作为累乘变量

ints=1;//用s作为累加循环变量

for(i=1;i<=10;i++){p*=3;s+=p;}

cout<

}

3.编写一个主函数,已知6≤a≤30,15≤b≤36,求出满足不定方程2a+5b=126的全部整数组解。

如(13,20)就是其中的一组解。

答案:

voidmain()

{

inta,b;

for(a=6;a<=30;a++)

for(b=15;b<=36;b++)

if(2*a+5*b==126)cout<<'('<

}

[第四章]

一、第四章单选题

1.在下面的一维数组定义中,()语句有语法错误。

答案:

C

A.inta[]={1,2,3};B.inta[10]={0};

C.inta[];D.inta[5];

2.在下面的二维数组定义中,()语句是正确的。

答案:

C

A.inta[5][];B.inta[][5];

C.inta[][3]={{1,3,5},{2}};D.inta[](10);

3.在下面的字符数组定义中,()语句有语法错误。

答案:

D

A.chara[20]=”abcdefg”;B.chara[]=”x+y=55.”;

C.chara[15]={’1’,’2’};D.chara[10]=’5’;

4.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为()。

答案:

C

A.2B.4C.6D.8

5.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为()。

答案:

A

A.0B.4C.8D.6

6.将两个字符串连接起来组成一个字符串时,选用()函数。

答案:

C

A.strlen()B.strcpy()C.strcat()D.strcmp()

二、第四章填空题

1.假定一个一维数组的定义为“char*a[8];”,该数组所含元素的个数为________,所占存储空间的字节数为________。

8、32

2.假定一个二维数组的定义为“inta[3][5];”,则该数组所含元素的个数为________,所占存储空间的字节数为________。

15、60

3.执行“typedefintABC[10];”语句把ABC定义为具有10个整型元素的________类型。

数组

4.使用“typedefcharBB[10][50];”语句定义________为含有10行50列二维字符数组类型。

BB

5.存储字符’a’需要占用存储器的________个字节空间,存储字符串”a”需要占用存储器的________个字节空间。

1、2

6.字符串”a:

\\xxk\\数据”的长度为________,存储它的字符数组的长度至少为________。

11、12

7.若a是一个字符数组,则从键盘上向该数组输入一个字符串的表达式语句为__________,向屏幕输出a中所存字符串的表达式语句为__________。

答案:

cin>>a;cout<

8.一个二维字符数组a[10][20]能够存储________个字符串,每个字符串的长度至多为________。

答案:

10、19

三、第四章程序运行结果

1.#include

voidmain(){

inta[10]={12,39,26,41,55,63,72,40,83,95};

inti1=0,i2=0;

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

if(a[i]%2==1)i1++;elsei2++;

cout<

}

答案:

64

2.#include

voidmain(){

inta[9]={36,25,48,14,55,40,32,66,60};

intb1,b2;

b1=b2=a[0];

for(inti=1;i<9;i++)

if(a[i]>b1){if(b1>b2)b2=b1;b1=a[i];}

elseif(a[i]>b2)b2=a[i];

cout<

}

答案:

6660

3.#include

voidmain(){

chara[]="abcdabcabfgacd";

inti1=0,i2=0,i=0;

while(a[i]){

if(a[i]=='a')i1++;

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

i++;

}

cout<

}

答案:

4314

四、第四章编写程序

1.编写一个函数,函数头格式为“voidfun4(char*a,intb[])”,分别求出由字符指针a所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组b的相应元素中。

答案:

voidfun4(char*a,intb[])

{

inti;

for(i=0;i<10;i++)b[i]=0;//对b数组初始化

while(*a){

intj=*a-’0’;

if(j>=0&&j<=9)b[j]++;

a++;

}}

[第五章]

一、第五章单选题

1.下面的()函数头格式不正确。

答案:

D

A.AA(inta,intb)B.AA(inta,intb=0)

C.AA(inta=0,intb=0)D.AA(inta=0,intb)

2.下面的()保留字不能作为函数的返回类型。

答案:

C

A.voidB.intC.newD.long

3.下面的函数声明中,“voidBC(inta,intb);”的重载函数是()。

答案:

B

A.intBC(intx,inty);B.voidBC(inta,charb);

C.floatBC(inta,intb,intc=0);D.voidBC(inta,intb=0);

4.声明或定义一个内联函数时,必须在函数开始使用保留字()。

答案:

C

A.staticB.constC.inlineD.extern

5.在下面的函数声明中,()存在着语法错误。

答案:

D

A.intBC(inta,int);B.intBC(int,int);

C.intBC(int,int=5);D.intBC(intx;inty);

6.若定义了函数double*function(),则该函数的返回值为()。

答案:

B

A.实数型B.实数指针型C.函数指针型D.数组型

7.下列()的调用方式是引用调用。

答案:

C

A.形参和实参都是变量B.形参是指针,实参是地址值

C.形参是引用,实参是变量D.形参是变量,实参是地址值

8.为了提高程序的运行速度,可将不太复杂的函数实现为()。

答案:

A

A.内联函数B.重载函数C.递归函数D.函数模板

9.下面正确的函数原型语句是()。

答案:

B

A.intFunction(voida);B.voidFunction(int);

C.intFunction(a);D.voidint(doublea);

10.函数调用func((exp1,exp2),exp3*exp4-exp5)中所含实参的个数为()个。

答案:

B

A.1B.2C.4D.5

11.若用数组名作为函数调用的实参,传递给形参的是()答案:

A

A.数组的首地址B.数组中第一个元素的值

C.数组全部元素的值D.数组元素的个数

12.文件包含命令中被包含的文件的扩展名()。

答案:

C

A.只能是.hB.不能是.hC.可以是.h或.cppD.只能是.cpp

二、第五章填空题

1.在C++语言中,一个函数由______和_______组成。

答案:

函数头、函数体

2.在函数外定义的变量称为全局变量,若没有被初始化则系统隐含对它所赋的初值为________。

答案:

0

3.函数被调用时,实参向形参的传送分为________和_______两种传送方式。

答案:

引用、值

4.重载一个函数的条件是:

该函数必须在参数的_______或参数的_______上与

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

当前位置:首页 > 小学教育 > 语文

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

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