2021年全国计算机等级考试二级c语言公共基础知识题例_第1页
2021年全国计算机等级考试二级c语言公共基础知识题例_第2页
2021年全国计算机等级考试二级c语言公共基础知识题例_第3页
免费预览已结束,剩余5页可下载查看

下载本文档

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

文档简介

1、资料来源:来自本人网络整理!祝您工作顺利!2021年全国计算机等级考试二级c语言公共基础知识题例 在全国计算机等级中,有哪些二级c语言的公共根底学问呢?下面是我给大家整理的全国计算机等级考试二级c语言公共根底学问题例,供大家参阅! c语言公共根底学问题例一 函数fun的功能是:将s所指字符串中ascii值为偶数的字符删除,串中剩余字 符形成一个新串放在t所指的数组中。 例如,假设s所指字符串中的内容为:abcdefg12345,其中字符b的ascii码值 为偶数、字符2的ascii码值为偶数、 都应当删除,其它依此类推。最终t所指的数组中的内容应是:aceg135。 留意: 局部源程序存在文件

2、prog1.c中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的假设干语句。 给定源程序: #include #include void fun(char *s, char t) main() char s100, t100; printf(nplease enter string s:); scanf(%s, s); fun(s, t); printf(nthe result is: %sn, t); nono(); 解题思路: 此题是从一个字符串按要求生成另一个新的字符串。我们用法for循环语句来解决这个问题。 参考答案: void fun(char

3、*s, char t) int i, j = 0 ; for(i = 0 ; i strlen(s); i+) if(si % 2) tj+ = si ; tj = 0 ; c语言公共根底学问题例二 给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。函数fun的功能是:删除链表中数据域值一样的结点,使之只保存一个。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 留意:源程序存放在考生文件夹下的blank1.c中。 不得增行或删行,也不得更改程序的构造! 给定源程序: #include #include #define n 8 typedef

4、 struct list int data; struct list *next; slist; void fun( slist *h) slist *p, *q; p=h-next; if (p!=null) q=p-next; while(q!=null) if (p-data=q-data) p-next=q-next; free(_1_); q=p-_2_; else p=q; q=q-_3_; slist *creatlist(int *a) slist *h,*p,*q; int i; h=p=(slist *)malloc(sizeof(slist); for(i=0; i q=

5、(slist *)malloc(sizeof(slist); q-data=ai; p-next=q; p=q; p-next=0; return h; void outlist(slist *h) slist *p; p=h-next; if (p=null) printf(nthe list is null!n); else printf(nhead); do printf(-%d,p-data); p=p-next; while(p!=null); printf(-endn); main( ) slist *head; int an=1,2,2,3,4,4,4,5; head=creat

6、list(a); printf(nthe list before deleting :n); outlist(head); fun(head); printf(nthe list after deleting :n); outlist(head); 解题思路: 此题是考察考生对链表的操作,主要是解决删除链表中数据域值一样的结点。程序中共有三处要填上适当的内容,使程序能运行出正确的结果。 函数fun中用法两个临时构造指针变量p和q对链表进展操作。首先p指向链表开头的next指针,q指向p的next指针,再利用while循环语句来推断指针q是否null,假如q指针是指向null,那么函数完毕返回。

7、假如不是null,那么就要推断p和q中data值是否一样,假如值一样,那么要 删除该结点,然后连续推断下一结点值是一样,假如还一样,那么连续删除结点,直至不一样为止。假如两个结点的值不一样,那么p就指向q,q指向q的next指针再连续操作上述过程。 删除结点的方法是:先将p的next指针指向q的next指针,再释放q指针指向的内存,最终把 q指针再指向p的next指针就可以删除一个链表中的结点了。 第一处:释放q指针所指的内存空间,应填q。 其次处:q指针指向p的next指针,重新完成链接,应填next。 第三处:两个结点的值不一样,那么q就指向q的next指针,应填next。 c语言公共根底

8、学问题例三 给定程序modi1.c中函数fun的功能是:用选择法对数组中的n个元素按从小到 大的挨次进展排序。 请修改程序中的错误,使它能得出正确的结果。 留意:不要改动main函数,不得增行和删行,也不得更改程序的构造! 给定源程序: #include #define n 20 void fun(int a, int n) int i, j, t, p; for (j = 0 ;j n-1 ;j+) p = j for (i = j;i n; i+) if(ai ap) p = j; t = ap ; ap = aj ; aj = t; main() int an=9,6,8,3,-1,i, m = 5; printf(排序前的数据:) ; for(i = 0;i m;i+) printf(%d ,ai); printf(n); fun(a,m); printf(排序后的数据:) ; for(i

温馨提示

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

评论

0/150

提交评论