您好,欢迎访问三七文档
第1页共6页一、选择题(每题2分,共40分)1、C语言源程序的基本单位是()A.程序行B.语句C.函数D.字符2、C语言规定:在一个源程序中,main函数的位置()。A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后3、在下列字符列中,合法的标识符是()A.p12&.aB.stud_100C.water$12D.88sum4、在C语言中,要求运算的数必须是整数的运算符是()A./B.!C.%D.==5、设有语句inta=3;则执行了语句a+=a-=a*a;后,变量a的值是()A、3B、0C、9D、-126、设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=ab)&&(n=cd)后n的值为()A、1B、2C、3D、47、执行下列程序时输入:1234567,程序的运行结果是()main(){intx,y;scanf(“%2d%*2c%1d”,&x,&y);printf(“%d\n”,x+y);}A.17B.46C.15D.98、下述程序的输出结果是()#includestdio.hvoidmain(){intx=-1,y=4;intk;k=++x=0&&!(y--=0);printf(%d,%d,%d,k,x,y);}A.0,0,3B.0,1,2,C.1,0,3,D.1,1,29、为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if10、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是()main(){intx;scanf(“%d“,&x);if(x++5)printf(“%d”,x);elseprintf(“%d\n”,x--);}A.7和5B.6和3C.7和4D.6和411、若变量c为char类型,能正确判断出c为小写字母的表达式是()A.'a'=c='z'B.(c='a')||(c='z')C.('a'=c)and('z'=c)D.(c='a')&&(c='z')12、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是。if(xy)z=x;x=y;y=z;A.x=10,y=20,z=30B.x=20,y=30,z=30第2页共6页C.x=20,y=30,z=10D.x=20,y=30,z=2013、以下程序的输出结果为main(){inti,f1,f2;f1=f2=1;for(i=0;i4;i++){printf(“%d%d”,f1,f2);f1+=f2;f2+=f1;}}A.12345678B.1123581321C.1135791113D.1357911131514、以下程序段()。x=-1;do{x=x*x;}while(!x);A.是死循环B.循环执行二次C.循环执行一次D.有语法错误15、执行语句for(i=1;i++4;);后变量i的值是()。A.3B.4C.5D.不定16、在定义inta[10];之后,对a的引用正确的是()。A.a[10]B.a[6.3]C.a(6)D.a[10-10]17、在定义inta[5][6];后,第10个元素是()。A.a[2][5]B.A[2][4]C.a[1][3]D.a[1][5]18、定义如下变量的数组:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};则下列语句的输出结果是()for(i=0;i3;i++)printf(“%d”,x[i][2-i]);A.159B.147C.357D.36919、在C语言中,若对函数类型未另显示说明,则函数的隐含类型是()类型。A.voidB.doubleC.intD.char20、设int*p,i;以下正确的语句是()。A.*p=10;B.i=p;C.i=*p;D.p=2*p+1;二、填空题(每空1分,共10分)1、结构化设计中的三种基本结构是_________、__________、____。2、C语言源程序文件的后缀是___________,经过编译后生成文件的后缀是___________,经过链接后生成文件的后缀是____________。3、定义intx,y;执行y=(x=1,++x,x+2);语句后,y的值是___________。4、若执行以下程序段:inta=1,b=2,m=2,n=2;(m=ab)&&++n;则n的值是______________。5、下述语句执行后,intk=1;while(k++10);变量k的值是____________。6、定义如下变量的数组:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i3;i++)printf(“%d”,x[i][2-i]);则上列语句的输出结果是____________。三、补充完整程序(每题5分,共20分)1、已知能被4整除而不能被100整除的或者能被400整除的年份是润年,第3页共6页则判断某一年是否是润年的程序如下,请填空:main(){intyear,leap;scanf(“%d”,&year);if(①)leap=1;elseleap=0;if(②)printf(“是润年”);elseprintf(“不是润年”);}2、用辗转相减法求两个正整数m和n的最大公约数。main(){intm,n;________①_______;while(m-n!=0)if(mn)____②_____;else_____③_____;printf(gcd(m,n)=%d\n,m);}3、计算1+1/2+1/4+…+1/50的值,并显示出来。main(){inti=2;floatsum=1.0;while(i=①){sum+=1/②;i+=2;}printf(“sum=%f\n”,sum);}4、利用一维数组求显示fibonacci数列的前20项,每行显示5个数,每个数宽度5位,即:0,1,1,2,3,5,8,13……。main(){inti;intx[20]=________①__________;for(i=2;i20;i++)______②_______;for(i=0;i20;i++){if(i%5==0)printf(“\n”);_______③_________;}printf(“\n”);}四、编程题(7+8+7+8,共30分)1、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?2、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,求1000以内满足条件的数。第4页共6页3、输出打印九九乘法表。4、一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。第5页共6页一、选择题(每题2分,共40分)1、C2、C3、B4、C5、D6、B7、A8、C9、C10、A11、D12、B13、B14、C15、C16、D17、C18、C19、C20、B二、填空题(每空1分,共10分)1、顺序结构、选择结构、循环结构2、.c,.obj,.exe3、44、25、116、357三、补充完整程序(每题5分,共20分)1、①year%4==0&&year%100!=0||year%400==0②leap2、①scanf(“%d%d”,&m,&n)②m=m-n③n=n-m3、①50②i4、①{0,1}②x[i]=c[i-1]+x[i-2]③printf(“%5d”,x[i])四、编程题(7+8+7+8,共30分)1、main(){inti,j,k;printf(\n);for(i=1;i5;i++)/*以下为三重循环*/for(j=1;j5;j++)for(k=1;k5;k++){if(i!=k&&i!=j&&j!=k)/*确保i、j、k三位互不相同*/printf(%d,%d,%d\n,i,j,k);}}2、#includemath.hmain(){longinti,x,y,z;for(i=1;i100000;i++){x=sqrt(i+100);/*x为加上100后开方后的结果*/y=sqrt(i+268);/*y为再加上168后开方后的结果*/if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/printf(\n%ld\n,i);}}3、#includestdio.hmain(){inti,j,result;printf(\n);for(i=1;i10;i++){for(j=1;j10;j++){result=i*j;printf(%d*%d=%-3d,i,j,result);/*-3d表示左对齐,占3位*/}printf(\n);/*每一行后换行*/}}4、main(){longge,shi,qian,wan,x;第6页共6页scanf(%ld,&x);wan=x/10000;qian=x%10000/1000;shi=x%100/10;ge=x%10;if(ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/printf(thisnumberisahuiwen\n);elseprintf(thisnumberisnotahuiwen\n);}
本文标题:C语言试卷及答案
链接地址:https://www.777doc.com/doc-6694544 .html