教材每章后选择题参考答案.docx

上传人:b****6 文档编号:9116899 上传时间:2023-02-03 格式:DOCX 页数:23 大小:24.57KB
下载 相关 举报
教材每章后选择题参考答案.docx_第1页
第1页 / 共23页
教材每章后选择题参考答案.docx_第2页
第2页 / 共23页
教材每章后选择题参考答案.docx_第3页
第3页 / 共23页
教材每章后选择题参考答案.docx_第4页
第4页 / 共23页
教材每章后选择题参考答案.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

教材每章后选择题参考答案.docx

《教材每章后选择题参考答案.docx》由会员分享,可在线阅读,更多相关《教材每章后选择题参考答案.docx(23页珍藏版)》请在冰豆网上搜索。

教材每章后选择题参考答案.docx

教材每章后选择题参考答案

 

习题1:

 

一、选择题

1.C语言中的表记符只好由字母,数字和下划线构成且第一个字符(A)。

 

A.一定为字母或下划线

B.一定为下划线

C.一定为字母

D.能够是字母、数字或下划线中的任一个

2.

C语言中,编程人员能够使用的合法表记符是

(D)

A.if

B.6e8

C.char

D.print

E.a+b

3.

C语言程序中能够对程序进行说明,说明部分一定用符号

(C)括起来。

A.{和}

B.[

和]C./*

和*/

D.*/

