级程序设计基础习题参考解答教师用.docx

上传人:b****9 文档编号:25207826 上传时间:2023-06-06 格式:DOCX 页数:61 大小:39.07KB
下载 相关 举报
级程序设计基础习题参考解答教师用.docx_第1页
第1页 / 共61页
级程序设计基础习题参考解答教师用.docx_第2页
第2页 / 共61页
级程序设计基础习题参考解答教师用.docx_第3页
第3页 / 共61页
级程序设计基础习题参考解答教师用.docx_第4页
第4页 / 共61页
级程序设计基础习题参考解答教师用.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

级程序设计基础习题参考解答教师用.docx

《级程序设计基础习题参考解答教师用.docx》由会员分享,可在线阅读,更多相关《级程序设计基础习题参考解答教师用.docx(61页珍藏版)》请在冰豆网上搜索。

级程序设计基础习题参考解答教师用.docx

级程序设计基础习题参考解答教师用

计算机程序设计基础__基础知识

(一)

一、选择题

1、C++源程序文件的默认扩展名为()。

(A)cpp(B)exe

(C)obj(D)lik

解:

选A

2、由C++源程序文件编译而成的目标文件的默认扩展名为()。

(A)cpp(B)exe

(C)obj(D)lik

解:

选C

3、由C++目标文件连接而成的可执行文件的默认扩展名为()。

(A)cpp(B)exe

(C)obj(D)lik

解:

选B

4、编写C++程序一般需经过的几个步骤依次是()。

(A)编译、编辑、连接、调试(B)编辑、编译、连接、调试

(C)编译、调试、编辑、连接(D)编辑、调试、编译、连接

解:

选B

5、程序中主函数的名字为()。

(A)main(B)MAIN

(C)Main(D)任意标识符

解:

选A

6、下面四个选项中,均是不合法的用户标识符的选项的是()。

(A)Ap_odo(B)floatlao_A

(C)b-agotoint(D)_123tempINT

解:

选C。

因为b-a中用到减号,goto,int是C++保留的关键字。

在A选项中,A,p_o是合法的用户标识符;在B选项中,lao与_A是合法的用户标识符;在D选项,_123与temp也是合法的用户标识符。

7、下列变量名中合法的是()。

(A)B)C)Tom(B)3a66

(C)_6a7b(D)$ABC

解:

选C。

因为它由字母、数字与下划线组成的字符序列,且以下划线开头。

在A选项中,变量名用到了)号;在B选项中,以数字3开头;在D选项中,以美元符号$开头。

8、存储以下数据,占用存储字节最多的是()。

(A)0(B)‘0’

(C)“0”(D)0.0

解:

选D。

该数据至少是浮点型或双精度型,它占用存储字节数分别为4字节或8字节。

在A选项中,整数0占用4字节;在B选项中,字符0占用1字节;在C选项中,它是字符数组的赋值,应占用2字节。

9、在C++语言中,字符型数据在内存中的存储形式是()。

(A)补码(B)反码

(C)原码(D)ASCII码

解:

选D。

字符型数据在内存中所存储的值其实是一个正整数值,该值是其ASCII码值。

所以在C++中,字符型数据可与整型数据进行运算。

10、若有说明语句:

charc=’\072’;则变量c()。

(A)包含1个字符(B)包含2个字符

(C)包含3个字符(D)说明不合法,变量的值不确定

解:

选A。

因为、\072是转义字符,表示;号。

二、填空题

1、C++头文件和源程序文件的扩展名分别为和。

解:

填h和cpp。

2、C++语言规定,标识符只能由、、三种字符组成,而且第一个字符必须是或。

解:

填字母、数字、下划线(无顺序之分),填字母、下划线(无顺序之分)。

3、一条表达式语句必须以作为结束符。

解:

填;(即分号)。

4、用于从键盘上为变量输入值的标准输入流对象是;用于输出表达式值的标准输出流对象是。

解:

填cin,cout。

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

解:

填include。

计算机程序设计基础__基础知识

(二)

一、单选题

1、下列哪一个是C++语言中合法的变量()。

(A)8ZSe(B)±A0

