C语言程序设计基础教程 - 习题答案

}

int a[N][3]; int i,j;

for (i=0;i

8.4.7 编写函数fun(char *str, int num[10]),它的功能是:分别找出字符串中每个数字字符

(0,1,2,3,4,5,6,7,8,9)的个数,用num[0]来统计字符0的个数,用num[1]来统计字符1的个数,用num[9]来统计字符9的个数。字符串由主函数从键盘读入。 #include

void fun(char *str, int num[10]) {int i;

char *s=str;

for (i=0;i<10;i++) num[i]=0; for (;*s!='\\0';s++) num[s[i]-'0']++; }

void main() { char a[80]; int b[10]; int i; gets(a); fun(a,b); for (i=0;i<10;i++) { printf(\ }

}

习题9

9.1 选择题

9.1.1 在宏定义#define PI 3.14159 中,宏名PI代替的是一个( D )。 A) 常量 B) 单精度数 C) 双精度数 D) 字符串

9.1.2 定义一个名为NEW(X)的宏,产生它的参数的负值,正确的语句是( C )。 A) #define NEW(X) -x B)#define NEW(X) x

C) #define NEW(X) (-x) D)#define NEW(X) (-x);

9.1.3 定义一个名为ABSVAL(X)的宏,产生它的参数的绝对值,正确的语句是( D )。 A) #define ABSVAL(X) (-x)

B) #define ABSVAL(X) (x<0 ? –x:x) C) #define ABSVAL(X) (x>0 ? x:-x) D) #define ABSVAL(X) ((x)<0 ?(-x):(x)) 9.1.4 下列格式中哪个是合法的( D)。

A) #define PI=3.14159 B) include "string.h" C) #include math.h; D) #define s(r) r*r 9.1.5 以下程序的输出结果是( B )。

#define MIN(x,y) (x)<(y)?(x):(y) main( )

{ int i=10,j=15,k; k=10*MIN(i,j);

printf("%d\\n",k); }

A) 10 B) 15 C) 100 D) 150 9.1.6 以下有关宏替换的叙述不正确的是( C )。

A) 宏替换只是字符替换 B) 宏名无类型

C) 宏名必须用大写字母表示 D) 宏替换不占用运行时间 9.1.7 设有以下宏定义,则执行语句“z=2*(N+Y(5+1));”后,z值为( C )。 #define N 3

#define Y(n) ((N+1)*n)

A) 42 B)

>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@)