ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:41.54KB ,
资源ID:7470774      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7470774.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(北京大学秋季学期《C语言程序设计》作业答案.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

北京大学秋季学期《C语言程序设计》作业答案.docx

1、北京大学秋季学期C语言程序设计作业答案北京大学2015年秋季学期C语言程序设计作业答案 作业提交格式要求:请同学们把答案集中单独写在一个.doc文档中,作为附件上传(不要把答案直接填写在题目的空中)。特规定格式如下:一、 ABCDD AAAAA二、(1) BeiJing ShangHai(2) x=8,y=7(3) r=k:i+j=90 以上只是举例,不是正确的输出结果。请按上述规定书写和提交作业结果,不符合以上规定的作业将作为0分处理。鼓励独立完成作业,严惩抄袭。第一章作业一、将数213、12.75、79.375用十六进制表示答案:0xD5 、 0xC.C 、 0x4F.6二、填空1.在C语

2、言中,数值常量0x9f的十进制值是 。答案:1592.字母a的ASCII码为十进制数_。答案:97第二章作业(1)一、选择题:1、下列变量名中, 是非法的。A) MyCar B) 4a C) my_car D) a48答案:B2、下列变量名中, 是合法的。A) 56A B) _abc C) 48b D) while答案:B3、下列常量中, 是十六进制表示的int型常量。A) 78 B) 0x7a C) x56 D) 063答案:B4、假设所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的值是 。A) 7 B) 8 C) 6 D)2答案:B5、已知c2为字符型,则执行语句c2=A+6-

3、3后,c2的值为A) C B) D C)不确定的值 D) 70答案:B6、设a为整型变量,b为字符型变量,c为double型变量,则a+b+c为( 型A) int B) float C) double D) char答案:C7、语言中不可用作标识符的字符有( )A 字母B 数字C %D下划线答案:C8、设int a;则表达式a=2,4,a+1的值是( )A.1B.2C.3D.4答案:C ) 。9.设a为整型变量,b为字符型变量,c为double型变量,则a*b+c为( )型A. intB. floatC. doubleD. char答案:C10. 若a是int型变量,则表达式(a=4*5,a*

4、2),a+6的值为( )A. 20 B.23 C. 26 D. 46答案:C第二章作业(2)一、选择题1、在scanf()函数的格式说明符中,长整型数的输入格式符是 A 。A. %ld B. %lf C. %d D. %x2、在printf()函数的格式说明符中,字符型数的输出格式说明符是 A 。A. %c B. %f C. %ld D. %s3、 已知ch是字符型变量,下面不正确的赋值语句是 A 。A) ch=a+b; B) ch=0; C) ch=7+9; D) ch=5+9;4、要使用putchar()函数必须在程序前加语句 A 。A. #include B. include stdio

5、.hC. include D. #include stdio.h5、若x为int型变量,则执行以下语句后x= A 。x=7;x+=x-=x+x;A. -14 B. -7 C.0 D.14二、判断题1、 C语言标准输入操作中,gets()函数一次只可以读取一个字符。(F )2、 C语言标准输出操作中,putchar()函数可以输出显示一个字符串。(F )3、 r与r是相同的; ( F )三、分析下列程序的输出结果。 1.#include void main()char c=p;printf(“%d,%cn”,c,c);printf(“%d,%cn”,a,a); 答案:112,p97,a2.#in

6、clude void main()int a;float d;printf(“Enter a and d: ”); scanf(“%d%f”,&a,&d);printf(“%5d,%8.2fn”,a,d); Enter a and d: 56 15.765 答案:3个空格56, 3个空格15.77第四章作业一、 选择题。1、下列运算符中优先级最高的是 B 。A. B. + C. & D.!=2、判断char型变量ch是否为大写字母的正确表达式是 B 。A. A=ch=A) & (ch=A)& (ch=Z) D. (A=ch)3、设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行

7、(m=ab) & (n=cd)后n的值为 B 。A. 1 B.2 C. 3 D. 44、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。if (xy)z=x;x=y;y=z;A. x=10,y=20,z=30 B. x=20,y=30,z=30C. x=20,y=30,z=10 D. x=20,y=30,z=205、设a=3,b=4,c=5,则表达式 !(a+b)+c-1&b+c/2 的值为( B )A. 0 B. 1 C. 4 D. 6.5二、 填空题。1、当a=3,b=2,c=1时,表达式f=abc的值是 0 。2、当a=5,b=4,c=2时,表达式ab!=

