您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > c练习三_11_06_09-答案
1综合强化练习三一、单选题(共30分)1.下列叙述中错误的是(A)。A、主函数中定义的变量在整个程序中都是有效的B、在其他函数中定义的变量在主函数中不能使用C、形式参数也是局部变量D、复合语句中定义的变量只在该复合语句中有效2.以下叙述中正确的是(C)。A、C语言比其他语言高级B、C语言可以不用编译就能被计算机识别执行C、C语言以接近英语国家的自然语言和数学语言作为语言的表达式D、C语言出现的最晚,具有其他语言的一切优点1.(A)是C程序的基本构成单位。A、函数B、函数和过程C、超文本过程D、子程序2.C语言规定,必须用(C)作为主函数名。A、functionB、includeC、mainD、stdio3.以下(A)是C语言提供的关键字。A、continueB、procedureC、beginD、append4.下列可以作为变量名的是(C)。A、+aB、123425eC、a3BD、5e+05.在C语言中以下合法的字符常量是(C)。A、’\0824’B、’\x243’C、’0’D、”\0”6.设d为字符变量,则下列表达式不正确的是(C)。A、d='m'B、d=97C、d=aD、d='\101'7.表达式(double)(23/3)的值是(B)。A、4B、7.0C、7.7D、38.下列程序的输出结果是(B)。main(){intx=4,y=0,z;x*=3+2;printf(“%d\t”,x);x*=(y==(z=4));printf(“%d”,x);}A、1440B、200C、204D、1449.已知year为整型变量,不能使表达式(year%4==0&&year%100!=0)||(year%400==0)的值是1的整型数据是(A)。A、1990B、1988C、1992D、200010.若x=4,y=z=3,则下列表达式的值分别是(A)。(1)(z=y=x)?1:0(2)y+=z,x*=yA、024B、18C、08D、11211.若已定义a和b为double类型,则表达式:a=1,b=a+3/2的值是(C)。A、1.0B、1.5C、2.0D、3.012.若有定义:intm,n;chara,b,c;在程序运行时输入数据56(回车)YOU(回车)则把整数5赋值给m,把整数6赋值给n,把字符Y赋值给a,把字符O赋值给b,把字符U赋值给c,以下哪一个是正确的程序段(A)。A、scanf(“%d□%d□%c□%c□%c”,&m,&n,&a,&b,&c);(□代表空格)B、scanf(“%d,%d”,&m,&n);a=getchar();b=getchar();c=getchar();C、scanf(“m=%d,n=%d”,&m,&n);a=getchar();b=getchar();c=getchar();D、scanf(“%d%d%c%c%c”,&m,&n,&a,&b,&c);13.下列程序的运行结果是(D)。#includestdio.hmain(){intx,y=1;if(y!=0)x=5;printf(“%d\t”,x);if(y==0)x=3;elsex=5;printf(“%d\n”,x);}A、13B、35C、53D、5514.有程序段如下:i=1;for(;i=10;i++)sum=sum+i;与上面的语句不等价的是(C)。A、for(i=1;;i++){sum+=i;if(i==10)break;}C、i=1;for(;i=10;){sum=sum+i;}15.有如下程序段:intn=25;while(n22){n--;printf(“%d\n”,n);B、for(i=1;i=10;){sum=sum+i;i++;}D、i=1;for(;;){sum=sum+i;if(i==10)break;i++;}2}则以上循环的输出结果是(B)。A、22B、24C、23D、12123222202221016.以下能正确表示x的取值范围在[15,80]和[-5,-1]内的表达式是(B)。A、(x=-5)||(x=-1)&&(x=15)||(x=80)B、(x=-5)&&(x=-1)||(x=15)&&(x=80)C、(x=-5)||(x=-1)&&(x=15)||(x=80)D、(x=-5)&&(x=-1)&&(x=15)&&(x=80)17.以下能正确判断字符型变量ch为小写字母的表达式是(C)。A、(ch='a')AND(ch='z')B、(ch='a')&(ch='z')C、(ch='a')&&(ch='z')D、(ch='a')||(ch='z')18.有以下程序:#includestdio.hmain(){inta=23,b=c=0;if(a=b+c)printf(“Ilikeit\n”);elseprintf(“Ihateit\n”);}以上程序(D)。A、通过编译,但不能连接B、输出IlikeitC、输出IhateitD、不能通过编译(因为有语法错误)19.下列程序的输出结果是(B)。main(){intm,a,b;a=1;b=1;m=0;m=a++||b++;printf(“\n%d%d%d\n”,a,b,m);}A、110B、211C、010D、10120.下列语句正确的是(A)。A、charstring[]=”china”;B、charstring[];string=”china”;C、charstring1[],string2[]=”china”;string1=string2;D、charstring1[],string2[];string2=”china”;strcpy(string1,string2);21.如果在一个函数的复合语句中定义了一个变量,则该变量(A)。A、只在该复合语句中有效,在该复合语句外无效B、在该函数中任何位置都有效C、定义方法错误,其变量为非法变量D、在本程序的原文件范围内均有效22.以下程序段的输出结果是(C)。inti;inta[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i3;i++)printf(“%3d”,a[i][2-i]);A、246B、248C、357D、36723.假设arr是一个有20个元素的整型数组,则下列写法中正确的是(A)。A、arr[0]=2B、arr=0C、arr[20]=0D、arr[-2]=024.已知整型变量i的值为3,其内存地址为1000,p为指向int变量的指针变量。若使p指向i,则下列赋值正确的是(D)。A、&i=3B、*p=3C、*p=1000D、p=&i25.共用体类型变量在程序执行期间(B)。A、所有成员一直驻留在内存中B、只有一个成员驻留在内存中C、部分成员驻留在内存中D、没有成员驻留在内存中26.以下循环体的执行次数是(C)。main(){inti,j;for(i=0,j=1;i=j+1;i+=2,j--)printf(“%d\n”,i);}A、3B、2C、1D、027.执行下列程序段后,变量k中的值是(B)。intk=3,s[2];s[0]=k;k=s[1]*10;A、33B、不确定值C、30D、1028.下面程序段的执行结果是(B)intx=100;dox+=1;while(x120);printf(“%d”,x);A、100B、101C、120D、12129.以下叙述中正确的是(BC)。A、全局变量的作用域一定比局部变量的作用域范围大B、静态(static)类别变量的生存期贯穿于整个程序的运行期间C、函数的形参都属于局部变量D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值30.在对文件的操作中,对文件进行打开操作的标准库函数是(C)。A、fgetcB、fputcC、fopenD、fclose二、填空题。(共10分)1.若有语句“printf(“%0.2f”,23.528);”,则输出__23.53__。2.在C语言中,输入操作是由库函数____scanf______完成的,输出操作是由库函数___printf_____完成的。3.若a、b和c均是int型变量,则执行表达式a=(b=4)+(c=2)后,a、b、c的值分别为__6____、__4____、__2___。4.C语言中,数组名是一个___地址_____常量,代表_数组的首地址______,不能对其进行赋值操作。5.定义一个包含4行5列共20个float型元素的二维数组arr的形式是__floatarr[4][5]____。36.一个C源程序至少应包括一个___main___函数。三、读程序写执行过程(共40分,每题5分)1、#includestdio.hmain(){inti,j,x,y;i=9;j=11;x=++i;y=j++;printf(“%d,%d,%d,%d\n”,i,j,x,y);}10,12,10,112、#includestdio.hmain(){inta,b,c;a=2;b=4;if(ab)c=1;elseif(a==b)c=0;elsec=-1;printf(“%d\n”,c);}3、#includestdio.hmain(){intm;scanf(“%d”,&m);switch(m++%4){case0:case1:printf(“%d5”,m);break;case2:printf(“%5d”,m*m);case3:printf(“%5d”,m*m*m);}}程序运行后输入2回车,程序的输出结果是什么?4、#includestdio.hmain(){inti,s,t;s=0;for(i=1;i=10;++i){if(i%2==0)t=-i;elset=i;s+=t;}printf(“s=%d\n”,s);}5、#includestdio.hmain(){charch;intn=0;ch=getchar();while(ch!=’\n’){++n;ch=getchar();}printf(“%d”,n);}程序运行后输入abcdef回车,程序的输出结果是什么?6、#includestdio.hmain(){inti,j;for(i=2,j=10;ij;i+=2,j-=2)printf(“%d,%d“,i,j);}7、#includestdio.hmain(){intn=12345,s=0;while(n){s++;n/=10;}printf(“%d”,s);}58、#includestdio.hmain(){charw[5]={‘3’,’4’,’2’,’6’,’1’},m,n;inti;m=w[0];n=w[0];for(i=1;i5;i++){if(w[i]m)m=w[i];elseif(w[i]n)n=w[i];}printf(“%c%c\n”,m,n);}61四、编程题(共20分,每题10分)1、编程输入一个四位整数n,求其倒序数nr。例如,输入1256,输出6521。#includestdio.hvoidmain(){intn;printf(请输入一个四位整数);scanf(%d,&n);while(n!=0){printf(%d,n%10);n=n/10;}4}2、输入一字符,判断该字符属于哪一类?大写字母‘A’~’Z’小写字母‘a’~’z’数字类‘0’~’9’其他字符类3、定义一个包含5个整数的数组,找出其最大值和最小值,并将最大值和最小值交换位置,重新输出数组中的元素。(要求在程序运行过程中输入数组元素的值)#includestdio.hvoidmain(){inta[5],i,max,min,imax,imin,itemp;printf(请输入五个数作为数组元素);for(i=0;i=4;i++)scanf(%d,&a[i]);max=min=a[0];imax=imin=0;for(i=1;i=4;i++){if(maxa[
本文标题:c练习三_11_06_09-答案
链接地址:https://www.777doc.com/doc-2908687 .html