一个应用程序的C语言源程序通过printf语句在标准输出输出信息,运行时只要使用输出重定向机制,不需要修改原先的程序加入文件操作的代码,就可以把输出结果存入指定名字的文件。

题目

一个应用程序的C语言源程序通过printf语句在标准输出输出信息,运行时只要使用输出重定向机制,不需要修改原先的程序加入文件操作的代码,就可以把输出结果存入指定名字的文件。


相似考题
参考答案和解析
char *fun(char *s char *t) { int ii; for(i=0;s[i]!= '\\0';i++); /*求字符串的长度*/ for(j=0;t[i]!= '\\0';j++); if(i>=j) /*比较两个字符串的长度*/ return s; /*函数返回较长的字符串若两个字符串长度相等则返回第1个字符串*/ else return t; } char *fun(char *s, char *t) { int i,i; for(i=0;s[i]!= '\\0';i++); /*求字符串的长度*/ for(j=0;t[i]!= '\\0';j++); if(i>=j) /*比较两个字符串的长度*/ return s; /*函数返回较长的字符串,若两个字符串长度相等,则返回第1个字符串*/ else return t; } 解析:本题中,第1个for循环的作用是求出s的字符个数i,第2个for循环的作用是求出t的字符个数j,因为任何循环都要控制一条语句,所以在每一个for循环条件后面必须要有一个分号。 本题也可用如下技巧: char*fun(char*s,char*t) {if(strlen(s)>=strlen(t)return s; else return t; }
更多“一个应用程序的C语言源程序通过printf语句在标准输出输出信息,运行时只要使用输出重定向机制,不需要修改原先的程序加入文件操作的代码,就可以把输出结果存入指定名字的文件。”相关问题
  • 第1题:

    格式化输出可把格式化数据输出到标准输出、指定文件及字符缓冲区。其中()函数是将格式化数据输出到指定大小的字符缓冲区。()

    A.printf

    B.f printf

    C.s printf

    D.sn printf


    正确答案:D

  • 第2题:

    设有如下程序段:int x=2002,y=2003;printf(“%d\n”, (x,y)); 则以下叙述中正确的是

    A.输出语句中格式说明符的个数少于输出项的个数,不能正确输出

    B.运行时产生出错信息

    C.输出值为2002

    D.输出值为2003


    正确答案:D
    解析:逗号运算符的结合性为从左到右,其一般形式为“表达成1,表达式2”,整个表达式的值为表达式2的值。故4个选项中选项D符合题意。

  • 第3题:

    在源程序的开始处加上“include”进行文件引用的原因,以下叙述正确的是( )。

    Astdio.h文件中包含标准输入输出函数的函数说明,通过引用此文件以便能正确使用prinff、scanf等函数

    B将stdio.h中标准输入输出函数链接到编译生成的可执行文件中,以便能正确运行

    C将stdio.h中标准输入输出函数的源程序插入到引用处,以便进行编译链接

    D将stdio.h中标准输入输出函数的二进制代码插入到引用处,以便进行编译链接


    答案:A

  • 第4题:

    重定向的符号“>”表示:()

    • A、输出追加
    • B、输入追加
    • C、输出重定向,原来的文件会被改写
    • D、管道

    正确答案:C

  • 第5题:

    在bash的shell环境中关于>和>>符号描述正确的是()。

    • A、>将标准输出信息添加到一个以存在的文件中,>>将标准输出信息写入一个新文件中
    • B、>将标准输出信息写入一个新文件,>>将标准输出信息添加到一个已存在的文件中
    • C、>将标准出错信息写入一个新文件,>>将标准出错信息添加到一个已存在的文件中
    • D、以上都不对

    正确答案:B

  • 第6题:

    将显示的内容输出到指定文件的SQL*Plus命令及说法错误的是()。

    • A、使用的SQL*Plus命令是:SQL>SPOOLfile_name
    • B、只有关闭spool输出,才能在输出文件中看到输出的内容
    • C、关闭spool输出的SQL*Plus命令是SQL>SPOOLOFF
    • D、在屏幕上的内容都包含在该文件中,但不包括输入的sql语句

    正确答案:D

  • 第7题:

    若操作系统把一条命令的执行结果输出给下一条命令,作为它的输入并加以处理,这种机制称为()

    • A、链接
    • B、管道
    • C、输入重定向
    • D、输出重定向

    正确答案:B

  • 第8题:

    下列哪一个命令能被用来重定向管道的输出到标准输出和指定的文件中?()

    • A、CAt
    • B、less
    • C、tee
    • D、wee

    正确答案:C

  • 第9题:

    问答题
    使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错误,请改正其中的错误,使程序正确运行。并且使程序输出的结果为:  OK  注意:错误的语句在//********error********的下面,修改该语句即可。

    正确答案: 1.将语句“virtual void func();”修改为“virtual void func()=0;”
    2.将语句“cout<<OK<endl;”修改为“cout<<OK<<endl;”
    3.将语句“CDerive1 *p = (CDerive1*) obj;”修改为“CDerive1 *p=(CDerive1*) &obj;”
    解析:1.类CDerive1中的func()函数是纯虚函数,定义格式为:virtual <函数类型> <函数名> (<参数表>)=0,因此第1个标识下应将语句“virtual void func();”修改为“virtual void func()=0;”。
    2.第2个标识下的cout流中,输出数据用流插入运算符“<<”顺序加入,应改成“cout<<OK<<endl;”
    3.虚函数有非多态调用和多态调用两种调用方式,非多态调用是指不使用指针或引用的直接调用,多态调用是指通过对象的指针或引用的调用。主函数定义了CDerivel*p,p是基类CDerive1的指针,采用多态调用方式,将派生类对象的地址赋给基类指针p,因此第3个标识下应改为“CDerive1 *p=(CDerive1*) &obj;”。
    解析: 暂无解析

  • 第10题:

    问答题
    使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错误,请改正其中的错误,使程序正常运行,并且输出以下结果:  4,5.  7,8  4,8.  注意:错误的语句在//******error******的下面,修改该语句即可。

    正确答案: 1.将语句“virtual void move(int a; int b)”修改为“virtual void move(int a, int b)”
    2.将语句“CObj1(int i, int j,int k):(i,j)”修改为“CObj1(int i, int j,int k):CObj0(i,j)”
    3.将语句“print();”修改为“CObj0::print();”
    解析:1.虚函数的声明方式为:virtual <类型说明符> <函数名>(<参数表>),参数表中各参数之间应该用逗号隔开,因此第1个标识下应改为“virtual void move(int a, int b)”。
    2.主函数调用构造函数CObj1时,传递了四个实参,完成对变量m、n、x和y的初始化,变量 x和y是基类CObj0的数据成员,初始化通过基类构造函数CObj0(int i,int j)来完成,第2个标识下应改为“CObj1(int i, int j,int k):CObj0(i,j)”。
    3.由程序运行结果可知标识3下执行基类的print()函数,需要通过类名来指定需要调用的print()函数,即第3个标识下应改为“CObj0::print();”。
    解析: 暂无解析

  • 第11题:

    填空题
    若实现将标准输出重定向到文件描述符为6对应的文件上,则应使用语句()。

    正确答案: dup2(6,1)
    解析: 暂无解析

  • 第12题:

    问答题
    使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为:  Max is 7  提示:max()函数实现找出两个数中的最大值,并作为函数值返回。  注意:错误的语句在∥******error******的下面,修改该语句即可。

    正确答案: 1.将语句“int max(int a, int b)”修改为“int max(int&a,int &b)”
    2.将语句“max(-3,n);”修改为“max(m,n);”
    解析:1.函数max采用的参数传递机制是传地址,因此第1个标识下应该将语句“int max(int a, int b)”修改为“int max(int&a,int &b)”。
    2.调用函数max,实参类型应为一个整型变量,第2个标识下应将语句“max(-3,n);”修改为“max(m,n);”。
    解析: 暂无解析

  • 第13题:

    在C++中,若需要在程序文件中进行标准输入输出操作,则必须在开始处加入预处理命令include<iostream.h>,若使用到数学库中的函数时,要在源程序的开始处加入预处理命令【 】。


    正确答案:#include
    #include

  • 第14题:

    在bash中,在一条命令后加入"1>&2"意味着()。

    A.标准错误输出重定向到标准输入

    B.标准输入重定向到标准错误输出

    C.标准输出重定向到标准错误输出

    D.标准输出重定向到标准输入


    正确答案:C

  • 第15题:

    在Linux中,如果不想查看某个程序的输出结果并把该结果丢弃,可以使用重定向命令,把输出结果重定向到一个设备文件,该设备文件是( )。


    A. /dev/sr0
    B. /dev/null
    C. /dev/zero
    D. /dev/stderr


    答案:B
    解析:
    /dev/sr0表示光盘驱动器;/dev/null就像一个黑洞设备,把正常的输出结果输出到该设备,所以的输出信息都不会显示且被丢弃;在类UNIX 操作系统中, /dev/zero 是一个特殊的文件,当你读它的时候,它会提供无限的空字符(NULL, ASCII NUL, 0x00);/dev/stderr表示标准的错误输出。

  • 第16题:

    使用自动工具的优点是()。

    • A、需要单步调试
    • B、需要修改源程序
    • C、不需要修改源程序
    • D、输出有关的值

    正确答案:C

  • 第17题:

    通过输出设备,将程序处理结果显示的操作是()。

    • A、输入
    • B、输出
    • C、修改
    • D、判断

    正确答案:B

  • 第18题:

    把程序设计语言提供的标准打印语句插在源程序各个部分,以便输出关键变量的值,这种高度方法叫做()。

    • A、打印语句
    • B、自动工具
    • C、输出存储器内容
    • D、其他选项都不对

    正确答案:A

  • 第19题:

    若实现将标准输出重定向到文件描述符为6对应的文件上,则应使用语句()。


    正确答案:dup2(6,1)

  • 第20题:

    单选题
    有以下程序段: FILE *fp; if((fp=fopen(test.txt,w)) == NULL) {  printf(不能打开文件!);  exit(0); } else  printf(成功打开文件!); 若指定文件test.txt不存在,且无其他异常,则以下叙述错误的是(  )。
    A

    输出“不能打开文件!”

    B

    输出“成功打开文件!”

    C

    系统将按指定文件名新建文件

    D

    系统将为写操作建立文本文件


    正确答案: A
    解析:
    fopen函数以一定方式打开指定文件,返回一个指向文件的文件指针,如果不能实现打开指定文件的操作,则返回一个空指针NULL。如果指定文件不存在则创建一个文件名为指定文件名的新文件,然后打开它。程序中,文件test.txt不存在,但无其他异常,表示可以建立新文件,命名为test.txt,C项正确,并以只写方式打开它,D项正确,返回指向文件的指针,if条件不成立,输出“成功打开文件!”,B项正确。答案选择A选项。

  • 第21题:

    问答题
    用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了多个类,但类不能达到输出要求,按照定义的输出修改函数,使得输出如下:  TestClass3  TestClass2  TestClass1  其中定义的类并不完整,按照要求完成下列操作,将类的定义补充完整。  1.类TestClass2公共继承于TestClass1,请在注释∥********1********后添加适当的语句。  2.print函数为虚函数,请在注释∥********2********后添加适当的语句。  3.修改语句,使得p指定对象obj3,请在注释∥********3********后添加适当的语句。  4.修改语句,利用p调用print()函数,完成输出信息,注释∥********4********后添加适当的语句。  注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。    使用VC6打开考生文件夹下的源程序文件modi3.cpp。程序通过继承关系,实现对姓名的控制。类TestClass1实现对名字访问的接口,TestClass2实现对名字的设置和输出。  程序输出为:  TestClass2Name  May  其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。  1.在类TestClass1中定义接口函数GetName()为纯虚函数。请在注释∥********1********后添加适当的语句。  2.函数GetName2()实现获得名字的缓存,但是只获得读允许操作这个缓存,请在注释∥********2********后添加适当的语句。  3.实现TestClass2的构造函数,请在注释∥********3********后添加适当的语句。  4.完成TestClass2的构造函数,实现对名字的处理。请在注释∥********4********后添加适当的语句。  注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。

    正确答案: 1.添加语句:virtual void GetName()=0;
    2.添加语句:const char* GetName2()
    3.添加语句:TestClass2(char* str)
    4.添加语句:m_str[i]=0;
    解析:1.题目1要求“在类TestClass1中定义接口函数GetName()为纯虚函数”。在C++中,基类用关键字virtual将成员函数声明为虚函数,而纯虚函数是在声明虚函数时“初始化”为0的函数,即“virtual void GetName()=0;”。
    2.题目2要求“函数GetName2()实现获得名字的缓存,但是只获得读允许操作这个缓存”。实际上是要求函数GetName2()只能对数据成员进行引用,而不能修改,所以应将GetName2()函数声明为常成员函数,即“const char* GetName2()”。
    3.题目3要求“实现TestClass2的构造函数”。TestClass2的构造函数与类TestClass2名相同,而且第三个标识下的大括弧中是对字符数组str的操作,所以类TestClass2的构造函数中的参数为str,即“TestClass2(char* str)”。
    4.题目4要求“完成TestClass2的构造函数,实现对名字的处理”。补全类TestClass2的构造函数,构造函数中的名字变量str对应于类TestClass1中的成员变量m_str,所以这里补全变量赋值操作“m_str[i]=0;”。
    解析: 暂无解析

  • 第22题:

    问答题
    使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错误,请改正程序中的错误,使得程序输出:  number1=4.8   number2=93.6   number3=0.9  PRODUCT=404.352  注意:错误的语句在∥******error******的下面。修改该语句即可。其他的语句不能修改。

    正确答案: 1.修改为“double product=number1* number2 * number3;”
    2.修改为“cout<<number1=<<number1<<'\t'<<number2=<<number2<<'\t';”
    3.修改为“cout<<number3=<<number3<<'\t'<<endl;”
    解析:1.变量product没有定义,number1、number2和number3均为double型变量,product是这三个变量的乘积,其数据类型是double型,因此第1个标识下应将语句“product = number1 * number2 * number3;”修改为“double product = number1 * number2 * number3;”。
    2.cout流中的数据是用流插入运算符“<<”顺序加入的,第2个标识下是输出number1、number2和number3的值,各个数据之间用“<<”顺序加入,不能用“<”,第2个标识下应将语句“cout<<number1=<<number1<'\t'<<number2=<<number2<'\t';”修改为“cout<<number1=<<number1<<'\t'<<number2=<<number2<<'\t';”。
    3.输出“PRODUCT=404.352”在“number1=4.8 number2=93.6 number3=0.9”的下一行,因此在输出“number3=0.9”后应换行,故第3个标识下的语句应该添加换行符,语句修改为“cout<<number3=<<number3<<'\t'<<endl;”。
    解析: 暂无解析

  • 第23题:

    单选题
    下列哪一个命令能被用来重定向管道的输出到标准输出和指定的文件中?()
    A

    CAt

    B

    less

    C

    tee

    D

    wee


    正确答案: B
    解析: 暂无解析

  • 第24题:

    单选题
    在源程序的开始处加上“#include”进行文件引用的原因,以下叙述正确的是(  )。
    A

    stdio.h文件中包含标准输入输出函数的函数说明,通过引用此文件以便能正确使用prinff、scanf等函数

    B

    将stdio.h中标准输入输出函数链接到编译生成的可执行文件中,以便能正确运行

    C

    将stdio.h中标准输入输出函数的源程序插入到引用处,以便进行编译链接

    D

    将stdio.h中标准输入输出函数的二进制代码插入到引用处,以便进行编译链接


    正确答案: D
    解析:
    “stdio.h”文件中包含标准输入输出函数的函数说明,预处理指令#include<stdio.h>是指程序可以在该文件中找到printf,scanf等函数,答案选择A选项。