您好,欢迎访问三七文档
1一.选择题1.inti=10;floatx;执行x=5/i;后x的值为___c_____。A.0.5B.0C.0.0D.1.02.以下标识符中,哪一个是C++语言的合法标识符DA)2abcdB)intC)a-2cD)_charE)#456xy3.以下C是不正确的转义字符:A)'\n'B)’\’’C)'061'D)'\0'4.执行下面的程序后#defineSQR(X)(X)*(X)voidmain(){inta=10,K=2,m=1;a/=SQR(K+m)/SQR(K+m);printf(“%d\n”,a);}输出结果是a=___B____。A.10B.1C.9D.05.现有定义charstr1=China,str2[5]={'C','h','i','l','e'};则有BA)strcmp(str1,str2)0B)strcmp(str1,str2)0C)strlen(str1)=6D)str1与str2所占存储空间大小一样6.若在程序中有一个全局标识符,名字为a1,在该程序中有一个局部标识符,名字也为a1,如果在局部标识符范围内访问全局标识符,则该全局标识符应表示为D。A.a1B.a1::C.:a1D.::a17.执行以下程序:voidmain(void){charc=0;printf(“%c\n”,c);}输出结果是_____A___。A.‘\0’B.语法错,不能执行C.0D.一个空行8.C++语言对嵌套if语句的规定是:else总是和A配对A)其之前最近的ifB)缩进位置相同的ifC)第一个ifD)其之前最近且不带else的if9.设有定义语句enumaa{add,sub,mul,div}opera;,以下对枚举变量opera的操作中,不正确的是Aopera=(enumaa)2BcinoperaCopera=add+1Dif(opera==sub)cout”OK”;10.对于下面的几个函数:voidf(intx){…}//12intf(inty){…}//2intf(inti,intj){…}//3floatk(intx){…}//4__A______是重载函数。A.4个全部B.1和4C.2和3D.3和411.以下不正确的描述是AA)在switch语句中使用break语句或continue语句的作用相同B)在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环C)break语句不能用于循环语句和switch语句之外的任何其他语句D)在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环12.定义intx=3,执行while(x){printf(“%d”,x);x--;}语句后,最后x的值为:A。A)0B)1C)3D)-113.如a=2,b=3,c=-1执行++a&&++b||++c;后,b,c的值分别是AA)3-1B)40C)30D)4-114.若有以下语句,则下面是正确的描述staticcharx[]=12345;staticchary[]={'1','2','3','4','5'};A)x数组和y数组的长度相同B)x数组长度大于y数组长度C)x数组长度小于y数组长度D)strlen(x)的值与strlen(y)的值不相等15.若inta=2,b=3,c=4;则表达式a十b—c?a十b:a十c的值为c。A.0B.1C.5D.616.C++语言中while与do-while语句A)while的循环当条件成立时执行,而do-while当条件不成立时执行B)do-while允许从循环外跳至循环体内C)do-while的循环体至少必须执行一次D)以上说法都不对17.C++语言中形参的缺省存储类别是aA)自动B)静态C)寄存器D)外部18.程序中有下面的说明和定义,则会发生的情况是A…structABC{intx;chary;}…ABCs1,s2;…A编译时错B程序将顺利编译、连接、执行C能顺利编译、连接,但不能执行D能顺利编译,但连接出错19.C++语言中的函数___D_____A)可以嵌套定义B)可以嵌套调用,不能递归调用C)不可以嵌套调用D)可以嵌套调用,不可以嵌套定义20.下列程序的运行结果为3#includeiostream.hintk=7;voidmain(){intk=3;{intk=5;k+=1;}f();k+=1;coutk;}intf(void);{k+=1;returnk;}A)8B)4C)6d)5二.填空1.(1)array是一个一维整型数组,有10个元素,前6个元素的初值是9,4,7,49,32,-5,请写出正确的说明语句。。(2)如何用赋值语句把39存入第一个元素。2.将公式√s(s-a)(s-b)(s-c)转化为C++语言表达式3.C++语言中以作为字符串终止标志.4.以下程序的输出结果是____。voidmain(void){intx=3;do{x-=2;printf(“%d\t”,x);}while(!(--x));}5.阅读下列程序,写出程序执行结果voidinv(intx[],n){intt,I,j,m=(n-1)/2;for(I=0;I=m;I++){j=n-1-I;t=x[I];x[I]=x[j];x[j]=t;}return;}4voidmain(){staticintI,a[10]={3,7,9,11,0,6,7,5,4,2};printf(“theoriginalarray:\n”);//输出可不写for(I=0;I10;I++)printf(“%d\t”,a[I]);coutendl;inv(a,10);for(I=0;I10;I++)printf(“%d\t”,a[I]);}程序输出结果为6.下程序的输出结果分别是_____和_____。intabc(void){staticintj;j+=100;return(j);}voidmain(void){printf(“%d\n”,abc());printf(“%d\n”,abc());}7.以下程序输出的第一至第三行分别是_______、______和______。voidmain(void){inti,flag,j,K,count=0;for(i=5;i30;i+=2){flag=2,j=2,K=(int)sqrt(i);while(flag&&j=K)if(i%j==0)flag=0;elsej++;if(flag){printf(“%d”,i);if(++count%3==0)printf(“\n”);}}}三.完善程序51.以下程序从读入的整数数据中,统计大于零的整数个数和小于零的整数个数.用输入零来结束输入,程序中用变量i统计大于零的整数个数,用变量j统计小于零的整数个数.请填空.voidmain(){intn,i,j;printf(输入非零的整数(输入零结束程序));i=j=0;printf(“%d”,&n);while{if(n0)i=;if(n0)j=;;}printf(i=%d,j=%d\n,i,j);}2.下面函数的功能是求N个数之和的递归函数(即1+2+3+…..+n)intsum(intn){if()return1;elsereturn;}3.下列函数实现字符串a,b的连接voidstringcat(chara[],charb[]){inti=0,j=0;while()i++;while(b[j]!='\0'){;i++;j++;};}4.斐波拉契数列中的头两个数是0和1,从第三个数开始,每个数等于前两个数的和,即:0,1,1,2,3,5,8,13,21,...等。下面这个程序就是求斐波拉契数列的前20个数。请填空。#includestdio.hvoidmain(){intf,f1,f2,i;f1=0;f2=1;printf(“%d\t%d\t”,f1,f2);for(i=3;i=20;){f=;6printf(“%d\t”,f);f1=f2;f2=;}}5.以下程序实现在N*N方阵中找出主、次对角线上的最大值、请填空。#defineN3voidmain(){intx[N][N]={1,5,7,4,2,6,4,3,8};inti,j,row=0,col=0;for(i=0;iN;i++){if(x[row][col]x[i][i]){row=i;;}j=N-(i+1);if(x[row][col]x[i][j]){row=i;;}}printf(”Themaxvalueisx[%d][%d]=%d\n”,row,col,x[row][col]);}6.该程序的作用是将一维无序数组按升序排列voidmain(){;inta[10]={4,6,2,19,5,1,11,10,2,13};sort(a);for(inti=0;i10;i++)printf(“%d”,a[i]);}voidsort(intb[]){inttemp;for(inti=0;i9;i++)for(intj=i+1;;)if(){temp=b[j];b[j]=b[j+1];;}}
本文标题:c语言测试题
链接地址:https://www.777doc.com/doc-2908949 .html