首页 C语言程序设计题库

C语言程序设计题库

举报
开通vip

C语言程序设计题库PAGEPAGE-42-郑州大学现代远程教育《C语言程序设计》课程学习指导书柳宏川编第1章绪论(一)本章学习目标掌握结构化程序设计的思想,结构化流程图描述,算法设计基础和良好程序设计风格。(二)本章重点、要点C语言特点,算法概念及NS图形描述,结构化程序设计思想,三种基本结构:顺序结构、选择结构和循环结构,使用良好的程序设计风格。(三)练习题1_1.什么是低级语言?1_2.什么是高级语言?1_3.面向过程语言的特点是什么?1_4.什么是算法?1_5.算法有什么特点?1_6.结构化算法的基本...

C语言程序设计题库
PAGEPAGE-42-郑州大学现代远程教育《C语言程序设计》课程学习指导书柳宏川编第1章绪论(一)本章学习目标掌握结构化程序设计的思想,结构化流程图描述,算法设计基础和良好程序设计风格。(二)本章重点、要点C语言特点,算法概念及NS图形描述,结构化程序设计思想,三种基本结构:顺序结构、选择结构和循环结构,使用良好的程序设计风格。(三)练习题1_1.什么是低级语言?1_2.什么是高级语言?1_3.面向过程语言的特点是什么?1_4.什么是算法?1_5.算法有什么特点?1_6.结构化算法的基本结构有哪些?1_7.结构化程序设计的 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 有哪些?第2章C语言程序的开发过程(一)本章学习目标熟悉C程序开发环境,熟练掌握调试工具的使用,掌握C语言程序结构与语法规则。(二)本章重点、要点C程序开发环境工具的使用,C语言程序结构与语法规则。(三)TurboC的操作指南开发一个C语言程序一般包括3个主要步骤:编辑,编译和连接。掌握调试C语言程序的全过程。编辑:根据求解算法,开发人员使用文本编辑器编辑代码,生成源程序代码,扩展名为.C。编译:编译时,编译器首先检查源程序中每条语句的词法和语法。当发现错误时,在屏幕上显示错误的位置、错误类型等相关信息。根据错误信息,重新使用编辑器进行查错并修改,然后重新编译直到所有的词法和语法错误都被排除。正确编译后产生二进制目标文件,扩展名为.OBJ。连接:编译后产生的目标文件是可重定位的程序模块,但不能直接运行。连接是将目标程序、库函数和其它目标程序连接到一起,生成可执行的程序。扩展名为.EXE。运行:源代码经过编译、连接,生成可执行程序后,就可以进行程序的运行了。编译过程发现的错误可分为两类。一类是局部语法错误。例如,缺失了分号、逗号,或者引用了错误的数据对象。另一类是程序内部上下文关系方面的错误。例如,需要使用的数据对象没有定义。连接时,也可能产生错误。例如,连接文件找不到等,具体不再叙述。源代码经过编译、连接,生成可执行程序后,还需要进行测试。测试的目的是发现程序的错误。一般通过输入一些实际数据来验证程序执行结果的正确性。如果程序执行中出现问题,或发现程序的输出结果不正确,需要设法找到出错的原因,并修改源程序,重新进行编译、连接,再测试和调试,不断反复,直到程序正确无误。第3章基本数据类型(一)本章学习目标熟练掌握标识符的概念,基本数据(整型、实型、字符型等),常量,转义符,变量,变量的赋值。(二)本章重点、要点标识符的组成规则,基本数据类型及对应的名称(整型、实型、字符型等),常量,转义符,变量,变量名,变量的赋值等。(三)练习题3_1.基本整型数据的输出。3_2.实型数据的输出。3_3.字符型数据的输出。3_4.C语言标识符的命名规则如何?3_5.C语言的基本数据类型有哪些?3_6.什么是常量?3_7.什么是变量?3_8.转义字符有什么作用?举例说明。3_9.字符串常量与字符常量的表示有什么不同?第4章算术运算符与算术表达式(一)本章学习目标掌握算术运算符,优先级,结合方向,表达式等基本概念,熟练使用C的算术表达式描述问题。(二)本章重点、要点算术运算符,优先级,结合方向,表达式,用算术表达式正确描述问题。(三)练习题4_1.输出整数num的个位数、十位数和百位数。4_2.设y=|x|1/2。当x的值为5.678时,计算y的值。4_3.编写程序,输入圆的半径,求该圆的面积与周长(保留三位小数)。4_4.输入两个整数,求二者的平方和及平方差。4_5.输入一个大写英文字母,求其后继(后面相邻)字母。 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 :“Z”的后继是“A”。第5章C语言程序的输出与输入(一)本章学习目标掌握C语言语句、学会函数调用,使用格式化输出函数printf和格式化输入函数scanf准确完成输入和输出操作,掌握ASCII码和转义符的概念并正确运用。(二)本章重点、要点C语言语句,函数调用,格式化输出函数printf()、转义符,ASCII码,格式化输入函数scanf(),putchar()函数,getchar()函数等 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 。(三)练习题5_1.编写程序求多项式ax3+bx2+c的值(键盘输入a=2,b=3,c=4,x=1.414)。5_2.已知华氏温度,根据 公式 小学单位换算公式大全免费下载公式下载行测公式大全下载excel公式下载逻辑回归公式下载 :C=5/9(F-32),求摄氏温度C(结果保留两位小数)。5_3.使用宏定义定义符号常量PI,其值为3.14159,并使用符号常量,求圆半径r=2.456时的圆周长、圆面积。5_4.用getchar()分别输入‘A’,‘B’,‘C’,并赋值给a,b,c,然后将其转换成对应的小写字母,用putchar()将其输出。5_5.若a=3,b=4,c=5,编写程序,要求用一个scanf()函数完成输入,按以下要求的格式输出:x1=a+b+c=3+4+5=12x2=a-b-c=3-4-5=-6第6章流程控制—选择控制结构(一)本章学习目标掌握关系运算符,逻辑运算符,赋值运算符的运算规则,正确理解并熟练掌握运算符的优先级和结合方向,进一步理解C语言的表达式。熟练掌握if语句,switch语句continue语句和break语句的语法结构,正确使用语句实现应用要求,掌握C代码嵌套结构。(二)本章重点、要点关系运算符,逻辑运算符,赋值运算符、优先级、结合方向,表达式。if语句,switch语句continue语句和break语句,结构的嵌套。(三)练习题6_1.使用if语句,求解两个数中的最大值。6_2.使用switch语句,求解简单算术表达式的值。6_3.使用嵌套的if语句,判断一个整数能否被3或5整除。6_4.使用嵌套的switch语句,判断一个整数能否被3或5整除。6_5.输入一个字符,若输入的为大写英文字母,则输出其对应的小写英文字母;若输入的为小写英文字母,则输出其对应的大写英文字母;若输入的非英文字母,则原样输出。6_6.编写程序,输入一个年份,判断其是否为闰年。第7章流程控制—循环控制结构(一)本章学习目标熟练掌握三种HYPERLINK\l"_Toc252774262"循环控制语句:while语句,do…while语句,for语句的语法并正确运用,能正确进行循环的嵌套HYPERLINK\l"_Toc252774267",掌握continue语句,break语句,goto语句的使用方法。准确掌握循环初始条件、循环终止条件、循环体和循环变量的概念。(二)本章重点、要点HYPERLINK\l"_Toc252774262"循环控制语句:while语句,do…while语句,for语句,循环初始条件、循环终止条件、循环体和循环变量,循环的嵌套HYPERLINK\l"_Toc252774267",辅助控制语句,continue语句,break语句,goto语句。(三)练习题7_1.用while语句,求连加式1+2+...+n(n>2)的值。7_2.用do…while语句,求连加式1+2+...+n(n>2)的值。7_3.求解奇数的连加式1+3+5+...+n(n>10)的值。7_4.将如图所示的三角形图案显示到屏幕上。7_5.判断一个整数是否为素数。第8章函数(一)(一)本章学习目标熟知函数的结构,正确进行函数定义,掌握函数头部,HYPERLINK\l"_Toc252772604"函数体,函数的返回值等概念,理解函数的功能,理解函数参数的意义,掌握有参函数的调用和无参函数的调用,掌握运用函数调用的方式,掌握函数的声明方法,理解函数的原型的概念。(二)本章重点、要点函数的定义,函数头部,HYPERLINK\l"_Toc252772604"函数体,函数的值,返回语句,函数的功能,函数的调用,有参函数的调用,无参函数的调用,函数调用的方式,函数的声明与函数的原型。(三)练习题8_1.编写程序,通过调用函数imin,求两个表达式的最小值。8_2.编写程序,通过调用PtrStar函数,输出4行“@”号,每行10个。8_3.编写程序,输入一个年份,通过调用函数判断其是否为闰年。8_4.编写程序,输入两个数,输出其中绝对值最大的数。要求:求绝对值和求最大值分别使用函数完成,在求最大值的函数中调用求绝对值的函数。。8_5.编写函数,完成显示下列所示的三角形图案,行数由函数参数决定。8_6.编写程序,通过调用【实例8_5】中的函数,输出三个三角形的图案。第9章数组(一)本章学习目标张确使用一维数组和二维数组去解决问题。学会使用数组作为函数参数、数组元素作为函数的参数和数组名作为函数参数的方法。(二)本章重点、要点一维数组,一维数组的定义,一维数组元素的引用,一维数组在内存中的存储,一维字符数组的说明。二维数组,维数组的定义,二维数组元素的引用,二维数组在内存中的存储。数组作为函数参数,数组元素作为函数的参数,数组名作为函数参数。(三)练习题9_1.用随机函数产生15个100以内的随机整数存入一维数组,然后分三行输出,每行5个数9_2.将一个一维数组a[9]中各元素值按行的顺序放入二维数组b[3][3]中。9_3.将一个二维数组b[5][5]中各元素值列优先的顺序放入一维数组a[25]中。9_4.有一个m×n矩阵,各元素值由随机数产生,求其转置矩阵并输出。9_5.有一个m×n矩阵,找出最大元素值及其最大元素值所在的行、列位置。9_6.将矩阵M(n,n)对角线上的元素置为1,其余元素置为0。第10章结构体与共用体(一)本章学习目标掌握并正确使用结构体类型、结构体与数组,共用体,共用体类型。(二)本章重点、要点结构体类型的定义,结构体变量的定义,结构体变量的引用,结构体成员变量的引用,结构体变量的初始化。结构体与数组,共用体,共用体类型和共用体变量的定义,共用体变量的引用。(三)练习题10_1.设有学生信息如下:学号(长整型)、姓名(字符串型)、年龄(整型)、课程1成绩(实型)、课程2成绩(实型)、课程3成绩(实型)、课程4成绩(实型)、课程5成绩(实型)、课程6成绩(实型)、课程7成绩(实型)、总分(实型)、平均分(实型)。试编写程序,输入3个学生的上述信息,计算每个学生的总分、平均分,然后输出每个学生学号、姓名、总分、平均分。10_2.设有学生信息如下:学号(长整型)、姓名(字符串型)、出生年月(其中含有年份、月份、日,均为整型)。试编写程序,输入5个学生的上述信息,输出所有学生的学号、姓名和年龄。第11章指针(一)(一)本章学习目标变量的指针与指针变量,指针变量的定义与引用,指针变量的引用。(二)本章重点、要点变量的指针与指针变量,指针变量的定义与引用,指针变量的引用。(三)练习题11_1.编写函数用指针变量按从小到大的顺序输出三个整数。11_2.输入n(不大于20)个单精度数存入一维数组,编写函数用指针变量处理数组元素的方式将其逆序存放后输出。n从键盘输入。11_3.利用指针编写函数用选择法对整数数组排序(降序)。11_4.利用指针编写程序,从键盘上输入一串字符(以回车键为结束),将其以字符串形式存入一维字符数组,然后再输出该字符型数组中的字符串。11_5.利用指针编写一个函数计算一个字符串的长度。第12章文件(一)本章学习目标掌握文件的概念并正确使用文件,掌握文件的打开与关闭方式,使用函数对文件进行读写操作。(二)本章重点、要点文件,文件名,普通文件和设备文件,ASCII文件和二进制文件,流文件,文件指针,文件的打开与关闭,文件打开函数,文件关闭函数。文件的读/写操作,字符读/写函数,字符串读/写函数。文件的数据块读/写函数,格式化读/写函数,文件检测函数,文件的随机读写。(三)练习题12_1.利用文本编辑软件在磁盘上建立一个有n个学生的学号、姓名及英语、数学和计算机三门课程成绩的数据文件。编写程序将建立的数据文件读出且求出每个学生的平均成绩。12_2用定义结构类型的方法,编写程序建立一个具有学生学号、姓名、总分和联系电话的 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 文件。12_3编写程序,利用第12_2建立的记录文件,从键盘上输入一个学号,查寻该位同学信息。12_4编写程序,将第12_3题建立的文件复制到另一个文件。第13章运算符与表达式(一)本章学习目标深入理解运算符和表达式,掌握位运算方法。(二)本章重点、要点运算符与表达式,赋值运算符,复合赋值运算符,赋值表达式,赋值运算符的优先级和结合方向。逗号运算符与逗号表达式,逗号表达式的求解顺序,逗号运算符的优先级,逗号运算符的扩展形式。条件运算符与条件表达式,条件运算符的求解顺序,条件运算符的优先级,条件运算符的结合方向,条件表达式的其它形式。自增自减运算符,前置运算,后置运算,自增自减运算符的优先级与结合方向,位运算,位运算符,位运算的功能,与位运算有关的复合赋值运算符,不同长度的数据的位运算,表达式的求解。(三)练习题13_1.利用条件运算符实现大小写字母的转换。13_2.使用for循环求1至100的和。要求将所有的命令放入一个for循环结构。13_3.将下列符号函数使用一个条件表达式完成。13_4.若inta=0,b=1,c=2,判断下列表达式执行后a,b,c及表达式的值逻辑表达式a++&&b++&&c++逻辑表达式++a&&b++&&c++逻辑表达式++a&&--b&&c++逻辑表达式a++||b++||c++逻辑表达式++a||b++||c++逻辑表达式a++||--b||c++逻辑表达式a++||b++&&(c-=2)逻辑表达式a++&&b++||(c-=2)逻辑表达式++a&&b++||(c-=2)13_5.若a=1,b=2,c=3,d=4,m=1,n=3,则逻辑表达式(m=a>b)&&(n=c>d)13_6.解释x!=0.0&&y/x>1.0的功能。第14章变量的存储(一)本章学习目标掌握变量的存储概念,理解变量的类别和作用域。(二)本章重点、要点变量的存储单元,整型变量在内存中的存储,字符型变量在内存中的存储,实型变量在内存中的存储。变量的作用域,内部变量,外部变量,变量的生存期,auto变量,全局变量,static变量,register变量。(三)练习题14_1.在C语言中,变量的存储类别有哪4种?14_2.什么是外部变量?其特点有哪些?14_3.寄存器变量有什么特点?14_4.什么是变量的作用域?14_5.什么是变量的生存期?第15章指针(二)(一)本章学习目标深入理解指针,掌握高层次指针应用,掌握链表的使用。(二)本章重点、要点指针与数组,一维数组与一维数组指针,二维数组的指针及数组元素的访问,字符串指针。指针数组,指针数组,指向指针的指针,main函数的参数,函数指针。结构体指针,指向结构体的指针,指向结构体数组的指针,存储管理函数。链表,链表的概念,单链表的基本操作。(三)练习题15_1.编写一个程序,用12个月份的英文名称初始化一个字符指针数组,当键盘输入整数为1到12时,显示相应的月份名,键入其他整数时显示错误信息。15_2.调用MaxMin函数,返回数组的最大值和最小值。第16章函数(二)(一)本章学习目标深入理解函数,从存储方面解释函数的调用。(二)本章重点、要点函数调用时的内存,函数的活动,程序运行时存储空间的划分,函数的活动记录。参数的传递机制,C语言参数传递,指针参数,数组参数。递归函数,直接递归与间接递归,递归函数的调用过程。(三)练习题16_1.设计一个函数把两个整数形参中较大的那个数的地址作为函数值返回,并编写主函数实现调用。16_2.编写函数,比较两个字符串大小。若相等返回0,大于时返回1,否则返回-1。第17章预处理命令(一)本章学习目标正确理解预处理命令的概念,掌握预处理命令的使用方法。(二)本章重点、要点宏定义,无参宏定义,带参宏定义,宏的作用域。带参的宏与函数的区别,文件包含,条件编译,“#ifdef”命令,“#ifndef”命令,“#if”命令,条件编译和条件语句的比较。(三)练习题17_1.C语言的预处理有哪些?17_2.预处理命令在书写格式上有什么要求?17_3.#include<文件名>和#include“文件名”有什么不同?17_4.条件编译和条件语句有什么区别?参考答案第1章绪论1_1.什么是低级语言?答:低级语言较依赖于所在的计算机系统,也称为面向机器的语言。使用低级语言编写的程序,移植性较差。低级语言主要包括机器语言和汇编语言。机器语言是由二进制代码“0”和“1”组成的若干个数字串。用机器语言编写的程序,称为机器语言程序。机器语言程序能够被计算机直接识别并执行。但是,程序员直接编写或维护机器语言程序是很难完成的。汇编语言是一种借用助记符表示的程序设计语言。汇编语言的每条指令都对应着一条机器语言代码。汇编语言也是面向机器的,即不同类型的计算机系统使用的汇编语言也不同。1_2.什么是高级语言?答:高级语言编写的程序易读,易修改,移植性好。但使用高级语言编写的程序不能直接在机器上运行,必须经过语言处理程序的转换,才能被机器识别。按照转换方式的不同,可将高级语言分为解释型和编译型两大类。1_3.面向过程语言的特点是什么?答:(1)采用模块分解与功能抽象的方法,自顶向下,逐步求精。(2)按功能划分为若干个基本的功能模块,形成一个树状结构。各模块间的关系尽可能简单,功能上相对独立。每一个功能模块内部都是由顺序、选择或循环三种基本结构组成。1_4.什么是算法?答:问题的求解过程,是对数据对象的加工过程。问题的求解过程包括两个方面的内容,即对问题涉及的“数据”进行描述和对“加工过程”进行描述。对“数据”的描述,称为“数据结构”,对“加工过程”的描述,称为算法。1_5.算法有什么特点?答:算法具有以下特点:(1)有穷性。一个算法包含的操作步骤是有穷的,而不能是无穷的,并且操作时一般还要求是合理可行的。(2)确定性。算法的每个操作都是确定的,而不应该具有二义性。(3)有零个或多个输入。“输入”指的是执行算法时,需要从外界获取的必要信息。(4)有一个或多个输出。算法的目的是为了得到计算的结果。一般地,计算结果即为输出。没有输出的算法是没有意义的。(5)有效性。算法的每一个操作都应能有效地执行,并得到确定的结果。1_6.结构化算法的基本结构有哪些?答:(1)顺序结构。(2)选择结构。(3)循环结构。1_7.结构化程序设计的标准有哪些?答:一个结构化的程序,应遵循下面的标准:(1)程序符合“正确第一,效率第二”的质量标准。(2)程序由“模块”组成,模块之间可以跳转但不能随意地跳转。(3)程序只有一个入口,一个出口。(4)程序由顺序结构、选择结构和循环三种结构组成。(5)程序没有死循环。第2章C语言程序的开发过程2_1.在屏幕上输出一行信息。2_2.求两个数的平均值。2_3.输入两个整数,求二者的最大值。(五)参考答案【实验程序2_1】在屏幕上输出一行信息。/*程序功能:在屏幕上输出一行信息*/#includeintmain(){printf("WelcometoC!\n");return0;}2_2.求两个数的平均值。/*程序功能:求两个数的平均值*/#includeintmain(){floatnum1,num2,average;num1=97.45;num2=15.3;average=(num1+num2)/2;printf("Theaverageis%f\n",average);return0;}2_3.输入两个整数,求二者的最大值。#includeintimax(intx,inty){if(x>y)returnx;/*若x>y,返回x的值*/elsereturny;/*否则,返回y的值*/}intmain(){intnum1,num2,MaxValue;scanf("%d%d",&num1,&num2);/*输入两个整数*/MaxValue=imax(num1,num2);/*调用imax函数,计算结果赋值给MaxValue*/printf("Themaxvalueis%d\n",MaxValue);return0;}第3章基本数据类型3_1.基本整型数据的输出。#includeintmain(){intnum1,num2=16;num1=15;printf("%d,%o,%x\n",14,14,14);printf("%d,%o,%x\n",num1,num1,num1);printf("%d,%o,%x\n",num1+num2,num1+num2,num1+num2);printf("%d,%6d,%3d\n",1234,1234,1234);return0;}3_2.实型数据的输出。#includeintmain(){floata=1.23,b;b=45.0;printf("%f,%e\n",50.0,50.0);printf("%f,%e\n",a,a);printf("%f,%e\n",a+b,a+b);printf("%7.2f,%5.4f\n",12.35648,12.35648);printf("%7.2e,%5.4e\n",12.35648,12.35648);return0;}3_3.字符型数据的输出。#includeintmain(){charch='a';printf("%c\n",ch);/*输出变量ch当前的值*/printf("%c\n",'b');/*输出字符“b”*/printf("%d\n",ch);/*输出字符变量ch当前值的ASCII码值*/printf("%d\n",'b');/*输出字符“b”的ASCII码值*/return0; }3_4.C语言标识符的命名规则如何?答:标识符是由系统或程序设计者为数据对象指定的名字。标识符是以英文字母(a~z,A~Z)或者下划线“_”开头,可以包含英文字母、数字(0~9)或下划线的,连续的字符序列。例如,字符串A,a,num1,_3c等都是3_5.C语言的基本数据类型有哪些?答:C语言的基本数据类型有:整型(int)、实型(float和double)、字符型(char)和枚举型(enum)。3_6.什么是常量?答:在程序的运行过程中,其值不能被改变的量,称为常量。由常量的名字,可以确定其含义。因此,常量也称为字面量。例如,12,3.29,'a',"CProgram"都是C语言的常量。3_7.什么是变量?答:在程序运行的过程中,其值可以改变的量称为变量。每一个变量都必须有一个名字,即变量名。变量的命名应遵循标识符的命名规则。3_8.转义字符有什么作用?举例说明。答:在C语言中,还有一类特殊的字符常量,这种字符是以反斜杠(\)开头的。字符“\”将其后面的字符转变成另外的意义,因而称为转义字符。转义字符一般表示ASCII字符集中不可打印的控制字符和特定功能的字符。例如,\141的含义是,将八进制的“141”(十进制的“97”)转换成ASCII码值为97的字符,\141等价于字符a。\n表示换行,将当前位置移到下一行开头。3_9.字符串常量与字符常量的表示有什么不同?答:字符串常量是用一对双撇号括起来的字符序列。例如,"IloveChina""CProgram""A"都是字符串常量。字符常量指的是用一对单撇号括起来的单个字符。例如,?,A,8,都是字符常量。第4章算术运算符与算术表达式4_1.输出整数num的个位数、十位数和百位数。#includeintmain(){intnum=456;printf("%d,%d,%d",num%10,num/10%10,num/100%10);return0;}4_2.设y=|x|1/2。当x的值为5.678时,计算y的值。#include#includeintmain(){doublex,y;x=5.678;y=sqrt(fabs(x));printf("y=%lf\n",y);return0;}4_3.编写程序,输入圆的半径,求该圆的面积与周长(保留三位小数)。/*程序功能:输入圆的半径,计算圆的面积与周长*/#includeintmain(){floatradius,area,circum;printf("Inputradius:");scanf("%f",&radius);area=3.14*radius*radius;circum=2*3.14*radius;printf("Areais:\n%6.3f\n",area);printf("Circumferenceis:\n%6.3f\n",circum);return0;}4_4.输入两个整数,求二者的平方和及平方差。/*程序功能:计算两个整数的平方和与平方差*/#includeintmain(){intnum1,num2;intSquareDif,SquareSum;printf("Inputtwonumbers:");scanf("%d%d",&num1,&num2);SquareSum=num1*num1+num2*num2;SquareDif=num1*num1-num2*num2;printf("%d^2+%d^2=%d\n",num1,num2,SquareSum);printf("%d^2-%d^2=%d\n",num1,num2,SquareDif);return0;}4_5.输入一个大写英文字母,求其后继(后面相邻)字母。规定:“Z”的后继是“A”。/*程序功能:求大写英文字母的后继*/#includeintmain(){charch,BackCh;printf("Inputacapitalletter:");ch=getchar();BackCh=(ch-64)%26+65;printf("%c'sbackis%c\n",ch,BackCh);return0;}第5章C语言程序的输出与输入5_1.编写程序求多项式ax3+bx2+c的值(键盘输入a=2,b=3,c=4,x=1.414)。#includeintmain(){floata,b,c,x,y;printf("Inputa,b,c,x:");scanf("%f%f%f%f",&a,&b,&c,&x);/*数据之间以空格分隔*/y=a*x*x+b*x*c;printf("%fx^2+%fx+%f=%f\n",a,b,c,y);getchar();getchar();return0;}变化二:#includeintmain(){floata,b,c,x,y;printf("Inputa,b,c,x:");scanf("%f%f%f%f",&a,&b,&c,&x);/*数据之间以空格分隔*/y=a*x*x+b*x*c;printf("%.0fx^2+%.0fx+%.0f=%f\n",a,b,c,y);getchar();getchar();return0;}变化三:#includeintmain(){inta,b,c;floatx,y;printf("Inputa,b,c,x:");scanf("%d%d%d%f",&a,&b,&c,&x);/*数据之间以空格分隔*/y=a*x*x+b*x*c;printf("%dx^2+%dx+%d=%f\n",a,b,c,y);getchar();getchar();return0;}运行结果参见变化二的结果图。5_2.已知华氏温度,根据公式:C=5/9(F-32),求摄氏温度C(结果保留两位小数)。#includeintmain(){floatf,c;printf("Inputf:");scanf("%f",&f);c=5.0/9*(f-32);/*因为整除的原因,使用了5.0,而不是5*/printf("C=%f\n",c);return0;}5_3.使用宏定义定义符号常量PI,其值为3.14159,并使用符号常量,求圆半径r=2.456时的圆周长、圆面积。#include#definePI3.14159intmain(){floatr,c,s;printf("Inputr:");scanf("%f",&r);c=2*PI*r;s=PI*r*r;printf("C=%f\nS=%f\n",c,s);return0;}注:也可以采用赋值的方式对r赋值2.456。5_4.用getchar()分别输入‘A’,‘B’,‘C’,并赋值给a,b,c,然后将其转换成对应的小写字母,用putchar()将其输出。#include#includeintmain(){chara,b,c;printf("InputUpperCharactersA,B,C:");/*输入时ABC之间不能有空格!*/a=getchar();b=getchar();c=getchar();a=a+32;b=b-'A'+'a';c=tolower(c);printf("a=");putchar(a);putchar('\n');printf("b=");putchar(b);putchar('\n');printf("c=");putchar(c);putchar('\n');return0;}5_5.若a=3,b=4,c=5,编写程序,要求用一个scanf()函数完成输入,按以下要求的格式输出:x1=a+b+c=3+4+5=12x2=a-b-c=3-4-5=-6#include#includeintmain(){inta,b,c;printf("a=");scanf("%d",&a);printf("b=");scanf("%d",&b);printf("c=");scanf("%d",&c);printf("x1=a+b+c=%d+%d+%d=%d\n",a,b,c,a+b+c);printf("x1=a-b-c=%d-%d-%d=%d\n",a,b,c,a-b-c);return0;}第6章流程控制—选择控制结构6_1.使用if语句,求解两个数中的最大值。/*程序功能:输入两个数,输出其中的大者*/#includeintmain(){intnum1,num2;printf("Inputtwonumbers:");scanf("%d%d",&num1,&num2);if(num1>=num2){printf("maxnumis%d",num1);}else{printf("maxnumis%d",num2);}return0;}6_2.使用switch语句,求解简单算术表达式的值。intmain(){intnum1,num2,result;charch;printf("Inputaexpression(e.g.3+5):");scanf("%d%c%d",&num1,&ch,&num2);switch(ch)/*根据ch的值,选择分支执行*/{case'+':result=num1+num2;break;/*求和完毕,退出当前switch语句*/case'-':result=num1-num2;break;/*求差完毕,退出当前switch语句*/case'*':result=num1*num2;break;/*求积完毕,退出当前switch语句*/case'/':result=num1/num2;break;/*求商完毕,退出当前switch语句*/default:printf("Inputerror!\n");break;}printf("%d%c%d=%d\n",num1,ch,num2,result);return0;}6_3.使用嵌套的if语句,判断一个整数能否被3或5整除。#includeintmain(){intnum;printf("Inputanumber:");scanf("%d",&num);if(num%3==0)/*num能被3整除*/{if(num%5==0)/*num既能被3整除,又能被5整除*/printf("%dcanbedividedby3and5!\n",num);else/*num能被3整除,但不能被5整除*/printf("%dcanbedividedby3only!\n",num);}else/*num不能被3整除*/{if(num%5==0)/*num不能被3整除,但能被5整除*/printf("%dcanbedividedby5only!\n",num);else/*num既不能被3整除,也不能被5整除*/printf("%dcannotbedividedby3or5!\n",num);}return0;}6_4.使用嵌套的switch语句,判断一个整数能否被3或5整除。#includeintmain(){intnum;printf("Inputanumber:");scanf("%d",&num);switch(num%3==0){case0:switch(num%5==0){case0:printf("%dcannotbedividedby3or5!\n",num);break;case1:printf("%dcanbedividedby5only!\n",num);break;}break;case1:switch(num%5==0){case0:printf("%dcanbedividedby3only!\n",num);break;case1:printf("%dcanbedividedby3and5!\n",num);break;}break;}return0;}6_5.输入一个字符,若输入的为大写英文字母,则输出其对应的小写英文字母;若输入的为小写英文字母,则输出其对应的大写英文字母;若输入的非英文字母,则原样输出。#includeintmain(){charch1,ch2;printf("Inputacharacter:");scanf("%c",&ch1);switch(ch1>=65&&ch1<=90){case0:/*非大写英文字母*/switch(ch1>=97&&ch1<=122){case0:/*非小写英文字母*/ch2=ch1;break;case1:/*是小写英文字母*/ch2=ch1-32;break;}break;case1:/*是大写英文字母*/ch2=ch1+32;break;}printf("Input:%c\nOutput:%c\n",ch1,ch2);return0;}6_6.编写程序,输入一个年份,判断其是否为闰年。分析:一个年份,当且仅当符合下列两个条件之一的,即是闰年。能被4整除,但不能被100整除的年份。例如,1992年、2008年。能被400整除的年份。例如,2000年、2400年。用flag的值,表示是否为闰年。如果flag的值为1,表示闰年;如果是0,表示非闰年。#includeintmain(){intyear,flag;printf("Inputayear:");scanf("%d",&year);if(year%4==0){if(year%100!=0)flag=1;else{if(year%400==0)flag=1;elseflag=0;}}elseflag=0;if(flag)printf("%disaleapyear\n",year);elseprintf("%disnotaleapyear\n",year);return0;}第7章流程控制—循环控制结构7_1.用while语句,求解连加式1+2+…+n(n>2)的值。#includeintmain(){inti=1,sum=0,n;printf(“Inputanumber:”);scanf(“%d”,&n);while(i<=n){sum=sum+i;i=i+1;}printf(“1+2+...+%d=%d\n”,n,sum);return0;}7_2.用do…while语句,求连加式1+2+...+n(n>2)的值。#includeintmain(){inti=1,n;longproduct=1;printf("Inputanumber:");scanf("%d",&n);do{product=product*i;i=i+1;}while(i<=n);/*累乘i,直到i超过n为止*/printf("1*2*...*%d=%ld\n",n,product);return0;}7_3.求解奇数的连加式1+3+5+...+n(n>10)的值。#includeintmain(){inti,sum=0;intn;printf("Inputanumber:");scanf("%d",&n);for(i=1;i<=n;i=i+2){sum=sum+i;}printf("1+3+5+...+%d=%d\n",i-2,sum);return0;}7_4.将如图所示的三角形图案显示到屏幕上。分析:需要循环输出3行“*”;第i行需要输出3-i个空格和2i-1个“*”。可选用双层的嵌套循环。外层循环控制重复输出行;内层循环实现在相应行输出若干空格和若干“*”。#include#includeintmain(){inti,j;for(i=1;i<=3;i=i+1){for(j=1;j<=3-i;){printf("");j=j+1;}/*第i行输出3-i个空格*/j=1;while(j<=2*i-1){printf("*");j=j+1;}/*第i行输出2*i-1个“*”*/printf("\n");/*换行*/}return0;}7_5.判断一个整数是否为素数。#includeintmain(){inti,num;printf("Inputanumber:");scanf("%d",&num);for(i=2;iintimin(intx,inty){if(x>y)returny;elsereturnx;}intmain(){intnum1,num2,result;scanf("%d%d",&num1,&num2);result=imin(num1+num2,num1*num2);printf("result=%d\n",result);result=imin(5*6,4.6);printf("result=%d\n",result);return0;}8_2.编写程序,通过调用PtrStar函数,输出4行“@”号,每行10个。#includevoidPrtStar(){printf("@@@@@@@@@@\n");}intmain(){inti=0;while(i<4){PrtStar();i=i+1;}return0;}运行结果为:8_3.编写程序,输入一个年份,通过调用函数判断其是否为闰年。#includeintleap(intyear)运行结果1为:{intflag;if(year%4==0){if(year%100!=0)flag=1;else{运行结果2为:if(year%400==0)flag=1;elseflag=0;}}elseflag=0;returnflag;}intmain(){intyear,flag;printf("Inputayear:");scanf("%d",&year);if(leap(year)==1)printf("%disaleapyear\n",year);elseprintf("%disnotaleapyear\n",year);return0;}8_3.变化一:#includeintleap(intyear){intflag=0;if((year%4==0)&&(year%100!=0))flag=1;if(year%400==0)flag=1;returnflag;}intmain(){intyear,flag;printf("Inputayear:");scanf("%d",&year);if(leap(year)==1)printf("%disaleapyear\n",year);elseprintf("%disnotaleapyear\n",year);return0;}运行结果参见8_3的运行结果。8_3.变化二:#includeintleap(intyear){return(((year%4==0)&&(year%100!=0))||(year%400==0));}intmain(){intyear,flag;printf("Inputayear:");scanf("%d",&year);if(leap(year)==1)printf("%disaleapyear\n",year);elseprintf("%disnotaleapyear\n",year);return0;}运行结果参见8_3的运行结果。8_3.变化三:#includeintleap(intyear){return((!(year%4)&&(year%100))||(!(year%400)));}intmain(){intyear,flag;printf("Inputayear:");scanf("%d",&year);if(leap(year)==1)printf("%disaleapyear\n",year);elseprintf("%disnotaleapyear\n",year);getchar();getchar();return0;}运行结果参见8_3的运行结果。8_4.编写程序,输入两个数,输出其中绝对值最大的数。要求:求绝对值和求最大值分别使用函数完成,在求最大值的函数中调用求绝对值的函数。。#includefloatabsolute(floatx){if(x>0)returnx;elsereturn-x;}floatfmax(floatx,floaty){if(absolute(x)voidstar(intn){inti,j;for(i=1;i<=n;i=i+1){for(j=1;j<=n-i;){printf("");j=j+1;}/*第i行输出n-i个空格*/j=1;while(j<=2*i-1){printf("*");j=j+1;}/*第i行输出2*i-1个"*"*/printf("\n");/*换行*/}}intmain(){star(5);return0;}8_6.编写程序,通过调用【实例8_5】中的函数,输出三个三角形图案。#includevoidstar(intn){inti,j;for(i=1;i<=n;i=i+1){for(j=1;j<=n-i;){printf("");j=j+1;}/*第i行输出n-i个空格*/j=1;while(j<=2*i-1){printf("*");j=j+1;}/*第i行输出2*i-1个"*"*/printf("\n");/*换行*/}}intmain(){inti;for(i=4;i<7;i=i+1)star(i);getchar();return0;}运行结果为:注:本例打印了3个不同行数的三角形,大家可以打印三个相同的三角形。第9章数组9_1.用随机函数产生15个100以内的随机整数存入一维数组,然后分三行输出,每行5个数#include#include#includeintmain(){inta,c[15];srand(time(0));/*此处用于初始化随机数函数*/for(a=0;a<15;a=a+1)c[a]=rand()%101;for(a=0;a<15;a=a+1){if(a%5==0)printf("\n");printf("%8d",c[a]);}return0;}注:因为是随机数,每次运行结果可能不同。9_2.将一个一维数组a[9]中各元素值按行的顺序放入二维数组b[3][3]中。#include#include#includeintmain(){inti,j,a[9],b[3][3];srand(time(0));for(i=0;i<9;i=i+1)a[i]=rand();for(i=0;i<9;i=i+1)printf("%7d",a[i]);printf("\n");for(i=0;i<3;i=i+1)for(j=0;j<3;j=j+1)b[i][j]=a[i*3+j];for(i=0;i<3;i=i+1){for(j=0;j<3;j=j+1)printf("%8d",b[i][j]);printf("\n");}return0;}9_3.将一个二维数组b[5][5]中各元素值按列优先的顺序放入一维数组a[25]中。#includeintmain(){inti,j,k,a[25],b[5][5];srand(time(0));for(i=0;i<5;i=i+1)for(j=0;j<5;j=j+1)b[i][j]=rand();for(i=0;i<5;i=i+1){for(j=0;j<5;j=j+1)printf("%8d",b[i][j]);printf("\n");}printf("\n");k=0;for(i=0;i<5;i=i+1)for(j=0;j<5;j=j+1){a[k]=b[j][i];k=k+1;}for(i=0;i<24;i=i+1)printf("%6d",a[i]);return0;}9_4.有一个m×n矩阵,各元素值由随机数产生,求其转置矩阵并输出。#include#include#includeintmain(){inti,j,a[4][5],b[5][4];srand(time(0));for(i=0;i<3;i=i+1)for(j=0;j<4;j=j+1)a[i][j]=rand();for(i=0;i<3;i=i+1)for(j=0;j<4;j=j+1)b[j][i]=a[i][j];printf("Thesourcearrayis:\n");for(i=0;i<3;i=i+1){for(j=0;j<4;j=j+1)printf("%8d",a[i][j]);printf("\n");}printf("Thetransposeis:\n");for(i=0;i<4;i=i+1){for(j=0;j<3;j=j+1)printf("%8d",b[i][j]);print
本文档为【C语言程序设计题库】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
宋先生
暂无简介~
格式:doc
大小:5MB
软件:Word
页数:0
分类:互联网
上传时间:2021-10-17
浏览量:51