和/*

4.C语言程序编译时,程序中的说明部分是(

D)。

A.参加编译,并会出此刻目标程序中

B.参加编译,但不会出此刻目标程序中

C.不参加编译,但会出此刻目标程序中

D.不参加编译,也不会出此刻目标程序中

5.以下表达正确的选项是(c)。

A.在C程序中,main()函数一定位于程序的最前方

B.C程序的每行中只好写一条语句

C.C语言自己没有输入输出语句

D.在对一个C程序进行编译的过程中,可发现说明中的拼写错误

6.C程序要正确地运转,一定要有(C)函数。

A.printf()函数B.定义的函数C.main()函数D.不需要函数

 

7.以下表达正确的选项是(D)。

A.编写C程序,只要编译、连结没有错误,就能运转获取正确的结果

B.C程序的语法错误包含编译错误和逻辑错误

C.C程序有逻辑错,则不行能连结生成EXE文件

D.C程序的运转时错误也是由程序的逻辑错误产生的,惹出发序的运转中止

习题2:

 

5

 

一、选择题

 

1.履行代码:

intk;k=8567;printf("|%-06d|\n",k);

 

后显示(C)。

 

A.没法显示B.|008567|C.|8567|D.|-08567|

2.用小数或指数形式输入实数时,在scanf函数中格式说明字符为(c)。

A.dB.cC.fD.r

3.能够输入字符型数据至字符变量c的语句是(d)。

 

A.putchar(c);B.getchar(c);C.getchar();D.scanf("%c",&c);

 

4.若x是int种类变量,y是float种类变量,则为了将数据55和55.5分别赋给x和y,则履行语句:

scanf(“%d,%f”,&x,&y);时,正确的键盘输入是(a)。

A.55,55.5↙

 

 

C.55↙55.5↙

 

D.x=55↙y=55.5↙

 

5.printf格式控制与输出项的个数一定同样。

格式说明的个数小于输出项的个数,剩余的输出项将(a)。

A.不予输出B.输出空格C.正常输出D.输出不定值或0

 

6.scanf函数的格式说明的种类与输入的种类应一一般配。

假如种类不般配,系统(b)。

 

A.不予接收

B.其实不给出犯错信息,但不行能得出正确信息数据

 

C.能接受正确输入

 

D.给出犯错信息,不予接收输入

 

7.(d)是正确的描绘

 

A.输入项能够是一个实型常量,如scanf("%f",4.8);

 

B.只有格式控制,没有输入项也能输入,如scanf("a=%d,b=%d");

 

C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%5.3f",&f);

D.当输入数据时,一定指明变量的地点,如scanf("%f",&f);

 

6

 

8.履行代码:

inti;scanf("%f",&i);

printf("%d",i);

输入值为7,输出(c)。

 

A.7B.C.1088421888D.

9.有以下代码:

floatx=213.82631;printf("%-8.2f\n",x);

 

履行后程序的运转结果是(d)。

 

A.不可以输出

 

B.

 

C.

D.

 

10.设有charch;与语句“ch=getchar();”等价的语句是(d)。

 

A.printf("%c",ch);

 

B.printf("%c",&ch);

 

C.scanf("%c",ch);

 

D.scanf("%c",&ch);

 

习题3:

一、选择题

 

1.以下不属于C语言中重点字的是()

A.longB.printC.defaultD.typedef

答案(B)

 

2.假定变量名i,c,f的定义为inti;charc;floatf;那么以下结果为整型的表达式是()。

A.i+fB.i*cC.c+fD.i+c+f

答案(B)

 

3.下边四个选项中,均为合法的常量的选项是()。

A.160、-0xffff

、011

 

7

 

B.-0xcdf、01A、0xe

 

C.-01、986,012、0668

 

D.-0x48A、2e5、0x

答案(A)

 

4.以下正确的变量定义是()。

A.intd=10.23;

 

B.floatm1=m2=10.0;

 

C.charc1='A',c2=A;D.doublex=0.618,x=3.14;

答案(A)

 

5.定义字符型变量:

charc;将字符a赋给变量c,则以下语句中正确的选项是().

A.c='a';B.c="a";C.c="97";D.c='97';

 

答案(A)

 

6.如有定义intx=20;则履行语句x+=x/=4;后,x的值为()

 

A、5B、10C、25D、无答案

答案(B)

 

7.以下程序的输出结果是()。

 

voidmain()

 

{

 

intnum=0xF;

 

intmoney=010;

 

inttotal=num*money;

 

printf("%d,%d,%d\n",num,money,total);

 

}

A.10,10,100

B.15,8,120

C.15,10,150

D.6,10,60

答案(B)

 

8.如有定义intx=9;floaty;则以下的语句履行的结果是()

 

y=x/2;

 

printf("%f",y);

 

 

8

 

答案(D)

 

9.char和short数据种类所占内存空间大小为()

A.都是2字节B.用户自己定义的C.随意的D.1字节和2字节

答案(D)

 

10.-8作为short型数据,在内存中的表示形式为()

 

A.0000000000001000

 

B.1000000000000000

 

C.111111111110111

D.1111111111111000

 

答案(D)

 

习题4:

一、选择题

1.

能正确表示逻辑关系“

a≥10或a≤0”的C语言表达式是(

D)。

A.a>=10ora<=0

B.a>=0|a<=10

B.a>=10&&a<=0

D.a>=10||a<=0

2.

设x,y和z是int

型变量,且x=3,y=4,z=5,则下边表达式中值为

0的是(B)。

A.y&&‘y’

B.x==y&&y!

=z

C.x||y+z&&y-z

D.!

(x

z||1

3.以下程序运转后的输出结果是(C)。

#includeintmain()

{

inta=5,b=4,c=3,d=2;

 

if(a>b>c)

printf(“%d\n”,d);

elseif((c-1>=d)==1)

 

printf(“%d\n”,d+1);

else

printf(“%d\n”,d+2);

 

9

 

return0;

 

}

C.3

 

4.在履行以下程序时,为使输出结果为:

t=4,则给a和b输入的值应知足的条件是(C)。

 

#includeintmain()

{

 

inta,b,s,t;

scanf(“%d,%d”,&a,&b);s=1;t=1;

if(a>0)s=s+1;

if(a>b)t=s+t;elseif(a==b)t=5;

else

t=2*s;

 

printf(“t=%d\n”,t);

return0;

 

}

 

A.a>bB.aa>b

5.若a、b均是整型变量,合法的switch语句是(B)。

A.switch(a)

{

 

case3.0:

printf("ok!

\n");break;

default:

printf("***\n");break;

 

}

B.switch(a+b)

 

{

 

caseb:

printf("hello!

\n");break;

default:

printf("***\n");break;

 

10

 

}

 

C.switch(a-b)

{

 

casea-b:

printf("hello!

\n");break;

 

case3:

printf("ok!

\n");break;

 

}

D.switch(a*b)

 

{

case3+5:

printf("ok!

\n");break;

 

default:

printf("***\n");

 

}

 

习题5:

一、选择题

1.以下程序段C

x=-1;

do

{x=x*x;

}while(!

x);

A.是死循环B.循环履行二次C.循环履行一次D.有语法错误

2.以下while循环履行B次。

intk=2;

while(k=0)

printf("k=%d",k),k--;

printf("FinalK=%d\n",k);

A.无穷次B.0次次次

3.下边这个程序的输出是D。

#include

intmain()

{inty=10;

while(y--);

printf("y=%d\n",y);

return0;

}

A.y=0B.while构成死循环C.y=1D.y=-1

4.若i为整型变量,则以下循环履行次数是D。

for(i=2;i!

=0;)

printf("%d",i--);

A.无穷次B.0次C.1次D.2次

 

11

 

5.C语言中,while循环和do....while循环的主要差别是A。

A.do....while循环的循环体起码履行1次

B.while循环的循环控制条件比do....while循环控制条件严格

C.do....while循环体不可以是复合语句

D.while循环的循环体起码履行1次

6.语句while(!

E)中的表达式!

E等价于A。

A.E==0B.E!

=1C.E!

=0D.E==1

7.下边程序段的运转结果是A。

a=1;b=2;c=2;

while(a

{t=a;a=b;b=t;c--;}

printf("%d,%d,%d",a,b,c);

A.1,2,0B.2,1,0C.1,2,1D.2,1,1

8.该程序段的输出结果是C。

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

{

for(j=1;j<10;j++)

if(j==5)break;

if(i<2)continue;

if(i>2)break;

printf("%d,",j);

}

printf("%d\n",i);

A.10,3B.5,2C.5,3D.10,2

9.以下不是无穷循环的语句为A。

A.for(y=0,x=1;x>++y;x=i++)i=x;

B.for(;;x++=i);

C.while

(1){x++;}

D.for(i=10;;i--)sum+=i;

10.以下程序段运转后x的值为C。

inti=0,x=0,j=10;

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

x+=3;

A.21B.15C.18D.12

习题6:

一、

1、C2、A3、D4、B5、B6、D7、C8、C9、C10、D

习题7:

 

1.以下正确的说法是()。

A.用户若需要调用标准函数,调用前一定从头定义

B.用户能够直接调用全部标准库函数

 

12

 

C.用户能够定义和标准库函数重名的函数,可是在使用时调用的是系统库函数

D.用户能够经过文件包含命令将系统库函数包含到用户源文件中,而后调用系统库函数答案:

D

 

2.对于函数返回值的的描绘正确的选项是()。

A.函数返回表达式的种类必定与函数的种类同样

B.函数返回值的种类决定了返回值表达式的种类

C.当函数种类与返回值表达式种类不一样,返回时将对返回表达式值的种类变换为函数种类

D.函数返回值种类就是返回值表达式种类

答案:

C

 

3.以下对于函数的说法错误的选项是()。

A.函数是构成C程序的基本元素

B.主函数是C程序中不行缺乏的函数

C.程序老是从第一个定义的函数开始履行

 

D.在函数调用以前,一定要进行函数定义或申明

答案:

C

 

4.在参数传达过程中,对形参和实参的要求是()。

A.函数定义时,形参向来占用储存空间

B.实参能够是常量、变量或表达式

 

C.形参能够是常量、变量或表达式

D.形参和实参种类和个数都能够不一样

答案:

B

 

5.对数组名作函数的参数,下边描绘正确的选项是()。

A.数组名作函数的参数,调用时将实参数组复制给形参数组

B.数组名作函数的参数,主调函数和被调函数共用一段储存单元

 

C.数组名作参数时,形参定义的数组长度不可以省略

D.数组名作参数,不可以改变主调函数中的数据

 

13

 

答案:

B

6.若函数的种类和return语句表达式的种类不一致,则()。

A.编译时犯错

B.运转时出现不确立结果

C.不会犯错,且返回值的种类以return语句中表达式的种类为准

D.不会犯错,且返回值的种类以函数的种类为准答案:

D

 

7.下边函数定义正确的选项是()。

A.floatf(floatx;floaty)B.floatf(floatx,y)

{returnx*y;}{returnx*y;}

 

C.floatf(x,y)D.floatf(floatx,floaty)

 

{returnx*y;}{returnx*y;}

答案:

D

 

8.设函数的说明为:

“voidfun(inta[],intm);”,如有定义“inta[10],n;”,则下边调用该函数正确的选项是()。

 

A.fun(a,n);B.x=fun(inta,intn);C.fun(a[10],10);D.x=fun(a[],n);

答案:

A

 

9.以下表达错误的选项是()。

 

A.主函数中定义的变量在整个函数中都是有效的

B.复合语句中定义的变量只在该复合语句中有效

C.其余函数中定义的变量在主函数中不可以使用

D.形式参数是局部变量

答案:

A

 

10.以下描绘不正确的选项是()。

 

A.在函数外定义的变量是全局变量

B.在函数内定义的变量是局部变量

C.函数的形参是局部变量

 

14

 

D.全局变量和局部变量不可以同名答案:

D

 

11.以下语句对静态变量描绘不正确的选项是()。

A.静态局部变量在静态储存区内分派单元

B.静态局部变量和全局变量使用同样

 

C.静态局部变量在函数调用结束时,仍保持其值,不会跟着消逝

D.静态局部变量只赋一次初值

答案:

B

 

12.以下各种变量,哪个不是局部变量()。

A.register型变量B.外面static变量C.auto型变量D.函数形参

答案:

B

习题8:

1.选择题

CBBDB

习题9:

一、选择题

1.以下不正确的定义是________。

A

A、int*p=&i,i;

B、int*p,i;

C、inti,*p=&i;

D、inti,*p;

选项A先定义一个整型指针变量p,而后将变量i的地点赋给p。

但是此时还不决义变量i

所以编译器没法获取变量i的地点。

(A与C对照,选项C先定义变量i,则在内存中为i分派空间,所以i在内存空间的地点就能够确立了;而后再定义p,此时能够为p赋i的地点,

C正确)

 

2.如有说明:

intn=2,*p=&n,*q=p,则以下非法的赋值语句是________。

D

A、p=q

B、*p=*q

C、n=*q

D、p=n

p,q同为整型指针变量,两者里面仅能寄存整型变量的地点。

选项A,q中为地点,所以可

将此地点赋给p。

选项B,*p表示p所指向对象n的内容,即一个整数;*q表示q所指向对象的内容,因为在定义q时为其初始化,将p中n的地点给q,所以p中寄存n的地点,*q

表示q所指向对象n的内容.所以*p=*q相当于n=n;选项C,n=*q等价于n=n;选项D,p中

 

15

 

只好寄存地点,不可以将n中的整数值赋给p

 

3.有语句:

inta[10],;则________是对指针变量p的正确立义和初始化。

B

A、intp=*a;

B、int*p=a;

C、intp=&a;

D、int*p=&a;

选项A,a是数组名,不是指针变量名,所以不行用*标明数组名a。

选项C,a是数组名,

数组名就是地点,无需再用地点符号。

并且在定义指针变量p时,应在变量名前加*,注明

p是指针变量。

选项D,a是数组名,数组名就是地点,无需再用地点符号。

 

4.如有说明语句“inta[5],*p=a;”,则对数组元素的正确引用是________。

C

A、a[p]

B、p[a]

C、*(p+2)

D、p+2

第一定义一个整型数组a,a的长度为5,而后定义一个指针变量p,并同时对p进行初始化,

将数组a的地点赋给p。

所以此时p中寄存的数组a的首地点,即数组中第一个元素a[0]的

地点。

对于数组元素下标的引用(详见p144),一般形式数组名[下标]此中下标为逻辑地点下标,从0开始计数,方括号中的下标能够是变量,能够是表达式,但结果必定假如整数。

选项A,p中寄存的是地点,不是整数,不可以做数组元素的下标。

选项B,a是数组名,数

组名就是地点,不是整数,不可以做数组元素的下标。

选项C,p+2表示指向同一数组中的下

两个元素的地点,目前p指向a[0],则p+2表示a[2]的地点,所以*(p+2)表示a[2]的内容

 

5.有以下程序

inta[10]={1,2,3,4,5,6,7,8,9,10},*P=a;

则数值为9的表达式是________。

B

A、*P+9

B、*(P+8)

C、*P+=9

D、P+8

第一定义一个整型数组a,a的长度为5,而后定义一个指针变量P,并同时对P进行初始化,将数组a的地点赋给P。

所以此时P中寄存的数组a的首地点,即数组中第一个元素

a[0]的地点。

数组中9对应的是a[8],选项B,P+8表示数组中后8个元素的地点,即a[8]

的地点。

*(P+8)则表示该地点内所寄存的内容,即a[8]的值。

选项A,*P表示P所指向对象的内容,此时P指向a[0],*P即a[0]的值1.*P+9=1+9=10。

选项C,*P表示P所指向对象的内容,此时P指向a[0],*P即a[0]的值。

所以*P+=9即

*P=*P+9,等价于a[0]=a[0]+9。

选项D,P+8表示数组中后8个元素的地点,即a[8]的地点,而非a[8]中的值。

 

6.如有以下程序:

voidfun(float*a,float*b)

(floatw;

*a=*a+*a;w=*a;*a=*b;*b=W;

 

16

 

}

intmain()

{floatx=2..0,y=3.0,*px=&x,*py=&y;

fun(px,py);printf(”%.0f,%.0f\n”,x,y);

return0;

程序的输出结果是________。

C

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

参照分析:

voidfun(float*a,float*b){//a=px,即a指向x,b=py,即b指向y,则*a等价于x,*b等价

于y

floatW;

*a=*a+*a;//将x数据自加,x变成4

W=*a;*a=*b;*b=w;//将x和y地点里面的数据交换,则x变

为3,y变成4)

 

7.以下对构造变量stul中成员age的非法引用是________。

B

structstudent

{

intage;

intnum;

}stu1,*p;

p=&stu1;

A、

B、

C、p->age

D、(*p).age

 

8.定义以下构造体(结合)数组:

struetSt

{

charname[15];

intage;

)a[10]={”ZHANG”,14,”WANG”,15,”LIU”,16,”ZHANG”,17);

履行语句printf(”%d,%c”,a[2].age,*

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

当前位置:首页 > 农林牧渔 > 水产渔业

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

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