请补充函数fun(),该函数的功能是建立一个带头结点的单向链表并输出到文件“out98.dat”和屏幕上,各结点的值为对应的下标,链表的结点数及输出的文件名作为参数传入。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仪在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdio. h>
include<conio. h>
include<stdlib. h>
typedef struct ss
{
int data;
struct ss *next;
} NODE;
void fun(int n,char*filename)
{
NODE *h,*p, *s;
FILE *pf;
int i;
h=p= (NODE *) malloc (sizeof (NODE));
h->data=0;
for (i=1; i {
s=(NODE *)malloc (sizeof (NODE));
s->data=【 】;
【 】;
p=【 】
}
p->next=NULL;
if ((pf=fopen (filename, "w") ) ==NULL)
{
printf {"Can not open out9B.clat! ");
exit (0);
}
p=h;
fprintf (pf, "\n***THE LIST***\n");
print f ("\n***THE LIST***\n")
while (p)
{
fprintf (pf, "%3d", p->data)
printf ("%3d",p->data);
if (p->next ! =NULL)
{
fprintf (pf, "->");
printf ("->");
}
p=p->next;
}
fprintf (pf, "\n");
printf ("\n");
fclose (pf);
p=h;
while (p)
{
s=p;
p=p->next;
free (s);
}
}
main()
{
char * filename="out98. dat";
int n;
clrscr ();
printf (" \nInput n: ");
scanf ("%d", &n);
fun (n, filename);
}
第1题
以下程序可把输入的十进制数以十六进制数的形式输出。
请在横线上填上适当的内容并把横线删除,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序;
main ()
{
char b[17]={"0123456789ABCDEF"};
int c[64] ,d,i=0,base=16;
long n;
printf("Enter a number:\n");
scanf ("%ld", &n);
do {
/*****************found****************/
c[i]=______; i++; n=n/base; }
while (n!=0);
printf("Transmite new base:\n");
for(--i;i>=0;--i)
/***************found*******************/
{ d=c[i];printf("%c",b______);}
printf("\n");
}
第2题
入字符串时用’’结束输入。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.
试题程序:
include <string.h>
include <stdio.h>
include <ctype.h>
fun(char *p)
{ int !i, t; char c[80];
for(i=0,t=0;p[i];i++)
if(!isspace(*(p+i))) c[t++]=p[i];
/**********************************/
c[t]='\0';
strcpy(p,c);
}
main()
{char c,s[80];
int i=0;
printf("Input a string: ");
c=getchar();
while(c!='')
( s[i]=c;i++;c=getchar();}
s[i]="\0";
fun(s);
puts(s);
}
第3题
以下程序运行后的输出结果是( )。
include<stdio.h>
main()
{ int a=1, b=7;
do {
b=b/2; a+=b;
} while(b>1);
printf("%d\n",A);
}
第4题
将它们放在 a所指的数组中,通过n返回这些数的个数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include <conio.h>
include <stdio.h>
void fun (int *a,int *n)
{
}
main()
{
int aa[1000], n, k;
clrscr();
fun(aa,&n);
for(k=0;k if((k+1)%10==0)
{printf("%5d",aa[k]);
printf("\n");} /*一行写9个数*/
else
printf("%5d ",aa[k]);
}
第5题
请编写函数void fun (int x,int pp[],int *n),它的功能是求出能整除x且不是奇数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
例如,若x中的值为24,则有6个数符合要求,它们是2, 4, 6, 8, 12, 24。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include<conio.h>
include<stdio.h>
void fun(int x,int PP[],int *n)
{
}
main ()
{
int x,aa[1000],n,i;
clrscr() ;
printf("\nPlease enter an integer number:
\n ") ;
scanf("%d",&X);
fun(x,aa,&n);
for(i=0;i<n;i++)
printf("%d",aa[i]);
printf("\n");
}
第6题
保存在数组num中。注意:不能使用字符串库函数。
例如:输入“x=112385713.456+0.909*bc”,结果为:1 =3,3=2,5=2,7=1,9=2。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdio.h>
define N 1000
void fun(char*tt,int num[])
{
int i,j;
int bb[10];
char *p=tt;
for(i=0;i<10;i++)
{
num[i]=0;
bb[i]=0;
}
while (【 】)
{
if(*p>=‘0’&&*p<=‘9’)
【 】;
p++;
}
for(i=1;j=0;i<10;i=i+2,j++)
【 】;
}
main()
{
char str[N];
int num[10],k;
clrscr();
printf("\nPlease enter a char string:");
gets(str);
printf("\n**The original string**\n");
puts(str);
fun(str,num);
printf("\n**The number of letter**\n");
for(k=0;k<5;k++)
{
printf("\n");
printf("%d=%d",2*k+1,num[k]);
}
printf("\n");
return;
}
第7题
以下程序的输出结果是( )。
include<stdio.h>
void fun(int x)
{ if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(3);printf("\n");
}
第8题
所指的存储单元中。
例如,输入如下整数:
234 345 753 134 436 458 100 321 135 760
则输出结果为6,100。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include<conio.h>
include<stdio.h>
int fun(int *s,int t,int *k)
{
}
main()
{
int a[10]={234,345,753,134,436,458,
100,321,
135,760),k;
clrscr();
fun(a,10,&k);
printf("%dr %d\n", k, a[k]);
}
第9题
有以下程序
void f( int y, int *x)
{ y=y+*x; *X=*X+y; }
main()
{ int x=2,y=4;
f(y,&x);
printf("%d %d\n",x,y);
}
执行后输出结果是______。
第10题
字符串在主函数中输入,并放入一个字符串数组中。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <string.h>
include <stdio.h>
define N 5
define M 81
/*************found**************/
fun(char (*sq) [N])
{int i; char *sp;
sp=sq[0];
for{i=0;i<N;i++)
if(strlen(sp)<strlen(sq[i]))
sp=sq[i];
/*************found**************/
return sq;
}
main ()
{char str[N][M], *longest; int i;
printf("Enter %d lines:\n ",N);
for(i=0;i<N;i++) gets(str[i]);
printf("\nThe %d string :\n ",N);
for(i=0;i<N;i++) puts(str[i]);
longest=fun(str);
printf("\nThe longest string :\n ");
puts(longest);
}
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!