(C)X0_2(D)’x0’

解:

选C。

因为A选项,数字8打头,B选项中,±打头,C选项中,‘打头,这都是C++变量命名所不允许的。

2、已知ch是字符型变量,下面不正确的赋值语句是()。

(A)ch='a+b'(B)ch='\0'

(C)ch='7'+'9'(D)ch=5+9

解:

选A。

3、下列浮点数的表示中不正确的是()。

(A)223.(B)719E22

(C)e23(D)12e2

解:

选C。

因为e或E的两边必须带上一位数字。

4、下列不正确的转义字符是()。

(A)'\\'(B)‘\"’

(C)'074'(D)'\0'

解:

选C。

074取字符时,仅取了4。

5、在C语言中,合法的字符常量是()。

(A)'\084'(B)'\x43'

(C)'ab'(D)"\0"

解:

选A。

A选项表示4,而C选项仅取了b,D选项是字符串,B似乎也行。

6、下列变量定义中合法的是()。

(A)double_a=1.le-1;(B)doubleb=1+5e2.5;

(C)doubledo=2e3(D)double2_and=1-e-3;

解:

选A。

B选项错在:

变量初始化不能用算术表达式。

C选项错在:

do关键词不能作变量名。

D选项错在:

变量名应字母与下划线打头。

7、已知ch是字符变量,正确的赋值语句是()。

(A)ch=‘123’(B)ch=’\xff’

(C)ch=’\08’(D)ch=”\”

解:

选C。

A选项只能将3赋给ch,并不能将123赋给ch。

B选项中的\xff并非转义字符。

D选项是为字符串变量赋值。

8、若x、i、j和k都是int型变量,则计算表达式x=(i=4,j=15,k=32)后,x的值为()。

(A)4(B)16

(C)32(D)52

解:

选C。

先算括号,它是逗号表达式,值取最后的一个,即k=32。

然后将k的值32赋给x,从而x的值为32。

9、单精度数x=3.0,y=4.0,下列表达式中y的值为9.0的是()。

(A)y/=x*27/4(B)y+=x+2.0

(C)y-=x+8.0(D)y*=x-3.0

解:

选B。

选做x+2.0=3.0+2.0=5.0,再作y=y+5.0=4.0+5.0=9.0。

A选项的值为0.197531,C选项的值为-7,D选项的值为0。

10、有整型变量x,单精度变量y=5.5,表达式:

x=(float)(y*3+((int)y%4))执行后,x的值为()。

(A)17(B)17.5

(C)16.5(D)16

解:

选A。

求解过程如下:

(int)y=5(int)y%4=5%4=1,y*3=5.5*3=16.5,16.5+1=17.5,(float)17.5=17.5,由于x是整型变量,故只能将17赋给了x。

二、填空题

1、一个C语言程序一般由若干个函数构成的,程序中至少应包含一个。

解:

填main。

2、在C语言中,八进制整常量以开头、十六进制整常量以开头。

解:

填数字0开头,填ox或OX

3、‘x’在内存中占字节,”x”在内存中占字节,”/101”在内存中占。

解:

填1,再填2,最后填1。

4、若a是int型变量,且a的初值为6,则计算表达式a+=a-=a*a后a的值为。

解:

填-60,计算过程如下:

注意到赋值运算符结合次序是从右至左,有:

a*a=36,再执行a-=36,则a=6-36=-30,再执行a+=-30,即a=-30-30=-60。

5、设inta=2,b=3;floatx=3.5,y=2.5;表达式(float)(a+b)/2+(int)x%(int)y的值是。

解:

填3.5,计算过程如下:

(float)(a+b)=5.0,(int)x=3,(int)y=2

5.0/2+3%2=2.5+1=3.5

6、设intx=1,y=1;表达式(!

x||y--)的值是。

解:

填1,计算过程如下:

!

x=0,y—仍使y=1,再做0||1=1之后,y=0。

7、定义:

inta=10,b=9,c=8;顺序执行语句:

c=(a-=(b-5));c=(a%11)+(b=3);后变量c的值是;变量b的值是。

解:

填9,填3,计算过程如下:

b-5=9-5=4,a-=4=10-4=6,c=6

