《C语言程序设计》教学大纲与习题集.doc_第1页
《C语言程序设计》教学大纲与习题集.doc_第2页
《C语言程序设计》教学大纲与习题集.doc_第3页
《C语言程序设计》教学大纲与习题集.doc_第4页
《C语言程序设计》教学大纲与习题集.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计教学大纲The Program Language (C Program)课程编号:适用专业:机械工程及自动化、电子科学与技术、自动化、信息工程总学时:64(讲课:32上机实验:32)学分:4执笔人:李越辉审核人:孙践知编写日期:2003-10-10院(系、部)签章一、课程的性质和目的该课程是机械、电子、自动等专业学习计算机技术的一门主要课程,通过介绍一门算法语言,培养学生学习设计计算机程序的能力,为今后学习其它课程打好基础。本课程属于计算机基础类课程。二、课程教学内容和要求第一章 C语言概述(2学时)教学内容:本讲主要介绍了C语言的特点、基本结构、基本输入输出语句和C程序的编辑、编译、运行方法。教学要求:要求了解C语言的特点,掌握C程序的基本结构,掌握输入输出函数scanf()和printf()的基本使用方法,熟悉C程序的编辑、编译、调试和运行过程。第二章 基本数据类型(2学时)教学内容:C语言的数据类型、数值数据的表示、文字数据的表示、变量的定义和赋值、C语言类型修饰符、表达式中数据类型转换、计算机中数据的表示。教学要求:要求了解C语言数值数据和文字数据的表示方法,掌握C语言基本数据类型的存储格式,掌握变量的定义和赋值,了解数据运算中类型的自动转换和强制转换。第三章 控制结构(一)(2学时)教学内容:程序设计的一般方法、结构化程序设计、顺序结构、if语句、switch语句。教学要求:要求熟练掌握if语句和switch语句的使用,了解结构化程序设计思想,并且可以按照一般程序设计方法完成简单程序的设计过程。第四章 控制结构(二)(2学时)教学内容:主要介绍了C语言提供的三种循环结构语句:while语句、do-while语句和for语句,介绍了循环结构中常用的语句break、continue的使用以及循环的嵌套。教学要求:要求大家掌握这三种循环结构的使用,理解break和continue在循环结构中的不同作用,了解循环的嵌套。第五章 运算符和表达式(2学时)教学内容:主要介绍了C语言的算术运算符、关系运算符、逻辑运算符、赋值运算符、自增和自减运算符、逗号运算符以及条件运算符的功能、结合性和优先级。教学要求:要求掌握含有这些运算符的表达式值的判定,并且在编程中熟练运用这些运算符解决问题。第六章 函数(2学时)教学内容:介绍C语言函数的概述、函数定义、函数的返回值、函数的调用、函数的递归调用。教学要求:要求掌握函数的定义、调用方式,了解函数形参和实参的特点,掌握函数的嵌套调用和递归调用,并能熟练编写具有一定功能的函数。第七章 数组(2学时)教学内容:介绍C语言中数组的定义和使用,其中重点介绍一维数组的定义、引用、初始化和作为函数参数时数据传递方式,此外对二维数组的定义、引用和初始化也作了详细的说明。教学要求:要求熟练掌握一维数组的使用,了解的二维数组的应用,并且理解数组元素和数组名作函数参数的不同,进而灵活运用数组作函数参数编程。第八章 字符与字符串(2学时)教学内容:主要介绍了C语言中单个字符的输入输出、字符数组与字符串、字符串的输入和输出函数、字符串的操作函数、二维字符串数组。教学要求:要求掌握字符和字符串的输入输出方法,掌握字符串的存储特点以及常用字符串操作函数的使用,了解的二维字符串数组的使用。第九章 变量类别与编译预处理(2学时)教学内容:主要介绍了全局变量和局部变量以及自动变量、静态变量和寄存器变量的特点和关系,介绍了编译预处理命令中的宏定义和文件包含教学要求:要求掌握局部变量和全局变量的特点和使用方法,了解自动变量和静态变量的区别,掌握不带参数的宏和带参数的宏的使用,熟练运用“文件包含”功能。第十章 指针(一)(2学时)教学内容:主要介绍了C语言中指针的基本概念和指向变量的指针变量、指向一维数组的指针变量和指向字符串的指针变量的定义及使用教学要求:要求掌握指针变量的定义和引用,掌握指向数组元素和字符串中字符的指针变量的使用,理解指针变量作函数参数与数组名或字符串作函数参数的关系。第十一章 指针(二)(2学时)教学内容:主要介绍了返回指针值的函数、指向函数的指针、指针数组、指针与多维数组、指向指针的指针以及命令行参数教学要求:要求掌握分别指向函数、数组、指针的指针变量的定义和引用,掌握指针数组处理若干字符串的方法,掌握main()函数形参的定义和使用,了解指向数组的指针与指针数组、指向函数的指针变量与定义返回值是指针的函数的区别。第十二章 结构体、共用体和枚举类型(4学时)教学内容:主要介绍C语言中的三种类型的定义和使用,其中两种是构造类型:结构体类型和共用体类型,一种是C语言的基本类型:枚举类型。教学要求:要求掌握结构体类型、共用体类型和枚举类型的变量的定义,掌握结构体类型和共用体类型变量及其成员的引用等基本操作,理解结构体数组的应用,理解结构体和共用体变量存储形式的不同,了解枚举类型变量的处理方式。第十三章 指向结构体的指针与链表(2学时)教学内容:首先介绍了C语言中指向结构体变量和结构体数组的指针变量的使用,接着介绍了结构体数据作为函数参数的使用,最后介绍了链表的概念和基本操作。教学要求:要求掌握指向结构体变量和结构体数组的指针变量的使用,掌握链表的概念,理解结构体数据作为函数参数的使用,了解链表的基本操作。第十四章 文件(2学时)教学内容:介绍C语言文件的概述、文件的打开和关闭、文件的输入输出、文件的其它常用函数。教学要求:要求掌握文件的打开、关闭,了解数据写入文件和从文件中读取的操作以及文件指针的定位,理解ASCII文件与二进制文件的不同特点。三、课程教学环节的安排和基本要求(一)课堂讲授:采用多媒体教学,教案为多媒体演示文稿,授课时的例题均采用实际软件示范或者符合教学内容的多媒体课件,此外所有授课内容及例题全部放入局域网,供学生复习和预习。(二)上机实验:要求按照教材中上机实验要求一方面运行例题、巩固课堂内容,一方面根据实验要求、结合例题编写程序,培养学生编程的能力。(三)上机实验内容和要求:实验一 (2学时)实验内容:1掌握C程序源文件的新建、打开、保存和关闭的方法。2掌握C程序的编辑、编译、运行方法。3掌握基本输入输出函数scanf()和printf()的使用。实验二 (2学时)实验内容:1掌握十进制、八进制、十六进制数的表示形式,并且可以用十进制、八进制、十六进制形式输出整数。2了解C语言文字数据的表示方法,掌握字符与字符串的输入输出。3掌握变量的定义和赋值。4了解数据运算中类型的自动转换。5了解数据的强制转换方法。实验三 (2学时)实验内容:1了解简单程序流程图的画法。2掌握if语句的使用。3掌握switch语句的使用。实验四 (2学时)实验内容:1掌握C程序调试时设置断点的方法。2掌握while语句使用。3掌握do-while语句使用。4掌握for语句使用。5理解break和continue在循环结构中的不同作用。6了解循环的嵌套。实验五 (2学时)实验内容:1掌握算术运算符的使用及其表达式值的判定。2掌握关系运算符的使用及其表达式值的判定。3掌握逻辑运算符的使用及其表达式值的判定。4掌握赋值运算符的使用及其表达式值的判定。5掌握自增和自减运算符的使用及其前置方式和后置方式对表达式值的影响。6掌握逗号运算符的使用及其表达式值的判定。7掌握条件运算符的使用及其表达式值的判定。实验六 (2学时)实验内容:1掌握C语言函数的定义和调用。2掌握函数形参和实参的特点。3掌握函数的嵌套调用。4掌握函数的递归调用。实验七 (2学时)实验内容:1掌握一维数组的定义、引用、初始化。2了解二维数组的定义、引用和初始化。3掌握数组元素和数组名作为函数参数时数据传递方式,理解二者的不同。实验八 (2学时)实验内容:1掌握字符和字符串的输入输出方法。2掌握常用字符串操作函数的使用。3了解的二维字符串数组的使用。实验九 (2学时)实验内容:1掌握全局变量和局部变量特点和关系。2掌握自动变量、静态变量和寄存器变量的特点和关系。3掌握不带参数的宏和带参数的宏的使用。4熟练运用“文件包含”功能。实验十 (2学时)实验内容:1掌握变量的直接引用和间接引用。2掌握指针变量的定义和引用。3掌握指向数组元素指针变量的使用。4掌握指向字符串中字符的指针变量的使用。5理解指针变量作函数参数与数组名或字符串作函数参数的关系。实验十一 (2学时)实验内容:1掌握返回指针值的函数的定义。2掌握分别指向函数、数组元素、数组、指针的指针变量的定义和引用。3掌握指针数组处理若干字符串的方法。4掌握main()函数形参的定义和使用。5了解指向数组的指针与指针数组、指向函数的指针变量与定义返回值是指针的函数的区别。实验十二 (2学时)实验内容:1掌握结构体类型、共用体类型和枚举类型的变量的定义。2掌握结构体类型和共用体类型变量及其成员的引用等基本操作。3理解结构体数组的应用。4理解结构体和共用体变量存储形式的不同。5了解枚举类型变量的处理方式。实验十三 (4学时)实验内容:1掌握指向结构体变量和结构体数组的指针变量的使用2掌握链表的概念。3理解结构体数据作为函数参数的使用。4了解链表的基本操作。实验十四 (4学时)实验内容:1掌握文件的打开、关闭。2了解数据写入文件和从文件中读取的函数的使用方法。3了解文件指针的定位的常用函数的使用方法。(四)作业量第1讲 2第2讲 2第3讲 2第4讲 2第5讲 2第6讲 2第7讲 2第8讲 2第9讲 2第10讲 2第11讲 2第12讲 2第13讲 2第14讲 2(五)考核:采用题库随机抽体,上机测试,主要考核学生是否完全掌握C环境的使用以及基本的C程序结构的使用,侧重动手能力,以及学生对C语言的概念、程序设计方法和技巧等综合能力的考核。四、本课程与其它课程的联系本课程的先修课程是计算机文化基础,后续课程则是各专业的计算机应用软件或计算方法。本课程主要是作为各专业的计算机基础类课程。五、建议教材及教学参考书建议教材:C程序设计(第二版),谭浩强著,清华大学出版社,1999教学参考书:边用边学C语言,郎建昭,清华大学出版社,2002精讲多练C语言,冯博琴、刘路放编著,西安交通大学出版社,1997C语言与程序设计,夏宽理编著,复旦大学出版社,1994。六、必要说明本大纲列出的讲课内容为主要内容,由于现在学生的程度参差不齐,教师可本着因材施教的原则,适当增减。C语言程序设计习题集第1章 C语言概述11 c语言程序的总体结构是怎样的。 解:一个完整的c语言程序,是由一个、且只能由一个main()函数(又称主函数)和若干个其他函数结合而成的,或仅由一个main()函数构成。12 c语言程序的基本单位是什么?它的结构又如何? 解:函数是c语言程序的基本模块单元。 任何函数(包括主函数main()都是由函数说明和函数体两部分组成。其一般结构如下: 函数类型 函数名(函数参数表) 说明语句部分; 执行语句部分; 13主函数main()在程序中的地位如何。程序总是从哪个函数开始执行,到哪个函数执行完后结束? 解:main()函数的作用相当于其他高级语言中的主程序;其他函数的作用相当于子程序。 一个c语言程序,总是从main()函数开始执行,而不论其在程序中的位置。当主函数执行完毕时,亦即程序执行完毕。习惯上,将主函数main()放在最前头。 14 c语言的语句分为哪几类? 解:按照语句功能或构成的不同,可将c语言的语句分为五类。 控制语句、函数调用语句、表达式语句、空语句和复合语句。15执行一个c语言程序的一般过程是什么?解:运行一个c语言程序的一般过程,如下图所示。启动TC编辑或修改源程序连接编译运行退出TC(结束)语法错误逻辑错误 1)启动Tc,进入Tc集成环境。 2)编辑(或修改)源程序。 3)编译。如果编译成功,则可进行下一步操作;否则,返回2)修改源程序,再重新编译,直至编译成功。 4)连接。如果连接成功,则可进行下一步操作;否则,根据系统的错误提示进行相应修改,再重新连接,直至连接成功。 5)运行。通过观察程序运行结果,验证程序的正确性。 6)退出Tc集成环境,结束本次程序运行。 16在Tc集成环境下,下列操作的快捷键分别是什么解:存盘:F2;编译与连接:F9;运行:nF9;查看运行结果:Alt+F5。第2章数据类型、运算符与表达式2.1 指出下列变量名中,哪些是合法的,哪些是非法的。如果非法,为什么?Int,char,345,ABdf,c&d,string*,_322,alpf_beat,JOHN.smith,3ab解:ABdf,_322,alpf_beat合法,其它的非法Int,char非法是因为它们都是C语言关键字;345,3ab非法是因为变量名不能以阿拉伯数字开头;c&d,string*,JOHN.smith非法是因为变量名中只能由字母、数字和下划线组成。2.2 计算下列表达式的值(1)a+b%3*(int)(a-b)/4 (设a=13.6,b=8)(2)(x+y)/2+(int)x%(int)y (设x=4.5,y=2.5)(3)z*=3+6,z/z=z/2,z+=z-=z*=z (设z=6)解:(1) 15.600000;(2)3.500000;(3)0。第3章 顺序结构程序设计3.1 若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765, c1=a,c2=b。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 a=3b=4c=5 x=1.200000,y=2.400000,z=-3.600000 x+y=3.600y+z=-1.20z+x=-2.40 c1=aor97(ASCII) c2=bor98(ASCII) (表示空格,下同)参考源程序如下:main() int a=3,b=4,c=5; long int u=51274,n=128765; float x=1.2,y=2.4,z=3.6; char c1=a,c2=b; printf(a=%2d b=%2d c=%2dn,a,b,c); printf(x=%f,y=%f,z=%fn,x,y,z); printf(x+y=%5.2f y+z=%5.2f z+x=%5.2fn,x+y,y+z,z+x); printf(u=%6ld n=%9ldn,u,n); printf(%s %s %d%sn,c1=a,or,c1,(ASCII); printf(%s %s %d%sn,c2=a,or,c2,(ASCII); 3.2用scanf下面的函数输入数据,使a=3,b=7,x=8.5,y=71.82, c1=A,c2=a,问在键盘上如何输入? main() int a,b;float x,y;char c1c2; scanf(a=%d_b=%d,&a,&b); scanf(_x=%f_y=%e,&x,&y); scanf(_c1=%c_c2=%c,&c1,&c2); 输入方法如下:a=3b=7 x=8.5y=71.82 c1=Ac2=a3.2 设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 参考源程序: main() float r,h,C1,Sa,Sb,Va,Vb; scanf(%f,%f,&r,&h); C1=2*3.14*r; Sa=3.14*r*r; Sb=4*Sa; Va=4*3.14*r*r*r/3; Vb=Sa*h; printf(C1=%.2fn,C1); printf(Sa=%.2fnSb=%.2fnVa=%.2fnVb=%.2fn,Sa,Sb,Va,Vb); 3.3输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9,输出要求有文字说明,取位2小数。参考源程序如下: main() float F,c; scanf(%f,&F); c=5*(F-32)/9; printf(输入的华氏温度为:%.2f,则摄氏温度为%.2f,f,c);3.4 已知三角形的三边长,求其面积。解:假设输入的三边能构成三角形,三角形的面积公式为: Area= 其中S=(a+b+c)/2。参考源程序如下:#include “math.h”Main() Float a,b,c,s,area;Printf(“请输入三角形的三边:”);Scanf(“%f,%f,%f”,&a,&b,&c);S=(a+b+c)/2.0;Area=sqrt(s*(s-a)*(s-b)*(s-c);Printf(“三角形的三边为:%7.2f, %7.2f, %7.2fn”,a,b,c);Prinft(“三角形的面积为:%7.2fn”,area); 第4章 选择结构程序设计4.1 写出下面表达式的值(设a=1,b=2,c=3,x=4,y=3)(1)a+bc&b=c(2)!ab&b!=c|x+y=x+y)?c-a:y-x(4)!(x=a)&(y=b)&0(5)!(a+b)+c-1&b+c/2(6)a|1+a&b&c解:(1)0;(2)1;(3)2;(4)0;(5)1;(6)1。4.2有三个整数a、b、c,由键盘输入,输出其中最大的数。参考源程序:main() int a,b,c,t; scanf(%d %d %d,&a,&b,&c); if(ab) if(ac) t=a; else t=c; else if(bc) t=b; else t=c; printf(%dn,t); 4.3给出一百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,8089分为B,7079分为C,6069分为D, 60分以下为E。参考源程序:main() int number,md;char c1; scanf(%d,&number); md=number/10; switch(md) case 10: case 9: c1=A;break; case 8: c1=B;break; case 7: c1=C;break; case 6: c1=D;break; case 5: case 4: case 3: case 2: case 1: case 0: c1=E;break; printf(%cn,c1); 4.4给一个不多于5位的正整数,要求:求出它是几位数;分别打印出每一位数字;按逆顺序打印出各位数字,例如原来为321,应输出123。参考源程序:main() int a,b,c,d,e,n;long m; scanf(%ld,&m); a=0.0001*m;b=10*(0.0001*m-a);c=100*(0.0001*m-a-0.1*b); d=1000*(0.0001*m-a-0.1*b-0.01*c);e=m-10000*a-1000*b-100*c-10*d; if(a!=0) n=5,printf(%d%d,%d,%d,%d,%d%d%d%d%d%dn,n,a,b,c,d,e,e,d,c,b,a); else if(b!=0) n=4,printf(%d %d,%d,%d,%d %d%d%d%dn,n,b,c,d,e,e,d,c,b); else if(c!=0) n=3,printf(%d %d,%d,%d %d%d%dn,n,c,d,e,e,d,c); else if(d!=0) n=2,printf(%d %d,%d %d%dn,n,d,e,e,d); else n=1,printf(%d %d %dn,n,e,e); 4.5企业发放的奖金根据利润提成。利润(I)低于或等于10万元的,奖金可提10%;利润高于10万元,低20万元(100000I200000)时,低于10万元的部分按10%提成,高于1000000元的部分,可提成7.5%;2000000I4000000,低于20万元的部分仍按上述方法提成(下同)高于20万元的部分按5%提成;4000000I6000000时,高于40万元的部分按3%提成,600000010000000时,超过100万元的部分按1%提成。从键盘输入当月利润I,求应发奖金总数。 要求:用if语句编程序;用switch语句编程序。 用if语句编程序: main() int a,b,c,d,e;float d1=0.01,d2=0.015,d3=0.03,d4=0.05,d5=0.075,d6=0.10; double jj,k;long i; scanf(%ld,&i); k=0.00001*i;a=k-10;b=k-6;c=k-4;d=k-2;e=k-0; if(a0) a=0; if(b0) b=0; if(c0) c=0; if(d0) d=0; jj=a*d1+(b-a)*d2+(c-b)*d3+(d-c)*d4+(e-d)*d5+(k-e)*d6; printf(jj=%.3fn,100000*jj); 用switch语句编程序: main() int a,b,c,d,e,n,x;float d1=0.01,d2=0.015,d3=0.03,d4=0.05,d5=0.075,d6=0.10; double jj,k;long i; scanf(%ld,&i); k=0.00001*i;a=k-10;b=k-6;c=k-4;d=k-2;e=k-0;x=k; switch(x) case 0:e=0; case 1:d=0; case 3:c=0; case 5:b=0; case 9:a=0; default:n=0; jj=a*d1+(b-a)*d2+(c-b)*d3+(d-c)*d4+(e-d)*d5+(k-e)*d6; printf(jj=%.3fn,100000*jj); 4.6输入四个整数,要求按大小顺序输出。 参考源程序:main() int a,b,c,d,t;scanf(%d,%d,%d,%d,&a,&b,&c,&d); if(ab) t=a,a=b,b=t; if(ac) t=a,a=c,c=t; if(ad) t=a,a=d,d=t; if(bc) t=b,b=c,c=t; if(bd) t=b,b=d,d=t; if(c1) h=0; else h=10; printf(%dn,h); 第5章 循环结构程序设计5.1求n!(n=1-20),(即求1!+2!+3!+4!+5!+20!)参考源程序: main() int n,i=1;long sum=0,s=1; scanf(%d,&n); while(i=n) s=s*i;sum=sum+s;i+; printf(sum=%ldn,sum); 5.2输入两个正整数m和n,求其最大公约数和最小公倍数。 main() long m,n,i=1,j,s; scanf(%ld,%ld,&m,&n); for(;i=m&i=n) j=m; else j=n; for(;!(j%m=0&j%n=0);j+); printf(s=%ld,j=%ldn,s,j); 5.3输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。参考源程序: #includestdio.h main() char c;int i=0,j=0,k=0,l=0; while(c=getchar()!=n) if(c=65&c=97&c=48&c=57) j+; else if(c=32) k+; else l+; printf(i=%d,j=%d,k=%d,l=%dn,i,j,k,l); 5.4求Sn=a+aa+aaa+aaaaa(有n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(n=5),n由键盘输入。参考源程序: #includemath.h main() int n,sum=0,i=1,s=2; scanf(%d,&n); while(i=100&x1000) a=0.01*x;b=10*(0.01*x-a);c=x-100*a-10*b; if(x=(pow(a,3)+pow(b,3)+pow(c,3) printf(%5d,x);x+; 5.6一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。编程序找出1000之内的所有完数,并按下面格式输出其因子:6itsfactorsare1、2、3参考源程序: main() int m,i,j,s; for(m=6;m10000;m+) s=1; for(i=2;im;i+) if(m%i=0) s=s+i; if(m-s=0) printf(%5d its fastors are 1 ,m);for(j=2;jm;j+) if(m%j=0) printf(%d ,j);printf(n); 或 main() int m,i,j,s; for(m=6;m1000;m+) s=m-1; for(i=2;im;i+) if(m%i=0) s=s-i; if(s=0) printf(%5d its fastors are 1 ,m);for(j=2;jm;j+) if(m%j=0) printf(%d ,j);printf(n); 5.7有一分数序列: 2/1,3/2,5/3,8/5,13/8,21/13求出这个数列的前20项之和。参考源程序: main() int i=1,n;double t,x=1,y=2,s,sum=0; scanf(%ld,&n); while(i=n) s=y/x;sum=sum+s;t=y;y=y+x;x=t;i+; printf(%fn,sum); 5.8一球从100米高度自由下落,每次落地后返回原高度的一半,再落下。求它在第10次落地时共经过多少米?第10次反弹多高?参考源程序: main() int i,n;double h=100,s=100; scanf(%d,&n); for(i=1;i=n;i+) h*=0.5;if(i=1) continue;s=2*h+s; printf(h=%f,s=%fn,h,s); 5.9猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。参考源程序: main() int i=1,sum=0; for(;i=0.00001); printf(%.3fn,x1); 5.11用二分法求方程在(-10,10)之间的根 2x3-4x2+3x-6=0参考源程序: main() double x1,x2,y1,y2;x1=-10;x2=10; doy1=2*x1*x1*x1-4*x1*x1+3*x1-6; x1=x1-y1/(6*x1*x1-8*x1+3);while(y1!=0); doy2=2*x2*x2*x2-4*x2*x2+3*x2-6; x2=x2-y2/(6*x2*x2-8*x2+3);while(y2!=0); printf(x1=%.3f,x2=%.3fn,x1,x2); 5.12打印以下图案 * * * * * * *参考源程序: #includemath.h main() int i=1,k,l,m; for(;i=49;i+) k=i%7;l=3-fabs(i-1)/7-3);m=fabs(i-4-7*(i-1)/7); if(k=1) printf(n); if(m=l) printf(*); else printf( ); printf(n); 第6章 数组6.1用筛选法求100以内的素数。参考源程序: main() int i,j,a100; for(i=2;i100;i+) ai=i; for(j=2;j=i;j+) if(ji) if(ai%j=0) break; if(ai-j=0) printf(%5d,ai); printf(n); 或 #includemath.h main() static int i,j,k,a98; for(i=2;i100;i+) ai=i;k=sqrt(i); for(j=2;j=ai;j+) if(j=k+1) printf(%5d,ai); printf(n); 6.2求一个矩阵对角线元素之和。解:以3*3矩阵为例,参考源程序如下: main() int i=0,j=0,a33,s1,s2; for(i=0;i3;i+) for(j=0;j0;i-) if(aiai-1) t=ai-1;ai-1=ai;ai=t; for(i=0;i10;i+)printf(%5d,ai);printf(n); 6.4将一个数组的值按逆序重新存放,例如,原来顺序为:8,6,5,4,1。要求改为:1,4,5,6,8。参考源程序: main() int i,b10; for(i=0;i-1;i-) printf(%5d,bi); printf(n);6.5 打印出以下杨辉三角形(要求打印出10行)。 1 11 121 1331 14641 15101051 参考源程序:main() static int m,n,k,b1515; b01=1; for(m=1;m15;m+) for(n=1;n=m;n+) bmn=bm-1n-1+bm-1n; printf(%-5d,bmn);printf(n); 6.6找出一个二位数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点。参考源程序:#define N 10#define M 10main()int I,j,m,n,flag1,flag2,aNM,max,maxj;/*输入二维数组array1*/printf(“输入二维数组的行数:”);scanf(“%d”,&n);pri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论