精心整理2019年9月C语言程序设计一、选择题(共40分,每小题2分)1、以下叙述不正确的是()A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面2、下列四个选项中,是不合法的用户标识符的选项是()A、abcB、12ACC、sunD、A23、设有语句inta=4;则执行了语句a+=a-=a*a后,变量a的值是()A、-24B、0C、4D、164、下列运算符中优先级最高的是()A、B、+C、&&D、==5、在C语言中,运算对象必须是整型数的运算符是()A、%B、/C、%和/D、+6、以下关于运算符的优先顺序的描述正确的是()A、关系运算符算术运算符赋值运算符逻辑与运算符B、逻辑与运算符关系运算符算术运算符赋值运算符C、赋值运算符逻辑与运算符关系运算符算术运算符D、算术运算符关系运算符赋值运算符逻辑与运算符7、在C语言中,如果下面的变量都是int类型,则输出的结果是()精心整理2019年9月sum=pad=5;pAd=sum++,pAd++,++pAd;printf(“%d\n”,pad);A、7B、6C、5D、48、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()A、INPUTx、y、z;B、scanf(“%d%d%d”,&x,&y,&z);C、scanf(“%d%d%d”,x,y,z);D、read(“%d%d%d”,&x,&y,&z);9、假定从键盘输入23456回车,下面程序的输出结果是:()voidmain(){intm,n;scanf(“%2d%3d”,&m,&n);printf(“m=%dn=%d\n”,m,n);}A、m=23n=45B、m=234n=56C、m=23n=456D、语句有错误10、若运行时,给变量x输入12,则以下程序的运行结果是()main(){intx,y;scanf(“%d”,&x);y=x12?x+10:x-12;printf(“%d\n”,y);}A、0B、22C、12D、10精心整理2019年9月11、C语言中while和do-while循环的主要区别()A、do-while的循环体至少执行一次B、while的循环控制条件比do-while的循环控制条件严格C、do-while允许从外部转到循环体内D、do-while的循环体不能是复合语句12、以下对二维数组的正确说明的语句是()A、inta[3][]B、floata(3,4)C、doublea[3][4]D、floata(3)(4)13、以下程序的输出结果是()main(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i3;i++)printf(“%d”,x[i][2-i]);}A、1,5,9B、1,4,7C、3,5,7D、3,6,914、以下能对一维数组a进行正确初始化的语句是()A、inta[10]=(0,0,0,0,0);B、inta[10]={};C、inta[10]={0};D、inta[10]={10*1};15、以下程序执行后的输出结果是:()intfun(inta,intb,intc){a=456;b=567;c=678;}voidmain(){intx=10,y=20,z=30;精心整理2019年9月z=fun(x,y,z);printf(“%d,%d,%d\n”,z,y,x);}A、30,20,10B、10,20,30C、10,30,50D、10,30,4016、以下说法正确的是()如果在一个函数中的复合语句中定义了一个变量,则该变量A、只在该复合语句中有效B、在该函数中有效C、在本程序范围内有效D、为非法变量17、以下函数调用语句中含有的实参个数为()func((exp1,exp2,exp3),(exp4,exp5));A、1B、2C、4D、518、在C语言程序中,以下说法正确的是()。A、函数的定义可以嵌套,但函数的调用不可以嵌套B、函数的定义不可以嵌套,但函数的调用可以嵌套C、函数的定义和函数的调用都不可以嵌套D、函数的定义和函数的调用都可以嵌套19、请读程序longfun5(intn){longs;if((n==1)||(n==2))精心整理2019年9月s=2;elses=n+fun5(n-1);return(s);}main(){longx;x=fun5(4);printf(%ld\n”,x);}上面的程序的运行结果是()A、9B、10C、12D、1820、若有下面的变量定义,以下语句中合法的是()。inti,a[10],*p;A、p=a+2;B、p=a[5];C、p=a[2]+2;D、p=&(i+2);二、填空题(共20分,每空1分)1、若a是int型变量,且a的初值为6,则计算表达式a+=(b=4)+(c=2)后,a的值为。2、C语言中三种逻辑运算符为、____、___。3、在C语言中,逻辑“真”值用表示,逻辑“假”值用表示。4、如a是int型变量,则计算表达式a=25/3%3后a的值为。5、若a=1,b=4,c=3,则表达式!(ab)&&!c||1的值是___。6、当a=3,b=2,c=1时,表达式f=abc的值是。精心整理2019年9月7、常见的循环语句有语句、do-while语句和语句。8、若有定义:doublex[3][5];则x数组中行下标的下限为_____,列下标的下限为_____。9、若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是_______,a[2][2]得到的初值是,a[0][2]得到的初值是。10、在C语言中,一个函数由和两部分组成,函数体一般包括部分和部分。三、程序分析题(20分,每题5分)1、以下程序的输出结果是main(){inty=10;for(;y0;y--)if(y%3==0){printf(“%d”,--y);continue;}}2、有以下程序段,若输入1298,则输出结果是main(){intn1,n2;scanf(“%d”,&n2);精心整理2019年9月while(n2!=0){n1=n2%10?;n2=n2/10;printf(“%d”,n1);}3、以下程序的输出结果是#include“stdio.h”fun(intb){intd=5;d+=b++;printf(“d1=%d\n”,d);}main(){inta=2,d=3;Fun(a);d+=a++;printf(“d2=%d\n”,d);}4、以下程序的输出结果是#include“stdio.h”f(intn){switch(g){case0:return0;精心整理2019年9月case1:case2:return1;}return(f(g-1)+f(g-2));}main(){intk;k=f(5);printf(“k=%d”,k);}四、编程题.(共20分,每小题10分)1、编程求1+2+3+……+99+100.2、输入一同学成绩,判断其成绩等级。等级范围为:90以上等级为A89~80等级为B79~70等级为C69~60等级为D60以下等级为EC语言程序设计参考答案一、选择题1---------5DBABA6---------10CCBCA精心整理2019年9月11--------15ACCCA16--------20ABBAD二、填空题1)、122)、&&||!3)、104)、25)、16)、07)、whilefor8)、249)、08010)、函数头函数体声明执行三、程序分析1)、8522)、89213)、d1=74)、k=5d2=5四、编程1、#include“stdio.h”Main(){intsum=0,I;For(i=1;i=100;i++)Sum=sum+I;Printf(“1+2+……+100=%d\n”,sum);}2、main(){floatscore;Scanf(“%f”,&score);Switch(score/10){case10:精心整理2019年9月Case9:printf(“yourscoreisA\n”);break;Case8:printf(“yourscoreisB\n”);break;Case7:printf(“yourscoreisC\n”);break;Case6:printf(“yourscoreisD\n”);break;Default:printf(“yourscoreisE\n”);}}¥—