1、长理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) 解: #
2、include “stdio.h” void main() { printf(“Programming Language\n”); } (2) 解: #include “stdio.h” void main() {printf("***************\n"); printf("\n"); printf(" Welcome \n"); printf("\n"); p
3、rintf("***************\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
4、 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)*1
5、00+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
6、 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???
7、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
8、);
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
9、);
scanf("%d%d",&hour,&min);
printf("before:%dh%dmm\n",hour,min);
tran=hour*60+min;
printf("after:%dmin\n",tran);
}
4、#include
10、1+p)的n次方
result=a*result-a;
printf("\n到期利息为:%f\n",result);
}
5、#include 11、io.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 12、 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 13、 [2] ___ x 14、] __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 “stdi 15、o.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) 16、
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 17、loat 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 18、 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%1 19、0;
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,% 20、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 21、每一位上的数字是(从高到低)%d\n",n);
nn=n;
printf("n的逆序数为%d\n",nn);
}
}
6、#include 22、 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 23、 i,n;
scanf("%d",&n);
for(i=0; i 24、
{ 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;
25、 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:p 26、rintf("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;
ca 27、se 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 28、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 29、
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 30、 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> 31、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== 32、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) su 33、m+=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;
34、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/ 35、10;
c=i%10;
if((b+c)%10==a)
n++; }
printf(“n=%d\n”,n);}
6、#include 36、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 37、
}
8、1) #include 38、1;i<=m;i++)
s=s-log((double)i);
s=s*s;
printf("S=%f\n",s);
}
3) #include 39、 printf("S=%f\n",s);
}
9、#include 40、 a=b;
b=c;
}
while (c 41、n-1;i++) /*从2~n-1中找n的所有因子*/
if(n%i==0)
s+=i*i; /*将所有因子求平方相加*/
printf("s=%ld\n", s); /*输出平方和*/
}
11、打印如下图案
#include 42、
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 43、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] 44、 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 45、[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 46、
7、6 15 15
1、 无定值 2、 14
3、 4、
5、4 6、10
四、编程题
1. isprime(int a)
{int i;
for(i=2;i 47、rn 1;
}
2.
#include 48、include 49、
{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 50、
y=fabs(func(a));
printf("y=%f\n",y);
}
6、#include






