C语言程序设计实例教程第三版周静课后习题及答案.docx
《C语言程序设计实例教程第三版周静课后习题及答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实例教程第三版周静课后习题及答案.docx(59页珍藏版)》请在咨信网上搜索。
C语言程序设计实例教程第三版课后习题及答案 练习1一、选择题 1、一个C程序是由(B )。 A. 一个主程序和假设干子程序组成B. 一个或多个函数组成C.假设干过程组成D.假设干子程序组成 解析:C语言称为函数式语言,其程序是由至少-个主函数main,和其他更多的函数组成,答 案选B;2、一个C程序的执行是从(A )。 A. main函数开始,直到main函数结束 B.第一个函数开始,直到最后一个函数结束 C.第一个语句开始,直到最后一个语句结束 D. main函数开始,直到最后一个函数结束 解析:C语言执行都是从主函数main函数开始,不管main函数放置的位置,答案选A;3、C语言语句的结束符是(B )。 A. 回车符 B.分号 C.句号 D.逗号解析:C语言语句是以分号结束,答案选B: 4、下面标识符中(D )不是C语言的关键字。 A. char B. goto C. case D. include解析:char声明字符型变量关键字,case为switch结构中开关语句分支关键字,goto为无条 件跳转语句关键字,在C语言中include不属于关键字,属于预处理命令,故答案选D; 5、以下说法正确的选项是(A )C程序的注释可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。 A. C程序的注释只能是一行。 B. C程序的注释不能是中文文字信息。 C. C程序的注释中存在的错误会被编译器检查出来。 解析:在C程序中注释只是起到增加程序的可读性,编译器并不会对注释进行检查,且C程 序中存在多行注释。故答案选A6、以下说法正确的选项是(D ) A. C程序中的所有标识符都必须小写B. C程序中关键字必须小写,其他标识符不区分大小写 C. C程序中所有标识符都不区分大小写D. C程序中关键字必须小写,其他标识符区分大小写。 解析:C程序中的关键字均是小写定义的,且标识符定义可以使用大写和小写,但是严格区分 大小写;故答案选D。 A、x=7 y=8 z=7 B、x=7 y=9 z=7 D、x=8 y=9 z=7 D、x=8 y=9 z=8解析:这里主要是考察if选择结构条件下所能执行的语句只有x=y,y=z;而后边的z=x;并受选 择结构条件所限制,所以根据题目要求当x>y(7>8)不成立,x=y,y=z;语句不能被执行,而只 执行z=x;语句,将变量x的值赋值给z变量,而x与y的值不变化,所以x=7y=8z=7,故答 案选A; 6. 下面程序的运行结果是(B )。 int main() ( int x=6,y=6; if(++x<y++) piintf("%d\n",x++); else printf("%d\n",y++); return 0; }A、6B、7 C、8 D、9 解析:这里考察自增运算符++, if(++xvy++)条件中++x表示先自增变为7,而y++是先参与比 较运算后再是y变量自增,过条为7V6不成立,故执行else后面的语句输出y++,因为y的 值在比拟结束后己经递增变为7,故输出结果为7,输出之后y才变为8;故答案选B;下面程序的运行结果是(D )。 int main() { int x= 1 ,y=2,z=3,m= 1 if(!x)m-; else if(!y)m=2;else if(!z); else m=3; printf("m=%d\n,',m); return 0; }A、m=0B、m=l C、m=2D、m=3 解析:这里考察if...elseif多分支结构的执行,第1个条件!x为假,执行第2个条件!y也为假, 执行第3个条件!也为假,执行最后一个else语句m=3;然后执行printf语句输出m=3;故答 案选D;在下面的if语句中,功能上具有等价关系的两条if语句是(B )。 ① if (flag) x+y; else x-y; ② if (flag==l) x+y; else x-y; ③ if (flag!=0) x+y; else x-y; ④ if (flag==0) x+y; else x-y; A、①和② B、①和③ C、③和④ D、②和③解析:①结构中的条件是flag变量,该结构执行是flag值不等于0执行x+y,反之执行x・y, 与③结构执行一致;而②选择结构中是判断Hag等于1和不等于1两种情况,而④结构执行 与①和③刚好相反;故答案选B; 7. 在if语句多层嵌套的情况下,为了正确区分多个if和else之间的匹配关系,C语言规定: 如果没有使用花括号,那么从最内层的else开始,else总是与其( D )。 A、前面最近的if配对 B、缩进位置相同的if配对 C、后面最近的if配对 D、前面最近的且尚未与其它else配对的if配对解析:在程序,对于if与else的配对是,程序由上而下从第1个else开始找寻其配对的if, else找寻配对if是从else位置开始向上找寻配对的if,这个if是离else最近的if,但是注意 这个if要是没有被配过对的,如果最近的if己经被之前else配对过了,那么需要继续向上找 if,故答案选D; 8. 下面程序的运行结果是(A )。 int main() { int a=3,b=5,c=2.d=3,m=0; if(a>b) if(a>c) if(a>d) m= 1; else m=2; else m=3; printf(”%d\n”,m); return 0; }A、0B、1 C、2D、3 解析:这里考察if的嵌套,进一步考察else与if的配对,根据上一题描述,在程序中由上而 下从第1个else 01=2渣找离他最近的if(a>d) m=l;与其配对,下面第2个else m=3;与离它最 近且没有配对的if是if(a>c),程序只有两个else,那么第1个if(a>b)没有与之配对的else; 当进行if(a>b)判断时其条件为假,没有执行的else,整个if结构执行结束,执行print。语句 输出m的值,而m的初值为0,故答案选A;对下面程序运行结果的分析中,正确的选项是(D )。 int main () ( int x,y; scanf(”%d,%d”,&x,&y); if(x>y) x=y;y=x; elsex++; y++; printf(,'%d,%d\n,,,x,y); return 0; A、假设输入4和3,那么输出4和5 B、假设输入3和4,那么输出4和5 C、假设输入4和3,那么输出4和5 D、有语法错误,不能通过编译解析:此题考核重点是if选择结构中语句层次的划分,对于if语句后只能有一条语句,如果 多条需要用一对花括号{ }将多条语句括起来,故此题的if语句后面有两条语句,所以这是一 个单条件的if语句,后面的else不能与这个if匹配,所以就语法错误,故答案选D 9. 以下关于switch语句的表达中,不正确的选项是(C )。 A、switch语句中各case子句后面的表达式必须是整型或字符型常量表达式。 B、同一 switch语句中各case子句后面表达式的值必须互不相同。 C、switch语句中必须有default局部。 D、switch语句必须与break语句结合才能实现真正的选择结构。 解析:再switch结构语句中defaule局部是可有可无的,他的作用是当所有case后的常量都 不满足表达式的值时,default位置作为switch语句结构的入口点;而break语句再switch语 句中的作用是中断switch语句的执行,以实现分支效果,此题答案选C;假定已定义变量int x,y测下面正确的switch语句是(BD )。 A、switch(x) { case 1.1: y++; case 2.1: y—; default: y*=y; )C、switch(x) { case 2: y++; case 1 + 1: y-; default:y*=y; }B、swilch(x) { case 'a':y++; case 'b':y--; dcfauit:y*=y; }D、switch(x) { default: y*=y; case I: y++; case 1 + 1: y—;解析:这里考察switch语句结构的语法:case后面是整型或字符型常量表达式,且每个case后的值需 要互不相同,故答案A和C都是错误的,答案选B和D; 10. 以下程序输出结果是(B )。 int main() { int x=l,y=2,m=0,n=0: switch(x) (case 1:switch (y) {case 2 : m++ ; break ; case 4 : n++ ; break ;} case 3:m++; n++; break;case 5:m++; n++; )printf("m=%d.n=%d",m,n); return 0; } A、m=l,n=0 B、m=2,n=l C、m= 1 ,n= 1D、m=2,n=2解析:这里考察switch语句的执行流程,因为x=l,所以外层的switch语句执行从case 1入口开始, 而内层switch在case 2入口执行使得m由0变为1,然后执行break语句跳出内层switch结构,顺序 执行外层的case 3使得m由1变为2, n由。变为1,故答案选B; 11. 下面的循环语句执行完毕后,循环变量k的值是(B )。 int k=l; while (k++<10); A、10 B、11 C、9D、无限循环,值不确定解析:此题考查自增运算符的使用,以及空语句在作为循环体执行,当k为9时,k++是先将k的值 参与表达式kvlO运算,9V10成立,然后k的值自增变为10,继续执行k++vlO,艮P 10<10不成立, 跳出循环,但是在跳出循环时k由10自增变为11,故答案选择B; 12. 对下面程序段中while循环执行情况分析正确的选项是(C )。 int k=2; while (k=0) {printf("%d”,k);k--;} A、该循环只执行1次B、循环是无限循环 C、循环体中的语句1次也不执行 D、存在语法错误解析:这里考察阅读者是否仔细阅读while循环结构的表达式,这里表达式并不是关系表达式,而是 一个赋值表达式,是将0赋值给k,表达式的结果为0,即终止循环,循环体育局一次也不执行,故答 案选C; 13. 以下程序段(C )。 x=-l; do{ x=x*x;} while (!x); A、是死循环B、循环执行2次C、循环执行1次 D、有语法错误解析:do...while结构语句是先执行循环体语句x=x*x,即(-1) * (-1) =1,将1赋值给x,然后进行 循环条件表达式!x的运算,结果为!1,即为0,所以终止循环,故答案选C; 14. 对下面程序段中do-while循环执行情况分析正确的选项是(C )。 int m=l,n=5; do { m++; n”; } while (m<n); A、该循环可能1次也不执行B、该循环执行1次 C、该循环执行2次D、该循环执行3次解析:此题考查do...while结构语句的执行流程,第一次循环体执行后,循环条件为2V4成立,继续 执行第二次循环体后,循环条件为3V3不成立,终止循环体语句结构的执行,故答案选C; 15. 下面程序的功能是从键盘输入•组字符,统计这些字符中大写字母和小写字母的个数,程序中while 语句的循环条件是(A )。 int main () {into 1=0,c2=0; char ch; while (( ) !=侦) {if (ch>='A' && ch<=Z') cI ++; if (ch>='a'&& ch<='z') c2++; Ireturn 0; } A、ch=getchar()getchar() C、ch==getchar() D^ scanf("%c",&ch)解析:C语言从键盘获取字符数据,使用函数getchar()获取单个字符,这里使用循环结构设计逐个获 取字符,直到获取到回车终止,因为下面是对变量进行判断,所以使用函数getchar()获取的字符需要 赋给变量ch,故答案选A; 16. 下面有关for循环的正确描述是(D )。 A、for循环只能用于循环次数己经确定的情况。 B、for循环的执行流程是先执行循环体语句,后判断表达式。 C、在for循环中,表达式1和3可以省略,但表达式2是不能省略。 D、for循环的循环体中,可以包含多条语句,但必须用花括号括起来。 解析:此题考查foi•循环结构语句的语法,对于A的说法是不正确的,不能用只能;对于B答案显然 不符合for循环的执行流程描述,for循环是先判断循环条件,后执行循环体语句;对于C答案,for 循环结构中三个表达式都可以省略,当表达式2省略,默认循环条件为真;故答案选择D;执行语句for(i=l;i++<4;);后变量i的值是(C )。 A、3B、4 C、5D、不定解析:这里考察自增运算以什么值参与表达式运算,i++是先用i的值参与表达式运算再自增,而++i是 先自增,然后以自增结果参与表达式运算;故而i=l开始,第1次循环条件判断1V4,然后i自增变为 2,进入第2次循环条件判断2<4,然后i自增变为3,进入第3次循环条件判断3<4,然后i自增变为 4,进入第4次循环条件判断4V4,然后i自增变为5,这时循环条件判断为假跳出循环,这时变量i的 值为5,故答案选C; 17. 以下程序段的循环次数是(B )。 for (i=2; i==0;) printf(”%d",i--); A、无限次 B、。次 C、1次 D、2次解析:考察识别for结构中各表达式的作用,表达式1为i=2,即为i变量赋值,表达式2为循环条件 判断,i==o,表达式即2==0,显然为假,即终止循环,这里表达式3省略;故而循环次数为0,故答 案选B; 18. 下面的双重循环中的内循环体将一共会被执行(C )次。 for(i=0;i<=3;i++) for(j=4;j;j-) printfCa"); A、12 B、15 C、16 D、20解析:外层循环for中i从()到3循环了 4次,内循环for中j从4到1也是循环了 4此,对于内循环 体的次数为内外循环次数的乘积,即4*4=16,故答案选C; 19. 如果下面程序在运行时输入、1,0,2,-2/,那么程序输出结果是(C )。 int main() { int x,i,sum; for (i=0,sum=0; i<5;i++) (scanf(”%d”,&x); if (x<0) continue; suni+=x; } printf("%d",sum); return 0; } A、-3B、0C、3D、1解析:此题考察循环结构中continue语句的作用;根据程序的执行流程中可以看到这里使用了 for循 环结构,而佛如循环体中并没有改变循环变量i的值,故for循环的次数为5此,艮队从0到4;这里 sum初值为0,循环体中有键盘获取数据,将执行5次,获取5个数据,且体中使用sum变量对键盘 送入的数据进行累加,但是在累加之前有一个判断语句if (x<0) continue;代表键盘获取的数据为负数 将结束本次循环,不执行后续的累加语句,故题目是累加键盘送入数据中大于0的数据的和,所以答 案选C; 20. 如果下面程序在运行时输入1,2,0,-1,-2/,那么程序输出结果是(C )。 int main() ( int x,i,sum; for (i=0,sum=0; i<10;i++) {scanf("%d",&x); if(x<0) break;sum+=x; } piintf("%d,,,sum); return 0; } A、-3B、0C、3D、1解析:此题考察循环结构中break语句的作用;与上题类似,只是本体的循环次数本来是10此,只是 在循环体中进行累加之前有一个判断语句if(x<0)break;即在键盘键入负数后终止循环;故只能累加键 盘键入的负数之前的数据;故答案选C; 二、填空题在•个循环语句的循环体中又包含了另•个循环语句,那么这种循环形式称为循环的嵌套。 1. for语句中的三个表达式可以全部或局部省略,但应保存其分隔符;。 2. 淄些通常适用于条件表达式的取值为多个离散而不连续的整型值(或字符型值)时实现多分支 选择结构。 3. C语言提供的选择控制语句可以对给定的条件进行判断,并根据判断结果选择执行分支程序。 4. 语句可以分为说明性语句,表达式语句,复合语句 和 控制结构语句4种类型,if语句 属于其中的控制结构语句。 5. C语言C语句的结束标志是一分号。 6. 复合语句是用一对界定的语句块。 7. 将“y能被4整除但不能被100整除,或者y能被400整除”这一条件描述写成逻辑表达式能够表示“40<x<=60 或 XV120”的 C 语言表达式是_x>40&&xv=60||、vl20。 8. 下面程序的功能是求3个整数中的最小数,,将程序补充完整。 in( main() { int x,y,z,min; scanR"%d%d%cT,&x,&y,&z); if( xvy ) min=x; else min=y; if( zvmin )min=z ; printR"min=%d'',min); return 0; }switch语句中case关键字后面的表达式必须是_整型常量表达式。 9. switch语句只有与 case语句结合使用,才能实现程序的选择结构。 10. C语言实现循环结构的三种语句分别是 for 语句、 while 语句和 do-while 语句。 11. 除for语句外,可能一次循环体也不执行的循环语句是顼业至少执行一次循环体的循环语 句是 do-while 。 12. 假设键盘输入字符ABCDEz (/表示按下回车键,那么下面for语句执行后k的值是室_。 fbr(k=O;(c=getchar()) !='\n' ;k++);下述程序段的运行结果是一 2, 1, 2。 ini a=l,b=2, c=3, t; while (a<b<c) (t=a; a=b: b=t; c-;} printf("%d,%d,%d”,a,b,c);执行下面的程序段后,m的值是 3()。 int m=l,n=325; do(m*=n%10;n/=10;}while(n);卜面程序的功能是求1〜10()之间能同时被3和5整除的数,以8个数为一行的形式输出,将程序 补充完整。 int main() {int n,j=O; for(n= 1:n<= 100;n++){if(n%3!=()&&n%5!=0) continue;printf(,'%6d",n); j++;if( i%8==0) printf("\n°);I pnntf(,,\nj=%d\n",j); return 0; }三、程序阅读,写出程序运行结果。 1. int main。 { int a=l,b=3,c=5,d=4,x: if (a<b) if (c<d) x=l; elseif (a<c) if(b<d) x=2;else x=3; else x=6; else x=7; pnntf(,,x=%d",x); return 0; } 输出:x=2int main () int a=2,b=7,c=5; switch (a>0)case 1: switch (b>0) {case 1: printf("@"); break ; case 2: printf(H!"); break ; }case 0: switch (c==5) {case 1: printf("*"); break ; case 2: printf("#"); break ; default: printfC'#"); break ;I default: prinlf("&”); } printf(侦'); return 0; } 输出:@*&zint main () { int x,y; for (x=l,y=l ;xv=10; x++) {if (y>10) break; if(y%3==l){ y+=3 ; continue ; I y-=5; } printf("%d,%d\n",y,x); return 0; } 输出:13,5找寻两个数的最小公倍数。 int main () ( int x,y,z,t; scanf("%d,%d”,&x,&y); if(x>y)t=x;x=y;y=t; z=x; do {if(z%x==0&&z%y==0) break; else z++; }while(l); printf("gbs=%d\n",z); return 0; } 键盘输入数据:18/ 输出:gbs=40int main() ( int i,j; for (i=l; i<=3; i++)for(j=l;jv=i;j++) printfC* ”);for (j=l;jv=7-2*i;j++) printf("*");prinif("\n”); ) return 0; }输出:***** 米*木* 四、编程题编程实现,键盘输入4个整数a,b,c,d,输出其中的最小数。 解: #include<stdio.h>int main() ( int a.b,c,d,s; printf(”请输入个数字, scanf("%d%d%d%d”,&a,&b,&c,&d); if(a>b) s=b; else s=a; if(s>c)s=c; if(s>d)s=d; printf(”最小是:%d",s); return 0;} 1. 编程实现,键盘输入3个整数a,b,c,按照由小到大的顺序输出这三个整数。 解: 7、设x、y均为float型变量,那么以下不合法的赋值语句是( B ) A. ++x ;B. y=(x%2)/10 ;C. x*=y+8;D. x=y=0 ;解析:运算符%要求两端的操作数必须为整型,而在答案B中%号两端的操作数为x和2, x 为实型,所以是错误的。 8、以下不正确的转义字符是(C ) A. WB. VC. '\19,D. '\0‘解析:转义字符是由单引号括起来的带反斜线的字符,这些字符具有特殊的含义,反斜线后可 以是数字来代表某个字符,而这些数字只包括两种:八进制(1-3位)和十六进制(1-2位)。 十六进制前面要加x (或X),这里的C答案反斜线后是数字,但不是x开头,所以应该是八 进制数,但是数值里有9,和八进制数不符,所以是错误的。 9、以下不是C语言常量的是(A ) A. e-2B. 074C. "a"D. * \0 *解析:C语言的常量分为整型、实型、字符型和字符串。整型常量的书写形式分为十进制、八 进制和十六进制,十进制是0~9的数值表示;八进制是以0开头,0~7的数值表示,十六进制 是以Ox (或0X)开头,0〜9与a~f (或A~F)表示。实型常量的书写分为小数形式和指数形 式,小数形式指只包含小数点的形式,如:0.056或300.57;指数形式只指用包含e (或E)的 书写形式,要求e (或E)的前面必须有数值,后面必须是整数的书写规那么。字符型常量指单 引号引起来的单个字符或转义字符。字符串常量是指双引号引起的多个字符。这里答案A是 实型的指数书写形式,但是这种书写形式要求e前面必须有数值,后面必须是整数,而这里所 以是错误的。 10、设int类型的数据长度为2个字节,那么unsigned int类型数据的取值范围是(B ) A. ()-255B. 0-65535C. -32768-32767D. -256-255 解析:2个字节为16个二进制位,且是无符号型,故范围为0到2,6-1=65535,故答案选B; 11、假设定义了 int x;那么将x强制转化成双精度类型应该写成( A ) A. (double) xB. x (double)C. double (x) D. (x) double 解析:A为C语言强制转换的标准书写形式; 12、在C语言中,要求参加运算的数必须是整数的运算符是(C )。 A. / B. *C. %D.= 解析:C选型的%为求余运算符,其要求两端的运算数必须为整型。 13、为了计算s=10!(即1()的阶乘),那么s变量应定义为( D )。 A. int B. unsigned C. long D.以上三种类型均可解析:在TC F,此题答案是C,在VC6.0卜此题答案是D,因为两个编译器对int类型数据 的空间分配的大小不一样,在TC下是2字节,在VC6.0下是4字节,所以取值范围也就不一 样。 14、putchar ()函数可以向终端输出一-个( D )。 A、整型变量表达式值B、实型变量值 C、字符串D、字符或字符型变量值#include<stdio.h> int main()( int a,b,c,s; scanf("%d%d%d”,&a,&b,&c); if(a>b) ( s=b; b=a; a=s; } if(a>c) s=c; c=a; a=s; I if(b>c) ( s=c; c=b; b=s; } printf("%d%d%d\n,,,a,b,c); return 0;I 2. 如果有如下的分段函数,编程实现,键盘输入x的值,输出y的值。 x2+8 (x<10) 4x+5 (10<x<40) 2x-3 (x>40) 解: #include<stdio.h>int main() { int x,y; scanf("%d",&x); if(x<10) y=x*x+8; else if(xv40)y=4*x+5; else y=2*x-3; printf("%d",y); return 0;) 3. 编程实现,键盘输入一个整数,判断它是奇数还是偶数,假设是偶数那么进一步判断它是否为4的倍数。 解: #include<stdio.h>in( main() int a;scanf("%d".&a); if(a%2==0) if(a%4==0)printfC*这是一个偶数能被4整除, elseprintff这是一个偶数不能被4整除勺; } else prinf("这是一个奇数”); return 0;} 4. 编程实现,输入某学生某门课程的五级制成绩'A','B','C','D','E'(或,a?b*,,\T,8),输出该五级 制成绩对应的分数段信息。对应关系为:A级对应90分以上,B级对应80-89分,C级对应70-79 分,D级对应60-69分,E级对应60分以下。 解: #include<stdio.h>ini main() ( int a,b; scanf("%d",&a); b=a/10; switch(b) ( case 6: printfC'D"); break; case 7: printfC'C"); break; case 8: printf("B"); break; case 9: case 10: printf("A"); break; default: printf("E"); } return 0;} 5. 中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1 口起开始“三天打鱼两天晒 网",请编辑程序判断这个人在以后的某一天中是在''打鱼",还是在"晒网"。 解: #include<stdio.h>int main() (int Year,Month,Day; /*sumday变量用来存放计算的总天数*/int sumday,Xyear= 199O.rn; printfC1请输入年月日(空格分隔):”);scanf(H%d %d %d",&Year,&Mon山,&Day); if(Year<1990) { printfC该年份输入错误! \n”); return; 〃计算输入年份之前至1990年1月1日的天数,Xyear作为年份自变量 for(surnday=0;Xyear<Year;Xyear++) { /*判断当前计算的年分是否属于闰年*/ m=Xyear%4==0&&Xyear% 100!=0||Xyear%400==0; if(rn==l) sumday+=366; else surnday+=365; } /*累加计算输入年份当月之前的天数*/ m=Year%4==0&&Year% 100!=0||Year%400==0; switch(Month-l) ( case 12: sumday+=31; case 11: sumday+=3(); case 10: sumday+=31; case 9: sumday+=30; case 8:sumday+=31; case 7:sumday+=31; case 6:sumday+=30; case 5:sumday+=31; case 4:sumday+=30; case 3:sumday+=31; case 2:if(rn== 1 )suniday+=29: else suniday+=28; case l:sumday+=31; } /*累加当前输入月的天数*/ sumday+=Day;/*根据计算总天数与5的余数判断其形式,前天三为打鱼,后两天为哂网*/ switch(suinday%5) ( case 1: case 2: case 3:printf("打鱼\n");break; case 4: case O:printf("0ffi 网 \n");break; } return 0;} 6. 假设银行一年整存零取的月息为0.63%,现在某人手中有一笔钱,他打算在今后的五年中每年的年 底取出100()元,到第五年时刚好取完,请编辑程序算出他存钱时应存入多少。 解: *问题分析与设计分析存钱和取钱的过程,可以采用倒推的方法。 假设第五年年底连本带息要取1000元,那么要先求出第五年年初银行存款的钱数: 第五年初存款=l(X)0/(l +12*0.0063)依次类推可以求出第四年、第三年......的年初银行存款的钱数: 第四年年初存款=(第五年年初存款+1000)/(1 +12*0.0063) 第三年年初存款=(第四年年初存款+1000)/(1 +12*0.0063) 第二年年初存款=(第三年年初存款+1000)/(1 + 12*0.0063) 第一年年初存款=(第二年年初存款+1 ()()())/(1 +12*0.0063) 通过以上过程就可以很容易地求出第一年年初要存入多少钱。 #include<stdio.h>int main() ( int i; float totai=0; /*i为年数,取值为第5至第I年,total每次计算结果为第i年初存款数额*/ for(i=5;i>0;i-) total=(total+ l(X)0)/(l +O.OO63* 12); /*第五次循环后的计算结果即为最初第1年的存款数额*/ printf("他存钱时应存入%.2f元。\n",total); return 0;} 7. 买买提将养的一缸金鱼分四次出售:第一次卖出全部的一半加一条,第二次卖出余下的三分之一加 两条,第三次卖出余下的四分之一加三条,最后卖出余下的27条。编程输出原来鱼缸中共有多少条鱼。 解: #i ncl ude<stdio.h>int main() { int fish=27; for(int i=3;i>();i--) { fish=(fish+i)*(i+ l)/i; I printfC*原来鱼缸中共有%<1条鱼\n”,fish); return 0;} 8. 编程实现九九乘法表的输出,要求使用for循环实现。 解: #include<stdio.h>int main() ( int i,j; for(i=l;i<10;i++) { for(j=l;jv=i;j++) printf("%d*%d=%d\t'\i,j,(i*j)); printf(u\n");} return 0;} 9. 编程实现,输出100到200间所有的完全数。所谓完全数是指一个数恰好等于它的所有因子之和, 这样的数称为完全数。 解: #include<stdio.h>int main() { int s,i,j; for(i=100;i<=200:i++) (s=0; for(j=1 ;j<=i/2;j++){ if(i%j==O)s+=j; }if(s==i) printf("%d\t,,,i); } return 0;I 10. 输出1到100中能被3整除但不能被4整除的数,要求使用continue语句实现。 解: #include<stdio.h> int main(){ int i; for(i=l;i<100;i++) { if(i%3! =0&&i%4==0)continue; printf("%d ”,i); } return 0;编程实现,按下面的公式求m的近似值,要求精确至让vle-6为止(或者公式中n的值由键盘输 入)。用 1111 1 m= — — +...— 1! 2! 3! 4! n\ 解: 方法一:精确到-<le-6为止n\ #include<stdio.h>#includc<math.h> int main() int n,i; float m= l,s=l; for(i=2;;i++) { s*=i*(-l); if(fabs(l/s)< 1 e-6)break; m+=l/s; } printf("%f',m); return 0;} 方法二:公式中n的值由键盘输入#include<stdio.h> int main(){ int n,i; float m= l,s=l; scanf("%d”,&n); for(i=2;i<=n;i++) { s*=i*(-l); m+=l/s; I printf("%f',m); return 0;} 9 oco有一个有规律的分数数列:一,二,',2,…,编程求该数列前2()项之和。 1235解: #include<stdio.h>int main() { float s=0; int sl = l,s2=2,i; for(i=0;i<20;i++) (s+=(float)s2/s I; s2=sl+s2;s I =s2-s I; } printf("%f\s); return 0;己知一个直角三角形中3条边x,y,z的长度均为整数,其中1条直角边x的长度己确定,斜边y的 长度不能超过某个整数n,输出满足条件的所有直角三角形,x和n的值由用户键盘输入。 解: #include<stdio.h>#i nclude<math. h> int main()( in- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 实例教程 第三 版周静 课后 习题 答案
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文