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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言程序设计各章练习题.docx

1、C语言程序设计各章练习题C语言程序设计各章练习题2016年12月汇编第1-3章 C语言基础、编程规范、顺序结构程序设计编程题1:设a和b均为int型变量,编写一个程序,通过键盘读入a,b的值,然后交换a,b的值。要求屏幕显示“输入2个整数,用空格隔开”的提示语句,并且输出交换前a,b的值,交换后a,b的值。附加要求:(1)允许定义第3个变量,实现交换; (2)不允许定义第3个变量,实现交换。第4章选择结构程序设计编程题2:根据下列函数关系写程序,要求提示输入x的值,输出y的值。编程题2:根据下列函数关系写程序,要求提示输入x的值,输出y的值。编程题3:求 ax2+bx+c=0方程的解。(只输出

2、b2-4ac=0的求解结果,小于0,输出“不予求解!”)第5章 循环结构程序设计编程题4:编程计算。要求提示键盘输入n,如n为负数,不予计算,直接返回。编程题5:编程序计算n!,要求n从键盘输入,如n小于0,不予计算。编程题6:从键盘输入一个数n,判断n是否是素数。编程题6:编写程序输出1100之间的偶数,要求屏幕显示时5个偶数一行,每个数占5位,右对齐。编程题7:编程计算100到1000之间有多少个数其各位数字之和是5,并将其输出。编程题8:求满足下列条件的三位数n,它除以11(整数相除)所得到的商等于n的各位数字的平方和,且其中至少有二位数字相同的数。编程题9:有一些十进制整数对ab和cd

3、具有如下特性:abcd=badc,其中ab且cd。如:1242=2124。请编程找出3050之间满足上述等式所有m,n值,并按上述等式的格式输出。(用*表示)编程题10:从键盘上输入一个整数,然后把这个整数的各位逆序输出。例如,输入123456,输出654321。第6章 数组编程题11:有一个已排好序的数组int a11=-5,-3,0,6,8,12,16,28,66,88;,要求输入一个数后,按原来排序的规律将它插入数组中。编程题12:输入一个字符串(字符个数为小于100),统计其中字母、数字、空格以及其它符号的个数,并将大写字母改为小写字母,输出改变后的字符串。(提示:A的ASCII值为6

4、5,a的ASCII值为97)编程题12:输入一行字符(字符数组的个数小于100),统计其中字母、数字以及其它符号的个数。(注:数组限定字符个数小于100)编程题12:输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。(注:字符个数不受限制)第7章函数编程题13:编写一个子函数 int fun ( int n),其功能是判断整数n是否为素数,n是素数,返回值为1;n不是素数,返回值为0。调用该函数,将100200之间的素数全部输出,要求屏幕上每个数占4位,每行显示5个素数,左对齐。(循环、条件分支、子函数、变量的值传递、屏幕显示格式控制)编程题14:主函数中定义两个数组int a

5、5=5,4,8,-1,2,b10=1,-1,2,4,8,4,0,9,3,7;用子函数实现从小到大的冒泡排序,子函数为void bubble(int ,int);要求在主函数中显示排序前、后的数组a和b的元素。(循环、条件分支、子函数、数组、地址传递)编程题15:主函数中定义两个数组int a5=5,4,8,-1,2,b10=1,-1,2,4,8,4,0,9,3,7;用子函数实现从小到大的选择法排序,子函数为void sort(int ,int);要求在主函数中显示排序前、后的数组a和b的元素。(循环、条件分支、子函数、数组、地址传递)编程题16:用递归函数计算n!。编程题17:编写一个子函数

6、int fact ( int n),计算n的阶乘。调用该函数计算1!+2!+3!+n!,要求n从键盘输入,如输入n小于0,不予计算。(循环、递归函数)编程题18:将16进制或8进制或2进制数转换为十进制数(字符数组、字符串函数、子函数、字符ASCII值与10进制数的转换,指数函数的调用)编程题18:编程实现八进制数转换为十进制数(注:用字符数组n100接收输入,输入的八进制数肯定正确,无须检测;八进制数转换为十进制数的子函数为int htoi(char hnum );)编程题18:编写一个子函数,将16进制数转换为10进制数。编程题19:编写一个子函数,主函数用字符数组作为实参,统计字符串中字

7、母、数字、空格以及其他符号的个数,要求主函数中显示字符串与统计结果。编程题20:编写一个子函数,主函数输入一行字符,子函数找出字符串中最长的单词,并显示结果。编程题21:用递归法将一个整数n转换为字符串。例如:输入483,输出字符串“483”,n的位数不确定。编程题22:写一个子函数,将输入的字符串按反序存放,在main中输入和输出字符串。第8章指针编程题23:编写一个子函数mystrcmp(char *s1,char *s2)实现2个字符串的比较。编程题23:编程实现两个字符串连接起来,不要用strcat函数。编程题23:用函数调用实现字符串的复制。编程题23:写一个函数,求一个字符串的长度

8、。在main函数中输入字符串,并输出其长度。编程题24:写一个用矩形法求定积分的通用函数,分别计算编程题25:输入一个字符串,内有数字和非数字字符,如: A123x456 17960?302tab5876,将其中连续的数字作为一个整数,依次用数组存放这些数,统计有多少个整数,并输出这些数。编程题26:主函数输入整数的个数,用指针变量动态申请内存,并用键盘按任意次序输入n个整数,用子函数void bubble(int ,int)实现从小到大的冒泡排序。第9章 结构编程题27:建立一个链表,每个结点包括:学号、姓名、性别、年龄,输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。

9、编程题28:13个人围成一圈,从第一个人开始顺序报号,凡报到3者退出圈子,找出最后留在圈子中的人原来的序号。要求用链表实现。编程题29:阅读链表操作相关函数,完成指定的操作函数。链表内容仅限表头表尾添加、删除、查询、显示、保存,不考排序、中间节点的插入和删除#include stdio.h#include malloc.h#include string.hstruct Student char name20; int num; int math; struct Student *next;struct Student *Create(struct Student *head); /生成数据链表

10、void ShowList(struct Student *head); /显示链表void saveList(struct Student *head); /保存链表数据void AddTail(struct Student *head,struct Student *temp); /表尾添加元素struct Student *AddHead(struct Student *head,struct Student *temp); /表头添加元素struct Student *DeleteSomeone(struct Student *head); /删除元素void FindSomeone(

11、struct Student *head); /查询元素struct Student *DeleteHead(struct Student *head);/删除表头void DeleteTail(struct Student *head);/删除表尾void main() struct Student *head=NULL,*temp=NULL; int choice; do printf(1:创建数据链表n); printf(2:添加链表单元n); printf(3:删除链表单元n); printf(4:查询链表单元n); printf(5:删除表头n); printf(6:删除表尾n);

12、printf(7:退出n); printf(请输入功能选择:); scanf(%d,&choice);/cinchoice; if(choice=1) head=Create(temp); ShowList(head); saveList(head); else if(choice=2)/表头添加元素 temp=(struct Student *)malloc(sizeof(struct Student); printf(姓名:); scanf(%s,temp-name); printf(学号:); scanf(%d,&temp-num); printf(成绩:); scanf(%d,&tem

13、p-math); AddTail(head,temp);/ head=AddHead(head,temp); ShowList(head); saveList(head); else if(choice=3) /删除元素 head=DeleteSomeone(head); ShowList(head); saveList(head); else if(choice=4) /查找元素 FindSomeone(head); else if(choice=5) /删除表头 head=DeleteHead(head); ShowList(head); saveList(head); else if(c

14、hoice=6) /删除表尾 DeleteTail(head); ShowList(head); saveList(head); else if(choice=7) printf(谢谢使用!n); else printf(非法输入,请输入17之间的数!n); while(choice!=7);struct Student *Create(struct Student *head)/包含读文件创建链表 struct Student *pS,*pEnd; FILE *fp; fp=fopen(e:list.txt,r); if(fp!=NULL)/表明已有链表数据,直接读入 int flag; w

15、hile(1) pS=(struct Student *)malloc(sizeof(struct Student); flag=fscanf(fp,%s %d %d,pS-name,&pS-num,&pS-math); if(flag=EOF) break; if(head=NULL) head=pS; else pEnd-next=pS; pEnd=pS; if(head!=NULL) pEnd-next=NULL; printf(已从文件中读入数据创建链表!n); delete pS; fclose(fp); if(head=NULL) while(1) pS=(struct Stude

16、nt *)malloc(sizeof(struct Student); printf(姓名:); scanf(%s,pS-name); if(strcmp(pS-name,000) printf(学号:); scanf(%d,&pS-num); printf(成绩:); scanf(%d,&pS-math); else break; if(head=NULL) head=pS; else pEnd-next=pS; pEnd=pS; pEnd-next=NULL; delete pS; return head;void ShowList(struct Student *head)/显示链表上的

17、数据 printf( 学生姓名学号成绩:n); while(head) printf(%20s,head-name); printf(%6d,head-num); printf(%5dn,head-math); head=head-next; void saveList(struct Student *head)/保存链表上的数据 FILE *fp; fp=fopen(e:list.txt,w); if(fp=NULL) printf(无法创建文件e:list.txt!); return; while(head) fprintf(fp,%s %d %dn,head-name,head-num,

18、head-math); head=head-next; fclose(fp);void AddTail(struct Student *head,struct Student *temp)/加在表尾 struct Student *last; while(head) last=head; head=head-next; last-next=temp; temp-next=NULL;struct Student *AddHead(struct Student *head,struct Student *temp)/加在表头 struct Student *first; first=head; h

19、ead=temp; head-next=first; return head;struct Student *DeleteSomeone(struct Student *head) struct Student *temp; int xnum,flag=0; printf(请输入学号:); scanf(%d,&xnum); if(head=NULL) printf(表为空!n); return head; if(head-num=xnum) temp=head; head=head-next; delete temp; return head; Student *first=head; whi

20、le(head) if(head-next=NULL) break; if(head-next-num=xnum) temp=head-next; head-next=temp-next; delete temp; flag=1; break; head=head-next; if(flag=0) printf(未发现!n); return first;void FindSomeone(Student *head)/按学号查找 int xnum,flag=0; printf(请输入学号:); scanf(%d,&xnum); while(head) if(head-num=xnum) prin

21、tf(%20s,head-name); printf(%6d,head-num); printf(%4dn,head-math); flag=1; break; head=head-next; if(flag=0) printf(未发现!n);struct Student *DeleteHead(struct Student *head) if(head=NULL) printf(表为空!n); return head; if(head-next=NULL) delete head; head=NULL; return head; else struct Student *first=head

22、; head=head-next; delete first; return head; void DeleteTail(struct Student *head) if(head=NULL) printf(表为空!n); if(head-next=NULL) delete head; head=NULL; else struct Student *temp,*end; end=head; while(end-next!=NULL) temp=end; end=end-next; temp-next=NULL; 第10章 文件编程题30:编程实现:有一个文本文件“a.txt”,里面有大小写英文

23、字母、数字和其它符号。要求分别统计其中大写字母、小写字母、数字以及其它字符的个数。编程题30:从键盘输入一串字符,并以 # 结束,将其中的大写字母全部转换成小写字母,并输出到计算机D盘文件 “test.txt”中保存。(提示:一串字符并不意味着一行字符,另外一串字符的具体字符个数是不定的。)编程题31:从键盘输入一个字符串,将其中的小写字母全部转换为大写字母,然后输出到C盘“test”文件中保存,输入的字符串以“!”结束。编程题32:有两个磁盘文件“A”和“B”,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件“C”中去。编程题33:有5个学生,每个学生有3门课

24、程的成绩,从键盘输入学号、姓名、3门课程成绩,计算每个学生的平均成绩,将原有数据和平时成绩存放在磁盘文件“stud”中。第1-3章 C语言基础、编程规范、顺序结构程序设计一、选择题1. C语言是一种( C )程序设计语言。A. 低级 B. 面向对象 C. 高级 D. 智能2. 下列特性中,( D )不是C语言的特征。A.运行效率高 B.结构化程序设计 C.能直接访问物理地址 D.类型检测严格3下列标识符中,( D )不是C的关键字;A. int B. float C. char D. scanf4下列标识符中,( D )不是C的关键字;A. sizeof B. short C. long D.

25、 define5下列标识符中,( D )不是C的关键字;A. goto B. break C. auto D. printf6下列标识符中,( D )不是C的关键字;A. static B. struct C. void D. include7下列自定义标识符中,( C )是不符合规定。A. point1x B. _point1x C. 2pointx D. pointx_28下列自定义标识符中,( C )是不符合规定。A. MAX B. _MIN C. MAX$ D. MIN_29下列自定义标识符中,( D )是不符合规定。A. point1_ B. _point1x C. pointx D

26、. pointx_#10下列自定义标识符中,( A )是不符合规定。A. 2_point1x B. _point1x C. pointx D. pointx_211下列四个选项中,是不合法的用户标识符的选项是( C )AP_0 _abcgototemp12下面是不正确的字符串常量的是( A )Aabc“1212”“0”“”13. 已知int a; float f; scanf(“a=%d,f=%f”,&a,&f); 为了把10和3.14分别赋值给a和f,则正确的输入为( C )A10,3.14 B. 10 3.14 C. a=10,f=3.14 D. a=10 f=3.1414输入语句为:sc

27、anf(%f,%fn,&radius,&high);下列键盘输入( D )是正确的。 A1 2; B1,2n; C12; D1,2;15输入语句为:scanf(a=%f,b=%f,&radius,&high);从键盘输入( D )是正确的。 A1 2; B1,2; C12; Da=1,b=2;16输入语句为:scanf(a=%f,b=%fn,&radius,&high);从键盘输入( D )是正确的。 A1 2; B1,2; C12; Da=1,b=2n;17输入语句为:scanf(a=%fb=%f,&radius,&high);从键盘输入( D )是正确的。 A1 2; B1,2; C12;

28、 Da=1b=2;18double PI=3.1415926, 输出语句为:printf(%3.2lf,PI);下列输出结果( D )是正确的。 A3.1415926; B3.2; C3.1; D3.14;19double PI=3.1415926, 输出语句为:printf(%5.4lf,PI);下列输出结果( B )是正确的。 A3.1415926; B3.1415; C3.1416; D5.4;20double PI=3.1415926, 输出语句为:printf(%3.4lf,PI);下列输出结果( )是正确的。A3.1415926; B3.141; C3.1415; D3.1416;21设x,y均为float型变量,则下列不合法的赋值语句是( )A

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

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