当前位置:首页 > 高教c语言程序设计(2011版)课后编程题答案
~$c语言程序设计(2011版)课后编程题答案
dec_bin(int n,int a[]) {
static int i=0; if(n==0||n==1) { a=n; return i; } else {
a[i++]=n%2;
return dec_bin(n/2,a); } }
main() {
int i,j,n,a[64];
printf(\ scanf(\ j=dec_bin(n,a); for(i=j;i>=0;i--) printf(\ }
11.13 请用递归算法,求1+2+3+...n,n由键盘输入。
※程序如下※
fun(int n) {
int sum; if(n==1) return 1; else {
sum=n+fun(n-1); return sum; } }
main() {
int n,sum; clrscr();
printf(\ scanf(\ sum=fun(n);
printf(\ }
11.14 请用递归函数,求裴波拉契级数,求n阶裴波拉契级数的公式如下。
- 25 -
~$c语言程序设计(2011版)课后编程题答案
※程序如下※ #include
long t;
if(n==0||n==1) return 1; else {
t=fac(n-1)+fac(n-2); return t; } }
main() { int n;
printf(\ scanf(\ printf(\ }
第十三章 编译预处理和动态存储分配
13.10 编写出一个宏定义MYALPHA(C),用以判断C是否是字母字符,若是得1,否则得0。
※程序如下※
#include
#define MYALPHA(C) isalpha(C)?1:0 main() {
char ch; clrscr();
ch=getchar();
if(MYALPHA(ch))
printf(\ else
printf(\ }
13.11 请写出一个宏定义swap(t,x,y)用以交换t类型的两个参数。提示:用复合语句的 形式。
※程序如下※
#include
#define swap(t,x,y) {t=x;x=y;y=t;}
- 26 -
~$c语言程序设计(2011版)课后编程题答案
main() {
int a,b,t; clrscr();
printf(\ scanf(\ swap(t,a,b);
printf(\ }
13.12 请编写程序,利用malloc函数开辟动态存储单元,存放输入的三个整数。然后按 从小到大的顺序输出这三个数。
※程序如下※
#include
void main() {
int *pData = (int*)malloc(sizeof(int)*3); int t;
printf(\ scanf(\
for (int i=0; i<2; i++) for (int j=i+1; j<3; j++)
if (*(pData+i) > *(pData+j)) {
t = *(pData+j);
*(pData+j) = *(pData+i); *(pData+i) = t; }
printf(\ }
第十四章 结构体、共用体和用户定义类型
14.12 设有以下结构类型说明:struct stud {
char num[5],name[10]; int s[4]; double ave; };
请编写:
(1)函数readrec把30名学生的学号、姓名、四项成绩以及平均分放在一个结构
- 27 -
~$c语言程序设计(2011版)课后编程题答案
体数组中,学生的学号、姓名和四项成绩由键盘输入,然后计算平均分放 在结构体对应的域中。
(2)函数writerec输出30名学生的记录。
(3)main函数调用readrec函数和writerec函数,实现全部程序功能(注:不允 许使用全局变量,函数之间的数据全部使用参数传递)。
※程序如下※
#include
char num[5],name[10]; int s[4]; double ave; };
void readrec(struct stud *pStud, int num) { int i;
printf(\
for (i=0; i printf(\ scanf(\ &(pStud->s[1]),&(pStud->s[2]),&(pStud->s[3])); pStud->ave=(pStud->s[0]+pStud->s[1]+pStud->s[2]+pStud->s[3])/4.0; pStud++; } } void writerec(struct stud *pStud, int num) { int i; printf(\ for (i=0; i printf(\ printf(\ pStud->s[0],pStud->s[1],pStud->s[2],pStud->s[3],pStud->ave); pStud++; } } void main() { - 28 -
共分享92篇相关文档