8、c的值是 1 。3、 15 != 8 + 7 | 4 9/4的结果是 1 。4、设y为int型变量,请写出描述“y是奇数”的表达式 (y % 2)=1 。5、整型变量 X 能被 100 整除但不能被 400 整除 (X%100=0) & (X%400!=0) 。三、 程序填空题。请在【】中填上正确内容。1、该程序实现输出x,y,z三个数中的最大者。main()int x=4,y=6,z=7;int 【1】;if (【2】) u=x;else u=y;if (【3】) v=u;else v=z;printf(“v=%d”,v);答案:u xy uv2、输入一个字符,如果它是一个大写字母,则把它变

9、成小写字母;如果它是一个小写字母,则把它变成大写字母;其他字符不变;main() char ch;scanf(“%c”,&ch);if (【1】) ch=ch+32;else if (ch=a & ch=A )&( ch=Z) ch=ch-32第五章作业一选择题。1、下面程序段的运行结果是 C 。int n=0;while (n+=2) ; printf(“%d”,n);A. 2 B. 3 C. 4 D. 有语法错误2、对for(表达式1; ;表达式3)可理解为 C 。A. for(表达式1;0 ;表达式3) B. for(表达式1;表达式1;表达式3)C. for(表达式1;1 ;表达式3)

10、 D. for(表达式1;表达式3;表达式3)3、以下正确的描述是 C 。A. continue语句的作用是结束整个循环的执行B. 在循环体内使用break语句或continue语句的作用相同C. 只能在循环体内和switch语句体内使用break语句D. 从多层循环嵌套中退出时,只能使用goto语句4.下述关于break语句的描述中,( C )是不正确的。A. break语句可用于循环体内,它将退出该重循环;B. break语句可用于开关语句中,它将退出开关语句;C. break语句可用于if体内,它将退出if语句;D. break语句在一个循环体内可以出现多次;5.执行以下程序时,从键盘输

11、入2473(表示回车),则下面的程序的运行结果是( C )#include main( ) int c ;while(c=getchar( )!= n)switch(c-2) case 0:case 1: putchar(c+4);case 2: putchar(c+4);break;case 3: putchar(c+3);default: putchar(c+2);break;A. 668966 B. 6688766 C. 668977 D. 66778777二判断题1、条件语句是可以实现多路分支的。( T)2、任何循环语句的循环体至少都可执行一次。( F)3、break语句可以出现在各种

12、不同循环语句的循环体中。( T)4、for循环是只有可以确定的循环次数时才可使用,否则不能用for循环。( F )5、While循环语句的循环体至少执行一次。( F )三填空题1.已知 for(j=1,s=0;j=9;j+=2) s=s+j; 执行循环后,s的值是 25 _ 。2. while循环是先判断表达式,如果为_真_,执行循环体,然后再判断表达式,直到表达式为假,退出循环 。四程序填空题1下面程序的功能是计算1-3+5-7+-99+101的值#include main() int i,t=1,s=0;for (i=1;i=101;i+=2)【1】; s=s+t; 【2】;printf(

13、“%dn”,s);答案:t=-i;s=-s;2下面程序的功能是打印100以内个数为6且能被3整除的所有数。#include main()int i,j;for (i=0; 【1】;i+)j=i*10+6;if (【2】) continue;printf(“%d”,j);答案:i10;if(j%3)!=0)第六章作业一、选择题1、在C语言中,引用数组元素时,其数组下标的数据类型允许是A.整型常量 B. 整型表达式C.整型常量或整型表达式 D. 任何类型的表达式2、以下能对一维数组a进行正确初始化的语句是 C 。A. int a10=(0,0,0,0) B. int a10=;C. int a=0

14、; D.int a10=10*1;3、若有说明:int a34;则对a数组元素的正确引用是 C 。 C 。A. a24 B. a1,3 C. a1+10 D. a(2)(1)4、已知 int w24=7,15,8,9,20,25,14,17;则 w01的值是 CA 8 B.9 C. 15 D. 255、若有说明 int a3=1,2,3,4,5,6,7;则a数组第一维的大小是 C 。A. 2 B无确定值 C. 3 D. 46、下面程序的运行结果是 D 。char c*5+=,a,b,0,c,0-;printf(“%s”,c);A. ab B. abc C. ab c D. ab7、判断字符串a

