收藏 分销(赏)

长理C语言练习册答案.doc

上传人:仙人****88 文档编号:11398108 上传时间:2025-07-21 格式:DOC 页数:47 大小:266KB 下载积分:10 金币
下载 相关 举报
长理C语言练习册答案.doc_第1页
第1页 / 共47页
长理C语言练习册答案.doc_第2页
第2页 / 共47页


点击查看更多>>
资源描述
长理C语言练习册答案 第1章 C语言程序设计概述 一、选择题 题号 1 2 3 4 5 6 7 8 9 10 答案 A A B D C C D C D C 题号 11 12 13 14 15 16 17 18 19 20 答案 A D C B A C B A C C 二、填空题 1、 一 _ 、  主  、  主   2、 .C  、  .OBJ 、  .EXE  3、 “{”  、 “}” 、 变量说明 、 执行语句  4、 主函数  5、/* 、*/、 运行 三、编程题 1、(1) 解: #include “stdio.h” void main() { printf(“Programming Language\n”); } (2) 解: #include “stdio.h” void main() {printf("***************\n"); printf("\n"); printf(" Welcome \n"); printf("\n"); printf("***************\n");} 2、解 main() { int a,b,x,y,m,n; a=25;b=5; x=a+b; y=a-b; m=a*b; n=a/b; printf(“x=%d,y=%d,m=%d,n=%d\n”,x,y,m,n);} 第2章 C语言的基本数据类型与表达式 一、选择题 题号 1 2 3 4 5 6 7 8 9 10 答案 D C A D C B C B C A 题号 11 12 13 14 15 16 17 18 19 20 答案 D B D C C B C B D A 题号 21 22 23 24 25 26 27 28 29 30 答案 C C A A C C B D C C 题号 31 32 33 34 35 36 37 38 39 40 答案 C B B C A C A C A A 题号 41 42 43 44 45 答案 C B C D C 二、填空题 1、_ 十 、 八 、十六 2、int 、float、double 3、 3  4、 -16  5、  1   6、  2 7、 10  、 6    8、  9   9、 ‘f’  10、 (m/10%10)*100+m/100*10+m%10    11、3.500000 12、 1   13、 4   14、1.500000 、 6.700000 15、1 、 -2 、 1 、 4 三、程序分析题 1、  111   2、  4,3   3、 1    4、 11,19,30,1 5、 65,89   6、 a=%d,b=%d 第3章 C语言程序的控制结构 第1节 顺序结构程序设计 一、选择题 题号 1 2 3 4 5 6 7 8 9 10 答案 B C C C C B C D C D 题号 11 12 13 14 15 16 17 18 19 20 答案 B C B D A B D B C C 题号 21 22 23 24 25 26 27 28 29 答案 D B B D A C D B C 二、填空题 1、_a=5.0,4,c=3 2、 0 3、 b 、 b 、 b 4、 -14   5、未指明变量k的地址、 格式控制符与变量类型不匹配  6、 scanf(“%d%f%f%c%c”,&a,&b,&x,&c1,&c2);      3?6.5?12.6aA                   7、 A???B???<CR>    8、  10 15 10   9、 123 、 45.000000   10、 不确定值 11、261 12、16 13、 2,1 三、程序分析题 1、  4   、  5   2、   20      3、 无正确值   4、 x=98 y=765.000000 z=4321.000000 5、  879   6、 10 , A , 10 四、编程题 1、解 #include “stdio.h” main() {float c,f; printf("请输入一个华氏温度\n"); scanf("%f",&f); c=5.0/9.0*(f-32); printf("摄氏温度为:%6.2f\n",c); } 2、解 #include “stdio.h” main() {int a,b,c,x; printf("请输入一个三位整数:"); scanf("%d",&x); a=x/100; b=x/10%10; c=x%10; printf("输出结果:%d%d%d\n",c,b,a); } 3、#include <stdio.h> main() { int hour,min,tran; printf("Enter time:"); scanf("%d%d",&hour,&min); printf("before:%dh%dmm\n",hour,min); tran=hour*60+min; printf("after:%dmin\n",tran); } 4、#include <stdio.h> main() { int a,n,i; float p,result=1; printf("Input a,n,p:"); scanf("%d,%d,%f",&a,&n,&p); for(i=1;i<=n;i++) result=result*(1+p); //求(1+p)的n次方 result=a*result-a; printf("\n到期利息为:%f\n",result); } 5、#include <stdio.h> #define PI 3.14159 main() { float r,h,l,s,v; printf("Input r,h:"); scanf("%f,%f",&r,&h); l=2*PI*r; s=PI*r*r; v=PI*r*r*h; printf("r=%f,h=%f\nl=%f,s=%f,v=%f\n",r,h,l,s,v); } 6、#include<stdio.h> void main() { int a,b; long c; scanf("%d%d",&a,&b); c=(b%10)*1000+(b/10)*100+(a%10)*10+a/10; /*将a数的十位和个位数依次在c数个位和十位上, b数的十位和个位数依次放在c数的百位和千位*/ printf("The result is:%ld\n",c); } 第2节 选择结构程序设计 一、 选择题 题号 1 2 3 4 5 6 7 8 9 10 答案 D B D C C B C D B C A 题号 11 12 13 14 15 16 17 18 19 20 答案 B A B C B B C B B C A 题号 21 22 23 24 25 26 27 28 答案 D B B C C C A A 二、填空题 1、&& || ! 2、 x>2&&x<3||x<-10 3、y%2==1 4、x<z||y<z 5、((x<0&&(y<0))||((x<0)&&(z<0))||((y<0)&&(z<0)) 6、1  7、  0  8、1 9、  0  10、  0 11、0 12、1 13、  0   14、[1] __ y<z ___ [2] ___ x<z ___[3]  x<y     15.[1] __ c=c+5____[2] ____ c=c-21_ 16、[1] __ u,v ____[2] __ x>y _____[3]  u>z   17、[1] ____ y%4==0&&y%100!=0 _[2] __ f=0____ 18、[1] gz<850 [2] (gz>=850)&&(gz<1500) [3] (gz>=1500)&&(gz<2000) [4] rfgz=gz-gz*0.015 [5] rfgz=gz-gz*0.0200 19、[1] __10_____[2] ____9 ___[3]  11    三、程序分析题 1、 1,1 2、 1,0 3、585858 4、your¥3.0yuan/xiaoshi 5、2nd class postage is 14p 6、 F 7、 4:05 PM 8、 b=2 9、 0.600000 10、a=2,b=1 11、 passwarm 四、编程题 1、 #include “stdio.h” void main() {int n; printf(“Input a number:\n”); scanf(“%d”,&n); if((n%5==0)&&( n%7==0)) printf(“yes\n”); else printf(“no\n”); } 2、 #include “stdio.h” void main() {int a,b; printf(“Input two number:\n”); scanf(“%d%d”,&a,&b); if(a*a+b*b>100) printf(“%d\n”,(a*a+b*b)/100); else printf(“%d\n”,a+b); } 3、 main() { float x; int y; printf("\n input x:"); scanf("%f",&x); switch(x<0) {case 1:y=-1;break; case 0:switch(x==0) {case 1:y=0;break; default:y=1; } } printf("\n y=%d",y); } 4、#include <stdio.h> #include <math.h> main() { float x,y; printf("Input x:"); scanf("%f",&x); if(x<0) y=x*x*x; else if(x==0) y=0; else y=sqrt(x); printf("x=%f,y=%f\n",x,y); } 5、#include <stdio.h> main() { int n,n1,n2,n3,n4,n5,nn; printf("Enter n(n>=0 && n<99999):"); scanf("%d",&n); if(n>=10000&&n<=99999) { printf("n是5位数\n"); n1=n%10; n2=(n/10)%10; n3=(n/100)%10; n4=(n/1000)%10; n5=n/10000; printf("n每一位上的数字是(从高到低)%d,%d,%d,%d,%d\n",n5,n4,n3,n2,n1); nn=n1*10000+n2*1000+n3*100+n4*10+n5; printf("n的逆序数为%d\n",nn); } if(n>=1000&&n<=9999) { printf("n是4位数\n"); n1=n%10; n2=(n/10)%10; n3=(n/100)%10; n4=n/1000; printf("n每一位上的数字是(从高到低)%d,%d,%d,%d\n",n4,n3,n2,n1); nn=n1*1000+n2*100+n3*10+n4; printf("n的逆序数为%d\n",nn); } if(n>=100&&n<=999) { printf("n是3位数\n"); n1=n%10; n2=(n/10)%10; n3=n/100; printf("n每一位上的数字是(从高到低)%d,%d,%d\n",n3,n2,n1); nn=n1*100+n2*10+n3; printf("n的逆序数为%d\n",nn); } if(n>=10&&n<=99) { printf("n是2位数\n"); n1=n%10; n2=n/10; printf("n每一位上的数字是(从高到低)%d,%d\n",n2,n1); nn=n1*10+n2; printf("n的逆序数为%d\n",nn); } if(n>=0&&n<=9) { printf("n是1位数\n"); printf("n每一位上的数字是(从高到低)%d\n",n); nn=n; printf("n的逆序数为%d\n",nn); } } 6、#include <stdio.h> main() { float i,r; printf("Input i(万元):"); scanf("%f",&i); if(i<=10) r=i*0.1; else if(i<=20) r=10*0.1+(i-10)*0.075; else if(i<=40) r=10*0.1+10*0.075+(i-20)*0.05; else if(i<=60) r=10*0.1+10*0.075+20*0.05+(i-40)*0.03; else if(i<=100) r=10*0.1+10*0.075+20*0.05+20*0.03+(i-60)*0.015; else r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(i-100)*0.01; printf("i=%f,r=%f\n",i,r); } 7、#include <stdio.h> #include <math.h> void main() { double s=0.0; int i,n; scanf("%d",&n); for(i=0; i<n;i++) if(i%5==0 && i%11==0)s=s+i; s=sqrt(s); printf("s=%f\n",s); } 8、#include <stdio.h> main() { int n,g,sh; printf("Enter a two-digit number:"); scanf("%d",&n); printf("You entered the number "); if(n>=10 && n<=19) switch(n) { case 10:printf("ten\n");break; case 11: printf(" eleven\n");break; case 12:printf("twelve\n");break; case 13:printf("thirteen\n");break; case 14:printf("fourteen\n");break; case 15:printf("fifteen\n");break; case 16:printf("sixteen\n");break; case 17:printf("seventeen\n");break; case 18:printf("eighteen\n");break; case 19:printf("nineteen\n");break; } else { g=n%10; sh=n/10; switch(sh) { case 2: printf("twenty");break; case 3:printf("thirty");break; case 4:printf("fourty");break; case 5:printf("fifty");break; case 6:printf("sixty");break; case 7:printf("seventy");break; case 8:printf("eighty");break; case 9:printf("ninety");break; } switch(g) { case 0:printf("\n");break; case 1:printf("-one\n");break; case 2:printf("-two\n");break; case 3:printf("-three\n");break; case 4:printf("-four\n");break; case 5:printf("-five\n");break; case 6:printf("-six\n");break; case 7:printf("-seven\n");break; case 8:printf("-eight\n");break; case 9:printf("-nine\n");break; } } } 第3节 循环结构程序设计 一、选择题 题号 1 2 3 4 5 6 7 8 9 10 答案 B A B B A B C D B B 题号 11 12 13 14 15 16 17 18 19 20 答案 A B A A C C C D C A 题号 21 22 23 24 25 26 27 28 29 30 答案 A B C D B D B C A D 题号 31 32 33 34 答案 B B B B 二、填空题 1.[1] ____ x>=0_______ [2] ____ x<amin ___________ 2.[1] _____ c!=`\n`__ [2] c>=`0`&&c<=`9`__ 3.[1] ______ x1 ______ [2] ______ x1/2-2_______ 4.[1] __ r=m;m=n;n=r;[2] ____ m%n ________ _____ 5.[1] __ i%3==2&&i%5==3&&i%7==2 _[2] ____ j%5==0____ 6.[1] _____ n%10 ______ [2] _____ max=t ____ 7. [1] _______ i<x ______ 8.[1] ________2*x+y*4==90____ 9.[1] ___ t=t*i _________ [2] ______ t=-t/i _______ 10.[1] ____ m=n __ [2] _____ m ___ [3] ____ m=m/10______ 11.[1] ____ m=0,i=1_____ [2] ___ m=m+i _________ 12.[1] _____ k ____ [2] ___ k/10_____ 13.[1] _____ break ___ [2] ____ i= =11或i>=11__________ 14.[1] _____ i<=9 ____ [2] ______ j%3!=0____ 15、[1]b=i+1 16、[1]t>eps [2] 2.0*s 17、[1] (ch=getchar()) [2] front!=' ' [3] ch 三、程序分析题 1、17 2、668977 3、011122 4、s=3 5、 3,1,-1,3,1,-1,3,1,-1 四、编程题 1、#include “stdio.h” void main() { int k,s=0; scanf("%d",&k); while(k>0) { if(k%3==0&&k%7!=0) s++ ; scanf("%d",&k);} printf("s=%d\n",s); } 2、#include “stdio.h” void main( ) { int sum,n,i,s=0; for(n=200;n<=500;n++) { sum=0; for(i=1;i<=n/2;i++) if(n%i==0) sum+=i; if(sum= =n) s=s+n; } printf(“s=%d\n”,s); } 3、 #include "stdio.h" void main() { int n,x=1; for(n=9;n>=1;n--) x=2*(x+1); printf("n=%d",x); } 4、 #include "stdio.h" void main() { int x,y,z; for(x=1;x<=19;x++) for(y=1;y<=33;y++) for(z=1;z<=99;z++) if((x+y+z==100)&&(5*x+3*y+z/3==100)) printf("X=%d,Y=%d,Z=%d\n",x,y,z); } 5. main() {int i,n=0; for(i=100;i<=600;i++) {a=i/100; b=i%100/10; c=i%10; if((b+c)%10==a) n++; } printf(“n=%d\n”,n);} 6、#include <stdio.h> void main() { int i,sum=0,a,b,c; for(i=123;i<433;i++) { a=i/100; b=i/10%10; c=i%10; if(a!=b&&a!=c&&b!=c&&(a>0)&&(a<5)&&b>0&&b<5&&c>0&&c<5) {sum++; printf("%d ",i);}} printf("\n%d\n",sum); } 7、输出9*9口诀表。 #include <stdio.h> main() { int i,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) printf("%4d",i*j); printf("\n"); } } 8、1) #include <stdio.h> void main() { double s=0.0; int i,n; scanf("%d",&n); for(i=1;i<=n;i++) s=s+1.0/(2*i-1)+1.0/(2*i); printf("S=%f\n",s); } 2) #include <stdio.h> #include <math.h> void main() { double s=1.0; int i,m; scanf("%d",&m); for(i=1;i<=m;i++) s=s-log((double)i); s=s*s; printf("S=%f\n",s); } 3) #include <stdio.h> void main() { double d1=1.0,d2=1.0,s=1.0,t,x; int i,f=-1,n; scanf("%d%lf",&n,&x); for(i=1;i<=n;i++) { d1=d1*x; d2=d2*i; t=f*d1/d2; s=s+t; f=-f; } printf("S=%f\n",s); } 9、#include <stdio.h> void main() { int t; int a=1,b=1,c=0; /*a代表第n-2项,b代表第n-1项,c代表第n项*/ scanf("%d",&t) ; do /*如果求得的数c比指定比较的数小,则计算下一个Fibonacci数,对a,b重新置数*/ { c=a+b; a=b; b=c; } while (c<t); /*如果求得的数c比指定比较的数大时,退出循环*/ c=a; /*此时数c的前一个Fibonacci数为小于t的最大的数*/ printf("t=%d, f=%d\n",t, c); } 10、#include <stdio.h> void main() { int i,n; long s=0; printf("Input n:"); scanf("%d", &n); for(i=2;i<=n-1;i++) /*从2~n-1中找n的所有因子*/ if(n%i==0) s+=i*i; /*将所有因子求平方相加*/ printf("s=%ld\n", s); /*输出平方和*/ } 11、打印如下图案 #include <stdio.h> main() { int i,j; for(i=1;i<=4;i++) { for(j=0;j<i;j++) printf(" "); printf("******"); printf("\n"); } printf("\n"); for(i=7;i>0;i=i-2) { for(j=1;j<=i;j++) printf("*"); printf("\n"); } printf("\n"); for(i=1;i<=4;i++) { for(j=4-i;j>0;j--) printf(" "); for(j=1;j<=i;j++) printf("* "); printf("\n"); } } 第4章 函数及预处理命令 一、选择题 题号 1 2 3 4 5 6 7 8 9 10 答案 A D B B D D B B A C 题号 11 12 13 14 15 16 17 18 19 20 答案 D B C A D B D A D B 题号 21 22 23 24 25 26 27 28 29 30 答案 C D D D D B B C B B 题号 31 32 33 34 35 36 答案 C A B B C D 二、填空题 1、[1]_ break [2] getchar( )__ 2、[1]_(int)((value*10+5)/10) [2] ponse= =val _ 3、[1] j=1 [2] y>=1 [3] y- - 4、[1] y>x&&y>z [2] j%x1= =0&&j%x2= =0&&j%x3= =0 _____ 5、[1]_ > [2] b!=0 ____ 6、[1]_ age(n-1)+2 [2] age(5)____ 7、[1]宏定义 [2] 文件包含 8、880 9、12 10、[1] #inlude "a:\myfile.txt" 11、[1] #include "math.h" 12、[1]k/10 [2]a2*10 13、[1]high=mid-1 [2]low=mid+1 14、[1]void add(float a,float b) [2]float add(float a,float b) 15、[1]p=p+1 [2]a[i]=a[i+1] 16、[1]i<10 [2]array[i] [3]average(score) 三、程序分析题 x=8,y=5 x=8,y=6 1、 无定值 2、 14 3、4 4、 10 5、x=8,y=5 6、8  4 X=8,y=6 7、6 15 15 1、 无定值 2、 14 3、 4、 5、4 6、10 四、编程题 1. isprime(int a) {int i; for(i=2;i<sqrt((double)a);i++) if(a%i==0) return 0; return 1; } 2. #include <stdio.h> main() { int fun(int n); int n; printf("Enter a integer n:"); scanf("%d",&n); if(fun(n)) printf("%d 是奇数\n",n); else printf("%d 是偶数\n",n); } int fun(int n) { if(n%2) return 1; else return 0; } 3. #include <stdio.h> #include <math.h> main() { int fun(int a,int b); int a=1,b=-5,c; c=fun(a,b); printf("c=%d\n",c); } int fun(int a,int b) { int c; c=abs(a-b); return c; } 4. #include<stdio.h>  int fun(); /  main() { int c; c=fun(); printf("%d\n",c); } int fun() {int i, j, count=0; for(i=0; i<20 ; i++) { j=i*10+6; if( j % 3 != 0 ) continue; printf("%d",j); count++; } 5. #include<stdio.h> #include <math.h> float func(float a) { float y; y=a*a*a; return y; } main() { float a,y; scanf("%f",&a); y=fabs(func(a)); printf("y=%f\n",y); } 6、#include <stdio.h> main() { float fact(int n); int n,i; float y=0; printf("intput an integer number:"); scanf("%d",&n); if(n%2) { for(i=1;i<=n;i+=2) y=y+fact(i); printf("1!+3!+...+%d!=%.0f\n",n,y); } else
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服