C语言开发基础(习题卷33)_第1页
C语言开发基础(习题卷33)_第2页
C语言开发基础(习题卷33)_第3页
C语言开发基础(习题卷33)_第4页
C语言开发基础(习题卷33)_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

试卷科目:C语言开发基础C语言开发基础(习题卷33)PAGE"pagenumber"pagenumber/SECTIONPAGES"numberofpages"numberofpagesC语言开发基础第1部分:单项选择题,共70题,每题只有一个正确答案,多选或少选均不得分。[单选题]1.设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是()。A)a&&bB)a<=bC)a||b+c&&b-cD)!((a<b)&&!c||1)答案:D解析:[单选题]2.数据管理技术发展的三个阶段中,()没有专门的软件对数据进行管理。Ⅰ.人工管理阶段Ⅱ.文件系统阶段Ⅲ.数据库阶段A)仅ⅠB)仅ⅢC)Ⅰ和ⅡD)Ⅱ和Ⅲ答案:A解析:数据管理技术发展阶段包括:①人工管理阶段,没有操作系统,没有管理数据的软件,采用批处理的方式处理数据;②文件系统阶段,操作系统中包含专门管理数据的文件系统;③数据库系统阶段,使用数据库管理系统来统一管理数据。答案选择A选项。[单选题]3.结构化程序的三种基本控制结构是()。A)顺序、选择和重复(循环)B)过程、子程序和分程序C)顺序、选择和调用D)调用、返回和转移答案:A解析:结构化程序设计中三种基本控制结构为顺序、选择和重复(循环)。答案选择A选项。[单选题]4.有整型变量x,单精度变量y=5.5,表达式x=(float)(y*3+((int)y)%4)执行后,x的值为()。A)17B)17.500000C)17.5D)16答案:A解析:[单选题]5.有以下程序段intk=2;while(k=0){printf("%d",k);k--;}则下面描述中正确的是()。A)循环是无限循环B)循环体语句执行一次C)循环体语句一次也不执行D)while循环执行10次答案:C解析:[单选题]6.()不是算法的表达方式。A)流程图B)N-S流程图C)伪代码D)数据结构答案:D解析:[单选题]7.若?intn;floatf=13.8;?,则执行?n=(int)f%3?后,n的值是()。A)1B)4C)4.333333D)4.6答案:A解析:[单选题]8.下面关于变量定义及初始化错误的语句是______。A)inta=3;b=4;B)chara='3',b='4';C)doublea=3,b=a;D)doublea=3,b=4;答案:A解析:[单选题]9.下面关于结构的说法错误的是____。A)使用结构体变量之前必须先声明结构体类型B)结构体成员名和程序中的变量名不能重名C)结构体成员可以是一个结构体变量D)可以在声明类型的同时声明变量答案:B解析:[单选题]10.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为()。(假设根结点在第1层)A)3B)4C)6D)7答案:D解析:在任意一个二叉树中,度为0的叶子结点总比度为2的结点多一个,所以本题中度为2的结点为1-1=0个,即二叉树的每一个结点都只有一个孩子,7个结点共7层。答案选择D选项。[单选题]11.关于指针概念说法不正确的是().A)一个指针变量只能指向同一类型变量B)一个变量的地址称为该变量的指针C)只有同一类型变量的地址才能放到指向该类型变量的指针变量之中D)指针变量可以由整数赋,不能用浮点赋答案:D解析:[单选题]12.以下关于for循环的正确描述是____A)for循环只能用于循环次数已经确定的情况B)for循环是先执行循环体语句,后判断表达式C)在for循环中,不能用break语句跳出循环体D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来答案:D解析:[单选题]13.以下函数fun形参的类型是___()___.fun(floatx){floaty;y=3*x-4;returny;}A)intB)不确定C)voidD)float答案:D解析:[单选题]14.设有如下一程序段:Int*var,ab;Ab=100;var=&ab;ab=*var+10,90;执行上面的程序段后,ab的值为()。A)120B)110C)100D)90答案:B解析:[单选题]15.C语言能正确处理的指数是()。A)8.5e4288B)e-32C)123000000000D)4.5e-5.6答案:C解析:[单选题]16.为了避免在嵌套的if-else语句中产生二义性,C语言规定与else子句配对是______。A)与其缩排位置相同的if子句B)在其之后最近的不带else的if子句C)在其之前最近的不带else的同层if子句D)与其在同一行上的if子句答案:C解析:[单选题]17.以下程序有语法性错误,有关错误原因的正确说法是。main(){intG=5,k;voidprt_char();k=prt_char(G);}A)语句voidprt_char();有错,它是函数调用语句,不能用void说明B)变量名不能使用大写字母C)函数说明和函数调用语句之间有矛盾D)函数名不能使用下划线答案:C解析:[单选题]18.下列定义数组的语句中不正确的是().A)staticinta[2][3]={1,2,3,4,5,6};B)staticinta[2][3]={{1},{4,5}};C)staticinta[][3]={{1},{4}};D)staticinta[][]={{1,2,3},{4,5,6}};答案:D解析:[单选题]19.以下程序的输出是什么?main(){intx=23;do{printf(?%d?,x--);}while(!x);}该程序的执行结果是A)321B)23C)不输出任何内容D)陷入死循环答案:B解析:[单选题]20.下列四组选项中,均是不合法的用户标识符的选项是_______。A)AP_0doB)floatgoto_AC)b-agotointD)_123tempINT答案:C解析:[单选题]21.表达式(int)((double)9/2)-9%2的值是______。A)5B)4C)0D)3答案:D解析:[单选题]22.有下列程序:#include<stdio.h>Voidmain(){Intarry[]={1,3,5,7,9},i,j;For(i=0;i<4;i+=2){For(j=1;i+j<5;j++,j++)Printf("%d",arry[i+j]);}}程序执行后的输出结果是______。A)577B)357C)599D)377答案:D解析:[单选题]23.以下程序段输出结果是______。Intx=0x41;Printf("%c",x+1);A)AB)aC)BD)c答案:C解析:[单选题]24.设k和j的二进制形式分别为00101011和10010101,则k&j的结果为____。A)00000001B)10111111C)01000000D)以上都不对答案:A解析:[单选题]25.以下关于运算符优先顺序的描述中正确的是()A)关系运算符<算术运算符<赋值运算符<逻辑运算符B)赋值运算符<逻辑运算符<关系运算符<算术运算符C)算术运算符<关系运算符<赋值运算符<逻辑运算符D)逻辑运算符<关系运算符<算术运算符<赋值运算符答案:B解析:[单选题]26.若chara[10];已正确定义,以下语句中不能从键盘上给a数组的所有元素输入值的语句是().A)gets(a);B)scanf("%s",a);C)for(i=0;i<10;i++)a[i]=getchar();D)a=getchar();答案:D解析:[单选题]27.若有语句charst1[]="teacher",st2[9],*st3,*st4="teacher";,则对库函数strcpy的正确调用的是()。A)strcpy(st1,"teacher1");B)strcpy(st3,"teacher1");C)strcpy(st2,"teacher1");D)strcpy(st4,"teacher1");答案:C解析:[单选题]28.设a为整型变量,下列选项中不能正确表达数学关系:10<a<15()。A)10<a<15B)a==11||a==12C)a>10&&a<15D)!(a<=10)&&!(a>=15)答案:B解析:[单选题]29.下列选项中,不属于数据管理员(DBA)职责的是()。A)数据库维护B)数据库设计C)改善系统性能,提高系统效率D)数据类型转换答案:D解析:数据库管理员对数据库进行规划、设计、维护、监视等,其主要工作有:①数据库设计,主要是对数据模式进行设计;②数据库维护,对数据库中的数据安全性、完整性、并发控制及系统恢复、数据定期转储等进行实施与维护;③改善系统性能,不断调整内部结构,提高系统效率。答案选择D选项。[单选题]30.已有定义?structstudent{intnum;charname[10];}s={110,"Tom"},*p=&s;?,则下列语句中错误的是_________。A)Printf("%d",s.num);B)Printf("%d",(&s)->num);C)Printf("%d",&s->num);D)Printf("%d",p->num);答案:C解析:[单选题]31.以下能正确地定义整型变量a,b和c并为其赋初值5的语句是。A)inta=b=c=5;B)inta,b,c=5;C)inta=5,b=5,c=5;D)a=b=c=5;答案:C解析:[单选题]32.在程序开发过程中,把文本文件格式源程序转化为二进制格式的目标程序的过程称之为()。A)编辑B)编译C)连接D)运行答案:B解析:[单选题]33.for(i=0;i<5;i++);printf("&");该程序段执行时,输出结果为()A)&&&&&B)&&&&C)&D)有语法错误。答案:C解析:[单选题]34.下列表达式中,______满足?当x为偶数时值为真,为奇数时值为假?的要求。A)x%2==0B)x%2==1C)x%2!=0D)x%2答案:A解析:[单选题]35.深度为7的完全二叉树中共有125个结点,则该完全二叉树中的叶子结点数为()。A)62B)63C)64D)65答案:B解析:定义一棵树的根结点所在的层次为1,其他结点所在的层次等于它的父结点所在的层次加1,树的最大层次称为树的深度。完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点。本题中,前6层是满二叉树,结点个数为26-1=63,所以第7层有125-63=62个叶子结点,分别挂在第6层的左边62个结点上,所以第6层的最后1个结点为叶子结点,该完全二叉树共有62+1=63个叶子结点。答案选择B选项。[单选题]36.C程序对预处理命令行的处理是在程序执行的过程中进行的F(编译前由预处理器处理)以下说法中正确的是()A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分答案:C解析:[单选题]37.C语言程序中,当调用函数时()。A)实参和行参各占一个独立的存储单元B)实参和行参可以共用存储单元C)可以由用户指定是否共用存储单元D)计算机系统自动确定是否共用存储单元答案:A解析:[单选题]38.设有以下程序片段:switch(X){case'A':printf("A");case'B':printf("B");default:printf("error");}假设X='A',程序输出结果是()A)AB)BC)errorD)ABerror答案:D解析:[单选题]39.设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为。A)1B)2C)3D)4答案:B解析:[单选题]40.若有定义:floatx=1.5,inta=1,b=3,c=2;.則正确的switch語句是()A)switch(x){case1.0:printf("*\n");Case2.0:printf("**\n");}B)switch((int)x);{case1:printf(?*\n?);Case2.0:printf("**\n");}C)switch(a+b){case1:printf(?*\n?);Case2+1:printf("**\n");}D)switch(a+b){case1:printf("*\n");Casec:printf("**\n");}答案:C解析:[单选题]41.下列程序段的输出结果为()。Inty=1;While(y--);Printf("y=%d\n",y);A)y=-1B)y=0C)死循环D)y=9答案:A解析:[单选题]42.下列可以正确表示字符串常量的是()A)"a"B)'abc'C)"12.123"D)""答案:B解析:[单选题]43.若有变量定义语句?intm,n;?,运行时输入,则m和n的值都是10。scanf("m=%d,n=%d",&m,&n);A)1010B)10,10C)m=10n=10D)m=10,n=10答案:D解析:[单选题]44.设有以下语句:charch1,ch2;scanf("%c%c",&ch1,&ch2);若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是()。A)A和B之间用逗号间隔B)A和B之间不能有任何间隔符C)A和B之间可以用回车间隔D)A和B之间用空格间隔答案:B解析:在scanf输入整数或实数这类数值型数据时,输入的数据之间必须用空格、回车符、制表符(Tab键)等间隔符隔开,间隔符个数不限。但在输入字符型时,要求输入数据时按照一一对应的位置原样输入这些字符,即不能加逗号、回车和空格,因为这些也算是字符。%c比较特殊,它是输入单个字符,此处输入格式为?%c%c?,所以输入字符A和B时,不能间隔。答案选择B选项。[单选题]45.已有函数fun的定义?voidfun(void){printf("That'sgreat!");}?,则调用fun函数的正确形式是A)fun;B)fun();C)fun(void);D)fun(1);(答案:B解析:[单选题]46.如有表达式(w)?(-x):(++y),则其中与w等价的表达式是()。A)w==1B)w==0C)w!=1D)w!=0答案:D解析:条件表达式形式为<表达式1>?<表达式2>:<表达式3>。表达式1的值为真,结果为表达式2的值;表达式1的值为假,结果为表达式3的值。可见表达式w等价于w!=0。答案选择D选项。[单选题]47.X、Y、Z被定义为int型变量,若从键盘给X、Y、Z输入数据,正确的输入语句是______。A)INPUTX,Y,Z;B)scanf("%d%d%d",&X,&Y,&Z);C)scanf("%d%d%d",X,Y,Z);D)read("%d%d%d",&X,&Y,&Z);答案:B解析:[单选题]48.已有:chara[10]=abc345;如下输出语句中正确的写法是____。A)printf("%s",a[10]);B)printf("%c",a);C)printf("%s",a[0]);D)printf("%s",a);答案:D解析:[单选题]49.下列数据结构中,能够按照?先进后出?原则存取数据的是()。A)循环队列B)栈C)队列D)二叉树答案:B解析:栈和队列都是操作受限的线性表:栈只能在栈顶插入和删除元素,按照?先进后出?的原则组织数据;队列只能在队头删除元素,在队尾插入元素,按照?先进先出?的原则组织数据。B项,栈,按照?先进后出?的原则组织数据。A项,循环队列是队列的一种特殊形式,按照?先进先出?的原则组织数据;C项,队列,按照?先进先出?的原则组织数据。D项,二叉树属于非线性结构。答案选择B选项。[单选题]50.若有double*p,x[10];inti=5;使指针变量p指向元素x[5]的语句为()。A)p=&x[i];B)p=x;C)p=x[i];D)p=&(x+i)答案:A解析:[单选题]51.能正确表示a和b同时为正或同时为负的表达式是______。A)(a>=0||b>=0)&&(a<0||b<0)B)(a>=0&&b>=0)&&(a<0&&b<0)C)(a+b>0)&&(a+b<=0)D)a*b>0答案:D解析:[单选题]52.C语言中逻辑表达式的值为()。A)0或1B)非零值或零值C)true或falseD)'true'或'false'答案:A解析:[单选题]53.若有定义语句:inta=10;doubleb=3.14;,则表达式'A'+a+b值的类型是()。A)charB)intC)doubleD)float答案:C解析:在多目运算符相关联的运算中,如果类型不一致,系统将自动进行类型转换,使两边的类型达到一致后,再进行运算,转换的规则是由?低到高?。'A'是字符型,a是整型,b是double型。字符型数据占1个字节,整型占2个字节,doub1e型占8个字节,故三者相加后为double型,答案选择C选项。[单选题]54.如下说法不正确的是()。A)c>a+b等效于c>(a+b)B)若a,b均为真,则a||b为真C)表达式'c'&&'d'的值为0D)逻辑运算符!比逻辑运算符||的优先级高答案:C解析:[单选题]55.结构化程序设计的3种结构是()。A)顺序结构,分支结构,跳转结构B)顺序结构,选择结构,循环结构C)分支结构,选择结构,循环结构D)分支结构,跳转结构,循环结构答案:B解析:结构化程序以模块化设计为中心,认为程序设计语言仅仅使用顺序、选择和循环三种基本控制结构就可以实现任何算法功能。答案选择B选项。[单选题]56.以下程序段中的变量已正确定义:for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf("*");程序段的输出结果是()。A)**B)****C)*D)********答案:C解析:由于内层循环for(k=1;k<3;k++)后面直接跟了空语句";"所以在循环内部什么操作也不做,跳出外层循环后执行打印语句,所以打印了一个"*",选择C)。[单选题]57.下列选项中,能正确定义数组的语句是()。A)intnum[0...2008];B)intnum[];C)intN=2008;Intnum[N];D)#defineN2008Intnum[N];答案:D解析:[单选题]58.经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在微机上的值分别为()。Charx=65;Floaty=7.3;Inta=100;Doubleb=4.5;A)2,2,4,4B)1,4,4,8C)2,4,4,8D)1,2,4,4答案:B解析:[单选题]59.定义#defineGa9.8中,宏名Ga称为()A)字符串变量B)符号常量C)单精度类型变量D)字符变量答案:B解析:[单选题]60.在C#中,C#源程序文件的扩展名为()A)docB)txtC)pptD)cs答案:D解析:[单选题]61.关于return语句,下列正确的说法是()A)可以再同一个函数中出现多处B)只能在除主函数之外的函数中出现一次C)不能在主函数中出现且在其他函数中均可出现D)必须在每个函数中出现答案:A解析:[单选题]62.下面正确的说法是____。A)一个C程序只能有一个main函数。B)一个C程序只能由一个文件构成。C)一个C程序可以由多个main函数构成。D)一个C程序中可以没有主函数。答案:A解析:[单选题]63.在C语言中,数字029是一个_______。A)八进制数B)十六进制数C)十进制数D)非法数答案:D解析:[单选题]64.若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是______。A)1B)0C)2D)不知道a的值,不能确定答案:A解析:[单选题]65.以下选项中不正确的实型常量是()。A)2.607E-1B)0.8103e0.2C)-77.77D)456e-2答案:B解析:[单选题]66.20、若int类型数据占2个字节,则unsignedint类型数据的取值范围是()。A)0~255B)0~65535C)-32768~32767D)-256~255答案:B解析:[单选题]67.在C语言中,形参的缺省存储类是()。A)registerB)externC)staticD)auto答案:D解析:[单选题]68.在C#中,下列变量定义与赋值正确的是()A)inta=1.5B)floata='课程'C)chara="课程"D)chara='学'答案:D解析:[单选题]69.执行for(x=1,y=0;(y!=1)&&(x<4);x++);的结果为()。A)无限循环B)循环次数不定C)执行3次D)执行2次答案:C解析:[单选题]70.设x、y均为float型变量,则不正确的赋值语句是()。A)++x;B)x*=y-2;C)y=(x%3)/10;D)x=y=0;答案:C解析:第2部分:多项选择题,共7题,每题至少两个正确答案,多选或少选均不得分。[多选题]71.对语句?inta[10],*p=a;?,下列表述中不正确的().A)*p被赋初值为a数组的首地址B)*p被赋初值为数组元素a[0]的地址C)p被赋初值为数组元素a[1]的地址D)p被赋初值为数组元素a[0]的地址答案:ABC解析:[多选题]72.下列各语句序列中,能够且仅输出整型变量a、b中最大值的是A)if(a>b)printf("%d\n",a);printf("%d\n",b);B)printf("%d\n",b);if(a>b)printf("%d\n",a);C)if(a>b)printf("%d\n",a);elseprintf("%d\n",b);D)printf("%d\n",a>b?a:b);答案:CD解析:[多选题]73.不合法的十六进制数是().A)oxffB)0XabgC)0x11D)0x19答案:AB解析:[多选题]74.以下关于typedef的叙述正确的是()A)用typedef可以定义各种类型名,但不能用来定义变量B)用typedef可以增加新类型C)用typedef只是将已存在的类型用一个新的名字来代表D)使用typedef便于程序的通用答案:ACD解析:第3部分:填空题,共2题,请在空白处填写正确答案。[填空题]75.以下程序的运行结果是。intx;main(){x=5;cude();printf("%d\n",x);}cude(){x=x*x*x;}答案:125解析:[填空题]76.当从键盘输入18并回车后,下面程序的执行结果是。main(){intx,y,i,j,a[10];scanf("%d",&x);y=x;i=0;do{a[i++]=y%2;y=y/2;}while(y);for(j=i-1;j>=0;j--)printf("%d",a[j]);}答案:10010解析:第4部分:判断题,共8题,请判断题目是否正确。[判断题]77.数组名能与其它变量名相同。数组名后是用方括号括起来的常量表达式,不能用圆括号。A)正确B)错误答案:对解析:[判断题]78.结构体变量在内存中所占的字节数是由其各个成员所占字节的总和答案:对解析:[判断题]79.?0?是字符常量,不等于数值0。A)正确B)错误答案:对解析:[判断题]80.在C程序中,每行中只能写一条语句。()A)正确B)错误答案:错解析:[判断题]81."A"是一个字符常量A)正确B)错误答案:错解析:[判断题]82.在C程序中,用整数0表示逻辑?假?A)正确B)错误答案:对解析:[判断题]83.符号常量在C程序中必须用"="进行说明。A)正确B)错误答案:错解析://C2基本数据类型及表达式/C23常量T[判断题]84.若有说明ints[3][4]={0};则只有元素s[0][0]可得到初值0A)正确B)错误答案:错解析:第5部分:问答题,共13题,请在空白处填写正确答案。[问答题]85.判断101-200之间有多少个素数,并输出所有素数。答案:#include"math.h"main(){intm,i,k,h=0,leap=1;printf("\n");for(m=101;m<=200;m++){k=sqrt(m+1);for(i=2;i<=k;i++)if(m%i==0){leap=0;break;}if(leap){printf("%-4d",m);h++;if(h%10==0)printf("\n");}leap=1;}printf("\nThetotalis%d",h);}解析:[问答题]86.设整型变量a的初始值为5,则执行语句:a>>1;之后,a值为____。答案:5解析:[问答题]87.若输入字母C,程序输出结果为【1】();若输入字符*,程序将【2】()。答案:【1】cC|【2】等待继续输入,直到输入小写字母解析:[问答题]88.已知:charstr[]=?Hello?,数组str的长度为____。答案:6;解析:[问答题]89.数组由和构成,其数组元素的数据类型是。答案:数组名,下标,相同的解析:[问答题]90.如下程序的功能是输入16个整数存入数组,并求后8个元素值的累加和并输出。请将程序补充完整。#include?stdio.h"Intmain(){Intn,____,s=0;For(n=0;n<16;n++)Scanf(?%d?,____);For(n=____;n<____;n++)S=s+____;Printf(?s=%\n?,s);Return0;};&a[n];答案:a[16]解析:[问答题]91.描述一下函数的定义与函数的声明之间的区别?答案:函数定义:是指对函数功能的确立、包括指定函数名、函数类型、形参及其类型、函数体等,它是一个完整的、独立的函数单位。函数的声明:是把函数的名字、函数类型以及形参的个数、类型和顺序通知编译系统,以便在对包含函数调用的语句进行编译时,据此对其进行对照检查(例如函数名是否正确,实参与形参的类型和个数是否一致)解析:[问答题]92.将一个整数中的每一位上为奇数的数依

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论