《C语言编程基础》习题答案 联系客服

发布时间 : 星期三 文章《C语言编程基础》习题答案更新完毕开始阅读d5a09d456aec0975f46527d3240c844768eaa0e2

..

printf(\fclose(fp); }

⑶ 将三个数写入文件的程序,编写如下: #include FILE *fp; main() {

int a,b,c;

fp=fopen(\

fprintf(fp,\fclose(fp); }

⑷ 将数值从文件中读出并求其和的程序,编写如下: #include FILE *fp; main() {

int a,b,c;

if (!(fp=fopen(\{ printf(\exit(1);}

fscanf(fp,\

printf(\fclose(fp); }

⑸ 将 10 个整数写入文件的程序,编写如下: #include FILE *fp; main() {

int i,a[10]={8,2,6,4,5,9,1,3,7,4}; fp=fopen(\for (i=0;i<10;i++) {

fwrite(&a[i],2,1,fp); }

fclose(fp); }

⑹ 将指定位置的整数从文件中读出的程序,编写如下:

;.

..

#include FILE *fp; main() {

int n,i,num;

if (!(fp=fopen(\{printf(\exit(1);}

printf(\输入数值 i:\scanf(\n=2*(i-1);

fseek(fp,n,SEEK_SET); fread(&num,2,1,fp);

printf(\第%d号数据是 :%d\\n\fclose(fp); }

习题九

1.选择题。

⑴ 将 C的库函数中数学函数库的头文件包含到程序中,应在程序的头部加上 ( C ) 。

⑵ 欲将一个文件 file.c

包含到程序中,应该在程序的头部加上(

B )。

B )符号开头的。

A )。

⑶ “文件包含”预处理语句的使用形式中, 当#include 后面的文件名用“ ” 括起时,寻找被包含的文件的方式为(

⑷ 在 C语言中,编译预处理命令都是以( 2、分析下列程序,写出运行结果。

⑴ 该程序是定义了一个带参数的宏: S(x) ,在程序运行时它的置换内容是 x*x ,用实参代替形参后计算( 3+1)的平方。其运行结果为:

a=16

⑵ 该程序是定义了一个带两个参数的宏: MIN(x,y) ,在程序运行时它的置换内容是条件表达式 (x)<(y)?(x):(y)

500

⑶ 该程序运行时,先执行宏 PRINT1,输出 A*B 的值,然后执行宏 PRINT, 输出回车换行;最后执行宏 PRINT2,输出 (A+1)*(B+1) 的值,运行结果为:

15 24

⑷ 在该程序中,定义宏时用了宏嵌套,控制循环终值的宏

(M+1)*M/2=(N+1+1)*[(N+1)/2]=(2+1+1)*[(2+1)/2]=4*2=8 运行结果为:

,用实参代替形参后其运行结果为:

NUM,其值应为:

;.

..

12345678

3、编程题。

⑴ 用带参数的宏实现求两个整数相除取余的程序,编写如下:

;.

#define DIV(x,y) x%y main() {

int a,b,d;

scanf(\d=DIV(a,b); printf(\}

利用宏按从大到小顺序输出 3 个整数的程序,编写如下:#define chag(x,y) (x=x+y,y=x-y,x=x-y) main() {

int a,b,c;

printf(\输入 3 个整数:\\n\scanf(\if (a

printf(\}

按题目要求,利用条件编译方法编写程序如下:#include #define LOWCASE 0 main() {

char *a;

printf(\输入字符串 :\\n\scanf(\#if LOWCASE a=strlwr(a); #else

a=strupr(a); #endif

printf(\}

习题十

..

1. 选择题。

⑴ 若已定义“int *p,a; ”,则语句“p=&a”中的运算符“ &”的含义是( D )。 ⑵ 执行该程序断后, a 的值为( B ) 。 ⑶ 该程序段的运行结果是( A ) 。 ⑷ 若有定义 int a[3][5],i,j; 不正确的是( D ) 。

⑸ 设有语句“ int (*p)()

”,则 p 是一个( B )。

⑹ 给出程序的输出结果为( A ) 。

2. 填空题。

(且 0≤ i < 3,0 ≤j <5) ,则 a[i][j] 的地址

⑴ 以下程序用来输出字符串。

printf(

“ %s\\n”,

*p );

⑵ exchange 函数的调用语句为“ exchange(&a,&b,&c); ”。他将 3 个数按由小到大的顺序调整后依次放入 a,b,c 三个变量中, a 中放最大值,请填空。

if(*q3>*q2) swap( if(*q1<*q3) swap( if(*q1<*q2) swap( while(j<10) scanf( void func(int x,int y, _ { *z=x+y; }

⑸ 该程序的输出结果是 7 。

q2,q3 ); q1,q3 ); q1,q2 ); “%d” ,

&a[j] );

⑶ 以下程序段完成给数组所有元素输入数据。

⑷ 以下函数用来求出两整数之和,并通过形参将结果传回,请填空。

int * _ z)

3. 分析下列程序,写出运行结果。

⑴ 该程序用指针变量取得 a、b 的地址,用来比较哪个地址中变量的值更大并输出。运行结果如下:

max=33

⑵ 该程序用指针变量做循环控制变量,控制输出字符的个数。运行结果如下:

ABCDE BCDE CDE DE E

⑶ 利用指针做函数参数,在执行子函数时,将 值赋给了 d。输出 c、d,运行结果如下:

7,1

a+b 的值赋给了 c,a-b 的

;.