C Primer Plus 第二章 复习题&编程练习 答案

复习题

1.C语言的基本模块是什么?

  函数

2.什么是语法错误?

  语法错误违反了组成语句或程序的规则。

3.什么是语义错误?

  语义错误是指含义错误。

4.Indiana Sloth编写了下面的程序,并征求你的意见,请帮助他评定。

include studio.h
int main{void}  /*该程序打印一年有多少周/*
(
	int s
	
	s := 56;
	printf(There are s weeks in a year.);
	return 0;

 第一行:以#开始;studio.h改成stdio.h;然后用尖括号把stdio.h括起来。
 第二行:把{ }改成();末尾注释/*改成 */
 第三行:把 ( 改成 {
 第四行:int s末尾加上一个分号
 第六行:把:=改成=,赋值用=。另外,一年52周,所以赋值56不对。
 第七行:改为printf(“There are %d weeks in a year.\n”,s);
 第九行:在该行加上一个右花括号}。
修改后的程序:

#include 
int main(void)  /*该程序打印一年有多少周*/
{
	int s;
	
	s = 52;
	printf("There are %d weeks in a year.\n",s);
	return 0;
}

5.下面4个例子,它们都输出什么结果?

a. printf(“Bae Baa Black Sheep.”);
 printf(“Have you any wool?\n”);
b. printf(“Begone!\nO creature of lard!\n”);
c. printf(“What?\nNo/nfish?\n”);
d. int num;
 num = 2;
 printf("%d + %d = %d", num , num , num + num);

输出结果:
a.Bae Baa Black Sheep.Have you any wool?
b.Begone!
 O creature of lard!
c.What?
 No/nfish?
d.2 + 2 = 4

6.在main、int、function、char、=中,哪些是C语言的关键字?

  int、char

7.如何以There were 3020 words and 350 lines.格式输出变量words和lines的值(这里,3020和350代表两个变量的值)?

  printf(“There were %d words and %d lines.\n”,words,lines);

8.考虑下面的程序:请问,在执行完第7行、第8、第9行后,程序的状态分别是什么?

#include 
int main(void)
{
	int a, b;
	
	a = 5;
	b = 2;   /* 第7行 */
	b = a;   /* 第8行 */
	a = b;   /* 第9行 */
	printf("%d %d\n",b,a);
	return 0;
}

  第7行:a是5,b是2
  第8行:a、b都是5
  第9行:a、b仍然是5

9.考虑下面的程序:请问,在执行完第7行、第8、第9行后,程序的状态分别是什么?

#include 
int main(void)
{
	int x, y;

	x = 10;
	y = 5;         /* 第7行 */
	y = x + y;     /* 第8行 */
	x = x*y;       /* 第9行 */
	printf("%d %d\n",x,y);
	return 0;
}

  第7行:x是10,y是5
  第8行:x是10,y是15
  第9行:x是150,y是15

编程练习

1.编写一个程序,调用一次printf()函数,把你的名和姓打印在一行。再调用一次printf()函数,把你的名和姓打印在两行。然后,再调用两次printf()函数,把你的名和姓打印在一起。

Printname.c程序:

#include 
int main(void)
{
	printf("May 21\n");
	printf("May\n21\n");
	printf("May");
	printf("21");
	return 0;
}

运行结果:
C Primer Plus 第二章 复习题&编程练习 答案_第1张图片

2.编写一个程序,打印你的姓名和地址。

Printaddress.c程序:

#include 

int main(void)
{
	printf("name:May21   address:China");
	return 0;
}

运行结果:
C Primer Plus 第二章 复习题&编程练习 答案_第2张图片

3.编写一个程序把你的年龄转换成天数,并显示这两个值。这里不用考虑闰年的问题。

Age into days.c程序:

#include 

int main(void)
{
	int ageyears = 21;    
	int agedays;
	
	agedays = ageyears*365;
	printf("An age of %d years is %d days.\n",ageyears,agedays); 
	return 0;
}

运行结果:
C Primer Plus 第二章 复习题&编程练习 答案_第3张图片

4.编写一个程序,生成以下输出:

For he’s a jolly good fellow!
For he’s a jolly good fellow!
For he’s a jolly good fellow!
Which nobody can deny!
除了main()函数以外,该程序还要调用两个自定义函数:一个名为jolly(),用于打印前3条消息,调用一次打印一条;另一个函数名为deny(),打印最后一条消息。

three_func.c程序:

#include 

void jolly(void);
void deny(void);

int main(void)
{
	jolly();
	jolly();
	jolly();
	deny();
	return 0;
} 

void jolly(void)
{
	printf("For  he's  a  jolly  good  fellow!\n");
}

void deny(void)
{
	printf("Which  nobody  can  deny!\n"); 
} 

运行结果:
C Primer Plus 第二章 复习题&编程练习 答案_第4张图片

5.编写一个程序,生成以下输出:

Brazil,Russia,India,China
India,China,
Brazil,Russia
除了main()函数以外,该程序还要调用两个自定义函数:一个名为br(),调用一次打印一次“Brazil,Russia”;另一个名为ic(),调用一次打印一次“India,China”。其他内容在main()函数中完成。

State.c程序:

#include 

void br(void);
void ic(void);

int main(void)
{
	printf("Brazil,Russia,India,China\n");
	ic();
	br();
	return 0;
}

void br(void)
{
	printf("Brazil,Russia\n");
}

void ic(void)
{
	printf("India,China\n");
}

运行结果:
C Primer Plus 第二章 复习题&编程练习 答案_第5张图片

6.编写一个程序,创建一个整型变量tose,并将tose设置为10。程序中还要计算tose的两倍和tose的平方。该程序应打印3个值,并分别描述以示区分。

Calculate.c程序:

#include 

int main(void)
{
	int tose = 10;
	
	printf("tose: %d  tose double: %d  tose square: %d\n",tose,2 * tose,tose * tose);
	return 0; 
}

运行结果:
C Primer Plus 第二章 复习题&编程练习 答案_第6张图片

7.编写一个程序,生成以下格式的输出:

Smile!Smile!Smile!
Smile!Smile!
Smile!
该程序要定义一个函数,该函数被调用一次打印一次“Smile!”,根据程序的需要使用该函数。

Smile.c

#include 

void smile(void);

int main(void)
{
	smile();smile();smile();
	printf("\n");
	smile();smile();
	printf("\n");
	smile();
}

void smile(void)
{
	printf("Smile!");
}

运行结果:
C Primer Plus 第二章 复习题&编程练习 答案_第7张图片

8.在C语言中,函数可以调用另一个函数。编写一个程序,调用一个名为one_three()的函数。该函数在一行打印单词“one”,再调用第2个函数two(),然后在另一行打印单词“three”。two()函数在一行显示单词“two”。main()函数在调用one_three()函数前要打印短语“starting now: ”,并在调用完毕后显示短语“done!”。因此,该程序的输出应如下所示:

starting now:
one
two
three
done!

count.c程序:

#include 

void one_three(void);
void two(void);

int main(void)
{
	printf("starting now: \n");
	one_three();
	printf("done!");
	return 0;
}

void one_three(void)
{
	printf("one\n");
	two();
	printf("three\n");
}
void two(void)
{
	printf("two\n");
}

运行结果:
C Primer Plus 第二章 复习题&编程练习 答案_第8张图片

你可能感兴趣的:(c语言)