C语言程序设计答案(第三版)杜友福版

C语言程序设计答案(第三版)杜友福版
C语言程序设计答案(第三版)杜友福版

C语言程序设计(第三版)习题答案

习题一

一、名词解释

(1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)高级语言P2 (5)汇编程序P3 (6)编译程序P4 (7)算法P5 (8)结构化程序设计方法P10

二、简答题

1. 设计程序时应遵循哪些基本原则?P4

答:正确性、可靠性、简明性、有效性、可维护性、可移植性。

2. 算法具有哪些特点?

答:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。

3. 算法的表示形式有哪几种?

答:自然语言、伪代码、传统流程图、N-S流程图、计算机语言。

4. 结构化程序设计方法的三种基本结构是什么?

答:顺序结构、选择结构和循环结构。

5. 传统流程图与N-S流程图最大的区别是什么?

答:N-S流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。

三、用传统流程图或N-S流程图表示求解以下问题的算法。

1. 从键盘输入10个整数,求出其中的最小数并输出。

2. 求1+2+3+…+100的值。

3. 求10~50的所有素数之和。

4. 求下列分段函数的值。

四、请参照本章例题,编写一个简单的C程序,输出以下三行信息。

**************************

Yangtze University

**************************

#include

void main()

{

printf("**************************\n");

printf(" Yangtze University\n");

printf("**************************\n");

}

习题二

一、选择题

1~10:B C D C D D B C A A

11~20: D A C D B D B A C D

二、填空题

1.字母L 或字母l

2.%c(或字符) 、%d(或整数)

3.在程序运行过程中,其值可以在一定的范围内变化的量

4.'\0'

5.小数形式、指数形式

6.关键字、预定义标识符、用户标识符

7.字母、数字、下划线、数字

8.18

9. 2 、 1 、30

10.双精度实数或double

11.赋值、逗号、20 、20 、20 、4

12. 4 、 4

习题三

一、选择题

1~10: B C C B C C C D C C

注:第4题答案D为:10 22↙

33↙

二、填空题

1. printf 、scanf

2. h

3. "%5d"

4. '\0'

5. e 、 E

6. 6

7. s 、 c

8. *

9. - 、+

10. i

三、编程题

1. 编写程序,从键盘输入一个以秒为单位的时间数,将其换算成几小时几分几秒,然后进行输出。例如输入的时间为4258秒,则输出结果为:1小时10分58秒。

#include

void main()

{

int x,h,m,s;

scanf("%d",&x);

h=x/3600; m=x%3600/60; s=x%60;

printf("%ds=%d:%d:%d!\n",x,h,m,s);

}

2. 编写程序,读入三个整数给变量a、b、c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中原来的值给a。

#include

void main()

{

int a,b,c,t;

printf("input a b c:");

scanf("%d%d%d",&a,&b,&c);

printf("a=%d,b=%d,c=%d\n",a,b,c);

t=a;a=c;c=b;b=t;

printf("a=%d,b=%d,c=%d\n",a,b,c);

}

习题四

一、填空题

1. 1 、0

2.!%+<= != && || =

3.x==0

4.0 、 2

5.20 、0 、0

二、选择题

1~7:D D C A D D C

三、程序阅读题

1. 595959

2. 0.500000

3. 1

4. 2

5. 6

6.a=2,b=1

7.pass

warn

8. 1

四、编程题

1. 设a为整型变量且其值大于零,请将以下if语句改写成switch语句。

if(a<60) m=1;

else if(a<70) m=2;

else if(a<80) m=3;

else if(a<90) m=4;

else m=5;

方法1

#include

void main()

{

int a,m;

scanf("%d",&a);

switch(a/10)

{

case 0:case 1:case 2:case 3:

case 4:case 5:m=1;break;

case 6:m=2;break;

case 7:m=3;break;

case 8:m=4;break;

default:m=5;break;

}

printf("m=%d\n",m);

}

方法2

#include

void main()

{

int a,m;

scanf("%d",&a);

m=0;

switch(a/10)

{

default:m++;

case 8:m++;

case 7:m++;

case 6:m++;

case 5:case 4:case 3:case 2:

case 1:case 0:m++;

}

printf("m=%d\n",m);

}

2. 编写程序,从键盘输入一个整数,打印出它是奇数还是偶数。

#include

void main()

{

int a;

scanf("%d",&a);

if(a%2==1)

printf("%d is a odd number!\n",a);

else

printf("%d is a even number!\n",a);

}

3. 编写程序,从键盘输入一个字符,判别它是否是小写字母,如果是,将它转换为大写字母;如果不是,不转换。然后输出最后得到的字符。

#include

void main()

{

char ch;

scanf("%c",&ch);

if(ch>='a' && ch<='z')

ch=ch-32;

printf("%c\n",ch);

}

4. 编写程序,从键盘输入一个不多于4位的正整数,打印出它是几位数。

#include

void main()

