A)地址值 B)0 C)1 D)EOF
(4)若要用fopen函数打开一个新的二进制文件,该文件要既能读又能写,则文件方式字符串应是 。 A)"ab+" B) "wb+" C) "rb+" D)"ab"
(5)当顺利执行了文件关闭操作时,fclose函数的返回值是 。 A)-1 B)TURE C)0 D)1
二、填空题
(1)在C程序中,文件可以用( )方式存取,也可以用( )方式存取。 (2)在C程序中,数据可以用( )和( )两种代码形式存放。
(3)在C程序中,文件的存取是以( )为单位的,这种文件被称作( )文件。
(4)函数调用语句:fgets(buf,n,fp);从fp指向的文件中读入( )个字符放到buf字符数组中。
函数值为( )。 (5)feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为( ),否则为( )。 三、编程题
(1)请编写程序:从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,输出到磁盘文件“upper.txt”中保存。输入的字符串以“!”结束。然后再将文件upper.txt中的内容读出显示在屏幕上。
(2)设文件student.dat中存放着一年级学生的基本情况,这些情况由以下结构体来描述: struc student
{long int num; /*学号*/ char name[10]; /*姓名*/ int age; /*年龄*/ char sex; /*性别*/ char speciality[20]; /*专业*/ char addr[40]; /*地址*/ };
请编写程序,输出学号在970101—971035之间的学生学号、姓名、年龄和性别。
参考答案
四、编程题
第一章 C语言概述
第二章 数据类型、运算符与表达式 第三章 简单C程序设计 第四章 选择结构程序设计 (1) main( )
{int x;
scanf(―%d‖,&x);
if((x%3= =0)&&(x%5= =0)&&(x%7= =0)) printf(―%d can be divided by 3,5,7\\n‖,x); else if ((x%3= =0)&&(x%5= =0))
printf(―%d can be divided by 3,5\\n‖,x); else if ((x%3= =0)&&(x%7= =0))
printf(―%d can be divided by 3,7\\n‖,x);
else if ((x%5= =0)&&(x%7= =0))
printf(―%d can be divided by 5,7\\n‖,x); else if(x%3= =0)
printf(:%d can be divided by 3\\n‖,x); else if (x%5= =0)
printf ―%d can be divided by 5\\n‖,x);
else if (x%7= =0)
printf (%d can be divided by 7\\n‖,x);
else
printf(―%d cannot be divided 3,5,7\\n‖,x);
}
(2) main( )
{ float x; int y;
printf(―\\n input x:‖); scanf(―%f‖,&x); switch(x<0)
{case 1;y= -1;break; case 0; switch(x= =0)
{case 1; y= 0; break; default : y= 1; } }
printf(―\\n y= %d‖,y);
}
第五章 循环控制
(1) # include
{int day=0,buy=2; float sum=0.0, ave; do { sum+=0.8*buy;
day++; buy*=2; }while(buy<=100); ave=sum/day; printf({―%f,ave}; }
(2) #include
main( ) {int i,j;
float(i=1; i<=6;i++)
{sum=0;
for(j=1;j<=5;j++) {scanf(%f‖,&g); sum+=g; }
ave=sum\\5;
printf(―No.úve=%5.2f\\n‖,i,ave); } }
第六章 数组
(1) # define M 50 main( )
{ int a[M],c[5],i,n=0,x;
printf (―Enter 0 or 1or 2 or 3 or 4,to end with –1\\n‖); scanf (―%d‖,&x); while (x! = -1)
{ if (x>=0&& x<=4) {a[n]x; n++;} }
for (i=o;i<=5;i++) c[i]=0; for (i=0;i for (i=;i<=4;i++) printf(―%d:%d\\n‖,c[i]); printf(―\\n‖); } (2) main ( ) {int a [5][4]={3,6,2,1,3,9,0,2,1,5,6,7,4,0,0,0,0}; int i,j; for(i=0;I<4;I++) for(j=0;j<4;j++) a[4][j]+=a[i][j]; printf(―The result is:\\n‖); for (i=0 ;i<4;i++) printf(―=‖,a[4][i]); } 第七章 函数 (1) sum(int n) {int i,k=0; for (i=0;i<=n;i++) k+=i; return k; } (2) max(int arr[][4]) {int I,j,max; max=arr[0][0]; for(I=0;I<2;I++) for(j=o;j<4;j++) if (arr[i][j]>max)max=arr[i][j]; return(max); } 第八章 编译预处理 (1) #define MOD(a,b) (a%b) main( ) {int a,b; printf(―input two integer a,b:‖); scanf(―%d,%d‖,&a,&b); printf(―a mod b is :%d\\n‖,MOD(a,b)); } (2) #define swap(x,y) {int t ;t =x;x=y;y=t;} main( ) {int i,a[10],b[10]; for (i=0;I<10;i++) scanf (―%d‖,&a[i]); for (i=0;i<10;i++) scanf(―%d‖,&b[i]); for (i=o;i<10;i++) swap(a[i],b[i]); for (i=0;i<10;i++) printf(―%d‖,a[i]‖); printf(―\\n‖); for (i=0;i<10;i++) printf(―%d‖,b[i]); } 第九章 指针 (1) #include ―stdio.h‖ main( ) {static char x[]= ―computer‖; char *p; for 9p=x;p (2) #include {int b[10],position,mun,k,*q1,*q2,temp; printf(―Input 10 sorted munbers:\\n‖); for (k=0;k<10;k++) scanf(―%d‖,&b[k]); printf(―\\nInput the position :\\n‖); scanf (?%d‖,&position ); printf(―Input the number of data that be sorted again:\\n‖); scanf (―%d‖,&num); printf (―The old array b is :\\n‖); for 9k=0;k<10;k++0 printf (―M‖,b[k]); printf (―\\n‖); q1= &b[position –1]; q2= &b[position –2 +num]; for (; q1<&b [position –1]+/2;q++,q2--) {temp=*q1;q1=*q2;*q2=temp;} printf(―The new array b is :\\n‖); for (k= 0;k<10;k++)