C语言概述练习题_第1页
C语言概述练习题_第2页
C语言概述练习题_第3页
C语言概述练习题_第4页
C语言概述练习题_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题一(C++语言概述)

一、选择题

1.C++语言是从早期的C语言逐渐发展演变而来的。与C语言相比,它在求解问题方法上进行的最大改进是

A面向过程B.面向对象C.安全性D.复用性

2以下说法中正确的是

AC++程序运行时,总是从第•个定义的函数开始执行

BC++程序运行时,总是从main()函数开始执行

CC++源程序中的mainO函数必须放在程序的开始部分

D一个C++函数中只允许一对花括号

3下列标识符中错误的一组是o

A.Name,char,abe,A-BB.abcc,x5y,USA,print

C.read,Const,type,defineD.include,integer,Double,short_int

4.下面的单词中属于C++语言关键字的是.

AinlcudeB.defineC.ENUMD.union

5.下面属于C++语句的是o

A.cout«a«endlB.//Thisisastatement

Cx=x+l;D.^include<iostream>

6.在一个C++程序文件中,main。函数的位置

A.必须在开始B.必须在最后C.可以任意D.必须在系统调用库函数之后

7.C++源程序的基本结构是—

A.过程和块B.函数和类C.程序段和过程D.子程序和主程序

8.下列四个叙述中,错误的是o

A.C++语言中的标识符必须全部由字母组成B.C++语言不提供输入输出语句

C.C++程序中的注释可以出现在程序的任何位置D.C++语言中的关键字必须小写

二、填空题

1.C++程序的开发过程包括—和_________三个阶段。

2.在编辑阶段,C++源程序的扩展名是—

3.C++源程序经过编译后生成的文件的扩展名是。

4.C++源程序经过编译和连接后生成的文件的扩展名是—

5在VisualStudio2005环境下,按程序运行界面划分,用C++开发的应用程序有.

和三种类型。

6.在C++程序中,一条语句的结束符是。

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

8.下面的程序用cin从键盘接收一个整数并存放在变量a中,用cout输出a的值,请将程序填完整。

ttinclude<iostream>

usingnamespacestd;

intmain()

cin»a;

cout〃a=〃aend1;

system("pause");

return0;

)

三、编程题

编程序计算立方体的表面积和体积,设一个立方体的三条边分别为a,b,c,若从键盘输入这三条边长,就可以计

算立方体的表面积和体积。

习题二(C++语言基础)

一、选择题

1.设char型占1字节,则unsignedchar所能表示的数据范围是。

A.0-255B.-128-127C.1-256D.-128-128

2.将小写字母n赋值给字符变量one_char,正确的操作是_______O

A.one_char=,\nB.one_char=“\n"C.one_char=110D.one_char=,N'

3.整型变量i定义后赋初值的结果是____________。

inti=2.8*6;

A.12B.16C.17D.18

4.下列四组整型常量中,错误的一组是__________。

A.xcdf017Oxe123B.160OxffffOil0L

C.0132768u06170x163D.0x48a02050x0-256

5.下列属于C++合法的字符常量是__________。

A.'\97'B.〃A〃C.'\t'D.〃\0〃

6.若整型变量x=2,则表达式x〈<2的结果是_________。

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

7.设inta=l,b=2;,则表达式(a++)+b与a+++b的值分别为_______________o

A.3,3B.3,4C.4,3D.4,4

8.在C++中,合法的长整型常量是__________。

A.0LB.4962710C.04312765D.0xa34b7fe

9.当用#defineX23.6f定义后,下列叙述正确的是__________。

A.X是实型常量B.X是实型变量C.X是一串字符D.语法错误

10.当用constintB=9;定义后,下列叙述错误的是________。

A.B是整型变量B.B是整型常量C.B不能在程序中再赋值D.B可以用作数组元素的下标

11.要求运算量必须是整型的运算符是____________。

A.+B./C.%D.-

12.在C++中,不同类型的数据混合运算时,先要转换成同一类型,然后进行计算。设一表达式中含有int、short、

unsigned和char类型的常量和变量。这四种类型的转换顺序是。

A.short-unsigned-*int-*charB.char-*int->short-*unsigned

C.charfshort-*int-*unsignedD.char-*unsigned-,-short-*int

13.a、b均为int型且bWO,则表达式a/b*b+a%b的值为_________。

A.aB.bC.a被b除的整数部分D.a被b除商的整数部分

14.a、b均为int型且bWO,则表达式a-a/b*b的值为_________。

A.0B.aC.a被b除的余数部分D.a被b除商的整数部分

15.下列表达式中,值为0的是__________。

A.3%5B.3/5.0C.3/5D.3<5

16.下列语句中符合C++语法的语句是___________。

A.a=7+b+c=a+7B.a=7+b++=a+7C.a=7+b,b++,a+7D."7二b,c=a+7

17.若变量已正确定义且k的值是4,执行表达式j=k—后,j、k的值是—_________O

A.j=4,k=4B.j=4,k=3C.j=3,k=4D.j=3,k=3

18.设intx=10,x+=3+x%(-3),则x=_____________。

A.14B.15C.11D.12

19.表达式(int)(3.0/2.0)的值是____________。

A.1.5B.1.0C.1D.0

20.设a为int型变量,则执行以下语句后,x的值为_____________。

a=10;a+=a-=a-a;

A.10B.20C.40D.30

21.设变量t为int型,下列选项中,不正确的赋值语句是。

A.++tB.nl=(n2=(n3=0))C.k=i==lD.a=b+c=l

22.设floatm=4.0,n=4.0;使m为10.0的表达式是_____________。

A.m-=n*2.5B.m/=n+9C.m*=n-6D.m+=n+2

23.C++语句中x*=y+2;还可以写成_______________。

A.x=x*y+2B.x=2+y*xC.x=x*(y+2)D.x=y+2*x

24.若变量已正确定义,要将a和b中的数进行交换,则下列不正确的语句组是____________。

A.a=a+b;b=a-b;a=a-b;B.t=a;a=b;b=t;

C.a=t;t=b;b=a;D.t=b;b=a;a=t;

25.设已定义intk=7,x=12;,下列表达式中,计算结果为0的是._____________________o

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

26.设inta=7,b=8;,则cout«(a+b,a)<<",“<<(b,a+b)输出的是_____________________a

A.7,15B.8,15C.15,7D.出错

27.下列表达式的值为false的是_______________。

A.1<3&&5<7B.!(2>4)C.3&0&a1D.!(5<8)1(2<8)

28.设inta=10,b=ll,c=12;,表达式(a+b)<c&&b==c的值是—________________o

A.2B.OC.-2D.1

29.正确表示“大于10而小于20的数”的C++表达式是___________________________o

A.10<x<20B.x>10||x<20C.x>10&x<20D.!(x<=10i|x>=20)

30.设inta=3;,则表达式a<l&&-a>l的运算结果和a的值分别是_______________________o

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

31.为表示关系x2y2z,应使用的C++表达式是。

A.(x>=y)&&(y>=z)B.(x>=y)AND(y>=z)C.x〉=y>=zD.(x>=y)&(y>=z)

32.已知intx=43,y=0;charch='A';,则表达式(x>=y&&ch〈'B'&&!y)的值是。

A.0B.语法错C.1D.-1

33.为表示,和b都大于0”,应使用的C++表达式是___...»

A.(a>0)&&(b>0)B.a&&bC.(a>0)||(b>0)D.(a>0)(b>0)

34.当c的值不为0时,下列选项中能正确将c的值既赋给变量a又赋给变量b的是。

A.c=b=aB.(a=c)||(b=c)C.(a=c)&&(b=c)D.a=c=b

35.设a为整型变量,下列不能正确表达数学关系:10<a<15的C++表达式是。

A.10<a<15B.a==ll||a==12||a==13||a==14C.a>10&&a<15D.!(a<=10)&&!(a>=15)

36.设a、b和c都是int型变量,且a=3,b=4,c=5;,则以下表达式中,值为0的是一一。

A.a&&bB.a<=bC.a||b+c&&b-cD.!((a<b)&&!c|11)

37.下面的程序输出为。

#include<iostream>

usingnamespacestd;

intmain()

(

inta=-l,b=4,k;

k=(a++<=0)&&(!(b―<=0));

cout«k«>,«a«ww«b«endl;

system("pause");

return0;

)

A.003B.012C.103D.112

38.整型变量x和y的值相等且为非0值,则以下选项中,结果为0的表达式是o

A.a||yB.a|yC.x&yD.x~y

39.设inta=4,floatx=7.5,y=4.8;,则表达式a+(int)((int)(x)+y)»(int)(x-y)的值为。

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

40.设intb=2;,表达式(b«2)/(b»l)的值是。

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

41.sizeof(double)是。

A.一种函数调用B.一个双精度表达式C.一个整型表达式D.一个不合法的表达式

42.若有以下定义和语句

intu=010,v=0xl0,w=10;

