热门搜索 :
考研考公
您的当前位置:首页正文

第十次课作业

来源:伴沃教育


第十次课作业:

习题10-1:

81题码: 章节:数组 考查点:一维字符数组的使用,字符串结束标志的掌握 难度:2

编写一程序P7-726.C实现以下功能

从键盘上读入一行字符,在屏幕上输出该行字符的长度及内容(先输出长度,后输出内容)。

注意:

(1)以回车表示行结束且回车不计入输入内容。若读入过程中发生错误或遇到文件结束,则也表示行输入结束。

(2)若用户输入时输入了很多字符,则仅读入前100个字符。

(3)不能使用库函数gets、fgets、strlen或使用同名的变量、函数、单词。

(4)编程可用素材:printf(\"input a string: \")...、printf(\"\\nThe string lenth is: ...、printf(\"\\nThe string is: ...。

程序的运行效果应类似地如图1所示,图1中input a string: 123456 vdget 7u84,y37f部分之123456 vdget 7u84,y37f是从键盘输入的内容。

1 / 10

图1 程序运行效果示例

提示:

1、 由于先输出字符长度,后输出内容,所以应将输入字符存入内存中的字符数组str[101](因最多读入100个字符

2、 由于不能使用gets、fgets、strlen函数,只能一个一个字符输入,即ch=(char)getchar();或ch=(char)fgetc(stdin)

3、 遇到回车和文件结束都表示行输入结束,所以循环输入时的条件为

while((ch=(char)fgetc(stdin)) != ‘\\n’ && !feof(stdin))

{

将ch赋给str[i];

i自增;

若输入字符个数已经100,则终止循环;

}

2 / 10

习题10-2:

88题码:1 章节:文件操作 考查点: 难度:2 编写一程序P3-317.C实现以下功能

根据输入的源文件名(含路径, <100字节)和目标文件名(含路径, <100字节),实现将源文件复制到目标文件。注意事项:

(1)源文件可能是文本文件,也可能是二进制文件。

(2)程序的返回值(即由main函数return的值和程序使用exit终止运行时返回的值,也称退出代码)规定为:

①复制成功返回0 ②源文件打开失败返回2 ③目标文件创建失败返回3 ④向目标文件写数据的过程中出错返回4

(3)向目标文件写数据的过程中出错的情况很少发生,考生根据图例中的输入数据进行测试时,很可能不会出错,但程序应考虑出错的情况。

(4)编程可用素材:printf(\"Please input sourceFilename: \")...、

printf(\"Please input destinationFilename: \")...、 printf(\"\\ncopy %s to %s successed!\\n\、printf(\" \\nsource File (%s) Open Error!\\n\、printf(\" \\ndestination File (%s) Create Error!\\n\、printf(\" \\nwriting destination File (%s) Error!\\n\。

程序的运行效果应类似地如图1、图2、图3和图4所示,图1中的C:\\Temp\\Test.dat和D:\\CpOk.doc、图2中的C:\\Temp \\TestN.dat和D:\\Dsm.dat、图3中的C:\\Temp\\Test.dat和D:\\noDir\\Dsm.dat、图4中的C:\\Temp \\Test.dat和D:\\Wer.dat是从键盘输入的内容。

3 / 10

图1 源文件存在,目标文件创建成功,复制正常完成 图2 源文件打开失败

图3 目标文件创建失败 图4 向目标文件写数据的过程中出错

提示:

程序设计思路如下:

打开源文件,判断失败否,失败,return 2;

打开目标文件,判断失败否,若失败,关闭源文件,return3;

while(源文件没有结束)

从源文件读一个字符到内存变量ch;

if(ch不是结束符)

4 / 10

if(写入目标文件失败)

关闭源文件和目标文件,retutn4

正常复制完毕

关闭源文件

关闭目标文件

上述程序可参见课件中的文件复制程序,但注意区别:本题源文件可能是文本文件,也可能是二进制文件

习题10-3:

91题码: 章节:数组 考查点:一维字符数组的使用,字符串结束标志的掌握 难度:2

根据要求编写程序P7-780.C的指定部分:

5 / 10

程序P7-780.C已编写部分代码(单击此处下载),请根据程序中的要求完善程序——注意,除指定位置外,不能对程序中已有部分作任何修改或重新编写一个程序,否则作0分处理。

程序的功能为从键盘上读入一行字符,在屏幕上输出该行字符的长度及内容(先输出长度,后输出内容),具体要求有:

(1)以回车表示行结束且回车不计入输入内容。若读入过程中发生错误或遇到文件结束,则也表示行输入结束。

(2)若用户输入时输入了很多字符,则仅读入前100个字符。

(3)不能使用库函数gets、fgets、strlen或使用同名的变量、函数、单词。

程序的运行效果应类似地如图1所示,图1中input a string: 123456 vdget 7u84,y37f部分之123456 vdget 7u84,y37f是从键盘输入的内容。

图1 程序运行效果示例

提示:

此题参见81题,只是通过函数完成相应部分功能

习题10-4:

6 / 10

101题码: 章节:文件操作 考查点:文件读入(文本制文件),字符串的处理,文件结束的控制 难度:4

编写一程序P3-315.C实现以下功能

程序运行时,先从键盘输入一个文本文件的文件名(约定:字符数≤127字节,可含路径)和一个字符串(约定:字符数≤20字节,其中不含空格、TAB 等,后面称之为Str),再在屏幕上显示该文件的内容。要求显示完内容后,在屏幕上输出文件的行数(行之间以’\\n’为分隔、每行的长度不定但均≤200 个字节)、字符串Str在文件中第1次出现的行号和最后一次出现的行号(查找时不区分大小写、不跨行查找,若未找到,则行号显示为-1)。注意,程序中不 能使用库函数fgets或使用同名的变量、函数、单词,行的编号从1开始计。

单击此处下载程序运行时测试用的文件315.txt。 编程可用素材:

printf(\"input the file's name and the string: \")...、 printf(\"\\nfile open error!\")...、 printf(\"------------------------File content:----------------------\\n\")...、 printf(\"\\n------------------------File summary:---------------------- \\n\")...、printf(\"... lines, first line: ..., last line: ...\\n\"...。

程序的运行效果应类似地如图1所示,图1中的“input the file's name and the string: C:\\Temp \\315.txt Value”中的“C:\\Temp\\315.txt Value”是从键盘输入的内容“(C:\\Temp\\315.txt”是文件 名,“Value”是需查找的字符串)。图1中的“11 lines, first line: 6, last line: 11”表示文件一共有11 行,字符串“Value”在文件中第一次出现的行号为6、最后一次出现的行号为11。

7 / 10

图1 程序运行效果示例

提示:

1、 请先下载315.txt文件,注意观察,文件中的每一行除最后一行外都是以‘\\n’结束,最后一行以EOF结束

2、 既然文本要求原样输出,可以从文件中每读一个字符就向屏幕输出(即写入标准输出文件——屏幕),也可以先读一行到内存中的字符数组中,形成一个字符串(字符串可定义为:temp[201]),然后输出,

3、 要求在每行中查找字符串str(如图Value,str[21]),查找时不区分大小写、不跨行查找,则可以使用

strstr(temp,str)函数完成查找功能,该函数原型为char *strstr(char *str1, char *str2),功能为查找字符串str2在字符串str1中出现的第一个位置 ,返回该位置的指针。由于不区分大小写,可以使用strlwr(temp)、strlwr(str)将各字符串中的大写字母全部转为小写字母

4、 中心段程序设计思路

如果(文件没有结束)(循环)

读一个字符到内存的ch

如果(ch既不是换行符也不是结束符)(选择)

8 / 10

将ch赋给temp[i];

i自增;

否则

每行字符串结束

行数自增

向屏幕输出每行字符串

用strlwr将str和temp所存放的字符串转为小写字符;

如果 (strstr(temp, str) != NULL)

{

如果 (first == -1)

{

记录str字符串第一次出现的行号

9 / 10

}

记录str字符串最后一次出现的行号

}

10 / 10

因篇幅问题不能全部显示,请点此查看更多更全内容

Top