C Primer Plus 第2章 C语言概述-编程练习

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

Gustav Mahler ←第1次打印的内容
Gustav ←第2次打印的内容
Mahler ←仍是第2次打印的内容
Gustav Mahler ←第3次和第4次打印的内容

#include<stdio.h>
#define NAME"Gustav"
#define SURNAME"Mahler"
/*可以定义自己的名和姓*/
int main(void)
{
    printf("%s %s\n",NAME,SURNAME);
    printf("%s\n%s\n",NAME,SURNAME);
    printf("%s",NAME);
    printf("%s\n",SURNAME);
    
    return 0;
}

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

#include<stdio.h>
#define NAME"Li Xiaonan"
#define ADDRESS"No.19 Tairm University, A Laer, Xin Jiang"
/*姓名、地址分别用预编译指令定义*/
int main(void)
{
   printf("%s\n",NAME);/*打印姓名*/
   printf("%s\n",ADDRESS);/*打印地址*/
   
   return 0;
}

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

#include<stdio.h>
#define DAYS_PER_YEAR 365
/*利用预编译指定一年的天数*/
int main(void)
{
   int age,days;
   age=19;
   days=age*DAYS_PER_YEAR;
   printf("You age is %d,and it is %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>

int jolly(void);
int deny(void);
/*函数声明*/
int main(void)
{
   jolly();
   jolly();
   jolly();
   deny();
   /*函数调用*/
   return 0;
}
int jolly(void)
{
/*函数定义*/
  printf("For he's a jolly good fellow!\n");
  return 0;
}
int deny(void)
{
/*函数定义*/
  printf("Which nobody can deny!\n");
  return 0;
}

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

Brazil,Russia,India,China
India,China
Brazil,Russia

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

#include<stdio.h>

int br(void);
int ic(void);
/*函数声明*/
int main(void)
{
  br();
  printf(",");
  ic();
  ic();
  br();
  /*函数调用*/
  return 0;
}
int br(void)
{
/*函数定义*/
  printf("Brazil,Russia");
  return 0;
}
int ic(void)
{
/*函数定义*/
 printf("India,China\n");
 return 0;
}

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

#include<stdio.h>
int main(void)
{
   int toes;
   toes=10;
/*定义整形变量toes,并赋值为10.*/
   printf("The Variable toes =%d.\n",toes);
   printf("double toes =%d.\n",2*toes);
/*计算并打印toes的两倍,也可以先计算再打印,例如:
int d_toes=2*toes;
printf("double toes=%d.\n",d_toes);
但最好不要写成:
toes=2*toes;
这样会修改toes的值,并影响到toes的平方的计算。
*/
   printf("toes' square=%d.\n",toes*toes);
 /*计算并打印toes的平方。*/
    return 0;
}

7.许多研究表明,微笑益处多多。编写一个程序,生成以下格式的输出:

Smile!Smile!Smile!
Smile!Smile!
Smile!

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

#include<stdio.h>

int smile(void);
/*函数声明*/
int main(void)
{
/*函数调用*/
   smile();smile();smile();
   printf("\n");
   smile();smile();
   printf("\n");
   smile();
}
int smile(void)
{
/*函数定义*/
  printf("Smile!");
  return 0;
}

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>

int one_three(void);
int two(void);
/*两个函数的声明*/
int main(void)
{
   printf("Staring now!\n");
   one_three();
   printf("Done!\n");
   return 0;
}
int one_three(void)
{
  printf("one\n");
  two();
  printf("three\n");
  return 0;
}
int two(void)
{
  printf("two\n");
  return 0;
}
上一篇:C++primer学习笔记_第三章


下一篇:Unable to determine the device handle for GPU 0000:01:00.0: GPU is lost.问题排坑