cout«u«w,"<<v«w,n<<w«endl;

则输出结果是。

A.8,16,10B,10,10,10C.8,8,10D.8,10,10

二、填空题

1.无符号整型的类型关键字为________,双精度实型的关键字为——,字符型的类型关

键字为。

2.在C++中,整数可用进制、进制和进制三种进位计数制表示。

3.字符串常量的结束符为。

4.设有以下定义,并已赋确定的值

charch;inti;floatf;doubled;

则表达式ch*i+d-f的数据类型为o

5.设有inta=14;,则表达式(a++*l/5)的值为°

6.下列程序的输出结果是o

#include<iostream>

usingnamespacestd;

intmainO

{

doubled=3.2;

inta=l.2,b;

b=(a+3.8)/5.0;

cout«d*b«endl;

system("pause");

return0;

)

7.下列程序执行后的输出结果是。

^include<iostream>

usingnamespacestd;

intmain()

(

doubled;

floatf;

long1;

inti;

i=f=l=d=20.0/3;

cout<Q。",","«f<<","<<d<〈endl;

system("pause");

return0;

}

8.若有以下程序段

inta=l,b=2,c;

c=l.0/b*a;

则执行后,变量c的值为o

9.下列程序的输出结果是16,请将程序填完整。

#include<iostream>

usingnamespacestd;

intmain()

{

inta=9,b=2;

floatx=y=l.1,z;

z=a/2+b*x/y+l/2;

cout<<z«endl;

system("pause");

return0;

)

10.下列程序的输出结果是o

#include<iostream>

usingnamespacestd;

intmain()

(

intx=l,y=2;

x+=y;y=x-y;x-=y;

cout«>,X=”<<x<,y=J,«y«endl;

system("pause");

return0;

)

11.设已定义inta=10,b=12;则表达式(幅||b-)的值是。

12.若a为int型变量,请以最简单的形式写出与逻辑表达式!a等价的C++关系表达式

13.下面的程序运行后,输出结果为。

#include<iostream>

^include<iomanip>

usingnamespacestd;

intmain()

(

intc=97;

cout«c«w,9f;

cout<Xoct〈〈c<X",";

cout<<hex«c<<endl;

system("pause");

return0;

三、程序改错题

1.下面程序的功能是将变量a和b的值交换,请找出其中的错误,并修改正确。

^include<iostream>

usingnamespacestd;

intmain()

{

inta,b,t;

cin»a»b;

a=b;

b=a;

cout«>,a=w«a«w,b=”«b«endl;

system("pause");

return0;

2.下面的程序用来将八进制整数a的后6位存放到变量中。请修改程序中的错误。

#include<iostream>

usingnamespacestd;

intmain()

{

inta,b;

cin»oct>>a;

b=a!077;

cout<<va=w<<oct«a<<,>,b=,><<oct<<b<<endl;

system("pause");

return0;

}

四、编程题

1.编写程序计算边长为a(a的值从键盘输入)的正方形面积及其外接圆和内切圆的面积。

2.编写程序实现华氏温度f和摄氏温度c的转换,转换公式为:。=盛(/-32)。具体要求:

从键盘输入华氏温

度,通过计算输出摄氏温度

习题三(程序的控制结构)

一、选择题

1.结构化程序设计使用的基本程序控制结构为。

A.模块结构、选择结构和递归结构B.条件结构、顺序结构和过程结构

C.顺序结构、选择结构和循环结构D.转换结构、嵌套结构和递归结构

2.设已定义整型变量a、b、c、x,下列程序段运行后x的值是。

a二b二c=0,x=35;

if(!a)

x——;

elseif(b);

if(c)

x=3;

else

x=4;

cout«x<<endl;

A.34B.4C.35D.3

3.若已定义intd;charc='D';,则执行的语句后,d的值是。

switch(c)

case,A':d=0;break;

case:case'C':d=2;break;

case,D':case'E':d=4;break;

default:d=5;

)

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

4,若已定义inti;,下面程序段的运行结果是o

for(i=l;i++<4;);

cout«i<<endl;

A.3B.4C.5D.不定

5.若已定义inta=10;,下列循环的输出结果是。

while(a>7)

{a一;cout«a«,,”;}

A.1098B.987C.10987D.9876

6.若已定义intx=3;,以下程序段的输出结果是o

do

{

cout«(x-=2)«”“;

}while(!(一x));

A.1B.30C.1-2D.死循环

7.以下关于do-while循环的叙述中,正确的是o

A.do-while语句构成的循环只能用break语句退出

B.用do-while语句构成的循环,在while后的表达式为非0时结束循环

C.用do-while语句构成的循环,在while后的表达式为0时结束循环

I),do-while语句构成的循环不能用其他语句构成的循环来代替

