串的查找和替换 if (NULL == (fp = fopen(&quot 1.30 quot;c:\abc.txt&quot 1.30 quot;, &quot 1.30 quot;rt+&quot 1.30 quot;)))/* 读文件 */

查看: 12563|回复: 7
C中使用fopen函数打开文件时不同的打开方式对文件读写有什么影响?
&&以文本方式打开与二进制方式打开有什么区别?
fp=fopen(&test&,&r&);
fwrite(s,100,1,fp);
对于文件内容中的字符 /r 和 /t的处理方式不一样
二进制打开时 会 过滤 其中一个 (记不起来了) &&&望补充。
文本方式打开时 不做任何处理
通常处理普通文件就文本处理
对于图片 可执行程序&&或者需要利用此文件来记录数据 (比如程序运行的pid) 就用 二进制模式
这个是我在看vsftpd的源代码时发现的
文件的上传访问,对于二进制上传所进行的内容过滤处理
很多细节问题记不住了&&反正大致知道这么回事就行&&用到的时候 写个程序验证下就知
占个地方,资料没在手头.
sanool老大,你确定他们有区别么?
用标准I/O库的fopen打开文件可以以文本方式或者二进制方式打开,用二进制方式打开文件的话要在打开方式上加个'b':
FILE *fp = fopen(&somefile&, &rb&);
但是在Unix下是不区分文本文件和二进制文件的,所以参数b在Unix类的系统下不起作用(参考《Unix环境高级编程》)
我想是不是这样,在Unix下的一般文件无论用什么方式打开都应该按文本文件处理呢?所以对文件的读写应该是没有区别的吧:o
至于fwrite函数在Unix类的系统上是依靠write系统调用实现的,而write系统调用本身也不区分文件的种类,所以fwrite对于文本和二进制文件应该是一样的
补充一下:
sanool的意思是不是这样,在使用标准IO库读/写一个二进制文件的时候,在使用fgets/fputs这样的字符处理函数来做的话,如果该二进制文件中存在换行或者null这样的字符时,会产生错误,因为fgets/fputs是以行为单位进行读/写的,数据会读/写不全。那么这个时候就应该使用fread/fwrite函数(书上称为二进制IO函数)读写,这样的话就会过滤掉换行和null,保持数据的完整性?
可能对于linux本身来说是没有区别的
但不少程序为了兼顾windows里的文件
在处理换行方面进行了处理
linux下也有二进制文件和文本文件的区别的,二进制文件没有回车,很多程序在处理二进制文件和文本文件上都是不一样的,比如vi。对于二进制文件,使用vi -b和vi打开是不一样的。
本质上来讲Unix系统中的文件都是文本流,Unix系统没有对文本和二进制做特殊处理,区别在于应用程序如何解释文件
换句话说,应用程序对某些字符的解释方式不同,比如'\n',在文本文件中表示换行,但是在二进制文件中就是一个普通的字符
例如,fputs函数在输出的时候,遇到null(\0)就停止,而fwrite则不会,当然,这些仅仅是在标准C库中的区别,如果使用Linux的read/write来读写文件的话,就没有任何的区别。使用fopen函数打开文件失败_百度知道
使用fopen函数打开文件失败
使用fopen函数打开文件失败,如:fp=fopen(&key.txt&,&r&) * fp为指针变量 我是按书上写的来的,却打不开,到底是怎么回事呢??
提问者采纳
应该加上文件路径例如fp=fopen(&c:\\key.txt&,&r&) ;
其他类似问题
按默认排序
其他3条回答
fp是 FILE* 指针if((fp=fopen(&key.txt&,&r&))==NULL);在后面加上一句,perror(&why i could not open the file?\n&);
加路径或者把r改成r+
你应该把key.txt文件,放在你的 .c文件的同一个文件夹中
fopen的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁文档分类:暂未分类 -
在线文档经过高度压缩,下载原文更清晰。
c语言选择判断题 判断题:1、在 C 语言中,枚举元素表中的元素有先后次序,可以进行比较。2、当需要接受用户从键盘输入的含有空格的字符串时,应使用 gets()函数。3、在 C 语言中,枚举元素表中的元素有先后次序,可以进行比较。4、使用联合体 union 的目的是,将一组具有相同数据类型的数据作为一个整体,以便于其中的成员共享同一存储空间。5、系统中标准输入文件是指硬盘。6、已知函数调用形式:fread(buffer,size,count,fp);其中 buffer 代表的是一个指针,指向要读入数据的存放地址。7、fgetc 函数的作用是从指定文件读入一个字符,该文件的打开方式必须是追加。8、枚举元素的值可以是整数或字符串。9、可以在定义枚举类型时对枚举元素进行初始化。10、若要&为读/写建立一个新的文本文件&,在 fopen 函数中应使用的文件方式为&w+&。11、标准输入输出函数中,将一个字符写到磁盘文件上去,应调用 fputc 函数。12、在 c 语言中,库函数 fprintf 是按指定的格式将数据写入文件,如果执行成功,函数返回的是结束符。13、操作系统是以文件为单位对数据进行管理的。14、&C&指字符常量 C。15、字符串&china&在内存中占据的存储空间是 5 个字节。16、char *name[5]定义了一个一维指针数组,它有 5 个元素,每个元素都是指向字符数据的指针型数据。17、调用 strlen(&abc\0ef\0g&)的返回值为 8。18、if(a==b)语句可用于判断两个字符串 a 和 b 是否相等。19、两个字符串所包含的字符个数相同时才能比较字符串大小。20、字符个数多的字符串比字符个数少的字符串大。21、字符数组的字符串可以整体输入输出。22、C 语言本身没有输入输出语句。23、在 C 程序中,注释说明只能位于一条语句的后面。24、在 C 语言中(以 16 位 PC 机为例),5 种基本数据类型的存储空间长度的排列顺序为:char = int & long int &= float & double25、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值为 7。26、switch,typedef,continue 均是 C 语言关键字。27、C 语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。28、160,-0xefff,011 均是合法的整型常量。29、'\\0','\101','X1f'均是合法的转义字符。30、若变量 a 和 x 均为 double 类型,则代数式 x^2-e^5 转化为正确的 c 语言表达式为:x*x-exp(5)。31、在 C 程序中,逗号运算符的优先级最低。32、在 C 程序中,APH 和 aph 是两个不同的变量。33、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。34、在 C 程序中,每行只能写一条语句。35、若 a 是实型变量,C 程序中允许赋值 a=10,因此实型变量中允许存放整型数。36、在 C 程序中,%是只能用于整数运算的运算符。37、若变量均为整型,且 num=sum=7,则计算表达式 sum=num++,sum++,++num 后 sum 的值为 8。38、设变量 a 为整型,f 是实型,i 是双精度型,则表达式 10+'a'+i * f 值的数据类型不能确定为何类型。39、在 C 语言中 char 型数据在内存中的存储形式为 ASCII 码。40、设有说明:则表达式 m*x+z-y 值的数据类型为 float。41、putchar 函数可以向终端输出一个字符或字符型变量值。42、%x 是格式符的一种,它可以适用于任何一种类型的数据。43、输入项可以是一个实型常量,如:scanf (&%f&,3.5) 。44、c 程序中能直接让机器执行的文件是编辑后的.c 源文件。45、任何复杂的程序都是由顺序结构、选择结构、循环结构这三种结构构成的。46、若有 int x,则(x+1)++是一个合法的 c 语言表达式。47、每个语句和数据定义的最后都必须有分号。48、c 程序的书写格式要求严格,区分大小写,并且一行内只能写一条语句。49、在 c 程序中,语句之间必须要用分号&;&来分隔。50、在 c 程序中,整型数是能准确表示的,而实型数有时不能准确无误的表示。51、若 a 和 b 类型相同,在执行了语句 a=b 后,b 中的值将放入 a 中,b 中的值不变。52、0a12,-0x123,-0xa 均是正确的八进制或十六进制数。53、在 c 语言类型说明中,int,short,float 等类型的长度是固定的。54、表达式和表达式语句的区别在于:表达式后无&;&号,而表达式语句后有&;&号。55、设 int a=12;则执行完语句 a+=a-=a*a 后,a 的值为 144。56、(a=3)&(b=5) 是合法的关系表达式。57、关系表达式 a=b&c 等价于 a=(b&c) ,同时也等价于 a==b&c。58、字符&\0&是字符串的结束标记,其 ASCII 代码为 0。59、算述运算*、/、+和一具有相同的优先级。60、printf 函数的格式控制串之后的所有参数的前面都必须有&。61、若有 int ⅰ=10, j=0;则执行完语句 if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为 11。62、C 语言中直到型循环结构为:do 循环体 while(表达式); 但这种循环是当表达式为真时反复执行循环体,表达式为假时结束循环。63、C 语言认为变量 number 和 NuMbEr 是相同的。64、break 语句不能用于循环语句和 switch 语句之外的任何其他语句中。65、在 printf 函数的格式控制串中使用转义序列\n 会把光标定位到屏幕上下一行的开始位置。66、语句 y=*p++; 和 y=(*p)++; 是等价的。67、#include &iostream.h&的作用是将说明标准输入输出流对象的头文件包含到当前源文件中来。68、for ( ; ; ) 语句等价于 while (1) 语句,即不设初值、不判断条件、无终止地执行循环体。69、unsigned 和 void 都是 C 的保留字。70、若 int i=10,j=2; 则执行完 i*=j+8; 后 i 的值为 28 。71、在 C 语言中,&A &和' A '等价。72、表达式 4/7 和 4.0/7 的值相等。73、关系表达式 a=b & c 等价于 a= =b & c.74、逻辑表达式'C'&&'d' 的值为 1.75、若有说明则 while(c=getchar());是正确的 C 语句。76、C 语言程序的三种基本结构是顺序结构、选择结构和循环结构。77、在 C 语言中整数只能表示为十进制数的形式。78、空语句是合法的 C 语句。79、while 语句的循环体不能是复合语句。80、关系运算符的优先顺序为:赋值运算符&逻辑运算符&关系运算符&算术运算符。81、已知 x=43,ch='A',y=0;则表达式(x&y&&ch&'B'&&!y)的值为&假&。82、if(x!=y) scanf(&%d&,&x) else scanf(&%d&,&y);是正确的 if 语句。83、若有条件表达式(x)?a++:b++;则表达式中(x)等价于(x!=0)。84、设有程序段 int k=10; while (k=0) k=k-1; 则语句 k=k-1 执行 10 次。85、C 语言中 while 和 do-while 循环的主要区别是:do-while 语句至少无条件执行一次。86、do-while 循环由 do 开始,用 while 结束,在 while(表达式)后面不能写分号。87、在 do-while 循环体中,一定要有能使 while 后面表达式的值变为假的操作。88、for 循环只能用于循环次数已经确定的情况。89、for 循环是先执行循环体语句,后判断表达式。90、在 for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来变成一条复合语句。91、执行语句 for(i=1;i++&7; );后变量 i 的值不能确定。92、continue 语句的作用是结束整个循环的执行。93、只能在循环体内和 switch 语句体内使用 break 语句。94、在循环体内使用 break 语句或 continue 语句的作用相同。95、只能用 continue 语句来终止本次循环。96、#define IMB_PC 是正确的宏定义。97、宏替换不占编译时间,只占运行时间。98、c 语言的编译系统对宏命令的处理是和 c 程序中的其他语句同时进行编译的。99、在&文件包含&预处理语句的使用形式中,#include 后面的文件名用&&表示直接按系统设定的标准方式搜索目录。100、c 语言的预处理功能是指完成宏替换和包含文件的调用。101、预处理指令只能位于 c 源程序文件的首部。102、C 语言中规定,if 语句的嵌套结构中,else 总是和最近的 if 配对。103、switch 语句中的每个 case 总要用 break 语句。104、可以用 do-while 语句实现的循环一定可以用 while 语句实现。105、while,do-while,何 for 语句的循环体都可以是空语句。106、在下面程序段中循环体将执行无限次执行。 x=-1; do{ x=x*x; }while(!x);107、设整型变量 i 的值为 3,则表达式 i---i 是一个错误的表达式。108、设有变量定义:int a=3;则执行语句 a+=a-=a*a;后,变量 a 的值变为 0。109、整型变量 a,b,c=2;则表达式 a+++b+++c+++的值为 6。110、若有说明语句:int y[][4]={0,0,0,0,0,0};则数组 y 的每个元素都可以得到初值 0。111、若有 int a[3][4]; 则 a[3][4]是对二维数组的正确访问。112、数组的下标可以 float 数据类型。113、打印三行输出的 C 语言程序必须用三条 printf 语句。114、初始化值列表中的初始化值个数多于数组元素的个数是错误的。115、数组是一种构造型数据,即是若干相同类型的数据的集合。116、若有说明:static int a[3][4];,则数组 a 中各元素可在程序的编译阶段得到初值 0。117、把单个数组元素传递给修改该元素值的函数会使调用函数包含修改后的值。118、在 C 语言中,二维数组元素在内存中的存放顺序可以随意调整变化。119、C 语言中,二维数组中元素排列的顺序是:按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。120、若 a 为一维数组名,则*(a+i)与 a[i]等价。121、int a[]={0}能对一维数组进行正确的初始化。122、若有说明:int a[3][4];则 a[2][4]是对数组 a 中的数组元素的正确引用。123、若有说明:int a[2][4]={0};表示数组 a 中只有数组元素 a[0][0]可以得到初值 0。124、若有说明:int a[][4]={0,0};则表示二维数组 a 的第一维大小为 1。125、若有说明:int a[10]={6,7,8,9,10};则该语句不正确,因为数组长度与初值个数不相同。126、对两个字符数组 a 和 b 进行初始化 char a[]=&abcd&;char b[]={'a','b','c','d'};则 a 和 b 两数组长度相同。127、在一个函数中,允许定义与结构体类型的成员相同名的变量,它们代表不同的对象。128、指向同一数组的两指针 p1、p2 相减的结果与所指元素的下标相减的结果是相同的。129、&b 指的是变量 b 的地址处所存放的值。130、在 C 语言中,如果它们的元素相同,即使不同类型的结构也可以相互赋值。131、用 typedef 可以定义各种类型名,但不能用来定义变量。132、在 C 语言中,可以把一个结构体变量作为一个整体赋值给另一个具有相同类型的结构体变量。133、存放地址的变量同其它变量一样,可以存放任何类型的数据。134、结构体的成员可以作为变量使用。135、int *p;定义了一个指针变量 p,其值是整型的。136、使用结构体 struct 的目的是,将一组数据作为一个整体,以便于其中的成员共享同一空间。137、一个变量的地址就称为该变量的&指针&。138、int i,*p=&i;是正确的 C 说明。139、变量的指针,其含义是指该变量的一个标志。140、若有说明:int *p1,*p2,m=3,n;则 p1=&m;p2=p1;是正确的赋值语句。141、若定义:int(*p)[4];则标示符 p 是一个指针,它指向一个含有四个整型元素的一维数组。142、设有以下定义:char *c[2]={&12&,&34&};表示 c 数组的两个元素中各自存放了字符串&12&和&34&的首地址。143、已有定义 int(*p)();指针 p 可以指向函数的入口地址。144、当说明一个结构体变量时系统分配给它的内存是成员中占内存量最大者所需的容量。145、C 语言中结构体类型的变量在程序执行期间所有成员一直驻留在内存中。146、共用体类型定义中不能出现结构体类型的成员。147、用 typedef 可以增加新类型。148、设有程序段&char s[ ]=&program&;char *p;p=s;&表示数组的第一个元素 s[0]和指针 p 相等。149、struct{} struct student std1; 是对结构体类型的变量 student 的定义。150、一个共用体变量中不能同时存放其所有成员。151、在 C 程序中,main 函数必须位于程序的最前面。152、一个 C 语言源程序必须包含一个 main 函数。153、一个 C 语言程序是由一个主函数和若干个子程序组成的。154、在 c 程序中,要调用的函数必须在 main 函数中定义。155、主函数可以分两个部分:主函数说明部分和主函数体。156、c 程序中,主函数可以调用任何非主函数的其他函数。157、c 程序中,任何非主函数都可以调用其他任何非主函数。158、如果某个函数在定义时省略了存储类型,则默认的存储类型是 int。159、在 c 语言中,存储类型为 register 和 extern 的变量只在使用它们时才占用存储空间。160、若一个外部变量的定义形式为其中 static 的作用是使 x 只能在本文件内引用。161、外部变量必须定义在文件的开头部分。162、若一个 C 程序中说明一个全局变量 int ⅰ; (在所有函数之外说明的),则该程序任何一点都可引用全局变量ⅰ。163、如果定义函数时的参数是指针变量,那么,调用函数时的参数就可以是同类型的指针变量、数组名或简单变量的地址。164、在 C 语言中,所有函数都是平行的,即在定义函数时是互相独立的,一个函数并不从属于另一个函数。165、用指针作为函数参数时,采用的是&地址传送&方式。166、在声明变量时必须给出变量的类型。167、声明语句可放在函数体中的任何位置。168、C 程序文件中每个函数都将被本文件调用。169、在 C 语言中,所有函数都是平行的,即在定义函数时是互相独立的,一个函数并不从属于另一个函数。170、所有的变量在使用前都必须予以声明。171、局部静态变量是在编译时赋初值的,即只赋初值一次。172、C 语言中,如果在定义函数时省略 extern,则隐含为外部函数。173、函数定义时,可以不指定形参的类型,函数调用时由实参的类型决定形参的类型。174、若 i 为某函数 func 之内说明的变量,则当 func 执行完后, i 值无定义。175、一个 C 源程序文件由一个或多个函数组成,由此可见函数是一个独立的编译单位。176、在 C 语言中,所有函数都是平行的,即在定义函数时是互相独立的,一个函数并不从属于另一个函数。177、C 程序中,在定义函数时的参数是&形式参数&,在调用函数时的参数是&实际参数&。178、#include & iostream.h &的作用是将说明标准输入流对象的头文件包含到当前源文件中来。179、若ⅰ为某函数 func 之内说明的变量,则当 func 执行完后,ⅰ值无定义。180、C 语言程序中,一个文件中的函数可以引用存储在另一个文件中的函数和变量。181、C 程序的 main 函数可以有参数,但参数不能是指针类型。182、在 main 函数中定义的变量称为全局变量。183、一个可执行的 C 语言程序总是从 main()函数的入口地址处开始执行。184、建立函数的目的是为了提高程序的执行效率。185、用户若需调用标准库函数,调用前必须重新定义。186、用户可以重新定义标准库函数,但若如此该函数将失去原来的意义。187、函数的实参和与其对应的形参各占用独立的存储单元。188、若一个被调用函数中没有 return 语句则表示该函数没有返回值。189、c 语言规定形参可以是常量、变量或表达式,只要与其对应的实参类型一致即可。190、定义函数时,形参的类型说明放在函数体内。191、如果函数值的类型与返回值类型不一致,以函数值类型为准。192、如果形参和实参的类型不一致,以实参的类型为准。193、c 语言规定简单变量做实参时,它与对应形参之间的数据传递方式是地址传递。194、c 语言规定函数返回值的类型是由在定义该函数时所指定的函数类型所决定的。195、函数的定义可以嵌套,但函数的调用不可以嵌套。196、若用数组名作为函数调用的实参,传递给形参的是数组中的第一个元素的值。197、若用一维数组名作为函数实参,则必须在主调函数中说明此函数的大小。198、如果在一个函数中的复合语句中定义了一个变量,则该变量在该函数中都有效。199、在不同函数中可以使用相同名字的变量。200、凡是函数中未指明存储类别的局部变量,其隐含的存储类别为自动(auto)。201、C 语言允许 main 函数带形参,并且形参名只能是 argc 和 argv。202、main 函数是系统提供的主函数,不需要用户自己编写。203、char add()是一个正确的函数说明。204、若主调函数为 double 型,被调函数定义中没有函数类型说明,而 return 语句中的表达式为 double 型,则被调函数返回值的类型是 double 型。205、有多少个 return 语句,就能返回多少个值。206、在 c 语言中,static 类型的变量在函数内说明,而在整个程序运行期间都存在,因此 c 语言中全局变量的存储类别是 static。207、在一个 C 源程序文件中,静态变量在该文件中的所有函数都能使用。选择题1、设 int b=8;表达式(b&&2)/(b&&1)的值是________。A) 0 B) 2 C) 4 D) 82、以读写方式打开一个已有的文件 file1,下面有关 fopen 函数正确的调用方式为________。A)FILE *fp=fopen(&file1&;&f&); B)FILE *fp=fopen(&file1&,&r+&);C)FILE *fp=fopen(&file1&,&rb&); D)FILE *fp=fopen(&file1&,&rb+&);3、在 C 程序中,可把整型数以二进制形式存放到文件中的函数是__________。A) fprintf 函数 B) fread 函数 C) fwrite 函数 D) fputc 函数4、以下程序输出的结果是______#include &stdio.h&#include &string.h&main(){ char w[][10]={&ABCD&,&EFGH&,&IJKL&,&MNOP&},k;for (k=1;k&3;k++) printf(&%s\n&,&w[k][k]);}A)ABCD B)ABCD C)EFG D)FGHFGHEFG JKKLKL IJ OM5、下列程序执行后的输出结果是_______。#define MA(x) x*(x+1)main(){ int a=2,b=3; printf(&%d \n&,MA(1+a+b)); }A) 6 B) 8 C) 24 D) 426、函数调用语句 fseek(fp,10,1)的含义是_______。A)将文件指针移到距离文件头 10 个字节处B)将文件指针移到距离文件尾 10 个字节处C)将文件指针从当前位置后移 10 个字节D)将文件指针从当前位置前移 10 个字节7、有如下程序#define N 3#define M N+1#define NUM 2*M+1main(){for(i=1;i&=NUM;i++) printf(&%d\n&,i);}该程序中的 for 循环执行的次数是_______。A) 5 B) 6 C) 7 D) 88、以下各选项企图说明一种新类型名,其中正确的是_______。A)typedef a1 B)typedef a2=int C)typedef int a3; D)typedef a4;9、若 fp 是指向某文件的指针,且已读到此文件末尾,则库函数 feof(fp)的返回值是_______。A) EOF B) 0 C) 非零值 D) NULL10、在 C 语言中,用 w+方式打开一个文件后,可以执行的文件操作是________。A)可任意读写 B)只读 C)只能先写后读 D)只写11、下面程序输出结果是________。#define MAX(x,y) (x)&(y)?(x):(y)main(){ int a=4,b=2,c=3,d=4,t;t=MAX(a+b,c+d)*10; printf(&%d\n&,t);}A) 6 B) 7 C) 60 D) 7012、当顺利执行了文件关闭操作时,fclose 函数的返回值是________。A)0 B)Ture C)-1 D)113、下列叙述中正确的是________。A) C 语言编译时不检查语法。B) C 语言的子程序有过程和函数两种。C) C 语言的函数可以嵌套定义。D) C 语言所有函数都是外部函数。14、下列语句中,不能将文件型指针 fp 指向的文件内部指针置于文件头的语句是________。(注:假定能正确打开文件)A)fp=fopen(&abc.dat&,&w&) B)rewind(fp) C)feof(fp) D)fseek(fp,0L,0)15、运行程序:#define S(X) 2*X+1main(){ int a=6,k=2,m=1;a+=S(k+m); printf(&%d\n&,a);}则输出结果是________。A) 13 B) 12 C) 7 D) 616、源程序 TEST.C 经编译产生的目标文件和连接后产生的可执行文件是________。A)TEST.bak 和 TEST.obj B)TEST.obj 和 TEST.exe C)TEST.ext 和 TEST.c D)TEST.bak 和 TEST.exe17、下面说明中,正确的是________。A) typedef v1 B) typedef v2= C) typedef int v3; D) typedef v4:18、feof 函数用来判断文件是否结束,如果文件没有结束,则返回值是________。A)-1 B)0 C)1 D)EOF19、以下程序的输出结果是#define M(x,y,z) (x)*y+zmain(){ int a,b,c;a=b=1;c=3; printf(&%d\n&, M(a+b,b+c,c+a));}A) 9 B) 12 C) 8 D) 程序不能运行20、若定义 unsigned int a=3,b=10;printf(&%d\n&,a&&2|b==1);则运行结果为________。A)13 B)12 C)8 D)1421、整型变量 x 和 y 的值相等且为非 0 值,则下面表达式中结果为零的是________。A) x||y B) x|y C) x&y D) x^y22、fread 和 fwrite 函数常用来要求一次输入/输出________数据。A)一个整数 B)一个实数 C)一个字节 D)一组23、下面的程序执行后,文件 test.t 中的内容是#include &stdio.h&void fun(char *fname ,char *st){ FILE *myf=fopen(fname,&w& );for(i=0;i&strlen(st);i++) fputc(st[i],myf);fclose(myf);}main(){ fun(&test.t&,&new world&);fun(&test.t&, &hello,&); }A) hello, B) new worldhello, C) new world D) hello,rld24、以下叙述正确的是_________。A) 可以把 define 和 if 定义为用户标识符 B) 可以把 define 定义为用户标识符,但不能把 if 定义为用户标识符C) 可以把 if 定义为用户标识符,但不能把 define 定义为用户标识符 D) define 和 if 都不能定义为用户标识符25、若要打开 A 盘上 user1 子目录下名为 abc1.txt 的文本文件进行读、写操作,则正确语句是___。A) fopen(&A:\user1\abc1.txt&,&r&) B) fopen(&A:\\user1\\abc1.txt&,&r+&)C) fopen(&A:\user1\abc1.txt&,&rb&) C) fopen(&A:\\user1\\abc1.txt&,&w&)26、设有以下说明语句typedef struct{char ch[8];} PER;则下面叙述中正确的是A) PER 是结构体变量名 B) PER 是结构体类型名 C) typedef struct 是结构体类型 D) struct 是结构体类型名27、下面程序的输出结果是________。main(){ int x=5,y=9,z=1,t;t=(x&y||x&z); printf(&%d\n&,t);}A) 1 B) 0 C) 5 D) 328、程序中头文件 typel.h 的内容是:#define N 5#define M1 N*3程序如下:#define &type1.h&#define M2 N*2main(){i=M1+M2; printf(&%d\n&,i);}程序编译后运行输出结果是________。A) 10 B) 20 C) 25 D) 1529、有以下程序#include &stdio.h&main(){ FILE *int i=10,j=30,k,n;fp=fopen(&d1.dat&,&w&);fprintf(fp,&%d\n&,i);fprintf(fp,&%d\n&,j);fclose(fp);fp=fopen(&d1.dat&, &r&);fp=fscanf(fp,&%d%d&,&k,&n);printf(&%d %d\n&,k,n);fclose(fp);}程序运行后的输出结果是________。A) 10 30 B) 20 30 C) 30 50 D) 30 2031、下列程序执行后的输出结果是________。main(){ int x='d';printf(&%c\n&,'A'+(x-'a'+1));}A) G B) H C) E D) J32、下面能正确进行字符串赋值操作的语句是________。A)char s[5]={&\ABCDE&} B)char s[5]={'A','B','C','D','E'}; C)char *s;s={&ABCDEF&}; D)char *s;scanf(&%s&,s);33、下列程序执行后的输出结果是________。main(){ char arr[2][5];strcpy(arr,&love&);strcpy(arr[1],&you&);arr[0][4]='$';printf(&%s\n&,arr);}A) love B) love$you C) you D) $you34、以下程序运行后,输出结果是________。main(){ static char a[]=&ABCDEFGH&, b[]=&abCDefGh&;char *p1,*p2;p1=a;p2=b;for(k=0;k&=7;k++)if(*(p1+k)==*(p2+k)) printf(&%c&,*(p1+k));prinft(&\n&);}A)ABCDEFG B)CDG C)abcdefgh D)DefGh35、设有说明语句: char a='\72';则变量 a________。A) 包含 1 个字符 B) 包含 2 个字符 C) 包含 3 个字符 D) 说明不合法36、有如下程序段int a=14,b=15,x;char c='A';x=(a&&b)&&(c&'B');执行该程序段后,x 的值为________。A) ture B) false C) 0 D) 137、若变量 c 为 char 类型,能正确判断出 c 为大写字母的表达式是________。A) 'A'&=c&='Z' B) (c&='A')||(c&='Z') C) ('A'&=c)and ('Z'&=c) D) (c&='A')&&(c&='Z')38、执行下面程序:#include &stdio.h&#include &string.h&main(){ char ss[10]=&1,2,3,4,5&;gets(ss);strcat(ss,&6789&); printf(&%s\n&,ss);}若输入 ABC↙,则输出结果是________。A) ABC6789 B) ABC67 C) 12345ABC6 D) ABC、运行程序:main(){ int x=1.5;char z='a';printf(&%d\n&,(x&1)&&(z&'z'));}则输出结果是________。A) 0 B) 1 C) 1.5 D) 结果不确定40、运行程序:main(){ char x[]=&11 223344&;x[4]='0';printf(&%s \n&,x);}则输出结果是________。A) 11 B) 0 C) 11 203344 D) 11 、以下程序的输出结果是________。main(){ char c='z';printf(&%c&,c-22);}A) d B) e C) c D) f42、以下选项中,非法的字符常量是________。A) '\&' B) '\15' C)&n& D) '\xaa'43、以下定义语句中,错误的是________。A) int a[]={1,2}; B) char *a[3]; C) char s[10]=&test&; D) int n=5,a[n];44、以下程序的输出结果是________。#include &string.h&#include &stdio.h&main(){ char st[20]=&hello\0\t\\&;printf(&%d %d \n&,strlen(st),sizeof(st));}A) 8 8 B) 5 20 C) 11 20 D) 20 2045、以下语句中,不正确的是________。A) char s1[10];s1=&Ctest &; B) char s2[]={'C', 't', 'e', 's', 't'}; C) char s3[5]=&Ctest&; D) char s4[10]=&Ctest\n\0&46、若变量 a 是 int 类型,执行语句: a='A'+1.6;后,正确的叙述是________。A) a 的值是字符 C B) a 的值是浮点型 C) 不允许字符型和浮点型相加 D) a 的值是字符'A'的 ASCII 值加上 147、运行下面程序:h(char ch){ if(ch&='A'&&ch&='Z') ch=ch-'A'+'a';}main(){ char s[]=&ABC+cde=XxYy1&,*p=s;while(*p){ *h(*p); p++; }printf(&%s\n&,s);}则输出结果是________。A) ABC+CDE=XXYY1 B) abc+cde=xxyy1 C) DEXxYy D) dexxyy48、下面程序段的输出结果是________。char s[]=&\\\101\111abc\0&;printf(&%s\n&,s);A) \AIabc\0 B) \101\111\abc\0 C) \101\111\abc D) \AIabc49、运行下面程序:main(){ char c[][6]={&AAAA&,&BBB&,&CCC&,&DDD&};printf(&\&%s\&\n&,c[1]);}则输出结果是________。A) &AAAA& B) &BBB& C) && D) &CCCDDD&50、运行下面程序:main(){ char x=034;printf(&%o\n&,x&&1);}则输出结果是________。A) 34 B) 70 C) 340 D) 03451、下面语句不能正确进行字符串赋初值的是________。A) char str[5]=&good!&; B) char str[]=&good!&; C) char *str=&good!&; D) char str[5]={'g','o','o','d','!'};52、运行下面程序:#include &stdio.h&#include &string.h&main(){char b[8]=&abcde&,c[8],*pb=b+3;while (--pb&=b) strcpy(c,pb);printf(&%d\n&,strlen(c));}则输出结果是________。A) 8 B) 5 C) 6 D) 753、运行下面程序:main(){char *p=&abcdefgh&,*r;int *q;q=(int*)p; q++; r=(char*)q; printf(&%s\n&,r);}则输出结果是________。A) abcdefgh B) bcdefgh C) cdefgh D) efgh54、运行下面程序:void fun(char *c,int d){*c=*c+1;d=d+1;printf(&%c %c\n&,*c,d);}main(){播放器加载中,请稍候...
该用户其他文档
文档介绍:
c语言选择判断题 判断题:1、在 C 语言中,枚举元素表中的元素有先后次序,可以进行比较。2、当需要接受用户从键盘输入的含有空格的字符串时,应使用 gets()函数。3、在 C 语言中,枚举元素表中的元素有先后次序,可以进行比较。4、使用联合体 union 的目的是,将一组具有相同数据类型的数据作为一个整体,以便于其中的成员共享同一...
内容来自淘豆网转载请标明出处.
时间: 08:49}

我要回帖

更多关于 file quot 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信