C语言

第1821题

请阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。

#include <stdio.h>
void main()
{
int x=1, a=0, b=0;
switch(x)
{
case 0:b++;
case 1:a++;
case 2:a++; b++;
}
printf("a=%d,b=%d\n",a,b);
}
第1822题

给定程序中,函数fun功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数。然后输出:符合条件的整数个数作为函数值返回。

例如,当×值为5时,100~999之间各位上数字之和 5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500.共有15个。当x值为27时,各位数字之和为27的整数是:999。只有1个。

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

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

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

/*************code.c***********/
#include <stdio.h>
int fun(int x)
{
int n,s1,s2,s3,t;
n=0;
t=100;
while(t<=_____①_____)
{
s1=t%10;
s2=(_____②______)%10;
s3=t/100;
if(s1+s2+s3==_____③_____)
{
     printf("%d",t);
         n++;
}
t++;
}
return n;
}
void main()
{
int x=-1;
while(x<0)
{
printf("Please input(x>0):");
scanf("%d",&x);
}
printf("\nThe result is: %d\n",fun(x));
}


第1823题

给定程序MODI1.C中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。


第1824题

函数fun的功能是:将s所指字符串中ASCI值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

例如,若s所指字符串中的内容为:“ABCDEFG12345”,其中字符B的ASCII码值为偶数、…、字符2的ASCII码值为偶数、...都应当删除,其它依此类推。最后t所指的数组中的内容应是:“ACEG135”。

注意:部分源程序存在文件PROG1.c中。

请勿改动主函数mam和其它函数中的任何内容。


第1825题

阅读程序,写出程序运行结果。

#include <stdio.h>
void main( void )
{
    int i=25;   
    do
        if( !(i%5) )
            printf("%3d",i);
    while(--i>15);
}
第1826题

阅读程序,写出程序运行结果。

#include <stdio.h>
void main( void )
{
    char str[10]= "abcde", tmp;
    int i, j;
    for(i=0, j=4; i<j; ++i, --j)
    {
         tmp=str[j];
         str[j]=str[i];
         str[i]=tmp;
    }
    printf("%s\n", str);
}
第1827题

阅读程序,写出程序运行结果。

#include <stdio.h>
void swap(int *x, int *y)
{
    int *t;
    t=x;
    x=y;
    y=t;
}
void main(void)
{
    int x=12, y=63;
    swap(&x, &y);
    printf("%d,%d", x, y);
}
第1828题

阅读程序,写出程序运行结果。

#include <stdio.h>
void main(void)
{
    int a[]={12,30,15,57,69},*pa=&a[3];
    while (*pa!=30)
        printf("%d,", *(--pa));
}
第1829题

下列程序从键盘输入一个一元二次方程ax2+bx+c=0的三个系数a、b、c,计算并打印出方程的解。请仔细阅读他的程序,纠正程序中的错误。

#include <stdio.h>
#include <math.h>
void main( void )
{
double a, b, c, deta, deta2, root1, root2;
printf("请输入一元二次方程的三个系数a, b, c:");
/*****ERROR*****/
scanf("%d,%d,%d", &a, &b, &c );
deta = b * b - 4 * a * c;
if(deta>=0)
{
    deta2 = sqrt( deta );
   /*****ERROR*****/
    root1 = ( - b + deta2 ) / 2 * a, root2 = ( - b - deta2 ) / 2 * a;
    printf("Root1= %lf Root2=%lf\n", root1, root2 );
}
}
第1830题

下列程序调用函数sum计算下列级数之和:

S=1+x+x2/2!+x3/3!+........+xn/n!

请仔细阅读程序,纠正程序中的错误。

#include <stdio.h>
double sum( float x, int n )
{
    int i;
/*****ERROR*****/
    float a, b, s;
    for( i=1; i<=n; i++)
    {
        a=a*x;
        b=b*i;
        s=s+a/b;
    }
    return  s;
}
void main( void )
{
/*****ERROR*****/
   float   x, c, n;
   scanf("%f,%d", &x, &n);
   c=sum(x, n);
   printf("级数之和为 %f\n", c);
}
第1831题

下列程序逆序打印所输入正整数的各位数字,例如输入134,程序输出4,3,1,而输入125538,程序则输出8,3,5,5,2,1。请仔细阅读程序,纠正程序中的错误。

#include <stdio.h>
void main( void )
{
    unsigned int num;
    unsigned short digit[10], i, j;
    printf("请输入一个正整数:");
    scanf("%u", &num);
   /*****ERROR*****/
    for (i=0; i<5; i++)
    {
       digit[i] = num % 10;
       num /= 10;
    }
    printf("颠倒的各位数字是:");
/*****ERROR*****/
    for (j=0; j<5; j++)  
       printf("%2u,", digit[j]);
}
第1832题

下列程序查找输入8个整数中的最小数。请仔细阅读他的程序,指出并纠正程序中的错误。

#include <stdio.h>
void main(void )
{
    int a[8], i, j;
    for(i=0; i<8; i++)
        /******ERROR******/
        scanf("%d", a[i]);
    j=0;
    for(i=0; i<8; i++)
        /******ERROR******/
         if(j>a[i])
             j=i;
    printf("Min is %d at %d.\n", a[j], j+1);
}
第1833题

下列程序使用指针编程逆序打印输入的10个整数。请仔细阅读程序,纠正程序中的错误。

#include <stdio.h>
#define SIZE 10
void main(void)
{
    int a[SIZE], i, j, tmp;
    for(i=0; i<SIZE; i++)
           /******ERROR******/
            scanf("%d", &a);
    for(i--; i>=0; i--)
           /******ERROR******/
            printf("%d ", a);
}
第1834题

下列函数fun判断自然数n是否是素数。

    __①__ fun(unsigned int __②__)
{
    __③__     
    for(i= __④__ ; i<n; i++)
       if( __⑤__ )
       return 0; //not a prime
    return n;  // is a prime
}
第1835题

下列程序检查所输入的字符串是否为回文,若是回文则输出“Yes”,否则输出“No”。

#include <stdio.h>
__⑥__         
void main( void )
{
    char str [80], i=0, j;
    scanf("%s", str);
    j= __⑦__ -1;
    while(i<j)
    {
        if(str[i] __⑧__ str[j])
         __⑨__   ;
        i++, j--;
    }
    if(i __⑩__ j)
        printf("Yes\n");
    else
        printf("No\n");
}
第1836题

编程输入6个整数,统计其中奇数的平均值,打印输出。

输入示范:11 33 56 75 86 29

输出示范:37.000

#include <stdio.h>
void main( void )
{
    /***answer begin***/
    /***answer end***/
}


第1837题

编写程序输入一个可能带空格的字符串,查找字符'z'出现的次数,输出;不存在,输出不存在的提示。

输入示范:xyz zoo zoom

输出示范:3

输入示范:this is x

输出示范:不存在字符z

#include <stdio.h>
void main( void )
{
    /***answer begin***/
    /***answer end***/
}