填空题以下程序建立了一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输人数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next=NULL). # include<stdio.h> struct list int datd;struct list * next;; {{U}} 【19】 {{/U}} creatlist( ) struct list * p,*q,*ph; int a; ph= (struct list*)malloc(sizeof(struct list)); p=q=ph; printf("Input an integer number,enter-1 to end:/n"); scanf("%d",&a); while(a!=-1) p=(struct list * )malloc(sizeof(struct list)); p->data=a; q->next=p; {{U}} 【20】 {{/U}} =p; scanf("%d",&a); p->next='/0'; return(ph); main( ) struct list head; head=creatlist( );
填空题下列程序的功能是通过函数func输入字符并统计输入字符的个数。输入时用字符@作为输入结束标志,请填空。 #include<stdio.h> long______;/*函数说明语句*/ main() long n; n=func();printf("n=%1d/n",n); long func() long m; for(m=0;getchar()!='@';______); return m;
填空题下列程序输出的结果是 【19】 。 fun(int x) static int a=3; a+=x; return(a); main() int k=2,m=1,n; n=fun(k); n=fun(m); printf("%d/n",n);
填空题给定程序中,函数fun的功能是:找出100至x(x≤999)之间各位上的数字之和为15的所有整数,然后输出;符合条件的整数个数作为函数值返回。
例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。共有26个。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include<stdio.h>
int fun(int x)
{int n, s1, s2, s3, t;
/**********found**********/
n=______;
t=100;
/**********found**********/
while(t<=______)
{ s1=t%10; s2=(t/10)%10; s3=t/100;
if(s1+s2+s3==15)
{printf("%d", t);
n++;
}
/**********found**********/
______;
}
return n;
}
main()
{ int x=-1;
while(x>999||x<0)
{printf("Please input(0<x<=999):");
scanf("%d", }
printf("/nThe result is:%d/n", fun(x));
}
填空题下面的if语句与y=(x>=10)?3*x-11:(x<1)?x:2*x-1;的功能相同,请补充完整。
if({{U}} 【10】 {{/U}})
if({{U}} 【11】 {{/U}})y=2*x-1;
else y=x;
else y=3*x-11;
填空题复合语句在语法上被认为是______。空语句的形式是______。
填空题请补充函数fun(),该函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:1,1,1,2,2,2,3, 4,4,5,5,6,6,7,7,8,9,9,10,10。
删除后,数组中的内容应该是:1,2,3,4,5,6,7, 8,9,10。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#define N 80
int fun(int a[],int n)
{
int i, t,j=0;
t=a[0];
for(i=1;i<n;i++)
if({{U}} 【1】 {{/U}})
;
else
{
{{U}} 【2】 {{/U}};
t=a[i];
}
a[j++]=t;
return j;
}
main()
{
int a[N]={1,1,2,2,2,3,4,4,5,5,6,6,6,
7,7,8,9,9,10,10},i,n=20;
printf("The original data:/n");
for(i=0; i<n; i++)
printf("%4d",a[i]);
n=fun(a,n);
printf("/n/nThe data after deleted ;
/n");
for (i=0;i<n;i++)
printf("%4d",a[i]);
printf("/n");
}
填空题
给定程序MODI1.C中函数fun的功能是:计算n!。
例如,给n输入5,则输出120.000000。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include<stdio.h>
double fun(int n)
{double result=1.0;
/**********found**********/
if n==0
return 1.0;
while(n>1
}
main()
{ int n;
printf("Input N:");
scanf("%d",
printf("/n/n%d!=%lf/n/n", n, fun(n));
}
填空题给定程序MODI1.C中函数fun的功能是输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序如下。
#include<stdio.h>
#define M 5
/*************found**********/
int fun(int n,int xx[][])
{ int i,j,sum=0;
printf("/nThe %d x %d matrix:/n",M,M);
for(i=0;i<M;i++)
{ for(j=0;j<M;j++)
/***********found*********/
printf("%f,xx[i][j]);
printf("/n");
}
for(i=0;i<n;i++)
sum+=xx[i][i]+xx[i][n-i-1];
return(sum);
}
main()
{ int aa[M][M]={{1,2,3,4,5},{4,3,2,1,0},
{6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};
printf("/nThe sum of all elements on 2 diagnals is%d.",fun(M,aa));
}
填空题设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部{{U}} 【9】 {{/U}}(要求形参名为b)。
main()
{ double s[10][22];
int n;
……
fun (s);
……
}
填空题53. 有两个C程序文件T18.c和myfun.c同在VC系统目录(文件夹)下,其中T18.c文件如下: #include <stdio.h> #include "myfun.c" main( ) fun(); prinff("//n"); myfun.c文件如下: void fun( ) char s[80],c;int n=0; while((c=getchar())! :'//n') s[n++] =c; n--; while ( n>=0) prinff("%c" , s [n--] ); 当编译连接通过后,运行程序T18时,输入"Thank!”,则输出结果是{{U}} {{/U}}。
填空题执行下列语句段后,x的值是______。 int*P,x; x=100: p=&x; x=*p+50;
填空题有一种攻击是针对网络低层协议而不是针对某项特定的应用服务,这种攻击称为 【15】 。 下面rotate函数的功能:将n行n列的矩阵A转置为A',请填空。 # define N 4 void rotate(int a[][N]) int i, j, t; fori=0; i<N; j++ forj=0; 【16】 ; j++ t=a[i][j]; a[i][j]=a[j][i]; a[j][i]=t;
填空题以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6 请填空。
#include "math.h"
double fun(double x){ return (x*x-2*x+6);}
main() { double x,y1,y2;
printf("Enter x:"); scanf("%1f",
y1=fim({{U}}
{{/U}}); y2=run({{U}}
{{/U}});
printf("y1=%1f,y2=%1f/n",y1,y2); }
填空题给定程序中,函数fun的功能是将带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<stdlib.h>
#define N 6
typedef struct node{
int data;
struct node*next;
}NODE;
void fun(NODE*h)
{NODE*p,*q;int t;
/*********found*********/
p=______;
while(p){
/*********found*********/
q=______;
while(q){
/*********found*********/
if(p->data______q->data)
{t=p->data;
p->data=q->data;
q->data=t;}
q=q->next;
}
p=p->next;
}
}
NODE*creatlist(int a[])
{NODE*h,*p,*q;int i;
h=(NODE*)malloc(sizeof(NODE));
h->next=NULL;
for(i=0;i<N;i++)
{q=(NODE*)malloc(sizeof(NODE));
q->data=a[i];
q->next=NULL;
if(h->next==NULL)
h->next=p=q;
else{p->next=q;p=q;}
}
return h;
}
void outliSt(NODE*h)
{NODE * p;
p=h->next;
if(p==NULL)
printf("The list is NULL!/n");
else
{printf("/nHead");
do
{printf("->%d",p->data);
p=p->next;}
while(p!=NULL);
printf("->End/n");
}
}
main()
{NODE*head;
int a[N]={0,10,4,2,8,6};
head=creatlist(a);
printf("/nThe original list:/n");
outlist(head);
fun(head);
printf("/nThe list after sorting:/n");
outlist(head);
}
填空题以下函数的功能是求x的y次方,请填空 double fun(double x,int y) int i; double z; for(i=1,z=x;i<y;i++)z=z* 【12】 ;
填空题以下函数用来在w数组中插入x。n所指向的存储单元中存放w数组中字符个数。数组w中的字符已按从小到大的顺序排列,插入后数组w中的字符仍有序。请填空。
void fun(char*w,char x,int*n)
{ int i, p;
p=0;
w[*n]=x;
while(x>w[p])p++;
for(i=*n;i>p;i--)w[i]={{U}} 【13】 {{/U}};
w[p]=x;
++ *n;}
填空题函数delete(s,i,n)的作用是从字符串s中删除从第i个字符开始的n个字符,请填空。 void delete(char s[],int i, int n) int j,k,legth=0; while(s[length]) 【11】 ; -i; j=i; if( 【12】 ) k=i+n; if(i+n<length) while(k<length) s[j++]=s[k++]; s[j]='/0'
填空题程序MODI1.C中函数fun和funx的功能是:用二分法求方程2x3-4x2+3x-6=0的一个根,并要求绝对误差不超过0.001。 例如,若给m输入-100,给n输入90,则函数求得的一个根值为2.000。 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 文件MODI1.C内容如下: #include<stdio.h> #include<math.h> double funx(double x) return(2*x*x*x-4*x*x+3*x-6); double fun(double m,double n) /***********found**********/ int r; r=(m+n)/2; /**********found**********/ while(fabs(n-m)<0.001) if(funx(r)*funx(n)<0) m=r; else n=r; r=(m+n)/2; return r; void main( ) double m,n,root; printf("Enter m n:/n"); scanf("%1f%1f",&m,&n); root=fun(m,n); printf("root=%6.3f/n",root);
填空题下列给定程序中,函数fun()的功能是:根据输入的三条边长(整形),判断能否构成三角形;构成的是等边三角形还是等腰三角形。若能构成等边三角形函数,返回3;若能构成等腰三角形函数,返回2;若构成三角形函数,返回1;若不能构成三角形函数返回0。
请修改函数fun()中的错误,得出正确的结果。
注意:不要改动main()函数,不能增行或减行,也不能更改程序的结构。
试题程序:
#include<stdio.h>
int fun(int x,int y,int z)
{
if(x+y>z
else if(x==y||y==z||x==z)
return 2;
else
//****found****
return 3;
}
else
return 0;
}
void main()
{
int x,y,z,shape;
printf("/nInput x,y,z:");
scanf("%d%d%d",
printf("/nx=%d,y=%d,z=%d/n",x,y,z);
shape=fun(x,y,z);
printf("/n/nThe shape:%d/n",shape);
}
