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

下载本文档

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

文档简介

试卷科目:C语言开发基础C语言开发基础(习题卷55)PAGE"pagenumber"pagenumber/SECTIONPAGES"numberofpages"numberofpagesC语言开发基础第1部分:单项选择题,共70题,每题只有一个正确答案,多选或少选均不得分。[单选题]1.对下列二叉树进行前序遍历的结果为()。A)ABCDEFGHB)ABDGEHCFC)GDBEHACFD)GDHEBFCA答案:B解析:遍二叉树的前序遍历过程:先访问根结点,再前序遍历左子树,最后前序遍历右子树。答案选择B选项。[单选题]2.#includeintstreql(char*str1,char*str2){while((*str1==*str2)&&(*str1)){str1++;str2++;}return((*str1==NULL)&&(*str2==NULL));}voidmain(){printf("%d",streql("abc","Abc"));}程序的运行结果是()。A)0B)1C)2D)3答案:A解析:[单选题]3.下列语句中,符合C语言语法的赋值语句是______。A)a=7+b+c=a+7;B)a=7+b++=a+7;C)a=7+b,b++,a+7D)a=7+b,c=a+7;答案:D解析:[单选题]4.在for循环中,()是循环初始化表达式,主要作用是对循环变量置初值。A)表达式1B)表达式2C)表达式3D)表达式4答案:A解析:[单选题]5.下面的程序中()有错误。1)#include<stdio.h>132)main()3){4)floata[3]={0.0};5)inti;6)for(i=0;i<3;i++)7)scanf(''%D'',&a[i]);8)for(i=1;i<3;i++)a[0]=a[0]+a[i];9)printf(''%f\n'',a[0]);}A)第4行B)第6行C)第7行D)第8行答案:C解析:[单选题]6.已有定义?inti,a=1;unsignedj;?,则下列语句执行时会出现无限循环的语句是A)for(j=15;j>0;j-=2)a++;B)for(j=0;j<15;j+=2)a十十;C)for(i=0;i<15;i+=2)a++;D)for(i=15;i>0;i-=2)a++;答案:A解析:[单选题]7.main(argc,argv)中形参argv的正确声明形式应当为__。A)Char*argv[]B)Charargv[]C)Charargv[][]D)Char*argv答案:A解析:[单选题]8.在C语言中,形参的缺省存储类是().A)autoB)registerC)staticD)extern答案:A解析:[单选题]9.若有以下说明:intia[12]={1,2,3,4,5,6,7,8,9,10,11,12};charch='a',cg=97;则数值为4的表达式是A)ia[cg-ch]B)ia[4]C)ia['d'-'c']D)ia['d'-ch]答案:D解析:[单选题]10.C程序由函数构成,函数则由函数的首体和()两部分组成A)复合语句B)结构体C)联合体D)函数体答案:D解析:[单选题]11.下列四组选项中,正确的C语言标识符是()。A)%xB)a+bC)a123D)123答案:C解析:[单选题]12.C语句中,至少执行一次循环体的语句是()A)for语句B)do~while语句C)while语句D)goto语句答案:B解析:[单选题]13.要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。能正确表示此功能的函数是()。A)voidfuna(int*x,int*y){int*p;*p=*x;*x=*y,*y=*p;}B)voidfunb(intx,inty){intt;t=x;x=y;y=t;}C)voidfunc(int*x,int*y){*x=*y;*y=*x;}D)voidfund(int*x,int*y){*x=*x+*y;*y=*x-*y;*x=*x-*y;}答案:D解析:[单选题]14.在C语言中,调用函数除函数名外,还必须有()。A)函数预说明B)实际参数C)()D)函数返回值答案:C解析:[单选题]15.intk=3;while(k=2)k--;该循环的循环体执行的次数为____。A)0B)无限循环C)2D)3答案:B解析:[单选题]16.a=1,b=3,c=5,d=4时执行完下面一段程序后x的值是()If(a<b)If(c<d)x=1;Elseif(a>c)If(b<d)x=2;Elsex=3;Elsex=6;Elsex=7;A)1B)2C)3D)6答案:D解析:[单选题]17.若有定义:inta[2][3];则合法引用数组元素的是()。A)a[0][0]B)a[2][1]C)a[][3]D)a[1][3]答案:A解析:[单选题]18.以下程序段中,while循环执行的次数是()Intk=0;While(k=1)k++;A)无限次B)有语法错,不能执行C)一次也不执行D)执行一次答案:A解析:[单选题]19.C语言中下列叙述正确的是______。A)不能使用do-while语句构成循环B)do-while语句构成的循环,必须用break语句才能退出C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环答案:D解析:[单选题]20.在C语言中,要求参加运算的数必须是整数的运算符是()。A)/B)!C)%D)==答案:C解析:[单选题]21.数据库技术的根本目标是()。A)数据存储B)数据共享C)数据查询D)数据管理答案:B解析:数据库的根本目标是数据能够被各个应用程序所共享,答案选择B选项。[单选题]22.有以下程序,其中函数f的功能是将多个字符串按字典顺序排序#include<string.h>Voidf(char*p[],intn){char*t;inti,j;For(i=0;i<n-1;i++)For(j=i+1;j<n;j++)If(strcmp(p[i],p[j])>0){t=p[i];p[i]=p[j];p[j]=t;}}Main(){char*p[5]={"abc","aabdfg","abbd","dcdbe","cd"};F(p,5);Printf("%d\n",strlen(p[1]));}程序运行后的输出结果是______。A)2B)3C)6D)4答案:D解析:本题经过排序后,得到第二个字符串是"abbd",所以输出结果是4。[单选题]23.关于C语言的描述正确的是____。A)C语言是面向对象的程序设计语言B)C语言无法实现结构化的程序设计C)C语言程序只能在VC++6.0环境下运行D)C语言支持结构化的程序设计方法答案:D解析:[单选题]24.以下错误的描述是:函数调用可以()。A)出现在一个表达式中B)出现在执行语句中C)做为一个函数的形参D)做为一个函数的实参答案:C解析:题号:55823[单选题]25.以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空。#include<iostream>Usingnamespacestd;Voidfindmax(int*s,intt,int*k){intp;for(p=0,*k=p;p<t;p++)if(s[p]>s[*k]);}Intmain(){inta[10],i,k;for(i=0;i<10;i++)cin>>a[i]findmax(a,10,&k);cout<<k<<","<<a[k]<<endl;return0;}A)k=pB)*k=p-sC)k=p-sD)*k=p答案:D解析:[单选题]26.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是().A)地址传递B)单向值传递C)由实参传给形参,再由形参传回实参D)传递方式由用户指定答案:B解析:[单选题]27.下述程序段的输出结果是()。intx=3;do{printf(''%d'',x-=2);}while(!(--x));A)1B)30C)1-2D)死循环答案:C解析:[单选题]28.取余运算符%两侧运算对象的数据类型____。A)只能是0或非0正数B)只能是整型或字符型数据C)可以是任何类型的数据D)可以是整型或浮点型数据答案:B解析:[单选题]29.在C#中,以下运算优先级最高的是()A)+B)++C)==D)&&答案:B解析:[单选题]30.设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是______。A)if(x++);B)if(x>y&&y!=0);C)if(x>0)x--D)if(y<0){;}elsey++;elsex++;答案:C解析:本题考查的是if语句。if后表达式两侧的圆括号不可少,最后是一条语句或是用花括号括起来的一组语句。选项A和B是在表达式后跟了一条空语句,选项D是在表达式后跟了一组空语句,选项C中x--是表达式而不是语句,所以在编译时会出现错误信息。[单选题]31.设已定义chars[]="\"Name\\Address\023\n";,则字符串所占的字节数是()。A)19B)16C)18D)14答案:B解析:[单选题]32.分析下列程序,写出程序运行结果A)acbcabcB)aabcabcC)aabbccabcD)Acbbcabc答案:C解析:[单选题]33.下面能作为软件需求分析工具的是()。A)PAD图B)程序流程图C)甘特图D)数据流程图(DFD图)答案:D解析:软件需求分析方法包括结构化分析方法和面向对象的分析方法两大类,前者常用工具为数据流图(DFD)、数据字典(DD)、判定表、判定树等。故D项正确。A项是过程设计工具。B项是软件功能实现时设计图。C项是项目管理中的一种项目进度规划工具。答案选择D选项。[单选题]34.16位的二进制数可以表示的整数的范围是()。A)[-32768,32768]B)[-32767,32768]C)[-32768,32767]D)[-32767,32767]答案:C解析:[单选题]35.下面程序执行后的输出结果是()。A)6B)9C)8D)7答案:A解析:[单选题]36.若inta=2,则执行完表达式a-=a+=a*a后,a的值是()A)-4B)-8C)0D)-2答案:C解析:[单选题]37.有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是()。A)132(回车)B)1,3,2(回车)C)a=1b=3c=2(回车)D)a=1,b=3,c=2(回车)答案:D解析:[单选题]38.若已定义:charx;正确判断x中字符是大写英文字母的逻辑表达式为()。A)'A'<=x<='Z'B)x>=A&&x<=ZC)x>='A'&&x<='Z'D)x>="A"&&x<="Z"答案:C解析:输入字符时,需要用单引号[单选题]39.不可以赋值给x变量的常量是()Doublex;scanf("%lf",&x);A)100000B)123C)5.8D)"abc"答案:D解析:[单选题]40.下面程序执行后的输出结果是()。A)20B)19C)21D)18答案:D解析:[单选题]41.执行下面的程序后变量a的值为()。voidmain(){inta,b;for(a=1,b=1;a<=100;a++){if(b>10)break;if(b%3==1){b+=3;continue;}b-=3;}}A)5B)6C)7D)8答案:A解析:[单选题]42.在缺省情况下,标准C的编译系统中预定义的标准输出流stdout直接连接的设备是_________。A)软盘B)硬盘C)键盘D)显示器答案:D解析:[单选题]43.下列选项中可用作变量名的是A)CaseB)a-bC)$cdD)2ab答案:A解析:[单选题]44.若有赋值语句x=1,y=6;,则表达式x&&y的值是____。A)1B)3C)5D)7答案:A解析:[单选题]45.有下列程序程序执行后的输出结果是()A)11B)43C)57D)53答案:D解析:函数f是一个递归函数,当x>=2时递归调用自身,返回值为:x*f(x-1)+(x-1)f(x2),当x<2时,返回值为1main函数中,调用函数f传入4,所以y的值是f(4)F(4)等价于4*f(3)+3*f(2)F(3)等价于3*f(2)+2f(1)F(2)等价于2*f(1)+1f(0)F()f(1)等价于1综上:f(2)等于3,f(3)等于11,f(4)等于53,本题答案D[单选题]46.有如下程序程序运行后的输出结果是()A)5B)123456C)012345D)01234答案:C解析:convert()函数首先将形参ch输出,然后在ch的ASCI码小于5时,递归调用自身,传入ch+1这个字符;main函数调用convert()函数,传入字符0,所以程序输出:012345,所以本题答案为C[单选题]47.设有以下说明语句Structex{intx;floaty;charz;}example;则下面的叙述中不正确的是()。A)struct是定义结构体类型的关键字B)example是结构体类型名C)x,y,z都是结构体成员名D)ex是结构体类型名答案:B解析:[单选题]48.若已定义intx=5,y=9,z;语句z=x>=y;运行后z的值为()。A)1B)5C)0D)9答案:C解析:x>=y为假,所以等于0,将0值赋值给z[单选题]49.如果inta=2,b=3,c=0,下列描述正确的是A)a>b!=c和a>(b!=c)的执行顺序是一样的B)!a!=(b!=c)表达式的值为1C)a||(b=c)执行后b的值为0D)a&&b>c的结果为假答案:B解析:[单选题]50.有以下程序(其中k的初值为八进制数):#includemain(){intk=011;printf("%d\n",k++);}程序运行后的输出结果是()。A)12B)11C)10D)9答案:D解析:整型变量k的值?011?是用八进制表示的,即十进制的?9?,而输出格式为%d,即十进制格式,所以输出为?9?,然后k自增1。答案选择D选项。[单选题]51.以下关于c语言程序中函数的说法正确的是:()A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义不可以嵌套,但函数的调用可以嵌套C)函数的定义和调用均不可以嵌套D)函数的定义和调用都可以嵌套答案:B解析:[单选题]52.逗号表达式?(a=3*5,a*4),a+15?的值是_____。A)15B)60C)30D)75答案:C解析:[单选题]53.C语言中,double类型数据占().A)1个字节B)2个字节C)4个字节D)8个字节答案:D解析:[单选题]54.已定义如下变量Intnum;CharchFloatx;正确从键盘输入上述变量的值的语句是()A)scanf(?%c%d%f?,num,ch,x);B)scanf(?%d%c%f?,num,ch,x);C)scanf(?%d%c%f?,&num,&ch,&x);D)scanf(?%c%d%f?,&num,&ch,&x);答案:C解析:[单选题]55.下列各语句定义了数组,其中哪一个是不正确的()。A)ints_1[5],s_2[4][3];B)floatx,a[4][5];C)charstring[]="hello!";D)intx(10),y(10);答案:D解析:[单选题]56.设有说明:doubley=0.5,z=1.5;intx=10;则能够正确使用C语言库函数的赋值语句是。A)z=exp(y)+fabs(x);B)y=log10(y)+pow(y);C)z=sqrt(y-z);D)x=(int)(atan2((double)x,y)+exp(y-0.2));答案:D解析:[单选题]57.相同结构体类型的变量之间,可以()。A)相加B)赋值C)比较大小D)地址相同答案:B解析:[单选题]58.以下选项中函数形参不是指针的是A)fun(int*a){…}B)fun(inta[10]){…}C)fun(int&p){…}D)fun(intp[]){…}答案:C解析:[单选题]59.对以下for循环,叙述正确的是()。_x000D_for(x=0,y=0;(y!=123)&&(xA)是无限循环B)循环次数不定C)执行了4次D)执行了3次答案:C解析:[单选题]60.设正x、y均为整型变量,且x=10y=3,则以下语句的输出结果是()。printf("%d,%d\n",x--,--y);A)10,3B)9,3C)9,2D)10,2答案:D解析:[单选题]61.指针s所指字符串的长度为______。Char*s="\t1Name\\Address\n";A)19B)15C)18D)说明不合法答案:B解析:[单选题]62.以下4个选项,不能看作一条语句的是______。A){;}B)a=0,b=0,c=0;C)if(a>0);D)if(b==0)m=1;n=2;答案:D解析:[单选题]63.下列不属于C语言关键字的是()。A)defaultB)registerC)enumD)external答案:D解析:[单选题]64.若变量已正确定义,执行语句scanf("%d,%d,%d",&k1,&k2,&k3);时,()是正确的输入.A)2030,40B)203040C)20,3040D)20,30,40答案:D解析:[单选题]65.在C语言中,如果对函数类型未加说明,则函数的隐含类型为()。A)doubleB)voidC)intD)char答案:C解析:[单选题]66.执行下面的程序段Intx=5;Charz='A';IntB;B=((x&15)&&(z<'a'));后,B的值为______。A)0B)1C)2D)3答案:B解析:[单选题]67.函数调用语句f((s1,s2,s3),(s4,s5,s6,s7));中参数的个数是()。A)2B)3C)6D)7答案:A解析:[单选题]68.若有定义:inta=1,b=2,c=3,d=4,m=2,n=2;,则执行(m=a>b)&&(n=c>d)后n的值是()A)4B)3C)2D)1答案:C解析:对于表达式:(m=a>b)&&(n=c>d),首先执行m=a>b,由于a、b的值分别为:1,2,所以a>b的值为0,m的值为0,又由于逻辑与运算符&&有短路原则,第一个表达式的值为假,所以整个表达式的值已经确定为假,第二个表达式不会被执行,n的值依然是2,本题答案:C[单选题]69.有如下嵌套的if语句if(a<b)if(a<c)k=a;elsek=c;elseif(b<c)k=b;elsek=c;以下选项中与上述if语句等价的语句是()。A)k=(a<b)?((b<c)?a:b):((b>c)?b:c);B)k=(a<b)?((a<c)?a:c):((b<c)?b:c);C)k=(a<b)?a:b;k=(b<c)?b:c;D)k=(a<b)?a:b;k=(a<c)?a:c;答案:B解析:[单选题]70.以下选项中合法的标识符是A)_11B)43466C)1_1D)1__答案:A解析:第2部分:多项选择题,共4题,每题至少两个正确答案,多选或少选均不得分。[多选题]71.以下叙述中正确的是()A)C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句答案:ABD解析:[多选题]72.143、以下不正确的函数定义是()。A)doublefun(intx,inty){z=x+y;returnz;}B)doublefun(intx,y)intz;returnz;}C)fun(x,y){intx,y;doublez;z=x+y;returnz;}D)doublefun(intx,inty){doublez;returnz;}答案:ABC解析:[多选题]73.判断a的奇偶性,奇数时表达式为真,偶数时表达式为假,以下能满足要求的表达式是()。A)a%2==1B)!(a%2)==0C)a%2D)!(a%2==0)答案:ABCD解析:[多选题]74.以下对一维整型数组a的正确声明是().A)inta[10];B)intn=10,a[n];C)intn;scanf(?%d?,&n);inta[n];D)#defineSIZE10inta[SIZE];答案:AD解析:第3部分:填空题,共5题,请在空白处填写正确答案。[填空题]75.下面程序的功能是求1111的个、十、百位上的数字之和。请分析程序填空。#include<stdio.h>main(){inti,s=1,m=0;for(i=1;i<=11;i++)s=s*11%1000;do{m+=【1】;s=【2】;}while(s);printf("m=%d\n",m);}答案:【1】s%10【2】s/10解析:[填空题]76.以下程序的功能是根据输入的"y"("Y")与"n"("N"),在屏幕上分别显示出"ThisisYES."与"ThisisNO."。请填空。#include<stdio.h>voidYesNo(charch){switch(ch){case'y':case'Y':printf("\nThisisYES.\n");【1】;case'n':case'N':printf("\nThisisNO.\n");}}main(){charch;printf("\nEnterachar'y','Y'or'n','N':");ch=【2】;printf("ch:%c",ch);YesNo(ch);}答案:【1】break【2】getchar()解析:第4部分:判断题,共8题,请判断题目是否正确。[判断题]77.逻辑位运算是将参与运算的数据中每个二进制位上的0或1看成逻辑值,逐位进行逻辑运算,运算结果为整数。A)正确B)错误答案:对解析:[判断题]78.getchar函数可以从终端接受一个字符答案:对解析:[判断题]79.在C语言中,对二维数组进行初始化时,可以把初始值放在一个大括号内。A)正确B)错误答案:错解析:[判断题]80.在C语言程序中,在main函数中定义的变量为全局变量。A)正确B)错误答案:错解析:[判断题]81.设有变量定义chars[]=?hello?,则数组中有6个元素。A)正确B)错误答案:对解析:[判断题]82.194、C语言标准输入操作中,gets()函数一次只可读取一个字符。A)正确B)错误答案:错解析:[判断题]83.在C语言中,在交换两个数必须使用中间变量答案:错解析:[判断题]84.如果在同一个源文件中,外部变量与局部变量同名,则在外部变量的作用范围内,局部变量被?屏蔽?,即它不起作用答案:错解析:第5部分:问答题,共13题,请在空白处填写正确答案。[问答题]85.若有定义?intb[]={2,4,6,8,10,12};?则*(b+5)的值是()。答案:12解析:[问答题]86.预处理命令以开头。答案:#解析:[问答题]87.以下程序的输出结果是_____________。Main(){intx=5,y=6;Printf("%dA%d",x――,――y);}答案:5A5解析:/运行结果/C2自增自减运算符T[问答题]88.下列程序的运行结果是【1】。main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf("%d\n",d*y);}答案:【1】0解析:这里x和y均为int型变量,在计算y时,x取值1而不是1.2,(1+3.8)除5.0等于0,而不是0.96,既然y值为0,d*y的值也就为0。[问答题]89.若s是int型变量,且s=6,则下面表达式的值是【1】.S%2+(s+1)%2答案:1解析:[问答题]90.有以下程序Include<string.h>#Main(){chara[]={'a','b','c','d','e','f','g','h','\0'};intj;J=strlen(a);Printf("%d\n",j);}程序运行后的输出结果是______。答案:8解析:/运行结果/C7字符串函数T[问答题]91.C语言中与指针有关的两个运算符是______与*。答案:&解析:/基本理论/C8指针/C82指针与运算符T[问答题]92.C语言中,数组名是一个不可变的【1】量,不能对它进行加减和赋值运算.答案:地址解析:[问答题]93.在C语言中,按函数在程序中出现的位置可分为以下三种调用方式:函数语句、函数表达式和函数__________。答案:参数解析:/基本理论/C6函数与编译预处理

温馨提示

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

最新文档

评论

0/150

提交评论