欲穷千里目,更上一层楼!
#include
void f(char p[][10], int n ) /* 字符串从小到大排序 */ {
char t[10]; int i,j; for(i=0; i<9; i++) 改成for(i=0;i
strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[i],t); 改成strcpy(p[j],t); } }
main() {
char p[5][10]={ \f(p,5);
printf(\}
程序运行后的输出结果是 D 改成C
A) 2 B) 4 C) 6 D) 3
第九章 文 件
第一节 文件的基础知识 习题
1.以下叙述中正确的是 D
A)C语言中文件是流式文件,因此只能顺序存取数据
B)打开一个已存在的文件进行了写操作后,原有文件中的全部数据必定被覆盖
C)在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
D)当对文件的读(写)操作完成之后,应关闭文件,否则可能导致数据丢失 2.以下叙述中错误的是 C
A)C语言中对二进制文件的访问速度比文本文件快 B)C语言中,随机文件以二进制代码形式存储数据 C)语句 FILE fp; 定义了一个名为fp的文件指针 D)C语言中的文本文件以ASCII码形式存储数据
第二节 文件的操作 习题
1.以下叙述中错误的是 B
A)gets函数用于从终端读入字符串
B)getchar函数用于从磁盘文件读入字符
21
欲穷千里目,更上一层楼!
C)fputs函数用于把字符串输出到文件
D)fwrite函数用于以二进制形式输出数据到文件
2.读取二进制文件的函数调用形式为:fread(buffer,size,count,fp); ,其中buffer代表的是C A)一个文件指针,指向待读取的文件
B)一个整型变量,代表待读取的数据的字节数 C)一个内存块的首地址,代表读入数据存放的地址 D)一个内存块的字节数 3.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为 B A)EOF B)非0值 C) 0 D)NULL 第三节 文件例题 习题
1.有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节) #include
FILE *fp; int i,a[4]={1,2,3,4},b; fp=fopen(\
for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp); fclose(fp);
fp=fopen(\;
fseek(fp,-2L*sizeof(int),SEEK_END);
fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/ fclose(fp);
printf(\ }
执行后输出结果是 D
A)2 B)1 C)4 D)3 2.有以下程序
#include
FILE *fp; int k,n,a[6]={1,2,3,4,5,6}; fp=fopen(\
fprintf(fp, \ fprintf(fp, \ fclose(fp);
fp=fopen(\
fscanf(fp, \ printf(\fclose(fp); }
程序运行后的输出结果是 D A)1 2 B)1 4 C)123 4 D)123 456 3.有以下程序 #include
22
欲穷千里目,更上一层楼!
main() {
FILE *fp; int a[10]={1,2,3,0,0},i; fp=fopen(\fwrite(a,sizeof(int),5,fp); fwrite(a,sizeof(int),5,fp); fclose(fp);
fp=fopen(\fread(a,sizeof(int),10,fp); fclose(fp);
for(i=0;i<10;i++) printf(\}
程序的运行结果是 D
A)1,2,3,0,0,0,0,0,0,0, B)1,2,3,1,2,3,0,0,0,0, C)123,0,0,0,0,123,0,0,0,0, D)1,2,3,0,0,1,2,3,0,0,
第十章 对C语言的深入讨论
第一节 用户定义类型、编译预处理 习题
1.以下关于typedef的叙述错误的是 A A)用typedef可以增加新类型
B)typedef只是将已存在的类型用一个新的名字来代表
C)用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名 D)用typedef为类型说明一个新名,通常可以增加程序的可读性 2.以下叙述中错误的是 D
A)在程序中凡是以“#”开始的语句行都是预处理命令行 B)预处理命令行的最后不能以分号表示结束 C)#define MAX是合法的宏定义命令行
D)C程序对预处理命令行的处理是在程序执行的过程中进行的
3.若程序中有宏定义行:#define N 100,则以下叙述中正确的是 B A)宏定义行中定义了标识符N的值为整数100
B)在编译程序对C源程序进行预处理时用100替换标识符N C)对C源程序进行编译时用100替换标识符N D)在运行时用100替换标识符N
第二节 标识符的作用域和存储分类 习题
1.在C语言中,只有在使用时才占用内存单元的变量,其存储类型是 A A)auto和register B) extern和register C) auto和static D) static和register 2.有以下程序: fun(int x, int y)
23
欲穷千里目,更上一层楼!
{
static int m=0,i=2;
i+=m+1; m=i+x+y; return m; }
main() {
int j=1,m=1,k;
k=fun(j,m); printf(\k=fun(j,m); printf(\}
执行后的输出结果是 B A)5,5 B)5,11 C)11,11 D)11,5 3.有以下程序 int a=4; int f(int n) {
int t=0; static int a=5;
if(n%2) {int a=6; t+=a++;} else {int a=7;t+=a++;} return t+a++; }
main() {
int s=a,i=0;
for(;i<2;i++) s+=f(i); printf (\}
程序运行后的输出结果是B A)24 B)28 C)32 D)36
第三节 动态存储分配 习题
1.已有定义:double *p;,请写出完整的语句,利用malloc函数使p指向一个双精度型 的动态存储单元_______________________。p = (double*)malloc(sizeof(double))
2.以下程序中给指针p分配3个double型动态内存单元,请填空。3 * sizeof(double) # include
p=(double *) calloc(_______________); p[0]=1.5; p[1]=2.5; p[2]=3.5;
24
欲穷千里目,更上一层楼!
printf(“%f%f%f\\n”,p[0],p[1],p[2]); }
3.以下程序的输出结果是 ______________。 40 # include
char *s1,*s2,m;
s1=s2=(char*)malloc(sizeof(char)); *s1=15; *s2=20; m=*s1+*s2;
printf(“%d\\n”,m); }??
第四节 main函数的参数与函数指针 习题
1.设有定义语句int(*f)(int);,则以下叙述正确的是 B A)f是基类型为int的指针变量。
B)f是指向函数的指针变量,该函数具有一个int类型的形参。 C)f是指向int类型一维数组的指针变量。
D)f是函数名,该函数的返回值是基类型为int类型的地址。 2.有以下程序:
int add(int a,int b){return(a+b);} main() {
int k,(*f)(),a=5,b=10; f=add; … }
则以下函数调用语句错误的是 C A)k=(*f)(a, b); B)k=add(a, b); C)k=*f(a, b); D)k=f(a, b); 3.有以下程序
float f1(float n) { return n*n; } float f2(float n) { return 2*n; } main() {
float (*p1)(float),(*p2)(float),(*t)(float), y1, y2; p1=f1; p2=f2;
y1=p2( p1(2.0) );
t = p1; p1=p2; p2 = t;
25
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库计算机C语言复习资料及课后题解(5)在线全文阅读。
相关推荐: