随堂测试1
1.下列不属于C语言中使用的常量的是( )
A.数值常量
B.字符常量
C.字符串常量
D.标识符常量
2.属于单字符运算符的是( )
A.(
B.+
C.=
D.|
3.字符常量和字符串常量分别简称为字符和字符串,它们是分别使用单引号和双引号作为起止定界符的数据(单词)。
随堂测试2
1.C语言源程序的最小单位是()。
A.语句
B.函数
C.字符
D.程序行
2.一个用户函数定义包含哪些部分( )
A.函数头
B.函数名
C.函数体
D.函数类型
3.abs函数的原型被包含在include子目录下的stdlib.h头文件和math.h头文件中。
随堂测试3
1.对以下哪种printf的用法正确()。
A.printf("%d",'a');
B.printf("%d",4.0);
C.printf("%d",4);
D.printf("%f",4);
2.已知 int a;使用scanf()函数输入一个整数给变量a,错误的的函数调用是()。
A.scanf("%d",a);
B.scanf("%d",&a);
C.scanf("%f",&a);
D.scanf("%lf",&a);
3.用C语言编写出一个完整的程序后,第一步需要上机建立相应的工作区和项目并建立、输入和编辑该程序中的相应文件,其中有并且只有一个程序文件必含有一个并且只有一个主函数。
随堂测试4
1.下列关于转义字符说法正确的是( )
A.转义字符是符号常量
B.‘/n ’是转义字符
C.以斜杠字符 ’/’ 开头的字符序列,称为“转义字符”
D.转义字符‘\n’ 功能是换行
2.下列属于字面常量的是( )
A.整型常量
B.字符常量
C.枚举常量
D.实型常量
E.地址常量
3.空类型是C语言的一种数据类型。
随堂测试5
1.算数运算符,赋值运算符,关系运算符的优先级按从高到低依次为()
A.算数运算符,赋值运算符,关系运算符
B.算数运算符,关系运算符,赋值运算符
C.关系运算符,赋值运算符,算数运算符
D.关系运算符,算数运算符,赋值运算符
2.按照运算符要求操作数个数的多少,可把C语言中的运算符分为、()和三类。
A.单目运算符
B.双目运算符
C.多目运算符
D.三目运算符
3.设int型变量x的值为9,那么表达式x-- + x-- + x--的值为27 。
随堂测试6
1.以下选项中,两个条件语句功能等价的是()。
A.if (a=3) printf("%dn",a); if (a==3) printf("%dn",a);
B.if (a-3) printf("%dn",a); if (a!=3) printf("%dn",a);
C.if (a) printf("%dn",a); if (a==0) printf("%dn",a);
D.if (a-3) printf("%dn",a); if (a==3) printf("%dn",a);
2.下列哪些属于数学函数()。
A.double sin(double x);
B.B.int rand(void);
C.C.double floor(double x);
D.D.double exp(double x);
3.函数调用表达式exit(l)和srand(10)都是无值表达式。
随堂测试7
1.C语言的流程控制语句不包括()。
A.表达式语句
B.for语句
C.if语句
D.while语句
2.在C语言程序设计中,一段完整的程序一般包含哪些控制流程( )
A.顺序类流程
B.分支类流程
C.递归类流程
D.跳转类流程
E.循环类流程
3.循环类语句包括if语句、while语句和do-while语句三种。
随堂测试8
1.要使以下程序段输出10个整数,请填入一个整数; for(i=0;i<=( );printf("%d\n",i+=2));B
A.17
B.18
C.20
D.21
2.对于for(表达式1;;表达式3)下面理解错误的是()。
A.for(表达式1;0;表达式3)
B.4for(表达式1;1;表达式3)
C.for(表达式1;表达式1;表达式3)
D.for(表达式1;表达式3;表达式3)
3.若a和b均是整形变量并已正确赋值,正确的switch语句是switch a+b*3.0{......}
随堂测试9
1.有以下程序段 int k=0;
while (k=1) k++;
while循环执行的次数是( )
A.无限次
B.有语法错,不能执行
C.一次也不执行
D.执行一次
2.t为int型,进入下面的循环之前,t的值为0 while (t=1) { …… } 则以下叙述中错误的是()。
A.循环控制表达式的值为0
B.循环控制表达式的值为1
C.循环控制表达式不合法
D.循环控制表达式的值为空
3.while语句又称为while循环,是一种循环性语句,它的循环体是一条语句。
随堂测试10
1.以下对二维数组a的正确说明是( )
A.int a[3][];
B.float a(3,4);
C.float a(3)(4);
D.double a[1][4];
2.C语言数组可以分为()。
A.一维数组
B.二维数组
C.多维数组
D.交叉数组
3.二维数组可以看成是由多个一维数组构成的一维数组。
随堂测试11
1.下面有关typedef的叙述中,正确的是()。
A.typedef用于定义新类型
B.typedef用于定义新变量
C.typedef用于给已定义类型取别名
D.typedef用于给已定义变量取别名
2.下面对typedef的叙述中正确的是()。
A.用typedef可以定义各种类型名,但不能用来定义变量
B.用typedef可以增加新类型
C.用typedef只是将已存在的类型用一个新的标识符来代表
D.使用typedef有利于程序的通用移植
3.使用三重嵌套循环来访问或修改元素的值。
随堂测试12
1.若有说明∶int a[][4]={0,0};则下面不正确的叙述是( )
A.数组a的每个元素都可得到初值0
B.二维数组a的第一维大小为1
C.因为二维数组a中第二维大小的值除初值个数的商为0,故数组a的行数为1
D.只有元素 a[0]和 a[0][1]可得到初值0,其余元素均得不到初值0
2.以下关于数组的描述中,正确的有()
A.有定义char a[3]; 则定义了a[1]、a[2]、a[3]三个数组元素
B.构成字符数组的各个元素必须是字符类型的数据
C.若有定义char a[]="hello";,则数组a的长度为6
D.设有数组定义char array []="China"; 则数组array所占的空间为5个字节
3.假定 char 类型变量占用1个字节,且数组定义如下,则数组 tab_str 在内存中所占字节数是810。 char tab_str [ 10 ][ 81 ];
随堂测试13
1.若有定义∶int x=0,*p=&x;,则语句printf("%d\n",*p);的输出结果是()。
A.随机值B.0C.x的地址D.p的地址
2.以下说法中不正确的是()。
A.C语言的指针只能用来装变量的地址
B.C语言的指针可以进行加、减、乘、除等算术运算
C.C语言指针就是一种数据类型,具体有指针变量和指针常量
D.C语言指针很难,一般人难以理解
3.计算机系统将为每个数据分配一定大小的存储空间,此存储空间称为一个数据单元。
随堂测试14
1.设有变量说明int(*p)[m],其中的标识符p是()。
A.m个指向整型变量的指针
B.指向m个整型变量的指针
C.一个指向具有m个整型元素的一维数组的指针
D.具有m个指针元素的一维指针数组,每个元素都指向整型变量
2.设int(*p)[4];,则p的含义是()
A.指向整型变量的指针数组
B.指向4个整型变量的函数指针
C.4个指向整型变量的指针变量
D.指向具有4个整型元素的一维数组的指针
3.指针变量的加减,相当于指针的位移,所以只有指向数组的指针加减才是有意义的,对指向普通变量的加减没有意义。
随堂测试15
1.动态存储分配是在()对程序和数据进行存储分配。
A.计算机启动过程中
B.计算机运行过程中
C.计算机运行开始前
D.计算机运行终止后
2.下面关于malloc标准库函数的描述中,正确的是()。
A.通过malloc函数可以在程序运行过程中分配存储
B.malloc函数是返回整型指针值的函数
C.malloc函数是返回空类型指针的函数
D.malloc函数的参数是分配空间的字节数
3.动态存储分配具有这两个特点,第一是不需要预先分配存储空间,第二是根据程序需要即时分配,也可以根据程序的需要扩大或缩小。
随堂测试16
1.下列关于函数定义的说法,正确的是()
A.函数定义时,可以嵌套
B.函数定义不可以嵌套,但可以嵌套调用
C.主函数main内可以定义函数
D.函数定义可以嵌套,调用也可以嵌套。
2.关于函数声明,以下正确的说法是()。
A.如果函数定义出现在函数调用之前,可以不必加函数原型声明
B.如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必再做函数原型声明
C.函数再调用之前,一定要声明函数原型,保证编译系统进行全面的调用检查
D.标准库不需要函数原型声明
3.实参是在调用时传递给函数的参数,即传递给被调用函数的值。
随堂测试17
1.下列关于变量作用域的描述中,不正确的是()。
A.变量属性是用来描述变量作用域的
B.局部变量作用域只能是它所在方法的代码段
C.类变量能在类的方法中声明
D.类变量的作用域是整个类
2.下列关于变量作用域的叙述,正确的是()。
A.变量只能在其作用域范围内访问
B.局部变量具有文件作用域
C.局部变量具有块作用域
D.全局变量具有文件作用域
3.在同一个作用域不可定义同名变量,在不同的作用域可以定义同名变量。
随堂测试18
1.关于递归定义的函数,下列说法正确的是()。
A.递归定义的函数一定是“递归计算”的;
B.递归定义的函数一定是“迭代计算”的;
C.有些递归定义的函数可以“迭代计算”,有些递归定义的函数则必须“递归计算”;
D.凡是可以“迭代计算”的函数,一定可以“递归计算” ,凡是可以“递归计算”的函数,也一定可以“迭代计算”。
2.下面关于递归函数说法不正确的是()
A.一般来说,递归函数的执行效率高于非递归函数
B.边界条件和递归关系是递归函数编写的关键
C.递归函数的嵌套调用次数没有限制
D.递归函数不可以改写为非递归函数
3.可以利用“递归”进行具有自重复性无限重复动作的执行, 即“递归计算”或“递归执行”。
随堂测试19
1.下面C语言语句定义了()。
struct student{intnum;
char name[20];
char sex;}s1,s2;
A.结构类型 s1,s2
B.结构变量 student
C.链表 student
D.结构类型student和结构变量s1,s2"
2.假定要访问一个结构变量x中的由指针成员a所指向的对象,则表示方法不正确的是()。
A.x->a
B.X.a
C.*(A.x)
D.*(X.a)
3.定义结构体类型变量teach1的语句为struct {int num; int age; }teacher; struct teacher teach1;
随堂测试20
1.下列关于结构体的说法,哪一项是错误的?()
A.定义结构体类型所用的关键字是struct
B.结构体中的成员可以具有不同的数据类型
C.通过结构体变量访问其成员时,可以使用点运算符
D.结构体变量不能直接相互赋值
2.下面关于结构体数据类型的描述中,正确的是()。
A.定义结构体类型时,系统会根据各个成员的大小为其分配内存空间
B.定义结构体类型时,系统会根据最大成员的大小为其分配内存空间
C.定义结构体类型时,不会产生内存分配
D.定义结构体类型时,系统会分配固定内存
3.初始化结构体数组有两种方式:先定义结构体数组类型再初始化结构体数组、在定义结构体数组的同时初始化结构体数组。
随堂测试21
1.假定要访问一个结构x中的由a指针成员所指向的对象,则表示方法为( )。
A.x->a B.x.a C.*(x.a) D.*(A.x)
2.在结构类型的定义中,不同数据成员的定义项之间采用的分隔符错误的是( )
A.句点B.冒号C.逗号D.分号
3.一个结构类型的长度等于所含的所有数据成员类型的长度之和。
随堂测试22
1.在一个链表中,每个结点必然存在着一个指向自身结点类型的指针域,用来保存下一个结点的()
A.值B.地址C.名称D.类型
2.假定有结构定义“struct Book{char title; double price;};”,则语句定义错误的是()
A.struct Book *x=malloc(6,sizeofstruct (Book))
B.struct Book *x=calloc(6*sizeof(struct Book))
C.struct Book *x=calloc(6,sizeof(struct Book))
D.struct Book *x=malloc(6*sizeof(struct Book *))
3.在结构类型的定义中,其数据成员可以是本身类型的直接对象。
随堂测试23
1.关于C语言文件叙述错误的是()
A.C语言文件由记录组成
B.C语言中对文件的存取以字节为单位
C.C语言文件是流式文件
D.C语言对文件的读写是由库函数实现的
2.关于C语言文件操作的结论中,()是错误的。
A.对文件操作必须是先关闭文件
B.对文件操作是先打开文件
C.对文件操作顺序无要求
D.对文件操作前必须先测试文件是否存在,然后再打开文件
3.C语言把对文件输入输出的数据,当做一行行的文本来处理,才会出现换行时的自动转换现象,这种文件操作模式被称作文本模式。
随堂测试24
1.关于二进制文件和文本文件描述正确的为()。
A.文本文件把每一个字节放成一个ASCII 代码的形式,只能存放字符或字符串数据;
B.二进制文件把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放
C.二进制文件可以节省外存空间和转换时间,不能存放字符形式的数据;
D.一般中间结果数据需要暂时保存在外存上,以后又需要输入内存的,常用文木文件保存 ;
2.关于文件理解正确的为( )。
A.C语言把文件看作是字节的序列,即由一个个字节的数据顺序组成;
B.所谓文件一般指存储在外部介质上数据的集合;
C.系统自动地在内存区为每一个正在使用的文件开辟一个缓冲区;
D.每个打开文件都和文件结构体变量相关联,程序通过该变量访问该文件;
3.打开一个文件,对该文件进行访问操作之后,是否关闭该文件是可有可无的。