2012年自考“高级语言程序设计”经典习题及答案(29)_工学-查字典自考网
 
请输入您要查询的关键词
  查字典自考网 >> 工学 >> 2012年自考“高级语言程序设计”经典习题及答案(29)

2012年自考“高级语言程序设计”经典习题及答案(29)

发布时间: 2016-06-29 来源:查字典自考网

4.编一个程序,输入下列学生成绩表中的数据,并用结构体数组存放,然后统计并输出三门课程的名称和平均分数。

name foxbase pascal c

wang 98.0 87.0 77.0

qian 90.5 91.0 88.0

sun 74.0 77.5 66.5

li 84.5 64.5 55.0

“解”类似上一程序,直接给出程序如下:

# include

# include

# define N 100

struct stu {

char namep[20];

int foxbase;

int pascal;

int c;

} students[N], *p;

void main ()

{ int n, sf, sb, sc;

char buf[120];

printf(“输入n(< %d) ! n”, N);

do {

scanf(“%d”, &n);

if(n0 && n

printf(“输入 n不合理! 请重新输入! n”);

} while(1);

printf(“输入%d个人的姓名、Foxbase成绩、Pascal成绩、C成绩 n”, n);

for( p= students;p< students+n; p++);

scanf(“%s”,buf );strncpy(p - name, buf, 19);

scanf(“%d%d%d”, &p - foxbase,&p - pascal,&p - c)

}

sf=sb=sc =0;

for( p=students; p

sf+= p - foxbase; sb+= p - pascal; sc+= p - c;

}

printf(“Foxbase:%.2f t Pascal:%.2f t c:%.2f n”,

(float)sf/n,(float)sb/n,(float)sc/n);

}

8.1 单项选择题

1.若与文件型指针中相关联的文件的当前读位置已到了文件的末尾,则函数feof(fp)的返回值是( )

①0 ②-l

③非零值 ④NULL

“解”当调用fopen函数时,系统将为实参文件设定一个存放文件读写控制信息的控制块。该控制块记录有关文件持征、使用方式,当前读写位置等文件状态,并将该控制块的指针返回,作为文件指针变量的值。以后程序通过该指针调用函数时,系统能访问到这个控制块,利用该文件控制块中的控制信息,正确完成文件的读或写。所以文件指针并不真正指向文件当前读写位置,但通过文件指针,系统能在文件控制块中访问文件的当前读写位置。若某文件与文件指针中相关联着,该文件的当前读写位置在文件的末尾时,函数调用feof(fp)的返回值是一个非零值。所以正确解答是③。

2.下列语句中,将C定义为文件型指针的是( )

① FILE c; ② FILE *c; ③ file c; ④ file *c;

“解”如上题所述,文件控制块的类型已由系统命名为FILE.所以定义文件指针变量是C,就得用代码:“FILE *c;”。所以正确解答是②。

3.标准库函数fputs(pl,p2)的功能是( )

①从pl指向的文件中读一个字符率存入p2指向的内存

②从p2指向的文件中读一个字符串存入pl指向的内存

③从pl指向的内存中的一个字符串输出到p2指向的文件

④从p2指向的内存中的一个字符串输出到pl指向的文件

“解”标准函数调用fputs(p1,p2)完成的功能是将由字符指针pl所指的字符串内容输出到与文件指针p2相关联的文件中,即将从pl所指的内存中的字符串内容输出到p2所指向的文件中。所以正确解答是③。

8.2 填充题

1.“FILE *p”的作用是定义一个______,其中的“FILE”是在________头文件中定义的。

“解”代码“FILE *p”的作用是定义一个文件指针变量,其中的FILE是在标准输入输出头文件stdio.h中定义的。

2.在对文件进行操作的过程中,若要求文件的现行位置回到文件的开头,应当调用的函数是_______函数。

“解”若要让文件随机地从某个现行位置回到文件的开头,可调用库函数rewind( )。

f2);

}

fclose(f1);

fclose(f2);

}

“解”程序首先以读方式打开文件pl.c,以写方式打开文件P2.c.程序在文件pl.c未结束之前读入l000个字符复制到文件p2.c.然后关闭这两个文件。所以程序的功能是将文件pl.c的前l000个字符复制到文件p2.c.子目录字符‘’在C语言中作为转义字符的引导字符,若在字符串中要用这个字符,必须双写该字符。如C盘根目录tc子目录文件p1.c,在C程序中应写成字符串“c: c pl.c.

2.假定在当前盘当前目录下有2个文本文件,其名称和内容如下:

文件名 al.txt a2.txt

内容 121314 # 252627#

写出运行下列程序后的输出。

# include

# include

void fc( FILE *);

main()

{ FILE *fp;

if( fP= fopen(“al.txt”, “r”))== NULL)

{ printf(“Can not open file! n”);

exit(l);

}

else{ fc(fp); fclose(fp); }

if(( fp = fopen(“a2.txt”,“r”))==NULL)

{ printf(“Can not open file! n”);

exit(1);

}

else { fc(fp); fclose(fp); }

}

void fc(fp1)

FILE *fpl;

{ char c;

while((c=fgetc(fpl))!=‘#’) putchar(c);

}

“解”程序以读方式打开文件a1.txt,若能正常打开,则调用函数fc.接着同样地,以读方式打开文件a2.txt,若能正常打开,也调用函数fc.函数企从指定的文件读入字符,在读入字符不是字符‘#’情况下循环,将读人字符输出。对于文件a1.txt,程序输出121314,对于文件a2.txt,程序输出252627.所以程序输出121314252627.

点击显示
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读

当前热点关注

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • [相关地区]