《C语言程序设计》期末程序设计练习题库12月11日更新.pdf_第1页
《C语言程序设计》期末程序设计练习题库12月11日更新.pdf_第2页
《C语言程序设计》期末程序设计练习题库12月11日更新.pdf_第3页
《C语言程序设计》期末程序设计练习题库12月11日更新.pdf_第4页
《C语言程序设计》期末程序设计练习题库12月11日更新.pdf_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

成都大学信息科学与技术学院 C 语言程序设计期末程序设计练习题库 第 3 章 程序流程 1、写程序,判断某一年是否闰年。 (判断闰年条件:非整百年数除以 4,无余为闰,有余为平;整百年 数除以 400,无余为闰有余平。 ) 2、输入三个数 a,b,c,要求按由小到大的顺序输出。 3、打印出 100-999 之间所有的“水仙花数” ,所谓“水仙花数”是指一个三位数,其各位数字立方和等于 该数本身。 4、输出 101 至 1000 以内的所有的质数。 5、运输公司对用户计算运费。距离(s)越远,每公里运费越低。具体标准如下: s250 (km) 没有折扣 250=s500 (km) 2%折扣 500=s1000(km) 5%折扣 1000=s2000(km) 8%折扣 2000=s3000(km) 10%折扣 3000=s (km) 15%折扣 设每公里每吨货物的基本运费为 p,货物重为 w,距离为 s,折扣为 d,则总运费计算公式为: f=p*w*s*(1-d) 编程要求:1)输入 p、w、s 数据,能够输出总运费。 2)用 switch 结构实现编程。 6、编写程序求下列分段函数的值。 0 x-5 f(x)= 5x 2+5 -5x5 10x-10 x5 7、编写程序输出 100-1000 中 17 的倍数,每行输出 5 个数,每个数占 5 位。 8、有一组序列:2/1 3/2 5/3 8/5 13/8 21/13 34/21 55/34 ,编程计算前 20 项的和,并输 出计算结果。 9、输入一串字符,以回车键作为结束,统计出其中英文字母、数字和其他字符的个数。 10.编程计算 2!+4!+6!+8!+10!+12!+14!+16!+18!+20!,并输出结果。 第 4 章 数组 1、采用“冒泡法”对任意输入的 10 个整数按由小到大的顺序排序。算法过程必须小的数向上冒,也就是第算法过程必须小的数向上冒,也就是第 一遍扫描结束,最小的数组元数放在一遍扫描结束,最小的数组元数放在 a0,第二遍扫描结束,次小的数组元数放在,第二遍扫描结束,次小的数组元数放在 a1。要求程序代码完 整,程序在运行过程中输入 10 个整数,10 个整数一行输入,每个整数输入时空一个空格;在排序算法处理 后,按由小到达的顺序输出,输出也一行输出,每个整数之间空一个空格。 2、已知二维数组 a34为 1211109 8765 4321 ,请实现这个二维数组的转置,将数组转换成 b43,效 果为 1284 1173 1062 951 。要求如下:用双重循环输入数组 a 的每个元数,并用双重循环输出数组 b。输入输出效 果如下: 3、由键盘任意输入 10 个字符串,找出其中最大的串。 4、请判断字符数组中的字符是否构成回文。回文就是字符从左向右读和从右向左读都一样。字符串长度不 超过 20 个字符。 5、用三维数组来保存输入的数据,并输出其中的值。数组为两个面,每个面两行,每行 3 列。数组元素的 值请直接初始化处理,不用输入函数运行的时候输入。输出效果如下图。 6、采用“直接插入法”对任意输入的 10 个整数按由小到大的顺序排序并输出。 7、设一维数组中已存储一个从小到大的 10 个整数序列,请使用折半(二分)查找法查找指定整数 key,如 找到,输出“found” ,如没有找到,输入”not found”。 8、往数组中输入长度小于 50 的字符串,将其中的数字字符按输入顺序提出,并存储到 digital 数组中,然 后输出该数组。 9、设计一个密码验证程序,已知密码长度不超过 12 位,系统密码为“admin” 。程序要求:密码验证错误超 过 3 次,提示“sorry” 。 10、请输入 10 个学生的名字,找出姓名中字符长度最长的名字。 第 5 章 函数 1、由键盘任意输入两个整数,求两个整数的最小公倍数。 2、编写convert函数,其功能是:将一个N*N的二维数组进行转置,转置以后的结果仍然存放 在原来的二维数组中。在main函数中按如下数据对一个二维数组a进行初始化,并输出原始数 组,调用convert函数,输出转置的数组。 原始数据 1 2 3 4 转置后的数据 1 3 5 7 3 4 5 6 2 4 6 8 5 6 6 7 3 5 6 9 7 8 9 0 4 6 7 0 3、编写函数 fun,该函数的功能是:求出整型数组 a 中 N 个数值的平均值,并将大于平均值 的整数放入数组 b 中,数组 b 中的个数作为函数值返回。在 main 函数中,输入 N 个整数,调 用 fun 函数,最后输出这 N 个整数中所有大于平均值的整数,每行输出 5 个数。 4、数组元素作为函数参数,任输入10个三位数,计算有多少个数其各位数字和是5 5、用递归法求 n! 6、请编写一个函数完成将用户输入的一串整型数字字符转换为整型数值, 例如用户输入串”567”, 应该能 返回整数值 567。在 main()函数中接收用户输入的数字,调用函数进行转换,并输出转换后的结果(必须是 输出整型) 。 7、请编写一函数 strcpy,函数原型声明为:void strcpy(char* target, char *src); 能实现将字符串 src 拷贝到字符数组 target。 在 main()函数中接收用户输入的一个字符串 (不超出 256 个字符) , 调用 strcpy 函数将其复制到一个数组中,并输出字符数组的内容。 8、请编写一函数 getFileExtName,函数原型声明为:char *getFileExtName(char *filename);能实现返 回传入文件名的扩展名,例如用户传入的文件名为”d:finalexameexam.c”,函数返回字符串”c”。 在 main()函数中接收用户输入的一个文件名(含路径) ,调用函数获取其扩展名,并输出的结果。 9、请编写一函数 strcmp,函数原型声明为:int strcmp(char *str1, char *str2);能实现两个串的大小 比较,若 str1 比 str2 大返回 1,若 str1 等于 str2 返回 0,若 str1 小于 str2 返回-1。在 main()函数中接 收用户输入的两个字符串,调用 strcmp 函数进行比较,并输出比较的结果。 10. 请编写一函数 draw,函数原型声明为:void drawPyramid(int level);能实现绘制 level 层高度的金 字塔。例如,输入层高为 12,输出如下的图形 在 main()函数中接收用户输入的一个表示层数整数,调用 draw 函数进行绘制。 第 7 章 指针 1.定义一个函数 swap,要求对两个整数实现交换。在 main 函数中接受用户输入的两个整数,调用 swap 函 数实现交换,输出交换后的结果。 (注:要求使用指针实现,并且不能使用数组) 2.读程序并回答问题 #include “stdio.h“ void fun( int *a, int bott, int top) int i, j; i=bott; j=top; while(ij) t=ai; ai=aj; aj=t; i+; j-; void main() int a10=1,2,3,4,5,6,7,8,9,0; fun(a, 0, 3); fun(a, 4, 9); fun(a, 0, 9); for(i=0; i10; i+) printf(“%d“,ai); 写出程序的运行结果:_. 3.自定义函数 SumColumMin 的功能是:求出 M 行 N 列二维数组每列元素中的最小值,计算这些最小值和, 通过函数返回【函数头部规定如下:int SumColumMin(int aMN,int *min)】 。在主函数中调用 SumColumMin 函数,任意输入 M*N 个数,输出所有列的最小值和这些最小值之和。 4.编写 fun()函数【提示:void fun(char *a,int *t)】 ,其功能是实现统计形式参数 s 所指字符串中数字 字符出现的次数,并存放在形参 t 所指的变量中。例如:形参 s 所指字符串为:abcdef35agd3khe7,则数字 出现的次数为 4 次。在 main()函数中,从键盘输入一行字符(字符个数不超过 80 个)到字符数组 str 中, 调用 fun()函数,统计出数字出现的次数,并在屏幕上输出结果。要求:用指针实现 fun 函数的功能,否则 按零分处理。 测试运行: 5.编写一个 findchar 函数,判断一个字符串中指定字符出现的次数。在主函数中从键盘上任意输入一个字 符串和一个指定的字符,输出该字符在字符串中出现的次数。要求:用指针实现 findchar 函数的功能,否 则按零分处理,函数头部如下定义:int findchar(char *src,char ch)。 6. invert 函数功能: 将数组 a 中的数据按相反的顺序存放。 在主函数中, 任意输入 10 个整数, 调用 invert 函数,最后输出逆序存放的。要求:用指针实现 invert 函数的功能,否则按零分处理。 7. 在主函数中任意输入一字符串,调用 func 函数,并输出结果。func 函数完成:将字符串逆序排列,并 统计该字符串中所有的数字字符个数,函数返回统计出来的个数。要求:用指针实现 func 函数的功能,否 则按零分处理。 8. 函数 void insert(char *s1,char *s2)的功能是: 在字符串 s1 中插入一个新串 s2,在字符串 s1 中查 找 s2 串的第一个字符,如果找到,则在此位置插入 s2 串,注意插入时会将找到的字符覆盖;如果没找到, 即 s2 串中的第一个字符没有被 s1 所包含,则在 s1 尾部插入。 main 函数中输入字符串 s1 和 s2, 调用 insert 函数, 输出插入后的字符串。 例如: 若字符串 s1 为 abcdef, s2 为 d45,输出 abcd45ef;若字符串 s1 为 abcdef,s2 为 45,输出 abcdef45。 9. 用指针编程实现:将用户输入的由数字字符和非数字字符组成的字符串(字符个数不超过 256 个)中的 数字提取出来,例如:输入“msl123xyz456hkl789”,则提取的数字分别是 123、456 和 789。将结果打印 在屏幕上(要求每个数字一行) 。要求:用指针实现函数的功能,否则按零分处理。 10. 编写字符串比较函数 mystrcpy,其功能:对两个字符串进行比较,若这两个字符串相等,则返回 0,若 这两个字符串不相等,则返回它们第一个不同字符的 ASCII 码差;编写 main()函数:从键盘输入两个字符 串,调用 mystrcpy 函数,输出比较结果。要求:用指针实现 mystrcpy 函数的功能,否则按零分处理。 11. 编写函数 fun,其功能是实现对从指定位置 m 开始的 n 个数反序。编写 main 函数,在 main 函数中,输 入 10 个数,指定位置 m 和要反序的数据个数 n;调用 fun 函数,最后输出反序后的 10 个数。例如:输入的 数为:1,2,3,4,5,6,7,8,9,10。若要对从第 3 个数开始的 7 个数进行反序,则最后输出的结果为: 1,2,9,8,7,6,5,4,3,10。要求:用指针实现 fun 函数的功能,否则按零分处理。 测试运行: 12. 自定义函数完成库函数 strcat,strcpy,strlen 等字符串函数的功能,并编写主函数来测试。要求: 用指针实现 strcat,strcpy,strlenn 函数的功能,否则按零分处理。 第 8 章 结构体 1、 建立 100 个人的电话号码薄信息。其中: (1) 编号:code,整型。 (2) 姓名:name,不超出 10 个字符。 (3) 电码号码:tel,不超出 15 个字符 要求: (1) 任何常量数字(如“100” )在整个程序中只能出现 1 次(数字 1、0 除外) ! (2) 从键盘上输入这 100 个联系人的信息。 (3) 输出每个联系人的信息(每个人的信息单独占一行,各属性之间用“t”分隔) 2、 建立 30 个学生的信息表,每个学生的数据包括学号、姓名、三门课的成绩。其中: (1) 学号:no,12 位数字组成的字符串,长度固定。 (2) 姓名:name,不超出 10 个字符。 (3) 三门课程的成绩:C、WEB、DS,均为整型 要求: (1) 任何常量数字(如“30” )在整个程序中只能出现 1 次(数字 1、0 除外) ! (2) 从键盘上输入这 30 个学生的信息 (3) 输出时显示每个学生的平均成绩(保留一位小数) (4) 输出每个学生的信息(每个学生的信息单独占一行,各属性之间用“t”分隔) 3、 学生信息管理系统中需要记录学生如下信息: (1) 学号:12 位数字组成的字符串,长度固定。 (2) 姓名:不超出 10 个字符。 (3) 性别:单个字符 F(女)或 M(男)表示。 (4) 生日:分别由年、月、日三个整型构成。 (5) C 语言课程的成绩:整型 各信息标识符名称如下: num name gender birthday score year month day 要求: (1) 请合理定义能够表示学生信息的结构体,其中 birthday 须使用嵌套结构体。 (2) 假设程序处理 30 位同学的信息,请使用合理的数据结构去存储他们的信息。 (3) 任何常量数字(如“30” )在整个程序中只能出现 1 次(数字 1、0 除外) ! (4) 依次接收用户输入所有学生的全部信息。 (5) 输出每个学生的信息(每个学生的信息单独占一行,各属性之间用“t”分隔) 4、 银行大厅办理业务时,客户需要根据先后次序领取排号单,然后等待广播里喊到自己的号码,才办理业 务。本程序模拟此排号流程,要求如下: (1) 操作人员通过键盘输入每个客户的 ID 号(假设 ID 号不超出 10 个字符且唯一,即输入时不考虑重 复问题) ,表示有一个客户排队。 (2) 可以输入任意个客户 ID 号,并且可以随时停止输入。 (3) 停止输入后,按排队顺序依次输出现有客户的 ID 号信息。 5、 学生信息管理系统中需要记录学生如下信息: (1) 学号:12 位数字组成的字符串,长度固定。 (2) 姓名:不超出 10 个字符。 (3) 年龄:整型。 (4) C 语言课程的成绩:允许带一位小数。 现在要求如下: (1) 从键盘上接收 30 个学生信息。特别说明: a) 此功能由函数 createdata()完成,每调用一次,表示输入一个学生信息 b) 假设 createdata()函数已经实现,只需直接调用即可 (2) 自定义一个函数FindMaxScore(),功能是:从学生信息中查找分数最高的学生信息。 (3) 在 main()中:调用自定义的函数FindMaxScore(),找到最高分

温馨提示

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

评论

0/150

提交评论