填空题请补充main函数,该函数的功能是:输出一个3×3的矩阵,要求必须使用行指针表示输出变量。 注意;部分源程序给出如下. 请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。 试题程序: #include<s tdio. h> main() static int array[3] [3]=9,8,7, 6,5, 4, (3,2,1; iht (*p) [3],j,i; p=【1】 clrscr (); for (i=0; i<3; i++) printf (" /n/n" ); for (j=0; j<3; j++) printf("%4d", 【2】 );
填空题下面程序的运行结果是______。
main()
{ int i=0,j=10,k=2,s=0;
{i+=k;
if(i>j)
{printf("%d/n",s);
break;}
s+=i;}}
填空题下列程序执行后输出的结果是______。 f(int a) static c=0; c=a+c++; return(c); main() int a=2,i,k; for(i=0;i<2;i++) k=f(a++); prinf("%d/n",k);
填空题仅由______、选择(分支)和重复(循环)结构构成的程序是结构化程序。
填空题下面程序的功能是建立一个有3个结点的单循环链表,然后求各个结点数值域data中数据的和,请填空。#include<stdio.h>#include<stdlib.h>structNODEintdata;structNODE*next;;main()structNODE*p,*q,*r;intsum=0;p=(structNODE*)malloc(sizeof(structNODE));q=structNODE*)malloc(sizeof(structNODE));r=(structNODE*)malloc(sizeof(structNODE));p->data=100;q->data=200;r->data=300;p->next=q;q->next=r;r->next=p;sum=p->data+p->next->data+r->next->next【19】;printf("%d/n",sum);
填空题以下程序的输出结果是______。 main() int a=5,b=4,c=3,d; d=(a>b>C) ; printf(“%d/n”,D) ;
填空题若x=3,y=2,z=1,表达式z-=x<y?x++:++y的值为______。
填空题若有定义:int k;,以下程序段的输出结果是______。
for(k=2;k<6;k++,k++)printf("##%d",k);
填空题有以下程序:
void swap 1(int c[])
{int t;
t=c[0];c[0]=c[1];c[1]=t;
}
void swap2(int c0,int c1)
{ int t;
t=c0;c0=c1;c1=t;
}
main()
{ int a[2]={3,5},b[2]={3,5};
swaplA);swap2(b[0],b[1]);
printf("%d,%d,%d,%d/n",a[0],a[1],b[0],b[1]);
}
其输出结果是{{U}} 【7】 {{/U}}。
填空题以下程序的输出结果是______。
main()
{ int s,i;
for(s=0,i=4;i>2;i--,s+=i);
printf("%d/n",s);
}
填空题在算法正确的前提下,评价一个算法好坏的2个因素是时间复杂度和 【1】 复杂度。
填空题给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字符串,且串长小于N。
请在程序的下划线处填入正确的内容,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<string.h>
#define M 5
#define N 20
void fun(char(*ss)[N])
{int i,j,k=0,n,m,len;
for(i=0;i<M;i++)
{len=strlen(ss[i]);
if(i=0)n=len;
if(len>n){
/**********found**********/
n=len;______=i;
}
}
for(i=0;i<M;i++)
if(i!=k)
{m=n;
len=strlen(ss[i]);
/**********found**********/
for(j=______;j>=0;j--)
ss[i][m--]=ss[i][j];
for(j=0;j<n-len;j++)
/**********found**********/
______="*";
}
}
main()
{char ss[M][N]={"shanghai","guangzhou","beijing","tianjin","chongqing"};
int i;
printf("/nThe original strings are:/n");
for(i=0;i<M;i++)
printf("%s",ss[i]);
printf("/n");
fun(ss);
printf("/nThe result:/n");
for(i=0;i<M;i++)
printf("%s",ss[i]);
}
填空题设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部{{U}} 【10】 {{/U}}。要求形参名为b。
main()
{double [10][22];
int n;
......
fun(s);
}
填空题给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include<stdio.h>
#include<stdlib.h>
typedef struct aa
{int data;struct aa *next;)NODE;
int fun(NODE *h)
{int sum=0;
NODE *p;
/**********found**********/
p=h;
while(p)
{if(p->data%2==0)
sum+=p->data;
/**********found**********/
p=h->next;
}
return sum;
}
NODE *creatlink(int n)
{NODE *h,*p,*s;
int i;
h=p=(NODE*)malloc(sizeof(NODE));
for(i=1;i<=n;i++)
{s=(NODE*)malloc(sizeof(NODE));
s->data=rand()%16;
s->next=p->next;
p->next=s;
p=p->next;
}
p->next=NULL;
return h;
}
void outlink(NODE *h,FILE *pf)
{NODE*p;
p=h->next;
fprintf(pf,"/n/nTHE LIST:/n/n HEAD");
while(p)
{fprintf(pf,"->%d",p->data);p=p->next;
}
fprintf(pf,"/n");
}
void outresuh(int s,FILE*pf)
{fprintf(pf,"/nThe sum of even numbers:%d/n",s);}
main()
{NODE*head;int even;
head=creatlink(12);
head->data=9000;
outlink(head,stdout);
even=fun(head);
printf("/nThe result:/n");
outresuh(even,stdout);
}
填空题以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用删函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
FILE*myf;long fl;
myf={{U}} 【15】 {{/U}}("test.t","rb");
fseek(myf,(),SEEK_END);fl+ftell(myf);
fclose(myf);
printf("%d/n",fl);
填空题下给定程序中,函数fun的功能是:将主函数中两个变量的值进行交换。例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,
也不得更改程序的结构!
试题程序:
#include<stdio.h>
/**********found**********/
void fun(int x,int y)
{
int t;
/*********found**********/
t=x;x=y;y=t;
}
main()
{
int a,b;
a=8;
b=3;
fun(
printf("%d,%d/n",a,b);
}
填空题以下程序的功能是:删去一维数组中所有相同的数,使相同的数只剩一个。数组中的数已按由小到大的顺序排列,函数fun返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10
删除后,数组中的内容应该是:2 3 4 5 6 7 8 9 10。请填空。
#include <stdio.h>
#define N 80
int fun(int a[], int n)
{ int i,j=1;
for(i=1;i<n;i++)
if(a[j-1] {{U}}【19】 {{/U}} a[i]) a[j++]=a[i];
{{U}} 【20】 {{/U}};
}
main()
{ int a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;
printf("The original data :/n");
for(i=0;i<n;i++) printf("%3d",a[i]);
n=fun(a,n);
printf("/nThe data after deleted :/n");
for(i=0; i<n; i++) printf("%3d",a[i]); printf("/n/n");
}
填空题以下程序用来统计文件中字符的个数。请填空。
#include“stadio.h”
main()
{ FILE *fp;long num=0L;
if((fp=fopen(“fname.dat”,“r”))==NULL);
{printf(“0pen error/n”);exit(0);}
while({{U}} 【16】 {{/U}})
{fsetc(fp);num++;}
printf(“num=%1d/n”,num-1);
fclose(fp);
}
填空题己知a所指的数组中有N个元素。函数fun的功能是,将下标k(k>0)开始的后续元素全部向前移动一个位置。请填空。
void fun(inta[N],int k)
{ int i;
for(i=k;i 【11】 }