2023年电大计算机科学与技术c语言各章练习题答案.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2023年电大计算机科学与技术c语言各章练习题答案.pdf》由会员分享,可在线阅读,更多相关《2023年电大计算机科学与技术c语言各章练习题答案.pdf(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、各章练习题答案第1章C语言概述1.1简答题1.答:c 语言单词分为保存字、标记符、字面常量、运算符和分隔符5 类。2.答:首字符必须是英文字母或下划线;其余位置上的字符必须是英文字母、十进制数字符号或下划线。3.答:它们的首字符不同,此外各自尚有具体的格式规定。其中,数值字面常量以数字、正负号或小数点(如.01表达0.01)开头,字符字面常量必须用单引号括起来,字符串字面常量必须用双引号括起来,标记符首字符必须是英文字母或下划线。4.答:分类如下。数值常量3 个:25-8+3.4 2字符常量3 个:4 0 +,字符串 7 个:xl-28 y=m+l a 12.c else +in t x;标记
2、符 7 个:x2 n count main Hli s txy M a xA_ 1保存字3 个:i nt v o id i f运算符1 个:+分隔符0 个:非法数据1 个:3ab以上共计2 5 个。5.答:C 语句除空语句外,按照语句功能,可分为以下8 类:类型定义语句、变量定义语句、函数原型语句、表达式语句、复合语句、选择语句、循环语句和跳转语句。在以上8 类语句中,前 3 类属于说明性语句,后 5 类属于执行性语句。6.答:其格式为:in c lu d e 头文献 或#i nc 1 ude 头文献。对于每条预解决包含命令,在预解决阶段将把该命令置换为所指定“头文献”中的所有内容,换句话说,
3、是用该“头文献”保存的所有内容代替该预解决包含命令行。对于上述给出的两种包含命令格式,系统解决时的查找头文献的途径有所不同。对于第一种格式(即尖括号格式),将从C语言系统层次目录中查找头文献,若查找不到则给犯错误信息;对于第二种格式(即双引号格式),假如头文献名没有给出磁盘号和途径名,则一方面从当前工作目录(即包含该命令的程序文献所属的目录)中查找头文献,若查找不到,再接着从C语言系统层次目录中查找头文献,若还是查找不到则给犯错误信息。在第二种格式中,假如头文献名带有磁盘号和途径名,则只在该指定途径中查找头文献,若查找不到则给犯错误信息。(关于第二种格式中头文献名带有磁盘号和途径名的情况,教材
4、的叙述是错误的)7.答:第一步需要上机建立相应的工作区和项目并建立、输入和编辑该程序中的相应文献,通常一方面建立主文献;第二步对每个程序文献进行编译生成各自的目的代码文献,通常主文献被一方面编译并生成目的文献;第三步使主目的文献与同一程序中的其他目的代码文献以及有关C语言系统库函数文献相连接,生成一个可执行文献;第四步运营最后生成的可执行文献。1.2选择题1 .B2.C 3.A 4.D 5.A 6.B 7.D8.C上机实验题1.程序代码:#inc 1 ude void main()。i n t x,y;x=5;y=6;o prin t f(x+y=%d,,x+y);o pr i ntf(x*y
5、=%d n,x*y);运营结果:+y=11,x*y=3 02.程序代码:#incl u d e int cube(i n t):void main()printf(cu b e(3)=%dn,cu b e(3);pri n t f(cube=%dn”,cube );prin t f(cube(8)=%dn/cube(8);)int cube(i n t x)r et u r n x*x*x;运营结果:c ube=27cube(5)=1 25c ube(8)=5123.程序代码:A.主程序文献代码:#i n clu d e#inc 1 ude Hab c.cppvoid main()doub 1
6、 e a,bz c;d ou b Ie av erag e V a lu e;a=2;b=3;c=4;。a v e r age Value=AVE(a,b,c);pr i n t f(a v e ra g eV a 1 u e:%1 f n,a vera g eValue);ave rageVa 1 u e=AV E(a+1,b+2,c+5);o pr i n t f(a v erageValue:%L f nH,a v e rage Va 1 u e);B.a bc.cpp文献代码:(新建时选择F i 1 e|New|C+S ource File”。注意去掉“Add to project.:
7、前面的勾,以后新建其他程序文献或头文献时还要勾上)d o ub 1 e AVE(double xzd o u b l ey,d o u b le z)(。r e turn(x+y+z)/3;运营结果:a v erageValue:3.00 0 0 0 0a v e r ag e Vai u e:5.6 6 66674.程序代码:A.主程序文献代码:#include#in c lude”exam pl e.hv oid main()in t 3,b,c;p rin tf(请输入任意三个整数:”);scanf(%d%d%d,&a,&b,&c);print f(求和:d n ,Sum(a,b,c);
8、op rin t f (乘积:d n u,Product(a,b,c):B.example.h头文献代码:(新建时选择F i Ie|Ne w|C/C+He a de r 注意勾上“Add t o pro j e c t.:w 前面的勾)i n t Sum(int,i n t,in t);int P r odu c t(int,intz int);C.另一个程序文献的代码:(新建时选择“File|New|C+Source Fi 1 e”。注意勾上“Add to project.前面的勾)i nt S u m(in t a,int b,i n t c)(。retu r n a+b+c;)int P
9、r o d u c t(i nt a,int b,i nt c)(r etur n a*b*c;)运营结果随输入不同而不同,请自行记录第2章基本数据类型与表达式2.1选择题l .D=2.A3.B 4.B5.D 6.C 7.C8.A 9.C 1 0.D1 1.B 12.C 13.A2.2把下列数学算式或不等式表达成C表达式1.2.0*x*(1+x*x/3.0)2.(1+exp(x)/(1-ex p(x)3.(-b+sq rt(b*b-4.0*a*c)/2/a4.1/(3.0*x*log(2.0*x+k)5.pow(sin(x+3.1415 9/4),3)/(3+pow(c o s(x-3.141
10、 5 9/4),3)6.pow(l+e x p(x+1),n)/77.0 =x&x =208.(a*x-b*y)!=c9.(4*x+7*y-2)=3*a*b10.(3.0*x+2)!=0&f a bs(2.0*x*x+l)/(3.0*x+2)=5 5 1 1 pa y =8 2 012.!s t rcmp(pla c e,江苏)&!strcm p(s e x,女)/*strc m p 函数详见教材第 127页*/13.(a=ch&c h=z)11 (A=ch&ch=Z)14.s2=O&(s 1=x|I s=X)s2为数组元素,详见第 4章*/2.3求出下列逻辑表达式的相反式1.!x2.x!=0
11、3.x 1 04.p=NULL|x=4 65.x=106.ch!=d&c h!=z D7.1 p I I p-data=x/*p d at a是对结构成员的间接访问,详见教材第19 3页73*/8.i=n&ai%3!=0/*a i为数组元素,详见第4章*/2.4根据下列题目规定编写出相应程序1.(题目中仅规定两边之和大于等于第三边是不对的。两边之和等于第三边只能连成直线(根据公式计算面积也为0),不能组成三角形。边长也不应为负数。故应规定两边之和大于第三边,且任一边长大于0.但是目前没有学习第3章的if语句,程序自身无法控制在碰到不能构成三角形的情况时如何解决,需要用户输入时自行掌握。)#in
12、 c 1 ude#i n c 1 ud e voi d ma i n()o d o u b Ie a,b,c,s;叩h n t f(“请输入三角形三条边长:“);s c a nf(M%f%lf%lf/&a,&b,&c);s=(a+b+c)/2;pri n tf(该三角形面积为:1 fn ,sq r t(s*(s-a)*(s b)*(s-c);2.(每年都是上一年的 0%,即1.1倍,5年后则将是1.1的5次方。其实只有5次方,为什么一定要用p o w(L l,5)呢人_ 八?1.1*1.1*1.1*1.1*L 1效率多高!但是要注意人数是没有零头的,所以要ce i 1()一下。之所以用c e
13、il()而不是floo r()是为了保证完毕任务,一个都不能少,呵呵。本题这样算出来的是4832人。但是更严格的做法就是要每年都cei 1 ()一下,否则中间某个年份招生人数就有零头了,本题这样算出来的是48 3 6人。只是那样的话就成了:c eilfcei 1 (c e il(ceil(ceil(300 0*1.1)*1.1)*1.1)*1.1)*1.1)晕吧,哈哈。要想不晕,得学好第3章的循环语句。)#in c l u d e/include void main()p r i n t f(5 年后计划招生 I f 人。n,c e il(3 0 0 0*p o w(l.l,5);)3.(算术
14、平均值:求和之后除以n,几何平均值:乘积的n次方根(即1.0/n次方)。为了防止数值过大溢出(超过整数类型的范围),所以对第一个数就使用了强制类型转换为double。此外本题计算乘积的4次方根,规定输入的四个整数假如全都不为0,则应有0、2或4个为正,否则乘积为负,无实数4次方根。)#in c lud e#i n c 1 ude void main()o i nt a,b,c,d;。printf(“请输入4个整数:);s c anf(%d%d%d%d,&a,&b,&c,&d);o p r i ntf(算术平均值:1 f,几何平均值:%1 fo n,(doubl e)a+b+c+d)/4,p o
15、 w(double)a*b*c*d,1.0/4);4,(唯一规定:a和b不能是相反数,即a不等于山。拜托,拜托!)#in c lude#i n c lude voi d mai n()o doubl e a,b;P r i ntf(“请输入a和b的值:);s ca nf(%lf%1 f z&a,&b);p r intf(*x=%1 f,y=%lf n,。2*a*sin(a)/3/(a+b),o 2*b*c o s(b)/3 /(a+b);)上机实验题1.#include#in c lu d e#i n c lude co n s t i n t N=10;v oi d main()o i n
16、t i,x,y,z,c=0;s ran d(t ime(0);for(i=1;i=N;i+)。x=rand()%90+1 0;/0+1 0,89+1 0 o y=ra n d()%9 0+10;/0+10,8 9+10。p rintf(u%d+%d=z x,y);s c anf(”cT,&z);if(x+y=z)c+;/本题回答对的)pr i nt f(最后得分:%dn ,c*10);2.(与教材不同,使用了 箕。这是制表符,相称于按Tab键排版。由于使用了、匕 所以10.2lf也省略为.2 lf,即不限定宽度,只限定小数位数为2位。注意教材上第一个p ri ntf语 句 中c os 误为co
17、n”了。请尝试将w h i Ie改 为f o r、dowh i 1 eo)#in c lude#incl u de co nst d ouble RAD=3.1 4159/180;v o id m a in()oin t i=0;。p r i n tf(t i tsin tcosn);w h i 1 e(i=9 0)pr i ntf(t%d t%.2lft%.2 1 fn,i,sin(i*RAD),c o s(i*RAD);。i+=5;3.(正整数范围大约2 1亿多,故输入的数以9位或以下(小于10亿)为宜,牢记牢记!)#inc 1 ude v oi d main()o i n t n u m
18、,rem;printf(输入一个整数:);s c a n f(d,&num);o d o(r e m=n um%10;/得到个位的值。/*去掉个位,这样下次的个位就是现在的十位。每次如此,即可逐次得到从个位到最高位的各位*/num/=10;/输出现在的个位。由于从个位开始逐位输出,所以顺序反过来了prin t f(%d,re m);/*循环必须用dow h ile,这样当n um为0时也会循环一次,输出一个0。开始不为0时,当去掉最高位后num自然也就是0 了,结束循环*/while(n u m 0);0 p rin tf(n );4.(呵呵,fo r语句与教材的不同。其中表达式1可以省略,这
19、不奇怪;每次循环ch+和dl+都执行一次,所以表达式2只需要判断c h =F,这也不奇怪。两条pr i n t f合成一句,大多数同学也会。但是ch+和dl+怎么和prin t f合并成表达式3?因素在于由于是后缀+,所以给printf()的值事实上都是d l和c h,值给了 p r i nt f()之后才增长1,所以+事实上仍然是在p r in t f()输出之后做的。)#in c 1 ud e void m a in()char ch=A,d l=a;fo r(;c h=F;o pri n t f(%c:%d,%c:%dn ,c h+,ch,d l+,d 1 );)5.(比教材多了一点换行
20、,程序排版好看点。注意有整数除法,所 以y不能为0,并且输入除法答案的时候要舍去小数部分啊!)#include v o id mai n()i nt x,y,z,c=0;p ri n t f(输入两个整数:);scanf(%d%d,&x,&y);print f(%d+%d=,x,y);s c an f(%d,&z);i f(x+y=z)c+;p rintf(%d-%d=,x,y);scanf(%d,&z);if(x-y=z)C+;prin t f(%d*%d=,x,y);sc a nf(%d,&z);i f(x*y=z)C+;p rintf(%d/%d=,x,y);scanf(%d,&z);i
21、f(x/y=z)C+;p r i n t f (%d%d=,x,y);scanf(%d ,&z);i f(x%y=z)c+;p r i n tf(n共5道题,答对d道题n,c);第3章流程控制语句3.1选择题1.A 2.B30.C4o.D 5*.C6。.B7。.C8。.B9.A。10.D(问题一:第5小题。一般而言,循环体每次执行完之后都会执行 表达式3 ,然后再计算表 达 式2,判断是否中止循环,即使在循环体中碰到c。ntinu e也不会跳过 表达式3 的执行。但是,假如在循环体中执行break则会立即终止循环,也就是说(表达式3会被跳过,在这种情况下,循环体就被多执行了一次。)3.2写出下
22、列程序运营结果并上机验证1.(第 一 个i f改用条件表达式,注意最后一个P r i n t f之前的一行,每执行一个赋值语句,相关变量的值就被改变了,变量的新值参与下一个赋值语句中的运算,所以执行了a+=b;b+=a;之后,b和a的值不等。)#i n c 1 u d e vo i d ma i n()o i nt a=2,b=5,c;c=(a+b 1 0)?(a*b):(3*a+2*b);H f(c=20)printf(%d”,c*c);e 1 se if(a b)pri n tf(M%d M,3*(a+b);e Ise p r i ntf(n%d”,4*c-5);print f(n);a+
23、=b;b+=a;c+=a+b;printf(a=%d/b=%d,c=%d n,a,bz c);)2.(注意三处:x+=2、swit c h(x-1)除了 case 10 之后有 br e a k,别的没有 bre a k。)#i ncl u de v oid main()int x;f o r(x=5;x 1 2;x+=2)/x:5 7 9 11。swit c h(x-1)ca s e 4:pri n t f(%dn,x);/x:5。c a s e 7:p rin t f(H%d nz 2*x+1);/x:5。case 10:print f(%d n z 3*x-1 );brea k;/x:5
24、 11de f ault:p r i ntf(def a ultn H);/x:7 93.(规定输入的数在第96页)#incl u d e voi d main()o in t s 0,s 1,s 2,x;sO =s 1=s2=0;pr i ntf(从键盘输入一组整数(以结束):n“);。sca nf(%d,&x);。while(x!=-1)/1 结束 switch(x%3)06 c as e 0:sO +=x;break;能 被3整除的数之和。c a s e 1:si+=x;b reak;/除以 3 余 1 的数之和o case 2:s 2+=x;break;/除以 3 余 2 的数之和0
25、s c a n f (%d,&x);。o pr i ntf(sO=%dz sl=%d,s 2=%dn,s 0,si,s 2);)4.(学会数数,呵呵。)#i n elude v o id main()int cl=0,c2=0,c 3=0;i nt i,j,k;o f or(i=0;i 5;i+)for(j=i;j=i;k-)c2+;/循环 6+5+4+3+2=2 0次c3+;5 次 p rintf(%d%d%dn,c l,c 2,c 3);)5.#inc 1 ud e cons t int B=2;void m a i n()in t i=0,p=1,s=1;。wh i 1 e(s=100
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 电大 计算机 科学 技术 语言 各章 练习题 答案
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内