期末考基础代码讲解文档格式.docx

上传人:b****6 文档编号:17205151 上传时间:2022-11-28 格式:DOCX 页数:36 大小:1.18MB
下载 相关 举报
期末考基础代码讲解文档格式.docx_第1页
第1页 / 共36页
期末考基础代码讲解文档格式.docx_第2页
第2页 / 共36页
期末考基础代码讲解文档格式.docx_第3页
第3页 / 共36页
期末考基础代码讲解文档格式.docx_第4页
第4页 / 共36页
期末考基础代码讲解文档格式.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

期末考基础代码讲解文档格式.docx

《期末考基础代码讲解文档格式.docx》由会员分享,可在线阅读,更多相关《期末考基础代码讲解文档格式.docx(36页珍藏版)》请在冰豆网上搜索。

期末考基础代码讲解文档格式.docx

下面是正确的解答:

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函数与子函数写在一起的,所以有点长

不好截图。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 其它

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

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