计算机C语言复习资料及课后题解(5)

2019-04-05 13:19

欲穷千里目,更上一层楼!

#include

void f(char p[][10], int n ) /* 字符串从小到大排序 */ {

char t[10]; int i,j; for(i=0; i<9; i++) 改成for(i=0;i0) {

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 main( ) {

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 main() {

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 main ( ) { double *p;

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 main() {

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


计算机C语言复习资料及课后题解(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016年上海市奉贤区中考数学二模试卷及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: