填空题给定程序是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include<stdio.h>
#include<stdlib.h>
typedef struct aa
{int data;
struct aa *next;
}NODE;
int fun(NODE *h)
{int max=-1;
NODE *p;
/**********found**********/
p=h;
while(p)
{if(p->data>max)
max=p->data;
/**********found**********/
p=h->next;
}
return max;
}
void outresuh(int s,FILE*pf)
{fprintf(pf,"/nThe max in link:%d/n",s);}
NODE*creatlink(int n,int m)
{NODE*h,*p,*s;
int i;
h=p=(NODE*)malloc(sizeof(NODE));
h->data=9999;
for(i=1;i<=n;i++)
{s=(NODE*)malloc(sizeof(NODE));
s->data=rand()%m;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,"/nTHE LIST:/n/n HEAD");
while(p)
{fprintf(pf,"->%d",p->data);p=p->next;}
fprintf(pf,"/n");
}
main()
{NODE*head;int m;
head=creatlink(12,100);
outlink(head,stdout);
m=fun(head);
printf("/nTHE RESULT:/n");
outresult(m,stdout);
}
填空题下面程序的功能是输出数组s中最大元素的下标,请填空。 main( ) int k,p,s[ ]=1,-9,7,2,-10,3; for(p=0,k=p;p<6;p++) if(s[p]>s[k])______ printf("%d/n",k);
填空题以下程序的输出结果是【 】。
#include
main( )
{prinff("%d\n",strlen("IBM\n012\1\\"));}
填空题输出若干学生3门课程的成绩。 #include <stdio.h> 【9】 struct student int num; float score[3]; main () int i=0, n; float a[3]; 【10】 *ptr [200]; printf ("请输入学生学号和3门课成绩,学号为0表示数据输入结束/n"); do ptr[i]=(struct student *)malloc(sizeof(struct student)); scanf("%d%f%f%f", ptr[i]->score[O]=a[O]; ptr[i]->score[1]=a[1]; ptr[i]->score[2]=a[2]; if( 【11】 ) break; i++; while(1); n=i-1; 【12】 ; for(i=O;i printf("%-6d%.1f %.1f %.1f/n",ptr[i]->num, ptr[i]->score[0], ptr[i]->score[1], ptr[i]->score[2]);
填空题函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1.
┆
其构成规律是:
(1)第0列元素和主对角线元素均为1
(2)其余元素为其左上方和正上方元素之和
(3)数据的个数每行递增1
请将程序补充完整。
#define N 6
void yanghui(int x[N][N])
{ int i,j;
x[0][0]=1;
for(i=1;i<N;i++)
{ x[i][0]={{U}} 【13】 {{/U}}=1;
for(j=1;j<i;j++)
x[i][j]={{U}} 【14】 {{/U}};
}
}
填空题请将以下程序中的函数声明语句补充完整。 #include<stdio.h> int ______; main() int x, y, (*P)(); scanf("%d%d", p=max; printf("%d/n", (*P)(x, y)); int max(int a, int b) return(a>b ? a:b);
填空题下面程序的输出结果是______。 main() int i=0,a=0; while(i<20) for(;;) if((i%10)==0)break; else i--; i+=11; a+=i; printf("%d/n",a);
填空题下列给定程序中,函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(如“Z”转化为“A”、“z”转化为“a”),其他字符不变。
请改正程序中的错误,使它能得出正确的结果。
注意
:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
void fun(char *s)
{
/********found********/
while(*s!="@")
{
if(*s>="A"
else if(*s=="z")*s="a";
else *s+=1;
}
/********found********/
(*s)++;
}
}
void main()
{
char s[80];
system("CLS");
printf("/n Enter a string with length<80:/n/n");
gets(s);
printf("/n The string:/n/n");
puts(s);
fun(s);
printf("/n/n The Cords:/n/n");
puts(s);
}
填空题以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值,请填空。
void fun(int, int, int(*)[4], int*);
main()
{ int a[3][4]={{12, 41, 36, 28}, {19, 33, 15, 27}, {3, 27, 19, 1}}, b[3], i;
fun(3, 4, a, b);
for(1=0; i<3; i++)printf("% 4d", b[i]);
printf("/n");
}
void fun(int m, int n, int ar[][4], int * bar)
{ int i, j, x;
for(i=0; i<m; i++)
{ x=ar[i][0];
for(j=0; j<n; j++)if(x<ar[i][j])x=ar[i][j];
{{U}} 【10】 {{/U}}=x;
}
}
填空题以下程序的输出结果是______。 #include<stdio.h> main() int x=27; while(x>20 if(x/3)x++;break; else continue; printf("%d/n",x);
填空题下列给定程序中,函数fun的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不等,z和y的值不相等。例如,当x的值为1,y的值为2,z的值为3,函数值为2.00。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include<stdio.h> #include<stdio.h> /********found********/ #define F(m,n)(m/n) float fun(float a,float b,float c) float s; s=F((a+b),(a-b))+F((c+b),(c-b)); /********found********/ Return(s); main() float x,y,z,sum; printf("input x y z:"); scanf("%f%f%f",&x,&y,&z); printf("x=%f,y=%f,z=%f/n",x,y,z); if(x==y||y==z) printf("Data error!/n"); exit(0); sum=fun(x,y,z) printf("the result is:%5.2f/n",sum);
填空题请补充函数fun(),该函数的功能是:把一个字符串中的字符(字母)按从小到大排序,并把这个全部由字母组成的字符串保存在原串中,函数返回这个字符串的长度。例如;输入“cixbr2.3”,如果为bcirx,字符串长度为5。 注意:部分源程序给出如下. 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 #include <stdio.h> #define N 20 int fun (char *str) int i=0,j=0,k=-0,m=0; char t; char *p=str; while(*p) if((*p>='A' *(str+i)='/0'; 【2】 ; while(*(p+j)) k=j; 【3】 ; while (*(p+k)) if(*(p+k)<*(str+m) t=*(str+m); *(str+m)=*(p+k); *(p+k)=t; k++; j++; return i; main() char str[81]; iht n; clrscr(); printf("Input the original string "); gets(str); printf("*** The Original string ***In"); puts(str); printf("*** The nwe string ***/n"); n=fun(str); puts(str); printf("***The length of new string is: %d***/n",n);
填空题软件的需求分析阶段的工作,可以概括为四个方面: 【1】 、需求分析、编写需求规格说明书和需求评审。
填空题以下程序通过函数SunFun()调用F(x),x的值从0到10,这里F(x)=x2+1,由F函数实现,请填空。 #include <stdio. h> int SunFun(int); int F(int); main ( ) pfintf( "The sum = % d //n" ,SunFun(10) ); SunFun( int n) int x,s =0; for(x=0; x<=n; x++) s+ =F({{U}} {{/U}}); return s; F( int x) return ({{U}} {{/U}});
填空题以下程序实现了数组元素按相反顺序进行存放。
#include<stdio.h>
int main()
{
int i, a[10], temp;
int* p, *low, *high;
______;
for(i=0; i<10; i++)
scanf("%d", p+______); /*输入数组元素*/
for(i=0; i<10; i++)
{
printf("%d", *p); /*输出原数组元素*/
______;
}
printf("/n");
for(low= low<high; ______)
{temp=*high; *high=*low; *low=temp;}
for(i=0; i<10; i++)
printf("%d", a[i]); /*输出变换后的数组元素*/
return 0;
}
填空题下列给定程序中,函数fun()的功能是进行数字字符转换。若形参ch中是数字字符‘0’~‘9’,则将‘0’转换成‘9’,‘1’转换成‘8’,‘2’转换成‘7’,…,‘9’转换成‘0’;若是其他字符则保持不变,并将转换后的结果作为函数值返回。
请在标号处填入正确的内容,使程序得出正确的结果。 注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构。
试题程序 #include
<stdio.h> ______ fun(char ch) {
if(ch>='0'
return ch; } main() {
char c1, c2; printf("/nThe result:/n");
c1='2'; c2=fun(c1); printf("c1=% cc2=% c/n", c1, c2);
c1='8'; c2=fun(c1); printf("c1=% cc2=% c/n", c1, c2);
c1='a'; c2=fun(c1); printf("c1=% cc2=% c/n", c1, c2);
}
填空题下面程序的运行结果是______,函数strcat()的功能是______。
#include<stdio.h>
char*streat(char*s1, char*s2)
{
char*p=s1;
while(*p!="/0")p++;
while((*p++=*s2++)!="/0");
return s1;
{
int main()
{
char str1[30]="I learn";
char*str2="C language.";
char*s;
s=strcat(str1, str2);
printf("/n%s/n%s/n", s, str1);
return 0;
}
填空题以下程序运行后的输出结果是【 】。
struct NODE
{int num;struct NODE *next;
};
main()
{struct NODE s[3]={{1,''\0''},{2,''\0''},{3,''0''}},*p,*q,*r;
int sum=0;
s[0].next=s+1;s[1].next=s+2;s[2].next=s;
p=s; q=p->next; r=q->next;
sum+=q->next->num; sum+=r->next->next->num;
printf("%d\n",sum);
}
填空题下列给定程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里”单词”是指由空格隔开的字符串)。例如,若输入"I am a student to take the examination",则应输出"I Am A Student To Take The Examination"。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<ctype.h>
#include<stdio.h>
#include<string.h>
/*********found*********/
void upfst(char p)
{
int k=0;
for(; *p;p++)
if(k)
{
if(*p=="")
k=0;
}
else
{
if(*p!="")
{
k=1;
*p=toupper(*p);
}
}
}
void main()
{
char chrstr[81];
system("CLS");
printf("/nPlease enter an English text line:");
gets(chrstr);
printf("/nBofore changing:/n %s", chrstr);
upfst(chrstr);
printf("/nAfter changing:/n%s/n",chrstr);
}
填空题给定程序MODI1.C中函数fun的功能是:根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。
例如,若输入2 |若输入4
则输出: |则输出:
1 2 | 1 2 3 4
2 4 | 2 4 6 8
| 3 6 9 12
| 4 8 12 16
请改正程序函数中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序如下。
#include<conio.h>
#include<stdio.h>
#define M 10
int a[M][M]={0};
/**********found********/
void fun(int**a,int m)
{int j,k;
for{j=0;j<m;j++)
for(k=0;k<m;k++)
/********found********/
a[j][k]=k*j;
}
main()
{ int i,j,n;
printf("Entern:");scanf("%d",
fun(a,n);
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
printf("%4d",a[i][j]);
printf("/n");
}
}