15、和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、用double q35; 定义的数组 q 包含 D 个元素A. 3 B5 C. 8 D. 1510、已知 char c6=ABCDE, d6;要将c复制到d中,正确的做法是( D )A. d=c;B. c=d;C. strcmp(c,d);D. strcpy(d,c);二、判断题1、数组赋初值时,初始值表中的数据项的数目可

16、以大于或等于数组元素的个数。( F )2. 数组中的元素类型可以不同;( F )3. 字符串This大于字符串that;( F )4. 任何数组的下标都是从0开始;( T )5.符数组中的一个元素存放一个字符;( T )三、程序填空题。invstring(char a )函数的功能是使输入的一个字符串按逆序存放,在主函数中输入和输出字符串。请填空【?】。void invstring(char a ) int n,j; char c;n=0; 填空:while(an!= 【1】) n+; 【1】 0 for( j=0; j【2】; j+) 【2】 n/2c=aj; 【3】; 【4】; 【3】 a

17、j = an j - 1 【4】 an j - 1 = c main( ) char a80;gets(a);invstring(【5】); 【5】 a puts(a);puts(n);四、分析下面程序的结果。main ( ) int i,j,s1=0,s2=0 ,a33= 4,9,6,5,3,1,2,8,7;printf(a:n);for(i=0; i3; i+) for(j=0;j3;j+) printf(%3d,aij);printf(n);printf(n);for(i=0; i3; i+) s1=s1+aii;s2+=ai2-i;printf(s1=%d, s2=%dn,s1,s2)

18、;答案:a:4 9 65 3 12 8 7S1=14,s2=11第七章作业一、选择题1.在C语言中,下面对函数不正确的描述是( D )。A. 当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变。B. 允许函数递归调用。C. 函数形参的作用范围只是局限于所定义的函数内。D. 子函数必须位于主函数之前。2. 以下正确的函数形式是( D )。A. double fun(int x,int y) z=x+y; return z;B. fun(int x,y) int z; return z;C. fun(x,y) int x,y; double z; z=x+y; return z;D.

19、double fun( int x,int y) double z; z=x+y; return z; 3. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( BA. 地址传递B. 单向值传递C. 双向值传递。即由实参传给形参,再由形参传回给实参D. 由用户指定传递方式4. 一个C语言程序是由( B )。A. 一个主程序和若干子程序组成B. 若干函数组成C. 若干过程组成D. 若干子程序组成5.用数组名作为实参,传给形参的是( B )A.数组第0个元素的值 )。B. 数组首地址C.数组元素个数D. 数组全部元素的值二、写出程序的输出结果1.void main(void)int

20、a=1,k;for(k=0;k3;k+) printf(%4d,f1(a) int f1(int x)static int z=3,y=0;y+;z+;return(x+y+z);答案:*6*8*102.void main()int i=0;while(+ i)if(i= =10) break;if(i%3!=1) continue;printf(“%dn”,i);答案:1第八章作业一、判断题。1、指针和一般变量一样都有两个值:一个是它在内存中的地址值,另一个是它所存放的数据值。2、指针存放的值就是它所指向的变量的地址值。3、指向int型变量的指针可以使用double型变量的地址值进行赋值。4

21、、定义指针的说明语句中,在指针名前边的*,与执行语句中在指针名前边的*具有相同功能。5、在给指针赋值时,要求指针与被赋值的地址值类型相同,级别一样。6、数组名是一种地址值,它可以用来给指针赋值,但要求类型相同和级别一致。7、任何两个指针进行比较运算是无意义的。8、指针运算实际是地址运算,指针加一就是实际的地址值加一。9、数组元素可以使用下标表示,也可以使用指针表示。10、指针数组的元素是类型相同指针的集合。答案:1-10 TTFFT TFFTT二、填空题。1、单目运算符&后跟变量名,表里是该变量的(地址),单目运算符*后跟指针名,表示该指针的(指向的对象的值)。2、指针用来存放某个变量的(内存地址)。3、已知:char *c=”good”;则printf(“%sn”,c)输出为(good),printf(“%sn”,c+1)输出为(ood)。4、若有定义:int a10,*p=a;则*(p+5)表示(a5)的值。5、int* p;在*p运算中,表示取_p指向的对象的内容_ 。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1