C、abc>a D、abc->a
40、在说明一个结构体变量时系统分配给它的存储空间是( C )。(1分)
A、该结构体中的第一个成员所需存储空间 B、该结构体中的最后一个成员所需存储空间 C、该结构体中所有成员所需存储空间的总和 D、该结构体占用最大存储空间的成员所需存储空间
41、下列关于C语言数据文件的叙述中,正确的叙述是( D )。(1分)
A、文件由ASCII码字符序列组成,C语言只能读写文本文件 B、文件由二进制数据序列组成,C语言只能读写二进制文件
C、文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D、文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
42、在C语言中,关于文件存取方式,( C)。(1分) A、只能顺序存取 B、只能随机存取(也称直接存取)
C、可以顺序存取,也可以随机存取 D、只能从文件开头存取
43、C语言可以处理的文件类型是( B )。(1分) A、文本文件和数据文件 B、文本文件和二进制文件 C、数据文件和二进制文件 D、都不对
44、以读写方式打开一个已存在的二进制文件file1,fopen函数的正确的调用方式是( D)。(1分)
A、FILE *FP; FP=fopen(\、FILE *FP; FP=fopen(\C、FILE *FP; FP=fopen(\D、FILE *FP; FP=fopen(\
45、设fp 是文件指针,str 是一个字符串变量,n是一个整数,向文件中输出字符串的正确格式是( A )。(1分)
A、fputs(str,fp); B、fputs(fp,str); C、fputs(str,n,fp); D、fputs(fp,n,str);
46、函数调用语句fseek(fp,-10L,2)的含义是( D )。(1分) A、将文件位置指针移动距文件头10个字节处 B、将文件位置指针从当前位置向文件尾方向移10个字节 C、将文件位置指针从当前位置向文件头方向移10个字节 D、将文件位置指针移至距文件尾10个字节处
47、fp 是文件指针,str 是一个字符串,n是一个整数,向文件中输出数据的正确格式是( B )。(1分)
A、fprintf(\B、fprintf(fp,\ C、fprintf(\、fprintf(\
48、在C程序中,可把整型数以二进制形式存放到文件中的函数是( C )。(1分) A、fprintf函数 B、fread函数
C、fwrite函数 D、fputc函数
49、标准函数 fgets(s, n, f) 的功能是( B )。(1分)
A、从文件f中读取长度为n的字符串存入指针s所指的内存 B、从文件f中读取长度不超过n-1的字符串存入指针s所指的内存
C、从文件f中读取n个字符串存入指针s所指的内存 D、从文件f中读取n-1字符串存入指针s所指的内存
50、若fp是指向某文件的指针,若没到该文件的末尾,则函数表达式!feof(fp)的值是( B )。(1分) A、EOF B、1 C、非零值 D、0
二、填空题(7道小题,共30分)
1、* 下面程序的功能是:将从键盘上输入的小写字母变成对应大写字母后的第二个字母并输出。其中y变成A,z变成B。 #include
char 【c 】;
while(( c=getchar())!='\\n') {
if(c>='a' && c<='z') {
c-=30;
if(c>'Z'&&c<='Z'+2) c-=26; }
printf(\【c 】\}
printf(\}
(4分)
--------------------------------------------------------------------------------
2、* 用冒泡法对10个数排序 #include
【int 】 a[11],i,j,t;
printf(\ for(i=1;i<11;i++) scanf(\ printf(\ for(i=1;i<=9;i++)
for (j=【1 】;j<=10-i;j++) if(a[j]>a[j+1]) {
t=a[j]; a[j]=a[j+1]; a[j+1]=t; }
printf(\ for(i=1;i<11;i++) printf(\}
(4分)
--------------------------------------------------------------------------------
3、* 两个乒乓球队进行比赛,各出三人甲队为A、B、C.乙队为X、Y、Z三人.已经抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比. 编程序找出三对赛手的名单. #include
char 【i 】, j, k;
for ( i='X'; i<='Z'; i++) for ( j='X'; j<='Z'; j++) 【if】(i!=j)
for (k='X';k<='Z';k++) if(i!=k&&j!=k)
if ( i!='X'&&k!='X'&&k!='Z')
printf(\}
(4分)
--------------------------------------------------------------------------------
4、* 程序的功能是显示具有n个元素的数组s中的最大元素。 #include
int i,a[N];
int fmax(int s[],int n); for(i=0;i printf(\} int 【fmax 】(int s[],int n) { int k,p; for(p=0,k=p;p (4分) -------------------------------------------------------------------------------- 5、* 由系统随机产生一个N×N矩阵(矩阵中的元素值在[10,99]范围内),输出这个矩阵下三角区所有元素的和。 #define N 5 #include

