首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数fun,其功能:编写函数fun(char *s0,char *s1,char *s2,char *s3),要求实现——将s0所指字符串分解成3个字符串,分别存入s1、s2、s3所指内存中。分解的方法是,s1、s2、s3从s0中依次按顺序每隔3个字
请编写函数fun,其功能:编写函数fun(char *s0,char *s1,char *s2,char *s3),要求实现——将s0所指字符串分解成3个字符串,分别存入s1、s2、s3所指内存中。分解的方法是,s1、s2、s3从s0中依次按顺序每隔3个字
admin
2022-10-25
60
问题
请编写函数fun,其功能:编写函数fun(char *s0,char *s1,char *s2,char *s3),要求实现——将s0所指字符串分解成3个字符串,分别存入s1、s2、s3所指内存中。分解的方法是,s1、s2、s3从s0中依次按顺序每隔3个字符取1个。
例如:s0为”abcdefghij”时,分解完成后,s1、s2、s3分别为”adgj””beh””cfi”。
注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
#include<string.h>
void fun(char *s0,char *s1,char *s2,char *s3)
{
}
void main()
{
void NONO();
char s0[100],s1[40],s2140],s3[40];
printf(”请输入一行字符串\n”);
gets(s0);
fun(s0,s1,s2,s3);
puts(s1);
puts(s2);
puts(s3);
NONO();
}
void NONO()
{
FILE *fp=fopen(”out.dat”,”w”);
char s0[10][100]={”1234567890qazwsx”,”abcdefghij”,”0987654321plmokn”,”fsdjfsdlrj564342dsf”,”gfdklgjdsfl4754398”,”zxcvbnmasdfg”,”asdfghjkl123”,”qwertyuiop456”,”qweasdzxc789”,”poiuytrewqwsxqaz”};
char s1[40],s2[40],s3[40];
int i;
for(i=0;i<10;i++)
{
fun(s0
,s1,s2,s3);
fprintf(fp,”s1=%s,s2=%s,s3=%s\n”,s1,s2,s3);
}
fclose(fp);
}
选项
答案
{ char *p1=s0,*p2=s0+1,*p3:s0+2; int len=strlen(s0),i=0,j=0,k=0; while(p1<s0+len||p2<s0+len||p3<s0+len) { if(p1<s0+len) { s1[i++]=*p1; p1=p1+3; } if(p2<s0+len) { s2[j++]=*p2; p2=p2+3; } if(p3<s0+len) { s3[k++]=*p3; p3=p3+3; } } s1[i]=’\0’; s2[j]=’\0’; s3[k]=’\0’;
解析
分别定义字符指针p1,p2,p3,p1指向字符串s0的第1个字符,p2指向字符串曲的第2个字符,p3指向字符串s0的第3个字符。在while循环内,循环条件为指针p1,p2,p3指向字符串末尾,循环结束。循环内分别将指针p1,p2,p3指向的字符存放到对应的数组中,再将指针移动3个位置。最后将数组s1,s2,s3的最后一个字符赋值字符串结束标志。
转载请注明原文地址:https://kaotiyun.com/show/vRkp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序:#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}main(){int
非空循环链表所表示的数据结构
以下选项中正确的语句组是()。
给定程序MODI1.C中函数fun的功能是:用下面的公式求x的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:例如,程序运行后,输入0.0001,则程序输出3.1414。请改正程序中的错误,使它能输出正确的结果。注意:不要改动smain
有以下程序:#includeintf(intm){staticintn=0;n+=m:returnn;}{main(){intn=0;p
有以下程序,程序中库函数islower(eh)用以判断ch中的字母是否为小写字母:#include#includevoidfun(char*P){inti=0;while(P[i])
以下选项中,合法的一组C语言数值常量是()。
设y为整型变量,a=6,am地址为E2000,b=14,b的地址为E2001;执行语句b=&a;y=&a;后y的值为()。
若有chars[3][3]={"AAA","BBB","CCC”);说明语句,则与它等价的语句是()。
一名教师可讲授多门课程,一门课程可由多名教师讲授。则实体教师和课程间的联系是()。
随机试题
A.温肺化饮B.引火归原C.理气和胃D.下气消痰E.杀虫止痒胡椒具有的功效是()
孙先生,37岁。诊断急性白血病1个月,血小板计数20×109/L,病程中突然出现剧烈头痛、喷射性呕吐,视物不清、意识模糊。不正确的对症护理措施是
在可摘局部义齿制作中,下面哪项是塑料填塞最适宜的时期A.湿砂期B.粥状期C.丝状期D.面团期E.橡皮期
与极滋养层接触的蜕膜称覆盖在囊胚上面的蜕膜为
(2009年)饮用水加氯消毒中,起主要作用的成分是()。
下列关于安全防护装置的选用原则和常见的补充保护措施的说法,错误的是()。
对于前期差错更正,企业应当在附注中披露的内容有()。
零和博弈指参与博弈的各方,在严格竞争下,一方的收益必然意味着另一方的损失,博弈各方的收益和损失相加总和永远为“零”,双方不存在合作的可能。下列不属于零和博弈的是()。
软件危机是软件产生过程中出现的一种现象,下述现象()是其主要表现。Ⅰ.软件需求增长难以满足Ⅱ.软件开发成本提高Ⅲ.开发进度难以控制Ⅳ.软件质量不易保证
基于ARM内核的嵌入式芯片中的中断控制器的功能是对芯片中相关硬件组件的中断请求进行管理和控制,一般采用【63】_______中断(VIC)或【64】_______中断(NVIC)方式管理中断。
最新回复
(
0
)