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