填空题下列给定程序中,函数proc()的功能是:按顺序给str所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。若str所指数组中元素的个数不是5的倍数,多余部分忽略不计。例如,str所指数组有17个元素,则只对前15个元素进行处理,不对最后的2个元素求平均值。
程序执行结果为The original data:
2 4 6 8 10
12 14 16 18 20
22 24 26 28 30
32 24
The result:
6.00 16.00 26.00
请修改函数proc()中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
#define SIZE 20
proc(double*str,double*w)
{
int k,i;double sum;
for(k=2,i=0;i<SIZE;i++)
{str[i]=k;k+=2;}
sum=0.0;
for(k=0,i=0;i<SIZE:i++)
{
sum+=str[i];
//****found****
if(i+1%5==0)
{w[k]=sum/5;sum=0;k++;}
}
return k;
}
void main()
{
double a[SIZE],b[SIZE/5];
int i,k;
k=proc(a,b);
printf("The original data:/n");
for(i=0;i<SIZE;i++)
{
if(i%5==0)printf("/n");
printf("%4.0f",a[i]);
}
printf("/n/nThe result:n");
for(i=0;i<k;i++)printf("%6.2f",b[i]);
printf("/n/n");
}
填空题下面的程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中,请填空。 #include <stdio.h> #include<stdlib.h> FILE*fp; main() charch; if((fp=fopen( 【19】 ))==NULL)exit(0); while((ch=getchar())!='@') fputc(ch,fp); fclose(fp);
填空题在计算机中,字符的比较是对它们的 【10】 进行比较。
填空题下列程序运行后的输出结果是______。
#include<stdio.h>
main()
{ int x=20;
printf("%d",0<x<20) ;
printf("%dkn",0<x}
填空题下列给定程序中,函数fun()的功能是:将形参a所指数组中的前半部分元素中的值与后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。
例如,若a所指数组中的数据为1、2、3、4、5、6、7、8、9,则调换后为6、7、8、9、5、1、2、3、4。
请在标号处填入正确的内容,使程序得出正确的结果。 注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构。
试题程序 #include <stdio.h>
#define N 9 void fun(int a[], int n) {
int i, t, p; p=(n% 2==0)? n/2:n/2+______;
for(i=0; i<n/2; i++) { t=a[i];
a[i]=a[p+______]; ______=t; }
} main() { int b[N]={1, 2, 3, 4, 5, 6, 7, 8,
9}, i; printf("/nThe original data:/n");
for(i=0; i<N; i++) printf("% 4d", b[1]);
printf("/n"); fun(b, N); printf("/nThe data
after moving:/n"); for(i=0; i<N; i++)
printf("% 4d", b[i]); printf("/n"); }
填空题以下程序运行后的输出结果是 【12】 。 fun(int a) int b=0; static int c=3; b++; c++; return(a+b+c); main() int i, a=5; for(i=0; i<3; i++)printf("% d % d", i, fun(a)); printf("/n");
填空题以下程序的输出结果是 【11】 。main() int s,i; for(s=0,i=1;1<3;i++,s+=i); printf("%d/n",s);
填空题表达式(int)((double)(5/2)+2.5)的值是______。
填空题以下程序输出的结果是{{U}} 【12】 {{/U}}。
#include <stdio.h>
main()
{ int a=5,b=4,c=3,d;
d=(a>b>c);
printf("%d/n",d);
}
填空题已知字母A的ASCII码为65,以下程序运行后的输出结果是 【8】 。 main() char a, b; a='A'+'5'-'3'; b=a+'6'-'2'; printf("% d % c/n", a, b);
填空题请补充main()函数,该函数的功能是:求m!。
例如10!=3628800。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
void main()
{
int i, m;
long f=1;
system("CLS");
printf("Input m:");
scanf("%d", ______);
for(______; i<=m; i++)
______;
printf("%d!=%1d/n", m, f);
}
填空题判定表和判定树是以图文形式描述数据流图的______。
填空题有以下程序: #include<stdio.h> struct STU int num; float TotalScore; ; void f(struct STU p) struct STU s[2]=20044, 550, 20045, 537; p. num=s[1].num; p.TotalScore=s[1]. TotalScore; main() struct STU s[2]=20041, 703, 20042, 580; f(s[0]); printf("%d%3.0f/n", s[0]. num, s[0]. TotalScore); 程序运行后的输出结果是______。
填空题函数调用语句:“fgets(buf,n,fp);”从fp指向的文件中读入,n个字符放到buf字符数组中,函数返回值为______。
填空题有以下程序: main() int a[3][3],*p,i; p= for(i=0;i<9;i++)p[i]=i+1; printf("%d/n",a[1][2]); 程序运行后的输出结果是 【9】 。
填空题数据的逻辑结构在计算机存储空间中的存放形式称为数据的{{U}} {{/U}}。
填空题下面程序的功能是将字符串a下标值为偶数的元素由小到大排序,其他元素不变,请填空。 #include<stdio.h> main() char a[]="labchmfye",t: int 1,j; for(i=0; i<7; i+=2) for(j=i+2; j<9; 【12】 ) if( 【13】 ) t=a[i]; a[i]=a[j]; a[j]=t; j++; puts(a) ;printf("/n");
填空题请补充main()函数,该函数的功能是:输出一个44的矩阵,要求必须使用行指针表示输出变量。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
void main()
{
static int art[4][4]={{9, 8, 7, 6},
{6, 5, 4, 3},
{3, 2, 1, 0},
{2, 4, 6, 8}};
int(*p)[4], j, i;
p=______;
system("CLS");
for(i=0; i<4; i++)
{
printf("/n/n");
for(j=0; j<4; j++)
printf("%4d", ______);
}
}
填空题下列给定程序中已建立了一个带头结点的单向链表,在main函数中将多次调用fun函数,每调用一次,输出链表尾部结点中的数据,并释放该结点,使链表缩短。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<stdlib.h>
#define N 8
typedef struct list
{int data;
struct list *next;
}SLIST;
void fun(SLIST *p)
{SLIST *t, *s;
t=p->next; s=p;
while(t->next!=NULL)
{s=t;
/**********found**********/
t=t->______;
}
/**********found**********/
printf("%d", ______);
s->next=NULL;
/**********found**********/
free(______);
}
SLIST *creatlist(int *a)
{SLIST *h, *p, *q;
int i;
h=p=(SLIST *)malloc(sizeof(SLIST));
for(i=0; i<N; i++)
{q=(SLIST *)malloc(sizeof(SLIST));
q->data=a[i]; p->next=q;
p=q;
}
p->next=0;
return h;
}
void outlist(SLIST *h)
{SLIST *p;
p=h->next;
if(p==NULL)
printf("/nThe list is NULL!/n");
else
(printf("/nHead");
do{printf("->%d", p->data);
p=p->next;
}while(p!=NULL);
printf("->End/n");
}
}
main()
{SLIST *head;
int a[N]={11,12,15,18,19,22,25,29};
head=creatlist(a);
printf("/nOutput from head:/n");
outlist(head);
printf("/nOutput from tail:/n");
while(head->next!=NULL){
fun(head);
printf("/n/n");
printf("/nOutput from head again:/n");
outlist(head);
}
}
填空题下列给定程序中,函数fun()的功能是:从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是15。程序中i的值代表红球数, j的值代表白球数,k的值代表黑球数。 请改正程序中的错误,使它能得出正确的结果。 注童:不要改动main 函数,不得增行或删行,也不得更改程序的蛄构。 试题程序: #include <stdio. h> int fun () int i,j,k, sum=0; printf ("/nThe result : /n/n "); /**************found***************/ for (i=0; i<=3; i++) for (j=1;j k=8-i-j; /**************found ******************/ if (k>=1 printf ("red: %4d white: %4d black: %4d/n ", i, j, k); ) return sum; main () int sum; sum=fun (); printf ("sum=%4d/n/n ", sum);