8.以下关于编译预处理的叙述中,错误的是o

A.C++源程序中凡是以开始的控制行都是预处理命令行

B.预处理命令行必须位于源程序的开始位置

C.•条有效的预处理命令行必须独占一行

D.预处理命令是在正式编译前被处理的

9.编译预处理命令以结尾。

A.;B..C.\D.回车键

二、填空题

1.以下两条if语句可合并成一条if语句为

if(a<=b)x=l;

elsey=2;

if(a>b)cout«,,****y=,f<<y«endl;

elsecout<X"二”<<x«endl;

2.要使以下程序段输出10个整数,请填入一个整数。

for(inti=0;;cout«(i+=2));

3.下面程序的功能是:计算1到10之间的奇数之和及偶数之和,请填空。

ttinclude<iostream>

usingnamespacestd;

voidmainO

(

inta,b,c,i;

a=c=0;

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

(

a+=i;

c+=b;

}

cin>>”偶数之和="<<a<<endl;

cin>>”奇数之和="<<cTl«endl;

system("pause");

}

4.以下程序将输出的整数按逆序输出。如输入1298,则输出8921。请填空。

#include<iostream>

usingnamespacestd;

voidmainO

(

intnl,n2;

cin>>n2;

while(n2!=0)

(

nl=n2%10;

cout<<nl;

)

system("pause");

)

5.下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。

Winclude<iostream>

usingnamespacestd;

voidmain()

(

inti,j;

for(i=0;;i++)

(

j=i*10+6;

if()continue;

cout<<j;

)

system("pause");

)

三、阅读程序题

1.以下程序的输出结果是____________________________

#include<iostream>

usingnamespacestd;

voidmain()

(

intx=3,y=0,z=0;

if(x=y+z)cout<<”****”;

elsecout«w####";

system("pause");

}

2.运行下面程序时,若从键盘输入3和4,则输出为o

ttinclude<iostream>

usingnamespacestd;

voidmain()