{

int x,n;

scanf("%d",&x);

if(x>1000) n=4;

else if(x>100) n=3;

else if(x>10) n=2;

else n=1;

printf("%d\n",n);

}

5. 当一个人的月收入在3500元以下时免税;月收入在3500元到5000元之间时,超过3500的部分纳税3%;月收入在5000元以上时,3500至5000之间的部分纳税3%,超过5000的部分纳税10%。编写程序从键盘输入月收入income,计算并输出应交税款tax。

#include

void main()

{

int income;

float tax;

scanf("%d",&income);

if(income<=3500) tax=0;

else if(income<=5000) tax=0.03*(income-3500);

else tax=0.03*(5000-3500)+0.10*(income-5000);

printf("tax=%f\n",tax);

}

6. 回文是指正读和反读都一样的数或字符串。例如:12321、55455、35553等都是回文。请编写一个程序,从键盘上读取一个包含五位数字的长整数,并判断它是否是回文。(提示:用除法运算和求余运算把一个数的个位、十位、百位、千位等分别分离出来。)

#include

void main()

{

long x;

int a,b,d,e;

scanf("%ld",&x);

a=x/10000;

b=x%10000/1000;

d=x%100/10;

e=x%10;

if(a==e && b==d)

printf("%ld is huiwen!\n",x);

else

printf("%ld is not huiwen!\n",x);

}

习题五

一、阅读题

1. 8

2. 4321

3. X

4. -1

5. 23

6. 52

7. 5

8. 3

二、填空题

1.18

2. 2

3.b=i+1

4.17

5.i<=9 、j%3!=0

6.d=1.0 、k=k+1 、k<=10

三、选择题

1~8:A D D A B D D A

四、编程题

1. 编写程序,打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字的立方之和等于该数本身。例如,407是一个“水仙花数”,因为407=43+03+73。(注:若

将题意改为打印出最大的或最小的“水仙花数”,则应将循环语句作如何调整?)。

#include

void main()

{

int a,b,c,k;

for(k=100;k<=999;k++)

//求最大的“水仙花数”改用:for(k=999;k>=100;k--) {

a=k/100;b=k/10%10;c=k%10;

if(k==a*a*a+b*b*b+c*c*c)

{

printf("%5d",k);

//求最大或最小”水仙花数”时增加一个语句:break;

}

}

printf("\n");

}

2. 编写程序,输出1980~2880年所有闰年的年号。每输出5个年号换一行。

#include

void main()

{

int k,flag,n=0;

for(k=1980;k<=2880;k++)

{

flag=(k%4==0)&&(k%100!=0)||(k%400==0);

if(flag)

{

printf("%5d",k);

n++;

if(n%10==0)

printf("\n");

}

}

printf("\n");

}

3. 编写程序,求1-3+5-7+…-99+101的值。

#include

void main()

{

int n,t=1,s=1;

for(n=3;n<=101;n+=2)

{ t=-t; s=s+t*n; }

printf("s=%d\n",s);

}

4. 编写程序,计算并输出下列级数的前n项之和Sn。n的值从键盘输入。

#include

void main()

{

int fz,fm,n,i;

float s,t;

fz=2;fm=1;s=0;

scanf("%d",&n);

for(i=1;i<=n;i++)

{

t=(1.0*fz)/fm;

s=s+t;

fz=fz+fm;

fm=fz-fm;

}

printf("s=%f\n",s);

}

5.编写程序,求e的值e=1+1/1!+1/2!+1/3!+1/4!+…+1/n!

#include

void main()

{

int n,i;

float t,fm=1,e=1;

scanf("%d",&n);

for(i=1;i<=n;i++)

{ fm=fm*i; t=1.0/fm; e=e+t; }

printf("n=%d,e=%f\n",n,e);

}

6. 已知某球从80米高度自由落下,落地后反复弹起,每次弹起的高度都是上次高度的一半。求此球8次落地所经过的总路程。

#include

void main()

{

int n;

float s=80,h=s/2;

for(n=2;n<=8;n++)

{

s=s+2*h;

h=h/2;

}

printf("s=%f\n",s);

}

7. 用牛顿迭代法求高次方程f(x)=2x3-4x2+5x-18=0的根(约为2.466)。

注:牛顿迭代公式为:x2=x1-f(x1)/f’(x1),其中f’(x1)为导函数在点x1的值。

#include

#include

void main()

{

float x,f,f1;

x=8; // x的初值可为任意值

do

{ f=2*x*x*x-4*x*x+5*x-18; f1=6*x*x-8*x+5; x=x-f/f1;

}while(fabs(f)>0.00001);

printf("x=%f,f=%f\n",x,f);

}

8. 有这样一些真分数:其分子和分母都是两位正整数,且分子的个位数与分母的十位数相同,如果把该分数的分子的个位数与分母的十位数同时去掉,所得到的新的分数正好与原分数的值相等,如26/65=2/5。试编程求出所有满足上述条件的真分数。