a%11=6%11=6,b=3,c=6+3=9

故最后c=9,b=3。

8、设有intx=11;则表达式(x++*1/3)的值是。

解:

填3,计算过程如下:

x++仍使x=11,11/3=3,并使x=12。

计算机程序设计基础__基础知识(三)

一、单选题

1、下列优先级最低的算符是()。

(A)&&(B)+(C)||(D)=

解:

选D。

&&与||为8级运算符,+为4级运算符,而=为10级运算符。

2、以下符合C++语言语法的赋值表达式是()。

(A)d=9+e+f=d+9(B)d=9+e,f=d+9

(C)d=(9+e,e++,d+9)(D)d=9+e++=d+7

解:

选C。

A选项错在:

赋值运算的左值应为单变量,不能是表达式。

B选项错在:

它是逗号表达式,不是赋值表达式。

D选项错在:

e++是运算表达式,而非变量,不能进行赋值运算。

3、已知字母A的ASCII码为十进制数65,且c2为字符型,执行语句c2=‘A’+’6’-‘3’;后c2的十进制ASCII码值为()。

(A)67(B)68(C)69(D)不确定的值

解:

选B,其计算过程是:

65+3=68

4、设有说明:

charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为()。

(A)float(B)char(C)int(D)double

解:

选D。

类型转换遵循由低向高。

char->int,float->double.

5、假设在程序中a、b、c均被定义成整型,所赋的值都大于1,则下列能正确表示代数式

的表达式是()。

(A)1.0/a*b*c(B)1/(a*b*c)

(C)1/a/b/(float)c(D)1.0/a/b/c

解:

选B。

A,C,D都改为了浮点数相除,B是整数相除。

6、已知inti,a;执行语句“i=(a=2*3,a*5),a+6;”后,变量i的值是()。

(A)6(B)12(C)30(D)36

解:

选C。

逗号表达式的执行次序是从左至右,于是

i=(a=6,6*5)=30,再执行a+6=6+6=12

执行完后,i=30,但该表达式的值为12。

7、C++语言中,要求运算数必须是整型的运算符是()。

(A)%(B)/(C)<(D)!

解:

选A。

8、以下正确地定义整型变量a,b和c并为它们都赋初值5的语句是()。

(A)inta=b=c=5;(B)inta,b,c=5;

(C)inta=5,b=5,c=5;(D)a=b=c=5;

解:

选C。

A选项与D选项应改为:

inta,b,c;a=b=c=5;而B选项仅为c赋了初值5,a,b均未赋初值。

9、以下变量均为int类型,则值不等于7的表达式是()。

(A)(x=y=6,x+y,x+1)(B)(x=y=6,x+y,y+1)

(C)(x=6,x+1,y=6,x+y)(D)(y=6,y+1,x=y,x+1)

解:

选C。

它的运算过程如下:

x=6,x+1=6+1=7,y=6,x+y=6+6=12,其表达式最后的值为12。

A、B和D选项的值均为7。

10、设有inta=1,b=2,c=3,d=4,m=2,n=2;执行语句:

(m=a>b)&&(n=d>c);后n的值为()。

(A)1(B)2(C)3(D)0

解:

选B,其运算过程为:

先执行括号,由左至右次序,于是

a>b为1>2,值为0,故m=0

本应执行第二个括号,即d>c为4>3,值为1,故n=1。

但实际上,由于0与任何值作与运算&&,其结果均为0,于是第二个括号内的运算可以不必进行。

因此,n=2而不是n=1。

二、填空题

1、当inta=1,b=2,c=3;时,则表达式a+b>0&&b==c的值是。

解:

填0,其计算过程如下:

由于关系运算的优先级高于逻辑运算,故上式等价于(a+b>0)&&(b==c)

a+b>0,即1+2=3>0,故值为1。

b==c,即2==3,故值为0。

1&&0=0

2、若x是int类型变量,则执行下列语句:

x=7;x+=x-=x+x;后x的值是。

解:

填-14,其计算过程如下:

赋值运算符的次序是由右至左,x+x=14,x-=14,再执行x=x-14=7-14=-7,最后执行x+=-7,即x=x+(-7)=-7-7=-14.

