寒假作业Day 07

寒假作业Day 07

一、选择题

函数rewind的作用是使文件位置指针重新返回文件的开始位置。这是C语言程序中的库函数,它针对的是文件内部的位置指针,而不是文件指针。文件内部的位置指针会随着对文件的读写操作而向后移动,而文件指针则是指向整个文件,如果不重新赋值,文件指针不会改变。通过调用rewind函数,可以方便地将文件位置指针重置为文件的开头,从而可以重新读取文件的内容。

所以正确选项为A

对于Windows系统,文件路径使用反斜杠()作为分隔符。然而,在C语言字符串中,反斜杠是一个转义字符,因此如果你想在字符串中表示一个反斜杠,你需要使用两个反斜杠(\)。
因此,正确的文件路径格式应该是:

"c:\user\text.txt"
或者,你可以使用双引号来包围路径,这也是一种常见的做法,尤其是在路径中包含空格或其他特殊字符时:

C: "c:\user\text.txt"
所以,选项B和C都是正确的,但C中的路径使用了双引号,这在某些情况下可能更有帮助。然而,如果路径是硬编码在程序中的,并且不包含空格或特殊字符,那么是否使用双引号通常是可选的。选项A是错误的,因为它使用了错误的路径分隔符(正斜杠/而不是反斜杠\),而选项D虽然正确地使用了两个反斜杠来表示一个反斜杠,但它使用了不必要的双引号。

3、下面的程序执行后,文件 test.txt 中的内容是( )

c 复制代码
#include<stdio.h>
void fun (char *fname,char *st)
{
	FILE *myf;
	int i;
	myf = fopen(fname,"w");
	for (i = 0; i < strlen(st); i++) fputc(st[i], myf);
		fclose(myf);
}
int main()
{
	fun("test.txt","new world");
	fun("test.txt","hello,");
	return 0;
}

*这题的运用对于文件指针需要较为熟练的掌握
函数 fun

fun 函数接受两个字符指针参数:fname 和 st。
fname :是一个字符串,表示要写入的文件名。
st :是另一个字符串,表示要写入文件的内容。

函数的功能如下:
声明一个 FILE 指针 myf,用于操作文件。

使用 fopen 函数以写入模式("w")打开名为 fname 的文件,并将返回的文件指针赋给 myf。

使用 for 循环和 fputc 函数将 st 中的每个字符写入文件。这里使用了 strlen(st) 来获取 st 的长度,从而确定循环的次数。

使用 fclose 函数关闭文件。
调用 fun 函数两次:

第一次调用将字符串 "new world" 写入文件 "test.txt"。

第二次调用将字符串 "hello," 写入文件 "test.txt"。

由于 fun 函数使用写入模式("w")打开文件,第二次调用会覆盖第一次写入的内容。因此,最终 "test.txt" 文件的内容将是 "hello,"。

4、函数( )把文件位置重定位到文件中的指定位置

A: fseek B: fread C: fopen D: fgets

函数 fseek 用于把文件位置重定位到文件中的指定位置。它允许你根据文件的起始位置、当前位置或文件的末尾来移动文件的位置指针。

fread 用于从文件中读取数据,fopen 用于打开文件,而 fgets 用于从文件中读取一行文本。这些函数并不直接用于重定位文件位置指针。

5、若调用 fputc 函数输出字符成功,则其返回值是( )

A: EOF B: 1 C: 0 D: 输出的字符

fputc 函数用于将一个字符写入文件。如果写入操作成功,fputc 的返回值是写入的字符。如果发生错误,它会返回 EOF(End Of File),这是一个特殊的值,通常在大多数系统中被定义为 -1。

二、编程题

c 复制代码
int trailingZeroes(int n) {  
    int count = 0;  
    while (n) {  
        n /= 5;  
        count += n;  
    }  
    return count;  
}

为了准确地计算 n 阶乘的尾随零的数量,你可以使用以下的方法:
尾随零的数量是由阶乘中因子 10 的数量决定的。

因子 10 是由 2 和 5 相乘得到的。

在 n 阶乘中,因子 2 的数量总是比因子 5 的数量多,因此尾随零的数量由因子 5 的数量决定。

因子 5 可以直接来自数字 5,或者来自 25(有两个 5),或者来自 125(有三个 5),以此类推。
这个函数的工作原理是:每次将 n 除以 5,这样我们就可以计算出 n 中包含多少个 5 的因子(包括那些隐藏在像 25、125 这样的数字中的 5)。然后我们将得到的商加到计数中,因为每个这样的商都会再贡献一个 5 的因子。

c 复制代码
#include <stdio.h>

int main() {
    float n;
    float ret;
    scanf("%f",&n);
    int num=(int)n;
    ret=n-num;
    if(ret>=0.5){
        printf("%d",num+1);
    }

    else{
        printf("%d",num);
    }
}

这里我们的准则是四舍五入,所以我们用num来记录n的整数部分,而用ret记录n的小数部分,并利用四舍五入这个规则进行判断

相关推荐
JSU_曾是此间年少21 分钟前
数据结构——线性表与链表
数据结构·c++·算法
sjsjs1128 分钟前
【数据结构-合法括号字符串】【hard】【拼多多面试题】力扣32. 最长有效括号
数据结构·leetcode
朱一头zcy1 小时前
C语言复习第9章 字符串/字符/内存函数
c语言
此生只爱蛋1 小时前
【手撕排序2】快速排序
c语言·c++·算法·排序算法
blammmp1 小时前
Java:数据结构-枚举
java·开发语言·数据结构
何曾参静谧2 小时前
「C/C++」C/C++ 指针篇 之 指针运算
c语言·开发语言·c++
昂子的博客2 小时前
基础数据结构——队列(链表实现)
数据结构
lulu_gh_yu2 小时前
数据结构之排序补充
c语言·开发语言·数据结构·c++·学习·算法·排序算法
~yY…s<#>4 小时前
【刷题17】最小栈、栈的压入弹出、逆波兰表达式
c语言·数据结构·c++·算法·leetcode
XuanRanDev5 小时前
【每日一题】LeetCode - 三数之和
数据结构·算法·leetcode·1024程序员节