c语言答案.docx

上传人:b****5 文档编号:8280135 上传时间:2023-01-30 格式:DOCX 页数:43 大小:45.09KB
下载 相关 举报
c语言答案.docx_第1页
第1页 / 共43页
c语言答案.docx_第2页
第2页 / 共43页
c语言答案.docx_第3页
第3页 / 共43页
c语言答案.docx_第4页
第4页 / 共43页
c语言答案.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

c语言答案.docx

《c语言答案.docx》由会员分享,可在线阅读,更多相关《c语言答案.docx(43页珍藏版)》请在冰豆网上搜索。

c语言答案.docx

c语言答案

习题一

一、选择题

1.C程序的基本单位是(A)。

A.函数B.文件C.语句D.字符

2.C语言规定,在一个源程序中,main函数的位置C。

A.必须在最开始        B.必须在系统调用的库函数后面        

C.可以任意          D.必须在最后

3.C程序中的变量(B)。

A.不用说明B.先说明后引用

C.先引用后说明D.引用和说明顺序无关

4.变量的说明在(B)。

A.执行语句之后B.执行语句之前

C.执行语句当中D.位置无关

5.C语言是一种(C)。

A.机器语言B.符号语言

C.高级语言D.面向对象的语言

6.能将高级语言编写的源程序转换成目标程序的是B。

A.编辑程序B.编译程序

C.解释程序D.连接程序

7.下列各选项都是在C语言程序段中增加的注释,其中注释方法错误的是B。

A.voidmain()/*主函数*/B.voidmain()

