共享知识分享快乐卑微如蝼蚁、坚强似大象盛年不重来,一日难再晨。及时宜自勉,岁月不待人。C语言程序设计试题一、单项选择题(本题共25小题,每小题2分,共50分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其正确答案涂写在答题卡上。错选、多选或未选均无分。1.以下正确的C语言自定义标识符是______。A._1aB.2a_C.doD.a.122.在C语言中,错误的常数表示是_______。A.0LB.-0x6aLC.'6'D.1.234E3.53.设inta,x=2;执行语句a=x0?3*x:x=10;后,变量x的值是_______。A.1B.2C.6D.104.设有以下程序段:intx=2,y=2,z=0,a;a=++x||++y&&z++;printf(%d,%d,%d\n,x,y,z);执行后输出的结果是_________。A.2,2,0B.3,3,1C.3,2,0D.3,2,15.在C语言中,字符串\\TOP\t\65\的长度是_______。A.5B.7C.8D.126.设floatx,由键盘输入:12.45,能正确读入数据的输入语句是_________。A.scanf(%5f,&x)B.scanf(%5d,&x);C.scanf(%f,x);D.scanf(%s,&x);7.逗号表达式a=2*6,a*3,a+5的值是_________。A.12B.17C.36D.418.C语言程序中,整型常量的书写形式不包括_________。A.二进制B.八进制C.十进制D.十六进制9.在C语言中,下列运算符中结合性属于自右向左的是_________。A.&&B.-C.D.-10.设intx;,则与计算︱x︱等价的表达式是_________。A.x0?-x:xB.x0?x:-xC.x0?x:-xD.x0?-x:-x11.执行下面的程序段后,k的值是_______。intk=1,n=325;do{k*=n%10;n/=10;}while(n);共享知识分享快乐卑微如蝼蚁、坚强似大象A.3B.30C.523D.32512.表达式的值为0的是_________。A.5/5%5B.52C.!4D.0x7&&713.设inta=11,b=2;执行下述程序段后,变量a和b的值分别是_______。do{a/=b++;}while(ab);A.1,3B.1,4C.2,3D.2,414.在C语言中,下列错误的说法是_______。A.函数可以递归调用B.不允许在函数中再定义函数C.递归程序不可能用非递归算法实现D.对于continue语句,可以通过改变程序的结构而不使用它15.inta[2][3]={{1},{2,3}};,则a[1][0]的值是_________。A.0B.1C.2D.316.以下对二维数组a的正确说明是_________。.A.inta[3][];B.floata[][4];C.doublea[3][4];D.floata(3)(4);17.设chars[10]=abcd,t[]=12345;,则s和t在内存中分配的字节数分别是_______。A.6和5B.6和6C.10和5D.10和618.switch(表达式)语句中的“表达式”,允许的类型是_________。A.float,intB.float,int,charC.int,charD.char,double19.在C语言中,形参的隐含存储类别是_________。A.autoB.staticC.externD.register20.下列属于文件包含的命令是_________。A.#defineN25B.#endifC.#includestdio.hD.#else21.设inti,j;for(i=5;i;i--)for(j=0;j4;j++){…}则循环体执行次数是________。A.5B.4C.20D.无限次22.若有以下定义和语句:charstrl[]=string,str2[5];则用以复制字符串的正确方法是_______。A.strcpy(str2,Hello);共享知识分享快乐卑微如蝼蚁、坚强似大象B.strcpy(strl,Hello);C.str2=str1;D.str1=Hello;23.正确的变量定义是________。A.unsignedlongd=1000;B.floatm1=m2=10.0;C.charc1='A',c2=A;D.doublex=0.618,x=3.14;24.下面程序的输出结果是_______。#includestdio.hvoidmain(){ints,k;for(s=1,k=2;k5;k++)s+=k;printf(%d\n,s);}A.1B.9C.10D.1525.下列描述中不正确的是_______。A.字符型数组中可以存放字符串B.可以对字符型数组进行整体输入、输出C.可以对实型数组进行整体输入、输出D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值二、填空题(本题共10小题,每小题2分,共20分)请在每小题空格中填上正确答案.错填、不填均无分。26.一个C语言程序的执行起点是___________。27.设intx=3,y=5;则执行printf(%d\n,x&&y);后输出_____。28.定出公式xyxx521对应的C语言表达式______。29.若函数调用语句为f(a,b,f(a+b,a-b,b));,则函数f的参数个数是_______。30.设inta=2;,则执行a+=a*=15;后,变量a的值是_______。31.设doubley[4][5];,则数组y中元素的个数是_______。32.设intx=7,y=3,则表达式x%y+x/y的值是________。33.设chars[]={E_mail};,则执行printf(%d\n,strlen(s));后输出的值是_____。34.当执行下面程序段后,变量i的值是____________。inta,b,c,d,i,j,k;a=10;b=c=d=5;i=j=k=0;for(;ab;++b)i++;while(a++c)j++;dok++;while(ad++);35.设inta[3][4]={{1,2,5,3},{2,4,7,9},{3,6,5,8}};则表达式a[1][2]+a[2][3]的值是共享知识分享快乐卑微如蝼蚁、坚强似大象________。三、程序分析题(本题共5小题,每小题2分,共10分)36.写出下面程序的运行结果。#includestdio.hvoidmain(){intx=15;while(x20){x++;if(x/3!=0){x++;break;}elsecontinue;}printf(%d\n,x);}37.写出下面程序的运行结果。#includestdio.hvoidinv(intx[],intn){intt,i,j;for(i=0;in/2;i++){j=n-1-i;t=x[i];x[i]=x[j];x[j]=t;}}voidmain(){inti,a[5]={3,7,9,11,0};inv(a,5);for(i=0;i5;i++)printf(%d,a[i]);printf(\n);}38.写出下面程序的运行结果。(程序运行时,输入一个整数5)#includestdio.hvoidmain(){inta,b[10],c,i=0;printf(输入一个整数\n);scanf(%d,&a);while(a!=0){c=a%2;a=a/2;b[i]=c;i++;}共享知识分享快乐卑微如蝼蚁、坚强似大象for(;i0;i--)printf(%d,b[i-1]);}39.写出下面程序的运行结果。#includestdio.hvoidmain(){inta,b,i;a=b=0;for(i=0;i=10;i+=2){a+=i;b+=i+1;}printf(a=%d\n,a);printf(b=%d\n,b-11);}40.写出下面程序的运行结果。#includestdio.hinta=100;s(){staticinta=20;a++;printf(%d\n,a);}voidmain(){inti;for(i=1;i=3;i++){a++;printf(%d,a);s();}}四、程序填充题(本题共2小题,每个空格2分,共10分)给出下列程序,将横线处缺少的部分补上,使其能正确运行。41.对含有10个元素的数组a先按元素的存储次序倒序输入,再按其正序输出。#includestdio.h#define_____________/*空格1*/voidmain(){inti,a[N];for(i=N-1;________;i--)/*空格2*/共享知识分享快乐卑微如蝼蚁、坚强似大象scanf(%d,__________);/*空格3*/for(i=0;iN;i++)printf(%d\t,a[i]);printf(\n);}42.学生成绩的字每等级和分数范围如下:字母等级分数范圈A90~100B80~89C70~79D60~69E0~59其它字母输入错误输入字母等级之后,输出相应的分数范围。#includestdio.hvoidmain(){__________;/*空格4*/scanf(%c,&score);switch(score){case'A':printf(A:90~100\n);break;;case'B':printf(B:80~89\n);break;case'C':printf(C:70~79\n);break;case'D':printf(D:60~69\n);break;case'E':printf(E:0~59\n);break;__________:printf(输入错误\n);/*空格5*/}}五、程序修改题(本题共2小题,共10分)请在注释“ERROR”处修改程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序结构!43.用指针变量输出数值。#includestdio.hvoidmain(){inta[]={1,2,3,4,5,6,7,8,9,10},*p;*p=a;/*ERROR1*/printf(%f\n,*p+9);/*ERROR2*/}44.利用函数求两个整数的最大公约数。#includestdio.hvoidmain()共享知识分享快乐卑微如蝼蚁、坚强似大象{intgcd(inta,intb);inta,b,abd;printf(intputdataab:\n);scanf(%d,%d,a,b);/*ERROR3*/abd=gcd(a,b);printf(abd=%d\n,abd);}intgcd(intx,inty);/*ERROR4*/{intt;if(xy){t=x;x=y;y=t;}while(y!=0){t=x%y;x=y;x=t;}/*ERROR5*/returnx;}共享知识分享快乐卑微如蝼蚁、坚强似大象参考答案:==========一、单项选择题1.A2.D3.B4.C5.B6.A7.B8.A9.B10.B11.B12.C13.B14.C15.C16.C17.D18.C19.A20.C21.C22.B23.A24.C25.C二、填空题26.主函数27.128.1.0/2*(x+sqrt(x+y)/(5*x))29.330.6031.2032.333.634.535.15三、程序分析题36.1737.01197338.10139.a=30B=2540.101211022210323四、程序填充题41.N10、i=0、&a[i]42.charscore、default五、程序修改题43.*p=a;p=a;%f%d44.scanf(%d,%d,a,b)scanf(%d,%d,&a,&b)intgcd(