全部知识点
给定程序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**********/请编写一个函数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);
}人员的记录由编号和出生年、月、日组成,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**********/给定程序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**********/函数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);
}阅读程序,写出程序运行结果。
#include <stdio.h>
void main( void )
{
int i=25;
do
if( !(i%5) )
printf("%3d",i);
while(--i>15);
}阅读程序,写出程序运行结果。
#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);
}阅读程序,写出程序运行结果。
#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);
}阅读程序,写出程序运行结果。
#include <stdio.h>
void main(void)
{
int a[]={12,30,15,57,69},*pa=&a[3];
while (*pa!=30)
printf("%d,", *(--pa));
}下列程序从键盘输入一个一元二次方程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 );
}
}下列程序调用函数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);
}下列程序逆序打印所输入正整数的各位数字,例如输入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]);
}下列程序查找输入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);
}下列程序使用指针编程逆序打印输入的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);
}下列函数fun判断自然数n是否是素数。
__①__ fun(unsigned int __②__)
{
__③__
for(i= __④__ ; i<n; i++)
if( __⑤__ )
return 0; //not a prime
return n; // is a prime
}下列程序检查所输入的字符串是否为回文,若是回文则输出“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");
}编程输入6个整数,统计其中奇数的平均值,打印输出。
输入示范:11 33 56 75 86 29
输出示范:37.000
#include <stdio.h>
void main( void )
{
/***answer begin***/
/***answer end***/
}编写程序输入一个可能带空格的字符串,查找字符'z'出现的次数,输出;不存在,输出不存在的提示。
输入示范:xyz zoo zoom
输出示范:3
输入示范:this is x
输出示范:不存在字符z
#include <stdio.h>
void main( void )
{
/***answer begin***/
/***answer end***/
}C 语言代码如下:
int i = 32777;
short si = i;
int j = si;
执行上述代码段后,j 的值是( )
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++语言描述算法,关键之处给出注释。