1、一个源程序文件由一个或多个( B )组成。 A.语句 B.函数 C.程序块 D.子程序 2、C程序的执行从( D )开始。
A.第一条语句 B.第一个函数 C.最后一个函数 D.主函数 3、从用户使用的角度看,函数有两种,它们是( A )。
A.库函数和用户自定义函数 B.库函数和主函数 C.用户自定义函数和主函数 D主函数和子函数
4、C源程序文件由 ( B )组成。
A.语句 B.函数 C.程序块 D.子程序 5、再C语言的函数中,( C )
A.必须有形参 B.形参必须是变量名 C.可以有也可以没有形参 D.数组名不能作形参
6、关于return语句,下列说法正确的是( C )
A.在主函数和其他函数中均可出现 B.必须在每个函数中出现 C.可以在同一个函数中出现多次 D只能在除主函数之外的函数中再出现一次 7、下列函数调用中,不正确的是( D )
A.max(a,b) B.max(3,a+b) C.max(3,5) Dint max(a,b) 指针
8、若已有定义int x;下列说明指针变量p指向x的正确语句是( B ) A.int p=&x; B.int *p=&x; C.int p=x; D.int *p=x; 9、变量的指针,其含义是指该变量的(A ) A.地址 B.值 C.名字 D.标识
*10、若已有定义int x=2; int *p=&x;则*p的值为(A ) A.2 B.&x C*x D&p
*11、已知p,p1为指针变量,a为数组名,I为整型变量,下列赋值语句中不正确的是(D ) A.p=&I B.p=p1 C.p=&a[i] D.p=10
数组
*1.若有定义char str[]= “very good”,则str的长度为:( C ) A. 8 B. 9 C. 10 D. 11
2.若有定义char str[]= “c program”,则str的长度为:( B ) A.9 B.10 C.11 D.12
3.下列关于数组的特征错误的是( C )
A.先定义后使用 B.可以有多维 C.定义数组长度时可以用常量或变量 D.可以作参数传递
4.数组名作为实参传递给形参时,数组名被处理为(C)。
A.该数组的长度 B.该数组的元素个数 C.该数组的首地址 D.该数组中各元素的值 6. 以下对一维整型数组 a 的正确说明是(D)。
A)int a(10) B)int n=10,a[n] C) int n D)#define SIZE 10 int a[SIZE]; 7. 若有定义: int a[10] ,则对数组 a 元素的正确引用是(D)。 A ) a[10] B)a[3.5] C)a(5) D)a[10-10] 14. 判断字符串 a 是否大于 b ,应当使用(D)。
A)if (a>b) B)if (strcmp(a,b)) C)if (strcmp(b,a)>0) D)if (strcmp(a,b)>0) 循环
1.程序段如下: int k=1;
while (k==0) k=k+1;
则以下说法正确的是( C )
A.while循环执行20次 B. 循环是无限循环 c.循环体语句一次也不执行 D.循环体语句执行一次
2. 下面程序段 int k=2;
while (k==0) ,printf(“%d”,k);k--;}
则下面描述中正确的是。(C)
A) while 循环执行 10 次 B)循环是无限循环 C)循环题语句一次也不执行 D)循环体语句执行一次
3. 以下程序段的循环次数是 (B)。 for (i=2; i==0; ) printf(“%d” , i--) ; A )无限次 B ) 0 次 C ) 1 次 D ) 2 次 6. 下述程序段的运行结果是。(B) #include “stdio.h” void main() { int sum=0,a=1; while(a<=10) {sum=sum+a; a++; }
printf(“sum=%d\\n”,sum);-
A)sum=0 B)sum=55 C)sum=10 D)sum=11 7. 下述语句执行后,变量 k 的值是。 int k=1;
while (k++<=10); (A)
A)10 B)11 C)9 D)无限循环,值不定 9. 执行语句 for (i=1;i++<4;) ; 后变量 i 的值是。 A) 3 B)4 C) 5 D)不定 10. 以下程序段。(A) x=-1; do
{ x=x*x; } while (x);
A)是死循环 B)循环执行 2 次 C)循环执行 1 次 D)有语法错误
12. 下述程序段的运行结果是。 #include “stdio.h” void main()
{ int sum=0,a=11; while(a<=10) {sum=sum+a; a++; }
printf(“sum=%d\\n”,sum);-
A)sum=0 B)sum=55 C)sum=10 D)sum=11 15 以下程序的输出结果是 main( C)
{ int n=4;
while(n)printf(\"%d \",--n); }
A) 2 0 B) 3 1 C) 3 2 1 0 D) 2 1 0
18.当说明一个共用体变量时系统分配给它的内存是(C )
A.各成员所需内存量的总和 B.结构中第一个成员所需内存量
C.成员中占内存量最大者所需内存量 D.结构中最后一个成员所需内存量 19.以下对C语言中共用体类型数据的叙述正确的是(C )
A.可以对共用体变量名直接赋值 B.一个共用体变量中可以同时存放其所有成员
C.一个共用体变量中不能同时存放其所有成员 D.共用体类型定义中不能出现结构体类型的成员
20.若有以下定义语句 union data
{int l; char c; float f;}a;
int n;则以下语句正确的是( C)
A.a=5; B.a={2,'a',1.2}; C.printf(\"%d\\n\ D.n=a; 22.C语言共用体类型变量在程序运行期间B( )
A.所有成员一直驻留在内存中 B.只有一个成员驻留在内存中 C.部分成员驻留在内存中 D.没有成员驻留在内存中 23.以下程序的运行结果是(B ) #include printf(\"%d\\n\A.2 B.4 C.6 D.8 文件选择题: 1.下列哪个是字符写函数( B )。 A.fgetc B.fputc C.fgets D fwrite 2.下列哪个是字符串读函数(C )。 A.fgetc B.fputc C.fgets D fwrite 3.若要打开D盘上user文件夹下名为abc.txt的文本文件进行读、写操作,符合此要求的函数调用是( C)。 A.fopen(\"D:\\\\\\abc.txt\B.fopen(\"D:\\abc.txt\C.fopen(\"D:\\\\\\abc.txt\ D.fopen(\"D:\\abc.txt\4.下列哪个是读写文件出错检测函数( A )。 A.ferror B.clearerr C.feof D fwrite 5.当顺利执行了文件关闭操作时,fclose函数的返回值是( C)。 A. -1 B.TRUE C. 0 D. 1 6.当不能正确执行文件关闭操作时,fclose函数的返回值是(B )。 A. -1 B.EOF C. TRUE D. 1 8.若执行fopen函数时发生错误,则函数的返回值是:( B) A.地址值 B.null C.1 D.EOF 9.若以”a+”方式打开一个已存在的文件,则以下叙述正确的是:(A ) A.文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作。 B.文件打开时,原有文件内容被删除,位置指针移到文件开头,可作重新写和读操作。 C.文件打开时,原有文件内容被删除,只可作写操作。 D.以上各种说法皆不下确。 12.fscanf函数的正确调用形式是:( D) A.fscanf(fp,格式字符串,输也表列) B.fscanf(格式字符串,输出表列, fp) C.fscanf(格式字符串,文件指针,输出表列) D.fscanf(文件指针,格式字符串,输入表列) 13.fwrite函数的一般调用形式是:( D) A.fwrite(buffer,count,size,fp) B.fwrite(fp,size,count,buffer) C.fwrite(fp,count,size,buffer) D.fwirte(buffer,size,count,fp) 14.fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是( C) A.只写 B.追加 C.读或读写 D.答案B和C都正确 15.若调用fputc函数输出字符成功,则其返回值是:( D) A.EOF B.1 C.0 D.输出的字符 顺序结构 1. C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符( C ) A 必须为字母 B 必须为下划线 C 必须为字母或下划线 D 可以是字母、数字和下划线中的任一种字符 3.下面4个选项中,均是不合法的用户标识符的选项是( C ) A A P_0 do B float la0 _A C b-a goto int D _123 temp INT 4.在C语言中,int、char和short三种类型的数据在内存中所占用的字节数( D ) A由用户自己定义 B均为2个字节 C 是任意的 D 由所用机器的机器字长决定 6.下面不正确的字符串常量是( A ) A ˊabcˊ B 〞12ˊ12〞 C 〞0 〞 D 〞〞 7.假设所有的变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( B ) A 7 B 8 C 6 D 2 8.以下正确的叙述是( D ) A 在C语言中,每行只能写一条语句 B 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C 在C程序中,无论整数还是实数,都能被准确无误的表示 D 在C程序中,%是只能用于整数运算的运算符 10. 设变量a是整型,f是实型,i是双精度型,则表达式10+ˊaˊ+i*f值的数据类型为( C ) A int B float C double D 不确定 11.在C语言中,char型数据在内存中的存储形式是( D ) A 补码 B 反码 C 原码 D ASCⅡ码 12.设有说明语句:char w;int x;float y;double z;值的数据类型为( D ) A float B char C int D double 13.在C语言中,要求运算数必须是整型的运算符是( D ) A / B && C != D % 14.在C语言中一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为( C ) A 0~255 B 0~32 767 C 0~65 535 D 0~2 147 483 647 15下面正确的字符常量是( C ) A 〞c 〞 B 〞\\\\〞 C ˊWˊ D ˊˊ(中间没有空格) 18.已知字母A的ASCⅡ码为十进制数65,且定义c2为字符型变量,则执行语句 c2=ˊAˊ+ˊ6ˊ-ˊ3ˊ;后,c2中的值为:D A D B 68 C 不确定的值 D C 19.以下程序的运行结果是(A ) # include { int m=5,n=10; printf(“%d,%d\\n”,m++,--n);} A 5,9 B 6,9 C 5,10 D 6,10 24.输入数据的形式是25,13,10<回车>,则程序的输出结果是( D ) main( D ) {int x,y,z; scanf (“%d%d%d”,&x,&y,&z); printf(“x+y+z=%d\\n”,x+y+z);- A x+y+z=48 B x+y+z=35 C x+z=35 D 不确定值 25.若有如下定义,则正确的语句是( B ) int a,b; float x; A a=1,b=2, B b++; C a=b=5 D b=int(x); 数组 1.若有定义: double a[5], 则 a 数组的长度为()。 2. 若有定义: double x[3][5], 则 x 数组中行下标的上限为()。 3. 若有定义: int a[3][4]={{1,2},{0},{4,6,8,10}}; 则初始化后, a[1][2] 的值为()。 4. 下面程序段的运行结果是()。 char x* +=”the teacher”; int i=0; while (x[++i]!='\\0') if (x[i-1+=='t') printf(“%c”,x*i+); 5. 欲将字符串 S1 复制到字符串 S2 中,其语句是()。 6.C 语言中数组的下标总是从()开始,不可以为负数; 7.字符串是以()为结束标志的一维字符数组。 9.C 语言中构成数组各个元素具有相同的()。 11. 设int a[2][3] = {{2},{3}}; 则数组元素()的值为3。 12. 如果在程序中调用了strcat函数,则需要预处理命令()。 13.如果调用了gets函数,则需要预处理命令()。 14. 若有定义: imt b[2][3], 则 b 数组中列下标的上限为()。 15. 设int a[2][3] = {{5},{6}}; 则数组元素()的值为5。 循环 1. C 语言中至少执行一次循环体的循环语句是 3.C 语言中终止整个循环的语句是。 4.C 语言中结束本次循环的语句是。 5.for(;;)语句相当于while( ) 6.下列程序计算1到100的整数的累加和,请完善程序 main() {int a,sum= ; a=1; while( ) {sum+=a; a++;} printf(“sum=%d\\n”, );- 10.输入数组的值,并输出, 完成填空。 main() { int a[6],i; for(i=0;i<6;i++) scanf(“%d”,&a*i+); for(i=0;i<6;i++) printf(“%d\\n”,a*i+);- 11.输出已知数组中的所有偶数, 完成填空。 ©main() {int a[10]={0,1,2,3,4,5,6,7,8,9},i; for(i=0;i<10;i++) if a*i+%2==0 printf(“%d\\n”,a*i+);- 填空题 指针 1、语句int *p中,指针变量名为 p 2、执行语句int i=2; int *p; p=&i;后,*p的值为 2 3、指针变量作为函数的参数时,实参与形参之间传递的是地址 4、若有定义int i; int *p =&i;则&*p等价于 p 5、若有定义int i; int *p =&i;则*&i等价于 i 函数 6、函数可以嵌套调用,但是不可以嵌套定义 7、若用数组名作为函数调用的实参,传递给形参的将是数组的首地址 8、C语言规定,简单变量作实参时,和它对应的参数之间的传递方式是值传递 判断题 1、 函数可以嵌套定义(错) 2、 一个C语言源程序文件中有且只能有一个主函数(对) 3、 函数可以嵌套调用(对) 4、 函数必须有形参(错) 5、 函数中必须有return语句(错) 6、 变量的值针就是变量的地址(对) 7、 取地址运算符&与指针运算符*的优先级相同,结合方向为自右向左(对) 8、 指针变量不可以作为函数的参数(错) 一. 选择题(单项) 2. C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符—C—。 A 必须为字母 B 必须为下划线 C 必须为字母或下划线 D 可以是字母、数字和下划线中的任一种字符 2.下面4个选项中,均是C语言关键字的选项是—A—。 A auto enum include B switch typedef continue C signed union scanf D if struct type 3.下面4个选项中,均是不合法的用户标识符的选项是—C—。 A A P_0 do Bfloat la0 _A C b-a goto int D _123 temp INT 4.在C语言中,int、char和short三种类型的数据在内存中所占用的字节数—D—。 A 由用户自己定义 B 均为2个字节 C 是任意的 D 由所用机器的机器字长决定 5.下面4个选项中,均是合法浮点数的选项是—B—。 A +1e+1 5e-9.4 03e2 B -.60 12e-4 -8e5 C 123e 1.2e-.4 +2e-1 D -e3 .8e-4 5.e-0 6.下面不正确的字符串常量是—A—。 A ˊabcˊ B 〞12ˊ12〞 C 〞0 〞 D 〞〞 7.假设所有的变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是B——。 A 7 B 8 C 6 D 2 8.以下正确的叙述是—D—。 A 在C语言中,每行只能写一条语句 B 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C 在C程序中,无论整数还是实数,都能被准确无误的表示 D 在C程序中,%是只能用于整数运算的运算符 9.以下表达式值为3的是—B—。 A 16-13%10 B 2+3/2 C 14/3-2 D (2+6)/(12-9) 10. 设变量a是整型,f是实型,i是双精度型,则表达式10+ˊaˊ+i*f值的数据类型为—C—。 A int B float C double D 不确定 11.在C语言中,char型数据在内存中的存储形式是—D—。 A 补码 B 反码 C 原码 D ASCⅡ码 12.设有说明语句:char w;int x;float y;double z;值的数据类型为——D。 A float B char C int D double 13.在C语言中,要求运算数必须是整型的运算符是—D—。 A / B ++ C != D % 14.在C语言中一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为—C—。 A 0~255 B 0~32 767 C 0~65 535 D 0~2 147 483 647 15下面正确的字符常量是—C—。 A 〞c 〞 B 〞\\\\〞 C ˊWˊ D ˊˊ 16.已知各变量的类型说明如下: int k , a , b; unsigned long w=5; double x=1.42; 则以下不正确的表达式是—A—。 A x%(-3) B w+= -2 C k=(a=2,b=3,a+b) D a+=a-=(b=4)*(a=3) 17.若定义语句:int a=7;float x=2.5;y=4. 7; 则表达式x+a%3*(int)(x+y)%2/4的值是—A—。 A 2.500000 B 2.750000 C 3.500000 D 0.000000 18.已知字母A的ASCⅡ码为十进制数65,且定义c2为字符型变量,则执行语句 c2=ˊAˊ+ˊ6ˊ-ˊ3ˊ;后,c2中的值为:A A D B 68 C 不确定的值 D C 19.以下程序的运行结果是—A—。 # include {int m=5,n=10; printf(“%d,%d\\n”,m++,--n);} A 5, 9 B 6,9 C 5,10 D 6,10 20. 以下程序的运行结果是—B—。 # include {int a=201,b=012; printf(“%2d,%2d\\n”,a,b);- A 01,12 B 201,10 C 01,10 D 20,01 21.设有如下程序 # include ,char ch1=’A’,ch2=’a’; printf(“%c\\n”,(ch1,ch2));- 则下列叙述正确的为—B— A 程序的输出结果为大写字母A B 程序的输出结果为小写字母a C 运行时产生错误信息 D 格式说明符的个数少于输出项的个数,编译出错 22.以下正确定义整型变量a,b和c并为其赋初值5的语句是—C—。 A int a=b=c=5; B int a,b,c=5; C int a=5,b=5,c=5; D a=b=c=5; 23.设x,y均为float型变量,则不合法的赋值语句是—B—。 A ++x ; B y=(x%2)/10 ; C ; D x=y=0; 24.输入数据的形式是25,13,10<回车>,则程序的输出结果是—D—。 main() {int x,y,z; scanf (“%d%d%d”,&x,&y,&z); printf(“x+y+z=%d\\n”,x+y+z);- A x+y+z=48 B x+y+z=35 C x+z=35 D 不确定值 25.若有如下定义,则正确的赋值语句是—D—。 int a,b; float x; A a=1,b=2, B b++; C a=b=5 D b=int(x); 结构题选择题: 1.已知学生记录描述为 struct student {int no; char name[20]; char sex; struct {int year; int month; int day;}birth;}; struct student s; 设变量s中的“生日”应该是“1984年11月11日”,下列对“生日”的正确赋值方式是(D ) A. year=1984; B.birth.year=1984; month=11; birth.month=11;day=11; birth.day=11; C.s.year=1984; D.s.birth.year=1984;s.month=11; s.birth.month=11;s.day=11; s.birth.day=11; 2.当说明一个结构体变量时系统分配给它的内存是(A ) A.各成员所需内存的总和 B.结构中第一个成员所需内存量 C.成员中占内存量最大者所需的容量 D.结构中最后一个成员所需内存量 3.设有以下说明语句 struct stu {int a;float b;}stutype;则以下叙述不正确的是( C) A. struct 是结构体类型的关键字 B. struct stu 是用户定义的结构体类型 C. stutype 是用户定义的结构体类型名 D. a 和 b 都是结构体成员名 4.C语言结构体类型变量在程序执行期间 (A ) A. 所有成员一直驻留在内存中 B. 只有一个成员驻留在内存中 C. 部分成员驻留在内存中 D. 没有成员驻留在内存中 5.在16位机动IBM-PC机上使用C语言,若有如下定义: struct data {int I; char ch; double f;}b; 则结构体变量b占用内存的字节数是(B ) A.1 B.7 C.8 D.11 6.以下程序的运行结果是(A ) main() {struct date {int year,month,day;}today; printf(\"%d\\n\A.6 B.8 C.10 D.12 7.根据下面的定义,能打印出字母M的语句是(D ) struct person {char name[9]; int age;}; struct person class[10]={\"John\A.printf(\"%c\\n\B.printf(\"%c\\n\C.printf(\"%c\\n\D.printf(\"%c\\n\8.下面程序的运行结果是(D) main() {struct cmplx{int x;int y;}cnumn[2]={1,3,2,7}; printf(\"%d\\n\"),cnum[0].y/cnum[0].x*cnum[1].x;} A.0 B.1 C.3 D.6 9.若有以下定义和语句 struct student {int age; int num;}; struct student stu[3]={{1001,20},{1002,19},{1003,21}}; main() {struct student *p;p=stu;„„}则以下不正确的引用是(D ) A.(p++)->num B.p++ C.(*p).num D.p=&stu.age 10.以下 scanf 函数调用语句中对结构体变量成员的不正确引用是(D ) struct pupil {char name[20]; int age; int sex;}pup[5],*p; p=pup; A.scanf(\"%s\ B.scanf(\"%d\C..scanf(\"%d\ D.scanf(\"%d\11.若有以下说明和语句: struct student {int age; int num;}std.*p; p=&std;则以下对结构体变量std中成员age的引用方式不正确的是(D ) A. std.age B.P->age C.(*p).age D.*p.age 12.若有以下程序段: struct dent {int n; int *m;}; int a=1,b=2,c=3; struct dent s[3]={{101,&a},{102,&b},{103,&c}}; main() {struct dent *p;p=s; „„}则以下表达式值为2是(D ) A.(P++)->m B.*(P++)->m C.(*P).m D.*(++p)->m 13.设有以下语句: struct st {int n; struct st *next;}; struct st a[3]={5.&a[1],7,&a[2],9,'\\0'};*p; p=&a[0];则以下表达式的值为6的是(B ) A.p++->n B.p->n++ C.(*p).n++ D.++p->n 15.若有以下说明和语句,则下面表达式中的值为1002的是( B) struct student { int num;int age; }; struct student stu[3]={{1001,20},{1002,19},{1003,21}}; struct student *p; p=stu; A.(p++)->num B.(++p)-> num C.(*p).num D.(*++p).age 16.以下对结构体变量stul中成员age的非法引用的是(B ) struct strudent {int age; int num;}stul,*p; p=&stul; A.stul.age B.student.age C.p->age D.(*p).age 17.设有以下说明和定义语句,则下面表达式中值为3的是( D) struct s {int il; struct s *12;}; struct s a[3]={1,&a[1],2,&a[2],3,&a[0]},*ptr ptr=&a[1]; A.ptr->il++ B.ptr++->il C.*ptr->il D.++ptr->il 18.当说明一个共用体变量时系统分配给它的内存是( C) A.各成员所需内存量的总和 B.结构中第一个成员所需内存量 C.成员中占内存量最大者所需内存量 D.结构中最后一个成员所需内存量 19.以下对C语言中共用体类型数据的叙述正确的是(C ) A.可以对共用体变量名直接赋值 B.一个共用体变量中可以同时存放其所有成员 C.一个共用体变量中不能同时存放其所有成员 D.共用体类型定义中不能出现结构体类型的成员 20.若有以下定义语句 union data {int l; char c; float f;}a; int n;则以下语句正确的是( C) A.a=5; B.a={2,'a',1.2}; C.printf(\"%d\\n\ D.n=a; 21.设有以下语句,则下面不正确的叙述是(D ) union data {int I; char c; float f;}UN; A.UN所占的内存长度等于成员f的长度 B.UN的地址和它的各成员地址都是同一地址 C.UN不可以作为函数参数 D.不能对UN赋值,但可以在定义un时对它初始化 22.C语言共用体类型变量在程序运行期间( B) A.所有成员一直驻留在内存中 B.只有一个成员驻留在内存中 C.部分成员驻留在内存中 D.没有成员驻留在内存中 23.以下程序的运行结果是( B) #include printf(\"%d\\n\A.2 B.4 C.6 D.8 25.以下程序的运行结果是:( )A #include main() { a.ch[0]=13; a.ch[1]=0; printf(\"%d\\n\ A.13 B.14 C.208 D.209 文件选择题: 1.下列哪个是字符写函数( B )。 A.fgetc B.fputc C.fgets D fwrite 2.下列哪个是字符串读函数( C )。 A.fgetc B.fputc C.fgets D fwrite 3.若要打开D盘上user文件夹下名为abc.txt的文本文件进行读、写操作,符合此要求的函数调用是( C)。 A.fopen(\"D:\\\\\\abc.txt\B.fopen(\"D:\\abc.txt\C.fopen(\"D:\\\\\\abc.txt\ D.fopen(\"D:\\abc.txt\4.下列哪个是读写文件出错检测函数( A )。 A.ferror B.clearerr C.feof D fwrite 5.当顺利执行了文件关闭操作时,fclose函数的返回值是(C )。 A. -1 B.TRUE C. 0 D. 1 6.当不能正确执行文件关闭操作时,fclose函数的返回值是( B)。 A. -1 B.EOF C. TRUE D. 1 7. 以下要作为函数fopen中第一个参数的正确格式是:(D ) A.c:user\ext.txt B.c:\\rser\ext.txt C.\ext.txt D.c:\\\\\ext.txt 8.若执行fopen函数时发生错误,则函数的返回值是:(B ) A.地址值 B.null C.1 D.EOF 9.若以”a+”方式打开一个已存在的文件,则以下叙述正确的是:( A) A.文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作。 B.文件打开时,原有文件内容被删除,位置指针移到文件开头,可作重新写和读操作。 C.文件打开时,原有文件内容被删除,只可作写操作。 D.以上各种说法皆不下确。 10.当顺利执行了文件关闭操作时,fclose函数的返回值是:( C) A.-1 B.TURE C.0 D.1 11.已知函数的高速用形式:fread(buffer,size,count,fp);其中buffer代表的是(C ) A.一个整型变量,代表要读入的数据项总数 B.一个文件指针,指向要读的文件 C.一个指针,指向要读入数据的存放地址 D.一个存储区,存放要读的数据项 12.fscanf函数的正确调用形式是:(D ) A.fscanf(fp,格式字符串,输也表列) B.fscanf(格式字符串,输出表列, fp) C.fscanf(格式字符串,文件指针,输出表列) D.fscanf(文件指针,格式字符串,输入表列) 13.fwrite函数的一般调用形式是:( D) A.fwrite(buffer,count,size,fp) B.fwrite(fp,size,count,buffer) C.fwrite(fp,count,size,buffer) D.fwirte(buffer,size,count,fp) 14.fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是(C ) A.只写 B.追加 C.读或读写 D.答案B和C都正确 10.若调用fputc函数输出字符成功,则其返回值是:( D) A.EOF B.1 C.0 D.输出的字符 15.函数调用语句:fseek(fp,-20L,2);的含义是( C) A.将文件位置指针移到了距离文件头20个字节处 B.将文件位置指针从当前位置向后移动20个字节 C.将文件位置指针从文件末尾处向后退20个字节 D.将文件位置指针移到了距离当前位置20个字节处 16.利用fseek函数可以实现的操作是:( A) A.改变文件的位置指针 B.文件的顺序读 C.文件的随机读写 D.以上答案均正确 17.Rewind,函数的作用是:(A ) A.使位置指针重新返回文件的开头 B.将位置指针指向文件中所要求的特定位置 C.使位置指针指向文件的末尾 D.使位置指针自动移至下一个字符位置 18.函数ftell(fp)作用是:(A) A.得到流式文件中的当前位置 B.移动流式文件的位置指针 C.初始化流式文件的位置指针 D.以上答案均正确 19、下列程序的输出结果是(B ) struct abc { int a, b, c; }; main() { struct abc s[2]={{1,2,3},{4,5,6}}; int t; t=s[0].a+s[1].b%s[0].c; printf(\"%d \\n\",t); } A 2 B 3 C 4 D 7 20.下列程序的输出结果是( C) struct student { int a, b, c; }; main() { struct student stu[2]={{1,2,3},{4,5,6}}; int t; t=stu[0].a+stu[1].b%stu[0].c; printf(\"%d \\n\ (A) 0 (B) 1 (C) 3 (D) 5 二.填空题 1.C语言中的标识符可分为关键字、【用户标识符】和【预定义标识符】3类。 2.在C语言中,用“\\”开头的字符序列称为转义字符,转义字符“\\n”的功能是【换行】;转义字符“\\r”的功能是【回车】。 3.在C语言中,用关键字【float】定义单精度实型变量,用关键字【double】定义双精度实型变量,用关键字【char】定义字符型变量。 4.在C语言中,&作为双目运算符时表示的是【按位与运算】,而作为单目运算符时表示的是【取地址】。 5.C语言所提供的基本数据类型包括:单精度型、双精度型、【整型】、【字符型】和【枚举类型】。 6运算符%两侧运算量的数据类型必须都是【整型】;运算符++和--的运算量必须是【变量】。 7.若a是int型变量,且a的初值是6,则执行表达式a+=a-=a*a后a的值为【-60】。 8.若有定义语句:int x=3,y=2;float a=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为【1】。 9.假设m是一个3位数,从左到右依次用a、b、c表示各位数字,则从左到右各位数字是b、a、c的3位数的表达式是【(m/10%10)*100+m/100*10+m%10】。 10.在C语言中的赋值表达式中,赋值号左边须是【变量】。 11. C语言中的标识符只能由3种字符组成,它们是【关键字】、【用户标识符】和【预定义标识符】。 12.表达式x=6应当读做【将6赋给变量x】。 13.设在C语言中一个int型数据在内存中占2个字节,则int型数据的取值范围为【-32768~32767】(用十进制表示)。 14.若有定义语句:int s=6;则表达式s%2+(s+1)%2的值为【1】。 因篇幅问题不能全部显示,请点此查看更多更全内容