• 100.00 KB
  • 2022-04-22 11:47:13 发布

C语言 课后答案(前三章).doc

  • 9页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'习题一一、选择题1.构成C程序的基本单位是。A.函数B.文件C.语句D.字符2.C语言规定,在一个源程序中,main函数的位置。A.必须在最开始        B.必须在系统调用的库函数后面        C.可以任意          D.必须在最后3.C程序中的变量。A.不用说明B.先说明后引用C.先引用后说明D.引用和说明顺序无关4.变量的说明在。A.执行语句之后B.执行语句之前C.执行语句当中D.位置无关5.C语言是一种。A.机器语言B.符号语言C.高级语言D.面向对象的语言6.能将高级语言编写的源程序转换成目标程序的是。A.编辑程序B.编译程序C.解释程序D.连接程序7.下列各选项都是在C语言程序段中增加的注释,其中注释方法错误的是。A.voidmain()/*主函数*/B.voidmain(){}{pri/*remark*/ntf("student!");}C.voidmain()D.voidmain(){intx/*=10*/;{intx=10;printf("%d",x);/*printf("%d",x);*/}}8.以下叙述中,正确的是。A.C程序的基本组成单位是语句B.C程序中的每一行只能写一条语句C.C语句必须以分号结束D.C语句必须在一行内写完9.以下叙述中,正确的是。A.C程序中,注释部分可以出现在程序中任意合适的地方B.花括号“{”和“}”只能作为函数体的定界符C.构成C程序的基本单位是函数,所有函数名都可以由用户命名D.分号是C语句之间的分隔符,不是语句的一部分10.以下叙述中,正确的是。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.设计求2+4+6+…+100的算法。2.设计求n!的算法。3.设计求三个数中最小数的算法。4.输入两个整数x和y,求其最大公约数。5.设计判断2000年~2500年间闰年的算法。习题二一、选择题1.下列数据中属于字符串常量的是。A.ABCB."ABC"C.′abc′D.′A′2.在计算机内存中,′n′占用的字节数是。A.4B.3C.1D.23.字符串"ABC"在内存中占用的字节数是。A.6B.8C.3D.44.在C语言中,合法的长整型常数是。A.5687014000B.0LC.0.03546287D.2.654e115.char型常量在内存中存放的是。A.ASCII代码值B.BCD代码值C.十进制代码值D.内码值6.下列各项中正确的标识符是。A.?bbB.a=8C.b.βD.b_47.下列选项中,合法的C语言关键字是。A.VARB.cherC.integerD.default8.下列不正确的转义字符是。A.\B.C."D.0x49.在C语言中,要求运算对象必须是整型的运算符是。A./         B.&&       C.!=D.%10.若有声明语句:“charc=256;inta=c;”,则执行该语句后a的值为。A.256B.65536C.0D.-1 11.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为。A.0B.1C.2D.312.设a、b均为整型变量,a的值为5,执行下列语句后,b的值不为2的是。A.b=a/2B.b=6-(--a)C.b=a%2D.b=(float)a/213.执行语句x=(a=3,b=a--)后,x、a、b的值依次是。A.3,3,2B.3,2,2C.3,2,3D.2,3,214.设有语句inta=3;,则执行了语句a+=a-=a*a;后,变量a的值是。A.3B.0C.9D.-1215.在下列运算符中,优先级最高的是。A.&&B.%C.=D.>=16.设整型变量a的值为3,则计算表达式a---a后,表达式的值为。A.1B.0C.2D.表达式出错17.设整型变量a、b、c的值均为2,表达式(a--)-(b++)+c++的结果是。A.6B.9C.2D.表达式出错18.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是。A.1B.2.5C.2D.2.019.下列表达式中符合C语言语法的赋值表达式是。A.a=4+b++c=a+8B.a=4+b++=a+8C.a=(4+b,b++,a+8)D.a=4+b,c=a+820.若有以下定义:chara;intb;floatc;doubled;,则表达式a*b+d-c的值的类型为。A.intB.floatC.charD.double二、填空题1.在内存中存储"A"要占2个字节,存储′A′要占1个字节。2.符号常量的定义方法是#define符号常量名常量。3.无符号基本整型的数据类型符为unsigned,双精度实型数据类型符为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,写出下面程序的运行结果c=3。#includevoidmain(){inta,b,c;scanf("%d,%d",&a,&b);c=a;if(a&&b)printf("c=%dn",c);elseprintf("c=%dn",c--);}2.写出下面程序的运行结果。a1=84a2=0a3=0#includevoidmain(){inta=12,a1,a2,a3;a1=(a*=2+5);a2=(a/=a+a);a3=(a+=a-=a*=a);printf("a1=%dna2=%dna3=%dn",a1,a2,a3);}3.若从键盘输入2,3,4.5,1.6<回车>,写出下面程序的运行结果。表达式的值为:2.500000#includevoidmain(){inta,b;floatx,y;scanf("%d,%d,%f,%f",&a,&b,&x,&y);printf("表达式的值为:%fn",(float)(a+b)/2+(int)x%(int)y);}4.若从键盘输入3.5,5,6.7<回车>,写出下面程序的运行结果。表达式的值为:3.500000#includevoidmain(){inta;floatx,y;scanf("%f,%d,%f",&x,&a,&y);printf("表达式的值为:%fn",x+a%3*(int)(x+y)%2/4);}5.若从键盘输入7<回车>8<回车>,写出下面程序的运行结果。a+b=15#includevoidmain(){inta,b,c;printf("enterfirstinteger:");scanf("%d",&a);printf("entersecondinteger:");scanf("%d",&b);c=a+b;printf("na+b=%dn",c);}6.先心算出下面程序的输出,然后再执行程序,对照自己的计算结果是否正确,找一找还有哪些不对的地方?a=2,b=0,c=2,d=1 #includevoidmain(){inta=0,b=1,c=2,d=3;b=a++&&c++;d=a++||++c;printf("a=%d,b=%d,c=%d,d=%dn",a,b,c,d);}7.写出下面程序的运行结果。*********#includevoidmain(){charch=′*′;printf("%3cn",ch);printf("%2c%c%cn",ch,ch,ch);printf("%c%c%c%c%cn",ch,ch,ch,ch,ch);}8.写出下列程序的运行结果。AAbBCabcAB#includevoidmain(){charc1=′A′,c2=′B′,c3=′C′,c4=′101′,c5=′x42′;printf("A%cb%ct%ctabcn",c1,c2,c3);printf("tb%c%c",c4,c5);}9.写出下面程序的运行结果。6,5,6,5#includevoidmain(){inti,j,m,n;i=5;j=6;m=++i;n=--j;printf("%d,%d,%d,%d",i,j,m,n);}10.写出下面程序的运行结果。a=3,b=7,c=3,x=7.800000#includevoidmain(){inta,b,c;floatx,y;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=%fn",a,b,c,x);}习题三 一、选择题1.printf()函数输出实数时,使用的格式字符是。A.%dB.%cC.%fD.%o2.下面变量说明中是正确的。A.char:a,b,c;B.chara;b;c;C.chara,b,c;D.chara,b,c3.putchar()函数可以向终端输出一个。A.整型变量表达式值B.实型变量值C.字符串D.字符或字符型变量值4.以下能正确地定义整型变量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;5.若变量a是int类型,并执行了语句:a=′A′+1.6;,则正确的叙述是。A.a的值是字符CB.a的值是浮点型C.不允许字符型和浮点型相加D.a的值是字符′A′的ASCII码值加上16.已知ch是字符型变量,下面正确的赋值语句是。A.ch=′a+b′;B.ch=′x7f′;C.ch=′8′;D.ch="";7.设x、y均为float型变量,则以下不合法的赋值语句是。A.++x;B.y=((int)x%2)/10;C.x*=y+8;D.x=y=0;8.以下格式符中,不能用来输入实型数的是。A.fB.e(E)C.g(G)D.x9.若floatnum=123.456,以%+10.4f的格式输出,结果正确的是。A.123.456000B.123.4560C.123.4560D.+123.456010.以下说法正确的是。A.输入项可以是一个实型常量B.只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);D.当输入数据时,必须指明变量的地址,如scanf("%f",&f);11.阅读以下程序,当输入数据的形式为:25,13,10〈CR〉,正确的输出结果为。#includevoidmain(){intx,y,z;scanf("%d%d%d",&x,&y,&z);printf("x+y+z=%dn",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,不正确的输入形式是。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,以下选项中正确的输入语句是。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,%on",m,n);执行后的输出结果是。A.32767,32767B.32767,032767C.32767,77777D.32767,07777715.下列程序段inta=1234;printf("%2dn",a);的输出结果是。A.12B.34C.1234D.提示出错,无结果16.设定义:longx=-123456L,则下列能够正确输出变量x值的语句是。A.printf("x=%dn",x);B.printf("x=%ldn",x);C.printf("x=%8dLn",x);D.printf("x=%LDn",x);17.下列程序#includevoidmain(){printf("%dn",NULL);}运行后的输出结果是。A.0B.1C.-1D.NULL没定义,出错18.下列程序#includevoidmain(){charx=0xFFFF;printf("%dn",x--);}执行后的输出结果是。A.-32767B.FFFEC.-1D.-3276819.设有如下程序段intx=2002,y=2003;printf("%dn",(x,y));则以下叙述中正确的是。A.输出语句中格式说明符的个数少于输出项的个数,不能正确输出B.运行时产生出错信息C.输出值为2002D.输出值为200320.有以下程序段intm=0,n=0;charc="a";scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%dn",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是。A.10,A,10B.10,a,10C.10,a,0D.10,A,0二、填空题1.以下程序的输出结果是x=1y=2*sum*=310squaredis:100 #includevoidmain(){intx=1,y=2;printf("x=%dy=%d*sum*=%dn",x,y,x+y);printf("10squaredis:%dn",10*10);}2.以下程序的输出结果是a=325x=3.14。#includevoidmain(){inta=325;doublex=3.1415926;printf("a=%2dx=%7.2fn",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得到正确数值的原因是%d和少&。9.putchar()函数可以向终端输出一个字符。10.已有定义inti,j;floatx;为将-10赋给i,12赋给j,410.34赋给x,则对应以下scanf()函数调用语句的数据输入形式是37777777766124.1034e+002。scanf("%o%x%e",&i,&j,&x);11.printf()函数中用到格式符%5s,其中数字5表示输出的字符串占5列,如果字符串长度大于5,则原样输出。12.使用getchar()和putchar()函数必须在源程序中加头文件stdio.h。13.下面程序的功能为:输入三角形的三边长,输出三角形的面积。请将程序填写完整。#includevoidmain(){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.2fn",area);}14.请写出下列程序的输出结果1,2,3。#includevoidmain(){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若执行以下程序时,从键盘上输入了5和6,则输出的结果是1。#includevoidmain(){int a,b,c;    scanf("%d%d",&a,&b);   c=a;   printf("c=%dn",c);   printf("%dn",a&&b);}三、程序设计题1.输入一个整数,分别用无符号方式、八进制方式、十六进制方式输出。2.输入圆柱体的底面半径r(实数)和高h,计算圆柱体的表面积并输出到屏幕上,保留2位小数。3.编写程序,读入三个双精度数,求它们的平均值,并保留此平均值小数点后的一位,对小数点后第二位进行四舍五入,输出结果。4.输入华氏温度f,输出对应的摄氏温度c,保留1位小数。提示:。5.编写一个程序,从键盘上输入一个球的半径(实数),求此球的表面积和体积,保留两位小数。6.从键盘输入一个小写字母,将其转换成大写字母并输出。7.输入任意两个整数,求出它们的商和余数并输出。8.用条件运算符编程实现,输入3个整数,输出其最大值。9.编写程序,读入三个整数a、b、c,然后交换它们中的数:把a中的值给b,把b中的值给c,把c中的值给a。10.输入平面上两点的坐标(x1,y1)和(x2,y2),求出两点的距离,保留2位小数。【提示:平面上两点距离distance=sqrt((x1-x2)2+(y1-y2)2)】。'