全部知识点
给定程序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);
}请编写函数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");
}给定程序中,函数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);
}在主函数中从键盘输入若干个数放入数组中,用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 ));
}编写函数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();
}C语言中,_____是程序的基本组成部分。
设(k=a=5,b=3,a*b),则表达式的值为_____。
已知a=13,b=6,a%b的十进制数值为_____。
若有以下定义,则计算表达式y+=y-=m*=y后的y值是_____。
int m=5,y=2;
执行下面两个语句,输出的结果是_____。
char c1=97,c2=98;
printf("%d %c",c1,c2);当a=1,b=2,c=3时,执行以下程序段后a=_____。
if (a>c);
{
b=a;
a=c;
c=b;
}当a=1,b=2,c=3时,执行以下程序段后b=_____。
if (a>c)
{
b=a;
a=c;
c=b;
}int x=2,y=3,z=4;
则表达式x+(y>!z)的值为_____。
设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是_____。
for (x=0,y=0;y!=123&&x<3;x++)
{
scanf ("%d",&y);
}static int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};其中a[1][2]的值为_____。
字符串比较的库函数是_____,只写函数名即可。
函数不可以进行嵌套定义,但可以进行嵌套_____。
预处理命令行都必须以_____号开始。
将函数funl的入口地址赋给指针变量p的语句是_____。
设有以下共用体类型说明和变量定义,则变量a在内存所占字节数是 _____。
union stud
{
char num[6];
float s[4];
double ave;
}
a,*p;