3、若变量a,b和c是int类型,以下语句借助int类型中间变量t把a,b,c交换,如交换前:

a=10,b=20,c=30,交换后:

a=20,b=30,c=10,则交换语句为;a=b;b=c;;

解:

填t=a,再填c=t。

这是一种非标准的变量交换。

标准的交换是两两交换,即先作a与b的交换,然后作b与c的交换,其语名为:

t=a;a=b;b=t;

t=b;b=c;c=t;

4、设inta=2,b=4,c=1,x=0,y=0;执行语句a||(x=b)&&(y=c);后x的值为,y的值为。

解:

填0,再填0,其计算过程与理由如下:

2||(x=b)&&(y=c),由于2非零,它与后面表达式作||或运算,其值自然是非零,后面的表达式不需要进行运算,因此,x,y的值仍为0。

5、判断字符型变量c为大写字母的正确表达式是。

解:

填c>=65&&c<=90,或填c>=’A’&&c<=’Z’。

A至Z的ASCII码的值为:

65-90;a至z的ASCII码的值为:

97-122。

可见,大写字母换小写字母,应将码值加32。

而小写字母换大写字母,应将码值减32。

计算机程序设计基础__控制结构

(一)

一、单选题

1、下列程序的输出结果是()。

#include

voidmain()

{doubled=3.2;intx,y;

x=1.2;y=(x+3.8)/5.0;

cout<

}

(A)3(B)3.2(C)0(D)3.07

解:

选C。

其计算过程如下:

由于x为整型变量,x=1.2,使x=1,y=(1+3.8)/5.0=4.8/5.0=0.98,由于y也是整型变量,y=0,从而d*y=3.2*0.0=0,输出0。

2.下列程序执行后的输出结果是()。

#include

voidmain()

{doubled;floatf;

longl;inti;

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

cout<

cout<

}

(A)6,6,6,6(B)6,6,6.7,6.7

(C)6,6,6,6.7(D)6,6,6.7,6

解:

选A。

其计算过程如下:

20/3=6,故d=6.0,l=6,f=6.0,i=6,故输出结果为6,6,6,6。

3、下面程序的输出是()。

#include

voidmain()

{

inta=-1,b=4,k;

k=(a++<=0)&&(!

(b--<=0));

cout<

}

(A)003(B)012

(C)103(D)112

解:

选C。

其计算过程如下:

(1)a++<0,即-1<0,值为1且a=0

(2)!

(b--<=0),即!

(4<=0)=1且b=3

(3)k=1&&1=1

(4)输出103

4、设intx=1,y=3,则语句x+=y;y=x-y;x-=y;的功能是()。

(A)把x和y按从大到小排列(B)把x和y按从小到大排列

(C)无确定结果(D)交换x和y中的值

解:

输出D。

其计算过程如下:

x=x+y使x存储x+y的值,而y=x-y=(x+y)-y=x,使y中存储x值,而x=x-y=(x+y)-x=y,即使y中存储了y的值。

故该语句的功能是实现交换x和y中的值。

5、以下程序的输出结果是()。

#include

voidmain()

{inta,b,c=246;

a=c/100%9;b=(-1)&&(-1);

cout<

}

(A)2,1(B)3,2

(C)4,3(D)2,-1

解:

选A。

其计算过程如下:

a=246/100%9=2%9=2

b=(-1)&&(-1)=1

输出2,1

二、分析程序,写出运行结果

1、#include

voidmain()

{inti,j,m,n;

i=8;j=10;

m=++i;

n=j++;

cout<

}

程序的运行结果是

解:

填911910。

其运行过程如下:

m=++i=9(该语句执行之前,已使i=9),n=j++=10(但执行完后,j=11)

故i=9,j=11,m=9,n=10。

由于输出时未空格,故输出结果为911910。

2、#include

voidmain()

{

inty=3,x=3,z=1;

cout<<(++x,y++)<

}

程序的运行结果是

解:

填33。

其运行过程如下:

执行++x,其值为4且x=4。

执行y++,其值为3但y=4

