C语言试题库.docx
- 文档编号:7115284
- 上传时间:2023-01-19
- 格式:DOCX
- 页数:45
- 大小:35.19KB
C语言试题库.docx
《C语言试题库.docx》由会员分享,可在线阅读,更多相关《C语言试题库.docx(45页珍藏版)》请在冰豆网上搜索。
C语言试题库语言试题库C语言试题库语言试题库一、单项选择第一章C语言概述
(1)一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN函数结束。
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C、本程序的MAIN函数开始,到本程序的最后一个函数结束。
D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。
(2)以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面。
B、C程序的每行中只能写一条语句。
C、C语言本身没有输入输出语句。
D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
(3)C语言规定,在一个源程序中,MAIN主函数的位置是在:
A、必须在最前面。
B、必须在系统调用的库函数的后面C、可以在任意位置。
D、必须在最后面(4)一个C程序是由:
A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(5)以下叙述不正确的是:
A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式
(1)若x,i,j,k都是int型变量,则计算下面表达式后,x的值为x(i,j,k)、
(2)下列四组选项中,均不是语言键字的选项是、define,IF,typeB、getc,char,printfC、include,scanf,caseE、if,struct,type(3)下面四个选项中,均是不合法的用户标识符的选项是、,_,do、float,1a0,_A、b-a,goto,intD、_123,temp,INT(4)若有代数式ae/bc,则正确的语言表达式是、a/b/c*e*3、3*a*e/bc、3*a*e/b*c、a*e/c/b*3(5)已知各变量的类型说明如下:
intk,a,b;unsingedlongw=5;doublex=;则以下不符合语言语法的表达式是、x%(-3)、w+=-2;、k=(a=2,b=3,a+b)、a+=a-=(b=4)*(a=3)第三章简单C程序设计()putchar函数可以向终端输出一个、整型变量表达式值、实型变量值、字符串、字符或字符型变量值()若x,y均定义为int型,z定义为double型,以下合法的scanf函数调用语句是、scanf(“%d%lx,%le”,&x,&y,&z);、scanf(“%2d*%d%lf”,&x,&y,&z);、scanf(“%x%*d%o”,&x,&y,&z);、scanf(“%x%o%”,&x,&y,&z);(3)当输入数据的形式为:
,时,以下程序的输出结果为main()intx,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%dn”,x+y+z);、x+y+z=48、x+y+z=35、x+z=35、不确定值(4)以下能正确的定义整型变量a,b和c,并对它们赋初值为的语句是、inta=b=c=5;、inta,b,c=5;、a=5,b=5,c=5;、a=b=c=5;(5)若有以下定义,则正确的赋值语句是inta,b;floatx;、a=1,b=2;、b+;、a=b=5;、b=int(x);第四章选择结构程序设计
(1)能正确表示“当x的值在1,10和200,210的范围为真,否则为假”的表达式是A、(x=1)&(x=200)&(x=1)(x=200)(x=1)&(x=200)&(x=1)(x=200)(x5)printf(“%dn”,m);elseprintf(“%dn”,m);A)4B)5C)6D)7(5)为了避免在嵌套的条件语句中if-else中产生二义性,c语言规定:
else子句总是与相配对。
A)缩排位置相同的ifB)其之前最近的ifC)其之后最近的ifD)同一行上的if第五章循环控制
(1)设有程序段intk=10while(k=0)k=k-1则下面描叙正确的是。
A)while(k=0)k=k-1;B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次
(2)下面程序段的运行结果是。
intn=0;while(n+=2);printf(“%d”,n);A)2B)3C)4D)有语法错(3)C语言中while和do-while循环的主要区别是。
A)do-while的循环体至少无条件执行一次B)while的循环控制条件比do-while的循环控制条件严格C)do-while允许从外部转到循环体内D)do-while允许从外部转到循环体内(4)以下能正确计算1*2*3*10的程序段是。
A)doi=1;s=1;s=s*i;i+;while(I=10);B)doi=1;s=0;s=s*i;i+;while(I=10);C)i=1;s=1;dos=s*i;i+;while(I=10);D)i=1;s=0;dos=s*i;i+;while(I=10);第六章数组
(1)在c语言中,引用数组元素时,其数组下标的数据类型允许是。
A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式
(2)以下能对二维数组a进行正确初始化的语句是。
A)inta2=1,0,1,5,2,3,;B)inta3=1,2,3,4,5,6;C)inta24=1,2,3,4,5,6;D)inta3=1,0,1,1,1;)(3)若有说明:
inta34=0;则下面正确的叙述是。
A)只有元素a00可得到初值0B)此说明语句不正确C)数组a中各元素都可得到初值,但其值不一定为0D)数组a中每个元素均可得到初值0(4)下面程序(每行程序前面的数字表示行号)。
1main()23floata10=0;4inti5for(i=0;i3;i+)scanf(“%d”,&ai;6for(i=1;i10;i+)a0=a0+ai;7printf(“%fn”,a0);8A)没有错误B)第3行有错误C)第5行有错误D)第7行有错误(5)若二维数组a有m列,则计算机一元素aij在数组中位置的公式为。
(假设a00位于数组的第一个位置上。
)A)i*m+jB)j*m+iC)i*m+j-1D)i*m+j+1第七章函数
(1)以下正确的函数定义形式是。
A)doublefun(intx,inty)C)doublefun(intx;inty)D)doublefun(intx,inty)E)doublefun(intx,y);
(2)以下正确的函数形式是。
A)doublefun(intx,inty)z=x+y;returnz;B)fun(intx,y)intz;returnz;C)fun(x,y)intx,y;doublez;z=x+y;returnz;D)doublefun(intx,inty)doublez;z=x+y;returnz;(3)C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是A)地址传递B)单向值传递C)由实参传给形参,再由形参传回给实参D)传递方式(4)C语言允许函数值型缺省定义,此时该函数值隐含的类型是。
A)float型B)int型C)long型D)double型(5)下面函数调用语句含有实参的个数为。
func(exp1,exp2),(exp3,exp4,exp5);A)1B)2C)4D)5第八章编译预处理命令
(1)请读程序:
#defineADD(x)x+xmain()intm=1,n=2,k=3;intsum=ADD(m+n)*k;printf(“sum=%d”,sum);上面程序的运行结果是。
A)sum=9B)sum=10C)sum=12D)sum=18
(2)以下程序的运行结果是。
#defineMIN(x,y)(x)A)p+5B)*a+1C)&a+1D)&a0(8)若有定义:
inta23;则对a数组的第I行第J列(假设I,J已正确说明并赋值)元素值的正确引用为_.A)*(*(a+I)+J)B)(a+I)jC)*(a+I+j)D)*(a+I)+j(9)若有定义:
inta23;则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的正确引用为_.A)*(ai+j)B)(a+i)C)*(a+j)E)ai+j(10)若有以下定义和语句,则对a数组元素地址的正确引用为_.Inta23,(*p)3P=a;A)*(p+2)B)p2C)p1+1D)(p+1)+2第一十章结构体与共用体
(1)以下对结构体类型变量的定义中不正确的是_.A)#defineSTUDENTstructstudentSTUDENTintnum;floatage;std1;B)structstudentintnum;floatage;std1;C)structintnum;floatage;std1;D)structintnum;floatage;student;structstudentstd1;
(2)设有以下语句(3)structstuinta;floatb;stutype;则下面叙述正确的是_.A)struct是结构体类型的关键字B)structstu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名(4)设有以下定义:
structskintn;floatx;data,*p;若要使p指向data中的n域,正确的赋值语句是_A)p=&;B)*p=;C)p=(structsk*)&;D)p=(structsk*);(5)设有以下语句:
structstintn;structst*next;staticstructsta3=5,&a1,7,&a2,9,0,*p;p=&a0;则以下表达式的值为6的是_.A)p+-nB)p-n+C)(*p).n+D)+p-n第一十一章位运算
(1)以下运算符中优先级最低的是优先级最高的是。
A)&B)&C)|D)|
(2)若有运算符,sixeof,&=则它们按优先级按由高到低的正确排列次序是。
A)sizeof,&=,B)sizeof,&=C),sizeof,&=D)(4)在C语言中,要求运算数必须是整型或字符型的运算符是。
A)&B)&C)!
D)|(5)sozeof(float)是。
A)一种函数调用B)一种不合法的表示形式C)一个整型表达式D)一个浮点表达式第一十二章文件(!
)系统的标准输入文件是指。
A)键盘B)显示器C)软盘D)硬盘
(2)以下可作为函数fopen中第一个参数的正确格式是。
A)c:
userB)c:
userC)c:
userD)c:
user()若执行fopen函数时发生错误,则函数的返回值是)地址值)()若要用fopen函数打开一个新的二进制文件,该文件要既能读又能写,则文件方式字符串应是。
A)ab+B)wb+C)rb+D)ab(5)当顺利执行了文件关闭操作时,fclose函数的返回值是。
A)-1B)TUREC)0D)1二、填空第一章C语言概述
(1)C源程序的基本单位是()
(2)一个C源程序至少应包括一个()(3)在一个C源程序中,注释部分两侧的分界符分别为()和()(4)在C语言中,输入操作是由库函数()完成的,输出操作是由库函数()完成的。
第二章数据类型、运算符与表达式
(1)在语言中(以位机为例),一个char型数据在内存中所占的字节数为(),一个int型数据在内存中所占的字节数为()。
(2)在语言中,实型变量分为两种类型,它们是()和()。
(3)若a是int型变量,则计算表达式a=25/3%3后,a的值为()。
(4)语言中的标识符只能由三种字符组成,它们是(),()和()(5)表达式8/4*(int)(int)*+值的数据类型为()。
第三章简单C程序设计
(1)以下程序的输出结果是()。
main()intx=1,y=2;printf(“x=%dy=%d*sum*=%dn”,x,y,x+y);printf(“10squaredis:
%dn”,10*10);
(2)以下程序的输出结果是()。
#includemain()inta=325;doublex=;printf(“a=%+06dx=%+en”,a,x,);(3)假设变量a和b均为整型,以下语句可以下借助任何变量把a、b中的值进行交换。
请填空。
a+=();b=a-();a-=();(4)设x,y和z都是int型变量,m为long型变量,则在16位微型机上执行下面的赋值语句后,x值为(),y值为(),z值为()。
y=(x=32767,x=-1);z=m=0xFFFF(5)若x为int型变量,则执行以下语句后x的值是()x=7;x+=x-=x+x;第四章选择结构程序设计
(1)当a=3,b=2,c=1时,表达式f=abc的值是()。
(2)在C语言中表示逻辑“真”值用()。
(3)设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式().(4)当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!
=b)&(n=bc)后;n的值为(),m的值为()。
(5)有inta=3,b=4,c=5;则表达式a|b+c&b=c的值为()。
第五章循环控制
(1)执行下面程序段后,K值是()。
K=1;n=263;Dok*=n%10;n/=10while(n);
(2)下面程序段中循环体的执行次数是()。
A=10;B=0;Dob+=2;a-=2+b;while(a=0);(3)下面程序段的运行结果是()。
X=2Doprintf(“*”);x-;while(!
x=0);(4)下面程序段的运行结果是()。
I=1;a=0;s=1;Doa=a+s*i;s=-s;i+;while(i=10)Printf(“a=%d,a”);(5)鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。
For(x=1;x=29;x+)y=30-x;if()printf(“%d,%dn”,x,y);第六章数组
(1)在C语言中,二维数组的定义方式为:
类型说明符数组名()();
(2)在C语言中,二维数组元素在内存中的存放顺序是()。
(3)若有定义:
doublex35;则x数组中行下标的下限为(),列下标的上限为()。
(4)若二维数组a有m列,则计算机任一元素aij在数组中位置的公式为:
().(假设a00位于数组的第一个位置上。
)(5)若有定义:
inta34=1,2,0,4,6,8,10;则初始化后,a12得到的初值是(),a21得到初值是()。
第七章函数
(1)C语言规定,可执行程序的开始执行点是()。
(2)在C语言中,一个函数一般由两个部分组成,它们是()和()。
(3)下面add函数的功能是求两个参数的和,并将和值返回调用函数。
函数中错误的部分是();改正后为()。
Voidadd(floata,floatb)floatc;c=a+b;returnc(4)以下程序的运行结果是()。
main()increment();increment();increment();increment();intx=0;x+=1;printf(“%d”,x);(5)以下Check函数的功能是对value中的值进行四舍五入计算,若计算后的值与ponse值相等,则显示“WELLDONE!
”,否则显示计算后的值。
已有函数调用语句Check(ponse,value);请填空。
VoidCheck(intponse,value)intval;val=();printf(“计算后的值:
%d”,val);if()printf(“NwellDNOE!
n”);elseprintf)”nSorrythecorrectansweris%dn”,val);第八章编译预处理命令
(1)设有以下宏定义:
#defineWIDTH80#defineLENGTHWIDTH+40则执行赋值语句:
v=LENGTH*20;(V为int型变量)后,v的值是()。
(2)设有以下宏定义:
#defineWIDTH80#defineLENGTH(WIDTH+40)则执行赋值语句:
k=LENGTH*20;(K为int型变量)后,k的值是()。
(3)下面程序的运行结果是()。
#defineDOUBLE(r)r*rmain()intx=1,y=2,t;t=DOBLE(x+y);printf(“%dn”,t);(4)下面程序的运行结果是()。
#defineMUL(z)(z)*(z)main()printf(“%dn”,MUL(1+2)+3);(5)下面程序的运行结果是()。
#definePOWER(x)(x)*(x)main()intI=1;while(I=4)printf(“%dt”,POWER(I+);printf(“n”);第九章指针
(1)下面程序段的运行结果是()chars80,*sp=”HELLO!
”;sp=strcpy(s,sp);s0=h;puts(sp);
(2)下面程序段的运行结果是()chara=”9”,*p;intI=0;p=a;while(*p)if(I%2=0)p=*;p+;I+;puts(a);(3)若有以下语句和定义:
inta4=0,1,2,3,*p;p=&a1;则+(*p)的值是()(4)若有定义:
inta23=2,4,6,8,10,12;则(&a00+282+1的值是(),*(a1+2)的值是()。
第一十章结构体与共用体
(1)以下程序用以输出结构体变量bt所占内存单元的字节数,请在()内填上适当的内容。
StructpsdoubleI;chararr20;main()structpsbt;ptintf(“btsize:
%dn:
();
(2)设有三人的姓名和年龄存在结构数组中,以下程序输出三人中年龄居中者的姓名和年龄,请在()内填上正确的内容。
Staticstructmancharname20intage;person“liming”,18,“wanghua”,19,“zhangping”,20;main()inti,j,max,min;max=min=person0.age;for(i=1;imax)();elseif(personi.agemin)();for(i=0;ib/*+pn-b的值是(),表达式(*pn).a+pn-f的值是()。
(4)以下程序的功能是计算并打印复数的差。
请在()内填入正确的内容。
Structcompfloatre;floatim;structcomp*m(x,y)structcomp*x,*y;();z=(structcomp*)malloc(sizeof(structcomp);z-re=x-re-y-re;z-im=x-im-y-im;return();main()structcomp*t;structxompa,b;=1;=2;=3;=4;t=m();printf(“=%f,=%f”,t-re,t-im);(5)以下程序的运行结果是()structksinta;int*b;s4,*p;main()intn=1,i;printf(“n”);for(i=0;ia,(p+)-a);第一十一章位运算
(1)在语言中,&运算符作为单目运算符时表示的是()运算;作为双目运算符时表示的是()运算。
()与表达式a&=b等价的另一书写形式是()。
(3)设有chara,b;若要通过a&b运算屏蔽掉a中的其它位,只保留第2和第8位(右起为第位),则b的二进制数是().(4)测试char型变量a第六位是否为1的表达式是()(设最右位是第一位)。
(5)设二进制数x的值是,若想通过x&y运算使x中的低4位不变,高4位清零,则y的二进制数为()。
第一十二章文件()在程序中,文件可以用()方式存取,也可以用()方式存取。
()在程序中,数据可以用()和()两种代码形式存放。
()在程序中,文件的存取是以()为单位的,这种文件被称作()文件。
()函数调用语句:
fgets(buf,n,fp);从fp指向的文件中读入()个字符放到buf字符数组中。
函数值为()。
()feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为(),否则为()。
三、判断第一章C语言概述第二章数据类型、运算符与表达式
(1)C语言所提供的基本数据类型包括:
整型、实型和字符型。
(2)在C程序中,逗号运算符的优先级最低。
(3)当从键盘输入数据时,对整型变量只能输入整型数据,对实型变量只能输入实型数据。
(4)C语言中的标识符只能由字母、数字和下划线三种字符组成。
(5)在C语言中,char型的数据在内存中的存储形式是原码形式。
第三章简单C程序设计
(1)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%”,&f)。
(2)整型变量的输出格式控制符只有%d一种。
(3)putchar函数可以向终端输出一个字符串。
(4)pirntf函数中用到格式符%5s,其中数字5表示输出的字符串占5列,如果字符串长度大于5,则输出按原字符长度从左向右全部输出。
(5)输入项可以是一个实型常量,如scanf(“%f”,。
第四章选择结构程序设计
(1)逻辑运算符两侧的运算对象可以是任何基本类型的数据。
(2)C语言中只提供了三种逻辑运算符:
&,|,和!
。
(3)若a=6,b=4,c=3则表达式a&b+c|b-c的值是0。
(4)关系运算式的结果都是逻辑值。
(5)若a=1,b=2,则表达式ab?
a:
b+1的值是3。
第五章循环控制
(1)设有以下程序段:
intx=0,s=0;while(!
x!
=0)s+=+x;printf(“%d”,s);则运行该程序段后输出为:
0
(2)for循环只能应用于循环次数已经确定的情况。
(3)goto语句只能用于退出多层循环。
(4)switch语句中不能出现continue语句。
(5)只能用continue语句终止本次循环。
第六章数组
(1)两个字符串中所包含的字符个数相同时,才能比较字符串。
(2)字符数组可以存放字符串。
(3)不能用关系运算符对字符数组中的字符串进行比较。
(4)如果定义了一个指向数组的指针,则该指针可以相当于数组名使用。
(5)如果没有给一个整型数组的元素赋初值,则其元素的缺省初值全部为0。
第七章函数
(1)C语言中,用户若需调用标准库函数,在调用前必须重新定义。
(2)C语言中不允许用户重新定义标准库函数。
(3)在C程序中,函数的定义和调用都不允许嵌套。
(4)如果用数组名作为函数调用的实际参数,则传递给形参的是数组的首地址。
(5)形式能参数也是一种局部变量。
第八章编译预处理命令
(1)预处理命令行都必须以#号开始。
(2)宏替换不占用运行时间,只占编译时间。
(3)C程序在执行过程中对预处理命令进行处理。
(4)宏名必须用大写字母表示。
(5)在文件包含预处理命令的使用形式中,当include后的文件名用括起来时,表示在当前目录搜索被包含文件。
第九章指针
(1)若有定义:
int(*p)4,则标识符p表示的是一个指向整型变量的指针。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 试题库
![提示](https://static.bdocx.com/images/bang_tan.gif)