试题3本程序中,函数fun的功能是判断字符串是否是回文,若是回文,则返回1,主函数中输出YES;否则,函数返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。例如,字符串LEVEL是回文,而123312就不是回文。请在函数fun的花括号中填入你编写的若干语句。(注意:不改动程序的结构,不得增行或删行。)#include <stdio.h>#define N 80int fun ( char *str){}main(){ char s[N];printf(“Enter a string : ”) ;

题目

试题3

本程序中,函数fun的功能是判断字符串是否是回文,若是回文,则返回1,主函数中输出YES;否则,函数返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。例如,字符串LEVEL是回文,而123312就不是回文。请在函数fun的花括号中填入你编写的若干语句。(注意:不改动程序的结构,不得增行或删行。)

#include <stdio.h>

#define N 80

int fun ( char *str)

{

}

main()

{ char s[N];

printf(“Enter a string : ”) ;

gets (s) ;

printf(“\n\n”) ;

puts (s) ;

if (fun (s))

printf (“YES\n”) ;

else

printf (“N0\n”) ;

nono ();

}

nono ()

{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件.*/

int i;

FILE *rf, *wf ;

char s[N] ;

rf = fopen (“bc.in”,“r”) ;

wf = fopen (“bc.out”,“w”) ;

for ( i=0; i<10; i++ )

{ fscanf (rf, “%s”,s ) ;

if (fun ( s ))

fprintf (wf, “%s YES\n”, s ) ;

Else

fprintf(wf, “%s NO\n”, s ) ;

}

fclose (rf) ;

fclose (wf) ;

}


