智慧树知到《C语言程序设计(商洛学院)》章节测试答案
智慧树知到《C语言程序设计(商洛学院)》章节测试答案
第一章单元测试
1、C语言是一种()
A.以上都不是
B.高级语言
C.机器语言
D.汇编语言
正确答案:高级语言
2、构成C语言程序的基本单位是()
A.语句
B.函数
C.程序行
D.字符
正确答案:函数
3、以下不是C语言的特点的是()
A.语言简洁紧凑
B.C语言移植性好
C.C语言可以直接对硬件操作
D.能够编制出功能复杂的程序
正确答案:能够编制出功能复杂的程序
4、以下叙述中正确的是()
A.程序设计的任务就是确定所用数据结构
B.程序设计的任务就是编写程序代码并上机调试
C.其余三种说法都不完整
D.程序设计的任务就是确定所用算法
正确答案:其余三种说法都不完整
5、算法具有五个特性,以下选项中不属于算法特性的是()
A.有效性
B.简洁性
C.确定性
D.有穷性
正确答案:简洁性
6、计算机科学家冯 · 诺依曼曾提出一著名公式:计算机程序=算法+数据结构。()
A.正确
B.错误
正确答案:错误
7、在程序设计中提到的算法就是“解决问题的方法和步骤”。()
A.正确
B.错误
正确答案:正确
8、根据计算机解决问题的类型不同,计算机算法一般分为数值运算算法和非数值运算算法两类。()
A.正确
B.错误
正确答案:正确
9、计算机程序的算法就是解决“做什么”和“怎么做”的问题。()
A.正确
B.错误
正确答案:正确
10、一般情况下,我们所说的算法是专指使用计算机解决问题的方法和步骤,即计算机算法。()
A.正确
B.错误
正确答案:正确
第二章单元测试
1、设有整型变量m值为8,下列赋值语句中,正确的是()。
A.m+1=8
B.m=m++
C.m+1+=8
D.++m=6
正确答案:m=m++
2、设字符型变量ch的值为';A';,整型变量m的值为1,假定执行ch=getchar();m=getchar();时,从键盘输入B,则变量ch和m的值分别为()。
A.';A';和';1'
B.';B';和';1'
C.';B';和';'
D.';B';和';'
正确答案:';B';和';'
3、设字符型变量ch的值为';A';,整型变量m的值为';1';,假定执行putchar(m);putchar(';';);putchar(ch);后,则输出结果是()。
A.lA
B.A l
C.A1
D.1;A
正确答案:1;A
4、如果用scanf()来输入长整型数据,则正确的格式控制符是 ()。
A.%lD
B.%d
C.%x
D.%lx
正确答案:%lx
5、如果用printf()来输出双精度型数据、则正确的格式控制符是 ()。
A.%le
B.%-10.2f
C.%lg
D.%lf
正确答案:%-10.2f
6、执行语句scanf(";%d,%d";,&;m,&;n);使m和n的值分别为1和2,正确输入是 ()。
A.1,2
B.1
C.1 2
D.12 ;2
正确答案:1,2
7、设整型变量a和b的值分别为8和9。printf(";%d,%d";,(a++,++b),b--);的输出是()。
A.8,8
B.8,7
C.9,9
D.10,9
正确答案:9,9
8、设有下列程序段,则其正确的输出是()。 int x=011,y=0x11; printf(";x=%-3dy=%3d";,x,y)。
A.x=9口口y=口17
B.x=11; y=x11
C.口口917口
D.x=口口9y=17口;
正确答案:x=9口口y=口17
9、设字符型变量ch已有值,下列语句中错误的是 ()。
A.scanf(";%c%c";,ch, ch)
B.{int ch=6;printf(";%d";,ch);}
C.5
D.ch>;48&;&;ch<;0x3A
正确答案:scanf(";%c%c";,ch, ch)
10、运行下列程序的输出是 ; 。main();{int k=1;{int k=2;printf(";%d";,k);};printf(";%d";,k);}。
A.12
B.22
C.11
D.21
正确答案:21
11、运行下列程序的输出是 ; 。main();{char ch=';B';printf(";%c%d";,ch,ch++);}。
A.C65
B.B65
C.B66
D.C66
正确答案:C66
第三章单元测试
1、已知a,b,c的值分别是1,2,3,则执行下列语句后a,b,c的值分别是()
if (a++<;b ){c=a; a=b; b=c; }
else a=b=c=0。
A.1,2,1
B.0,0,0
C.1,2,3
D.2,2,2
正确答案:2,2,2
2、以下if语句中格式正确的是()
A.if(a>;b) {b++;printf(";%d";,b)};else{a++;printf(";%d";,a);}
B.if(a>;b) {b++;printf (";%d";,b);};else {a++;printf(";%d";,a);}
C.if(a>;b)b++;printf(";%d";,b);else printf(";%d";,a)
D.if(a>;b); b++; else a++
正确答案:if(a>;b) {b++;printf (";%d";,b);};else {a++;printf(";%d";,a);}
3、若i是int型变量,且有下面的程序片段; i=0; if(i<;=0) printf(";####";); else printf(";****";);上面程序片段的输出结果是()
A.有语法错误,无输出结果
B.####****
C.****
D.####
正确答案:有语法错误,无输出结果
4、有以下程序:#include<;stdio.h>; main(); {int x,y; printf(";Enter an integer(x):";); scarf(";%d";,&;x); if(x++<;0) y=-1; else if(x==0) y=0;else y=1; printf(";%d";,y);}
现从键盘上输入-1,则程序的输出是()。
A.-1
B.不确定的值
C.1
D.0
正确答案:-1
5、若执行下面的程序时从键盘上输入10,则输出是()
main(); {int a;scanf(";%d";,&;a);if(a++>;10); printf(";%d\n";,++a);else printf(";%d\n";,a--); }
A.11
B.9
C.10
D.12
正确答案:11
6、下面程序的输出结果是()。 #include<;stdio.h>; main(); {int i=2,p;p=f(i,i+1); printf(";%d";,p); }
int f(a,b); int a,b; {int c; c=a; if(a>;b) c=1; else; if(a==b)c=0; else c=-1; return(c); }
A.0
B.-1
C.2
D.1
正确答案:-1
7、请读程序:#include<;stdio.h>; main(); {int x=l,y=0,a=0,b=0; switch(x); {case l:switch(y); {case 0:a++; break; case 1:b++;break;}; case 2:a++;b++; break;}; printf(";a=%d, b=%d\n";,a,b);}上面程序的输出结果是()
A.a=l,b=0
B.a=2,b=2
C.a=l,b=l
D.a=2,b=l
正确答案:a=2,b=l
8、有以下程序:#include<;stdio.h>; .; main(); {int al=0,a2=0,a3=0; char ch; while((ch=getchar())!=';\n';); switch(ch); {case ';A';:a1++; case ';B';:a2++; default:a3++; }; printf(";%d,%d,%d";,a1,a2,a3);}
现从键盘上输入AAAAABBBC<;回车>;,则程序执行后的输出结果是()
A.5,3,1
B.5,3,9
C.5,8,9
D.5,8,1
正确答案:5,8,9
9、若要求表示a不等于0的关系,错误的表达式是()
A.a
B.a<;>;0
C.a<;0| |a>;0
D.a!=0
正确答案:a<;>;0
10、程序的三种基本结构是()。
A.顺序结构,循环结构,选择结构
B.选择结构,循环结构,递归结构
C.顺序结构,循环结构,递归结构
D.顺序结构,选择结构,递归结构
正确答案:顺序结构,循环结构,选择结构
11、C语言中,逻辑真表示为()。
A.TRUE
B.非零值
C.1
D.';y';或';Y'
正确答案:1
12、已知a,b,c,w时int型变量,a,b均以赋值,且满足a<;b,先有以下程序段:
scanf (“%d”,&;c);w=a;if (w<;=b) w=b;if (w<;=c) printf (“%d”,w);else w=c;为把c的值放入w中,则执行此程序段时,从键盘输入的c的值不应取的范围是()。
A.c>;a且c<;b
B.c>;=b
C.b>;c
D.c>;a或c<;b
正确答案:c>;=b
13、设a,b,w为整型变量,ch为字符型变量,用if语句改写以下的程序段:switch(ch); { case';+';:w=a+b;break; case';-';:w=a-b;break; case';*';:w=a*b;break; case';/';:w=a/b;break;}; 在下列写法中,错误的是()
A.if(ch= =';*';) w=a*b;
else if(ch= =';/';) w=a/b;if(ch= =';+';) w=a+b;else if(ch= =';-';) w=a-b
B.if(ch= =';+';) w=a+b;
else if(ch= =';-';) w=a-b;
if(ch= =';*';) w=a*b;
else w=a/b
C.if(ch= =';+';); w=a+b;elseif(ch= =';-';) w=a-b;if(ch= =';*';) w=a*b;else if(ch= =';/';) w=a/b
D.if(ch= =';+';) w=a+b; if(ch= =';-';) w=a-b; if(ch= =';*';) w=a*b; if(ch= =';/';) w=a/b
正确答案:if(ch= =';+';) w=a+b;
else if(ch= =';-';) w=a-b;
if(ch= =';*';) w=a*b;
else w=a/b
14、以下程序的输出结果是();#include<;stdio.h>; main(); { int a=0,b=l,c=0,x=0,y=0; if(x<;=y); if(y=l0); if(!b); a=1; else if(c) a=10; a=-1; printf(";%d";,a);}
A.1
B.10
C.-1
D.不确定的值
正确答案:-1
第四章单元测试
1、分析下面的C语言代码:
int a=1,b=10;do{b-=a;a++;}while (b--<;0);则执行循环语句后b的值为()
A.-1
B.9
C.8
D.-2
正确答案:8
2、C语言中,while和do…while循环的主要区别是()
A.do…while的循环体不能是复合语句
B.do…while的循环体可以无条件执行一次
C.do…while允许从外部转到循环体内
D.while的循环控制条件比do…while的循环控制条件严格
正确答案:do…while的循环体可以无条件执行一次
3、研究下面的C程序段:
int i,j;for (i=5;i;i--)
for(j=0;j<;4;j++){…}
循环体的总执行次数是()
A.25
B.24
C.30
D.20
正确答案:20
4、分析下面的C代码段:
char str1[15]=";Sea View";char str2[15]=";Sea Breeze";strcpy(str1,str2);printf(";%s\n";,str1);则输出结果是()
A.Sea View Sea Breeze
B.Sea Breeze Sea View
C.Sea Breeze
D.Sea View
正确答案:Sea Breeze
5、下面有关for循环的正确描述是()
A.在for循环中,不能用break语句跳出循环体
B.for循环只能用于循环次数已经确定的情况
C.for循环是先执行循环体语句,后判断表达式
D.for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来
正确答案:for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来
6、若i为整型变量,则以下循环执行次数是()
for(i=2;i==0;); printf(“%d\n”,i--)。
A.1次
B.0次
C.无限次
D.2次
正确答案:0次
7、以下程序运行后,输出的结果是(); main(); {;int i, j ,sum=0;for (i=5;i;i--);for (j=0;j<;3;j++); sum++;printf(";%d";,sum); }
A.3
B.15
C.12
D.5
正确答案:15
8、下面程序的运行结果是()void main(){ int i; for(i=1;i<;=5;i++); {; if(i%2); printf(“*”); else; continue; printf(“#”);}printf(“$\n”);}
A.#*#*#*$
B.*#*#*#$
C.*#*#$
D.#*#*$
正确答案:*#*#*#$
第五章单元测试
1、以下对一维数组a的正确说明是:()
A.char a[3]={‘a’,’b’,’c’}
B.char a(10)
C.int a[]
D.int k=5,a[k]
正确答案:char a[3]={‘a’,’b’,’c’}
2、已知:int; a[10]; 则对a数组元素的正确引用是()
A.a[3.5]
B.a[0]
C.a(5)
D.a[10]
正确答案:a[0]
3、下述对C语言字符数组的描述中正确的是()
A.一维字符数组的元素在引用时其下标大小没有限制
B.任何一个一维字符数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间
C.任何一维字符数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间
D.一维字符数组的第一个元素是其下标为1的元素
正确答案:任何一维字符数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间
4、若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为:()
A.2
B.无确定值
C.3
D.4
正确答案:3
5、对二维数组的正确定义是()
A.int a[2] [ ]={1,2,3,4,5,6}
B.int a[2,3]={1,2,3,4,5,6}
C.int a[ ] [ ]={1,2,3,4,5,6}
D.int a[ ] [3]={1,2,3,4,5,6}
正确答案:int a[ ] [3]={1,2,3,4,5,6}
6、已知int a[3][4];则对数组元素引用正确的是()
A.a[1,3]
B.a[2][4]
C.a[2][0]
D.a(2)(1)
正确答案:a[2][0]
7、合法的数组定义是()
A.char a={';U';, ';V';, ';W';,';X';, ';Y';}
B.char a[5]={";A";,";A";, ";A";,";A";,";A";}
C.char a[5]= ";ABCDE"
D.char a[6]= {';A';,';B';,';C';,';D';,';E';}
正确答案:char a[6]= {';A';,';B';,';C';,';D';,';E';}
8、以下程序段的输出结果是(); char s[]=";\113vwxyz\x41"; printf(";%d\n";,strlen(s))。
A.3
B.7
C.8
D.10
正确答案:7
9、以下程序运行后,输出结果是();
void main()
{; int; a[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf(";%d%d%d%d\n";,a[0][3],a[1][2],a[2][1],a[3][0]);}
A.5430
B.0650
C.输出值不定
D.1470
正确答案:0650
10、若有以下定义和语句:
char s1[]=";abced";,s2[]=";abcd";printf(";%d\n";,strlen(strcpy(s1,s2)));则输出结果是:()
A.4
B.5
C.10
D.9
正确答案:4
第六章单元测试
1、一个C语言程序总是从()开始执行的。
A.不确定
B.主函数main
C.书写顺序的第一个函数
D.书写顺序的第一条执行语句
正确答案:主函数main
2、在 C 语言中,有关函数的说法,以下正确的是()
A.函数可嵌套定义,也可嵌套调用
B.函数可嵌套定义,但不可嵌套调用
C.函数不可嵌套定义,但可嵌套调用
D.函数不可嵌套定义,也不可嵌套调用
正确答案:函数不可嵌套定义,但可嵌套调用
3、调用函数的实参与被调用函数的形参应有如下关系()
A.只要求实参与形参个数相等
B.上述三点均应具备
C.只要求实参与形参数据类型相同
D.只要求实参与形参顺序相同
正确答案:上述三点均应具备
4、为了判断两个字符串s1和s2是否相等,应使用()
A.if(s1=s2)
B.if(s1==s2)
C.if(strcmp(s1,s2)= = 0)
D.if(strcpy(s1,s2))
正确答案:if(strcmp(s1,s2)= = 0)
5、以下4个字符串函数中,与其他3个所在的头文件不同是()
A.putchar
B.scanf
C.printf
D.strcmp
正确答案:strcmp
6、若用数组名作为函数调用的实参,传递给形参的是()
A.数组的首地址
B.数组中第一个元素的值
C.数组元素的个数
D.数组中的全部元素的值
正确答案:数组的首地址
7、以下正确的说法是()
A.实参和与其对应的形参共占用一个存储单元
B.形参是虚拟的,不占用存储单元
C.实参和与其对应的形参各占用独立的存储单元
D.有当实参和与其对应的形参同名时才共占用相同的存储单元
正确答案:实参和与其对应的形参各占用独立的存储单元
8、关于函数声明,以下不正确的说法是()
A.函数在调用之前,一定要声明函数原型,保证编译系统进行全面的调用检查
B.如果函数定义出现在函数调用之前,可以不必加函数原型声明
C.如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必再做函数原型声明
D.标准库不需要函数原型声明
正确答案:函数在调用之前,一定要声明函数原型,保证编译系统进行全面的调用检查
9、以下叙述中正确的是()
A.源程序中所有的行都参加编译。
B.其余选项都不正确。
C.宏定义可以嵌套定义,即在宏定义中的字符串可以引用另一个宏定义的标识符。
D.宏定义常量与const定义常量是一样的。
正确答案:宏定义可以嵌套定义,即在宏定义中的字符串可以引用另一个宏定义的标识符。
10、凡在函数中未指定存储类别的变量,其隐含的存储类别是()
A.自动
B.静态
C.外部
D.寄存器
正确答案:自动
11、在源程序的一个文件中定义的全局变量的作用域是()
A.从定义该变量的位置开始至该文件的结束
B.一个函数的范围
C.在本文件的全部范围
D.该程序的全部范围
正确答案:从定义该变量的位置开始至该文件的结束
12、下列程序的输出结果是()
#include<;stdio.h>;int abc(int u,int v)
{; int w;while(v) {; w=u%v; u=v; v=w; }
return u;}
main()
{; int a=24,b=16,c;c=abc(a,b);printf(";%d\n";,c);}
A.8
B.4
C.6
D.5
正确答案:8
13、函数调用可以在()
A.以上都是
B.函数参数中
C.函数语句中
D.函数表达式中
正确答案:函数参数中
14、以下不正确的叙述是()
A.宏名无类型
B.宏替换只是字符替换
C.宏替换不占用运行时间
D.宏名必须用大写字母表示
正确答案:宏名必须用大写字母表示
15、C语言的编译系统对宏命令的处理()
A.在程序运行时进行的
B.在对源程序中其它语句正式编译之前进行的
C.和C程序中的其它语句同时进行编译的
D.在程序连接时进行
正确答案:在对源程序中其它语句正式编译之前进行的
16、全局类型的变量作用范围大,因此编程中应尽量使用全局变量,少使用局部变量。()
A.正确
B.错误
正确答案:错误
17、形参只有在被调用时才分配存储空间。()
A.正确
B.错误
正确答案:正确
18、形参可以是常量、变量或表达式。()
A.正确
B.错误
正确答案:错误
19、宏替换时先求出实参表达式的值,然后代入形参运算求值。()
A.正确
B.错误
正确答案:错误
20、调用函数只能得到一个返回值,而用宏可以得到几个结果。()
A.正确
B.错误
正确答案:错误
21、在宏定义#define PI 3.l4l59中,如果将1误输成小写的L,则编译时不出错,运行时出错。()
A.正确
B.错误
正确答案:正确
第七章单元测试
1、指针变量是把内存中另一个数据的()作为其值的变量。
A.标识符
B.值
C.地址
D.变量名
正确答案:地址
2、有以下程序段,输出结果为()。#include<;stdio.h>;main(){int a[10]={11,32,43,25,16,71,24,23,80,44};int *p=a;int *s,s=p+2;printf(";%d,%d ";,*p,*s);}。
A.11,43
B.11,32
C.0,2
D.11,13
正确答案:11,43
3、有以下程序段,输出结果为()。#include<;stdio.h>;main(){int a[10]={5,10,15,20,25,30,35,40,45,50};int *p=a;int *s, m;s=p++;m=*p++;printf(“%d,%d,%d ”, *p,*s, m);}。
A.10,15,11
B.5,10,11
C.15,5,10
D.5,10,15
正确答案:15,5,10
4、有以下程序段,输出结果为()。#include<;stdio.h>;main(){int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};int (*p)[4]=a;printf(";%d\n";,*p);}
A.语法错误
B.随机值
C.12
D.1
正确答案:随机值
5、有以下程序段,输出结果为()。#include<;stdio.h>;main(){int a=10,*p,**q,***s;p=&;a;q=&;p;s=&;a;printf(";%d,%d,%d";,*p,**q,***s);}
A.语法错误
B.10,10,10
C.10,10,随机值
D.10,随机值,随机值
正确答案:语法错误
6、在以下程序段的空白处填入(),能够正确输出teacher。#include<;stdio.h>;main(){char *p[3]={";student";,";teacher";,";classroom";};printf(";%s";,);}
A.*(p+1)
B.*p+7
C.*p+1
D.*p[1] ;
正确答案:*(p+1)
7、在以下程序段的空白处填入(),能够使程序正确运行。#include<;stdio.h>;int sum(int x,int y){return x+y;}main(){int a=3,b=5,c;p=sum;c=(*p)(a,b);printf(";%d";,c);}
A.int (*p)(int ,int)
B.int (*p)()
C.int *p(int,int)
D.其余选项都不对
正确答案:int (*p)(int ,int)
8、有以下程序段,输出结果为()。#include<;stdio.h>;void swap(int *p1){int b=20;p1=&;b;}main(){int a=10,*pa;pa=&;a;swap(pa);printf(";%d,%d";,a,*pa);}
A.10,20
B.10,10
C.20,10
D.20,20
正确答案:10,10
9、有以下程序段,在空白处填入(),可以使程序正确运行。#include<;stdio.h>;int ;(int x,int y){if(x>;y)return &;x;else return &;y;}main(){int a=3,b=5,*p;p=f(a,b);printf(";%d";,*p);}
A.(*f)
B.f
C.*f
D.其余选项都不对
正确答案:*f
第八章单元测试
1、有如下结构体定义,能够正确引用结构体的是()。struct student{long num;char name[10];char sex;int age;float score;}stu。
A.stu.num=”40012120”
B.stu=”lili”
C.stu.age=20
D.stu->;sex=’f’
正确答案:stu.age=20
2、有以下程序段,输出结果为()。#include <;stdio.h>;struct ;s{ ;int ;a;char ;b;double;f;};main() ;{ printf(";%d";,sizeof(struct ;s));}
A.24
B.13
C.16
D.12
正确答案:16
3、有以下程序段,输出结果为()。#include<;stdio.h>;struct person{char name[20];int count;}leader[3]={";Li";,0,";Zhang";,0,";Sun";,0};main(){printf(";%s";,leader[1].name);}
A.Zhang
B.sun
C.Li
D.0
正确答案:Zhang
4、有以下程序段,输出结果为()。#include<;stdio.h>;struct student{int num;char name[20];float score;};main(){struct student stu[5];printf(";%d";,sizeof(stu));}
A.140
B.随机值
C.160
D.5
正确答案:140
5、以下程序段,在空白处填写()能使程序正确运行并输出结果。#include<;stdio.h>;struct student{long num;char name[10];char sex;float score;};main(){struct student stu={10101,";lili";,';m';,89.5},*pt;printf(";%.2f";,pt->;score);}
A.pt=&;stu
B.*pt=&;stu
C.pt=stu
D.*pt=stu
正确答案:pt=&;stu
6、有结构体声明如下,成员next是一个指针,指向对象的类型是()。struct node{char ch;struct node *next;}。
A.node
B.int
C.char
D.float
正确答案:node
7、有以下共用体声明,赋值错误的是()。union data{int i;char ch;float f;}
A.union data a={97}
B.union data a={97,';b';,1.5}
C.union data a
A.i=97
D.union data a
A.i=’a’
正确答案:union data a={97,';b';,1.5}
8、以下程序段的运行结果为()。#include<;stdio.h>;union data{int i;char ch;float f;};main(){union data a
A.i=98
A.ch=';B';printf(";%d";,a.i);}
A.随机值
B.66
C.0
D.98
正确答案:66
9、有枚举定义enum sex{m,f} stu;能够正确赋值的是()。
A.stu=man ;
B.stu=nan
C.stu=f
D.stu={m,f} ;
正确答案:stu=f
10、有新类型名声明typedef int Num[10];以下各项中与int a[10]含义相同的是()。
A.Num a[10]
B.typedef a[10]
C.typedef a
D.Num a
正确答案:Num a
第九章单元测试
1、下列关于C语言数据文件的叙述中正确的是()
A.文件由ASCII码字符序列组成,C语言只能读写文本文件
B.文件由二进制数据序列组成,C语言只能读写二进制文件
C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
正确答案:文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
2、fwrite函数的一般调用形式是()
A.fwrite(buffer,count,size,fp)
B.fwrite(fp,count,size,buffer)
C.rite(buffer,size,count,fp)
D.fwrite(fp,size,count,buffer)
正确答案:rite(buffer,size,count,fp)
3、C语言文件操作函数fread(buffer,size,n,fp)的功能是()
A.从文件fp中读入n个字符数据放入buffer中
B.从文件fp中读n个字节存入buffer
C.从文件fp中读n个大小为size字节的数据项存入buffer中
D.从文件fp中读入n个字节放入大小为size字节的缓冲区buffer中
正确答案:从文件fp中读n个大小为size字节的数据项存入buffer中
4、若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是()
A.EOF
B.非零值
C.0
D.NULL
正确答案:非零值
5、若要用fopen函数建一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应该为()
A.";ab"
B.";rb+"
C.";ab+"
D.";wb+"
正确答案:";wb+"
6、C语言把文件看作是一个()的序列。
A.字
B.记录
C.单词
D.字符
正确答案:字符
7、语句FILE *fp;定义了一个指向()
A.FILE文件的变量
B.某一个文件的结构体变量
C.某一个文件的变量
D.FILE类型的指针变量
正确答案:FILE类型的指针变量
8、语句 fp=fopen(";file1";,";r";); 表示()
A.打开文件file1,可向该文件添加数据
B.打开文件file1,可从该文件输入数据
C.打开文件file1,可向该文件输出数据
D.打开文件file1,可向该文件输入输出数据
正确答案:打开文件file1,可从该文件输入数据
9、如果希望向文本文件末尾添加数据,则应以()方式打开文件。
A.";w"
B.";a"
C.";r"
D.";ab"
正确答案:";a"
10、从操作系统的角度来看,键盘和打印机是输出文件。()
A.正确
B.错误
正确答案:错误
11、对设备文件的输入输出操作就是读写设备文件的过程。()
A.正确
B.错误
正确答案:正确
12、C语言中文件可以顺序存取,也可随机存取。()
A.正确
B.错误
正确答案:正确
13、gets函数的功能是从文件指针所指向文件中读取一个字符。()
A.正确
B.错误
正确答案:错误
14、对已打开的文件进行输入输出操作是通过指向该文件结构的指针变量进行的。()
A.正确
B.错误
正确答案:正确
15、只有通过文件,才能进行大量的原始数据的输入和保存,这些数据甚至可能远远超过内存容量。()
A.正确
B.错误
正确答案:正确
第十章单元测试
1、语句:printf(";%d\n";,12&;012);的输出结果是()
A.12
B.6
C.8
D.012
正确答案:8
2、设 int; b=2;表达式(b>;>;2)/(b>;>;1)的值是()
A.4
B.8
C.0
D.2
正确答案:0
3、有如下程序段
int; a=14,b=15,x;char; c=‛A’;x=(a&;&;b)&;&;(c<;‛B’);执行该程序段后,x的值为()
A.false
B.0
C.ture
D.1
正确答案:1
4、整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是()
A.x ^ y
B.x &; y
C.x || y
D.x | y
正确答案:x ^ y
5、设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是()
A.01010101
B.10101000
C.10101001
D.11111101
正确答案:01010101
6、请读程序片段:char x=56;x=x&;056; printf(“%d,%o\n”,x,x); 以上程序片段的输出结果是()
A.62,76
B.40,50
C.0,0
D.56,70
正确答案:40,50
7、若有以下程序段:int; x=1,y=2; x=x^y; y=y^x; x=x^y;则执行以上语句后x和y的值分别是
A.x=2,y=2
B.x=1,y=1
C.x=2,y=1
D.x=1,y=2
正确答案:x=2,y=1
8、设有以下语句:char x=3,y=6,z; z=x^y<;<;2; 则z的二进制值是()
A.00010100
B.00011100
C.00011011
D.00011000
正确答案:00011011
9、表达式a<;b||~c&;d的运算顺序是()
A.~,&;,||,<
B.~,&;,<;,||
C.~,||,&;,<
D.~,<;,&;,||
正确答案:~,<;,&;,||
10、将一个数左移一位,相当于该数乘以2;右移一位相当于除以2。()
A.正确
B.错误
正确答案:错误
11、~运算符的优先级低于算术运算符,高于关系运算符、逻辑运算符。()
A.正确
B.错误
正确答案:错误
12、位运算的运算量可以是整型、字符型或实型数据。()
A.正确
B.错误
正确答案:错误
13、要将一个存储单元i清零,可以实施如下运算:i&;0。()
A.正确
B.错误
正确答案:正确