#include

void main()

{

int a,b,c; // 设这个分数为ab/bc

for(a=1;a<=9;a++)

for(b=1;b<=9;b++)

for(c=1;c<=9;c++)

if((a

printf("%d/%d=%d%d/%d%d=%f\n",a,c,a,b,b,c,1.0*a/c);

}

9. 编写程序,求数列:1,(1+1/2),(1+1/2+1/3),(1+1/2+1/3+1/4),(1+1/2+1/3+1/4+1/5),…的前10项之和。

#include

void main()

{

float s,t;

int i;

s=0,t=0;

for(i=1;i<=10;i++)

{ t=t+1.0/i; s=s+t; }

printf("s=%f\n",s);

}

10. 编写程序,求3到100之间的所有素数之和。

#include

void main()

{

int s,i,k,flag;

s=0;

for(i=3;i<=100;i++)

{

flag=1;

for(k=2;k

if(i%k==0)

{ flag=0; break; }

if(flag)

{ s=s+i; printf("%4d",i); }

}

printf("\nsum=%d\n",s);

}

11. 编写程序,求Fibonacci数列中大于800的最小的一个数(结果为987)。

#include

void main()

{

int f1=1,f2=1,f3;

while(f3<=800)

{

f3=f1+f2;

f1=f2;

f2=f3;

}

printf("Fibonacci数列中大于800的最小数是%5d\n",f3);

}

习题六

一、选择题

1~10:D D C B A B C D C D

11~20:A B B C C D C A B B

21~30:B B D D D D C D C A

注:第16题答案C为:字符串"SHORT"与"SHORT "相等

第19题题目为:已知:char str1[10],str2[10]={"books"};则在程序中能够将字符串"books"赋给数组str1的正确语句是。

第21题题目为:设有:char str1[20]="abcde",str2[20]="xyz";则执行语句:

printf("%d",strlen(strcpy(str1,str2)); 的结果是。

第28题答案D为:aaaa

bbbb

cccc dddd

二、填空题

1.9 、0

2.先行后列

3.字符数组

4.QuickC

5. (c=getchar( )) 、'A'+i或65+i

6. '\0' 、str1[i]-str2[i]

7.CDABC

8. 6

9.1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

10.600

11.AzyD

12. 4 some string *test

三、编程题

1. 定义一个有20个元素的整型数组,分别求出下标为奇数和偶数的元素的平均值。

#include

#include

void main()

{

int i,s0=0,s1=0,a[20];

for(i=0;i<20;i++)

a[i]=rand()%100;

for(i=0;i<20;i+=2)

{ printf("%3d",a[i]);

s0=s0+a[i]; }

printf(" sum is:%d ave=%f\n",s0,s0/10.0);

for(i=1;i<20;i+=2)

{ printf("%3d",a[i]);

s1=s1+a[i]; }

printf(" sum is:%d ave=%f\n",s1,s1/10.0);

}

2. 设有一个整型数组,另输入一个整数,编程查找这个整数是否在数组中出现过,若出现,则输出第一次出现的位置,否则,输出no found。

#include

#include

void main()

{

int i,s,a[20];

for(i=0;i<20;i++)

a[i]=rand()%100;

scanf("%d",&s);

for(i=0;i<20;i++)

if(a[i]==s)

{ printf("found:a[%d]=%d\n",i,a[i]);

break; }

if(i==20)

printf("no found\n");

for(i=0;i<20;i++)

printf("%3d",a[i]);

printf("\n");

}

3. 设有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入到数组中。#include

#define N 10

void main()

{

int i,j,s;

//int a[N]={1,3,5,7,9,11,13,15,17};

int a[N]={17,15,13,11,9,7,5,3,1};

scanf("%d",&s);

i=0;

if(a[0]

while(s>a[i]) i++;

else

while(s

for(j=N-1;j>i;j--)

a[j]=a[j-1];

a[j]=s;

for(i=0;i

printf("%3d",a[i]);

printf("\n");

}

4. 编一程序,从一个已排好序的数组中删去某个位置上的元素。

#include

#define N 10

void main()

{

int i,j;

int a[N]={1,3,5,7,9,11,13,15,17,19};

for(i=0;i

printf("%3d",a[i]);

printf("\n");

scanf("%d",&i);

for(j=i;j

a[j]=a[j+1];

for(i=0;i

printf("%3d",a[i]);

printf("\n");

}

5. 将一个二维数组的行、列互换后存到另一个二维数组中并输出结果。

#include

void main()

{

int i,j;

int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23},b[4][3];

for(i=0;i<4;i++)

for(j=0;j<3;j++)

b[i][j]=a[j][i];

printf("array a:\n");

for(i=0;i<3;i++)

{

for(j=0;j<4;j++)

printf("%5d",a[i][j]);

printf("\n");

}

printf("array b:\n");

for(i=0;i<4;i++)

{

for(j=0;j<3;j++)

printf("%5d",b[i][j]);

printf("\n");

}

}

6. 编一程序,在一个二维数组中,查找第一次出现的负数,并输出该数及其所在的行、列号。

#include

void main()

{

int i,j,flag;

int a[3][4]={1,3,5,7,9,11,13,-15,17,19,-21,23};

flag=0;

for(i=0;i<3;i++)

for(j=0;j<4;j++)

if(a[i][j]<0)

{

flag=1;

printf("found:a[%d][%d]=%d\n",i,j,a[i][j]);

i=j=100; //可使双重循环提前结束

}

if(flag==0)

printf("no found!");

printf("array a:\n");

for(i=0;i<3;i++)

{

for(j=0;j<4;j++)

printf("%5d",a[i][j]);

printf("\n");

}

}

7. 编程将一个字符数组中的字母,按由大到小的顺序进行排序。

#include

#include

void main()

{

char t,s[]="ABCDIVBHFBVCNLKFDB";

int i,j,n;

puts(s);

n=strlen(s);

for(i=0;i

for(j=i+1;j

if(s[i]

{ t=s[i];s[i]=s[j];s[j]=t; }

puts(s);

}

8. 输入一行字符,统计其中有多少个英语单词,单词之间用空格隔开。

#include

#include

void main()

{

char s[81];

int w,i,n;

gets(s);

i=0;n=0;w=0;

while(s[i]!='\0')

{

if(s[i]==' ')

w=0; /*end of a word*/

else

if(w==0)

{w=1;n++;} /*begin of a word*/

i++;

}

printf("number of word:%d\n",n);

}

9. 编程将两个一维数组中的对应元素的值相减后进行输出。

#include

#include

void main()

{

int i,a[10],b[10];

for(i=0;i<10;i++)

{ a[i]=rand()%100; printf("%4d",a[i]); }

printf("\n");

for(i=0;i<10;i++)

{ b[i]=rand()%100; printf("%4d",b[i]); }

printf("\n");

for(i=0;i<10;i++)

printf("%4d",a[i]-b[i]);

printf("\n");

}

10. 有n个无序的数放在数组a中,请将相同的那些数删得只剩得一个,输出经过删除后的数据。

#include

void main()

{

int i,j,k,a[10]={90,20,40,30,50,50,50,50,20,80};

for(i=0;i<10;i++)

printf("%4d",a[i]);

printf("\n");

for(i=0;i<9;i++)

for(j=i+1;j<10;j++)

if(a[j]==a[i])

{ a[j]=-888; }

k=0;

for(i=0;i<10;i++)

if(a[i]!=-888)

{

printf("%4d",a[i]);

a[k++]=a[i];

} //不相同的有效元素只有K个了

printf("\n");

}

11. 求二维数组中这样一个元素的位置:它在行上最小,在列上也最小。如果没有这样的元素则输出相应的信息。

#include

#include

void main()

{

int j,i,k,flag,fz=0,a[4][5];

for(i=0;i<4;i++)

{

for(j=0;j<5;j++)

{

a[i][j]=rand()%100;

printf("%4d",a[i][j]);

}

printf("\n");

}

for(i=0;i<4;i++)

{

for(j=0;j<5;j++)

{

flag=1;

for(k=0;k<5;k++)

if(a[i][k]

{ flag=0;break; }

for(k=0;k<4&&flag;k++)

if(a[k][j]

{ flag=0;break; }

if(flag)

{ fz++; printf("min a[%d][%d]=%d\n",i,j,a[i][j]); } }

}

if(fz==0)

printf("no found!");

}

12. 在一个二维数组中形成并输出如下矩阵:

1 1 1 1 1

2 1 1 1 1

A= 3 2 1 1 1

4 3 2 1 1

5 4 3 2 1

#include

#define N 5

void main()

{

int j,i,a[N][N];

for(i=0;i

for(j=0;j

{

if(i<=j)

a[i][j]=1;

else if(j==0)

a[i][j]=i+1;

else

a[i][j]=a[i-1][j-1];

}

for(i=0;i

{

for(j=0;j

printf("%4d",a[i][j]);

printf("\n");

}

}

13. 已知A是一个3╳4的矩阵,B是一个4╳5的矩阵,编程求A╳B得到的新矩阵C,并输出C矩阵。

#include

void main()

{

int j,i,k,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

int b[4][5]={3,2,1,5,4,4,3,2,5,1,2,3,5,4,1,7,8,5,6,9},c[3][5];

printf("array A(3*4):\n");

for(i=0;i<3;i++)

{

for(j=0;j<4;j++)

printf("%4d",a[i][j]);

printf("\n");

}

printf("array B(4*5):\n");

for(i=0;i<4;i++)

{

for(j=0;j<5;j++)

printf("%4d",b[i][j]);

printf("\n");

}

for(i=0;i<3;i++)

for(j=0;j<5;j++)

{

c[i][j]=0;

for(k=0;k<4;k++)

c[i][j]+=a[i][k]*b[k][j];

}

printf("array C(3*5)=A * B:\n");

for(i=0;i<3;i++)

{

for(j=0;j<5;j++)

printf("%4d",c[i][j]);

printf("\n");

}

}

14. 编程输出两个字符串中对应位置上相同的字符。

#include

void main()

{

int i;

char a[81]="acbsbdvhfejbvewvkbewljbv";

char b[81]="anbdxwdbviuerkjvbfidbvuie bik";

printf("string1: %s\n",a);

printf("string2: %s\n",b);

printf("string3: ");

i=0;

while(a[i]!='\0' && b[i]!='\0')

{

if(a[i]==b[i])

printf("%c",a[i]);

i++;

}

printf("\n");

}

15. 设有一字符串已按升序排列在字符数组a中,请将另一字符串b中的字符按升序的规律插到数组a中。

#include

#include "string.h"

void main()

{

int i,j,k;

char a[81]="acdfhjklmopxz";

char b[81]="anbdx";

printf("string1: %s\n",a);

printf("string2: %s\n",b);

i=0;

while(b[i]!='\0')

{

j=0;

while(a[j]

j++;

k=strlen(a);

while(k>=j)

{ a[k+1]=a[k];k--; }

a[j]=b[i];

i++;

}

printf("string3: %s\n",a);

}

16. 将已按升序排列的两个字符串a和b中的字符按升序归并到字符数组c中。

#include

#include "string.h"

void main()

{

int i,j,k;

char a[81]="acdfhjklmopxz";

char b[81]="abdnx";

char c[81];

printf("string1: %s\n",a);

printf("string2: %s\n",b);

i=0;j=0;k=0;

while(a[i]!='\0'&&b[j]!='\0')

{

if(a[i]

c[k++]=a[i++];

else

c[k++]=b[j++];

}

while(a[i])

c[k++]=a[i++];

while(b[j])

c[k++]=b[j++];

c[k]='\0';

printf("string3: %s\n",c);

}

习题七

一、选择题

1~10:D C D B D B C A A B

11~19:B B A B A D A B A

二、填空题

1.声明

2.自动将其转换为函数定义时的类型

3.10

4.i<=n 、s 、0 、f(k)

5.Itis

6.2721

7.0246

8.k 、-1

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

c语言程序设计教程第二版课后习题答案

c 语言程序设计教程第二版课后习题 答 案 篇一: c 语言程序设计教程_李含光_ 郑关胜_ 清华大学 出版社习题答案习题答案[完美打印版]】1.单项选择题 (1)a (2)c(3)d (4)c (5)b 2.填空题(1)函数 (2)主函数(main )(3)printf(),scanf()第 2 章习题参考答案 1.单项选择题 1-5 cbccc 6-10 cdcdc 11-13 dbb 2 .填空题 (1)1(2)26 (3)6 , 4 , 2 (4)10 , 6 (5)3.000000 (6)双精度(double )(7)9 (8)字母,数字,下划线(9)13.700000 (10)11(11)((m/10 )%10 )*100+ (m/100 )*10+m%10 (12)0 (13)10 ,9 ,11(15) (x0y0)||(x0z0)||(y0||z0)(16 )double (17)x==0 (18)sqrt(fabs(a-b))/(3*(a+b))(19 )sqrt((x*x+y*y)/ (a+b)) 第 3 章习题参考答案 1.单项选择题 1-5 cccdd 6-10 bcdbc11-15 bcbbb16 a 2 .填空题 (1)用;表示结束(2){ } (3 )y=x0?1:x==0?0:-1 (4)y%4==0y%100!=0||y%400==0 (5)上面未配对(6)default 标号(7)while ,do while ,for (8)do while (9)本次(10)本层3.阅读程序,指出结果 (1)yes (2)*(3)abother (4)28 70 (5)2,0(6)8(7)36 (8)1(9)3,1,-1,3,1,-1(10)a=12 ,y=12 (11) i=6 ,k=4 (12)1,-2 4 .程序填空 (1)x:y ,u :z (2)m=n ,m !=0 ,m=m/10 (3)teps , t*n/(2*n+1) , printf( n”“,%2*lsf )(4)m%5==0 ,

C语言程序设计第三版谭浩强课后习题答案完整版

1.6 编写一个程序,输入a、b、c 三个值,输出其中最大值。 课后习题答案完整版 第一章 1.5 请参照本章例题,编写一个C 程序,输出以下信息: ************************** Very Good! ************************** 解:mian() {int a,b,c,max; printf( “请输入三个数a,b,c:\n ” ); scanf( “%d,%d,%”d ,&a,&b,&c); C语言程序设计第三版谭浩强 解: mian() {printf( ”); “************************** printf( “”X “ n” ); printf( “Very Good!” \ n”); printf( “”X “ n” ); printf( “************************** ); max=a; if(max

{char #include c1='a',c2='b',c3= 'c',c4= ' \101 ',c5= ' 116'; printf( “a%cb%c n”,c1,c2,c 3); printf( “ b%c %c” ,c4,c5); } 解: aa 口bb 口口口cc 口口口口口口abc A 口N 3.7 要将"China" 译成密码,译码规律是:用原来字母后面的第 4 个字母代替原来的字母.例如,字母"A" 后面第 4 个字母是"E" . "E"代替"A"。因此,"China"应译为"Glmre" 。请编一程序,用赋初值的方法使cl 、c2、c3、c4、c5 五个变量的值分别为, ' C'、h'、i '、n'、a'经过运算,使cl、c2、c3、c4、c5分别变为'G'、' I '、' m >' r'、’ e',并输出。main() { char c1=' C' ,c2=' h' ,c3= ' i ' ,c4= ' n' ,c 5=' a' ; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf(" 密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是GImre 3.9 求下面算术表达式的值。 解: 1 )x+a%3*(int)(x+y)%2/4

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

c语言程序设计第五版习题答案

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch 语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么?它由哪几部分组成? 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤? 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。

#include main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** * 思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* I love C programs! ************************* 【分析与提示】 ①要有文件包含语句#include 。C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。这些函数的说明都包括在stdio.h文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include main() { printf("************************\n"); printf(" I love C programs! \n"); printf("************************\n"); }

(完整版)C语言程序设计练习及答案

《C语言程序设计》练习及答案 得分评卷人复查人 一、单选题,每小题1分,共60分(将正确答案的序号写在题目的括号中)。 1、结构化程序设计的三种基本控制结构是(D )。 A、主程序、子程序、函数 B、输入、处理、输出 C、调用,返回,转移 D、顺序、选择、循环 2、下列关于C程序变量的叙述, ( D )是错误的。 A、变量名必须由字母或下划线开头。 B、程序中的变量必须在被使用之前定义。 C、不同的基本类型的变量之间可以混合运算。 D、变量的数据类型决定变量的"作用域"。 3、能将C语言编写的源程序转换为目标程序的软件是(C )。 A、编辑程序 B、汇编程序 C、编译程序 D、解释程序 4、以下符号中,合法的用户标识符是( D )。 A、-p B、int C、3ab D、_xt_ 5、以下选项中,与m=n++完全等价的表达式是( C )。 A、m=++n B、m+=n+1 C、m=n, n=n+1 D、n=n+1,m=n 6、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是(C )。 A、&aa[0]+1 B、&aa[1] C、&aa[0]++ D、aa+1 7、表达式!5&(7+3)&&(4+5)的值是(A)。 A、0 B、1 C、5 D、9 8、以下选项中非法的C语言表达式是(A )。 A、x+1=x+1 B、0<=x<100 C、i=j==0 D、(char)(65+3) 9、在TURBO C中, int类型变量所占字节数是(B )。 A、1 B、2 C、4 D、8 10、C语言中基本的数据类型包括(B)。 A、整型,实型,逻辑型 B、整型,实型,字符型

C语言程序设计教程第三版(李凤霞)习题答案

教材习题答案 第一章 习题 一、单项选择题 1. C 2. B 3. B 4. C 5. D 6. A 7. C 8. A 二、填空题 1. 判断条件 2. 面向过程编程 3. 结构化 4. 程序 5. 面向对象的程序设计语言 6. 基本功能操作、控制结构 7. 有穷性 8. 直到型循环结构 9. 算法 10.可读性 11.模块化 12.对问题的分解和模块的划分

习题 一、单项选择题 1. B 2. D 3. C 4. B 5. A 6. A 7. B 8.C 二、填空题 1. 主 2. C编译系统 3. 函数、函数 4. 输入输出 5. 头 6. .OBJ 7. 库函数 8. 文本 第三章 习题 一、单项选择题 1. D 2. B 3. A

5. C 6. D 7. D 8. B 9. B 10.C 11.A 12.D 13.C 14.C 15.C 16.A 17.C 18.C 19.C 20.D 21.A 22.D 23.D 24.D,A 25.D 26.A 27.B 二、填空题 1. 补码 2. 308 10 - ±

~)308 10 ,15 —6 2. 308 10 - ± (~)308 10 ,15

6 3. 逻辑 4. 单目,自右向左 5. 函数调用 6. a 或 b ( 题目有错 , 小括号后面的 c<=98 改成( c>=97&&c<=98 )就可以得到所给的答案了) 7.

8. 65 , 89 第四章 习题 一、单项选择题 1. D 2. C 3. D 4. A 5. D 6. B 7. A 8. C 9. B 10.B 二、填空题 1. 一

C语言程序设计第二版习题参考答案

C语言程序设计第二版 习题参考答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII 码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是 ___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。

C语言程序设计(第二版)习题参考答案

C语言程序设计习题参考答案 习题1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F 2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。 D. 每个函数执行时,按函数体中语句的先后次序,依次执行每条语句 解:1.C 2.C 3.D 4.B 5.B 6.B 7.B 三、填空题

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强 课后习题答案完整版 第一章 1.5请参照本章例题,编写一个C程序,输出以下信息:************************** V ery Good! ************************** 解: mian() {printf(“**************************”); printf(“\n”); printf(“V ery Good!\n”); printf(“\n”); printf(“**************************”); } 1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。解: mian() {int a,b,c,max; printf(“请输入三个数a,b,c:\n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a; if(max main() { char c1=?C?,c2=?h?,c3=?i?,c4=?n?,c5=?a?; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是Glmre 3.9求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 (1)2.5 (2)3.5 3.10写出程序运行的结果。 main() {int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 解: 9,11,9,10 3.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。 (1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a 解: (1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0 第四章 4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 a=_3_ _b=_4_ _c=_5 x=1.200000,y=2.400000,z=-3.600000 x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40 c1=ˊaˊ_or_97(ASCII)

C语言程序设计习题答案

C 语言程序设计习题答案 习题一 C 语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S 流程图最大的区别是什么? 答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。

5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 7. 求一元二次方程ax 2+bx+c=0的根。分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。 四、注释下面C 程序的各个组成部分。 main() /*主函数 */ { /*程序开始 */ int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */ a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf("%d\n",a); /*在屏幕上打印出变量a 的值 */ } /*程序结束 */ 习题二 数据类型、运算符与表达式 一、选择题 1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD Y= 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

c语言程序设计(第3版)的习题答案

1.5请参照本章例题,编写一个C程序,输出以下信息: ************ Very Goodj! ************ 解: main() { printf(" ************ \n"); printf("\n"); printf(" Very Good! \n"); printf("\n"); printf(" ************\n"); } 1.6编写一个程序,输入a b c三个值,输出其中最大者。 解:main() {int a,b,c,max; printf("请输入三个数a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max

c语言程序设计第五版习题答案

c语言程序设计第五版习 题答案 Prepared on 24 November 2020

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、dowhile语句、switch语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么它由哪几部分组成 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { inta1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main()

{ inta1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* IloveCprograms! ************************* 【分析与提示】 ①要有文件包含语句#include<>。C语言中没有数据的输入、输出等功 能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf 等来实现的。这些函数的说明都包括在文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干 条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include<> main() { printf("************************\n"); printf("IloveCprograms!\n"); printf("************************\n"); } 第2章数据类型及其运算一.简答题 1.C语言中的数据类型主要有哪几类 【解答】短整型(shortint) 整型整型(int) 长整型(longint) 基本类型字符型(char)(float) 实型(浮点型) 双精度(double) 枚举类型(enum) 数组类型

C语言程序设计答案(第三版)杜友福word文档

C语言程序设计(第三版)习题答案 习题一 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)高级语言P2 (5)汇编程序P3 (6)编译程序P4 (7)算法P5 (8)结构化程序设计方法P10 二、简答题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法具有哪些特点? 答:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:自然语言、伪代码、传统流程图、N-S流程图、计算机语言。 4. 结构化程序设计方法的三种基本结构是什么? 答:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S流程图最大的区别是什么? 答:N-S流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图或N-S流程图表示求解以下问题的算法。 1. 从键盘输入10个整数,求出其中的最小数并输出。 2. 求1+2+3+…+100的值。 3. 求10~50的所有素数之和。

4. 求下列分段函数的值。 四、请参照本章例题,编写一个简单的C程序,输出以下三行信息。 ************************** Yangtze University ************************** #include void main() { printf("**************************\n");

printf(" Yangtze University\n"); printf("**************************\n"); } 习题二 一、选择题 1~10: B C D C D D B C A A 11~20: D A C D B D B A C D 二、填空题 1.字母 L 或字母 l 2. %c(或字符) 、 %d(或整数) 3.在程序运行过程中,其值可以在一定的范围内变化的量 4. '\0' 5.小数形式、指数形式 6.关键字、预定义标识符、用户标识符 7.字母、数字、下划线、数字 8. 18 9. 2 、 1 、 30 10.双精度实数或double 11.赋值、逗号、 20 、 20 、 20 、 4 12. 4 、 4 习题三 一、选择题 1~10: B C C B C C C D C C 注:第4题答案D为: 10 22↙ 33↙ 二、填空题 1. printf 、 scanf 2. h 3. "%5d" 4. '\0' 5. e 、 E 6. 6 7. s 、 c 8. * 9. - 、 + 10. i 三、编程题 1. 编写程序,从键盘输入一个以秒为单位的时间数,将其换算成几小时几分几秒,然后进行输出。例如输入的时间为4258秒,则输出结果为:1小时10分58秒。

《C语言程序设计教程》习题参考答案

《C语言程序设计教程》习题参考答案 祝胜林主编 华南理工大学出版社 【习题1】 (1) 【习题2】 (2) 【习题3】 (3) 【习题4】 (5) 【习题5】 (8) 【习题6】 (11) 【习题7】 (14) 【习题8】 (16) 【习题9】 (16) 【习题10】 (18)

一、简答题(在课本中寻找答案,略) 1.1C程序的基本结构包括哪些内容? 1.2如何定义标识符? 1.3输入格式、输出格式的组成包括哪些内容? 1.4C语言函数分为哪两类? 1.5计算表达式的值应该考虑哪些方面? 1.6上机调试程序的步骤如何? 二、判断并改错 1.7C程序执行的入口是main()函数,所以main函数必须放在程序的开头。 错误:main函数可以放在程序的任何位置。并不限定在程序的开头。 1.8定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 错误:不可以交叉出现,数据说明部分在执行语句部分的前面。 1.9编辑与编译不是一回事。 错误:不是一回事。编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。 1.10scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。 正确 1.11注释内容太多会影响程序的执行效率。 错误:不会影响程序的执行效率。因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。 1.12所有的数学公式可以直接出现在源程序中。 错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。 三、编程题 1.13在屏幕上输出自己名字的拼音。 提示:中文名字叫?张三?,对应的拼音为?Zhang San?,输出用printf()函数。 1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。 提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f 1.15输入两个整数,输出其中最大者。 提示:模仿例1.3 1.16 输入三个整数,输出其中最小者。 提示: min(min(a,b),c);

C语言程序设计(第二版)习题参考答案

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。 D. 每个函数执行时,按函数体中语句的先后次序,依次执行每条语句 解:1.C 2.C 3.D 4.B 5.B 6.B 7.B 三、填空题

C语言程序设计(第三版)习题库

C语言程序设计(第三版)习题库 1、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include main(){ float r,h,C1,Sa,Sb,Va,Vb; scanf(__”%f”__,&r); scanf(”%f”,__&h_);; C1=2*3.14*r; Sa=3.14*r*r; Sb=4*Sa; Va=4*3.14*r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f”,Cl,Sa,Sb,Va,Vb); } 2、输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include main(){ float F,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c);

} xx,1,,3、有一函数:y,2x,11,x,10 写一程序,输入x值,输出y 值。 ,,3x,11x,10, #include main(){ int x,y; printf("输入x:"); scanf("%d",&x); if(x<1) { /* x<1 */ y=x; printf("x=%3d, y=x=%d\n",x,y); } else if (____x<10_______){ /* 1?x-10 */ _____y=2*x-1_______; printf("x=%3d, y=2*x-1=%d\n",x,y); } else{ /* x?10 */ y=3*x-11; printf("x=%3d, y=3*x-11=%d\n",x,y); } } 4、给定一个不多于5位的正整数,要求:? 求它是几位数;? 按逆序打印出各位数字。例如原数为321,应输出123。 #include main(){ long int num,m=0; int i=0;

c语言程序设计题目及答案

一、程序设计共113 题第1 题题 号:319 #include "stdio.h" void wwjt(); int fun(int m) { int i,k=1; if(m<=1) k=0; for(i=2;i #include #define M 3 #define N 4 void wwjt(); void fun(int tt[M][N],int pp[N]) { int i,j; for(j=0;jpp[j]) pp[j]=tt[i][j]; } 第3 题题号:375 功能:从键盘上输入任意实数, 求出其所对应的函数值。 z=e 的x 次幂( x>10) z=log(x+3) (x>-3) z=sin(x)/((cos(x)+4) #include #include void wwjt(); double y(float x) { double z; if(x>10) z=exp(x); else if(x>-3) z=log(x+3); else z=sin(x)/(cos(x)+4); return(z); } 第4 题题号:334 功能:求给定正整数n 以内的素数之积。( n<28) #include #include"conio.h" void wwjt(); long fun(int n) { long i,k; long s=1; for(i=2;i<=n;i++) {for(k=2;k #include"conio.h" void wwjt(); long int fun(int n) { long s=1,i; for(i=2;i<=n;i++) if(n%i==0)s=s*i; return s; } 第6 题题号:50 功能:求出菲波那契数列的前一项与后一项之比的极限的 近似值例如:当误差为0.0001 时,函数值为0.618056 。 #include #include "math.h" void wwjt(); float fun() { float f1=1,f2=1,f3; float r1=2,r2; do {r2=r1; r1=f1/f2; f3=f1+f2; f1=f2; f2=f3; }while(fabs(r1-r2)>1e-4); return r1; } 第7 题题号:394 功能:产生20个[30,120] 上的随机整数放入二维数组 a[5][4] 中, 求其中的最小值。 #include "stdlib.h" #include void wwjt(); int amin(int a[5][4]) { int i,j,s; s=a[0][0];

相关文档
最新文档