昆明理工大学C语言程序设计课后习题答案 下载本文

内容发布更新时间 : 2024/5/18 10:12:53星期一 下面是文章的全部内容请认真阅读。

C.该程序有错,只要将swap()函数中形参p和q以及t均定义为指针即可 D.以上说法都不正确

34.下面程序的功能是按字典顺序比较两个字符串a,b的大小,如果a大于b则返回正值,

等于则返回0,小于则返回负值。下划线处应该填______。 #include \s(char *s ,char *t)

{ for( ; *s==*t; t++,s++) if(*s=='\\0') return 0; return(*s-*t); }

main()

{ char a[20],b[10],*p,*q; int i; p=a; q=b; scanf(\

i=s( __________ ); printf(\

A.p,q B.q,p C.a,p D.b,q 35.下面程序的运行结果是______。

#include void delch(char *s)

{ int i,j; char *a; a=s;

for(i=0,j=0;a[i]!= '\\0';i++)

if(a[i]>= '0'&&a[i]<= '9'){s[j]=a[i];j++;} s[j]= '\\0'; }

main()

{ char *item=\A.abc B.34 C.a23 D.a34bc 36.以下程序的执行后输出结果是______。

#include main()

{ char str[]=\ while(*ps) ps++;

for(ps--;ps-str>=0;ps--) puts(ps); }

A.yz B.z C.z D.x xyz yz yz xy

xyz xyz

37.以下程序的执行后输出结果是______。

#include void main()

{ int a[3][3],*p,i; p=&a[0][0];

for(i=0;i<9;i++) p[i]=i;

for(i=0;i<3;i++) printf(\

A.012 B.123 C.234 D.345 38.以下程序执行后的输出结果是______。

#include void main()

{ int a[]={1,2,3,4},y,*p=&a[1];

y=(*--p)++; printf(\

A.1 B.2 C.3 D.4

39.以下程序执行后的输出结果是______。

#include #include void main()

{ char s1[10],*s2=\strcpy(s1,s2);

printf(\

A.ab\\0cdef B.abcdef C.ab D.以上答案都不对

40.若有函数:voidfun(double a[],int *n) {??},以下叙述中正确的是______。

A.调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送 B.形参a和n都是指针变量

C.形参a是一个数组名,n是指针变量

D.调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组 第9章文件 二、习题

(一)、判断题

1.C语言通过文件指针对它所指向的文件进行操作。

A.对 B.错

2.函数fseek(fp,n,k)中的第二个参数代表的位移量是相对于的文件的开始来说的。

A.对 B.错

3.函数rewind()的作用是位置指针返回移动前的位置。

A.对 B.错

4.为了提高读写效率,在进行读写操作后不应关闭文件以便下次再进行读写。

A.对 B.错

5. 使用fwrite()向文件中写入数据之前,该文件必须是以wb方式打开。

A.对 B.错

6.命令行参数是指在操作系统状态下执行命令程序时允许带的参数。

A.对 B.错

7.在C语言中将文件视为无结构的字节流。

A.对 B.错

8.当以参数w打开文件时,若指定路径下已有同名文件,则覆盖原有文件。

A.对 B.错

9.可以使用ftell()获得文件的当前读写位置。

A.对 B.错 10.文件正常关闭时返回1。

A.对 B.错

11.由于在C语言中将文件视为无结构的字节流,所以不能对文件进行二进制读写。

A.对 B.错

12.表达式 c=fgetc(fp)!=EOF的功能是从fp指向的文件中读取字符并判断文件是否结束。

A.对 B.错

13.C语言中的文件是一种流式文件,读写时均以字符为单位。

A.对 B.错

14.函数fopen()不可以打开二进制文件。

A.对 B.错

15.函数fgets(s,n,fp)读出的字符串长为n。

A.对 B.错

16.系统打开的标准设备文件不需要用fclose()函数关闭。

A.对 B.错

17.语句puts(fp,\可以向fp指向的文件中写入字符串。

A.对 B.错

18.fseek()函数中的位移量必须是一个long型数据。

A.对 B.错

19.用“rb”方式打开的文件必须是已经存在的文件。

A.对 B.错

20.使用fgetc()函数读取字符后,文件内部位置指针移动到文件末尾。

A.对 B.错 (二)、选择题

1.以下函数不能用于向文件写入数据的是______。

A.ftell B.fwrite C.fputc D.fprintf

2.设fp已定义,执行语句fp=fopen(\后,以下针对文本文件file操作叙述的选项中正确的是______。

A.写操作结束后可以从头开始读B.只能写不能读

C.可以在原有内容后追加 D.可以随意读和写 3.下列关于C语言文件的叙述中正确的是______。

A.文件由一系列数据依次排列组成,只能构成二进制文件 B.文件由结构序列组成,可以构成二进制文件或文本文件 C.文件由数据序列组成,可以构成二进制文件或文本文件 D.文件由字符序列组成,其类型只能是文本文件

4.读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中buffer代表的是______。

A.一个文件指针,指向待读取的文件

B.一个整型变量,代表待读取的数据的字节数 C.一个内存块的首地址,代表读入数据存放的地址 D.一个内存块的字节数

5.标准库函数fgets(buf,n,fp)的功能是____。

A.从fp所指向的文件中读取长度为n的字符串存入缓冲区buf

B.从fp所指向的文件中读取长度不超过n-1的字符串存入缓冲区buf C.从fp所指向的文件中读取n个字符串存入缓冲区buf

D.从fp所指向的文件中读取长度为n-1的字符串存入缓冲区buf 6.以下程序完成的功能是___。

#include \main()

{ FILE *in,*out;

char ch,infile[10],outfile[10]; printf(\scanf(\

printf(\scanf(\

if((in=fopen(infile,\

printf(\if((in=fopen(outfile,\

printf(\while(!feof(in))fputc(fgetc(in),out); fclose(in); fclose(out); }

A.程序完成将磁盘文件的信息在屏幕上显示的功能 B.程序完成将两个磁盘文件合二为一的功能

C.程序完成将一个磁盘文件复制到另一个磁盘文件中 D.程序完成将两个磁盘文件合并并在屏幕上输出 7.以下程序运行后的输出结果是_______。 #include \main()

{ FILE *fp; int i=20,j=30,k,n; fp=fopen(\

fprintf(fp,\fclose(fp);

fp=fopen(\fscanf(fp,\printf(\fclose(fp); }

A.20 30 B.20 50 C.30 50 D.30 20

8.阅读下面的程序,程序实现的功能是(a123.txt在当前盘符下已经存在) _______。 #include \#include \void main() { FILE *fp; int a[10],*p=a;

fp=fopen(\ while(strlen(gets(p))>0) { fputs(a,fp);

fputs(\ fclose(fp); }

A.从键盘输入若干行字符,按行号倒序写入文本文件a123.txt中 B.从键盘输入若干行字符,取前2行写入文本文件al23.txt中 C.从键盘输入若于行字符,第一行写入文本文件a123.txt中 D.从键盘输入若干行字符,依次写入文本文件a123.txt中 9.下面的程序执行后,文件test中的内容是_____。 #include \#include \

void fun(char *fname,char *st)

{ FILE *myf;int i;

myf=fopen(fname, \

for(i=0;i

main(){ fun(\ fun(\

A.hello B.new worldhello C.new world D.hello,rld 10.阅读下面的程序,此程序的功能为______ #include \#include \

main(int argc,char *argv[]) { FILE *p1,*p2; int c;

p1=fopen(argv[1], \ p2=fopen(argv[2], \ c=fseek(p2,0L,2);

while((c=fgetc(p1))!=EOF)fputc(c,p2); fclose(p1); fclose(p2);}

A.实现将p1打开的文件中的内容复制到p2打开的文件 B.实现将p2打开的文件中的内容复制到p1打开的文件

C.实现将p1打开的文件中的内容追加到p2打开的文件内容之后 D.实现将p2打开的文件中的内容追加到p1打开的文件内容之屠 11.fseek函数的正确调用形式是_____。

A.fseek(文件指针,起始点,位移量) B.fseek(文件指针,位移量,起始点) C.fseek(位移量,起始点,文件指针) D.fseek(起始点,位移量,文件指针)

12.若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是_____。

A.EOF B.-1 C.1 D.NULL //结束标志 -1

13.函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是_______。

A.文件开始 B.文件末尾 C.文件当前位置 D.以上都不对

14.16位系统中,将一个整数12 000分别以ASCII码文件和二进制文件形式存放,各自需要占据的存储空间字节数分别是______。

A.5和2 B.2和5 C.2和2 D.5和5

15.若要用fopen()函数打开一个新的二进制文件,该文件要既能读也能写,则文件读 方式字符串应是_______。

A.\D.\16.函数fscanf的功能是______。

A.将信息从文件输入 B.将信息输出到文件

C.将信息从控制台输入 D.将信息输出到控制台终端上 17.下面叙述中,不正确的是_______。

A.C语言中的文本文件以ASCII形式存储数据 B.C语言对二进制文件的访问速度比文本文件快 C.C语言中,随机读写方式不适用于文本文件 D.C语言中,顺序读写方式不适用于二进制文件