试题二(共15分)阅读以下说明和C程序代码,将解答写在答题纸的对应栏内。【说明】下面是一个待修改的C程序,其应该完成的功能是:对于输入的一个整数num,计算其位数k,然后将其各位数字按逆序转换为字符串保存并输出。若num为负整数,则输出字符串应有前缀“-”。例如,将该程序修改正确后,运行时若输入“14251”,则输出“15241”;若输入“-6319870”,则输出“-0789136”。下面给出的C程序代码中有五处错误,请指出错误代码所在的行号并给出修改正确后的完整代码行。【C程序代码】

题目

试题二(共15分)

阅读以下说明和C程序代码,将解答写在答题纸的对应栏内。

【说明】

下面是一个待修改的C程序,其应该完成的功能是:对于输入的一个整数num,计算其位数k,然后将其各位数字按逆序转换为字符串保存并输出。若num为负整数,则输出字符串应有前缀“-”。例如,将该程序修改正确后,运行时若输入“14251”,则输出“15241”;若输入“-6319870”,则输出“-0789136”。

下面给出的C程序代码中有五处错误,请指出错误代码所在的行号并给出修改正确后的完整代码行。

【C程序代码】


相似考题
更多“试题二(共15分)阅读以下说明和C程序代码,将解答写在答题纸的对应栏内。【说明】下面是一个待修改的C程序,其应该完成的功能是:对于输入的一个整数num,计算其位数k,然后将其各位数字按逆序转换为字符串保存并输出。若num为负整数,则输出字符串应有前缀“-”。例如,将该程序修改正确后,运行时若输入“14251”,则输出“15241”;若输入“-6319870”,则输出“-0789136”。下面给出的C程序代码中有五处错误,请指出错误代码所在的行号并给出修改正确后的完整代码行。【C程序代码】”相关问题
  • 第1题:

    下列给定程序中函数fun()的功能是计算正整数num的各位上的数字之平方和。

    例如:输入352,则输出应该是38;若输入328,则输出应该是77。

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

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

    试题程序:

    include <stdio.h>

    include <conio.h>

    long fun(long num)

    {

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

    long k=1;

    do

    {

    k+=(num%10)*(num%10);

    num/=10;

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

    }while(num)

    return(k);

    }

    main()

    {

    long n;

    clrscr();

    printf("\Please enter a number:");

    scanf("%ld",&n);

    printf("\n%ld\n",fun(n));

    }


    正确答案:(1)错误:long k=1; 正确:long k=0; (2)错误:while(num) 正确:while(num);
    (1)错误:long k=1; 正确:long k=0; (2)错误:while(num) 正确:while(num); 解析:错误1:k用来存放各位数字的平方和,初值应为0。
    错误2:do-while语句的语法,while()后加分号。

  • 第2题:

    阅读以下技术说明、流程图和C程序,根据要求回答问题1和问题2。

    【说明】

    如图6-13所示的程序流程图描述了对8位二进制整数求补的算法。该算法的计算过程如下:从二进制数的低位(最右位)开始,依次向高位逐位查看,直到首次遇到“1”时,停止查看。然后,对该“1”位左面的更高位(如果存在的话),逐位求反,所得的结果就是对原二进制数求补的结果。例如:对二进制整数10010110求补的结果时01101010。

    设8位二进制整数中的各位,从低位到高位,依次存放在整型数组BIT的BIT[1]~BIT[8]中。例如,二进制整数10010110存放在数组BIT后,则有BIT[1]=0,BIT[2]=1,…,BIT[7]=0,BIT[8]=1。若流程图中存在空操作,则用NOP表示。

    以下待修改的【C程序】完成的功能是:对于给定的1个长正整数,从其个位数开始,每隔一位取1个数字(即取其个位、百位和万位等数字),形成1个新的整数并输出。例如,将该程序修改正确后,运行时若输入“9753186420”,则输出的整数为“73840”。

    【C程序】

    行号 C代码

    01 include <stdio.h>

    02 int main()

    03 { long n,num;

    04 int i;

    05 do {

    06 printf("请输入一个正整数:");

    07 scanf("%1d",n);

    08 }while(n<=0);

    09 k = 1;

    10 for (i=1;n>=0;i++) {

    11 if (i%2=1) {

    12 num = num + (n%10)*k;

    13 k = k*10;

    14 }

    15 n = n/10;

    16 }

    17 printf("新数据为:%d\n",num);

    18 return 0;

    19 }

    请将图6-13流程图中(1)~(5)空缺处的内容补充完整。其中,(1)空缺处按“循环变量名:循环初值,增量,循环终值”格式描述。


    正确答案:(1)i:118 (2)1→sw (3)0→BIT[i] (4)NOP或空操作 (5)1→BIT[i]
    (1)i:1,1,8 (2)1→sw (3)0→BIT[i] (4)NOP,或空操作 (5)1→BIT[i] 解析:由于题目中给出了对8位二进制整数求补的算法,并且指明将8位二进制整数中的各位,从低位到高位,依次存放在整型数组BIT的BIT[1]~BIT[8]中,因此,循环控制变量的初值应该为1(从二进制数中的最低位开始)、终值为8(二进制数中的每一位都要检查)、增量为1(每次检查1位),按照“循环变量名:循环初值,增量,循环终值”格式描述,则(1)空缺处所填写的内容为“i:1,1,8”。0
    由题目中给出的算法可知,从最右位开始向左找到的第一个“1”及其右边的各位是不取反的,因此需要一个标志,sw起的就是这个作用。由于SW的初始值为0,因此在找到从右边数的第1个“1”之前,当BIT[i]等于“0”且SW=O时,则说明这些二进制位无须取反,对应于流程图的(4)空缺处的操作应为空操作(即NOP)。
    当某个BIT[i]的值等于“1”且SW的值等于0,则说明找到了从右边数的第1个“1”,此时应将SW的值置为非“0”,因此流程图中(2)空缺处的操作要对SW置1,即该空缺处所填写的内容是“1→sw”。
    最后,应将其余各位取反,即BIT[i]等于1时,要在流程图的(3)空缺处将其置0(即0→BIT[i]);反之,则要在流程图的(5)空缺处将其置1(即1→BIT[i])。

  • 第3题:

    给定程序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码排序。

  • 第4题:

    请编写一个函数proc(),它的功能是将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。

    例如,若输入字符串“1234”,则函数把它转换为整数值1234。

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

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

    试题程序:


    正确答案:


    【解析】要将数字字符串转换为一个整数,首先判断该字符串的正负号。然后将数字字符转换为相应的数字,将各个数字合并为整数。最后将得到的整数乘以字符串中的符号。将最后的结果返回到主函数中。

  • 第5题:

    阅读以下说明和C程序,填充程序中的空缺,将解答填入答题纸的对应栏内。

    【说明】

    正整数n若是其平方数的尾部,则称n为同构数。例如,6是其平方数36的尾部,

    76是其平方数5776的尾部,6与76都是同构数。下面的程序求解不超过10000的所有

    同构数。

    已知一位的同构数有三个:1,5,6,因此二位同构数的个位数字只可能是1,5,6

    这三个数字。依此类推,更高位数同构数的个位数字也只可能是1,5,6这三个数字。

    下面程序的处理思路是:对不超过100 00的每一个整数a,判断其个位数字,若为1、

    5或6,则将a转换为字符串as,然后对a进行平方运算,并截取其尾部与as长度相等

    的若干字符形成字符串后与as比较,根据它们相等与否来断定a是否为同构数。

    【C程序】

    include<stdio.h>

    include<stdlib .h>

    include<string .h>

    int myitoa (int, char*); ,/*将整数转换为字符串*/

    /* right取得指定字符串尾部长度为ler gth的子串,返回所得子串的首字符指针*/

    char *right (char*, int length);

    int main ()

    {

    int a, t; int len;

    char as [10], rs[20];

    printf(”[1,10000]内的同构数:\r”);

    for (a=l.a<=10000; a++) {

    t= (1); /*取整数a的个位数字*/

    if (t!=l&&t!=5&&t!=6) :ontinue;

    len=myitoa (a, as)j /*数a转换为字符串,存入as*/

    myitoa (a*a, rs); /*数a的平方转换为字符串,存入rs*/

    /*比较字符串as与rs末尾长度为len的子争是否相等*/

    if(strcmp(as,__(2) )**o) /*若相同则是同构数并输出*/

    printf(“%s的平方为%s\n”,as,rs);

    }

    return O;

    }

    int myitoa (int num,char*s) /*将整数num转换为字符串存入s*/

    {

    int i,n=0;

    char ch;

    /*从个位数开始,取num的每一位数字转换为字符后放入s[]*/

    while (num) {

    s[n++] =(3) +’o&39;;

    num=num/10.

    }

    s[n]=’\0 ‘;

    for (i=0; i<n/2; i++){ /*将s中的字符串逆置*/

    (4) ; s[i]= s [n-i-l];s[n-i-1]=ch;

    }

    return n; /*返回输入参数num的位数*/

    }

    char *right (char*ms, int length)

    /*取字符串ms尾部长度为length的子串,返回所得子串的首字符指针*/

    {

    int i;

    For(;*ms;ms++) /*使ms到达原字符串的尾部*/

    for( i=0; i<length. (5) ; /*使ms指向所得子串的首部字符*/

    return ms;

    }


    正确答案:
    本题考查C语言语法、数据指针和运算逻辑的应用。
    首先应认真分析题目中的说明,然后确定代码结构和各变量的作用。
    根据题目中的叙述,同构数的个位数为1、5或6,因此,对于不超过10000的每个
    整数,应先获取其个位数字,因此空(1)处应填入“a%10”或其等价形式,从而可以
    先过滤掉不可能是同构数的数。
    根据代码中的注释,通过以下运算后,得到由a中数值转换所得的字符串as,以及
    a的平方所得数值转换得到的字符串rs,此,;通过字符串比较运算来判断是否为同构数。
    len=myitoa(a,as).;/*数a转换为字符串,存入as*/

    myitoa(a*a,rs);/*数a的平方转换为字符串,存入rs*/

    函数myitoa(intnum,char*s)的功能是将整数num转换为字符串s,这就需要将整数
    num的每个数字分离出来,通常通过整除取余运算实现,即以下代码所实现的。
    while(num){/*从个位数开始,取rum的每一位数字转换为字符后放入s[]*/
    s[n++]=(3)+’0’;
    num=num/10.
    }
    s[n]=’\0’;
    其中,空(3)处应填入“num%10”或其等价形式。
    函数right(char*ms,intlength)取字符串ms尾部长度为length的子串,返回所得子
    串的首字符指针。该函数的处理思路是先找到ms中字符串的结尾,然后倒着数出length
    个字符,从而得到所需字符串的首字符指针。空(5)处应填入“i++,ms-“或其等价
    形式。
    另一个更简便的方式是在得到ms的结尾指针后,再减去length即可,即最后返回
    ms-length即可。
    参考答案
    (1)a%10,或其等价形式
    (2)right(rs,len)
    (3)num%10,或其等价形式
    (4)ch=s[i],或ch=*(s+i)
    (5)i++,ms--,或ms-,i++,或其等价形式

  • 第6题:

    阅读以下说明和C语言函数,将解答填入对应栏内。

    【说明】

    下面待修改的C程序完成的功能是:对于给定的一个长正整数,从其个位数开始,每隔一位取一个数字(即取其个位、百位、万位等数字),形成一个新的整数并输出。例如,将该程序修改正确后,运行时若输入“14251382”,则输出的整数为“4532”。

    下面给出的C程序代码中有五个错误,请指出所有的错误。

    【C程序代码】

    01 include <stdio.h>

    02

    03 int main()

    04 {

    05 long n, num;

    06 int i;

    07

    08 do {

    09 printf("请输入一个正整数:");

    10 scanf("%ld", n);

    11 }while(n <= 0);

    12 k = 1;

    13 for (i = 1; n >= 0; i++) {

    14 if (i % 2 = 1) {

    15 num= num+ (n % 10) * k;

    16 k = k * 10;

    17 }

    18 n = n / 10;

    19 }

    20 printf("新数据为: %d \n",num);

    21 return 0;

    22 }


    正确答案:错误1:变量k没有声明(或定义)。 错误2:变量num没有初始化或者num应初始化为0。 错误3:第10行scanf函数参数错或者“scanf("%1d"n);”中的n应该为“&n”;或者n之前应加取地址符号。 错误4:第13行循环条件错或改为“n>0”。 错误5:第14行if语句条件错将“=”改为“==”;或者将“1%2=1”改为“i% 2==1 ”
    错误1:变量k没有声明(或定义)。 错误2:变量num没有初始化,或者num应初始化为0。 错误3:第10行scanf函数参数错,或者“scanf("%1d",n);”中的n应该为“&n”;或者n之前应加取地址符号。 错误4:第13行循环条件错,或改为“n>0”。 错误5:第14行if语句条件错,将“=”改为“==”;或者将“1%2=1”改为“i% 2==1 ” 解析:本题考查程序检错和排错能力。
    程序错误一般分成语法错误和语义错误两种类型,其中语法错误是形式上的错误,语义错误是含义上的错误,编译程序能够发现程序中的所有语法错误。
    语义错误又可分为静态语义错误和动态语义错误,静态语义错误编译时检查,而动态语义错误在程序运行时表现。
    C程序中,常见的错误有:使用的变量没有定义、变量没有赋值初就直接使用、输入输出的数据类型与所用格式说明符不一致、超出数据范围、输入时数据的组织方式与要求不符、误把“=”作为关系运算符“等于”、语句的分号缺少或放置错误、缺少“{}”、符号引用错误,“(、)、[、]”括号不配对、引用数组元素超界等。
    在本题的程序中,使用变量num的语句为“num=num+(n%10)*k;”。由于变量 num没有赋初值,该语句运行的结果导致num的值是不确定的。
    在本题给出的程序中,出现了如下错误。
    (1)使用的变量k没有定义(语法错误,编译程序报告:k是未定义的标识符)。
    (2)变量num没有赋初始值就直接使用(动态语义错误),应将其初始值设为0。由于num是局部变量,使用变量num的语句为“num=num+(n%10)*k”,系统不保证对其进行初始化,导致程序的运行结果不确定。
    (3)第14行,误把“=”作为关系运算符“等于”(语法错误),
    (4)第10行,输入变量时忘记使用地址符号(动态语义错误),运行时变量n不能正确接收输入的数据。
    (5)第13行,循环条件错误,导致无穷循环。
    考生应多上机调试程序,这样就可以熟悉常见的程序错误,从而提高编程水平和效率。

  • 第7题:

    阅读以下问题说明、C 程序和函数,将解答填入答题纸的对应栏内。
    【问题 1】
    分析下面的C 程序,指出错误代码(或运行异常代码)所在的行号。
    【C 程序】

    【问题 2】
    函数inputArr(int a[], int n)的功能是输入一组整数(输入0或输入的整数个数达到n时结束)存入数组 a,并返回实际输入的整数个数。函数 inputArr 可以成功编译。但测试函数调用inputArr后,发现运行结果不正确。
    请指出错误所在的代码行号,并在不增加和删除代码行的情况下进行修改,写出修改正确后的完整代码行,使之符合上述设计意图。
    【C 函数】


    答案:
    解析:
    【问题1】
    5,或arrChar="test"
    7,或*P='0';
    【问题2】

    【解析】

    本题考查 C 程序编写和调试中常见错误的识别和改正。
    【问题1】在C语言中,指针表示内存单元的地址,指针变量可用于存储指针类 型的值,即内存单元的地址值。变量的值在程序运行过程中允许修改,而常量则不允许修改。可以令指针指向一个变量或常量,但若指针指向一个常量,则不允许通过指针修改该常量。
    第 5 行代码有错,即对数组名arrChar的赋值处理是错误的。在 C语言中,数组名是表示数组空间首地址的指针常量,程序中不允许对常量赋值。
    第 7行代码有错,在第 6行中,通过 p = "testing"使指针变量指向了一个字符串常量,此后可以再令指针 p指向其他字符或字符串,但不能通过指针修改字符串常量的内容。
    【问题2】该函数中出现的错误是编写 C程序时的常见错误。scanf 是 C标准库函数中的格式化输入函数,其原型如下:

    int scanf(char *format ,...);

    使用时,第一个实参是格式控制串,之后的实参是地址1,地址 2,…
    在本题中,要求以十进制整数格式输入一个整数并存入 a[k] ,数组元素a[k]实质上一个整型变量,必须用"&"求得 a[k]的地址作为实参调用 scanf 函数,因此,第 4行出错,正确代码应为"scanf("%d&a[k]);"。
    C程序中将相等运算符"="误用为赋值运算符"="也是常见的一个错误,由于"="也是合法的运算符并且 C语言中用 0 和非 0来表示逻辑假和逻辑真,因此在应产生逻辑值的地方产生了其他数值也可以,因此该错误通常只能用人工检查和排除。第 6 行的正确代码应为"if (k==n)break;"。
    在该程序中,结束循环的一个条件是k等于n,另一个条件是输入的整数为0。另 外,do-whi1e的循环条件为真(非0)时要继续循环,因此,循环条件应该是判断输入的值不等于 0。观察循环体中与数组元素有关的部分,如下所示:

    scanf("%d",&a[k]);

  • 第8题:

    输入一个整数,输出其符号(若x>=0,输出1,若x


    正确答案: main()
    {int x fx;
    scanf("%d",&x);
    if(x<0)fx=-1;
    else fx=1;
    printf("%d",fx);

  • 第9题:

    若A、B为输入端,Y为输出端的“与”门电路下面说法正确的是()。

    • A、若A输入0,B输入0,则Y输出0
    • B、若A输入0,B输入1,则Y输出0
    • C、若A输入1,B输入0,则Y输出0
    • D、若A输入1,B输入1,则Y输出1
    • E、若A输入0,B输入0,则Y输出1

    正确答案:A,B,C,D

  • 第10题:

    在结构化设计中,首先关心的是外部特性,包括()。

    • A、输入和输出、功能
    • B、内部数据、程序代码
    • C、输入和输出、程序代码
    • D、功能、内部数据

    正确答案:A

  • 第11题:

    单选题
    ()反映了模块的外部特征。
    A

    输入/输出和程序代码

    B

    输入/输出和逻辑功能

    C

    逻辑功能和程序代码

    D

    程序代码和物理结构


    正确答案: A
    解析: 暂无解析

  • 第12题:

    问答题
    编写一函数reverse实现一个字符串按反序存放,要求在主函数main中输入字符串,并输出反序后的字符串。不能使用strlen库函数。      例如:输入string,则输出gnirts。

    正确答案: #include "stdio.h"
    void reverse(char str[])
    {int i,j;
    char t;
    for(j=0;str[j]!=/0;j++);/*求字符串长度*/
    for(i=0,j=j-1;i<j;i++,j--)
    {t=str[i];
    str[i]=str[j];
    str[j]=t;
    }
    }
    main()
    {char str[80];
    printf("/nPlease input a string:");
    gets(str);
    reverse(str);
    printf("/nString reverse:");
    puts(str);}
    解析: 暂无解析

  • 第13题:

    下面的程序执行时,可以从键盘输入一个正整数,然后把该数的每位数字按逆序输出。例如:输入7685,则输出5 8 6 7;输人1000,则输出0 0 0 1。请填空。 Private Sub Command1_Click Dim x As Integer X=InputBox(“请输入一个正整数”) While x> 【11】 Print x Mod 10; x=x\10 Wend Print 【12】 End Sub


    正确答案:
    void Base::fun ; virtual display==0;

  • 第14题:

    下列过程的功能是:从键盘输入一个大于2的整数,输出小于该整数的最大质数。( )。例如,输入20,则输出l9,输入10,则输出7。

    为实现指定功能,程序【】处应填写的语句是( )。

    A.k—k+1

    B.X=X一1

    C.X—X/k

    D.k—k一1


    正确答案:B
    本题要求输入~个数,找出比输入的数小的最大的质数。质数的程序判断为从数值2开始依次能否被整除,如能则不是,不能就是要找的数。题目要求找小于输入的数。因此输入的数要依次减小1进行判断是否为质数。例:输入9,则最大的质数为7。Sqr(数据表达式):开平方函数。如Sqr(9)=3(8)是否正确13)ifxraodk一0then;if条件判断8mod2—0是否正综上所述,故选择B选项。

  • 第15题:

    下列给定程序中,函数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)”。

  • 第16题:

    阅读以下说明和 C 函数,填补函数代码中的空缺,将解答填入答题纸的对应栏内。 【说明 1】 函数 f(double eps) 的功能是:利用公式计算并返回 π 的近似值。【说明 2】 函数fun(char *str)的功能是:自左至右顺序取出非空字符串 str中的数字字符,形成一个十进制整数(最多 8 位)。例如,若 str中的字符串为 "iyt?67kp f3g8d5.j4ia2e3p12", 则函数返回值为 67385423。


    正确答案:(1)n+2
    (2)-s 或-1*s
    (3) *p!= ' \ 0'或等价形式
    (4) num*10 或等价形式
    (5) p++或等价形式

  • 第17题:

    试题二 ( 共15 分)

    阅读以下问题说明、C 程序和函数,将解答填入答题纸的对应栏内。

    【 问题1 】

    分析下面的C 程序,指出错误代码(或运行异常代码)所在的行号。

    【C程序】

    【 问题2】

    函数inputArr(int a[], int n)的功能是输入一组整数(输入0或输入的整数个数达到n时结束)存入数组 a,并返回实际输入的整数个数。函数 inputArr 可以成功编译。但测试函数调用inputArr后,发现运行结果不正确。

    请指出错误所在的代码行号,并在不增加和删除代码行的情况下进行修改,写出修改正确后的完整代码行,使之符合上述设计意图。

    【C 函数】


    正确答案:
    试题二(15分)问题15,或arrChar=“test”3分7,或*p=’0’;3分以上解答不分次序问题2

  • 第18题:

    试题二(共 15 分)

    阅读以下说明和 C 程序代码,将应填入 (n) 处的字句写在答题纸的对应栏内。

    [说明]

    下面 C 程序代码的功能是:对于输入的一个正整数 n(100≤n<1000) ,先判断其是否是回文数(正读反读都一样的数) 。若不是,则将 n 与其反序数相加,再判断得到的和数是否为回文数,若还不是,再将该和数与其反序数相加并进行判断,依此类推,直到得到一个回文数为止。例如,278 不是回文数,其反序数为 872,相加后得到的 1150还不是回文数,再将 1150 与其反序数 511 相加,得到的 1661 是回文数。 函数 int isPalm(long m)的功能是:将正整数 m的各位数字取出存入数组中,然后判断其是否为回文数。若 m是回文数则返回 1,否则返回 0。

    [C 程序代码]

    #include <stdio.h>

    #include <stdlib.h>

    int isPalm(long m)

    { /*判断 m是否为回文数*/

    int i = 0, k = 0;

    char str[32];

    while (m > 0) { /*从个位数开始逐个取出 m的各位数字并存入字符数组 str*/

    str[k++] = (1) + '0';

    m = m / 10;

    }

    for(i = 0; i < k/2; i++) /*判断 str中的 k 个数字字符序列是否是回文*/

    if ( str[i] != str[ (2) ] ) return 0;

    return 1;

    }

    int main( )

    {

    long n, a, t;

    printf("input a positive integer:"); scanf("%ld",&n);

    if (n < 100 || n > =1000) return -1 ;

    while( (3) ) { /*n 不是回文数时执行循环*/

    printf("%ld -> ", n);

    for(a = 0, t = n; t > 0; ) { /*计算 n 的反序数并存入 a*/

    a = (4) *10 + t % 10; t = t / 10;

    } /*end of for*/

    n = (5) ; /*与反序数求和*/

    } /*end of while*/

    printf("%ld\n",n);

    system("pause"); return 0;

    }


    正确答案:


  • 第19题:

    ()反映了模块的外部特征。

    • A、输入/输出和程序代码
    • B、输入/输出和逻辑功能
    • C、逻辑功能和程序代码
    • D、程序代码和物理结构

    正确答案:B

  • 第20题:

    编写一函数reverse实现一个字符串按反序存放,要求在主函数main中输入字符串,并输出反序后的字符串。不能使用strlen库函数。      例如:输入string,则输出gnirts。


    正确答案: #include "stdio.h"
    void reverse(char str[])
    {int i,j;
    char t;
    for(j=0;str[j]!=/0;j++);/*求字符串长度*/
    for(i=0,j=j-1;i<j;i++,j--)
    {t=str[i];
    str[i]=str[j];
    str[j]=t;
    }
    }
    main()
    {char str[80];
    printf("/nPlease input a string:");
    gets(str);
    reverse(str);
    printf("/nString reverse:");
    puts(str);}

  • 第21题:

    若A、B为输入端,Y为输出端的两输入“与非”门电路下面说法正确的是()。

    • A、若A输入0,B输入0,则Y输出1
    • B、若A输入0,B输入1,则Y输出0
    • C、若A输入0,B输入0,则Y输出0
    • D、若A输入1,B输入0,则Y输出0
    • E、若A输入1,B输入1,则Y输出0

    正确答案:A,E

  • 第22题:

    问答题
    输入一个整数,输出其符号(若x>=0,输出1,若x

    正确答案: main()
    {int x fx;
    scanf("%d",&x);
    if(x<0)fx=-1;
    else fx=1;
    printf("%d",fx);
    解析: 暂无解析

  • 第23题:

    单选题
    在结构化设计中,首先关心的是外部特性,包括()。
    A

    输入和输出、功能

    B

    内部数据、程序代码

    C

    输入和输出、程序代码

    D

    功能、内部数据


    正确答案: B
    解析: 暂无解析