1《C语言程序设计》习题C语言概述一、单项选择题1.C语言源程序的基本单位是()。A)过程B)函数C)子程序D)标识符2.一个C程序的执行是从()。A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序文件的第一个函数开始,到本程序main函数结束D)本程序的main函数开始,到本程序文件的最后一个函数结束3.一个C语言程序是由()。A)若干函数组成B)若干过程组成C)若干主程序组成D)若干子程序组成4.以下叙述不正确的是()。A)一个C源程序必须包含一个main函数B)一个C源程序可由一个或多个函数组成C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面5.以下叙述正确的是(无)。A)在对一个C程序进行编译的过程中,可发现注释中的拼写错误B)在C程序中,main函数必须位于程序的最前面C)C语言要用输入输出语句D)C程序的每行中只能写一条语句数据类型、运算符与表达式一、单项选择题1.在C语言中,char型数据在内存中的存储形式是()。A)补码B)反码C)原码D)ASCII码2.以下叙述不正确的是()。A)在C程序中,*、/的优先级别高于+、-B)在C程序中,APH和aph是两个不同的变量C)若a和b类型相同,在计算赋值表达式a=b后b中的值将放入a中,而b的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值3.C语言中,要求对变量作强制定义的主要理由是()。A)便于移植B)便于写文件C)便于编译预处理程序处理D)便于确定类型和分配空间7.假定x和y为double型,则表达式x=2,y=x+3/2的值是()。2A)3.500000B)3C)2.000000D)3.0000008.设a是整型,f是实型,i是双精度型,则表达式10+’a’+i*f值的数据类型为()。A)intB)floatC)doubleD)不确定9.设x、y均为float型变量,下面不正确的赋值语句是()。A)++xB)y=(x%2)/10C)x*=y+8D)x=y=010.设inta=12,表达式a*=a的值是()。A)12B)144C)0D)13211.若x=10,则表达式x+=3+x%(-3)的值为()。A)11B)12C)14D)1512.设intk=7,x=12则以下能使值为3的表达式是()。A)x%=(k%=5)B)x%=(k=k%5)C)x%=k-k%5D)(x%=k)-(k%=5)13.已知字母A的ASCII码为65,以下程序段的输出结果是()。charc1=’A’,c2=’Y’;printf(“%d,%d”,c1,c2);A)65,90B)A,YC)65,89D)输出格式不合法14.以下程序的输出结果是()。#includestdio.hmain(){inta,d=241;a=d/100%9;printf(“%d\n”,a);}A)6B)2C)6D)215.若有以下定义和语句,则输出结果是()。charc1='b',c2='e';printf(%d,%c\n,c2-c1,c2-'a'+'A');A)2,MB)3,EC)2,ED)输出项与对应的格式控制不一致,输出结果不确定16.下面程序的输出是()。main(){intx=10,y=3;printf(%d\n,y=x/y);}A)0B)1C)3D)不确定值最简单的C程序设计一、单项选择题1.以下程序的输出结果是()。#includestdio.hmain()3{inta=2,c=5;printf(“a=%%d,b=%%d\n”,a,c);}A)a=%2,b=%5B)a=2,b=5C)a=%%d,%%dD)a=%d,b=%d二、阅读程序写出程序运行结果1.有以下程序main(){charc='z';printf(%c,c-25);}执行后输出结果是a。逻辑运算和判断选择结构一、单项选择题1.为了表示关系x≥y≥z,应使用的C语言表达式是()。A)(x=y)&&(y=z)B)(x=y)AND(y=z)C)(x=y=z)D)(x=y)&(y=z)2.以下程序的运行结果是()。main(){intk=4,a=3,b=2,c=1;printf(“\n%d\n”,ka?k:cb?c:a);}A)4B)3C)2D)13.若a=-14,b=3,则条件表达式ab?a:b+1的值为()。A)-14B)-13C)3D)42.若执行下面的程序时从键盘上输入3和4,则输出是()。main(){inta,b,s;scanf(%d%d,&a,&b);s=a*b;if(a)printf(%d\n,s);elseprintf(%d\n,b);}A)10B)12C)14D)163.假设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);4.为了避免在嵌套的条件语句if――else中产生二义性,C语言规定:else子句总是与()配对。4A)缩排位置相同的ifB)其之前最近的ifC)其之后最近的ifD)同一行上的if5.以下程序的运行结果是()。main(){intk=4,a=3,b=2,c=1;printf(\n%d\n,ka?k:cb?c:a);}A)4B)3C)2D)16.有以下程序main(){chark;inti;for(i=1;i3;i++){scanf(%c,&k);switch(k){case'0':printf(another\n);case'1':printf(number\n);}}}程序运行时,从键盘输入:01回车,程序执行后的输出结果是()。A)anotherB)anotherC)anotherD)numbernumbernumbernumbernumberanothernumber7.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()。A)a0B)!0C)a=0D)a!=0二、阅读程序写出程序运行结果1.有以下程序main(){intx=2,y=-1,z=2;if(xy)if(y0)z=0;elsez+=1;printf(“%d\n”,z);}执行后输出结果是3。2.请读下列程序5#includestdio.hmain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf(“a=%d,b=%d\n”,a,b);}上面程序的输出结果是a=2,b=1。三、程序填空题1.以下程序实现输出x,y,z三个数中的最大者。main(){intx=4,y=6,z=7;intu,v;if(①xy)u=x;elseu=y;if(②uz)v=u;elsev=z;printf(“v=%d”,v);}第三章循环控制一、单项选择题1.C语言中while与do—while语句的主要区别是()。A)do—while的循环体至少无条件执行一次B)do—while允许从外部转到循环体内C)do—while的循环体不能是复合语句D)while的循环控制条件比do—while的循环控制条件严格2.C语言中()。A)不能使用dowhile语句构成的循环;B)dowhile语句构成的循环必须用break语句才能退出;6C)dowhile语句构成的循环,当while语句中的表达式值为非零时结束循环;D)dowhile语句构成的循环,当while语句中的表达式值为零时结束循环;3.以下程序段()。x=-1;do{x=x*x;}while(!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误4.执行下面语句后的输出结果是()。intx=20,y=40,z=60;while(xy)x+=4;y-=4;z/=2;printf(%d,%d,%d,x,y,z);A)40,36,30B)32,28,7C)32,28,30D)32,28,7.55.下面有关for循环的正确描述是()。A)for循环只能用于循环次数已经确定的情况B)for循环是先执行循环体语句,后判断表达式C)在for循环中,不能用break语句跳出循环体D)for循环的循环体语句中,可以包含多条语句,必须用花括号括起6.对for(表达式1;;表达式3)可理解为()。A)for(表达式1;0;表达式3)B)for(表达式1;1;表达式3)C)for(表达式1;表达式1;表达式3)D)for(表达式1;表达式3;表达式3)7.若a,b是int型变量,有以下程序段for(a=1,b=1;b=20;b++){if(a10)break;if(a%2==1){a+=5;continue;}a-=3;}执行以上程序段后,a的值为()。A)10B)7C)12D)1二、阅读程序写出程序运行结果1.以下程序的输出结果是*#*#*#$。#includestdio.hmain(){inti;7for(i=1;i=5;i++){if(i%2)printf(*);elsecontinue;printf(#);}printf($\n);}2.仔细分析下列程序或程序段,写出执行结果。#includestdio.hmain(){inti;for(i=1;i=5;i++)switch(i%2){case0:i++;printf(“#”);break;case1:i+=2;printf(“*”);default:printf(“\n”);}}*#*#*数组一、单项选择题1.C语言中,引用数组元素时,其数组下标的数据类型允许是()。A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式2.以下对一维整型数组a的正确说明是()。A)inta(10);B)intn=10,a[n];C)intn;D)#definesize10scanf(“%d”,&n);inta[size];inta[n];二、阅读程序写出程序运行结果1.上述程序运行后,输出结果是1。main()8{intn[3],i,j,k;for(i=0;i3;i++)n[i]=0;k=2;for(i=0;ik;i++)n[i]=n[i]+1;printf(%d\n,n[1]);}函数一、单项选择题1.请读下面的程序#includestdio.hf(intb[],intn){inti;intr=1;for(i=0;i=n;i++)r=r*b[i];returnr;}main(){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf(%d\n,x);return0;}上面程序的输出结果是()。A)720B)120C)24D)62.有以下程序:#includestdio.hvoidfun(inta,intb,intc){a=456;b=567;c=678;}main(){intx=10,y=20,z=30;fun(x,y,z);9printf(%d,%d,%d\n,x,y,z);return0;}输出结果是()。A)30,20,10B)10,20,30C)456,567,678D)678,567,4563.下面程序的输出结果是()。#includestdio.hfunc(inta,intb){intc;c=a+b;returnc;}main(){intx=6,z=8,r;r=func(x,z);printf(%d\n,r);return0;}A)11B)14C)21D)314.下面程序的输出是()。#includestdio.hintfun3(intx){statica=3;a+=x;returna;}main(){intk=2,m=1,n;