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

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

..

else if(sec1>60) {hou=0;

min=sec1/60;

sec1=(sec1`);} return(sec1); }

⑷ 求一组学生成绩的总分、平均分、最高分和最低分的程序,编写如下:

main() {

float s,ave,score[100]; int I,m; clrscr();

printf(\输入学生人数: \scanf(\

printf(\输入%d个学生的成绩: \\n\for (i=0 ; i

scanf(\s=s+score[i]; }

printf(\总成绩 =%.2f\\n\ave=average(score,m);

printf(\最高分=%d\\n\printf(\最低分=%d\\n\printf(\平均成绩 =%.2f\}

float max=0,min=0; float average(array,n) float array[];int n; { int i;

float aver,sum=array[0]; max=min=array[0]; for(i=1;i

{ if(array[i]>max) max=array[i]; /*

else if(array[i]

sum=sum+array[i]; } aver=sum/n; /* 求取平均成绩 */ return(aver); /*

返回主程序值 */

;.

求最高分 */ 求最低分 */

..

}

⑸ 显示菜单并实现相应选择功能的程序,编写如下:

;.

#include main() {

int i;

while (i!=3) {

clrscr( );

printf(\

printf(\求整数 n 的立方\\n\printf(\求整数 n 的立方根 \\n\printf(\结束程序 \\n\printf(\scanf(\if (i==1) lifang();

else if (i==2) lifanggen(); } }

lifang() {

int n; long s;

printf(\scanf(\s=pow(n,3);

printf(\的立方为 :%ld\\n\\n\}

lifanggen() {

int n; double s;

printf(\scanf(\s=(double)1/3; s=pow(n,s);

printf(\的立方根为 :%f\\n\\n\}

用递归法求 n! 的程序,编写如下:

main()

..

{

long f(),t; int n;

printf(\scanf(\t=f(n);

printf(\的阶乘为 :%ld\}

long f(int n) {

static long s=1; if (n>1) f(n-1); s*=n; }

习题八

1、填空。

(1) 文件是存贮在外部存贮设备上的 _信息集合 _。一般分为 _程序_文件和 _ 数据_文件。

(2) C 语言文件存贮在磁盘上有两种形式 , 一种是按 _ASCII码存储 _, 另一种是按_二进制码存储 _。

(3) 定义文件指针变量的格式为 FILE *fp 。

(4) feof() 函数是_文件尾_ 检测函数 , 当文件位置指针处于 _文件尾 _ 时, 它 返回一个 非0_ 值。

(5) 对流式文件可以进行顺序读写 , 也可以进行随机读写 , 关键是 _如何控制文件的位置指针 _ 。

2、回答问题。

⑴ 有三大好处:①保存运算的中间结果或最终结果,方便使用;②将数据独立于程序之外,便于多处、多人共享;③事先录入保存所需数据,可以提高程序运行时的效率。

⑵ 在 ASCII 码文件中,一个字节代表一个字符,便于字符的输入输出处理, 但占用存储空间较大; 二进制文件占用的存储空间较小, 但在文件中, 一个字节并不代表一个字符。

⑶ w : 创建一个 ASCII 码文件只写;

r : 打开一个 ASCII 码文件只读; a: 打开一个 ASCII 码文件添加; wb: 创建一个二进制文件只写; rb+ :打开一个二进制文件读 / 写。

;.

..

⑷ 文件操作完以后及时关闭,可将文件指针脱离该文件,并将内存缓冲区中的数据写入磁盘,用以保证写入文件的数据完整。

⑸ EOF在 stdio.h 中定义为 -1 ,它也是一个合法的二进制整数,用 fgetc() 函数检查文件尾容易发生错判。

3、程序改错。

⑴ 该程序是要求将键盘上输入的一些字符写入磁盘文件 有两处错误:

fp=fopen(\② (向文件中写而不是读)

fgetc(fp);

示。程序中有两处错误:

① ( 当不是文件尾时才读取并统计 ) while(feof(p)==1) else if(i=0)f++;

应改为: while(feof(p)== 应改为: else if(i

0)

②( f 为存储负数的变量应取 i<0 )

<0)f++;

应改为: fputc ( c, fp);

⑵ 该程序是要求从文件中读并统计其正数、负数和零的个数,在屏幕上显

xt1.txt 中,程序中

① (检查文件是否存在且要向文件写,注意文件名和打开方式)

应改为: fp=fopen(\1.txt\

w\

4、编写程序。

⑴ 将字符串写入文件的程序,编写如下: #include FILE *fp; main() {

char a[2][8]={\fp=fopen(\fputs(a[0],fp); fputs(a[1],fp); fclose(fp); }

⑵ 将字符串从文件中读出的程序,编写如下:

#include FILE *fp; main() {

char *a;

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

fgets(a,13,fp); clrscr();

;.