c语言程序上机考核题目及答案1Word下载.docx
- 文档编号:22130557
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:23
- 大小:19.64KB
c语言程序上机考核题目及答案1Word下载.docx
《c语言程序上机考核题目及答案1Word下载.docx》由会员分享,可在线阅读,更多相关《c语言程序上机考核题目及答案1Word下载.docx(23页珍藏版)》请在冰豆网上搜索。
i++;
while(*(str+i+1)!
*(str+j)=*(str+i+1)+32;
j++;
*(str+j)='
;
}
voidmain()
{
chara[100]="
DHYOEBG"
charh='
Y'
trans(a,h);
printf("
%s"
a);
在名为exam2.c的文件中实现一个指定的函数,其要求如后所述。
该文件中不应包含main函数。
学生自行编写相应的main函数等来进行测试。
源代码文件保存在学生账号的根目录下。
删除链表中包含指定数据的节点。
该函数的功能为删除链表中指定数据的节点,链表的首节点地址以及所指定的数据以函数形式参数的形式传入。
intdelete_list(data*op_list,intvalue);
其中data数据类型定义如下:
//Linkliststruct
typedefstructdata{
intvalue;
structdata*next;
}data;
结构体中的value成员为所存储的数据,next存储链表下一个节点的地址,如果不存在下一个节点,next值为NULL。
考生应当将上述的data定义的代码复制到源代码文件中。
op_list为链表首节点的地址;
value为指定的数据。
考生需要找到结构体成员value值为指定数据的节点,并将之删除。
-1不存在指定数据;
0删除成功,正常返回。
malloc.h>
intval;
intdelete_list(data*op_list,intdir){
structdata*head,*newP;
head=op_list;
if(head->
next==NULL){
return2;
while(head->
next!
=NULL){
newP=head->
next;
if(newP->
val==dir){
head->
next=newP->
head=head->
return0;
structdata*creatList(){
intlen=0;
intid=0;
structdata*head=(structdata*)malloc(sizeof(structdata));
structdata*Tail=head;
inputlen"
);
scanf("
%d"
&
len);
for(i=0;
i<
len;
i++){
structdata*NewS=(structdata*)malloc(sizeof(structdata));
printf("
inputid"
scanf("
id);
NewS->
val=id;
Tail->
next=NewS;
next=NULL;
Tail=NewS;
returnhead;
voidshowList(structdata*head){
structdata*NewP;
while
(1){
if(head->
return;
NewP=head->
NewP->
val);
head=NewP;
voidmain(){
structdata*head;
head=creatList();
showList(head);
delete_list(head,3);
字符串ASCII排序。
对传入的字符串依据ASCII从小到大的规则进行排序,排序好的数据写入指定地址中。
intsort(char*str,char*sort_str);
str是传入字符串的起始地址。
str中的数据个数小于4096个。
sort_str是排序后字符串的存放地址。
操作成功;
指针str为空,此时sort_str不写入值;
str中的数据不小于4096个,此时sort_str不写入值。
intsort(char*str,char*sort_str){
intn=0;
intm=0;
charch;
*(sort_str+i)=*(str+i);
len++;
sort_str[len]='
for(n=0;
n<
n++){
for(m=n+1;
m<
m++){
if(*(sort_str+n)>
*(sort_str+m)){
ch=*(sort_str+n);
*(sort_str+n)=*(sort_str+m);
*(sort_str+m)=ch;
}
hello"
char*p=a;
charb[100];
char*q=b;
sort(p,q);
q);
在学生根目录下新建一个exam2.c的文件,将符合此后描述的功能的代码写入其中。
源代码文件中不应该包含main函数,考生应该自己建立main函数来调试代码。
将字符串中的数字字符(即’0’~’9’)出现的次数写入到指定的地址中。
考生需要统计一字符串中数字字符出现的次数,然后将次数写入到一个指定的地址中,被操作的字符粗和被写入的地址以函数形式参数传入。
intfunction(char*str,int*stat);
str是传入的被操作字符串。
字符串长度不超过4096。
stat是被写入的地址。
就是将str数组中的数字字符出现的次数写到stat中。
返回值及意义
str为空,此时stat写入的值应为0。
字符串长度超过限制,此时stat写入的值应为0。
string.h>
intfunction(char*str,int*stat){
charch=0;
*stat=0;
if(strlen(str)>
=4096){
ch=*(str+i);
if(ch>
0'
&
&
ch<
9'
*stat=*stat+1;
32yidsf1"
int*q=&
n;
function(p,q);
*q);
大小写转化,统计0的总个数。
函数通过参数传入一个字符串(全为大写字母)的起始地址,通过对这个地址的操作把该字符串中的大写字母转换为小写字母,并统计每个小写字母对应ASCLL码转换为二进制后0出现的次数之和。
intcaculate_student(char*data_buf,int*count);
data_buf是指向字符数组地址的指针,该内存包含一串大写字母。
count是被写入的参数。
就是将所有小写字母对应ASCLL码转换为二进制后0出现的总次数。
data_buf为空,即data_buf==NULL,此时count写入值为-1,即*count=-1。
intcaculate_student(char*data_buf,int*count){
intnum=0;
if(data_buf==NULL){
*count=-1;
while(*(data_buf+i)!
*(data_buf+i)=*(data_buf+i)+32;
%c"
*(data_buf+i));
for(j=0;
j<
i;
j++){
num=*(data_buf+j);
while(num/2!
=0){
if(num%2==0){
*count=*count+1;
num=num/2;
HELLO"
i;
caculate_student(p,q);
%s%d"
p,*q);
若要调试则需重新新建main函数进行测试,但最后只保留指定函数。
找出字符串中ASCII最大的字符,将之写入指定的地址。
intmax(char*data,char*max);
Char*data是传入的字符串。
data元素个数小于1024个;
Char*max是被写入的地址,即是计算data中的最大值并将其写入max中;
指针data为空,此时max写入值为’\0’;
data中的数据不小于1024个,此时max写入的值为’\0’。
/*Note:
YourchoiceisCIDE*/
#include"
stdio.h"
#include"
string.h"
intmax(char*data,char*max){
inttemp=0;
if(strlen(data)>
=1024){
*max='
if(data==NULL){
*max=*data;
while(*(data+i)!
if(*(data+i)>
*max){
*max=*(data+i);
hezllo"
char*p=a;
char*q;
charm;
q=&
m;
max(p,q);
统计一字符串中另一字符串出现的次数。
计算一个指定的字符串在另一个字符串中出现的次数,并将出现的次数写入指定地址中。
指定的字符串和被操作的字符串以函数形式参数的形式传入。
比如字符串”weisweisdfwei”出现字符串”wei”的次数为3次。
intcount(char*str,char*sub_str,int*fre);
str为被操作的字符串,此字符串皆为可打印字符,长度小于4096;
sub_str为指定的字符串,此字符串皆为可打印字符,长度比str小;
fre为被写入的地址。
即是统计字符串str中sub_str出现的次数,并将次数写入fre中。
指针str为空,此时fre写入值为-1;
字符串str长度不小于4096个,此时fre写入值为-1。
intcount(char*str,char*sub_str,int*fre){
intlen=strlen(sub_str);
*fre=-1;
if(*(str+i)==*sub_str){
if(!
strncmp(str+i,sub_str,len)){
*fre=*fre+1;
i=i+len;
}else{
i++;
weilweihehe"
charb[100]="
wei"
int*p=&
count(a,b,p);
*p);
调试时,学生自行编写相应的main函数等来进行测试;
提交时,把main函数屏蔽或删除即可。
计算数组中所有元素的平均值,将平均值写入指定的地址中。
intcaculation(int*data,float*average,intnumber);
data是传入的数组。
data中的元素个数小于1024个。
average是被写入的地址。
即是计算data数组中所有元素de的平均值,将平均值写入average中,data数组中的元素应不变。
numberdata数组的元素个数。
指针data为空,此时average写入值为0;
data中的数据不小于1024个,此时average写入的值为0。
intcaculation(int*data,float*average,intnumber){
doubleadd=0;
*average=0;
if(number>
number;
add=(add+*(data+i));
*average=(float)(add/number);
inta[100]={2,4,6,2,9};
int*q=a;
floatf=1;
float*p=&
f;
caculation(q,p,5);
%f"
学生应自行编写相应的main函数等来进行测试。
对传入的数组进行从小到大排序,排序好的数据写入指定地址中。
intsort(int*data,int*sort_data,intnumber);
data是传入的数据。
data中的数据个数小于1024个。
sort_data是被写入的地址。
即是将data数组中的数据排序好后,写入sort_data数组中,data数组的数据应不变。
number数组data包含的数据个数。
指针data为空,此此时sort_data不写入值;
data中的数据不小于1024个,此时sort_data不写入。
intsort(int*data,int*sort_data,intnumber){
*(sort_data+i)=*(data+i);
%d\n"
*data);
for(j=i+1;
if(*(sort_data+i)<
*(sort_data+j)){
temp=*(sort_data+i);
*(sort_data+i)=*(sort_data+j);
*(sort_data+j)=temp;
inta[100]={4,1,6,9,2};
int*p=a;
intb[100];
int*q=b;
sort(p,q,5);
5;
i++){
*(q+i));
用矩形法求定积分,其中a、b为函数输入参数,[a,b]区间所分的段数n也是传入的参数。
将结果写入指定的地址。
intf(inti,intb,intn,float*result);
b为积分上限;
i为积分下限,i小于或等于b;
n为[i,b]区间所要分的段数,即使将[i,b]区间分为n。
result为被写入的地址。
即是将区间[i,b]分为n段,用矩形法求出定积分的值,将结果写入result中。
i>
b,此时result写入值为-1。
#include<
intf(inti,intb,intn,float*result){
doublenum=0;
floatf;
doublelen=0;
len=(b-i)/((double)n);
if(i>
b){
return-1;
=n;
num=((i+len*j)*(i+len*j)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 上机 考核 题目 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)