Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1207679
  • 博文数量: 322
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 3276
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-17 09:21
文章分类

全部博文(322)

文章存档

2010年(155)

2009年(167)

我的朋友

分类: 嵌入式

2009-12-19 09:17:56

10.1    选择题
(797)    下面函数那些是基于数据块的读写_____。
a.int feof(FILE *fp)
b.int fprintf(FILE *fp, const char *control_string)
c.unsigned fwrite(void *buffer, int size, int n, FILE *fp)
d.unsigned fread(void *buffer, int size, int n, FILE *fp)
(d)
(798)    设有以下结构体类型_____。
struct st
{
char name[8];
int num;
float s[4];
}student[50];
并且结构体数组student中的元素都已有值,若要将这些元素写到Flash文件fP中,以下不正确的形式是______。
a. fwrite(student, sizeof(struct st), 50, fp);
b. fwrite(student, 50*sizeof(stuct st), 1, ft);
c. fwrite(student, 25*sizeof(struct st), 25, fp);
d. for(i = 0; i < 50; i++)
()
(799)    若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串不应该是____。
a. "ab+"
b. "wb+"
c. "rb+"
d. "ab"
(d)
(800)    以下read函数的调用形式中,参数类型不正确的是_____。
a. read(int fd, char *buf, int count)
b. read(int  *buf, int fd, int count)
c. read(int fd, int count, char  *buf)
d. read(int count, char *buf, int fd)
(b)
(801)    fscanf函数的不正确调用形式是____。
a. fscanf(fp, 格式字符串, 输出表列),
b. fscaRf(格式字符串, 输出表列, fp);
c. fscanf(格式字符串, 文件指针, 输出表列)
d. fscanf(文件指针, 格式字符串, 输入表列)
(b)
(802)    若以"a+"方式打开一个已存在的文件.则以下叙述不正确的是____。
a. 文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作
b. 文件打开时,原有文件内容不被删除,位置指针移到文件开头和谈操作
c. 文件打开时,原有文件内容被删除,只可作写操作
d. 以上各种说法皆不正确
(a)
(803)    feek函数的正确调用形式是______。
a. fseek(文件类型指针,起始点,位移量);
b. fseek(文件类型指针,位移量,起始点);
c. fseek(位移量,起始点,b);
d. fseek(起始点,位移量,文件类型指针);
(b)
(804)    下面语句不正确的是_____。
a. 打开文件 FILE1:fi = fopen("FILE1", "w");
b. 关闭已打开的 FILE1:fclose(fi);
c. 从文件 FILE1 中读取了一个字符串:fscanf(fi,"%s", str); 
d. 把数据写入一个打开的文件:fprintf("general file", fi);
(d)
(805)    若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为_____。
a. 0        b. 1        c. -1        d. 一个非0值
(a)
(806)    下列关于C语言数据文件的叙述中正确的是_____。
a. 文件由ASCII码字符序列组成,C语言只能读写文本文件
b. 文件由二进制数据序列组成,C语言只能读写二进制文件
c. 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
d. 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
(d)
(807)    C语言中的文件类型划分为     。
a. 索引文件和文本文件两种   b. ASCII文件和二进制文件两种
c. 只有文本文件一种         d. 只有二进制文件一种
(b)
10.2    填空题
(808)    下面程序用变量const统计文件中字符的个数。请在横线处填入适当内容。
#include
 
main()
{
    FILE *fp;
long count = 0;
    If ((fp = fopen("letter.dat", _______)) == NULL)
    {
        printf("cannot open file\n");
        exit(0);
    }
 
    while (!feof(fp))
{
_____________;
_____________;
}
    printf("count=%ld\n",count);
    fclose(fp);
}
10.3    问答与设计
(809)    指出下面程序的错误并改正:
#include
void main(int argc, char *argv[])
{
char c;
FILE *fp1, *fp2;
If (argc != 3)
{
printf("Be lack of parameters\n");
exit(1);
}
if (((fp1 = fopen(argv[1], "rb")) == NULL) || ((fp2 = fopen(argv[2], "w+b")) == NULL))
{
printf("Can not open the file\n");
exit(1);
}
while (!feof(fp1))
{
c = getc(fp1);
putc(c, fp2);
}
fclose(fp1);
fclose(fp2);
}
(810)    阅读下面程序,说明其功能:
#include
 
