C语言程序设计试题(第2套)一、单项选择题(45分,每题3分)1.构成一个C程序的是_______。A、一个主函数和若干个非主函数B、若干个主函数和若干个非主函数C、一个主函数和最多一个非主函数D、若干个主函数和最多一个非主函数2.以下选项中合法的字符常量是_______。A、BB、'B'C、68D、'\B'3.在C语言中,不合法的实数是_______。A、1.23B、e-5C、3.245E3D、-.1874.已知a是int型变量,下面不正确的赋值语句是_______。A、a=65;B、a=1.2;C、a=a;D、a='A'+32;5.广义地说,为解决一个问题而采取的方法和步骤,称为_______。A、迭代B、增量C、递归D、算法6.以下叙述中正确的是_______。A、C程序中注释部分可以出现在程序中任意合适的地方B、花括号{和}只能作为函数体的定界符C、构成C程序的基本单位是函数,所有函数名都可以由用户命名D、分号是C语句之间的分隔符,不是语句的一部分7.若w、x、y、z、k均为int类型变量,则执行下面语句后的k的值是_______。w=1;x=2;y=3;z=4;k=(wx)?w:x;k=(ky)?k:y;k=(kz)?k:z;A、1B、2C、3D、48.以下程序段,说法正确的是_______。x=-1;do{x=x*x;1}while(!x);A、是死循环B、循环执行二次C、循环执行一次D、有语法错误10.若i、j已定义为int型,则以下程序段中,循环体的总的执行次数为_______。for(i=5;i0;i--)for(j=0;j4;j++){n=n+1;}A、20B、24C、25D、3011.以下程序编译、运行的结果是A、5,5B、5.0,5.0C、5.05.0D、55#defineMIN2#defineMAX7main(){printf(%d,%d\n,MIN+3,MAX-MIN);}12.下列符号中可以作为函数名的是_______。A、x—aB、sysfC、5acD、$bc13.以下正确的函数形式是_______。A、doublefun1(intx,inty)B、fun1(intx,y){z=x+y;returnz;}{intz;returnz;}C、fun1(x,y){intx,y;doublez;z=x+y;returnz;}D、doublefun1(intx,inty){doublez;z=x+y;returnz;}14.以下程序的输出结果是A、20B、30C、21D、31main(){inta[5]={10,20,30,40,50},*p;p=&a[1];2printf(%d,*p++);}15.修改高级语言源程序的是_______。A、调试程序B、连接程序C、编译程序D、编辑程序二.程序填空题(20分,每空2分)1.实现以下数学关系-1(x0)y=0(x=0)1(x0)的程序如下,请填空。main(){floatx;inty;scanf(%f,&x);if(①)y=-1;if(x==0)y=0;if(②)y=1;printf(%d\n,y);}2.以下函数用以求x的y次方,y为正整数。请填空。doublefun(doublex,doubley){inti;doublep=1;for(i=1;i③;i++)p=④;return(p);}3.求数组所有元素的积,请填空。main(){ints,i,a[4]={1,2,3,4};s=⑤;for(i=0;i4;i++)s=⑥;printf(%d\n,s);5.将以下含有switch语句的程序段改写成对应的含有非嵌套if语句的程序段,请填空。3含有switch语句的程序段:ints,t,m;t=(int)(s/10);switch(t){case10:m=5;break;case9:m=4;break;case8:m=3;break;case7:m=2;break;case6:m=1;break;default:m=0;}含有非嵌套if语句的程序段:ints,m;if((s110)&&(s=100))m=5;if((s100)&&(s=90))m=4;if((s90)&&(s=80))m=3;if((s80)&&(s=70))⑨;if((s70)&&(s=60))⑩;if((s60)||(s=110))m=0;三.程序运行结果题(20分,每题4分)阅读下列各程序,将程序编译、运行输出的结果写在题目右边。1.写出程序运行的结果:main(){floata=2.5,b=3.5;intx=3,y=2,p;p=(x+y)%2+(int)a/(int)b;printf(p=%d\n,p);}2.写出程序运行的结果:main(){inti,j;i=2;j=4;printf(%d,%d\n,i,j);printf(%d,%d\n,i++,j--);}3.写出程序运行的结果:main(){intnum=0;4while(num=2){num++;printf(“%d\n”,num);}}四、程序设计题(30分,每题10分)认真阅读题目,按要求编写完整的C语言程序。1.输入圆的半径r,求圆周长L,圆面积s。要求用scanf输入数据,再计算,然后输出计算结果。圆周率PI取3.14。2.给出一个大于0的百分制整数成绩,要求输出成绩等级“A”、“B”、“C”、“D”、“E”。大于或等于90分为“A”,80~89分为“B”,70~79分为“C”,60~69分为“D”,小于60分为“E”。3.编写一个循环结构的程序,求数列前20项之和:———————————————————————————本套题的参考答案:一.单项选择题(30分,每题2分)1A6A11A2B7A12B3B8C13D4C9B14A5D10A15D二.程序填空题(20分,每空2分)①x0②x0③=y④p*x⑤1⑥s*a[i]⑦4⑧arr[i][j]⑨m=2⑩m=1三.程序阅读题(20分,每题4分)1p=122,43143216545-5,-12,-72,4253四.1.本题10分。main(){floatPI,r,L,s;printf(Pleaseenterr:\n);scanf(%f,&r,);PI=3.14;L=2*PI*r;s=PI*r*r;printf(L=%f\n,L);printf(s=%f\n,s);}2.本题10分。main(){intp;scanf(%d,&p);switch(p/10){case10:case9:printf(A\n″);break;case8:printf(B\n″);break;case7:printf(C\n″);break;case6:printf(D\n″);break;default:printf(E\n″);break;}}3.本题10分。main(){inti,t=1;floatt=1.0,s=0.0,sum;for(i=1;i=20;i++){t=(i+1)*1.0/i;s=s+t;}printf(sum=%f\n,s);}