《C Primer Plus(第六版)》第二章编程练习答案(仅供参考)

 注:以下代码仅供参考,该博客为个人自学C语言的学习记录。如有代码或其他错误的地方请各位大佬批评指正

下列有涉及到函数的代码需要注意定义函数的位置

在主函数(main)后面定义的函数,必须要在主函数前面声明函数,不然会报下图所示错误:

但是如果在主函数前面定义函数,则可以不用声明函数: 

1.编写一个程序,调用一次 printf()函数,把你的姓名打印在一行。再调用一次
printf()函数,把你的姓名分别打印在两行。然后,再调用两次printf()函数,把你的姓名打
印在一行。输出应如下所示(当然要把示例的内容换成你的姓名):

 

//引入头文件
#include <stdio.h>

//主函数
int main(void) {
	printf("Gustav Mahler\n");
	printf("Gustav\nMahler\n");
	printf("Gustav ");
	printf("Mahler");
	return 0;
}

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

#include <stdio.h>

//参考了网上有各种版本,以下是根据自己理解所写的,仅供参考
int main() {
	printf("My name is %s,and I live in %s.\n", "Anna", "China");
	return 0;
}

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

#include <stdio.h>

int main() {
	int age = 13;
	int days = age * 365;
	printf("I am %d years old,and there are %d days.\n",age,days);
	return 0;
}

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(),打印最后一条消息。

#include <stdio.h>

//声明函数,一般在主函数外面声明函数,但是在主函数里面声明函数也不会报错
//在C语言中定义函数一定要声明函数!!!不然会报错
void jolly();
void deny();
//主函数
int main() {
    //调用方法
	jolly();
	jolly();
	jolly();
	deny();
	return 0;
}
//括号内要void吗?不是必须有返回值,如果没有返回值类型名为"void"
//用于打印前三条信息
void jolly() {
	printf("For he's a jolly good fellow!\n");
}
//用于打印最后一条信息
void deny() {
	printf("Which nobody can deny!\n");
}

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

#include <stdio.h>

//声明函数
void br();
void ic();

//方法不唯一,也可以在自定义的函数内打印语句不换行(不加"\n")
//调用方法之后添加换行语句(printf("\n"))
int main() {
	printf("Brazil,Russia,India,China\n");
	ic();
	br();
	return 0;
}
//定义函数
void br() {
	printf("Brazil,Russia\n");
}
//定义函数
void ic() {
	printf("India,China,\n");
}

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

#include <stdio.h>

int main() {
    //定义toes变量并赋值
	int toes = 10;
    //toes的两倍
	int toesTwo = toes * 2;
    //toes的平方
	int toesSq = toes * toes;
	printf("toes的值为%d。\n",toes);
	printf("toes值的两倍为%d。\n", toesTwo);
	printf("toes值的平方为%d。\n", toesSq);

	return 0;
}

7.许多研究表明,微笑益处多多。编写一个程序,生成以下格式的输出:
        Smile!Smile!Smile!
        Smile!Smile!
        Smile!
该程序要定义一个函数,该函数被调用一次打印一次“Smile!”,根据程序的需要使用该函数。

注:该方法不唯一,每个人的思路不一样,仅供参考。

#include <stdio.h>

//看见这个题目我的思路首先是通过打印倒三角的方式来打印Smile
//声明自定义的函数printSmile()
void printSmile();
//主函数
int main() {
    //定义变量i,j
	int i, j;
    //for循环打印倒三角
	for (i = 3; i >= 0; i--){
		for (j = 0; j < i; j++) {
			printSmile();
		}
		printf("\n");
	}
	return 0;
}
//定义打印Smile的函数
void printSmile() {
	printf("Smile!");
}

个人认为还可以改进一下,通过输入的值自己选择打印多少"Smile",以下是升级版:

//必须要加,因为有scanf()不安全函数,不然会报错,而导致无法编译通过。
#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>

//声明自定义的函数printSmile()
void printSmile();
//主函数
int main() {
    //num是指输入的值
	int i, j, num;
	scanf("%d", &num);
	for (i = num; i >= 0; i--){
		for (j = 0; j < i; j++) {
			printSmile();
		}
		printf("\n");
	}
	return 0;
}
//定义打印Smile的函数
void printSmile() {
	printf("Smile!");
}

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

#include <stdio.h>

//声明自定义的函数
void one_three();

//主函数
int main() {
	printf("starting now:\n");
    //调用函数
	one_three();
	printf("done!\n");
	return 0;
}
//定义函数,在C语言中定义函数一定要声明函数
void one_three() {	
	printf("one\n");
	printf("two\n");
	printf("three\n");
}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值