朱昌杰 C语言程序设计课本习题解答 - 图文(6)

2019-04-17 00:25

long factorial(int n) { long t=1;int i; for(i=1;i<=n;i++)

t=t*i;

return t; }

long sum(int m) { long s=0;int i; for(i=1;i<=m;i++)

s=s+factorial(i); return s;

} main() {

int k,num; long result=0; scanf(\for(k=1;k<=num;k++)

result=result+sum(k); printf(\result); }

(7) 编写函数reverse(s),s是一个字符串,实现将字符串s逆序存放。

#include reverse(char s[]) { int i,t,j; char temp; t=strlen(s);

for(i=0,j=t-1;i

}

}

(8) 写一个函数transpose(b),b是一个3阶方阵,实现对方阵的转置,即行列互换。 int transpose(int b[3][3]) { int i,j,t; for(i=0;i<3;i++)

for(j=i+1;j>=i&&j<3;j++) {

t=b[i][j];b[i][j]=b[j][i];b[j][i]=t;

}

}

main() { int a[3][3];int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++)

scanf(\

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

printf(\

printf(\

}

transpose(a); for(i=0;i<3;i++) { for(j=0;j<3;j++)

printf(\ printf(\

}

}

(9) 某数列为K(n)的定义为:用递归的方法求该数列的第6项k(6)。

#include

int k(int n) { int c; if(n==1)

c=1;

else if(n%2==0)

c=k(n-1)*2;

else

c=k(n-1)*3;

return c;

} main() {

int m; 26

scanf(\if(m>=1)

printf(\

}

else

printf(\

习题8

一、选择题

(1)下面有关宏替换的叙述不正确的是( )。 A.宏替换不占用运行时间 B.宏名无类型 C.宏替换只是字符替换 D.宏名必须用大写字母表示

(2)以下叙述中正确的是( )。 A.预处理命令行必须位于C源程序的起始位置 B.在C语言中,预处理命令行都以“#”开头

C.每个C程序必须在开头包括预处理命令行:#include D.C语言的预处理不能实现宏定义和条件编译的功能 (3)下列关于#include命令的叙述中,错误的是( )。 A.#include命令中,文件名可以用双引号或尖括号括起来 B.一个被包含文件中又可以包含另一个被包含文件 C.一个#include命令中可以指定多个被包含文件 D.一个#include命令中只能指定一个被包含文件 二、填空题

(1)以下程序输出结果是 【1】 。

#include #define MULT(X) X*X void main() { int a=10,c; c=MULT(a); printf(\}

(2)以下程序运行的输出结果是 【2】 。

#include #define S(x) 4*x*x void main() { int a=10,b=11; printf(\}

(3)以下程序中的for循环执行的次数是 【3】 。

#define N 2 #define M N+1 #define NUM 2*M+1 void main() { int i;

for(i=1;i<=NUM;i++)printf(\}

三、编程题

1、用带参数的宏来实现从3个数中找出最大数。

2、请设计输出整数的格式,整数用“]”格式输出。要求: ① 一行内输出2个整数; ② 一行内输出3个整数。

3、输入两个整数,求它们相除的余数,请用带参数的宏来实现。

27

一.选择题 D B C 二.填空题 (1) 100 (2) 161 (3) 1 2 3 4 5 三.编程题

1、用带参数的宏来实现从3个数中找出最大数。具体程序为: #include

#define MAX2(x,y) (x)>(y)?(x):(y) int max(int a,int b, int c) {

int t1 = MAX2(a, b); int t2 = MAX2(b, c); int t3 = MAX2(t1, t2); return t3; }

void main()

{ int d,e,f,m;

scanf(\ m = max(d, e, f); printf(\最大数为%d\}

2、请设计输出整数的格式,整数用“]”格式输出。要求: ① 一行内输出2个整数; ② 一行内输出3个整数。 具体程序为:

3、输入两个整数,求它们相除的余数,请用带参数的宏来实现。 具体程序为: /* exa8-3-3.c */ #include

#define MOD(a, b) ((a) % (b)) void main() {

int a, b;

printf(\ scanf(\

printf(\}

28

【参考答案】 习题9

29

30


朱昌杰 C语言程序设计课本习题解答 - 图文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:新课标人教化学必修一第一章 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: