C语言上机考试复习题key

上传人:大米 文档编号:458506778 上传时间:2024-02-23 格式:DOC 页数:10 大小:272KB
返回 下载 相关 举报
C语言上机考试复习题key_第1页
第1页 / 共10页
C语言上机考试复习题key_第2页
第2页 / 共10页
C语言上机考试复习题key_第3页
第3页 / 共10页
C语言上机考试复习题key_第4页
第4页 / 共10页
C语言上机考试复习题key_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《C语言上机考试复习题key》由会员分享,可在线阅读,更多相关《C语言上机考试复习题key(10页珍藏版)》请在金锄头文库上搜索。

1、1、请编写函数merge(int a,int n,int b,int m,int *c)实现如下功能:将两个从小到大有序数组a和b复制合并出一个有序整数序列c,其中形参n和m分别是数组a和b的元素个数。在主函数中调用merge并输出合并后的数组c。2、有一字符串,包含n个字符,写一函数substrcpy(char *str1, char *str2, int m)实现如下功能:将此字符串str1中从第m个字符开始的全部字符复制到字符串str2中。在主函数中调用substrcpy并输出结果。3、将一个整数字符串转换为一个整数,如“-1234”转换为-1234。要求用指针实现。4、用结构体实现:编

2、写程序将下列数据赋予结构体变量,并将它们输出(直接输出和用结构体数组输出)。姓名年龄月薪李明252500王利222300赵勇3030005、用结构体实现:有五个学生,每个学生的数据包括学号、姓名、三门课的成绩。从键盘输入5个学生的相关数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括学号,姓名、三门课的成绩,三门课的平均分)。要求使用结构体变量。6、从键盘输入一个字符串,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test.dat”中保存,再从该文件中读出字符串并显示出来。输入的字符串以“!”结束。(下面有错,第二个文件打开指令改为rb)7、从文件test.txt中

3、读入一批整数,并将它们按照递增的顺序存放在一个数组中。8、将一个磁盘文件中的信息复制到另一个磁盘文件中 。9、编程:定义函数求十个数的最大值,并在主调函数中输出。(类比第15题)10、从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个“”为止。 11、编程:输入年、月、日,用子函数判断计算该日期是该年的第几天。12、编程:任意输入一个数,定义函数,将其按原来排序的规律将它插入已排好序的数组中。如:原数组为 2,3,5,7,9,输入4,则新数组为2,3,4,5,7,913、定义函数,判断某数是否是水仙花数,调用该函数找出100-999之间的水仙花数14、用行指针法寻找3*4矩阵中的最大值1

4、5、任意输入10个数,定义函数,找出其中的最大值和最小值,并在主调函数中输出这两个值(利用指针实现)16、输入两个整数,将他们互换,用带参数的宏来实现。17、输入两个整数,求他们的最大值,定义外部函数来实现。(类比15题)18、通过指针变量来输出九九乘法表。19、通过指针变量实现1+2+3+n,在程序中输出改结果。20、将n个数按输入时顺序的逆序排列, 用函数实现。21、输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:(1)输入10个数;(2)进行处理;(3)输出10个数。22、编程实现输入n(n1000)个整数到指定数组,求该数组中最大元素的值和此元素的

5、下标,最大元素值以函数值返回,此元素的下标通过指针形参返回调用处。23、已知节点结构如下:struct studentChar no7;Char name9;Struct student *next;(1) 定义函数creat,从无到有地创建一个新链表,保存若干节点信息,节点个数不限(2) 定义函数show,输出链表中所有节点信息24、用字符数组存储任意输入的10个字符,在子函数中把该字符数组的小写字母转换成大写字母。(类比6)25、输入一串字符,以?结束,统计各字母出现的次数,并按字母出现的多少输出(先输出字母出现多的,次数相同的按字母表顺序输出,不出现的字母不输出)。例:输入:5b3a+4

6、-hdeh5dh? 输出: h 3 d 2 a 1 b 1 e 126、编写函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。 (要求利用指针完成,不使用全局变量)27、写一函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。(要求利用指针完成,不使用strlen函数)28、编写一个程序,将字符数组s2中的全部字符复制到字符数组s1中,不用strcpy函数。注意,复制时,0也要复制过去。0后面的字符不复制。(要求用指针实现)29、输入三个数,用指针变量的方式按由小到大的顺序输30、链表头插,尾插,反序,插入,删除

7、,浏览,存盘,读取。#include typedef int elemtype;typedef struct nodeelemtype data;struct node *next;NODE;NODE *h_creat()NODE *p,*head;int len;printf(请问要创建几个节点?:);scanf(%d,&len);head=(NODE *)malloc(sizeof(NODE);head-next=NULL;while(len)p=(NODE *)malloc(sizeof(NODE);printf(请输入该节点数据:);scanf(%d,&p-data);p-next=h

8、ead-next;head-next=p;len-;return head;void reverse(NODE *head)NODE stack1024,*p=head-next;int i=0;while(p)stacki.data=p-data;i+;p=p-next;p=head-next;while(i0)p-data=stack-i.data;p=p-next;NODE *t_creat()NODE *head,*tail,*p;int len;printf(请问要创建几个节点?:);scanf(%d,&len);tail=head=(NODE*)malloc(sizeof(NODE

9、);head-next=NULL;while(len)p=(NODE *)malloc(sizeof(NODE);printf(请输入该节点数据:);scanf(%d,&p-data);tail-next=p;tail=p;p-next=NULL;len-;return head;void view(NODE *head)NODE *p=head-next;printf(链表数据如下:n);while(p)printf(%d ,p-data);p=p-next;NODE *search(NODE *head,int key)NODE *p;p=head-next;while(p)if(p-da

10、ta=key)return p;p=p-next;return NULL;void destroylist(NODE *head)NODE *p=head-next,*q;while(p)q=p-next;free(p);p=q;free(head);int insert(NODE *head,NODE *p,int pos)NODE *q=head-next;if(pos=0)printf(插入位置不合理!);return 0;pos-;while(pos)pos-;q=q-next;p-next=q-next;q-next=p;return 1; void dele(NODE *head,

11、NODE *p) NODE *q=head-next,*r=head;while(q!=p)q=q-next;r=r-next; /r晚走一步,循环结束,获得的是待删除节点的首地址r-next=p-next;void main()NODE *head1,*head2;NODE *p;int data,pos;printf(开始创建第一条链表:n);head1=h_creat();view(head1);destroylist(head1);printf(n开始创建第二条链表:n);head2=t_creat();view(head2);printf(n请输入待查找的键值,查找将在第2条链上进行

12、:n);scanf(%d,&data);if(search(head2,data)=NULL)printf(没有找到该结点!n);else printf(找到该结点!n);reverse(head2); /反序view(head2);printf(n准备插入新结点:n);p=(NODE *)malloc(sizeof(NODE);printf(请输入待插入结点的键值:);scanf(%d,&p-data);printf(请输入待插入的位置:);scanf(%d,&pos);if(insert(head2,p,pos)view(head2);printf(n准备删除结点:n);printf(请输入待删除结点的键值:);scanf(%d,&data);if(p=search(head2,data)=NULL)printf(没有找到该结点,不能删除!n);elsedele(head2,p);printf(删除后);view(head2);destroylist(head2);void save(NODE *head)FILE *fp;NODE *p=head-next;fp=fopen(line.dat,w);if(fp=NULL)while(p)fwrite(p,sizeof(NODE),1,fp);p=p-next;fclose(fp);NODE *load()NODE *p,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号