期末考基础代码讲解文档格式.docx
- 文档编号:17205151
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:36
- 大小:1.18MB
期末考基础代码讲解文档格式.docx
《期末考基础代码讲解文档格式.docx》由会员分享,可在线阅读,更多相关《期末考基础代码讲解文档格式.docx(36页珍藏版)》请在冰豆网上搜索。
下面是正确的解答:
exam2.c:
调试用的main函数:
C语言程序设计复杂程序考核
(2)
考生在自己根目录下创建一个名为exam2.c的文件,在此文件中实现规定功能的函数。
该文件中不包含main函数。
调试时,学生自行编写相应的main函数等来进行测试。
计算字符串ACSII码的二进制形态中1出现的次数之和。
将一个字符串中的指定大写字母后的所有字母截取出来,计算被截取出来的所有字符的ASCII码的二进制形态1出现的次数之和,将1出现的次数之和写入指定的地址。
比如:
字符串”WEIWENDATA”在字符’N’之后的的字符串为”DATA”;
之后将字符串”DATA”中每个字符的ASCII值的二进制码中1出现的次数统计出来,再计算其和,其中可用位运算。
intcount(char*str,charch,int*count);
str为被操作的字符串首地址,字符串的元素全为大写字母;
ch为指定的大写字母,此大写字母在str中只出现一次;
count为被写入的地址。
4操作成功,正常返回;
5str为空,即str==NULL,此时coun写入值为-1。
Code:
main.c:
C语言程序设计复杂程序考核(3)
大小写转化,统计1的总个数。
函数通过参数传入一个字符串(全为小写字母)的起始地址,通过对这个地址的操作把该字符串中的小写字母转换为大写字母,并统计每个大写字母对应ASCII码转换为二进制后1出现的总次数。
intcaculate_student(char*data_buf,int*count);
data_buf是指向字符数组地址的指针,该内存包含一串小写字母。
字符串长度不超过4096。
count是被写入的参数。
就是将所有大写字母对应ASCII码转换为二进制后1出现的总次数。
2data_buf为空,即data_buf==NULL,此时count写入值为-1,即*count=-1。
code:
exam2_3.c:
C语言程序设计复杂程序考核(4)
在学生根目录下新建一个exam2.c的文件,将符合此后描述的功能的代码写入其中。
源代码文件中不应该包含main函数,考生应该自己建立main函数来调试代码。
将字符串中的数字字符(即’0’~’9’)出现的次数写入到指定的地址中。
考生需要统计一字符串中数字字符出现的次数,然后将次数写入到一个指定的地址中,被操作的字符粗和被写入的地址以函数形式参数传入。
intfunction(char*str,int*stat);
str是传入的被操作字符串。
stat是被写入的地址。
就是将str数组中的数字字符出现的次数写到stat中。
返回值及意义
1.str为空,此时stat写入的值应为0。
2.字符串长度超过限制,此时stat写入的值应为0。
exam2-4.c
main
C语言程序设计复杂程序考核(5)
学生自行编写相应的main函数等来进行测试。
对链表进行排序。
此函数功能为对传入的链表进行排序,链表为单链表,链表最后一个节点的next成员值为NULL。
排序规则为:
从头节点到尾节点,value成员值从大到小;
intsort_link(data*op_list);
其中data数据类型定义如下:
//Linkliststruct
typedefstructdata{
intvalue;
structdata*next;
}data;
结构体中的value成员为所存储的数值,next存储链表下一个节点的地址,如果不存在下一个节点,next值为NULL。
考生应当将上述的data定义的代码复制到源代码文件中。
op_list需要排序的链表第一个节点的地址。
1排序完成,正常返回;
-1链表为一个空链表。
Ps:
主函数比较长,因为创建个链表写的比较多,两个图
exam2_5.c
Main
C语言程序设计复杂程序考核(6)
统计一字符串中另一字符串出现的次数。
计算一个指定的字符串在另一个字符串中出现的次数,并将出现的次数写入指定地址中。
指定的字符串和被操作的字符串以函数形式参数的形式传入。
比如字符串”weisweisdfwei”出现字符串”wei”的次数为3次。
intcount(char*str,char*sub_str,int*fre);
str为被操作的字符串,此字符串皆为可打印字符,长度小于4096;
sub_str为指定的字符串,此字符串皆为可打印字符,长度比str小;
fre为被写入的地址。
即是统计字符串str中sub_str出现的次数,并将次数写入fre中。
1操作成功;
1指针str为空,此时fre写入值为-1;
6字符串str长度不小于4096个,此时fre写入值为-1。
Code:
exam2_6.c
C语言程序设计复杂程序考核(7)
大小写转化,统计0的总个数。
函数通过参数传入一个字符串(全为大写字母)的起始地址,通过对这个地址的操作把该字符串中的大写字母转换为小写字母,并统计每个小写字母对应ASCLL码转换为二进制后0出现的次数之和。
data_buf是指向字符数组地址的指针,该内存包含一串大写字母。
就是将所有小写字母对应ASCLL码转换为二进制后0出现的总次数。
exam2_7.c
Main:
C语言程序设计复杂程序考核(8)
删除链表中包含指定数据的节点。
该函数的功能为删除链表中指定数据的节点,链表的首节点地址以及所指定的数据以函数形式参数的形式传入。
intdelete_list(data*op_list,intvalue);
结构体中的value成员为所存储的数据,next存储链表下一个节点的地址,如果不存在下一个节点,next值为NULL。
op_list为链表首节点的地址;
value为指定的数据。
考生需要找到结构体成员value值为指定数据的节点,并将之删除。
-1不存在指定数据;
0删除成功,正常返回。
exam2_8.c
main(这道题的main函数有点长,主要是构造个链表写的比较多,两张图)
C语言程序设计复杂程序考核(9)
截取字符串将大写字母转换为小写字母。
将被操作字符串中的指定大写字母后的所有字母截取出来,将截取出来的所有字母转换为小写字母,将此字符串写入原来被操作字符串的地址中。
转换后的字符串”data”。
inttrans(char*str,charch);
最终将转换好的字符串写入此地址中。
1操作成功,正常返回;
2str为空,即str==NULL
code:
exam2_9.c
Main:
C语言程序设计复杂程序考核(10)
将小写字母转换为大写字母。
将被操作字符串中的指定小写字母前的所有字母截取出来,将截取出来的所有字母转换为大写字母,将此字符串写入原来被操作字符串的地址中。
字符串”weiwendata”在字符’n’之前的的字符串为”weiwe”;
转换后的字符串”WEIWE”。
inttreans(char*str,charch);
str为被操作的字符串首地址,字符串的元素全为小写字母;
ch为指定的小写字母,此小写字母在str中只出现一次;
2str为空,即str==NULL,此时coun写入值为-1。
exam2_10.c
C语言程序设计复杂程序考核(11)
学生应自行编写相应的main函数等来进行测试。
用矩形法求定积分
,其中a、b为函数输入参数,[a,b]区间所分的段数n也是传入的参数。
将结果写入指定的地址。
intfcos(inta,intb,intn,float*result);
b为积分上限;
q为积分下限,a小于或等于b;
n为[a,b]区间所要分的段数,即使将[a,b]区间分为n。
result为被写入的地址。
即是将区间[a,b]分为n段,用矩形法求出定积分
的值,将结果写入result中。
2b<
a,此时result写入值为-1。
Ps:
积分公式我不知道对了没,这个星期五可以去问邱老师,还有,如果用到了数学函数,包含头文件”math.h”,需要如此编译:
gccexam2_11.cexam2_11main.c–oexam2_11–lm
exam2_11.c
C语言程序设计复杂程序考核(12)
在链表的当前节点之后插入一个节点。
该函数的功能是在链表的当前节点插入一个节点,当前节点还有要插入的数据以函数的形式参数传给函数。
data*Insert_link((data*op_list,intvalue);
op_list为链表需要插入数据的当前节点;
value为要插入的数据。
考生需要在链表当前节点建立一个新节点,将需要插入的数据存入其中,并将新节点插入到链表中。
NULL增加节点失败
新节点地址插入成功,正常返回。
这是考试之前写的,所以主函数和子函数是连在一起的,分开就是了。
。
exam2_12.c:
C语言程序设计复杂程序考核(13)
对传入的数组中的元素进行从大到小排序,将排序好的数据写入指定地址中。
intsort(int*data,int*sort_data,intnumber);
Int*data指向传入数组的首地址。
数据个数小于1024个。
Int*sort_data指向排序后数组的首地址,sort_data数组长度与data长度相同。
考生需将data指向的数组中数据从大到小进行排序,将排序好的数据写入sort_data指向的地址中。
Intnumber为data数组中元素的个数。
2指针data为空,此时sort_data不写入值;
3data中的数据不小于1024个,此时sort_data不写入值。
exam2-13.c:
题目描述:
设计求n个整数中最大值的函数intmaxm(int*p,intn),找出指针p指向的存储区域内的n个整数中的最大值,并返回最大值。
设计主函数main,输入数据个数n,通过调用动态分配函数malloc获取n个整数的存储空间,再输入n个整数,然后调用函数maxm找出并返回最大值,最后在main函数中输出最大值。
输入数据及格式:
正常输入数据应为两行,第一行为数据个数n,第二行应为n个整数,数据间隔符为一个空格,即:
n
整数1整数2……整数n
所有输入数据均从数据文件data.in中读取。
输入数据文件中每行以回车换行符号’\n’结尾,前后没有多余的空格和换行。
程序设计应当考虑可能因data.in文件不存在而打开失败。
其它要求:
1.C源程序应命名为exam3.c并保存在自己的用户目录中
2.main返回值含义如下
0表示正常结束
1表示文件打开失败(data.in文件不存在)
输出数据、格式及返回值:
输出到标准设备。
若文件打开失败则输出Error1,然后函数返回值1
若输入正常则输出调用函数maxm返回的最大值后换行。
输出完毕后函数返回值0。
每行输出数据的前后无其它多余空格和换行。
评分规则:
1.若程序输出正确并且程序风格规范,得10分
2.若程序输出正确但程序风格不规范,得6分
3.若程序输出错误,得0分
4.在用户目录下找不到exam3.c,也得0分
输入数据示例1:
10
82755465887448859168
输出结果示例1:
91
注:
所举输入输出示例旨在帮助理解题意,并非评分使用的测试数据。
风格要求
1.逗号”,”后紧随一空格符;
2.赋值符”=”后紧随一空格符,前面应用”tab”键缩进,使相邻的赋值符对齐;
3.缩进应符合以下要求:
1、语句块内用<
Tab>
键缩进一层。
2、函数名后左大括号应独占一行,其他的左大括号应紧随其后。
右大括号应独占一行。
4.函数(可不包括main主函数)前必须要有注释,函数前的注释应注明该函数的输入输出和功能。
可能出现的问题解析:
语句块是指“{”、“}”之间的部分。
if、while、for、else、case之后的单独语句也是一个语句块,只是大括号被省略了。
C语言程序设计复杂程序考核
将传入的IP(十进制)地址转换成十六进制。
十进制的IP是以一个结构体的形式传入,分为四段,将每段转换为十六进制,传出。
比如IP地址为:
192.168.125.250,则转换结果为:
c0.a8.7d.a8,结果也是以一个结构体的形式传出。
题目错误错误,正确值为:
c0.a8.7d.fa
inttrans(structIPde,structIP_Hex*hex);
结构体定义如下:
#defineN4
#defineN_HEX3
structIP{
charfirst[N];
charsecond[N];
charthird[N];
charfourth[N];
}
structIP_Hex{
charfirst_hex[N_HEX];
charsecond_hex[N_HEX];
charthird_hex[N_HEX];
charfourth_hex[N_HEX];
结构体IP存储的是ipv4类型的IP地址,有四个成员。
比如structIPipv4所存储的ip值为192.168.125.250,则ipv4.first=”192”,ipv4.Second=”168”,ipv4.Third=”125”,ipv4.Fourth=”250”;
结构体IP_Hex存储的是ipv4类型的IP地址十六进制形态。
比如structIP_Hexip_hex所存储的值为192.168.125.250,ip_hex.first_hex=”c0”,ip_hex.second_hex=”a8”,ip_hex.third_hex=”7d”,ip_hex.fourth_hex=”a8”。
考生需要把两个结构体的定义代码复制到自己的源代码中,即将上述两个结构体的定义复制到exam2.c中。
De是传入的十进制IP地址。
传入的IP分为四段,每段用一个字符串来记录。
Hex是被写入的地址,即是将de中所记录的IP地址,每段都转换成十六进制。
传入传出的例子:
IP地址的十进制形式如下:
structIPde;
de.first=”192”;
de.second=”168”;
de.third=”125”;
de.fourth=”150”
传出的十六进制如下:
structIP_Hexhex;
hex.first_hex=”c0”;
hex.second_hex=”a8”;
hex.third_hex=”7d”;
hex.fourth_hex=”a8”;
2传入的IP不合法(即某段或某些段超过了值255),此时hex不写入值;
这个题的代码我直接发源文件了,main函数与子函数写在一起的,所以有点长
不好截图。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 期末 基础 代码 讲解
![提示](https://static.bdocx.com/images/bang_tan.gif)