{

inta,b,s;

cin»a»b;

s=a;

if(s<b)s=b;

s=s*s;

cout«s<<endl;

system("pause");

3.以下程序的输出结果是o

#include<iostream>

usingnamespacestd;

voidmain()

(

inta=0,i;

for(i=l;i<5;i++)

(

switch(i)

(

case0:

case3:a+=2;

case1:

case2:a+=5;

default:a+=5;

)

)

cout<<a<<endl;

system("pause");

)

4.运行以下程序后,输出结果是

4include<iostream>

usingnamespacestd;

voidmainO

(

for(intj=10;j>3;j—)

(

if(j%3)j—;

—j;—j;

cout«j«w”<<;

)

system("pause");

)

5.以下程序的输出结果是o

#include<iostream>

usingnamespacestd;

voidmain()

(

intx,i;

for(i=l;i〈=50;i++)

(

x=i;

if(x%2==0)

if(x%3==0)

if(x%7==0)

cout<<i<<endl;

}

system("pause");

)

6.下列程序的输出结果是。

#include<iostream>

usingnamespacestd;

voidmainO

(

inti=10,j=0;

do(

j=j+i;i—;

}while(i>2);

cout<<j<<endl;

system("pause");

)

7.以下程序的运行结果是o

ttinclude<iostream>

usingnamespacestd;

voidmainO

(

inta=10,y=0;

do{

a+=2;y+=a;

cout«>>a=w«a«M,y=?,«y«endl;

if(y>20)break;

}while(a=14);

system("pause");

}

8.运行以下程序后,输出结果是。

ttinclude<iostream>

usingnamespacestd;

voidmainO

(

intx=23;

do{cout«x-;}while(!x);

system("pause");

)

9.下列程序的输出结果是o

ttinclude<iostream>

usingnamespacestd;

voidmainO

(

inti,j,m=0,n=0;

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

for(j=0;j<2;j++)

if(j>=i)m=l;n++

cout<<n<<endl;

system("pause");

)

10.以下程序的输出结果是。

#include<iostream>

usingnamespacestd;

voidmain()

(

inta,b;

for(a=l,b=l;a<=100;a++)

(

if(b>=10)break;

if(b%3==l)

{b+=3;continue;}

)

cout«a«endl;

system("pause");

)

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

Sinclude<iostream>

usingnamespacestd;

voidmainO

(

intx=3,y=6,a=0;

while(x++!=(y-=l))

(

a+=l;

if(y<x)break;

)

cout«wx="«x«w,y=w«y«w,a-n«a«endl;

system("pause");

}

四、程序改错题

1.下面的程序用来求分段函数

0(x<0)

1(0<x<1)

y="

2(1<x<2)

3(x>2)

的值,请将程序中的错误修改正确

#include<iostream>

usingnamespacestd;

voidmain0

(

floatx,y;

cin»x;

if(x<0)

y=0;

if(x<l)

y=l;

if(x<2)

y=2:

else

y=3:

cout<<wx=v<<x«,J,y=w«y«endl;

system("pause”);

)

2.下面的程序用来求1〜100中所有能被3整除的各数之和,结果放入变量sum中。请将程序修改正确,以得到正

确的输出结果。

#include<iostream>

usingnamespacestd;

voidmain()

(

inti,sum;

for(i=3;i<100;i++)

{

sum=0;sum+=i;

)

cout<<wsum="〈〈sumGendl;

system("pause");

)

3.求n近似值的公式为:

?242A2f9xnV

〃=2x——x——x——x・・・x7—-----当n的值很大时(例如,片1000),下列程序运行是将会产生

1x33x55x7⑵?-1卜(2〃+1)

“溢出”错误,请修改程序,使之能正确计算。

ttinclude<iostream>

usingnamespacestd;

voidmain()

(

floatpi=2;

for(intn=l;n<=1000;n++)

pi=pi*(2*n)*(2*n)/((2*nT)*(2*n+l));

cout«npi=w«pi«endl;

system("pause");

}

五、编程题

1.从键盘输入100个整数,从中找出最大数和最小数。

2.编制程序计算两个整数a和b的最小公倍数。

3.试程序计算1!+2!+…+20!。

4.编制程序打印出100以内的所有素数。

5.编制程序用辗转相除法求整数a和b的最大公约数。

习题四(函数)

一、选择题

1.在下列关于C++函数的描述中,正确的是。

A.函数可以嵌套定义,但不可以嵌套调用B.函数不可以嵌套定义,但可以嵌套调用

C.函数不可以嵌套定义,也不可以嵌套调用D.函数可以嵌套定义,也可以嵌套调用

2.下列关于C++函数的叙述中,正确的是0

A.每个函数至少要具有•个参数B.每个函数都必须有数据类型

C.函数在被调用之前必须先声明D.函数不能自己调用自己

3.若函数为int型,变量z为门oat型,则该函数体内的语句return(z)返回值的类型是。

A.int型B.float型C.不定D.不确定

4.下列关于函数参数默认值的描述中,正确的是一

A.函数参数的默认值只能设置一个

B.若一个函数含有多个参数,其中一个参数设置成默认值后,其后所有参数都必须设置成默认值

C.若一个函数含有多个参数,则设置默认值参数时可以不连续设置默认值

D.C++语言中函数都必须设有默认值

5.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是。

A.地址传递B.单向值传递

C.由实参传给形参,再由形参传给实参D.传递方式由用户指定

6.以下程序的输出结果是_

A.0B.29C.31D.不定值

ttinclude<iostream>

usingnamespacestd;

voidfun(intx,inty,intz)

{z=x*x+y*y;}

voidmainO

(

inta=31;

fun⑸2,a);

cout<<a<<endl;

system("pause");

)

7.考虑函数原型voidtest(inta,intb=7,charc='*'),下面的函数调用中,属于不合法调用的是

A.test(5)B.test(5,8)C.test(6,'#')D.test(0,0,'*')

8.下列程序执行后输出结果是o

#include<iostream>

usingnamespacestd;

intd=l;

voidfun(intp)

(

intd=5;

d+=p++;

cout«d«,,”;

)

intmain()

(

inta=3;

fun(a);

d+=a++;

cout<<d<<endl;

)

A.84B.96C.94D.85

9.有如下程序:

^include<iostream>

usingnamespacestd;

intfunc(inta,intb)

{return(a+b);}

intmain()

intx=2,y=5,z=8,r;

r=func(func(x,y),z);

cout<<r<<endl;

该程序的输出结果是.

A.12B.13C.14D.15

10.在C++语言中,形参的缺省存储类型是.

A.autoB.registerC.staticD.extern

11.下列程序执行后的输出结果是

#include<iostream>

usingnamespacestd;

intf(inta)

(

intb=0;

stateintc=3;

a=c++,b++;

returna;

)

intmainO

(

inta=2,i,k;

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论