下列给定程序中函数fun的功能是:逐个比较P.q所指两个字符串对应位置上的字符,并把ASCIl值大或相等的字符依次存放到C所指的数组中,形成一个新的字符串。例如,若主函数中a字符串为“aBCDeFgH”,b字符串为“Abed”,则C中的字符串应为“aBcdeFgH”。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!

题目

下列给定程序中函数fun的功能是:逐个比较P.q所指两个字符串对应位置上的字符,并把ASCIl值大或相等的字符依次存放到C所指的数组中,形成一个新的字符串。

例如,若主函数中a字符串为“aBCDeFgH”,b字符串为“Abed”,则C中的字符串应为“aBcdeFgH”。请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!


相似考题
参考答案和解析
正确答案:
(1)intk=0;(2)whffe(+pll+q)【考点分析】本题考查:变量初始化,需根据题意确定变量含义,然后对其进行初始化操作;while循环语句。【解题思路】(1)变量k存放数组c的下标,因此应初始化为0。(2)while循环语句的循环条件是判断两个字符串是否到达结尾。
更多“下列给定程序中函数fun的功能是:逐个比较P.q所指两个字符串对应位置上的字符,并把ASCIl值大或相等的字符依次存放到C所指的数组中,形成一个新的字符串。例如,若主函数中a字符串为“aBCDeFgH”,b字符串为“Abed”,则C中的字符串应为“aBcdeFgH”。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!”相关问题
  • 第1题:

    给定程序MODll.C中函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但z转换为A,z转换为a),其他字符不变。

    请改正函数fun中指定部位的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)while(*s)或while(*s!=ˋ\0ˊ)或while(*s!=0) (2)s++;
    (1)while(*s)或while(*s!=ˋ\0ˊ)或while(*s!=0) (2)s++; 解析:本题中函数的功能是将字符串中的字母改为该字母序列的后续字母。首先判断字母是否为字母,如果是字母则进行转换。

  • 第2题:

    下列给定程序中函数fun的功能是:将P所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。

    例如,若给a输入字符串:ABCDEFGKHHK,调用函数后,字符数组b中的内容为:ABC DEF GHI JK。请改正程序中的错误,使它能得出正确的结果。

    注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构。


    正确答案:
    (1)b[k]=+p;(2)b[k]=“;k++;【考点分析】本题考查:指针类型变量作为函数的参数,函数的参数不仅可以是整型、实型、字符型等数据类型,还可以是指针类型。它的作用是将一个变量的址传送到另一个函数中。【解题思路】(1)JllN中p是指针型变量作函数参数,因此给b[k]赋值时出现错误0(2)题目要求赋值3个字符后加一个空格,所以应该是先给b[k]赋值空格,然后变量k再加1。【解题宝典】C语言中为了表示指针变量和它所指向的变量之间的关系,在程序中用“*’’符号表示“指向”,例如,pointer代表指针变量,而*pointer是pointer所指向的变量。

  • 第3题:

    下列给定程序中,函数fun的功能是:从形参SS所指字符串数组中,删除所有串长超过k的字符串,函数 返回剩余字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。

    请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANKl.C中。

    不得增行或删行.也不得更改程序的结构!


    正确答案:
    (1)N(2)k(3)ss[i]【考点分析】本题考查:for循环语句;ff语句条件表达式;字符串拷贝函数strcpy的使用。【解题思路】填空1:for循环语句作用是遍历字符串数组中的每一个字符串,所以循环变量i的循环条件是i<N。填空2:题目要求删除串长度小于k的字符串,所以if条件语句的条件表达式是len<=k。。填空3:通过字符串拷贝函数将串长不大于k的字符串另存,并记录个数。【解题宝典】字符串拷贝函数strcpy,其格式为:strcpy(字符数组名1,字符数组名2)功能:把字符数组2中的字符串拷贝到字符数组l中。字符串结束标识‘、0’也一同拷贝。字符数名2,也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。

  • 第4题:

    下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCII值小或相等的字符依次存放到c数组中,形成一个新的字符串。

    例如:a中的字符串为fshADfg,b中的字符串为sdAEdi,则c中的字符串应为fdAADf。

    请改正程序中的错误,使它能得到正确结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    include <stdio.h>

    include <strinq.h>

    void fun(char *p,char *q,char *c)

    {int k=0;

    while(*p || *q)

    /**********found**************/

    { if (*p<=*q)

    c[k]=*q;

    else c[k]:*p;

    if(*p) p++;

    if(*q)q++;

    /**+**********found**************/

    k++

    }

    }

    main()

    {char a[10]="fshADfg",b[10]="sdAEdi",

    c[80]={'\0');

    fun(a,b,c);

    printf("The string a:");puts(a);

    printf("The string b:");puts(b);

    printf("The result:");puts(c);

    }


    正确答案:(1)错误:{if(*P=*q) 正确:{if(*p>=*q) (2)错误:k++ 正确:k++;
    (1)错误:{if(*P=*q) 正确:{if(*p>=*q) (2)错误:k++ 正确:k++; 解析:错误1:依题意,把ASCII值小或相等的字符存放到c数组中,故if语句的关系运算符应为“>=”。错误2:C语言规定,每个语句要用分号结束。

  • 第5题:

    给定程序中,函数fIm的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,

    处理后新字符串的首地址作为函数值返回。

    例如。s所指字符串为asdl23fgh543df,理后新字符串为l23543asdfghdf。

    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

    注意:部分源程序给出如下。

    不得增行或删行,也不得更改程序的结构!

    试题程序:


    正确答案:

  • 第6题:

    给定程序MODll.C中函数fun的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面。

    例如:当s所指的字符串为:“ABCDE”时,则t所指的字符串应为:“EDCBAABCDE”。

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)int isl; (2)t[i]=s、[sl-i-1];
    (1)int i,sl; (2)t[i]=s、[sl-i-1]; 解析:本题中函数的功能是先将字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。解题思路是首先对字符串进行逆序存放,然后再把字符串正序连接在串后。

  • 第7题:

    给定程序MODll.C中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。

    注意:字符串的长度最长允许为79。

    请改正函数fun中指定部位的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)p=s; (2)while(*p++);
    (1)p=s; (2)while(*p++); 解析:在字符串的最前端加入n个“*”号,形成新串,并且覆盖原串。然后通过“printf("\nThe string atler insert:\"%s\"、n",s);”函数直接输出结果。

  • 第8题:

    给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中右边的字符删除,只保留左边的k个字符。ss所指字符串数组中共有N个字符串,且串长小于M。

    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

    注意:源程序存放在考生文件夹下的BLANKl.C中。

    不得增行或删行,也不得更改程序的结构!


    正确答案:(1)[M] (2)N (3)0或ˋ\0 ˊ
    (1)[M] (2)N (3)0或ˋ\0 ˊ 解析:本题中函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中右边的字符删除,只保留左边的k个字符。

  • 第9题:

    给定程序MODll.C中函数fun的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。

    例如:若输入:THIs is aboot,则输出应该是:1、0、2、2、0。

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)num[k]=0; (2)switch(*s)
    (1)num[k]=0; (2)switch(*s) 解析:本题中函数的功能是统计字符串中各元音字母(即A、E、I、O、U)的个数。其中,本题在while循环中采用switch-case条件判断字符串中的每一个字符并进行统计。

  • 第10题:

    给定程序MODll.C中函数fun的功能是:将字符串中的字符按逆序输出,但不改变字符串中的内容。

    例如,若字符串为abcd,则应输出:dcba。

    请改正程序中的错误,使它能计算出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)void fun(char *a)(2)printf("%c" *a)
    (1)void fun(char *a)(2)printf("%c", *a), 解析:本题中函数的功能是将字符串中的内容逆序。题干中给出的fun函数通过递归调用自身,实现字符串的逆序。

  • 第11题:

    下列给定程序中,函数fun()的功能是:将P所指字符串中的所有字符复制到b中,要求在每复制3个字符之后插入1个空格。

    例如,若给a输入字符串:“ABCDEFGHIJK”,调用函数后,字符数组b中的内容为:“ABC DEF GHI JK”。

    请改正程序中的错误,使它能得出正确结果。

    注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

    试题程序:


    正确答案:

    (1)错误:b[k]=p;
    正确:b[k]=*p;
    (2)错误:b[k]=ˊ\0ˊ;
    正确:b[k]=ˊˊ;k++
    【解析】此题,首先要知道函数的参数类型可以是整型、实型、字符型和指针型。此处正是指针类型变量作为函数的参数,因此应该是“b[k]=*p”,而不是“b[k]=p”;题目要求在3个字符后加1个空格,通过条件表达式“i<=3&&*p”,①找到不需移动的字符(从第4个位置开始。每隔3个字符)并将其存入数组b中;②此时下标落到了需要移动的字符的位置,在数组b中此位置插入空格,具体语句为:“b[k]=ˊˊ;k++”,继续执行①直到处理到字符串p的最后一个字符。

  • 第12题:

    问答题
    给定程序MODI1.C中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。  例如,当s所指字符串为:“ABCD”时,则t所指字符串中的内容应为:“ABCDDCBA”。请改正程序中的错误,使它能得出正确的结果。  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!  给定源程序:#include #include /*********found*********/void fun(char s,char t){ int i,d; d=strlen(s); for(i=0;i

    正确答案:

    (1)错误:void fun(char s,char t)
    正确:void fun(char *s,char *t)
    (2)错误:t[2*d-1]='\0';
    正确:t[2*d]='\0';或t[d+i]='\0';或t[2*d]=0;或t[d+i]=0;
    解析:

      错误1:根据main函数中fun(s,t)可知,fun函数的第一个参数为数组名称,也就是指针类型。
      错误2:数组t中字符个数是s的2倍,字符存储在t[0]~t[2*d-1],t[2*d]= '\0';第2个for循环结束后,i=d,答案也可为t[d+i]='\0'。

  • 第13题:

    下列给定程序中函数fun的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。

    例如,若输入“Ab,cD”,则输出“AB,CD”。

    请改正程序中的错误,使它能得出正确的结果。

    注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!


    正确答案:
    (1)if((tt[i]>=’a’)&&(tt[i]<=‘z’))(2)tt[i]一=32;【考点分析】本题考查:if语句条件表达式;小写字母转大写字母的方法。【解题思路】(1)分析本题可知,要判断字符是否为小写字母,即判断其是否在a—z之间,所以这里需要进行连续的比较,用&&。(2)从ASCIl码表中可以看出,小写字母的ASCIl码值比对应大写字母的ASCIl值大32。将字符串中的小写字母改为大写字母的方法是:从字符串第一个字符开始,根据ASCIl码值判断该字母是不是小写字母,若是,则ASCIl码值减32即可。

  • 第14题:

    下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。请改正程序中的错误,使它能得出正确的结果。

    注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!


    正确答案:
    (1)fh(j=i+1;j<6;j++)(2)*(pstr+i)=}(pstr+j);【考点分析】本题考查:冒泡排序算法;for循环语句格式;指针数组。【解题思路】(1)此处考查for语句的格式,各表达式之间应用“;”隔开。(2)此处考查用指针表示数组元素的方法,}(pstr+I)表示pstr所指向数组的第1个元素,同理}(pstr+j)表示pstr所指向数组的第j个元素。【解题宝典】冒泡排序算法,其基本思想是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。显然,处理一遍之后,“最轻”的元素就浮到了最高位置;处理二遍之后,“次轻”的元素就浮到了次高位置。依次类推,完成排序。用代码实现数组s[N]的升序排列为:for(i=0;i<N;i++)for(j=i十1;j<N;j++)if(s[i]>s[j]){t-s[i];s[i]=s[j]s[j]=t;}

  • 第15题:

    下列给定程序中,函数fun的功能是:在形参SS所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(即下标值),若未找到则返回一1。SS所指字符串数组中共有N个内容不同的字符串,且串长小于M。

    请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序在文件BLANKl.C中。

    不得增行或删行,也不得更改程序的结构!


    正确答案:
    (1)N(2)i(3)一1【考点分析】本题考查:for循环语句;函数返回值;if语句条件表达式。【解题思路】填空1:变量i是循环变量,它的取值范围是在0到N之间。填空2:如果ss所指字符串数组中的字符串和t所指字符串相同的话,则返回其下标值,即ltttlFni;否则返回一1,即retum一1;填空3:在main函数中输出最后结果,判断函数返回值n,如果n=一1,说明没有找到,否则输出n。

  • 第16题:

    下列给定程序中,函数6m的功能是:将形参S所指字符串中下标为奇数的字符取出。并按ASCIl码大

    小递增排序,将排序后的字符存入形参P所指的字符数组中,形成一个新串。

    例如。形参8所指的字符串为“baawrskjghzlicda”,执行后P所指字符数组中的字符串应为“aachjl。w”。

    请在下划线处填入正确的内容并将下划线删除。使程序得出正确的结果。

    注意:部分源程序给出如下。 ’

    不得增行或删行,也不得更改程序的结构!

    试题程序:


    正确答案:

    [答案](1)t=i (2)i (3)'0'0

    [解析]填空l:为实现下标为奇数的字符的排序,将下标i赋值给中问变量t

    填空2for循环语句实现对下标为奇数的字符的排序操作,所以应填入j=i+2;。

    填空3:将下标为奇数的字符存入P所指的数组后,在数组末尾加入字符串结束标识tot

  • 第17题:

    给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M。

    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

    注意:源程序存放在考生文件夹下的BLANKl.C中。

    不得增行或删行,也不得更改程序的结构!


    正确答案:(1)i (2)ps[j] (3)tp
    (1)i (2)ps[j] (3)tp 解析:本题中函数fun的功能是利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。在fun函数中采用了选择排序法,在选择排序法中的降序排序,首先从数组中挑选一个最大的元素,把它和第一元素交换,接着从剩下的n-1个元素中再挑出一个最大的元素,把它和第二个元素交换,不断重复以上过程,直到比较完最后两个元素。

  • 第18题:

    给定程序MODll.C中函数fun的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。

    例如,若输入:edcba,则应输出:abcde。

    请改正程序中的错误,使它能统计出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)for(i=strlen(t)-1;i;i--)或for(i=strlen(t)-1;i>0;i--)(2)if(t[j]>t[j+1])
    (1)for(i=strlen(t)-1;i;i--)或for(i=strlen(t)-1;i>0;i--)(2)if(t[j]>t[j+1]) 解析:本题中函数的功能是读入一个字符串(长度20),将该字符串中的所有字符按ASCII码升序排序后输出。本题思路是利用字符串长度作为循环的控制条件,然后在循环过程中将字符按.ASCII码排序。

  • 第19题:

    给定程序MODll.C中函数fun的功能是:将s所指字符串的正序和反序进行连接,形成一个新串放在t所指的数组中。

    例如,当s所指字符串为:“ABCD”时,则t所指字符串中的内容应为:“ABCDDCBA”。

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)void fun(char*s char*t) (2)t[2*d]=‘\0’;
    (1)void fun(char*s, char*t) (2)t[2*d]=‘\0’; 解析:本题中函数的功能是将字符串的正序和反序进行连接。题目中首先由字符串的起始位置正序取字符,然后再由串尾逆序取字符,实现正序和逆序的连接。

  • 第20题:

    下列给定程序中函数fun的功能是:统计substr所指的字符串在str所指的字符串中出现的次数。 例如,若字符串为aaas lkaaas,子字符串为as;则应输出2。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改的程序的结构!


    正确答案:
    【参考答案】

    【考点分析】
    本题考查:for循环语句的格式,for循环语句使用最为灵活,其一般形式为:for(表达式1;表达式2;表达式3),注意表达式之间使用”;”相隔;if条件语句的格式,其中if关键字需要区别大小写,这里不能混淆使用。关键字是由C语言规定的具有特定意义的字符串,也称为保留字。用户定义的标识符不应与关键字相同,并且关键字应小写。
    【解题思路】
    先看循环条件for(i=0,str[i],i++),不难发现此处for循环语句的格式有误,其中表达式之间应以”;”相隔;同时很容易发现if条件语句处的关键字书写错误。

  • 第21题:

    下列给定程序中,函数proc()的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。 例如原始字符串是“ab45c6djfd789”,则输出后的字符是“456789”。 请修改函数proc()中的错误,使它能得出正确的结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:


    正确答案:

  • 第22题:

    给定程序中,函数fun的功能是:对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参p所指字符数组中,形成一个新串。

    例如,形参s所指的字符串为:baawrslkjghzlicda,执行后p所指字符数组中的字符串应为:aachjlsw。

    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

    注意:源程序存放在考生文件夹下的BLANKl.C中。

    不得增行或删行,也不得更改程序的结构!


    正确答案:(1)t=i (2)i (3)0或“\0”
    (1)t=i (2)i (3)0或“\0” 解析:函数fun的功能是对形参s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符保存在另外一个数组中。在fun函数里,采用选择排序法对奇数位置的字符进行排序,排序之后将这些字符保存在p所指字符数组。
    在选择排序法中的升序排序中,首先从数组中挑选一个最小的元素,把它和第一元素交换,接着从剩下的n-1个元素中再挑出一个最小的元素,把它和第二个元素交换,不断重复以上过程,直到比较完最后两个元素。

  • 第23题:

    问答题
    给定程序MODI1.C中函数fun的功能是:先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面。  例如:当s所指的字符串为:“ABCDE”时,则t所指的字符串应为:“EDCBAABCDE”。  请改正程序中的错误,使它能得出正确的结果。  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!  给定源程序:#include #include void fun(char *s, char *t){ /*********found*********/ int i; i=0; s1=strlen(s); for(;i

    正确答案:

    (1)错误:int i;
    正确:int i,s1;
    (2)错误:t[i]=s[s1-i];
    正确:t[i]=s[s1-i-1];
    解析:

      错误1:变量s1没有定义。
      错误2:第一个循环实现将s串中的字符逆序存入t串中,si为s的长度,数组s的下标值范围是0~s-1,t[i]对应s串中的s[s1-i-1]。