第一章 单元测试
1、单选题:
1.以下叙述正确的是( )
选项:
A:C语言编写时字母的大小写可以相互替代
B:C程序是由一个或多个函数构成
C:C程序的每行只能写一条语句
D:C程序书写时,main函数必须写在程序的最前面
答案: 【C程序是由一个或多个函数构成】
2、单选题:
设:int a; float b; char c; double d; 则表达式1.3*a+2*b*c+d*(int)2.6 值的类型为( )。
选项:
A:float
B:int
C:char
D:double
答案: 【double】
3、单选题:
C语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )
选项:
A:必须为字母
B:可以是字母、数字和下划线中任一种字符
C:必须为下划线
D:必须为字母或下划线
答案: 【必须为字母或下划线】
4、单选题:
以下不正确的C语言用户标识符是( )。
选项:
A:ABC
B:void
C:abc
D:a_bc
答案: 【void】
5、单选题:
以下字符中,不正确的C语言转义字符是( )
选项:
A:‘’
B:‘Xaa’
C:‘t’
D:‘18’
答案: 【‘18’】
6、单选题:
下列运算符中优先级最高的是( )
选项:
A:+
B:!=
C:<
D:&&
答案: 【+】
7、单选题:
以下选项中属于C语言中合法关键字的是( )
选项:
A:Float
B:abc
C:CASE
D:int
答案: 【int】
8、单选题:
若x、i、j和k都是int型变量,x=(i=4,j=16,k=32)
计算上面表达式后,x的值为( )
选项:
A:16
B:52
C:32
D:4
答案: 【32】
9、单选题:
在C语言中,要求数据必须是整型的运算符是( )
选项:
A:/
B:!=
C:+ +
D:%
答案: 【%】
10、单选题:
若整型变量x的值为8,则下列表达式中值为1的表达式是( )
选项:
A:x%=x%=3
B:x+=x-=x
C:x%=x-1
D:x/=x+x
答案: 【x%=x-1】
第二章 单元测试
1、单选题:
算法是对特定问题( )的一种描述( )。
选项:
A:求解步骤
B:数据组织形式
C:数据类型
D:本质结构
答案: 【求解步骤】
2、单选题:
流程图中用来表示判断的图形符号为( )。
选项:
A:菱形
B:平行四边形
C:圆形
D:矩形
答案: 【菱形】
3、判断题:
著名计算机学家沃斯提出:程序=算法+数据结构。( )
选项:
A:对
B:错
答案: 【对】
4、判断题:
使用流程图和N-S描述算法的优点之一是方便算法的修改。( )
选项:
A:对
B:错
答案: 【错】
5、判断题:
结构化的三种基本结构只能用来表示简单的算法,不能表示复杂的算法。( )
选项:
A:错
B:对
答案: 【错】
6、判断题:
在编写程序之前,一定要确定算法。( )
选项:
A:对
B:错
答案: 【对】
7、判断题:
编制好的程序不需要经过调试,可以直接提过给用户使用。( )
选项:
A:对
B:错
答案: 【错】
8、单选题:
下列使用N-S图表示的当型循环结构的是()。
选项:
A:
B:
C:
D:
答案: 【
】
第三章 单元测试
1、单选题:
执行以下程序段后,int a=1,b=2,c=3,t;t=a;a=b;b=c;c=t;
变量a、b、c的值分别为( )。
选项:
A:2、3、1
B:1、3、2
C:1、2、3
D:3、2、1
答案: 【
2、单选题:
若x,y,z均为int型变量, x=(y=(z=10)+5)-5; printf(“x=%d,y=%d,z=%dn”,x,y,z); y=(z=x=0,x+10);printf(“x=%d,y=%d,z=%dn”,x,y,z);
则执行以下语句后的输出为( ) 。
选项:
A:x=10,y=10,z=10 x=0,y=10,z=0
B:x=10,y=10,z=10 x=0,y=10,z=10
C:x=10,y=15,z=10 x=10,y=10,z=0
D:x=10,y=15,z=10 x=0,y=10,z=0
答案: 【
3、单选题:
已知有变量定义:int a ; char c ; 用scanf(“%d%c”,&a,&c) ; 语句给a和c输入数据,使30存入a,字符‘b’存入c,则正确的输入是( )。
选项:
A:30‘b’<回车>
B:30<回车>b<回车>
C:30b<回车>
D:30 b <回车>
答案: 【
4、单选题:
已知有变量定义:double x ;long a ; 要分别给a和x输入数据,并且输出a和x的值,正确的输入输出语句是( )。
选项:
A:scanf(“%d%f”,&a,&x); printf(“%d,%f”,a,x)
B:scanf(“%ld%f”,&a,&x); printf(“%ld,%f”,a,x)
C:scanf(“%ld%lf”,&a,&x); printf(“%ld,%f”,a,x)
D:scanf(“%ld%lf”,&a,&x); printf(“%ld,%lf”,a,x)
答案: 【
5、单选题:
若有定义double x=1,y ; y=x+3/2 ; printf(“%f”,y) ;
则以下的语句执行的结果是 ( )。
选项:
A:2.500000
B:2.000000
C:2
D:2.5
答案: 【
6、单选题:
若a为整型变量, a=-2L ; printf(“%dn”,a) ;
则以下语句( )。
选项:
A:输出值为-2
B:输出为不确定的值
C:赋值不合法
D:输出值为2
答案: 【
第四章 单元测试
1、单选题:
当a=3,b=6 时,表达式a= =b 的值为( )。
选项:
A:6
B:1
C:0
D:3
答案: 【】
2、单选题:
设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为( )。
选项:
A:2
B:1
C:4
D:3
答案: 【】
3、单选题:
能表示x为偶数的表达式是( )
选项:
A:x%2==0
B:x%2!=0
C:x%2
D:x%2==1
答案: 【
4、单选题:
若x=12则表达式x>12?x+10:x-10的值是( )
选项:
A:12
B:2
C:22
D:0
答案: 【
5、单选题:
已知int x=10,y=20,z=30; if(x>y) z=x; x=y; y=z;
以上语句执行后x,y,z的值是( )。
选项:
A:x=10,y=20,z=30
B:x=20,y=30,z=30
C:x=20,y=30,z=10
D:x=20,y=30,z=20
答案:
6、单选题:
以下程序实现:输入三个整数,按从大到小的顺序进行输出。main( ){ int x,y,z,c;scanf(“%d %d %d”,&x,&y,&z);if( ){c=y;y=z;z=c;}if( ){c=x;x=z;z=c;}if( ){c=x;x=y;y=c;}printf(“%d,%d,%d”,x,y,z);
在if后面的括号中填入的正确内容分别是( )
选项:
A:y>z x>z x<y
B:y<z x<z x<y
C:y<z x<z x>y
D:y>z x>z x>y
答案: 【】
7、单选题:
main( ){ int a=2,b=3,c;c=a;if(a>b)c=1;else if(a==b)c=0;else c=-1;printf(“%dn”,c);}
以上程序的运行结果是 ( )
选项:
A:2
B:-1
C:0
D:1
答案: 【
8、单选题:
#include <stdio.h>void main( ){ int i,x=1,y=0,a=0,b=0; switch(x) { case 1:b++; case 2:a++;b++;break; case 3:a++;b++;}printf(“%d,%dn”,a,b);}
上面程序的输出结果是( )
选项:
A:2,2
B:2,1
C:1,2
D:4,2
答案: 【】
9、单选题:
列定行号 int x=0,y=10; 2 switch(x) 3 {case 3: 4 case –1:y=y-2;break; 5 case y+1:x+=5; 6 default:printf(“%d,%d”,x,y);}
以上程序段中,有错误的行是( )。
选项:
A:3
B:无错误
C:4
D:5
答案: 【
第五章 单元测试
1、判断题:
语句while(!y)中的!y等价于y==0。( )
选项:
A:对
B:错
答案: 【】
2、判断题:
for语句中的表达式可以部分或全部省略,但是两个分号不能省略。( )
选项:
A:对
B:错
答案: 【】
3、判断题:
循环嵌套中,用break直接结束内外两层循环。( )
选项:
A:错
B:对
答案: 【】
4、单选题:
#include<stdio.h>int main(){ int a=3; do { printf(“%d”,a);a–; }while(a);return 0;}
以上程序段的输出结果是( )。
选项:
A:3
B:不输出任何内容
C:32
D:321
答案: 【】
5、单选题:
int n=10; while(n>7) { printf(“%d,”,n); n–; }
以上程序段的输出结果是( )。
选项:
A:10,9,8,7,
B:10,9,8,
C:9,8,7,
D:9,8,7,6,
答案: 【
6、单选题:
若定义int i;for(i=2;i==0;) printf(“%d”,i–);
则以下循环语句的循环执行次数是( )。
选项:
A:0
B:2
C:1
D:无限次
答案: 【】
7、单选题:
若定义int i; for(i=1;i<10;i++) { if(i%3) i++; ++i; printf(“%d”,i); }
则以下for语句的执行结果是( )。
选项:
A:35811
B:369
C:258
D:2468
答案: 【
8、单选题:
int main( ){ int i,j,k=0,m=0; for(i=0;i<2;i++) { for(j=0;j<3;j++)k++; }m=i+j;printf(“%d,%dn”,k,m);}
以上程序运行后的输出结果是( )
选项:
A:6,7
B:6,5
C:5,7
D:5,5
答案: 【
第六章 单元测试
1、单选题:
数组初始化为int a[10]={1,2,3};则该数组包含的元素个数是( )。
选项:
A:9
B:10
C:4
D:3
答案: 【
2、单选题:
下列程序段是给数组中所有元素赋值, int a[10];for(i=0;i<=9;i++) scanf(“%d”, );
应在下划线上填入的是( )。
选项:
A:&a[i]
B:a
C:&a[10]
D:a[i]
答案: 【
3、单选题:
以下关于一维数组定义或初始化的描述,错误的是( )。
选项:
A:int d[5]; 数组d中的值是不确定的。
B:int d[5]={1}; 数组d中的值全为1
C:int d[5]={1}; 数组d中的值第1个为1,其余均为0
D:int d[5]={0}; 数组d中的值全为0
答案: 【
4、单选题:
定义了int型二维数组a[4][4]后,则数组元素a[3][3]前的数组元素个数为( )。
选项:
A:8
B:9
C:16
D:15
答案: 【】
5、单选题:
double a[ ][5] = {1, 2, 3, 4, 5, 6};printf(“%dn”, sizeof(a));
上面的程序段将输出( )。
选项:
A:40
B:120
C:80
D:48
答案: 【
6、单选题:
设数组定义为:char array[ ]=”China”;则数组 array所占的空间为( )。
选项:
A:6个字节
B:7个字节
C:5个字节
D:4个字节
答案: 【
7、单选题:
char s[ ] = “abcd”;printf(“%dn”, strlen(s));
上面程序段的输出结果是( )。
选项:
A:4
B:0
C:1
D:5
答案: 【】
第七章 单元测试
1、单选题:
当一个函数无返回值时,函数的返回类型应为( )。
选项:
A:char
B:任意
C:int
D:void
答案: 【】
2、单选题:
被调函数返回给主调函数的值称为( )。
选项:
A:参数
B:返回值
C:实参
D:形参
答案:
3、单选题:
函数定义如下:void f(int b) { b=9;}实参数组及函数调用如下: int a[5]={1};f(a[1]);printf(”%d”,a[1]);则以下输出语句的结果为( )
选项:
A:0
B:其他都不对
C:9
D:1
答案: 【】
4、单选题:
关于数组名作为函数的说法错误的是( )。。
选项:
A:参数传递时,实参数组的首地址传递给形参数组实参
B:在函数调用期间,形参数组的改变就是实参数组的改变
C:在函数调用期间,形参数组和实参数组对应的是不同的数组
D:通过数组名作为函数参数,可以达到返回多个值的目的参数
答案:
5、单选题:
下列说法正确的是( )。
选项:
A:全局变量不能与局部变量同名
B:实参可以是任意合法表达式
C:用户自定义函数的类型若未指出,则系统默认为void
D:被调用函数必须先调用,后声明
答案: 【
6、单选题:
关于递归函数以下叙述错误的是( )。
选项:
A:递归函数是自己调用自己。
B:递归函数的运行速度一般比较慢。
C:递归函数的运行速度很快。
D:递归函数占用较多的存储空间。
答案: 【
7、单选题:
文件中定义的全局变量的作用域为( )。
选项:
A:从定义该变量的位置开始到本文件结束
B:本程序全部范围
C:本文件全部范围
D:函数内全部范围
答案: 】
8、单选题:
对于以下递归函数f,调用f(4), int f(int n){ if (n) return f(n – 1) + n; else return n;}其返回值为( )。
选项:
A:0
B:10
C:4
D:没有正确的
答案: 【】
第八章 单元测试
1、单选题:
变量的指针是指变量的( )。
选项:
A:内存单元
B:名
C:值
D:地址
答案: 【
2、单选题:
下列选项中正确的语句组是( )。
选项:
A:char *s; s=”Beijing”;
B:char s[8]; s=”Beijing”;
C:char *s; s={“Beijing”};
D:char s[8]; s={“Beijing”};
答案: 【】
3、单选题:
已定义以下函数fun(int *p) { return *p; } 该函数的返回值是( )。
选项:
A:形参p所指存储单元中的值
B:不确定的值
C:形参p中存放的值
D:形参p的地址值
答案: 【
4、单选题:
若有语句“int a[3][4]={{1,3,5,7},{2,4,6,8}};”,则 *(*a+1) 的值为( )。
选项:
A:4
B:1
C:3
D:2
答案: 【】
5、单选题:
若有语句“int a[10]; int *p=a; ”,则以下错误的表达式是( )。
选项:
A:*p=a[0];
B:a[2]=p[4];
C:p=a+5;
D:a=p+a;
答案: 【
第九章 单元测试
1、单选题:
下面对typedef的叙述中不正确的是( )。
选项:
A:用typedef只是将已存在的类型用一个新的标识符来代表
B:用typedef可以增加新类型
C:用typedef可以定义多种类型名,但不能用来定义变量
D:使用typedef有利于程序的同样和移植
答案: 【
2、单选题:
若要说明一个类型名STP,使定义语句STP s等价于char *s,以下选项中正确的是( )。
选项:
A:typedef STP char *s;
B:typedef stp *char;
C:typedef char *STP;
D:typedef *char STP;
答案: 【
3、单选题:
以下结构体变量的定义方式不正确的是( )。
选项:
A:声明无名结构体类型的同时直接定义结构体类型变量
B:先声明结构体类型,再定义该类型的结构体变量
C:先定义该类型结构体变量,再声明结构体类型
D:声明结构体类型的同时定义该类型结构体变量
答案: 【
4、单选题:
设有以下说明语句,struct abc { int m; int n; } stype;
则下面的叙述不正确的是( )。
选项:
A:abc是用户定义的结构体类型名
B:stype是用户定义的结构体变量名
C:m和n都是结构体成员
D:struct是结构体类型的关键字
答案: 【
5、单选题:
设struct { int a; char b; } q,*p=q; 则错误的表达式是( )。
选项:
A:p->a
B:(*p).b
C:q.a
D:*p.b
答案:
6、单选题:
若有以下程序段:union data{ int i; char c; float f; } a; int n;则以下语句正确的是( )。
选项:
A:printf(“%d”,a);
B:a=5;
C:a={2,’a’,1.2};
D:n=a;
答案:
7、单选题:
union myun {struct { int x,y,z; } u; int k; } a;void main() { a.u.x=4; a.u.y=5; a.u.z=6; a.k=0; printf(“%dn”,a.u.x); }以上程序的输出结果是( )。
选项:
A:5
B:0
C:6
D:4
答案: 【
8、单选题:
#include<stdio.h>void main(){union {struct { int x,y; } in; int a,b; } e;e.a=1;e.b=2;e.in.x=e.a*e.b;e.in.y=e.a+e.b;printf(“%d %d”,e.in.x,e.in.y);}以上程序的输出结果是( )。
选项:
A:2 4
B:4 8
C:4 4
D:2 2
答案: 【
第十章 单元测试
1、单选题:
下面程序执行后,#include<stdio.h>void fun(char *filename,char *str){ FILE *fp; int i; fp=fopen(filename,”w”); for(i=0;i<strlen(str);i++)fputc(str[i],fp); fclose(fp);}void main(){ fun(“test.txt”,”new world”); fun(“test.txt”,”hello”);}文件test.txt中的内容是( )。
选项:
A:new world
B:hello
C:hello,world
D:new worldhello
答案: 【
2、单选题:
在C程序中,可以将整型数以二进制形式存放到文件中的函数是( )。
选项:
A:fread()
B:fwrite()
C:fprintf()
D:fputc()
答案: 【
3、单选题:
当顺利执行了文件关闭操作时,fclose函数的返回值是( )。
选项:
A:0
B:-1
C:TRUE
D:1
答案: 【】
4、单选题:
当已存在一个test.txt文件时,执行函数fopen(“test.txt”,”r+”)的功能是( )。
选项:
A:打开test.txt文件,只能读取原有内容,但不能写数据
B:打开test.txt文件,覆盖原有内容
C:打开test.txt文件,既可以读取内容,也可以写入内容
D:打开test.txt文件,只能写入数据,但不能读取数据
答案: 【
5、单选题:
标准库函数fgets(s,n,f)的功能是( )。
选项:
A:从文件f中读取n个字符串存入指针s所指的内存中
B:从文件f中读取长度为n的字符串存入指针s所指的内存中
C:从文件f中读取长度不超过n-1的字符串存入指针s所指的内存中
D:从文件f中读取长度为n-1的字符串存入指针s所指的内存中
答案: 【
6、判断题:
C语言中系统的标准输入文件是指鼠标。( )
选项:
A:错
B:对
答案: 【】
7、判断题:
文件的操作必须先打开文件。( )
选项:
A:对
B:错
答案: 【】
8、判断题:
文件的读函数是从输入文件中读取信息,并放在内存中。( )
选项:
A:对
B:错
答案: 【】
9、判断题:
已只写方式打开文本文件a.txt,可以使用FILE *fp; fp=fopen(“a.txt”,”w”);( )
选项:
A:错
B:对
答案: 【】
10、判断题:
printf函数和scanf函数的读写对象是文件,fprintf函数和fscanf函数的读写对象是终端。( )
选项:
A:错
B:对
答案: 【】