(4,3)=3z+2=3因此,输出结果为33。

计算机程序设计基础__控制结构

(二)

一、单选题

1、若从键盘上输入5,则程序的输出结果是()。

#include

voidmain()

{

intx;

cin>>x;

if(x++>5)cout<

elsecout<

}

(A)7(B)6(C)5(D)4

解:

选B。

其程序运行过程如下:

判断x++>5,即5>5,其值为0,当该判断结束后,x=6

执行cout<

2、下列程序的输出结果是()。

#include

voidmain()

{intx=1,a=0,b=0;

switch(x)

{

case0:

b++;

case1:

a++;

case2:

a++;b++;

}

cout<<”a=”<

}

(A)a=2,b=1(B)a=1,b=1

(C)a=1,b=0(D)a=2,b=2

解:

选A。

其程序运行过程如下:

由于switch

(1),执行case1:

使a=1,由于没有break,继续执行case2:

使得a=2,b=1.

结束switch,输出a=2,b=1。

3、下列程序的输出结果是()。

#include

voidmain()

{doublex=2.0,y;

if(x<0.0)y=0.0;

elseif(x<10.0)y=1.0/x;

elsey=1.0;

cout<

}

(A)0(B)0.25(C)0.5(D)1

解:

选C。

其程序执行过程如下:

2.0<0.0为假,继续判定2.0<10.0,其值为真,执行y=1.0/2.0=0.5,再输出0.5。

4、若从键盘上输入3和4,则程序的输出结果是()。

#include

voidmain()

{inta,b,s;

cin>>a>>b;

s=a;if(a

cout<

}

(A)14(B)16(C)18(D)20

解:

选B。

其程序执行过程如下:

执行输入语句,使得a=3,b=4。

s=a=3

由于3<4为真,使得s=4

执行s=s*s=4*4=16

输出16。

5、下面的程序()。

#include

voidmain()

{

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

if(x=y+z)cout<<"****\n";

elsecout<<"####\n";

}

(A)有语法错误不能通过编译(B)输出****

(C)可以通过编译,但是不能通过连接,因而不能运行(D)输出####

解:

选D。

其程序执行过程如下:

条件表达式if(x=y+z)的意义是:

x=0+0=0,if(0),故程序转向执行输出####,并换行。

6、为避免在嵌套的条件语句if-else中产生二义性,C语言规定:

else子句总是与()配对。

(A)同一行上的if(B)其之后最近的if

(C)其之前最近的且没有else的if(D)缩排位置相同的if

解:

选C。

二、填空题

1、计算机总是按照语句或者语句块位置的先后关系执行。

解:

填顺序。

2、所有程序都可以用、、三种控制结构实现。

解:

填顺序、选择、循环。

3、switch结构中的表达式必须是。

解:

填整型或字符型或枚举型数据。

4、case语句中的表达式必须是。

解:

填常量表达式。

计算机程序设计基础__控制结构(三)

一、分析程序,写出运行结果

1、#include

voidmain()

{

intx=100,a=10,b=20,ok1=5,ok2=5;

if(a

if(b!

=15)

if(!

ok1)

x=1;

else

if(ok2)

x=10;

cout<

}

程序的运行结果是

解:

填10。

本程序主要考查对if与else就究配对原则的理解,以及if嵌套后的层次关系的理解。

该程序可适当添加括号与缩进,使程序层次更明晰,理解更方便一些。

#include

voidmain()

{

intx=100,a=10,b=20,ok1=5,ok2=5;

if(a

{

if(b!

=15)

{

if(!

ok1)

x=1;

else

{

if(ok2)

x=10;

}

}

}

cout<

}

其执行过程如下:

10<20为真,考察20!

=15,也为真,再考察!

5为0,再转而考察if(5),其值为真,x=10,最后输出10。

2、#include

voidmain()

{floatx,y;charch;doubler;

cin>>x>>y>>ch;

switch(ch)

{

case‘+’:

r=x+y;break;

case‘-’:

r=x-y;break;

case‘*’:

r=x*y;break;

case‘/’:

r=x/y;break;

}

cout<

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

当前位置:首页 > 解决方案 > 工作计划

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

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