第一章 单元测试
1、问题:一个C程序可能出现的错误有。
选项:
A:语法错误
B:逻辑错误
C:以上都包括
D:运行错误
答案: 【解锁后可见】
2、问题:C程序中一般可以包含几个函数。
选项:
A:1个
B:多个
C:0个
D:至少一个
答案: 【解锁后可见】
3、问题:C语言属于程序设计语言的哪个类别?
选项:
A:机器语言
B:高级语言
C:面向对象语言
D:汇编语言
答案: 【解锁后可见】
4、问题:没有语法错误了,程序就是正确的。
选项:
A:对
B:错
答案: 【解锁后可见】
5、问题:一个C程序中可以出现两个main函数。
选项:
A:错
B:对
答案: 【解锁后可见】
第二章 单元测试
1、问题:类型修饰符unsigned不能修饰( )
选项:
A:
long int
B:
float
C:
char
D:
int
答案: 【解锁后可见】
2、问题:16位的二进制数可以表示的整数的范围是( )
选项:
A:[-32767,32767]
B:[-32768,32768]
C:
[-32768,32767]
D:[-32767,32768]
答案: 【解锁后可见】
3、问题:C语言中的实型数据包括( )
选项:
A:float和double
B:int和double
C:int和float
D:float和char
答案: 【解锁后可见】
4、问题:以下不合法的字符常量是( )
选项:
A:’2′
B:’ ‘
C:’A’
D:’ab’
答案: 【解锁后可见】
5、问题:在以下各组标识符中,均是合法的C语言标识符是( )
选项:
A:A_4d,_student,xyz_abc,if
B:auto,12-a,a_b,ab5.x
C:abc,A_4d,_student,xyz_abc
D:abc,a_b,union,scan
答案: 【解锁后可见】
6、问题:在C语言中,要求参加运算的数必须是整数的运算符是( )
选项:
A:/
B:*
C:++
D:%
答案: 【解锁后可见】
7、问题:若有定义:char a;int b;float c;double d;则表达式a*b+d-c值的类型为( )
选项:
A:char
B:float
C:int
D:double
答案: 【解锁后可见】
8、问题:设有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )
选项:
A:3.5
B:0.0
C:2.75
D:2.5
答案: 【解锁后可见】
9、问题:若有定义:double x=1,y;执行语句y=x+3/2;,则y的值是( )
选项:
A:2.0
B:2
C:2.5
D:1
答案: 【解锁后可见】
10、问题:设int a=1,b=2;以下选项中不正确的语句是( )
选项:
A:a*3=3
B:a/=1
C:a=a+b
D:a+=3
答案: 【解锁后可见】
第三章 单元测试
1、问题:算法描述可以有多种表达方法,下面( )方法不可以描述算法。
选项:
A:伪代码
B:自然语言
C:机器语言
D:N-S图
答案: 【解锁后可见】
2、问题:执行以下程序后k的值是( )int i,j=10,k=0;for(i=0;i<=j;i++) {k=i+j;j–;}
选项:
A:10
B:11
C:8
D:9
答案: 【解锁后可见】
3、问题:设int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为( )
选项:
A:2
B:0
C:3
D:1
答案: 【解锁后可见】
4、问题:表示y在(-∞,3]和[23,+∞)范围内为真的表达式为( )
选项:
A:(y<=3)||(y>=23)
B:(y<=3)&&(y>=23)
C:(y<3)&&(y>23)
D:(y<3)||(y>23)
答案: 【解锁后可见】
5、问题:已知int x=10,y=20,z=30;则执行以下语句后x、y、z的值是( )if(x>y) z=x; x=y; y=z;
选项:
A:x=20,y=30,z=30
B:x=20,y=30,z=20
C:x=20,y=30,z=10
D:x=10,y=20,z=30
答案: 【解锁后可见】
6、问题:设有声明语句:int a=1,b=0;则执行以下语句后输出结果为( )switch(a){ case 1: switch(b) { case 0:printf(“**0**”);break; case 1:printf(“**1**”);break; } case 2:printf(“**2**”);break;}
选项:
A:有语法错误
B:**0****2**
C:**0**
D:**0****1****2**
答案: 【解锁后可见】
7、问题:设有以下程序,若要使程序的输出值为2,则应该从键盘给n输入的值是( )void main(){ int s=0,a=1,n; scanf(“%d”,&n); do {s=s+1; a=a-2; }while(a!=n); printf(“%d “,s);}
选项:
A:-5
B:-3
C:0
D:-1
答案: 【解锁后可见】
8、问题:for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体执行的次数是( )
选项:
A:9
B:8
C:3
D:2
答案: 【解锁后可见】
9、问题:以下程序段的输出结果是( )int x=5;if(x–<5) printf(“%d”,x);else printf(“%d”,x++);
选项:
A:4
B:6
C:5
D:3
答案: 【解锁后可见】
10、问题:对下面程序段,描述正确的是( )for(t=1;t<=100;t++){ scanf(“%d”,&x); if(x<0) continue; printf(“%d “,x);}
选项:
A:当x>=0时,什么也不输出
B:最多允许输出100个非负整数
C:当x<0时,整个循环结束
D:printf函数永远也不执行
答案: 【解锁后可见】
第四章 单元测试
1、问题:包含标准库函数scanf声明的头文件是( )
选项:
A:stdlib.h
B:math.h
C:time.h
D:stdio.h
答案: 【解锁后可见】
2、问题:以下关于函数的叙述中正确的是( )
选项:
A:C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
B:可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C:main可作为用户标识符,用以定义任意一个函数
D:C语言程序将从源程序中第一个函数开始执行
答案: 【解锁后可见】
3、问题:以下关于函数的叙述中不正确的是( )
选项:
A:在C语言程序中,被调用的函数必须在main函数中定义
B:在C语言程序中,函数的调用可以嵌套
C:C程序是函数的集合,包括标准库函数和用户自定义函数
D:在C语言程序中,函数的定义不能嵌套
答案: 【解锁后可见】
4、问题:以下不正确的说法是( )
选项:
A:在主函数内定义的变量可在其余函数中通用
B:在函数内定义的变量只在本函数范围内可以使用
C:在不同函数中可以使用相同名字的变量
D:形式参数是局部变量
答案: 【解锁后可见】
5、问题:以下正确的函数定义是( )
选项:
A:double fun(int x,int y) { z=x+y; return z; }
B:fun(int x,y) { int z; return z; }
C:double fun(int x,int y) { double z; z=x+y; return z; }
D:fun(x,y){ int x,y; double z; z=x+y; return z; }
答案: 【解锁后可见】
6、问题:C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( )
选项:
A:单向值传递
B:由用户指定传递方式
C:由实参传给形参,再由形参传回实参
D:地址传递
答案: 【解锁后可见】
7、问题:下列程序的运行结果是( )#include <stdio.h> void fun(); int main() { int a=10; fun(); printf(“%5d”,a); return 0; } void fun() { int a=20; printf(“%5d”,a);}
选项:
A:20 10
B:10 20
C:10 10
D:20 20
答案: 【解锁后可见】
8、问题:下列程序的运行结果是( )#include <stdio.h>void fun(); int a=5; int main() { int a=10; fun(); printf(“%5d”,a); return 0; } void fun() { a=a+5; printf(“%5d”,a);}
选项:
A:10 5
B:5 5
C:5 10
D:10 10
答案: 【解锁后可见】
9、问题:以下正确的描述是( )
选项:
A:函数的定义不可以嵌套,但函数的调用可以嵌套
B:函数的定义和函数的调用均不可嵌套
C:函数的定义和函数的调用均可以嵌套
D:函数的定义可以嵌套,但函数的调用不可以嵌套
答案: 【解锁后可见】
10、问题:下列程序的运行结果是( )#include <stdio.h>int fun1(int x); void fun2(); int x=5; int main() { int x=1; x=fun1(x); printf(“%d”,x); return 0; } int fun1(int x) { x++; fun2(); return x; } void fun2() { x++;}
选项:
A:5
B:6
C:7
D:2
答案: 【解锁后可见】
第五章 单元测试
1、问题:C语言中,由固定数目的同类型的变量按一定顺序排列而构成的是( )。
选项:
A:
数组
B:
结构体
C:
链表
D:
队列
答案: 【解锁后可见】
2、问题:当数据已知的情况下,可以在定义数组时,对数组进行初始化,但不可( )。
选项:
A:对部分元素赋初值
B:对全部元素赋初值
C:对数组元素赋同一初值
D:在方括号中写入变量表达式
答案: 【解锁后可见】
3、问题:数组元素下标可从( )开始。
选项:
A:用户指定
B:1
C:0
D:任意自然数
答案: 【解锁后可见】
4、问题:冒泡排序中,若有n个数,第一趟最多需要比较( )次。
选项:
A:n-1
B:2(n-1)
C:n
D:2n
答案: 【解锁后可见】
5、问题:利用冒泡排序得到升序排列,每一趟中从前到后遍历数组,将相邻两个数作比较,如果前面的数小于后面的数,则( )。
选项:
A:将当前数据后移
B:交换两个数的位置
C:不做操作
D:将当前数据前移
答案: 【解锁后可见】
6、问题:若不允许函数修改数组元素,则可以用( )限定符作为数组参数的前缀,这样数组元素就成为函数中的常量。
选项:
A:define
B:include
C:const
D:fix
答案: 【解锁后可见】
7、问题:在定义int m[ ][3]={1,2,3,4,5,6};后,m[1][0]的值是( )。
选项:
A:1
B:5
C:2
D:4
答案: 【解锁后可见】
8、问题:若给出以下定义: char x[ ]=”abcdefg”;char y[ ]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’}; 则正确的叙述为( )。
选项:
A:数组x和数组y等价
B:数组x的长度小于数组y的长度
C:数组x和数组y的长度相同
D:数组x的长度大于数组y的长度
答案: 【解锁后可见】
9、问题:函数调用语句为:int a[10],maxnum;…maxnum=max(a);函数定义首部应为( )。
选项:
A:int max(int b[])
B:double max(int b[])
C:int max(int a)
D:int max(int b)
答案: 【解锁后可见】
10、问题:若有定义:int b[3][4]={0};则下述正确的是( ) 。
选项:
A:数组b中各元素均为0
B:没有元素可得初值0
C:此定义语句不正确
D:数组b中各元素可得初值但值不一定为0
答案: 【解锁后可见】
第六章 单元测试
1、问题:在16位系统中,定义以下结构体类型struct s{ int a; char b; float f;};则语句printf(“%d”,sizeof(struct s))的输出结果为()。
选项:
A:3
B:6
C:7
D:4
答案: 【解锁后可见】
2、问题:以下选项中不能正确把cl定义成结构体变量的是()。
选项:
A:typedef struct
{int red;
int green;
int blue;
} COLOR;
COLOR cl;
B:struct color
{ int red;
int green;
int blue;
}cl;
C:struct color cl
{ int red;
int green;
int blue;
};
D:struct
{int red;
int green;
int blue;
}c1;
答案: 【解锁后可见】
3、问题:当定义一个结构体变量时,系统为它分配的内存空间是()
选项:
A:结构中第一个成员所需的内存容量
B:结构中各成员所需内存容量之和
C:结构体中占内存容量最大者所需的容量
D:结构中一个成员所需的内存容量
答案: 【解锁后可见】
4、问题:根据下面的定义,能打印出字母M的语句是_____。 struct person { char name[9]; int age;};struct person classes[10]={“John”,17, “Paul”,19,”Mary”,18, “Adam”,16};
选项:
A:printf(“%c”,classes[3].name);
B:printf(“%c”,classes[3].name[1]);
C:printf(“%c”,classes[2].name[1]);
D:printf(“%c”,classes[2].name[0]);
答案: 【解锁后可见】
5、问题:不可以作为函数参数的有()。
选项:
A:结构体数组名
B:结构体数组整体
C:结构体变量整体
D:结构体数组元素
答案: 【解锁后可见】
6、问题:结构体变量整体作函数参数时,以下说法正确的是()。
选项:
A:实参结构体变量和形参结构体变量的类型应当一致。
B:结构体变量整体不能做形参
C:以上说法都不对,不能整体作为函数参数
D:结构体变量整体不能做实参
答案: 【解锁后可见】
7、问题:已知字符’0’的ASCII码为十六进制的30H,下面程序的输出是()。void main(){ union { unsigned char c;unsigned int i[4];} z;z.i[0]=0x39;z.i[1]=0x36;printf(“%c”,z.c);}
选项:
A:6
B:0
C:3
D:9
答案: 【解锁后可见】
8、问题:在下面的叙述中,不正确的是()。
选项:
A:可以在定义枚举类型时对枚举常量进行指定表示的值。
B:枚举变量只能取对应枚举类型的枚举常量表中的元素。
C:枚举常量表中的元素有先后次序,可以进行比较。
D:枚举常量的值可以是整数或字符串。
答案: 【解锁后可见】
9、问题:设有以下语句typedef struct S{ int g; char h;} T;则下面叙述中正确的是( )。
选项:
A:S是struct类型的变量
B:可以用T定义结构体变量
C:T是struct S类型的变量
D:可用S定义结构体变量
答案: 【解锁后可见】
10、问题:以下叙述中错误的是()。
选项:
A:可以通过typedef增加新的类型
B:可以用typedef将已存在的类型用一个新的名字来代表
C:用typedef可以为各种类型起别名,但不能为变量起别名
D:用typedef定义新的类型名后,原有类型名仍有效
答案: 【解锁后可见】
第七章 单元测试
1、问题:系统根据( )为变量分配内存单元。
选项:
A:大小
B:数据
C:类型
D:名称
答案: 【解锁后可见】
2、问题:程序编译后,对变量的访问是通过( )来进行的。
选项:
A:函数
B:变量名
C:文件
D:地址
答案: 【解锁后可见】
3、问题:int a[5]={ 10,20,30,40,50 }, *p=a;printf(“%d”,*p+1);结果是( )。
选项:
A:20
B:10
C:21
D:11
答案: 【解锁后可见】
4、问题:若int *p[4],则p的含义是( )。
选项:
A:指针数组
B:整型变量
C:指向整型的指针
D:指向一维分数组的指针
答案: 【解锁后可见】
5、问题:请正确的填充语句:void main( int argc, char ( ) )
选项:
A:**argv[ ]
B:argv
C:*argv[ ]
D:argv[ ]
答案: 【解锁后可见】
6、问题:定义p为指向函数的指针变量,应该采用( )方式。
选项:
A:int p ( int *x )
B:int p( int x )
C:int *p ( int *x )
D:int (*p)( int x )
答案: 【解锁后可见】
7、问题:获取指针变量所指向的值,用的运算符是( )。
选项:
A: *
B:%
C:&
D:!
答案: 【解锁后可见】
8、问题: int a[10], *p;则让p指向数组的首地址的是( )。
选项:
A:p=&a[0]
B:*p=a
C:p=a[0]
D:a=p
答案: 【解锁后可见】
9、问题: 数组名是表示数组首地址的地址( )。
选项:
A:别名
B:结构体
C:常量
D:变量名
答案: 【解锁后可见】
10、问题:int a[3][5], *p;p=a[0];则p++后的值代表了( )。
选项:
A:第二行的首地址
B:第一行第二个元素的首地址
C:第一个元素的首地址
D:第一个元素的值
答案: 【解锁后可见】
第八章 单元测试
1、问题:将文件分为ASCII码文件和二进制码文件两种,是从文件的( )来区分的。
选项:
A:读写方式
B:存盘方式
C:编码方式
D:打开方式
答案: 【解锁后可见】
2、问题:文本文件在磁盘存放时,每个字符对应一个字节,用来存放( )码。
选项:
A:ASCII
B:二进制
C:数字
D:字符
答案: 【解锁后可见】
3、问题:文件操作流程中的最后一个步骤是( )文件。
选项:
A:存储
B:打开
C:读取
D:关闭
答案: 【解锁后可见】
4、问题:文件的变量类型名是( )。
选项:
A:int
B:FILE
C:char
D:file
答案: 【解锁后可见】
5、问题:在fopen函数中,“rb”表示为输入打开一个( )文件
选项:
A:目标文件
B:二进制
C:文本
D:头文件
答案: 【解锁后可见】
#版权声明# 本站所有资源来自网络收集和网友投稿,不代表大学题库立场。本站所提供资源均只能用于参考学习用,请勿直接商用。如若本站内容侵犯了您的合法权益,可联系我们进行删除处理。点我联系站长