相似考题
更多“试题3本程序中,函数fun的功能是判断字符串是否是回文,若是回文,则返回1,主函数中输出YES;否则,函 ”相关问题
  • 第1题:

    下列给定程序中,函数fun()的功能是计算并输出high以内的素数之和。high由主函数传给fun()函数。

    例如:若high的值为100,则函数的返回值为1060。

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

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

    [试题源程序]

    include <conio.h>

    include <stdio.h>

    include<math.h>

    int fun(int high)

    {

    int sum=0, n=0, j, yes;

    while(high>=2)

    {

    yes=1;

    for(j=2;j<=high/2; j++)

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

    ifhigh%j==0

    {

    yes=0;

    break;

    }

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

    if(yes==0)

    {

    sum+=high;

    n++;

    }

    high--;

    }

    return sum;

    }

    main()

    {

    clrscr();

    printf("%d\n", fun(100));

    }


    正确答案:(1)错误:ifhigh%j==0 正确:if(high%j==0) (2)错误:if(yes==0) 正确:if(yes)
    (1)错误:ifhigh%j==0 正确:if(high%j==0) (2)错误:if(yes==0) 正确:if(yes) 解析:fun函数的功能是:用while循环查找high以内的素数;用for循环判断一个数是否为素数;用变量n记录找到的素数的个数:用return返回素数之和sum。
    错误1:这个错误比较明显,if语句的两侧要加括号。
    错误2:yes为1时,说明被判断的数是素数,要累加到sum。

  • 第2题:

    请补充函数fun(),该函数的功能是判断一个数的个位数字和百位数字之和是否等于其十位上的数字,是则返回"yes!”,否则返回“no!”。

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

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

    试题程序:

    include<stdio.h>

    include<conlo.h>

    char*fun(int n)

    {

    int g,S,b;

    g=n%l0;

    s=n/10%10;

    b=【 】;

    if((g+b)==s)

    return【 】;

    else

    return【 】;

    }

    main()

    {

    int num=0;

    clrscr();

    printf("******Input data*******\n");

    scanf("%d",&num);

    printf("\n\n\n");

    printf("******The result*******\n");

    printf("\n\n\n%s",fun(num));

    }


    正确答案:n/100%10 "yes!" "no!"
    n/100%10 "yes!" "no!" 解析:第一空:由程序可以知道,变量g保存了整数的个位数,变量s保存了整数的十位数,所以变量b应该保存整数的百位数。将整数除以100再对10取余,则得到这个整数的百位数。第二空:当个位数字和百位数字之和等于十位数字时,则返回"yes!"。第三空:当个位数字和百位数字之和不等于十位数字时,则返回"no!"。

  • 第3题:

    请编写函数fun(),它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。

    例如,若输入字符串123412132,输入字符1,则输出3。

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

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include<coio.h>

    include<stdio.h>

    define M 81

    int fun(char *ss,char c)

    {

    }

    main()

    { char a[M],ch;

    clrscr();

    printf("\nPlease enter a string:");

    gets(a);

    printf("\nPlease enter a char:");

    ch=getchar();

    printf("\nThe number of the char is:%d \n",fun(a,ch));

    }


    正确答案:int fun(char *sschar c) { int i=0; for (;*ss!='\0';ss++) if(*ss==c) i++; /*求出ss所指字符串中指定字符的个数*/ return i; }
    int fun(char *ss,char c) { int i=0; for (;*ss!='\0';ss++) if(*ss==c) i++; /*求出ss所指字符串中指定字符的个数*/ return i; } 解析:从字符串ss中找出子字符串的方法是:从第1个字符开始,对字符串进行遍历:若ss串的当前字符等于t串的第1个字符,两字符串的指针自动加1,继续比较下一个字符;若比较至字符串的结尾,则跳出循环;若“串的字符和c串的字符不对应相同,则继续对,s串的下一个字符进行处理。本程序是采用逐一比较的方式找出出现的次数。循环的作用是在串中从左到右逐一走动,if()的作用是进行判断是否相同,若与c相同则表示又出现一次.

  • 第4题:

    请编写一个函数fun(),它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较K的字符串。若两个字符串长度相等,则返回第1个字符串。

    例如,输入beijing<CR>shanghai<CR>(<CR>为回车键),函数将返回shanghai。

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

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include<stdio.h>

    char *fun(char *s, char *t)

    {

    }

    main()

    {

    char a[20],b[10],*p,*q;

    int i;

    printf ("Input 1th string: ");

    gets(a);

    printf{"Input 2th string: ");

    gets(b);

    printf("%s",fun(a,b));

    }


    正确答案:char *fun(char *s char *t) { int ii; for(i=0;s[i]!= '\0';i++); /*求字符串的长度*/ for(j=0;t[i]!= '\0';j++); if(i>=j) /*比较两个字符串的长度*/ return s; /*函数返回较长的字符串若两个字符串长度相等则返回第1个字符串*/ else return t; }
    char *fun(char *s, char *t) { int i,i; for(i=0;s[i]!= '\0';i++); /*求字符串的长度*/ for(j=0;t[i]!= '\0';j++); if(i>=j) /*比较两个字符串的长度*/ return s; /*函数返回较长的字符串,若两个字符串长度相等,则返回第1个字符串*/ else return t; } 解析:本题中,第1个for循环的作用是求出s的字符个数i,第2个for循环的作用是求出t的字符个数j,因为任何循环都要控制一条语句,所以在每一个for循环条件后面必须要有一个分号。
    本题也可用如下技巧:
    char*fun(char*s,char*t)
    {if(strlen(s)>=strlen(t)return s;
    else return t;
    }

  • 第5题:

    函数check()用来判断字符串s是否是“回文”(顺读和倒读都一样的字符串称为“回文”,如abcba)。若是回文,函数返回值为1;否则返回值为0。请完成此函数的定义。

    注意:部分源程序已存在考生文件夹的文件PROC7.cpp中。

    请勿修改主函数和其他函数中的任何内容,仅在函数check()的花括号中填写若干语句。

    文件PROC7.cpp的内容如下:

    //PROC7.cpp

    include<iostream>

    include<string>

    using namespace std;

    int check(char*s);

    int main()

    {

    char str[100],*p;

    cout<<"Input your string!";

    cin>>str;

    p=str;

    cout<<"The result is:"<<check(p)<<end1;

    }

    int check(char*s)

    {

    // * * * * + * * *

    }


    正确答案:

  • 第6题:

    下列给定程序中,函数fun()的功能是:判断一个整数m是否是素数,若是返回l,否则返回0。在main()函数中,若fun()返回1则输出YES,若fun()返回0则输出NO!

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

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

    试题程序:

    include <conio.h>

    include <stdio.h>

    int fun(int m)

    { int k=2;

    while (k<=m&&(m%k))

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

    k++

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

    if(m=k)

    return 1;

    else return O;

    }

    main ( )

    { iht n;

    clrscr ();

    printf("\nPlease enter n: ");

    scanf ("%d", &n);

    if (fun (n)) printf ("YES\n");

    else printf ("NO! \n");

    }


    正确答案:(1)错误:k++ 正确:k++ (2)错误:if(m=k) 正确:if(m==k)
    (1)错误:k++ 正确:k++ (2)错误:if(m=k) 正确:if(m==k) 解析:函数fun()的功能是判断m是否为素数:m从2开始作为除数,并对m取余,若不存在一个数使得余数为0,则m为素数,程序的错误在于if(m=k)语句中的逻辑表达式写成了赋值表达式。

  • 第7题:

    阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

    【函数1说明】

    函数palindrome(char s[])的功能是:判断字符串s是否为回文字符串。若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样时,则可称该字符串是回文字符串。例如,“LEVEL”是回文字符串,而“LEVAL”不是。

    【函数1】

    int palindrome(char s[]{

    char *pi, *pj;

    pi=s; pj=s+strlen(s)-1;

    while(pi<pj&&(1)){

    pi++; pj--;

    }

    if((2))return-1;

    else return 0;

    }

    【函数2说明】

    函数f(char *str, char del)的功能是:将非空字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。

    例如,若str的值为“33123333435”,del的值为“3”,调用此函数后,将输出三个子字符串,分别为“12”、“4”和“5”。

    【函数2】

    void f(char *str, char del){

    int i,j, len;

    len=strlen(str);

    i=0;

    while(i<len){

    While((3)) i++; /*忽略连续的标志字符*/

    /*寻找从str[i]开始直到标志字符出现的一个子字符串*/

    j=i+1;

    while(str[j]!=del && str[j]!='\0')j++;

    (4)='\0'; /*给找到的字符序列置字符串结束标志*/

    printf("%s\t",&str[i]);

    (5);

    }

    }


    正确答案:(1)*pi==*pi (2)pipj或*pi!=*pj (3)str[i]==del (4)str[j] (5)i=j+1
    (1)*pi==*pi (2)pipj或*pi!=*pj (3)str[i]==del (4)str[j] (5)i=j+1 解析:本题考查在C语言中对字符串的处理。
    【函数1】
    使用数组s[n]来存储一个字符串,因为要根据回文字符串的定义来判断一个串是否是回文字符串,所以需要循环比较。
    (1)拿该字符串的第一个元素s[0]和最后一个元素s[n-1]比较,如果s[0]不等于s[n-1],则s不是回文字符串。
    (2)如果s[0]等于s[n-1],则拿第二个元素s[1]和倒数第二个元素s[n-2]比较,如果 s[1]不等于s[n-2],则s不是回文字符串。
    (3)依次类推,直到最中间的两个元素也比较完毕(如果s有偶数个元素),或者只剩下中间的一个元素(如果s有奇数个元素)。
    当上述循环结束时,如果最中间的元素没有进行比较,就说明s不是回文字符串;如果进行了比较,则s是回文字符串。
    在函数1中,pi和pj是两个指向字符的指针,程序首先将s的首地址赋给pi(即*pi =a[0]),将元素s[strlen(s)-1]的地址赋给pj(即*pj=s[strlen(s)-1]),当pipj并且pi和pj所指向的值相等时进行循环:pi自增,pj自减。
    退出循环后,如果pipj,则s是回文字符串(如果s有偶数个元素,则为pi>pj;如果s有奇数个元素,则为pi=pj);如果pipj,则s不是回文字符串。
    【函数2】
    由函数2说明可知,此函数对给定的字符串进行从左至右的扫描,找出不包含标志字符的子字符串。
    在函数2中,i的初值为0,len表示字符串的长度。当ilen时进行循环:如果当前字符是标志字符,则不作处理,继续扫描。当退出该循环时,当前字符str[i]不是标志字符,这时从str[i]开始寻找,直到找到在标志字符中出现的一个子字符串(i保持不变,用i标记寻找的过程),给找到的字符序列置字符串结束标志,以便于后面语句的输出。
    输出语句结束后,就要继续寻找后面的不包含标志字符的子字符串,这时,需要把指针i移动至j的后面,继续扫描。

  • 第8题:

    程序PROGl.G的功能是:寻找并输出ll至999之间的数m,它满足m、m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如l21,676,94249等。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请考生编制函数int JsValue(long m)实现此功能,如果是回文数,则函数返回l,反之则返回0。最后把结果输出到文件out.dat中。 注意:部分源程序存放在test.c文件中。 请勿改动主函数main。


    正确答案:
    【审题关键句】回文数字。
    【解题思路】
    ①定义长整型变量i、n,并分别赋给初值m、0(m的值等于主函数中m循环变量的值)。
    ②当变量i的值非零时,即m值不为0时,把n乘以l0加上i除以l0所得的余数的和赋给变量n,把i除以l0所得的商,赋给变量i。实现对整数i各位上的数字进行逆序排列。
    ③当退出while循环时,判断n是否等于m,如果两者相等,则说明参数m是回文,返回l,否则,不是回文,返回0。
    【参考答案】

  • 第9题:

    …请编写函数。fun能是:判断形参n中的正整数是几位数(输入数据的位数不超过4位),并将结果通过函数值返回。例如:若输入的数据为l23,则输出结果为:输入的数字是3位。

    注意:部分源程序存在PROGl.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所缩写的若干语句。

    试题程序:


    正确答案:
    【考点分析】主要考察考生对循环跳出的条件的理解,以及理解取数字位数的方法。【解题思路】通过对指定的多位数每次除以10,去掉最后一位,直到为0结束,使用临时变量来统计一个多位数的位数。

  • 第10题:

    请补充函数proc(),该函数的功能是判断一个数是否为素数。该数是素数时,函数返回字符串:“yes!”,否则函数返回字符串:“no!”,并在主函数中输出。

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

    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。

    试题程序:


    正确答案:

    【l】char*proc(intn)【2】2【3】n%i==0
    【解析】由整个程序可知,【1】应为函数proc()的函数头。根据主函数中的调用可知形参的个数和类型,因此,【1】处填“char”proc(intn)”。素数为只能被1和它本身整除的整数。要判断一个整数是否为素数,要看它是否能被除1和小于它本身之外的数整除,因此,【2】处填“2”;【3】处填“n%i==0”。

  • 第11题:

    已知函数isaplha(ch)的功能是判断变量ch是否是字母,若是,则该数值为1,否则为0。下面程序执行后的输出结果是________。


    正确答案:

  • 第12题:

    单选题
    用于返回文本字符串中从指定位置开始的指定数目的字符的函数是().
    A

    RIGHT

    B

    MID

    C

    LEN

    D

    LEFT


    正确答案: A
    解析: MID用于返回文本字符串中从指定位置开始的指定书目的字符.

  • 第13题:

    如下哪个函数表示返回文本字符串中的字符个数()。

    A.substitute

    B.match

    C.sum

    D.len


    答案:D

  • 第14题:

    请编写函数fun(),该函数的功能是判断字符串是否为回文,若是则函数返回1,主函数中输出YES:否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。

    例如:字符串LEVEL是回文,而字符串123312就不是回文。

    注意;部分源程序已存在文件test26_.cpp中。

    请勿修改主函数main和其他函数中的任何内容,仅在函数fun的花括号中填写若干语句。

    文件test26_2.cpp的内容如下:

    include<iostream.h>

    include<stdio.h>

    define N 80

    int fun(char*str)

    {

    }

    void main()

    {char s[N];

    cout<<"Enter a string:"<<endl;

    gets{s);

    cout<<"\n\n";

    puts(s);

    if(fun(s))

    cout<<"YES\n";

    else

    cout<<"NO\n";

    }


    正确答案:int fun(char*str) {int in=Ofg=1; char*p=str; while(*p) {n++; p++;} for(i=0;in/2;i++) if(str[i]==str[n-1-i]) ; else {fg=O;break;} return fg; }
    int fun(char*str) {int i,n=O,fg=1; char*p=str; while(*p) {n++; p++;} for(i=0;in/2;i++) if(str[i]==str[n-1-i]) ; else {fg=O;break;} return fg; } 解析:解答本题的主要思路是:首先要利用循环中指针的移动来求得字符串的长度n,然后用一个for循环依次取得数组中的前半部分元素,用取得的前半部分内的元素逐个与后半部分内的对应位置的元素进行比较,如果相同,不做任何工作,接着取下一个元素,继续比较:如果不相同,可以判断该字符串肯定不是回文,就给标志变量fg赋值0(fg的初始值为1)。最终把fg作为函数的返回值返回(fg值为1表明是回文,fg值为0表明不是回文)。

  • 第15题:

    阅读下列函数说明和C函数,将应填入______处的语句写在答题纸的对应栏内。

    [函数2.1说明]

    函数palindrome(char s[])的功能是:判断字符串s是否为回文字符串,若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样,称该字符串是回文字符串,例如,“LEVEL”是回文字符串,而“LEVAL”不是。

    [函数2.1]

    int palindrome(char s[])

    {

    char *pi, *pj;

    pi=s;pj=s+strlen(s)-1;

    while(pi<pj&& (1) ) {

    pi++;pj--;

    }

    if( (2) ) return-1;

    else return 0;

    }

    [函数2.2说明]

    函数f(char *str,char del)的功能是:将非空字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。

    例如,若str的值为“33123333435”,del的值为“3”,调用此函数后,将输出3个子字符串,分别为“12”,“4”和“5”。

    [函数2.2]

    void f(char *str,char del)

    {

    int i,j,len;

    len=strlen(str);

    i=0;

    While(i<len){

    While( (3) )i++; /* 忽略连续的标志字符 */

    /* 寻找从str[i]开始直到标志字符出现的一个子字符串 */

    j=i+1;

    while(str[j]!=del &&str[j]!'\0')j++;

    (4) ='\0'; /* 给找到的字符序列置字符串结束标志 */

    printf("%s\t",&str[i]);

    (5);

    }

    }


    正确答案:(1)*pi==*pj (2)pipj或 *pi != * pj及其等价形式 (3)str[i]==del (4)str[j] (5)i=j+1
    (1)*pi==*pj (2)pipj或 *pi != * pj,及其等价形式 (3)str[i]==del (4)str[j] (5)i=j+1 解析:[函数2.1]
    若一个字符串顺读和倒读都一样,称该字符串是回文字符串。如果使用数组s[n]来存储一个字符串,则根据这个定义,要判断一个串是否是回文字符串,需要循环比较:
    (1)该字符串的第一个元素s[0]和最后一个元素s[n-1]比较,如果s[0]不等于 s[n-1],则s不是回文字符串。
    (2)如果s[0]等于s[n-1],则第二个元素s[1]和倒数第二个元素s[n-2]比较,如果s[1]不等于s[n-2],则s不是回文字符串。
    (3)依次类推,直到最中间的2个元素也比较完毕(如果s有偶数个元素),或者只剩下中间的1个元素(如果s有奇数个元素)。
    当上述循环结束时,如果最中间的元素没有进行比较,就说明s不是回文字符串,如果进行了比较,则s是回文字符串。
    在函数2.1中,pi和pj是2个指向字符的指针,程序首先将s的首地址赋给pi(即 pi=&a[0]),将元素s[strlen(s)-1)的地址赋给pj(即pj=&s[strlen(s)-1]),当pipj并且pi和pj所指向的字符相等时进行循环:pi自增,pj自减。
    退出循环后,如果pipj,则s是回文字符串(如果s有偶数个元素,则为pi>pj,如果 s有奇数个元素,则为pi=pj);如果pipj,则s不是回文字符串。
    [函数2.2]
    由函数2.2说明可知,此函数对给定的字符串进行从左至右的扫描,找出不包含标志字符的子字符串。
    在函数2.2中,i的初值为0,len表示字符串的长度。当ilen时进行循环:如果当前字符是标志字符,则不做处理,继续扫描以处理标志字符连成一串的情况。当退出该循环时,当前字符str[i]不是标志字符,这时开始寻找从str[i]开始,直到标志字符出现的一个子字符串(i保持不变,用j标记寻找的过程),给找到的字符序列置字符串结束标志,以便于后面语句的输出。
    输出语句结束后,就要继续寻找后面的不包含标志字符的子字符串,这时需要把指针 i移动j的后面,继续扫描。

  • 第16题:

    请补充函数fun(),该函数的功能是判断一个数是否为回文数。当字符串是回文时,函数返回字符申:yes!,否则函数返回字符串:no!,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:abcba。

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

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

    试题程序:

    include<string.h>

    include<stdio.h>

    char *fun(char*str)

    {

    char *p1,*p2;

    int i, t=0;

    p1=str;p2=str+strlen(str)-1;

    for (i=0;【 】;i++)

    if(【 】)

    {

    t=1;

    break;

    }

    if (【 】)

    return("yes!");

    else

    return("no!");

    }

    main()

    {

    char str[50];

    printf("Input;");

    scanf("%s",str);

    printf("%s\n",fun(str));

    }


    正确答案:i=strlen(sb)/2或istrlen(sw)/2 *p1++!=*p2-- t==20
    i=strlen(sb)/2或istrlen(sw)/2 *p1++!=*p2-- t==20 解析:第一空:判断回文数就是将第一个字符与最后—个字符比较,第二个字符与倒数第二个字符进行比较,依此类推,直到中间的字符,如果比较的结果都是相同,则这个字符串就是回文数,否则不是。所以比较的次数是strlen(str)/2。第二空:指针p1从第一个字符向后移动,指针p2从最后一个字符向前移动,如果两字符不相同,则说明此字符串不是回文数,将标记变量t置为1。第三空:变量t用来标记此字符串是否为回文数,当t为0时,表示字符串是回文数,当t为1时,表示字符串不是回文数。

  • 第17题:

    给定程序中,函数fun的功能是:判断形参s所指字符串是否是”回文”(Palindrome),若是,函数返回值为1;不是,函数返回值为0。”回文”是正读和反读都一样的字符串:不区分大小写字母)。

    例如,LEVEL和Level是”回文”,而LEVLEV不是”回文”。

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

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

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


    正确答案:(1)s (2)-- (3)return O
    (1)s (2)-- (3)return O 解析:函数fun的功能是:判断形参s所指字符串是否是”回文”,即比较第一个字符和最后一个字符是否相同,第二个字符和倒数第二个字符是否相同,依此类推,可以用循环来实现。

  • 第18题:

    写一函数int fun(char *p)判断一字符串是否为回文,是返回1,不是返回0,出错返回-1


    正确答案:
     

  • 第19题:

    阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。

    [函数2.1说明]

    下面程序的功能是:将由键盘输入的某个十进制数转换成对应的R进制数并输出。这里R是 2到16的整数,由键盘输入。例如,输入n=128,base=13后的输出为9B。

    [函数2.1]

    include <stdio.h>

    main()

    { char b[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

    int c[64],n,i=0,base;

    printf("Enter a number:");scaaf("%d",&n);

    printf("Enter new base:");scanf("%d",&base);

    do{c[i]=(1);

    i++;

    n=n/base;

    }while((2));

    printf("Transmit new base:");

    for(- -i;i>=0;- -i)printf("%c",(3));

    }

    [函数2.2说明]

    所谓回文字符中是指正序和逆序拼写相同的字符串,例如astrtsa,adgdtdgda等。下面函数int fun(char *str)的功能是判断字符串str是否是回文,当字符串是回文时,函数返回1,否则返回0。

    [函数2.2]

    int fun(char *str)

    { int i,j,l;

    for(i=0;str[i]! ='\0';i++);

    l=i/2;

    for(j=0,i- -;j<=1;(4))

    if((5)) return 0;

    return 1;

    }


    正确答案:(1) n% base (2) n! =0 (3) b[c[i]] (4) j++ i-- (5) str[i]! =str[j]
    (1) n% base (2) n! =0 (3) b[c[i]] (4) j++, i-- (5) str[i]! =str[j] 解析:(1)~(3)函数2.1的基本思想是“除base取余”,即从低位开始以n除以base的余数作为转化后的一位c[i],再以n除以base的商作为新的n,继续进行转化,直至除法商0为止。最后将所得的c[i]作为下标,从数组b中找出对应的数码表示,即b[c[i]]。
    (4)~(5)此循环初始时,i和j充当str的头和尾指针,循环执行过程中,两指针同时以步长1向str的中间移动,比较所指字符是否相等,若不等则表明str不是回文字符串。

  • 第20题:

    编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符为1,则输出3。

    注意:部分源程序在文件PROCl.C中。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填人你编写的若干语句。


    正确答案:
    intfun(char*ss,charc)inti=0;for(;*ss!=’\0‘;ss++)if(}ss==ci++/*求出*所指字符串中指定字符的个数*/returni;【考点分析】本题考查:for循环语句遍历字符串,并通过if条件语句,判断字符串是否结束。【解题思路】从字符串中查找指定字符,需要使用循环判断结构,循环语句用来遍历字符串,循环条件为字符串没有结束,即当前字符不是‘\0’,判断语句用来判断当前字符是否为指定字符。最后返回指定字符的个数。

  • 第21题:

    下列给定程序中,函数proc()的功能是:判断一个整数m是否是素数,若是返回1,否则返回0。在main()函数中,若proc()返回1,则输出″YES″;若proc()返回0,则输出″NO″!

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

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

    试题程序:


    正确答案:

    (1)错误:k++
    正确:k++;
    (2)错误:if(m=k)
    正确:if(m==k)
    【解析】根据C语言的语法规则,每一条语句都要以分号结束,因此,要在语句“k++”之后加上分号。判断变量m与变量k是否相等应该用符号“==”,符号“=”为赋值符号,因此,“if(m=k)”应改为“if(m==k)”。

  • 第22题:

    请补充fun()函数,该函数的功能是:把字符的ASCII码中为奇数的字符从字符串str中删除,结果仍然保存在字符串str中,字符串str从键盘输人,其长度作为参数传人fun()函数。

    例如,输入“abcdef”,则输出“bdf”。

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

    请勿改动main()函数和其他函数中的任何内容,仅在mare()函数的横线上填入所编写的若干表达式或语句。

    试题程序:


    正确答案:


    【解析】先判断ASCⅡ码的奇偶。
    第一空:根据主函数“fun(str,len);”调用语句,其中len为字符串str的长度,用来控制循环。根据主函数中对应的调用语句,补全fun()函数定义,第一空填“fun(chars[],intn)”。
    第二空:“s[j++]=s[i];”语句中j的变量在使用前要对其取值进行初始化,因为数组下标是由0开始的,初始化值为0,所以第二空填“j-0”。
    第三空:新生成的字符串要加尾符标志,所以第三空填“s[j]=ˊ\0ˊ”。

  • 第23题:

    下面哪个函数用于返回文本字符串中的字符数()。

    A、LEN()
    B、RIGHT()
    C、LOOKUP()
    D、MONTH()

    答案:A
    解析:
    LEN()函数用于返回文本字符串中的字符数。