{}{pri/*remark*/ntf("student!

");}

C.voidmain()D.voidmain()

{intx/*=10*/;{intx=10;

printf("%d",x);/*printf("%d",x);*/

}}

8.以下叙述中,正确的是C。

A.C程序的基本组成单位是语句B.C程序中的每一行只能写一条语句

C.C语句必须以分号结束D.C语句必须在一行内写完

9.以下叙述中,正确的是A。

A.C程序中,注释部分可以出现在程序中任意合适的地方

B.花括号“{”和“}”只能作为函数体的定界符

C.构成C程序的基本单位是函数,所有函数名都可以由用户命名

D.分号是C语句之间的分隔符,不是语句的一部分

10.以下叙述中,正确的是C。

A.C语言比其他语言高级

B.C语言可以不用编译就能被计算机识别执行

C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

D.C语言出现的最晚,具有其他语言的一切优点

二、填空题

1.一个C程序总是从主函数开始执行。

2.结构化程序由顺序、选择、循环三种基本结构构成。

3.一个C程序只有一个名为main的主函数。

4.C程序中的每个语句以分号结束。

5.C程序中,函数由函数首部和函数体组成。

6.每个基本结构有一个入口和一个出口,没有死循环和死语句。

7.算法是计算机解决问题所依据的步骤。

8.C语言中常用的预处理命令有三类,分别是文件包含、宏定义和条件编译。

9.C语言源程序文件的扩展名是c,经过编译后,所生成文件的扩展名是obj,经过连接后,所生成的文件扩展名是exe。

10.C语言中,输入操作是由库函数scanf完成的,输出操作是由库函数printf完成的。

习题二

一、选择题

1.下列数据中属于字符串常量的是(B)。

A.ABCB."ABC"C.'abc'D.'A'

2.在计算机内存中,'\n'占用的字节数是(C)。

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

3.字符串"ABC"在内存中占用的字节数是(D)。

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

4.在C语言中,合法的长整型常数是(B)。

A.568701400B.0LC.0.03546287D.2.654e11

5.char型常量在内存中存放的是(A)。

A.ASCII代码值B.BCD代码值

C.十进制代码值D.内码值

6.下列各项中正确的标识符是(D)。

A.?

bbB.a=8C.b.βD.b_4

7.下列选项中,合法的C语言关键字是D。

A.VARB.cherC.integerD.default

8.下列不正确的转义字符是D。

A.\\B.\0C.\"D.0x4

9.在C语言中,要求运算对象必须是整型的运算符是D。

A./         B.&&       C.!

=D.%

10.若有声明语句:

“charc=256;inta=c;”,则执行该语句后a的值为A。

A.256B.65536C.0D.-1

11.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为B。

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

12.设a、b均为整型变量,a的值为5,执行下列语句后,b的值不为2的是C。

A.b=a/2B.b=6-(--a)C.b=a%2D.b=(float)a/2

13.执行语句x=(a=3,b=a--)后,x、a、b的值依次是C。

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

14.设有语句inta=3;,则执行了语句a+=a-=a*a;后,变量a的值是D。

A.3B.0C.9D.-12

15.在下列运算符中,优先级最高的是B。

A.&&B.%C.=D.>=

16.设整型变量a的值为3,则计算表达式a---a后,表达式的值为B。

A.1B.0C.2D.表达式出错

17.设整型变量a、b、c的值均为2,表达式(a--)-(b++)+c++的结果是C。

A.6B.9C.2D.表达式出错

18.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是D。

A.1B.2.5C.2D.2.0

19.下列表达式中符合C语言语法的赋值表达式是C。

A.a=4+b++c=a+8B.a=4+b++=a+8

C.a=(4+b,b++,a+8)D.a=4+b,c=a+8

20.若有以下定义:

chara;intb;floatc;doubled;,则表达式a*b+d-c的值的类型为D。

A.intB.floatC.charD.double

二、填空题

1.在内存中存储"A"要占2个字节,存储'A'要占1个字节。

2.符号常量的定义方法是#define常量名常量。

3.无符号基本整型的数据类型符为unsignedint双精度实型数据类型符为double,字符型数据类型符为char。

4.十进制数673的二进制、八进制和十六进值数分别为1010100001、1241和2A1。

5.在C语言中,书写八进制数时必须加前缀0;书写十六进制数时必须加前缀0x。

6.在微机上,int型、short型、long型、float型和double型数据一般在内存中分别占2字节、2字节、4字节、4字节和8字节。

7.设有下列运算符:

<<、+、++、&&、>=,其中优先级最高的是++,优先级最低的是&&。

8.设x、y为int型变量,且x=1,y=2,则表达式1.0+x/y的值为1.0。

9.设整型变量x、y、z均为5,则:

①执行x-=y-z后,x的值为5。

②执行x%=y+z后,x的值为5。

10.数学式

的C语言表达式为a/b*c)。

11.设x是int型变量,判断x为偶数的关系表达式为x%2==0。

12.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=′a′+′8′-′3′的值为102。

13.0≤a≤10的C语言表达式为a>=0&&a<=10。

14.若已有声明"intx=4,y=3;",则表达式"x

x++:

y++"的值是3。

15.有声明"floaty=3.14619;intx;",则计算表达式"x=y*100+0.5,y=x/100.0;"后y的值是3.15119。

三、程序阅读题

1.若从键盘输入3,7<回车>,写出下面程序的运行结果。

C=3

#include

voidmain()

{inta,b,c;

scanf("%d,%d",&a,&b);

c=a;

if(a&&b)printf("c=%d\n",c);

elseprintf("c=%d\n",c--);

}

2.写出下面程序的运行结果。

#includea1=84

voidmain()a2=0

{inta=12,a1,a2,a3;a3=0

a1=(a*=2+5);

a2=(a/=a+a);

a3=(a+=a-=a*=a);

printf("a1=%d\na2=%d\na3=%d\n",a1,a2,a3);

}

3.若从键盘输入2,3,4.5,1.6<回车>,写出下面程序的运行结果。

#include

voidmain()表达式的值为:

2.500000

{inta,b;

floatx,y;

scanf("%d,%d,%f,%f",&a,&b,&x,&y);

printf("表达式的值为:

%f\n",(float)(a+b)/2+(int)x%(int)y);

}

4.若从键盘输入3.5,5,6.7<回车>,写出下面程序的运行结果。

#include

voidmain()表达式的值为:

3.500000

{inta;

floatx,y;

scanf("%f,%d,%f",&x,&a,&y);

printf("表达式的值为:

%f\n",x+a%3*(int)(x+y)%2/4);

}

5.若从键盘输入7<回车>8<回车>,写出下面程序的运行结果。

#includea+b=15

voidmain()

{inta,b,c;

printf("enterfirstinteger:

");

scanf("%d",&a);

printf("entersecondinteger:

");

scanf("%d",&b);

c=a+b;

printf("\na+b=%d\n",c);

}

6.先心算出下面程序的输出,然后再执行程序,对照自己的计算结果是否正确,找一找还有哪些不对的地方?

#include

voidmain()

{inta=0,b=1,c=2,d=3;

b=a++&&c++;

d=a++||++c;

printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);

}

7.写出下面程序的运行结果。

#include

voidmain()

{charch=′*′;*

printf("%3c\n",ch);**

printf("%2c%c%c\n",ch,ch,ch);*****

printf("%c%c%c%c%c\n",ch,ch,ch,ch,ch);

}

8.写出下列程序的运行结果。

#include

voidmain()

{charc1=′A′,c2=′B′,c3=′C′,c4=′\101′,c5=′\x42′;

printf("A%cb%c\t%c\tabc\n",c1,c2,c3);

printf("\t\b%c%c",c4,c5);AAbBCabc

}AB

9.写出下面程序的运行结果。

#include

voidmain()

{inti,j,m,n;6,5,6,5

i=5;

j=6;

m=++i;

n=--j;

printf("%d,%d,%d,%d",i,j,m,n);

}

10.写出下面程序的运行结果。

#include

voidmain()

{inta,b,c;

floatx,y;a=3,b=7,c=3,x=7.8

x=3.6;

y=4.2;

a=(int)x;

b=(int)(x+y);

c=a%b;

x=x+y;

printf("a=%d,b=%d,c=%d,x=%f\n",a,b,c,x);

}

习题三

一、选择题

1.printf()函数输出实数时,使用的格式字符是(C)。

A.%dB.%cC.%fD.%o

2.下面变量说明中(C)是正确的。

A.char:

a,b,c;B.chara;b;c;

C.chara,b,c;D.chara,b,c

3.putchar()函数可以向终端输出一个(D)。

A.整型变量表达式值B.实型变量值

C.字符串D.字符或字符型变量值

4.以下能正确地定义整型变量a、b和c并为其赋初值5的语句是C。

A.inta=b=c=5;B.inta,b,c=5;

C.inta=5,b=5,c=5;D.a=b=c=5;

5.若变量a是int类型,并执行了语句:

a='A'+1.6;,则正确的叙述是D。

A.a的值是字符CB.a的值是浮点型

C.不允许字符型和浮点型相加D.a的值是字符'A'的ASCII码值加上1

6.已知ch是字符型变量,下面正确的赋值语句是B。

A.ch='a+b';B.ch='\x7f';C.ch='\08';D.ch="\";

7.设x、y均为float型变量,则以下不合法的赋值语句是A。

A.++x;B.y=((int)x%2)/10;C.x*=y+8;D.x=y=0;

8.以下格式符中,不能用来输入实型数的是D。

A.fB.e(E)C.g(G)D.x

9.若floatnum=123.456,以%+10.4f的格式输出,结果正确的是D。

A.123.456000B.

123.4560C.123.4560D.

+123.4560

10.以下说法正确的是D。

A.输入项可以是一个实型常量

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

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

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

11.阅读以下程序,当输入数据的形式为:

25,13,10〈CR〉,正确的输出结果为A。

#include

voidmain()

{intx,y,z;

scanf("%d%d%d",&x,&y,&z);

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

}

A.x+y+z=48B.x+y+z=35C.x+z=35D.不确定值

12.若变量已正确说明为float类型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋值10.0,b赋值22.0,c赋值33.0,不正确的输入形式是C。

A.10<回车>B.10.0<回车>

22<回车>22.033.0<回车>

33<回车>

C.10.0,22.0,33.0<回车>D.1022<回车>

33<回车>

13.已知i、j、k为int型变量,若从键盘输入"1,2,3<回车>",使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是C。

A.scanf("%2d%2d%2d",&i,&j,&k);B.scanf("%d%d%d",&i,&j,&k);

C.scanf("%d,%d,%d",&i,&j,&k);D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

14.若有以下程序段(n所赋的是八进制数)

intm=32767,n=032767;

printf("%d,%o\n",m,n);

执行后的输出结果是A。

A.32767,32767B.32767,032767

C.32767,77777D.32767,077777

15.下列程序段

inta=1234;

printf("%2d\n",a);

的输出结果是C。

A.12B.34C.1234D.提示出错,无结果

16.设定义:

longx=-123456L,则下列能够正确输出变量x值的语句是B。

A.printf("x=%d\n",x);B.printf("x=%ld\n",x);

C.printf("x=%8dL\n",x);D.printf("x=%LD\n",x);

17.下列程序

#include

voidmain()

{printf("%d\n",NULL);}

运行后的输出结果是A。

A.0B.1C.-1D.NULL没定义,出错

18.下列程序

#include

voidmain()

{charx=0xFFFF;printf("%d\n",x--);}

执行后的输出结果是C。

A.-32767B.FFFEC.-1D.-32768

19.设有如下程序段

intx=2002,y=2003;

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

则以下叙述中正确的是D。

A.输出语句中格式说明符的个数少于输出项的个数,不能正确输出

B.运行时产生出错信息

C.输出值为2002D.输出值为2003

20.有以下程序段

intm=0,n=0;charc='a';

scanf("%d%c%d",&m,&c,&n);

printf("%d,%c,%d\n",m,c,n);

若从键盘上输入:

10A10<回车>,则输出结果是A。

A.10,A,10B.10,a,10C.10,a,0D.10,A,0

二、填空题

1.以下程序的输出结果是x=1y=2*sum*=3

10squaredis:

100。

main()

{intx=1,y=2;

printf("x=%dy=%d*sum*=%d\n",x,y,x+y);

printf("10squaredis:

%d\n",10*10);

}

2.以下程序的输出结果是a=325x=3.14。

main()

{inta=325;doublex=3.1415926;

printf("a=%2dx=%7.2f\n",a,x);

}

3.假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。

请填空:

a+=b;b=a-b;a-=b;

4.若x为int型变量,则执行以下语句后x的值是-14。

x=7;

x+=x-=x+x;

5.C语句可以分为五类,含7种控制语句、声明语句、表达式语句、空语句和复合语句。

6.赋值语句是由赋值表达式加上一个分号构成。

7.a=12,n=5,表达式a%=(n%=2)值是0。

8.有一个输入函数scanf("%d",k);则不能使float类型变量k得到正确数值的原因是k前无&

和%d与k的类型不一致。

9.putchar()函数可以向终端输出一个字符。

10.已有定义inti,j;floatx;为将-10赋给i,12赋给j,410.34赋给x,则对应以下scanf()函数调用语句的数据输入形式是-12C410.34。

scanf("%o%x%e",&i,&j,&x);

11.pirntf()函数中用到格式符%5s,其中数字5表示输出的字符串占5列,如果字符串长度大于5,则按实际宽度输出。

12.使用getchar()和putchar()函数必须在源程序中加#include"stdio.h"。

13.下面程序的功能为:

输入三角形的三边长,输出三角形的面积。

请将程序填写完整。

#include

voidmain()

{floata,b,c,s,area;

scanf("%f,%f,%f",&a,&b,&c);

s=1.0/2*(a+b+c);

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf("area=%7.2f\n",area);

}

14.请写出下列程序的输出结果1,2,3。

#include

voidmain()

{inta=2,b=1,c=3,t;

if(a>b){t=a;a=b;b=t;}

if(a>c){t=a;a=c;c=t;}

if(b>c){t=b;b=c;c=t;}

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

}

15.若执行以下程序时,从键盘上输入了5和6,则输出的结果是c=5

1。

#include

voidmain()

{int a,b,c;

   scanf("%d%d",&a,&b);

   c=a;

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

   printf("%d\n",a&&b);

}

习题四

一、选择题

1.执行下面的程序段后,b的值为(B)。

intx=35;

charz='A';

intb;

b=((x&&15)&&(z<'a'));

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

2.设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n-c>d)后n的值为(B)。

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

3.若k是int型变量,且有下面的程序段,输出结果是(A)。

K=-3;

if(k<=0)printf("####");

elseprintf("&&&&");

A.####B.&&&&

C.####&&&&D.有语法错误,无输出结果

4.设A、B和C都是int型变量,且A=3,B=4,C=5,则下面表达式中值为0的达式是(D)。

A.A&&BB.A<=B

C.A‖B+C&&BD.!

((A

C‖1)

5.阅读程序:

#include"stdio.h"

main()

{floatx,y;

scanf("%f",&x);

if(x<0.0)y=0.0;

elseif((x<5.0)&&(x!

=2.0))

y=1.0/(x+2.0);

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

elsey=10.0;

printf("%f\n",y);

}

若运行时从键盘上输入2.0,则上面程序的输出结果是(C)

A.0.000000B.0.250000

C.0.500000D.1.000000

6.阅读程序:

#include"stdio.

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

当前位置:首页 > 初中教育

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

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