c语言 程序填空?

(2)将已升序排好的两个字符串a和b中的字符按升序合并到字符串c中

先说答案:

第一个空
c[k] = a[i]; i++
第二个空
b[j]; j++
第三个空
'\0'

再说思路:

首先已知 i 和 j 分别代表选用 a 和 b 的索引,
既然是使用比较小的排在前边,
那如果 a[i] 比 b[j] 小,就肯定是选用 a[i]。
比如第一次比较时,a[0] < b[0],所以用 a[0]。
于是有 c[k] = a[i];
比较后其它地方没有给 i 或 j 自增,
a[0] 已经被写到 c[0] 位置了,
所以下一次比较应该使用 a[1] 与 b[0] 再进行比较,
因此需要进行 i++ 操作。
if结束后,不走else,直接k++,所以接下来是看c[1]是什么数字。
再执行一次发现 a[1] < b[0] ,i 变成 2,k变成2。

再看 else 部分,走到 a[2] 与 b[0] 的比较发现结果是
a[2] > b[0],所以此时 c[2] 应当使用 b[0],
因此用 c[k] = b[j] 来选用更小的答案。
随后与a一样,需要对 j 进行 ++,下一次使用 a[2] 与 b[1] 比较,
判断结束后 k++,下一次判断 c[3] 是 a[2] 还是 b[1]。

当所有判断结束后,两个char[] 已经按照顺序排列到了 c[] 里,
此时的 k 坐标在完成最后一次判断后还是 ++ 了一次,指向
len(a+b)+1 的位置。
因此最后一个按照c语言的规范应当填充 '\0' 做字符串的结尾。

温馨提示:内容为网友见解,仅供参考
无其他回答

c语言 程序填空?
第一个空c[k] = a[i]; i++第二个空b[j]; j++第三个空'\\0'再说思路:首先已知 i 和 j 分别代表选用 a 和 b 的索引,既然是使用比较小的排在前边,那如果 a[i] 比 b[j] 小,就肯定是选用 a[i]。比如第一次比较时,a[0] < b[0],所以用 a[0]。于是有 c[k] = a[...

计算机二级的c语言有哪几种题型?
二、程序填空题 程序填空题有2-3个空,占比分值18分,该题型为上机题,其三个空占比18分,可想而知其重要性。三、程序改错题 程序改错题有2-3处错误,该题型分值占比也是18分,难度比程序填空题略难。该题型也为上机题,也许重视该类题型。四、程序设计题 程序设计题是计算机二级C语言考试重点,...

C语言程序填空 输入一个正整数 n (1<n<=10),再输入n 个整数,输出平均值...
1、输入一个正整数 n (1<n<=10),再输入n 个整数,输出平均值(保留2 位小数)。sum = 0;for(i = 0;i < n;i++){ sum += a[i];} aver=sum*1.0\/n;2、index = 0;for(i = 1;i < n;i++){ if(a[i] > a[index]){ index = i;} } 命题 1 对于B=36N+1 形数...

C语言程序填空 功能:统计一个字符串中的字母、数字、空格和其它字符的个...
main (){ char s1[80];int a[4]={0};int k;\/***SPACE***\/ void fun(char s[],int b[]);gets(s1);\/***SPACE***\/ fun(s1,a);puts(s1);for(k=0;k<4;k++)printf("%4d",a[k]);} void fun(char s[],int b[]){ int i;for (i=0;s[i]!='\\0';i++)if ('...

全国计算机考试二级C语言题型
3、全国计算机考试二级C语言题型之一——程序填空题。程序填空题只有一道,总共18分,考试内容就是根据题目和不完整程序,在不完整程序里面写一句正确的程序使得程序能正确运行。4、全国计算机考试二级C语言题型之一—程序修改题。程序修改题只有一道,总共18分,考试内容就是根据所给题目和已知程序,但是程序...

c语言 程序填空,分别求出一批非零整数中的偶数,奇数平均值,用0作为终 ...
3、我们接下来就要对我们输入的整数进行判断,在C语言中,if是判断语句,所以我们用它来对我们的整数进行判断。if(a%2==0)是我们计算机认可的判断代码。4、因为我们需要进行结果的输出,不单单是判断而已,所以,我们要结合else来结合进行判断,对结果进行输出。具体代码看下图。5、点击“运行”,在...

C语言程序填空 功能:输入两个整数,求他们的按位与。
三个空分别填 : x\/2 k*(a&&b) printf 按位与是将两个二进制数的对应位逐一地进行逻辑与操作。与的运算规则是两个数只要有一个为0,则其逻辑与的结果就为0 举个例子你就明白了! 定义:a = 135 , b = 43 用二进制表示分别为:10000111 和 00101011 则 a 按位与 b 的值为 00...

c语言程序填空题 1、如下程序的输出结果是 。 main( )
1、如下程序的输出结果是 c=3 。main( ){ int a=2,b=-1,c=3;if(a<b)if(b<0)c=0;else c++;printf(“c=%d”,c);} else 是与前面一个最近的if对应的,a=2,b=-1,a<b不成立,因此后面一个if--else---语句没有执行,c值没有改变。2、求 1! + 2!+3!+---+10...

C语言 程序填空题
答案:15,64 6(由于有些输出中间没有空格,所以输出是连在一起的了),分析如下:#include<stdio.h>int k=1;void main(){int i=4;void fun(int m);fun(i); \/\/调用函数printf("%d %d\\n",i,k); \/\/变量i=4,全局变量k的值是6,所以输出4 6}void fun(int m){m+=k; k+=m;...

c语言程序填空 下面程序是计算sum=1+(1+1\/2)+(1+1\/2+1\/3)+…(1+1\/2?
以下是填空后的C语言程序,用于计算目标序列的和:Copy code include <stdio.h> int main() { int n = 5, i, j;double sum = 0, s = 1;for (i = 2; i <= n; i++) { for (j = 1; j <= i; j++) { s += 1.0 \/ j;} sum += s;s = 0; \/\/ 将 ...

相似回答
大家正在搜