全部知识点

第7641题

给定程序MODI1.C中函数fun的功能是:读入一个字符串(长度 <20),将该字符串中的所有字符按ASCII码升序排序后输出。 例如,若输入:edcba,则应输出:abcde。 请改正程序中的错误,使它能统计出正确的结果. 注意:不要改动main函数,不得增行或删行,也不得更改程序的 结构!

/**********code.c**********/
#include <stdio.h>
#include <string.h>
void fun(char t[])
 {
 char c;
 int i, j;
 /**********found***********/
 for(i = strlen(t);i;i--)
  for(j = 0; j < i; j++)
   /**********found***********/
   if(t[j] < t[j + 1])
   {
    c = t[j];
    t[j] = t[j + 1];
    t[j + 1] = c;
   }
 }
 void main()
 {
 char s[81];
 printf("\nPlease enter a character string: ");
 gets(s);
 printf("\n\nBefore sorting:\n  \"%s\"",s);
 fun(s);
 printf("\nAfter sorting decendingly:\n  \"%s\"\n",s);
 }
 /**********-code.c**********/
第7642题

请编写一个函数fun其功能是:将ss所指字符串中所有下标为奇数位 置上的字母转换为大写(若该位置上不是字母,则不转换)。 例如,若输入“abc4EFg”,则应输出“aBe4EF9”。 注意:部分源程序在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花 括号中填入你编写的若干语句。

/**********code.c**********/
#include <stdio.h>
#include <string.h>
void fun(char *ss)
 {
 }
 main()
 {
 char tt[51];
 printf( "\nPlease enter an character string within  50  characters:\n" );
 gets(tt);
 printf("\n\nAfter changing, the string\n  \"%s\"",tt);
 fun(tt) ;
 printf("\nbecomes\n  \"%s\"",tt);
 }

第7643题

人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。

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

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

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

/**********code.c**********/
 #include <stdio.h>
 #include <string.h>
#define N 8
 typedef struct
 {  
char num[10];
 int year,month,day;
 }STU;
 /**********found**********/
 ①______ fun(STU *std,char *num)
 {
 int i;
 STU a={"",9999,99,99};
 for (i=0; i<N; i++)
 /**********found**********/
 if(strcmp(②______,num)==0)
 /**********found**********/
 return (③______);
 return a;
 }
 void main()
 { 
STU std[N]={{"111111",1984,2,15}, {"222222",1983,9,21},
 {"333333",1984,9,1}, {"444444",1983,7,15}, {"555555",1984,9,28},
 {"666666",1983,11,15}, {"777777",1983,6,22}, {"888888",1984,8,19}};
 STU p;   
char n[10]="666666";
 p=fun(std,n);
 if(p.num[0]==0)
 printf("\nNot found !\n");
 else
 {  
printf("\nSucceed !\n  ");
 printf("%s  %d-%d-%d\n", p.num, p.year, p.month, p.day);
 }
 }
 /**********-code.c**********/
第7644题

给定程序MODI1.C中函数fun的功能是:从s所指字符串中,找出与t 所指字符串相同的子串的个数作为函数值返回。 例如,当s所指字符串中的内容为:“abcdabfab”,t所指字符串的 内容为:“ab”,则函数返回整数3。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的 结构!

/**********code.c**********/
#include <stdio.h>
#include <string.h>
int fun (char *s, char *t)
 {
 int n;
 char *p,*r;
 n = 0;
 while(*s)
 {
 p = s;
 r = t;
 while (*r)
   if(*r == *p)
   {
    /**********found**********/
    r++; p++
   }
   else break;
   /**********found**********/
   if(r == '\0')
    n++;
   s++;
 }
 return n;
 }
 void main()
 {
 char s[100],t[100];
 int m;
 printf("\nPlease enter string S:"); 
 scanf("%s", s);
 printf("\nPlease enter substring t:"); 
 scanf("%s", t);
 m = fun(s,t);
 printf("\nThe result is:  m = %d\n", m);
 }
 /**********-code.c**********/
第7645题

函数fun的功能是:将s所指字符串中ASCII值为偶数的字符删除, 串中剩余字符形成一个新串放在t所指的数组中。 例如,若s所指字符串中的内容为:“ABCDEFGl2345”,其中字符 B的ASCII码值为偶数、…、字符2的ASCII码值为偶数、…都应当删 除,其它依此类推。最后t所指的数组中的内容应是:“ACEG135”。 注意:部分源程序存在文件PROG1.c中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花 括号中填入你编写的若干语句。

/**********code.c**********/
#include <stdio.h>
#include <string.h>
void fun(char *s,char t[])
 {
 }
 void main()
 {
 char s[100],t[100];
 printf("\nPlease enter string S:");
 scanf("%s",s);
 fun(s,t);
 printf("\nThe result is: %s\n", t);
 }

第7646题

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

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

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

#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);
}
第7648题

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

#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);
}
第7649题

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

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

下列程序从键盘输入一个一元二次方程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 );
}
}
第7651题

下列程序调用函数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);
}
第7652题

下列程序逆序打印所输入正整数的各位数字,例如输入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]);
}
第7653题

下列程序查找输入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);
}
第7654题

下列程序使用指针编程逆序打印输入的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);
}
第7655题

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

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

下列程序检查所输入的字符串是否为回文,若是回文则输出“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");
}
第7657题

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

输入示范:11 33 56 75 86 29

输出示范:37.000

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


第7658题

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

输入示范:xyz zoo zoom

输出示范:3

输入示范:this is x

输出示范:不存在字符z

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


第7659题

 C 语言代码如下:

int i = 32777;

short si = i;

int j = si;

执行上述代码段后,j 的值是( )


第7660题

2023 年 10 月 26 日,神舟十七号载人飞船发射取得圆满成功,再次彰显了中国航天事业的辉煌成就。载人航天工程是包含众多子工程的复杂系统工程,为了保证工程的有序开展,需要明确各子工程的前导子工程,以协调各子工程的实施。该问题可以简化、抽象为有向图的拓扑序列问题。已知有向图G 采用邻接矩阵存储,类型定义如下。

typedef struct //图的类型定义
{
int numVertices, numEdges;//图的顶点数和有向边数
char VerticesList[MAXV];//顶点表,MAXV为已定义常量
int Edge[MAXV][MAXV];//邻接矩阵
}MGraph;

请设计算法

int uniquely(MGraph G)

,判定G 是否存在唯一的拓扑序列,若是,则返回1,否则返回 0。要求如下。

(1)给出算法的基本设计思想。

(2)根据设计思想,采用C 或C++语言描述算法,关键之处给出注释。