全部知识点

第6701题

给定程序MODI1.C中,函数void list(MYDATA *h)的功能是:列出带头结点单链表中所有没有删除标记的数据。调用这个函数时,传给形参h的是指向单链表头结点的指针。

例如,当10个结点的数据为1,2,3,4,5,6,7,8,9,10时,输出将是:3 4 6 7 8 9 10

其中,各个数据所对应的删除标记是由随机数产生的。

请改正函数list中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数和creat函数,不得增行或删行

#include<stdio.h>
#include<stdlib.h>
typedef struct dat
{
	char deleted;	//是否删除:0-未删除,1-删除
	int data;
	struct dat* next;
} MYDATA;
void list(MYDATA *h)
{
/******found******/
	MYDATA  p;
	p=h->next;
	while(p!=NULL)
	{
	/******found******/
		if(p->data==0)
		{
			printf("%d  ",p->data);
		}
/******found******/
		p=next;
	}
}

void creat(MYDATA *h,int *d,int n)
{
	MYDATA *p, *q;
	int i=0,del;
	q=h;
	while(n>0)
	{
		p=( MYDATA *)malloc(sizeof(MYDATA));
		del=rand()%2;
		p->data=d[i];
		p->deleted=del;
		p->next=q->next;
		q->next=p;
		q=p;
		n--;i++;
	}
}
void main()
{
	MYDATA *head;
	int n=10,dd[]={1,2,3,4,5,6,7,8,9,10};
	head=(MYDATA *)malloc(sizeof(MYDATA));
	head->next=NULL;
	creat(head,dd,n);
	list(head);
}
第6702题

请编写函数void fun(int *dp,int n,int upordown),其功能是,找出dp所指数组中的最小或最大值,并与其第1个元素交换。形参n为元素的个数,形参upordown为查找标志:值为0时找最小值;值为1时找最大值。

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

#include <stdio.h>
#include <stdlib.h>
#define N 10
#pragma warning (disable:4996)
void NONO(FILE *fp, int pd[], int n);

void fun (int *dp,int n,int upordown)
{
    int temp=0;
    int i=0;
    temp=*dp;
    if(upordown==0)
   {
	for(i=1;i<n;i++)
	{
		if(dp[i]<temp)
		{
			dp[0]=dp[i];
			dp[i]=temp;
			temp=dp[0];
		}
  	}
    }
    else if(/******found******/)
   {
	for(/******found******/)
	{
		if(/******found******/)
		{
			/******found******/
			/******found******/
			/******found******/	
		}
	}
}
*dp=temp;

}

void display(int pd[],int n)
{
	int i;
	for(i=0;i<n;i++)
		printf("%4d",pd[i]);
	printf("\n");
}
void main()
{
	int data[N],i,n=N;
	FILE *out ;

    out = fopen("out.dat","w") ;
	for(i=0;i<N;i++)
		data[i]=rand()%90+10;
	for(i=0;i<N-1;i++)
		fun(data+i,n-i,0);
	display(data,n);
	NONO(out, data, n);
	for(i=0;i<N;i++)
		data[i]=rand()%90+10;
	for(i=0;i<N-1;i++)
		fun(data+i,n-i,1);
	display(data,n);
	NONO(out, data, n);
	fclose(out);
}
void NONO(FILE *fp, int pd[], int n)
{
	int i;
	for(i=0;i<n;i++)
		fprintf(fp, "%4d", pd[i]);
	fprintf(fp, "\n");

}


第6703题

给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理。

例如,s所指字符串为:baacda,c中的字符为:a,执行后s所指字符串为:baaaacdaa。

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

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

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

给定源程序:

#include<stdio.h>
void fun(char *s, char c)
{
    int i, j, n;
    for(i=0; s[i]!=___1___ ; i++)
    if(s[i]==c)
    {
        n=___2___ ;
        while(s[i+1+n]!='\0') n++;
        for(j=i+n+1; j>i; j--) s[j+1]=s[j];
        s[j+1]=___3___ ;
        i=i+1;
    }
}
main()
{
    char s[80]="baacda", c;
    printf("\nThe string: %s\n",s);
    printf("\nInput a character: ");
    scanf("%c",&c);
    fun(s,c);
    printf("\nThe result is: %s\n",s);
}


第6704题

在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。给定程序MODI1.C中函数fun的功能是:计算数组元素中值为正数的平均值(不包括0)。

例如:数组中元素中的值依次为:39,-47,21,2,-8,15,0,则程序的运行结果为:19.250000。

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

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

给定源程序:

#include<stdio.h>
double fun ( int x[])
{
    ____1____
    int c=0, i=0;
    while (x[i] != 0)
    {
        if (x[i] > 0)
        {
            sum += x[i]; c++;
        }
        i++;
    }
    ____2____
    return sum;
}
main()
{
    int x[1000];
    int i=0;
    printf( "\nPlease enter some data (end with 0): " );
    do
    {
        scanf("%d", &x[i]);
    }
    while (x[i++] != 0);
    printf("%f\n", fun ( x ));
}
第6705题

编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。

1 1 1

S=1 + ── + ─── + … + ──────

1+2 1+2+3 1+2+3+…+n

例如:若n的值为11时,函数的值为:1.833333

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

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

给定源程序:

#include<stdio.h>
float fun(int n)
{
    ____1____
    ____2____
    for(____3____)
    {
        ____4____
        for(____5____)
        t+=j;
        ____6____
    }
    return s;
}
main()
{
    int n;
    float s;
    printf("\nPlease enter N:");
    scanf("%d", &n);
    s = fun(n);
    printf("the result is: %f\n", s);
    NONO();
}
第6706题

C语言中,_____是程序的基本组成部分。

第6707题

设(k=a=5,b=3,a*b),则表达式的值为_____。

第6708题

已知a=13,b=6,a%b的十进制数值为_____。

第6709题

若有以下定义,则计算表达式y+=y-=m*=y后的y值是_____。

int m=5,y=2;
第6710题

执行下面两个语句,输出的结果是_____。

char c1=97,c2=98;
printf("%d %c",c1,c2);
第6711题

当a=1,b=2,c=3时,执行以下程序段后a=_____。

if (a>c);
{
    b=a;
    a=c;
    c=b;
}
第6712题

当a=1,b=2,c=3时,执行以下程序段后b=_____。

if (a>c)
{
    b=a;
    a=c;
    c=b;
}
第6713题
int x=2,y=3,z=4;

则表达式x+(y>!z)的值为_____。

第6714题

设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是_____。

for (x=0,y=0;y!=123&&x<3;x++)
{
    scanf ("%d",&y);
}
第6715题
static int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};

其中a[1][2]的值为_____。

第6716题

字符串比较的库函数是_____,只写函数名即可。

第6717题

函数不可以进行嵌套定义,但可以进行嵌套_____。

第6718题

预处理命令行都必须以_____号开始。

第6719题

将函数funl的入口地址赋给指针变量p的语句是_____。

第6720题

设有以下共用体类型说明和变量定义,则变量a在内存所占字节数是 _____。

union stud
{
    char num[6];
    float s[4];
    double ave;
}
a,*p;