您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 工学 > C语言1-7章课后作业答案
1C语言1-7章课后作业答案第一章C语言概述【习题1-1】简述C语言的特点。答:C语言的特点:C语言简洁、紧凑、使用灵活、方便;运算符丰富;数据结构丰富;C是结构式语言;C语法限制不太严格,程序设计自由度大;C语言允许直接访问物理地址;C语言程序生成代码质量高;C语言适用范围大,可移植性好。【习题1-2】请从以下的4个选项中选择一个正确答案。(1)A(2)C(3)B(4)D(5)A(6)C【习题1-3】填空。(1)英文字母、下划线、数字(2)函数(3)函数头、函数体(4)独立(5);、#、/*…*/、{、}、main、main【习题1-4】请指出以下哪些是合法的标识符?哪些又是合法的用户标识符。101int3ipx_1x+1count1234Xyx%yifwhilea.bcx&y__1_112Abcnamexbreakforx=y合法的标识符有:x_1、int、count、Xy、if、while、Abc、name、x、break、for合法的用户标识符有:x_1、count、Xy、Abc、name、x【习题1-5】简述上机调试运行C程序的操作步骤。答:上机运行C语言程序的操作步骤为:启动VisualC++6.0→建立工程→创建源程序文件→输入(编辑)源程序内容→保存源程序文件→编译源程序文件→连接目标程序→执行程序→开始另一个程序。【习题1-6】上机运行本章的3个例题。略【习题1-7】参照本章例题,编写一个C语言源程序,输出以下信息:**************Nicetomeetyou!**************编写程序如下:#includestdio.hvoidmain(){printf(**************\n);printf(Nicetomeetyou!\n);printf(**************\n);}第二章基本数据类型和运算符【习题2.1】上机编辑并调试本章所有例题。答:略。2【习题2.2】下面哪些是合法的常量?⑴200.501213e5.1E-58e45.0x6a⑵'mn'OKa'\012'a/b'\\'答:⑴合法的常量有:200.50128e45.0x6a⑵合法的常量有:OKa'\012'a/b'\\'【习题2.3】下面的变量名中哪些是合法的?A&babc123abc%AbCintlong123abcchara\b?cdouble'a'bca_bca*bcfloat答:合法的变量名有:abc123AbCa_bc【习题2.4】指出下面的变量定义哪些是正确的,哪些是不正确的,为什么?⑴Inti,j;⑵floata,A;⑶inta,b;floata,b;⑷floata,intb;⑸char'a';答:⑴错误,因为关键字Int应该全为小写字母⑵正确⑶错,因为同一变量在程序的同一处不应该声明为不同的数据类型⑷错,因为不同类型的变量要分别声明,其间应使用分号,而不是逗号⑸错,'a'表示字符常量,不能用作变量名【习题2.5】填空题。⑴整型、实型、字符型⑵ASCII码⑶1、2⑷f⑸j【习题2.6】把下列数学式子写成C语言表达式。(1)3.26ex+13(a+b)4(2)23sin()abxx(3)212rmmg(4)2r+r2+cos(45°)(5)(1)(1)1monthmonthraterateloanrate对应的C语言表达式分别为:(1)3.26*exp(x)+1.0/3*pow(a+b,4)(2)2*sqrt(x)+(a+b)/(3*sin(x))(3)g*m1*m2/(r*r)(4)2*3.14*r+3.14*r*r+cos(3.14/180*45)(5)loan*rate*pow(1+rate,month)/(pow(1+rate,month)-1)3【习题2.7】C语言中为什么要引入转义字符?答:在字符集中,有一类字符具有这样的特性:当从键盘上输入这个字符时,显示器上就可以显示这个字符,即输入什么就显示什么。这类字符称为可显示字符,如a、b、$等。但另一类字符却没有这种特性。它们或者在键盘上找不到对应的一个键,或者当按键以后不能显示键面上的字符,为了解决这一问题,在C语言中引入了转义字符。【习题2.8】“&&”和“‖”严格地执行运算符优先级的规则吗?它的规则是什么?答:逻辑运算符不按照规定的优先级计算。在逻辑表达式的求值过程中,如果从“&&”或“‖”左边的运算对象部分已经能够确定整个逻辑表达式的值,则不再求右边运算对象的值,这样做提高了运算速度。具体地说:若“&&”的左运算对象值为0,则不再对右运算对象求值,因整个式子的结果必定为0。若“‖”的左运算对象值为非0,则不再对右运算对象求值,因整个式子的结果必定为1。以上所说的这种运算的规则是C对逻辑运算的特殊处理规则。它严格地执行从左到右运算的规则,不受运算符优先级所影响。【习题2.9】字符常量和字符串常量有什么区别?答:字符常量和字符串常量的区别主要有两点:①从形式上看,字符常量使用单引号,而字符串常量使用双引号。②从内部存储来看,编译程序在每个字符串的尾部自动加上了一个空字符NULL(即‘\0’)作为字符串的结束标志,而字符常量则不存在这种情况。【习题2.10】将下面语句组进行简写。⑴inti;intj;⑵x=2;y=2;⑶x=x+y;⑷intx,y;x=y-(y/10)*10;⑸intx;x=x+1;⑹y=x;--x;对应的简写语句分别为:(1)inti,j;(2)x=y=2;(3)x+=y;(4)intx,y;x=y%10;(5)intx;x++;或x+=1;或++x;(6)y=x--;【习题2.11】写出下面程序运行后的结果。⑴程序运行结果:1⑵程序运行结果:8,10⑶程序运行结果:y=5.0000004⑷程序运行结果:b,3.140000,4⑸程序运行结果:0,48⑹程序运行结果:a=8⑺程序运行结果:01,60,15,15⑻程序运行结果:2,2,11,2,10,2,2-1,2,2⑼程序运行结果:324⑽程序运行结果:323,343,4,401第三章顺序和选择结构程序设计【习题3.1】单选题。1、C2、D3、C4、C5、B【习题3.2】略【习题3.3】下面哪些语句是合法的?(1)if(a==b)printf(″Hello″);(2)if(a==b){printf(″Hello″)}(3)if(a==b)printf(″Hello″)elseprintf(″Goodbye″);(4)ifa==bprintf(″Hello″);答:(1)合法的,其余的不合法【习题3.4】读程序写结果。(1)运行结果:A=58B=58C=58(2)运行结果:20,0(3)运行结果:1(4)运行结果:534(5)运行结果:132(6)运行结果:-4(7)运行结果:21(8)运行结果:4355(9)运行结果:passwarn【习题3.5】有如下if条件语句:if(ab){if(cd)x=1;elseif(ac)if(bd)x=2;elsex=3;}elseif(cd)x=4;elsex=5;试按缩进对齐的格式将以上语句改写为结构更清晰的等效if语句,并在每个条件表达式之后用逻辑表达式注释所满足的条件。改写结果如下:if(ab){if(cd)x=1;elseif(ac)if(bd)x=2;elsex=3;}elseif(cd)x=4;elsex=5;【习题3.6】有如下两个程序段:(1)if(ab)(2)if(ab){{if(c==d)x=1;if(c==d)x=1;}elsex=2;elsex=2;}它们所表示的逻辑关系是下列所示关系中的哪一个?①1ab且c=d1ab且c=dx=x=2a≥b且c≠d2ab且c≠d③1ab且c=d④1ab且c=dx=x=2a≥b2c≠d答:(1)表示的逻辑关系是③.(2)表示的逻辑关系是②.【习题3.7】编写程序,从键盘输入年份year(4位十进制数),判断其是否为闰年。闰年的条件是能被4整除但不能被100整除,或者能被400整除。#includestdio.hvoidmain(){intyear;scanf(“%d”,&year);if(year%400==0||year%4==0&&year%100!=0)printf(“%d年是闰年。\n”,year);elseprintf(“%d年不是闰年。\n”,year);}【习题3.8】设计一个程序,从键盘输入3个整数,按由小到大的顺序输出。#includestdio.h6voidmain(){intx,y,z,t;scanf(%d,%d,%d,&x,&y,&z);if(xy){t=x;x=y;y=t;}/*交换x,y的值*/if(xz){t=z;z=x;x=t;}/*交换x,z的值*/if(yz){t=y;y=z;z=t;}/*交换z,y的值*/printf(smalltobig:%d%d%d\n,x,y,z);}【习题3.9】编写程序,计算下面的函数。1ex(0x1)y=|x|+2(3≤x4)sin(x2)(当x取其他值时)程序如下:#includestdio.h#includematch.hvoidmain(){intx,y;printf(pleaseenteranumberx\n);scanf(%d,&x);if(x0&&x1)y=exp(sqrt(x)-1);elseif(x=3&&x=4)y=fabs(x)+2;elsey=sin(x*x);printf(x=%.1f,y=%.2f\n,x,y);}【习题3.10】编程序计算下面的分段函数程序如下:#includestdio.hvoidmain(){intx,y;scanf(%d,&x);if(x1)y=-1;elseif(x=1&&x=10)y=2*x+1;elsey=3*x+2;printf(%d,y);}【习题3.11】输入一个整数m,判断它能否被3、13、17整除,如果能被这3个数之一整除,则输入它能被整除的信息,否则输出m不能被3、13、17整除的信息。试编写该程序。#includestdio.hvoidmain()7{intm;scanf(%d,&m);if(m%3==0||m%13==0||m%17==0)printf(%d能被整除!,m);elseprintf(%d不能被整除!,m);}【习题3.12】若一个学生是某校的学生,且是男生,则输出“male”;若是女生,则输出“female”;若不是某校的学生,则输出“No”。试编写该程序并画出流程图。程序如下:#includestdio.hvoidmain(){inthust=1;ints;charsex;printf(pleaseenterthestudent'sschoolandsex\n);scanf(%d,%c,&s,&sex);if(s==hust){if(sex=='M')printf(Male\n);elseprintf(Female\n);}elseprintf(No\n);}【习题3.13】某产品的国内销售价,80箱以下,每箱350元,超过80箱,超过部分每箱优惠20元;国外销售价,1000箱以下,每箱900元,超过1000箱,超过部分每箱优惠15元。试编写计算销售额的程序。程序如下:#includestdio.hvoidmain(){floatmoney;intnational,count;printf(Inputnationalorexternal:);scanf(%d,&national);printf(Inputcountofproduct:);scanf(%d,&count);if(national)if(count=80)money=count*350.0;elsemoney=count*350.0-(count-80)*20.0;elseif(count=1000)money=count*900
本文标题:C语言1-7章课后作业答案
链接地址:https://www.777doc.com/doc-2908148 .html