首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编写函数fun,函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。 例如,字符串数组中的M个字符串为 AAAA BBBBBBB CC 则合并后的字符.串的内容应是:A
请编写函数fun,函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。 例如,字符串数组中的M个字符串为 AAAA BBBBBBB CC 则合并后的字符.串的内容应是:A
admin
2018-09-27
29
问题
请编写函数fun,函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。
例如,字符串数组中的M个字符串为
AAAA
BBBBBBB
CC
则合并后的字符.串的内容应是:AAAABBBBBBBCC。
提示:strcat(a,b)的功能是将字符串b复制到字符串a的串尾上,成为一个新串。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
1 #include<stdio.h>
2 #include<string.h>
3 #define M 3
4 #define N 20
5 void fun(char a[M][N],char *b)
6 {
7
8 }
9 main()
10 {char w[M][N]={’’AAAA’’,’’BBBBBBB’’,’’CC’’},a[100];
11 int i;void NONO();
12 printf(’’The string:\n’’);
13 for(i=0;i<M;i++)puts(w
);
14 printf(’’\n’’);
15 fun(w,a);
16 printf(’’The A string:\n’’);
17 printf(’’%s’’,a);printf(’’\n\n’’);
18 NONO();
19 }
20 void NONO()
21 {/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
22 FILE*rf,*wf;
23 char w[M][N],a[100];int i;
24 rf=fopen(’’in.dat’’,’’r’’);
25 wf=fopen(’’out.dat’’,’’w’’);
26 for(i=0;i<10;i++) {
27 fscanf(rf,’’%s%s%s’’,w[0],w[1],w[2]);
28 fun(w,a);
29 fprintf(wf,’’%s\n’’,a);
30 }
31 fclose(rf);fclose(wf);
32 }
选项
答案
1 int i,j,k=0; 2 for(i=0;i<M; i++) 3 { for(j=0;j<N;j++) 4 if(*(*(a+i)+j)) 5 //如果不指向行的尾 6 { b[k]=*(*(a+i)+j); 7 //将行中的值赋值给数组b 8 k++;}//数组下标加1 9 else//如果指向尾,则跳出这一行 10 break; 11 b[k]=’\0’;}//数组加尾符
解析
(1)二维字符数组第j行j列元素a
[j],就是指针形式的“*(*(a+i)+j)”。因此,如果字符“*(*(a+i)+j)”是串的结束符,则说明该字符串已经结束。
(2)当一维字符数组存放完字符串中各字符后,必须在一维字符数组的尾字符处加一个结束符“’\0’”,才能把字符数组变成字符串。否则,字符数组就只能是非字符串的一般字符数组。
转载请注明原文地址:https://kaotiyun.com/show/F8xp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下面程序main(){intx=32;printf("%d\n",x=x<<1);}的输出是______。
若以“a+”方式打开一个已存在的文件,则下列叙述正确的是()。
有以下程序A:intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;)main(){int
下列程序输出的结果是()。main(){inta;a=-4+4*5-6;printf("%d",a);a=4+4%5-6;printf("%d",a);a=-3+4%6/5;printf("%d",
设有下列程序:#include<stdio.h>#include<string.h>main(){inti;chars[10],t[10];
有以下程序段: typedef struct NODE {int num; struct NODE *next; }OLD; 以下叙述中正确的是 ______。
结构化程序设计所规定的三种基本控制结构是()
已有定义:inti,a[10],*p;,则合法的赋值语句是
已知字母A的ASCII码为65。以下程序运行后的输出结果是【】。main(){chara,b;a=’A’+’5’-’3’;b=a+’6’-’2’;printf("%d%c\n",a,B);}
在深度为7的满二叉树中,度为2的结点个数为【】。
随机试题
www.edu.cn是Internet上一台计算机的
男性患儿,5岁,因右肩部摔伤2小时就诊,哭闹,查体不配合,肩部无畸形,患儿不愿活动上肢,哪项诊断可能性最大
下列关于结核瘤的特点叙述,错误的是
个人住房抵押贷款的期限最长为()年。
下列各项,不属于诉讼外调解特征的是( )。
砌筑砂浆的原材料要求中,在配制水泥石灰砂浆时,不得采用脱水硬化的()。
水平对比法中,数据收集的方法有()。
黄土高原,是世界上黄土覆盖面积最大的高原,位于中国中部偏北。下列对其叙述正确的一项是()。
食用某些食物可降低体内自由基,达到排毒、清洁血液的作用。研究者将大鼠设定为试验动物,分为两组,A组每天喂养含菌类、海带、韭菜和绿豆的混合食物,B组喂养一般饲料。研究观察到,A组大鼠的体内自由基比B组显著降低。科学家由此得出结论:人类食人菌类、海带、韭菜和绿
一个栈(Stack)对象有三种状态:S1——栈空;S2——栈非空也非满;S3——栈满。则各个状态的条件如下:S1:(t0)创建栈对象时初始化,这是系统做的(t1)在S2状态下执行置空运算setEmpty()(t2)在S3状态下执行置
最新回复
(
0
)