还剩20页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
语言程序设计教程第2版参考答案习题11-1单选题1〜5BBBAC1-2填空题.函数.主函数main主函数main.主函数main.函数首部,函数体.{}.依次结构,选择结构,循环结构..c.obj.exe第2章
2.1单选题
2.1填空题
2.
00000010.5926100d
12020360110642691533608355116410.
5.double.•整型字符型实型枚举类型.数据类型数据类型.字母数字下划线字母下划线.单精度双精度{ifarea40printfr=%farea=%f\ni;area;r=r+l;area=
3.1415926*r*r;4从键盘输入一批整数,统计其中不大于100的非负数数值的个数用while循环实现#includestdio.hmain{intxi=0;scanf%dzx;whilex=0{ifx=100i++;scanf%dx;printfthenumberis:%d\ni;5用/4=1-1/4+1/5-1/7+1/9-…公式求的近似值,直到最终一项的确定值小于10为止#includemath.h”main{doublek=
1.0n=
1.0pi=0t=
1.0;whilefabst=le-4{Pi=Pi+t;n=n+
2.0;k=-k;t=k/n;pi=pi*4;printfpi=%lf\nzpi;6解决猴子吃桃问题猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个其次天早上又将剩下的桃子吃掉一半,又多吃了一个以后每天早上都吃了前一天剩下的一半零一个到第10天早上想再吃时,只剩一个桃子了求第一天猴子共摘了多少个桃子#includestdio.hmain{intimn;forn=li=l;i10;i++{m=2*n+2;n=m;}printftotal=%d\nm;7取彩球问题现有12个彩球一一3个白球、3个红球、6个黑球,从中随意取〃2个球,求全部不同的取法#includestdio.hmain{intnwhiteredyellowcount=0;printfC^leaseinputthenumberofballtook:;scanf%dn;printfwhiteredyellow\n;forwhite=0;white=3;white++forred=0;red=3;red++{yellow=n-white-red;ifyellow=0yellow=6{printf%6d%6d%6d\nzwhiteredyellow;count++;}printfTotal:%d\nncount;试验5函数略略3求两个整数的最大公约数和最小公倍数,要求用一个函数求最大公约数,用另一个函数求最小公倍数,分别接受用全局变量和不用全局变量两种方法做•运用全局变量#includestdio.hintxy;inthef{intu=xv=yab;ifuv{a=u;u=v;v=a;}whileb=u%v!=O{u=v;v=b;}returnv;intledintxintyinth{returnx*y/h;}main{inthl;scanf%d%dxy;h=hefxy;printfHCF=%d\n1h;l=ledxyh;printfnLCD=%d\nl;•不用全局变量#includestdio.hinthefintxinty{intab;ifyx{a=x;x=y;y=a;}whileb=x%y!=O{x=y;y=b;}returny;intledintxintyinth{returnx*y/h;}main{intxyhl;scanf%d%dxy;h=hefxy;printfHCF=%d\nHh;l=ledxyh;printfLCD=%d\nl;4计算s=1/1-1/2+1/3-…+1/9999-1/10000分别接受下列各种方法每种方法单独用一个函数实现,最终加以比较
①从左到右各项相加;
②从右到左各项相加;
③从左到右各个正项和负项分别相加;
④从右到左各个正项和负项分别相加#includestdio.hvoidlsumintn;voidrsumintn;voidlsumcintn;voidrsumcintn;main{IsumlOOOO;rsumlOOOO;IsumclOOOO;rsumclOOOO;voidlsumintn{intik=l;doublesum=0t;fori=l;i=n;i++{t=
1.0*k/i;sum+=t;k=-k;printfHtheIsumis:%lf\n”sum;voidrsumintn{intik=-l;doublesum=0t;fori=n;i=l;i-{t=l.O*k/i;sum+=t;k=-k;printfnthersumis:%lf\nsum;voidlsumcintn{inti;doublesum=0;fori=l;i=n-l;i++i++sum+=
1.0/i;fori=2;i=n;i++i++sum-=
1.0/i;printfntheIsumcis:%lf\nsum;voidrsumcintn{inti;doublesum=0;fori=n;i=2;i-i-sum-=
1.0/i;fori=n-l;i=l;i-i-sum+=
1.0/i;printfthersumcis:%lf\rTsum;5猴子吃桃问题的函数化把猴子吃桃问题写成一个函数,使它能够求得指定一天起先时的桃子数#includestdio.hintmonkeyintk{intimn;forn=li=l;i=10-k;i++{m=2*n+2;n=m;}returnn;main{intday;printfnPleaseinputthedayl=day=10:\nn;scanfn%dday;printfday:%dtotal:%ddaymonkeyday;}
(6)菜单程序编写一个菜单程序,运行后首先在屏幕显示如图所示的菜单,当输入数值1时,调用显示图案的函数;当输入数值2时,调用显示图案的函数;当输入数值3时,程序结束#includestdio.hvoidviewl;voidview2;mainprintfn
2.view$\nn;printfC
3.exit\n;printfprintf\nPleaseinputselection:\n;whilelscanf%dop;ifop==l{viewl;printfn\nPleaseinputselection:H;elseifop==2{view2;printf\nPleaseinputselection:;elsereturn;voidviewl{inti;fori=l;i15;i++putchar@;return;voidview2{intij;fori=l;i5;i++{forj=l;ji;j++putchar;forj=l;j10;j++putchar$;printfH\nH;return;}试验6数组略略3设有含10个元素的一维整型数组,其中偶数和奇数各占一半,将该数组变换为25的二维数组,且偶数和奇数各成一行#includestdio.hmain{inta
[10]/b
[2]
[5]ij=0/k=0;printfPleaseinputthearraya:\n;fori=0;i10;i++scanfr%d“a[i];fori=0;i10;i++{ifa[i]%2==0b[O][j]=a[i];j++;elseb[l][k]=a[i];k++;forj=0;j=l;j++fork=0;k=4;k++printfnb[%d][%d]=%dnjkb[j][k];4找出一个二维数组的鞍点,即该位置上的元素在所在行上最大,在所在列上最小,留意也可能没有鞍点#includestdio.h#defineM3#defineN4main{inta[M][N]ijk;printfC^leaseinputthearraya:\nH;fori=0;iM;i++forj=0;jN;j++scanfC^d^atillj];fori=0;iM;i++{k=0;forj=l;jN;j++ifa[i][j]a[i][k]k=j;forj=0;jM;j++ifa[j][k]a[i][k]break;ifj==MpnntfH%d%d%d\na[i][k]zik;5有几个人围成一圈,依次编号从第1个人起先报数从1到〃2凡报到机的人退出圈子,求最终一个圈中的人的编号#includestdio.hmain{inti=0;intk=0;intquit_num=0;intn;〃总人数intm;〃报数的最大数intnum
[100];〃保存全部人的编号int*p=num;〃初始化指针,使其指向num数组printfPleaseinputnumberofperson:n=;scanf”%d”n;printfPleaseinputthenumberm=;scanf%dnzm;/*给全部的人编号为1到n*/fori=0;in;i++{*P+0=i+1;}i=0;/*当未退出人数大于1时执行循环*/whilequit_numn-1{whilein{if*p+i==0{k++;ifk==m{*p+i=0;quit_num++;k=0;}i++;i=0;while*p==0p++;〃查找留在圈中的人printfThelastonesnumberis:%d\n*p;试验7指针略略3用指针作函数参数求4个整数中的最大者#includestdio.hvoidmaxint*int*;main{intabczd/*pa/pb*pc*pd;pa=a;pb=b;pc=c;pd=d;printfPleaseinputthedataabcd:\rT;scanf%d%d%d%dnabcd;maxpapb;maxpapc;maxpapd;printfthemaxnumberofthedatasis:%d\nn*pa;voidmaxint*pint*q{intt;if*p*q{t=*p;*p=*q;*q=t;}4编写一个对含有〃个元素的一维数组求和的函数sum要求用指针作为此函数的参数,并在主函数中调用此函数,实现对含有随意多个元素的一维数组求和的功能#includestdio.h#defineN5intsumint*;main{inta[N]s=0*p=ai;printfPleaseinputthearraya:\n;fori=0;iN;i++scanf”%d”a+i;s=sump;printfthesumofthearrayais:%d\ns;intsumint*p{intsi;fori=0;iN;i++s+=*p+i;returns;5编写一个在一维有序数组中插入数据的函数insert并在主函数中调用它实现数据的插入有序数组在主函数中给出,可以通过初始化获得,也可以通过键盘输入随意数据#includestdio.hvoidinsertint*intint;main{intia
[6]x;printfPleaseinputthearraya:\n;fori=0;i5;i++scanf%da[i];printfPleaseinputtheinsertdatax:\nH;scanfn%dnx;inserta5x;printfthenewarraya:\n;fori=0;i6;i++printfn%dHa[i];voidinsertint*pintnintx{intij;fori=0;in;i++if*p+ixbreak;forj=n;ji;j-*p+j=*p+j-l;*p+i=x;试验8结构体和共用体1略2略3*建立一个链表,每个结点包括学号、姓名、性别、年龄输入一个年龄,假如链表中的结点所包含的年龄等于此年龄,则将此结点删去#includestdio.hstructlist{charxh
[4];charxm
[10];charxb;intnl;structlist*next;;typedefstructlistSLIST;SLIST*creat_list{SLIST*h*s*r;inti;h=SLIST*mallocsizeofSLIST;r=h;fori=0;i3;i++{s=SLIST*mallocsizeofSLIST;scanfn%s%s%d%cns-xhs-xmzs-nls-xb;r-next=s;r=s;r-next=NULL;returnh;voiddele_listSLIST*pintage{SLIST*q=p-next;whileqifq-nl!=age{p=p-next;q=q-next;}else{p-next=q-next;break;}main{SLIST*head*p;intage;head=creat_list;printfPleaseinputtheage:\n;scanf%dage;dele_listheadage;p=head-next;whilep!=NULL{printf%s%s%c%d\np-xhp-xmp-xbp-nl;p=p-next;}试验9文件1略2编写程序实现将一个文本文件复制到另一个文本文件中,源文件内容自己定义#includestdio.hmainintargcchar*argv[]{FILE*in*out;ifargc!=3{printfpleaseenterthefilenamen;exitO;}ifin=fopenargv[l]/r==NULL{printfHcannotopeninfile\n;exitO;}ifout=fopenargv
[2]w==NULL{printfcannotopenoutfile\nn;exitO;}while!feofinfputcfgetcinout;fclosein;fcloseout;}试验工0综合编程.变量初始化.双引号.9\
0.x=
3.600000i=3习题33-1选择题1-5BDABC6-10ADCAC11-15BBBCC16-20CDCDA21-25CACAA26-29BCBA3-2填空题302610x1021互换ab的值
6.6-
0035.04c=3Enteri=10j=20Enter16565A
56.
123400123.
4560013.
1416008765.
4325.864000e+
0023.141600e+
00083.
141687653.
14168765.43a=2b=5x=
8.8y=
76.34cl=65c2=97B66nl=%d\nn2=%d\n121125213710030IB
88220.00000067G模拟试卷
(一)参考答案・选择题(1〜30每题1分,31〜50每题2分,共70分)二填空题(每空2分,共30分)模拟试卷
(二)参考答案・选择题(共35道小题,70分,每题2分)二.填空题(每空2分,共30分)4-1单选题1-5AADAD6-10ACBBB21-25CDBDD26-30DCDCA41-42AA4-2填空题
1.
12.⑴a0||b0⑵x0x=103a==
1.5b==
1.5c==
1.54pa||pb||pcl021314051max=aba:bcmax:c-415031a==02b==03disc0110110200yesX==0x=ly=0x=2ch=Ac二Zch=ch-32-101习题55-1单选题1〜5CDABA6-10ABDDB11-15DBCBC16-21DBCBCD5-2填空题203331i102j%3!=0lflag*floatk/k+l2flag=-flag1max=x2x!=-l3scanf”%d”x022t*10习题66-1单选题1〜5CBBAD6〜10DBCCD11〜15DCABC16〜20ABBBC21-25CCBAA26-30ABBDB31-35BDADD36-40ADCAA41-43BBB2填空题120x・3223fac/i
81791.0/i*ifun-in:302010fun-end:101535105010203001234593636-f0101112124334xvoidfundoubleb[]1j2str[j-lA+B=
918.246l:a=lb=l2:a=lb=2x=9x=1097777-1单选题1-5DBCCB6-87-2填空题C601000101681100144习题88-1单选题1〜15CADAC21〜25DACDA8-2填空题11_2345lj+=21r+b[k]13715a[i]a[i]或*a+i1i106〜10CCDAB26-30BDCAD2100102a[i]a[j]⑵*x11〜15CBBCD31-35ADACD16-20CAABA36-37AC1000001000⑶QuickC4001000001000001a[i]-a[i-l]i%3==
08.1a[i][j]+b[i]U]2printfn”
9.09-1单选题1~5DDACB16-20DADAC31〜33ABC6-10ACBAD21〜25ACDAC11〜15CDBCC26〜30DDDAA9-2填空题习题工0全部结构体成员所占存储空间的总和与占用存储空间最大的那个成员相等1结构体233sa.a495psa=sa80structnode
0238.2210x
10.23习题1111-1单选题1-6BADDAA11-2填空题3d3d330128220304-9125124232094-2955848246习题1212-1单选题1-5BCDCA6-10ADABC11-14BDDA12-2填空题rewind文件指针ndl.dat;rbnstdin文本文件二进制文件lnwn2str[i]-323TfopenHell1V2fgetcfp⑶time++.文本文件二进制文件.非零值0习题1212-1单选题1-5BCDCA6-8ADA12-2填空题rewind文件指针Mdl.datHnrbnstdin文本文件二进制文件1W2str[i]-323HrnfopenHell1V2fgetcfp3time++试验篇试验工熟悉VisualC++
6.0可视化集成开发环境略试验2依次结构程序设计试验3选择结构程序设计略略#includestdio.hmain{floatab;printfPleaseinputthedataaandb:\nn;scanf%f%fab;ifa
10.0a=a-
10.0;else{a=a+
10.0;ifba;elseb=a-b;printfa=%fb=%f\nnab;试验4循环结构程序设计略略3编写一个程序,打印输出半径为1〜10的圆的面积,若面积为40〜90则予以打印否则,不予打印#includestdio.hmain{floatr=0area=0;whiler10area9012345678910CBDCDDBACA11121314151617181920BBDCABCCAC21222324252627282930ABBBBCDDAC31323334353637383940CDDCBBBABA41424344454647484950CCDCCBCCDC空序号答案空序号答案
[1]mainQ[9110200
[2]1164
[10]1B
[3]5
[11]4334
[4]1101
[12]010111212【5】i=9或i10[131yes
[6]k%3
[14]-f[710[15113715
[8]b1234567891AAACBDABCD11121314151617181920CDAABBBDAC21222324252627282930AADBDAABDA3132333435DABBC题空号答案题空号答案[11double
[2]x==0
[3]0
[4]-f或f*-l或-l*f或f*-l或-l*f[51fun10
[6]X
[7]a=
1.0;b=
1.0;s=
1.0;
[8]-1或-1[91*sn或sn
[0]
[10]a[i]
[11]a[i]或*a+i
[12]row
[13]a[row][colum]
[14]!s[i]=Os[i]=9或s[i]0||s[i]9[151’\0’或0。