main()
{
FILE *fp;
T_S8 ch;
if ((fp = fopen("file2.txt", "w")) == NULL)
{
printf("can't open this file");
exit(-1);
}
 
while ((ch = getchar()) != '\n')
{
  fputc(ch, fp);
}
 
fclose(fp);
}
(811)    阅读下面程序,说明其功能:
#include
 
main()
{
FILE *fp;
T_S8 ch;
If ((fp = fopen("file2.txt", "r")) == NULL)
{
printf("can't open this file");
exit(-1);
}
 
while ((ch = fgetc(fp)) != EOF)
{
putchar(ch);
}
 
fclose(fp);
}
(812)    阅读下面程序,说明其功能:
#include
 
main()
{
FILE *fp;
T_S8 ch;
If ((fp = fopen("file1.txt", "r")) == NULL)
{
printf("can't open this file");
exit(-1);
}
 
while (fgets(string, 81, fp) != NULL)
{
printf("%s", string);
}
 
fclose(fp);
}
(813)    阅读下面程序,说明其功能:
#include
 
main()
{
  FILE *fp;
  T_S8 ch;
  If ((fp = fopen("file3.txt", "r")) == NULL)
{
  printf("can't open this file");
  exit(-1);
}
fseek(fp, 0L, 2)
 
  while ((fseek(fp, -1L, 1)) != -1)
{
  ch = fgetc(fp);
putchar(ch);
  if (ch == '\n')
  {
    fseek(fp, -2L, 1);
}
else
{
  fseek(fp, -1, 1);
}
 
fclose(fp);
}
}
 
(814)    阅读下面程序,说明其功能:
#include
T_S8 buff[512];
 
Main(int argc, char *argv[])
{
  T_U16 bfsz = 32768;
  T_S16 n = 0;
  T_S8 ch;
  FILE *fp1, fp2;
  If ((fp1 = fopen(argv[1], "rb")) == 0)
  {
    printf("can't open file %s", argv[1]);
    exit(-1);
}
if ((fp2 = fopen(argv[2], "wb")) == 0)
{
  printf("can't open file %s", argv[2]);
  exit(-1);
}
 
while (fread(buff, bfsz, 1, fp1))
{
  fwrite(buff, bfsz, 1, fp2);
  n++;
}
fseek(fp1, 512L*n, 0);
ch = fgetc(fp1);
 
while (!feof(fp1))
{
  fputc(ch, fp2);
  ch = fgetc(fp1);
}
 
fclose(fp1);
fclose(fp2);
}
 
(815)    请说明实现文件连接的算法。
(816)    有两个Flash文件,各自存放若干已排好序的字符,要求将两个文件合并,合并后仍然保持有序。请说明实现算法。
 
(817)    什么是流(stream)?
(818)    怎样重定向一个标准流?
(819)    怎样恢复一个重定向了的标准流?
(820)    stdout能被强制打印到非屏幕设备上吗?
(821)    文本模式(textmode)和二进制模式(binarymode)有什么区别?
(822)    怎样读写以逗号分界的文本?
(823)    怎样判断是使用流函数还是使用低级函数?
(824)    怎样列出某个目录下的文件?
(825)    怎样列出一个文件的日期和时间?
(826)    怎样对某个目录下的文件名进行排序?
(827)    怎样判断一个文件的属性?
(828)    怎样查看PATH环境变量?
(829)    怎样打开一个同时能被其它程序修改的文件?
(830)    怎样确保只有当前程序能存取一个文件?
(831)    怎样防止其它程序修改当前正在修改的那部分文件内容?
(832)    怎样避开"Abort,Retry,Fail"消息?
阅读(832) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~