第一章作业答案:一,59,14.4,28.e二1小题,592,15一、将数89、20.25、40.875用十六进制表示二、填空1.在C语言中,数值常量0x3b的十进制值是。2.字母f的ASCII码为十进制数___________。第三章作业一、选择题:1、下列变量名中,B是非法的。A)TomB)3nC)little_boyD)c102、若有以下类型说明chara;intb;floatc;doubled;则表达式a*b+d-c的结果类型是(A)A)floatB)charC)intD)double3、若x为整型,则逗号表达式(x=4*5,x*5),x+25的结果及x的值分别是(C)正确答案是100,45A)4520B)12520C)12545D)1001004、假设所有变量均为整型,则表达式(a=3,b=2,b++,a+b)的值是C。A)5B)8C)6D)75、已知c2为字符型,则执行语句c2=’E’+’8’-‘A’后,c2的值为C。A)12B)11C)不确定的值D)106、设a为double变量,b为int型变量,c为字符型变量,则a+b+c为(C)型A)intB)floatC)doubleD)char7、C语言中不可用作标识符的字符有(C)A下划线B%C数字D字母8、下面四个选项中,均是合法整型常量的是(D)A)160B)-0xcdfC)-01D)0x-0xffff01a06682e59、设a为字符变量,b为int型变量,c为double型变量,则a*b+c为(C)型A.intB.floatC.doubleD.char10.若a是int型变量,则表达式(a=4*5,a*2),a+4的值为(C)A.20B.22C.24D.44第四章作业一、选择题1、若x为int型变量,则执行以下语句后x=C。x=5;x-=x-=x+x;A.-10B.-5C.0D.102、在printf()函数的格式说明符中,字符型数的输出格式说明符是D。A.%sB.%fC.%ldD.%c3、已知ch是字符型变量,下面不正确的赋值语句是C。A)ch=’7’+’9’;B)ch=’\0’;C)ch=’x+y’;D)ch=5+9;4、要使用putchar()函数必须在程序前加语句A。A.#includestdio.hB.includestdio.hC.includestdio.hD.#include'stdio.h'5、在scanf()函数的格式说明符中,长整型数的输入格式符是B。A.%lfB.%ldC.%fD.%x二、判断题1、C语言标准输入操作中,gets()函数一次只可以读取一个字符。(Flase)2、C语言标准输出操作中,putchar()函数可以输出显示一个字符串。(Flase)3、a与'a'是不同的;(True)三、分析下列程序的输出结果。1.#includestdio.hvoidmain(){charc=’m’;printf(“%c,%d\n”,c,c);printf(“%d,%c\n”,’c’,’c’);}分别是,m,10999,c2.#includestdio.hvoidmain(){inta;floatd;printf(“Enteraandd:”);scanf(“%d%f”,&a,&d);printf(“%5d,%8.2f\n”,a,d);}Enteraandd:7080.158↙输入结果,Enteraandd:70,80.16第五章作业一、选择题。1、逻辑运算符两侧的运算对象的数据(D)A)只能是0和1B)只能是0或非0正数C)只能是整型或字符型数据D)可以是任何类型的数据2、判断char型变量ch是否为大写字母的正确表达式是C。A.‘A’=ch=’Z’B.(ch=’A’)&&(ch=’Z’)C.(ch=’A’)&(ch=’Z’)D.(‘A’=ch)AND(‘Z’=ch)3、执行以下程序段后,b=A。inta=5,b=6,c=1,x=2,y=3,z=4;c=(a=cx)&&(b=yz);A.6B.0C.1D.44、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是B。if(xy)z=x;x=y;y=z;A.x=20,y=30,z=30B.x=10,y=20,z=30C.x=20,y=30,z=10D.x=20,y=30,z=205、设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值为(B)A.0B.1C.4D.6.5二、填空题。1、以下程序main(){intx1=3,x2=0,x3=0;if(x1=x2+x3)printf(“****”);elseprintf(“####”);}输出####。2、10!=2+8||54&&39/4的结果是FALSE(0)。3、设x为int型变量,表示某一年份,请写出描述“x是闰年”的表达式x%4==0&&x%100!=0)||x%400==0。4、整型变量y能被3整除但不能被4整除。三、程序填空题。请在【】中填上正确内容。1、该程序实现输出x,y,z三个数中的最大者。main(){intx=4,y=6,z=7;int【1】;if(【2】)m=x;elsem=y;if(【3】)n=m;elsen=z;printf(“n=%d”,n);}答案:mxynm2、输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其他字符不变;main(){charch;scanf(“%c”,&ch);if(【1】)ch=ch+32;elseif(ch=’a’&&ch=’z’)【2】;printf(“%c”,ch);}答案:(ch=’A’)&&(ch=’Z’)ch=ch-32第六章作业一选择题。1、设有程序段intx=10;while(x=0)x=x-1;则下面描述正确的是(C)。A)while循环执行10次B)循环是无限循环C)循环体一次也不执行D)循环体只执行一次2、对for(表达式1;;表达式3)可理解为C。A.for(表达式1;0;表达式3)B.for(表达式1;表达式1;表达式3)C.for(表达式1;1;表达式3)D.for(表达式1;表达式3;表达式3)3、语句while(!y);中表达式!y等价于(A)A)y==0B)y!=1C)y!=0D)y==14.下述关于break语句的描述中,(C)是不正确的。A.break语句可用于循环体内,它将退出该重循环;B.break语句可用于开关语句中,它将退出开关语句;C.break语句可用于if体内,它将退出if语句;D.break语句在一个循环体内可以出现多次;5.执行以下程序时,从键盘输入2473↙(↙表示回车),则下面的程序的运行结果是(C)#includestdio.hmain(){intc;while((c=getchar())!=’\n’)switch(c-'2'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);default:putchar(c+2);break;}}A.668966B.6688766C.668977D.66778777二判断题1、While循环语句的循环体至少执行一次。(false)2、任何循环语句的循环体至少都可执行一次。(false)3、break语句可以出现在各种不同循环语句的循环体中。(true)4、for循环是只有可以确定的循环次数时才可使用,否则不能用for循环。(false)5、条件语句是可以实现多路分支的。(true)三填空题1.已知for(j=1,s=0;j=5;j+=2)s=s+j;执行循环后,s的值是9_。2.执行以下程序段后,y=8_,x=2_。intx=1,y=10;do{y-=x;x++;}while(y--0);四程序填空题1下面程序段的功能是将字符串s中所有的字符c删除,请填空.main(){chars[80];intI,j;gets(a);for(i=0,j=0;s[i]!=’\0’;i++)if(s[i]!=’c’)(【1】);s[j]=’\0’;puts(s);}答案:else第七章作业一、选择题1、以下能对二维数组正确初始化的是(D)A)inty[2][]={{1,0,1},{5,2,3}}B)inty[][3]={{1,0,1},{5,2,3}}C)inty[2][4]={{1,0,1},{5,2},{3}}D)inty[][3]={{1,0,1,0},{},{5,2}}2、若二维数组y有m列,则在y[i][j]前的元素个数为(B)Aj*m+IBi*m+jCi*m+j-1Di*m+j+13、已知intw[2][4]={7,15,8,9,20,25,14,17};则w[0][1]的值是C(15)A8B.9C.15D.254、若有说明inta[][3]={1,2,3,4,5,6,7,8};则a数组第一维的大小是A。A.2B无确定值C.3D.45、若有说明inta[][4]={{1,2,3},{4,5},{}};则a数组第一维的大小是D。A.2B无确定值C.3D.语法错误6、下面程序的运行结果是。charc[6]={‘a’,’b’,’c’,’\0’,’c’,’\0’};答案是abc(B)printf(“%s”,c);A.‘a’’b’B.abcC.abcD.ab7、判断字符串a和b是否相等,应当使用D。A.if(a==b)B.if(a=b)C.if(strcpy(a,b))D.if(strcmp(a,b))8、用数组名作为实参,传给形参的是(D)A.数组第0个元素的值B.数组全部元素的值C.数组元素个数D.数组首地址9、以下能正确读入字符串的是(D)A.char*p;scanf(“%s”,p);B.charstr[10];scanf(“%s”,&str);C.charstr[10],*p;p=str;scanf(“%s”,p);D.charstr[10],*p=str;scanf(“%s”,p[1]);10、已知charc[6]=ABCDE,d[6];要将c复制到d中,正确的做法是(D)A.d=c;B.c=d;C.strcmp(c,d);D.strcpy(d,c);二、分析下面程序的结果。main(){inti,j,s1=0,s2=0,a[3][3]={4,9,6,5,3,1,2,8,7};printf(a:\n);for(i=0;i3;i++){for(j=0;j3;j++)printf(%3d,a[i][j]);printf(\n);}printf(\n);for(i=0;i3;i++){s1=s1+a[i][i];s2+=a[i][2-i];}printf(s1=%d,s2=%d\n,s1,s2);}答案:a:496531287S1=14,s2=11第八章作业一、选择题1.在C语言中,当函数调用时(D)。A.实参和形参各占一个独立的存储单元B.实参和形参共用存储单元C.可以由用户指定实参和形参是否共用存储单元D.由系统自动确定实参和形参是否共用存储单元2.以下函数调用语句中实参的个数为(A)。exce((v1,v2),(v3,v4,v5),v6);A.3B.4C.5D.63.如果在一个函数的复合语句中定义了一个变量,则该变量(A)。A.只在该符合语句中有效,在该符合语句外无效B.在该函数中任何位置都有效C.在本程序的原文件范围内均有效D.此定义方法错误,其变量为非法变量4.C语言规定,函数返回值的类型是由(D)。A.return语句中的表达式类型所决定B.调用该函数时的主调函数类型所决定C.调用该函数时系统临时决定D.在定义该函数时所指定的函数类型决定5.在C语言程序中,以下描述正确的是(D)。A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可以嵌套,但函数的调用可以嵌套C.函数的定义和函数的调用均不可以嵌套D.函数的定义和函数的调用均