欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言1-7章课后作业答案.doc

    • 资源ID:54344087       资源大小:221.50KB        全文页数:49页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言1-7章课后作业答案.doc

    C语言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】请指出以下哪些是合法的标识符?哪些又是合法的用户标识符。 101 int 3ip x_1 x+1 count 1234 Xy x%y if while a.bc x&y _ _ 1_112 Abc name x break for x=y合法的标识符有:x_1、int、count、Xy、if、while、Abc、name、x、break、for合法的用户标识符有:x_1、count、Xy、Abc、name、x【习题1-5】简述上机调试运行C程序的操作步骤。答:上机运行C语言程序的操作步骤为:启动Visual C+ 6.0建立工程创建源程序文件输入(编辑)源程序内容保存源程序文件编译源程序文件连接目标程序执行程序开始另一个程序。【习题1-6】上机运行本章的3个例题。 略【习题1-7】参照本章例题,编写一个C语言源程序,输出以下信息:*Nice to meet you!* 编写程序如下:#include<stdio.h>void main() printf("*n");printf("Nice to meet you!n"); printf("*n");第二章 基本数据类型和运算符【习题2.1】上机编辑并调试本章所有例题。答:略。【习题2.2】下面哪些是合法的常量?20 0.5 012 13e5.1 E-5 8e4 5. 0x6a'mn' "OK" "a" '012' "a/b" ''答:合法的常量有:20 0.5 012 8e4 5. 0x6a合法的常量有: "OK" "a" '012' "a/b" ''【习题2.3】下面的变量名中哪些是合法的?A&b abc123 abc% AbC int long 123abcchar ab?c double 'a'bc a_bc a*bc float 答:合法的变量名有:abc123 AbC a_bc【习题2.4】指出下面的变量定义哪些是正确的,哪些是不正确的,为什么?Int i,j;float a,A;int a,b;float a,b;float a,int b;char 'a'答:错误,因为关键字Int应该全为小写字母 正确错,因为同一变量在程序的同一处不应该声明为不同的数据类型错,因为不同类型的变量要分别声明,其间应使用分号,而不是逗号错,'a'表示字符常量,不能用作变量名【习题2.5】填空题。整型、实型、字符型ASCII码1、2 fj【习题2.6】把下列数学式子写成C语言表达式。(1)3.26ex+(a+b)4(2)(3)(4)2pr+pr2+cos(45°)(5)对应的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)【习题2.7】C语言中为什么要引入转义字符?答:在字符集中,有一类字符具有这样的特性:当从键盘上输入这个字符时,显示器上就可以显示这个字符,即输入什么就显示什么。这类字符称为可显示字符,如a、b、$等。但另一类字符却没有这种特性。它们或者在键盘上找不到对应的一个键,或者当按键以后不能显示键面上的字符,为了解决这一问题,在C语言中引入了转义字符。【习题2.8】 “&&”和“”严格地执行运算符优先级的规则吗?它的规则是什么?答:逻辑运算符不按照规定的优先级计算。在逻辑表达式的求值过程中,如果从“&&”或“”左边的运算对象部分已经能够确定整个逻辑表达式的值,则不再求右边运算对象的值,这样做提高了运算速度。具体地说:若“&&”的左运算对象值为0,则不再对右运算对象求值,因整个式子的结果必定为0。若“”的左运算对象值为非0,则不再对右运算对象求值,因整个式子的结果必定为1。以上所说的这种运算的规则是C对逻辑运算的特殊处理规则。它严格地执行从左到右运算的规则,不受运算符优先级所影响。【习题2.9】字符常量和字符串常量有什么区别?答:字符常量和字符串常量的区别主要有两点: 从形式上看,字符常量使用单引号,而字符串常量使用双引号。 从内部存储来看,编译程序在每个字符串的尾部自动加上了一个空字符NULL(即0)作为字符串的结束标志,而字符常量则不存在这种情况。 【习题2.10】将下面语句组进行简写。int i; int j;x=2; y=2;x=x+y;int x,y; x=y-(y/10)*10;int x; x=x+1;y=x; -x;对应的简写语句分别为:(1)int i,j;(2)x=y=2;(3)x+=y;(4)int x,y; x=y%10;(5)int x; x+; 或 x+=1; 或 +x;(6)y=x-;【习题2.11】写出下面程序运行后的结果。程序运行结果:1程序运行结果:8,10程序运行结果:y=5.程序运行结果:b,3.,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、C 2、D 3、C 4、C 5、B【习题3.2】略【习题3.3】下面哪些语句是合法的?(1) if(a=b)printf(Hello);(2) if(a=b)printf(Hello)(3) if(a=b) printf(Hello) else printf(Goodbye);(4) if a=b printf(Hello);答:(1)合法的,其余的不合法【习题3.4】读程序写结果。(1)运行结果:A=58B=58C=58(2)运行结果:20,0(3)运行结果:1(4)运行结果:5 3 4(5)运行结果:1 3 2(6)运行结果:-4(7)运行结果:2 1(8)运行结果:435(9)运行结果:passwarn【习题3.5】有如下if条件语句:if(a<b)if(c<d)x=1;else if(a<c)if(b<d)x=2;else x=3;else if(c<d)x=4;else x=5;试按缩进对齐的格式将以上语句改写为结构更清晰的等效if语句,并在每个条件表达式之后用逻辑表达式注释所满足的条件。改写结果如下:if(a<b)if(c<d)x=1;else if(a<c)if(b<d)x=2;else x=3;else if(c<d)x=4;else x=5;【习题3.6】有如下两个程序段:(1) if(a<b) (2) if(a<b) if(c=d)x=1; if(c=d) x=1; else x=2; else x=2; 它们所表示的逻辑关系是下列所示关系中的哪一个? 1 a<b且c=d 1 a<b且c=d x= x=2 ab且cd 2 a<b且cd 1 a<b且c=d 1 a<b且c=d x= x=2 ab 2 cd答: (1)表示的逻辑关系是. (2)表示的逻辑关系是.【习题3.7】编写程序,从键盘输入年份year(4位十进制数),判断其是否为闰年。闰年的条件是能被4整除但不能被100整除,或者能被400整除。#include<stdio.h>void main() int year; scanf(“%d”,&year); if(year%400=0|year%4=0&&year%100!=0) printf(“%d年是闰年。n”,year); else printf(“%d年不是闰年。n”,year);【习题3.8】设计一个程序,从键盘输入3个整数,按由小到大的顺序输出。#include<stdio.h>void main() int x,y,z,t; scanf("%d,%d,%d",&x,&y,&z);if(x>y) t=x; x=y; y=t; /*交换x,y的值*/ if(x>z) t=z; z=x; x=t; /*交换x,z的值*/ if(y>z) t=y; y=z; z=t; /*交换z,y的值*/ printf("small to big: %d %d %dn",x,y,z); 【习题3.9】编写程序,计算下面的函数。 (0<x<1) y= |x|+2 (3x<4) sin(x2) (当x取其他值时)程序如下:#include<stdio.h>#include<match.h>void main()int x , y;printf("please enter a number xn");scanf("%d",&x);if(x>0&&x<1)y=exp(sqrt(x)-1);else if(x>=3&&x<=4) y=fabs(x)+2;else y=sin(x*x); printf("x=%.1f,y= %.2fn",x,y);【习题3.10】编程序计算下面的分段函数程序如下:#include <stdio.h>void main() int x,y; scanf("%d",&x); if(x<1) y=-1; else if(x>=1&&x<=10) y=2*x+1; else y=3*x+2; printf("%d",y);【习题3.11】输入一个整数m,判断它能否被3、13、17整除,如果能被这3个数之一整除,则输入它能被整除的信息,否则输出m不能被3、13、17整除的信息。试编写该程序。#include <stdio.h>void main() int m; scanf("%d",&m); if(m%3=0|m%13=0|m%17=0) printf("%d能被整除!",m); else printf("%d不能被整除!",m);【习题3.12】若一个学生是某校的学生,且是男生,则输出“male”;若是女生,则输出“female”;若不是某校的学生,则输出“No”。试编写该程序并画出流程图。程序如下:#include<stdio.h>void main()int hust = 1;int s;char sex ;printf("please enter the student's school and sexn");scanf("%d,%c",&s,&sex);if( s = hust )if(sex = 'M')printf("Malen");else printf("Femalen");elseprintf("Non");【习题3.13】某产品的国内销售价,80箱以下,每箱350元,超过80箱,超过部分每箱优惠20元;国外销售价,1000箱以下,每箱900元,超过1000箱,超过部分每箱优惠15元。试编写计算销售额的程序。程序如下:#include <stdio.h>void main( ) float money; int national, count; printf("Input national or external:"); scanf("%d",&national); printf("Input count of product:"); scanf("%d",&count); if (national) if(count<=80) money=count*350.0; else money=count*350.0- (count-80)*20.0; else if (count<=1000) money=count*900.0; else money=count*900.0-(count-1000)*15.0; printf("tatal=%f",money); 【习题3.14】电文加密算法:将字母A变成字母G,a变成g,B变成H,b变成h,以此类推,并且U变成A,V变成B等。从键盘输入一个电文字符,输出其相应的密码。程序如下:#include <stdio.h>void main() char c; c=getchar(); if(c>='a'&&c<'u'| c>='A'&&c<'U') c+=6; else if(c>='u'&&c<='z'| c>='U'&&c<='Z') c-=20; else printf(“Input error!”); putchar(c);【习题3.15】参见实践教程P28第四章 循环结构程序设计【习题4.1】分析下面程序的结果。(1)程序运行结果:10 (2)程序运行结果:k=12(3)程序运行结果:*#i=6(4)程序运行结果:0(5)程序运行结果:略(6)程序运行结果:11,12(7)程序运行结果:4【习题4.2】分别用三种循环控制语句编写程序,求下面和式的值。程序如下:方法一:利用for循环实现#include <stdio.h>void main() int s=0,i; for(i=1;i<=100;i+) s+=i; printf("s=%dn",s); 方法二:利用while循环实现#include <stdio.h>void main() int s=0,i=1; while(i<=100) s+=i;i+; printf("s=%dn",s); 方法三:利用do-while循环实现#include <stdio.h>void main() int s=0,i=1; do s+=i;i+;while(i<=100); printf("s=%dn",s); 【习题4.3】编程把100200之间的能被20整除的数输出。程序如下:#include <stdio.h> void main( ) int n; for(n=100;n<=200;n+) if(n%20!=0) continue; printf("%5d",n);【习题4.4】假设全班有30个学生,编写一个程序,连续输入30个学生的计算机考试成绩,并计算出全班学生的计算机平均成绩。程序如下:#include <stdio.h>void main( ) float sum=0.0,ave=0.0,score;int i; for(i=0;i<30;i+) scanf("%fn",&score);sum+=score;ave=sum/i;printf("Average is %fn",sum);ave; 【习题4.5】编程求1!+3!+5!+7!+19!的值。程序如下:#include <stdio.h>void main( ) float sum=0.0;int i,j=1; for(i=1;i<20;i+) j*=i;if(i%2=0) continue;sum+=j;printf("sum=%en",sum); 【习题4.6】将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环。程序如下:#include <stdio.h>void main() int a,b,t; scanf("%d,%d",&a,&b); while(a!=b) if(a>b) t=a;a=b;b=t;printf("%d,%dn",a,b); scanf("%d,%d",&a,&b); 【习题4.7】输入n个数,求其最大数、最小数和平均值。程序如下:#include <stdio.h>void main( )int n,i,max,min,a;float s;scanf("%d,%d",&n,&a);s=max=min=a;for(i=1;i<n;i+) scanf("%d",&a); s+=a; if(max<a) max=a; if(min>a) min=a; printf("Max=%d,Min=%d,avg=%f",max,min,s/n);【习题4.8】已知鸡兔共有30只,脚共有90只,编程计算鸡兔各有多少只。程序如下:#include <stdio.h>void main() int x,y;for(x=0;x<=30;x+) y=30-x;if(2*x+y*4)=90)printf("%d,%dn",x,y);【习题4.9】求算式xyz+yzz=678中的x、y、z的值(其中xyz和yzz分别表示一个三位数)。程序如下:#include <stdio.h>void main( )int x,y,z,i,result=678;for( x=1;x<10;x+ ) for(y=1;y<10;y+) for(z=0;z<10;z+) i=100*x+10*y+z+100*y+10*z+z; if (i=result) printf("x=%d,y=%d,z=%dn",x,y,z); 【习题4.10】使用嵌套循环输出下列图形:* * *程序如下:#include <stdio.h>void main() int i,j;for(i=0;i<=3;i+) for(j=0;j<=5;j+) if(i=0|j=0|i=3|j=5) printf("*"); else printf(" "); printf("n"); 【习题4.11】编程统计用数字09可以组成多少个没有重复数字的3位偶数。程序如下:#include<stdio.h>void main( ) int i,j,k,n=0,l=0; for(i=1;i<=9;i+) /*百位数字*/ for(k=0;k<=9;k+) /*十位数字*/ if(k!=i) for(j=0;j<=8;j+=2)/个位数字 if(j!=k&&j!=i)n+; printf("%4d",i*100+k*10+j); l+; if(l%10=0) /*10个数一行输出*/ printf("n"); printf("nn=%dn",n);【习题4.12】从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者。程序如下:#include <stdio.h>void main() int m=0,n=0; char c; while(c=getchar()!='n') if(c>'A'&&c<='Z')m+; if(c>='a'&&c<='z')n+; printf("m=%d,n=%d,max=%dn",m,n,m<n?n:m);【习题4.13】输出显示自然数1100之间的全部素数。程序如下:#include <stdio.h>#include <math.h>void main() int n,i,j,l=0; for(n=2;n<=100;n+) i=sqrt(n);for(j=2;j<=i;j+)if(!(n%j)break;if(j>=i+1)if(l<5) printf("%dt",n); l+;else printf("%dn",n); l=0;【习题4.14】一个数如果恰好等于它的因子之和,就把它称为“完数”。例如,28的因子为1、2、4、7、14,而28=1+2+4+7+14,因此28是“完数”。编程序找出10000以内的所有“完数”并输出其因子。程序如下:#include <stdio.h>void main() int m,s,i; for(m=2;m<10000;m+) s=0; for(i=1;i<m;i+) if(m%i)=0) s=s+i; if(s=m) printf("%d,its factors are",m);for(i=1;i<m;i+)if(m%i=0)printf("%d ",i);printf("n"); 【习题4.15】使用循环嵌套输出下列图形:* * * *程序如下:#include <stdio.h>void main( ) int i,j,k; for(i=0;i<=3;i+) /*i是外循环变量用于控制行数*/for(k=1;k<=i;k+) /*k是内循环变量用于控制每行的空格数*/printf(" ");for(j=0;j<=4;j+) /*j是内循环变量用于控制每行中星号的个数*/printf("*");printf("n"); 【习题4.16】假设x,y是整数,编程求xy的最后3位数,要求x、y从键盘输入。程序如下:#include<stdio.h>void main() int i,x,y; long last=1; printf("Input x and y:"); scanf("%d,%d",&x,&y); for(i=1;i<=y;i+) last=last*x%1000; printf("The last 3 digits:%ldn",last);【习题4.17】编程实现将从键盘输入的偶数写成两个素数之和。程序如下:#include <stdio.h>#include <math.h>void main() int a,b,c,d; scanf("%d",&a); for(b=3;b<=a/2;b+=2) for(c=2;c<=sqrt(b);c+) if(b%c=0) break; if(c>sqrt(b) d=a-b; else continue; for(c=2;c<=sqrt(d);c+) if(d%c=0) break; if(c>sqrt(d) printf("%d=%d+%dn",a,b,d); 【习题4.18】100匹马驮100担货,大马一匹驮担,中马一匹驮担,小马两匹驮担。试编写程序计算大、中、小马的数目。程序如下:#include<stdio.h>void main() int x,y,z,j=0; for(x=0; x<=33; x+) for(y=0; y<=(100-3*x)/2;y+) z=100-x-y; if( z%2=0 && 3*x+2*y+z/2=100) printf("(%d):x=%d,y=%d,z=%dn",+j,x,y,z); 第五章 数组【习题5.1】现有一实型一维数组A12,其各元素值在内存中排列的顺序为: 1.0,15.5,9.5,-23.0,8.4,66.5,7.1,22.0,54.5,-34.0,11.3,32.5 请按下列要求编写程序求答案。(1) 数组中元素值最小的数组元素。(2) 数组中元素值最大的数组元素。(3) 数组中某数组元素值等于另外两个数组元素值之和的等式。(4) 数组中某数组元素值等于另外两个数组元素值之差的等式。#include <stdio.h>void main()double A12=1.0,15.5,9.5,-23.0,8.4,66.5,7.1,22.0,54.5,-34.0,11.3,32.5;int i,j,k;double max,min;min=A0;for (i=0;i<12;i+)if (min>Ai) min=Ai;printf("min=%lfn",min);max=A0;for (i=0;i<12;i+)if (max<Ai) max=Ai;printf("max=%lfn",max);for (i=0;i<12;i+)for (j=0;j<12;j+)for (k=0;k<12;k+)if (i=j | j=k | k=i) continue;if (Ai+Aj=Ak)printf("%lf+%lf=%lf n",Ai,Aj,Ak);for (i=0;i<12;i+)for (j=0;j<12;j+)for (k=0;k<12;k+)if (i=j | j=k | k=i) continue;if (Ai-Aj=Ak)printf("%lf-%lf=%lf n",Ai,Aj,Ak);【习题5.2】现有一实型二维数组A43,其各元素值在内存中排列的顺序为:4.0,28.0,15.5,-9.5,-23.0,8.0,56.0,2.0,28.0,7.0,6.2,5.0请按下列要求写出各题的答案。(1)数组中元素值最小的数组元素。(2)数组中元素值最大的数组元素。(3)数组中某数组元素值等于另外两个数组元素值之积的等式。(4)数组中某数组元素值等于另外两个数组元素值之商的等式。程序如下:#include <stdio.h>void main()double A43=4.0,28.0,15.5,-9.5,-23.0, 8.0, 56.0, 2.0, 28.0,7.0,6.2,5.0; int i,j,k,g,n,m; double max,min; min=A00; for(i=0;i<4;i+) for(j=0;j<3;j+) if(min>Aij) min=Aij; printf("min=%lfn",min); max=A00; for(i=0;i<4;i+) for(j=0;j<3;j+) if(max<Aij) max=Aij; printf("max=%lfn",max);for(i=0;i<4;i+) for(j=0;j<3;j+) for(k=0;k<4;k+) for(g=0;g<3;g+) for(m=0;m<4;m+) for(n=0;n<3;n+) if(i=k|k=m|m=i)&&(j=g|g=n|n=j) continue; if(Aij*Akg=Amn) printf("%lf*%lf=%lfn",Aij,Akg,Amn); for(i=0;i<4;i+) for(j=0;j<3;j+) for(k=0;k<4;k+) for(g=0;g<3;g+) for(m=0;m<4;m+) for(n=0;n<3;n+) if(i=k|k=m|m=i)&&(j=g|g=n|n=j) continue; if(Aij/Akg=Amn) printf("%lf/%lf=%lfn",Aij,Akg,Am

    注意事项

    本文(C语言1-7章课后作业答案.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开