C语言模拟试题一、单项选择题(共40分每题1分)说明:答案必须填写在答题卡的相应位置上,否则不得分。
1.C语言中字符型(char)数据在内存中的存储形式是____D____。
A、原码B、反码C、补码D、ASCII码2.C语言中基本的数据类型包括___B_____。
A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型3.在C语言中,int类型数据在内存中占用____C____。
A、2字节B、4字节C、由编译系统决定D、由用户决定4.运算符有优先级,C语言中关于运算符优先级的正确叙述是____B____。
A、逻辑运算符高于算术运算符,算术运算符高于关系运算符;B、算术运算符高于关系运算符,关系运算符高于逻辑运算符;C、算术运算符高于逻辑运算符,逻辑运算符高于关系运算符;D、关系运算符高于逻辑运算符,逻辑运算符高于算术运算符。
5.下面关于C语言语句的叙述,错误的是___C_____。
A、C语言一行可以允许写多条语句;B、C语言语句用分号结束;C、语句一行写不下时,可以用逗号换行;D、语句一行写不下时,可在任意一空格处回车换行。
6.下面数据中不属于字符型常量的是____A____。
A、“\n”B、…\0‟C、…A‟D、…\t‟7.11.以下选项中,当x为大于1的奇数时,值为0的表达式______D____ 。
A、x%2==1B、x/2C、x%2!=0D、x%2==08.C语言源程序名的后缀是____B____ 。
A 、.exe B、.C C、.obj D、.cp9.设所有变量均为int型,则表达式(a=5,b=2,b++,a-b)的值是____D____。
A、7B、8C、6D、210.若有说明语句:int a;float b;,以下输入语句正确的是___C_____。
A、scanf("%f%f",&a,&b);B、scanf("%f%d",&a,&b);C、scanf("%d,%f",&a,&b);D、scanf("%6.2f%6.2f",&a,&b);11.已知int a,b; 用语句scanf(“%d%d”,&a,&b);输入a,b的值时,不能作为输入数据分隔符的是_____A___。
A、,B、空格C、回车D、[Tab]12.C语言对嵌套if语句的规定是:else总是与___D___配对。
A、与之前最近的ifB、第一个ifC、缩进位置相同的ifD、其之前最近的且尚为配对的if13.在下面的条件语句中(其中s1和s2表示是C语言的语句),只有一个在功能上与其它三个语句不等价,它是___D___。
A、if(a)s1; else s2;B、if(a==0)s2; else s1;C、if(a!=0)s1; else s2;D、if(a==0)s1; else s2;14.若有下面程序片段,则输出结果为___D___。
int x=10,y=10;printf(“%d,%d”,x--,--y);A、10,10B、9,9C、9,10D、10,9 15.对if语句中表达式的类型,下面正确的描述是____D_____。
A、必须是关系表达式B、必须是关系表达式或逻辑表达式C、必须是关系表达式或算术表达式D、可以是任意表达式16.以下错误的if语句是____C_____。
A、if(x>y);B、if(x= =y)x+=y;C、if(x!=y)printf("%d",x) else printf("%d",y);D、if(x<y){x++;y++;}17.若要求在if后的一对圆括号中表示x与y相等的关系,则不能正确表示这一关系的表达式为_____A___。
A、x=yB、x= =yC、!(x-y )D、!(y-x) 18.以下错误的描述是__B____。
A、break语句不能用于循环语句、switch语句外的任何其它语句;B、在switch语句中使用break语句或continue语句的作用相同;C、在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环;D、在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环。
19.以下四个关于C语言的结论中,只有一个是错误的,它是___D___。
A、可以用while语句实现的循环一定可以用for语句实现;B、可以用for语句实现的循环一定可以用while语句实现;C、可以用do-while语句实现的循环一定可以用while语句实现;D、do-while语句与while语句的区别仅是关键字“while”出现的位置不同。
20.以下程序段执行后,变量i的值是___D___。
for(i=1;i<=100;i+=2);A、100B、102C、99D、101 21.与语句while(!x)等价的语句是__A___。
A、x= =0B、x= =1C、x!=0D、x=022.下面的for循环是____C__。
for(i=0,j=0;(j!=123)&&(i<4);i++);A、无限循环B、循环次数不定C、执行4次D、执行3次23.以下错误的描述是__C____。
A、使用while和do-while循环时,循环变量初始化的操作在循环语句之前完成;B、while循环是先判断表达式,后执行循环体语句;C、do-while和for循环均是先执行循环体语句,后判断表达式;D、for、while和do-while循环中的循环体均可以由空语句构成。
24.在C语言中,引用数组元素时,其数组下标的数据类型允许是_C________。
A、整型常量B、整型表达式C、整型常量或整型表达式D、任何类型的表达式25.若要定义一个有10个int元素的数组,应当选择语句___A_____。
A、int a[10];B、int a[2,5];C、int a(10);D、int *a[10]; 26.以下能对一维数组a进行正确初始化的语句是____D_____。
A、int a[5]=”student”;B、int a[5]={ 1;2;3;4;5};C、char a=“student”;D、char a[]={65,66,67,‟\0‟};27.若要定义一个具有3行4列整型元素的数组a,正确的定义方法是___A____。
A、int a[3][4] ;B、int a(3)(4);C、int a[3,4];D、int a(3,4); 28.若二维数组a有m列,则在a[i][j]之前的元素个数为____B____。
A、j*m+iB、i*m+jC、i*m+j-1D、j*m+i-1 29.若有定义int a[][3]={{1,2,3},{0},{4,5,6}};则a[2][1]的值是___C_____。
A、0B、4C、5D、630.下列有关字符数组的描述中错误的是__B_______。
A、字符串可以整体输入,输出;B、可以在赋值语句中通过赋值运算对字符数组整体赋值;C、字符数组可以存放字符串;D、不可以用关系运算符对字符数组中的字符串进行比较。
31.以下说法中正确的是_____C___。
A、C语言程序总是从第一个函数开始执行;B、在C语言程序中,要调用的函数必须在main()函数中定义;C、C语言程序总是从main()函数开始执行;D、C语言程序中的main()函数必须放在程序的开始部分。
32.下列叙述中正确的是____A____。
A、函数定义不能嵌套,但函数调用可以嵌套;B、函数定义可以嵌套,但函数调用不可以嵌套;C、函数定义和函数调用都不能嵌套;D、函数定义与函数调用都可以嵌套。
33.若用数组名作为函数调用时的实参,则实际传给形参的是___B_____。
A、数组的第一个元素值B、数组的首地址C、数组的全部元素D、数组中元素的个数34.C语言中函数返回值的类型是由___D_____决定。
A、return语句中表达式的类型B、调用该函数的主调函数的类型C、调用函数时临时D、定义函数时指定的类型35.下面不正确的描述为_____B__。
A、调用函数时,实参可以是表达式B、调用函数时,实参与形参可以共用内存单元C、调用函数时,将为形参分配内存单元D、调用函数时,实参与形参的类型必须一致36.、在一个文件中定义的外部变量的作用域为__D_____。
A、本文件的全部范围B、本程序的全部范围C、本函数的全部范围D、从定义该变量的位置开始至本文件结束37.C语言的编译预处理主要包括三项功能,下面不是其中之一的是__D______。
A、文件包含(#include)B、宏定义(#define)C、条件编译D、检查C程序中的语法错误38.关于指针的叙述,错误的是____B____。
A、指针变量存放变量的地址B、指针和数组完全相同C、利用指针作为函数的参数,可以改变调用时实参的值D、利用指针可以实现内存的动态分配39.若已定义:int *p,a;则语句p=&a中的运算符“&”的含义是___D_____。
A、位与运算B、逻辑与运算C、取指针内容D、取变量地址40.在文件使用方式中,字符串″rb″表示__A____。
A、打开一个已存在的二进制文件,只能读取数据B、打开一个文本文件,只能写入数据C、打开一个已存在的文本文件,只能读取数据D、打开一个二进制文件,只能写入数据二、填空题(共10分,每空1分)说明:答案必须填写在答题卡的相应位置上,否则不得分。
1.一个C源程序是由一个或多个函数组成的,其中只有一个(1)函数。
2.函数定义时的参数称为形参。
函数调用时的参数称为实参,形参和实参必须一一对应,即数量相同,(2)。
3.与一般的变量不同,指针变量是用来存放内存地址的变量,如果一个指针变量的值是另一个变量的地址,则称该指针变量(3)那个变量。
4.自增、自减运算符的运算对象只能为(4),不能是常量和表达式。
5.若有定义:int a=5;则语句printf(“%d”,a++);执行后a的值是(5)。
6.C语言中字符具有数字特征,不但可以写成字符常量的形式,还可以用相应的(6)表示。
7.若有以下语句:char a,b;scanf("%d,%c",&a,&b);printf("%c,%d\n",a,b);执行时输入65,F 则输出为(7)。
8.结构化程序设计的三种基本控制结构分别是顺序结构、选择结构和(8)。
9.C语言中,数组是一种相同数据类型数据的有序集合,数组中的元素在内存中(9)。