问答题给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序。ss所指字符串数组中共有M个字符串,且串长。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#define M 5
#define N 20
void fun(char (*ss)[N])
{ int i, j, k, n[M]; char t[N];
for(i=0; i
for(i=0; i
{ k=i;
/**********found**********/
for(j=___1___; j
/**********found**********/
if(n[k]>n[j]) ___2___;
if(k!=i)
{ strcpy(t,ss[i]);
strcpy(ss[i],ss[k]);
/**********found**********/
strcpy(ss[k],___3___);
n[k]=n[i];
}
}
}
main()
{ char ss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};
int i;
printf("/nThe original strings are :/n");
for(i=0; i
printf("/n");
fun(ss);
printf("/nThe result :/n");
for(i=0; i
}
问答题编写函数fun,其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除指定字符后的字符串存放在b所指的数组中,n中存放指定的下标。例如,输入一个字符串“World”,然后输入3,则调用该函数后的结果为“Word”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdlib.h>#inclLlde<stdio.h>#include<conio.h>#define LEN 20 void fun(char a[],char b[],int r1){}void main(){ char str1[LEN],str2[LEN]; int n ; system("CLS"); printf("Enter the string:\n"); gets(str1); printf ("Enter the position of the string deleted:"); scanf("%d",&n); fun (str1,str2,n); printf("The new string is:%s、n",str2);}
问答题下列给定程序中,函数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 r1)
{
int i,t,p;
/*********found*********/
P=(n%2==0)? n/2:n/2+
【1】
;
for(i=0;i < n/2;i++)
{
t=a[i];
/*********found*********/
a[i]=a[p+
【2】
];
/*********found*********/
【3】
=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[i]);
printf("/n");
fun(b,N);
printf("/nThe data after
moving:/n");
for(i=0;i < N;i++)
printf("%4 d",b[i]);
printf("/n");
}
问答题
请编写一个函数fun,它的功能是:将一个表示正整数的数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“1234”,则函数把它转换为整数值1234。函数fun中给出的语句仅供参考。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
#include<string.h>
long fun(char*p)
{
/*以下代码仅供参考*/
int i, len; /*len为串长*/
long x=0;
len=strlen(p);
/*以下完成数字字符串转换为一个数字。注意:字符"0"不是数字0*/
return x;
}
main() /*主函数*/
{ char s[6];
long n;
printf("Enter a string:/n");
gets(s);
n=fun(s);
printf("%ld/n", n);
}
问答题编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。 迭代步骤如下: (1)取x1初值为0.0; (2)x0=x1,把x1的值赋给x0; (3)x1=cos(x0),求出一个新的x1; (4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2); (5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。 程序将输出结果Root=0.739085。 注意:部分原程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 [试题源程序] #include<math.h> #include<stdio.h> float fun() main() printf("Root=%f/n",fun());
问答题请编写函数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注意:请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:#include<stdio.h>#define N 80int fun(int a[],int n){}void main()} FILE*wf; int a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20;prinff(“The original data:\n”);for(i=0;i<n;i++) prinff(“%3d”,a[i]); n=fun(a,n); printf(“\nThe data after deleted:\n”); for(i=0;i<n;i++) prinff(“%3d”,a[i]); prinff(“\n”);/*************/ wf=fopen(“out.dat”,”W”); for(i=0;i<n;i++) forinff(wf,“%3d”,a[i]); fclose(wf);/*************/}
问答题函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]、……中,把偶数从数组中删除,奇数个数通过函数值返回。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除偶数后a所指数组中的数据为:9、1、3、5、7,返回值为5。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define N 9
int fun(int a[], int n)
{ int i,j;
j = 0;
for (i=0; i
/**********found**********/
if (a[i]%2==___1___)
{
/**********found**********/
a[j] = a[i]; ___2___;
}
/**********found**********/
return ___3___;
}
main()
{ int b[N]={9,1,4,2,3,6,5,8,7}, i, n;
printf("/nThe original data :/n");
for (i=0; iprintf("/n");
n = fun(b, N);
printf("/nThe number of odd : %d /n", n);
printf("/nThe odd number :/n");
for (i=0; iprintf("/n");
}
问答题给定程序MODI1.C中fun函数的功能是:求出以下分数序列的前n项之和。
2 3 5 8 13 21
┄┄ , ┄┄ , ┄┄ , ┄┄ , ┄┄ , ┄┄ , ……
1 2 3 5 8 13
和值通过函数值返回main函数。
例如,若 n = 5,则应输出: 8.391667。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
/**************found**************/
fun (int n )
{ int a = 2, b = 1, c, k ;
double s=0.0 ;
for ( k = 1; k <= n; k++ )
{ s = s + 1.0 * a / b ;
/**************found**************/
c = a; a += b; b += c;
}
return(s) ;
}
main( )
{ int n = 5 ;
printf( "/nThe value of function is: %lf/n", fun ( n ) ) ;
}
问答题给定程序的主函数中,已给出由结构体构成的链表结点a、b、c,各结点的数据域中均存入字符,函数fun()的作用是:将a、b、c三个结点链接成一个单向链表,并输出链表结点中的数据。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序:#include<stdio.h>typedef struct list{char dam; struct list*next:}Q;void hn(Q*pa,Q*pb,Q*pc){Q*p;/******found******/ pa一>next=___1___; pb一>next=pc; P=pa; while(P) {/******found******/ printf(“%c”,___2___);/******found******/ P=___3___; } pfinff(“\n”);}main(){Q a,b,c; a.dam=‘E’;b.data=‘F’; c.data=‘G’:C.next=NULL; hn(&a,&b,&c);}
问答题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为10、20、30、40。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>#include<stdlib.h>int fun(int score[],int m,int below[]){}void main(){ FILE*wf; int i,n,below[9]; int score[9]={10,20,30,40,50,60,70,80,90}; system("CLS"); n=fun(score,9,below); printf("\nBelow the average score are:"); for(i=0;i<n;i++) printf("%d",below[i]);/******************/ wf=fopen("out.dat","w"); for(i=0;i<n;i++) fprintf(wf,"%d",below[i]); fclose(wf);/******************/}
问答题给定程序中,函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。
例如,当X值为5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500。共有15个。当x值为27时,各位数字之和为27的整数是:999。只有1个。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include<Stdio.h>
int fun(int x)
{int n, s1, s2, s3, t;
n=0;
t=100;
/**********found**********/
while(t<=______) {
/**********found**********/
s1=t%10; s2=(______)%10; s3=t/100;
/**********found**********/
if(s1+s2+s3==______)
{ printf("%d", t);
n++;
}
t++;
}
return n;
}
main()
{int x=-1;
while(x<0)
{printf("Please input(x>0): "); scanf("%d", }
printf("/nThe result is: %d/n", fun(x));
z}
问答题填空题
请补充main函数,该函数的功能是:把一个字符串中的所有小写字母字符全部转换成大写字母字符,其他字符不变,结果保存原来的字符串中。
例如:当str[N]=“123 abcdef ABCDEF!”,结果输出:“123 ABCDEF ABCDEF!”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
#include
#define N 80
void main()
{
int j;
char str[N]=" 123abcdef ABCDEF!";
char *pf=str;
clrscr();
printf("***original string ***/n");
puts(str);
【1】;
while(*(pf+j))
{
if(*(pf+j)>=''a''
j++;
}
else
【3】;
}
printf("******new string******/n");
puts(str);
system("pause");
}
问答题
请编写函数fun,它的功能是:求出1到1000之间能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
void fun(int*a, int*n)
{
}
main()
{int aa[1000], n, k;
void NONO();
fun(aa,
for (k=0; k<n; k++)
if((k+1)%10==0)printf ("/n");
else printf("%5d", aa[k]);
NONO();
}
VOid NONO()
{/*本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/
int aa[1000], n, k;
FILE*fp;
fp=fopen("out.dat", "w");
fun(aa,
for(k=0; k<n; k++)
if((k+1)%10==0)fprintf(fp, "/n");
else fprintf(fp, "%5d", aa[k]);
fclose(fp);
}
问答题试编写函数fun(),其功能是计算并输出下列多项式的值:例如,在主函数中从键盘给n输入50后,输出为s=1.718282。注意:要求n的值大于1但不大于100。#include<stdio.h>doublefun(intn)main()intn;doubles;printf("/nInputn:");scanf("%d",s=fun(n);printf("/n/ns=%f/n/n",s);
问答题
给定程序MODI1.C中函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。
例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
#define SIZE 20
fun(double *s,double *w)
{ int k,i;double sum;
for(k=2,i=0;i<SIZE;i++)
{ s[i]=k;k+=2;}
/**********found**********/
sun=0.0;
for(k=0,i=0;i<SIZE;i++)
{ sum+=s[i];
/**********found**********/
if(i+1%5==0)
{ w[k]=sum/5;sum=0;k++;}
}
return k;
}
main()
{ double a[SIZE],b[SIZE/5];
int i,k;
k=fun(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");
}
问答题N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。
注意: 部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#include
#define N 8
struct slist
{ double s;
struct slist *next;
};
typedef struct slist STREC;
double fun( STREC *h )
{
}
STREC * creat( double *s)
{ STREC *h,*p,*q; int i=0;
h=p=(STREC*)malloc(sizeof(STREC));p->s=0;
while(i
{ q=(STREC*)malloc(sizeof(STREC));
q->s=s[i]; i++; p->next=q; p=q;
}
p->next=0;
return h;
}
outlist( STREC *h)
{ STREC *p;
p=h->next; printf("head");
do
{ printf("->%2.0f",p->s);p=p->next;}
while(p!=0);
printf("/n/n");
}
main()
{ double s[N]={85,76,69,85,91,72,64,87}, max;
STREC *h;
h=creat( s ); outlist(h);
max=fun( h );
printf("max=%6.1f/n",max);
NONO();
}
问答题下列给定程序中,函数fun的功能是:统计substr所指的字符串在str所指的字符串中出现的次数。
例如,若字符串为aaas lkaaas,子字符串为as,则应输出2。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
int fun(char*str,char*substr)
{int i,j,k,num=0;
/********found********/
for(i=0,str[i],i++)
for(j=i,k=0;substr[k]==str[j];k++,j++)
/********found********/
If(substr[k+1]=="/0")
{num++;
break;
}
return num;
}
main()
{
char str[80],substr[80];
printf("Input a string:");
gets(str);
printf("Input a substring:");
gets(substr);
printf("%d/n",fun(str,substr));
}
问答题给定程序中,函数fun的功能是:统计形参s所指字符串中数字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输出。例如,形参s所指的字符串为:abcdef35adgh3kjsdf7。输出结果为:4。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
void fun(char *s, int *t)
{ int i, n;
n=0;
/**********found**********/
for(i=0; ___1___ !=NULL; i++)
/**********found**********/
if(s[i]>='0'
/**********found**********/
___3___ ;
}
main()
{ char s[80]="abcdef35adgh3kjsdf7";
int t;
printf("/nThe original string is : %s/n",s);
fun(s,
printf("/nThe result is : %d/n",t);
}
问答题请编写函数fun,函数的功能是:根据以下公式求出P的值,结果由函数值带回。m、n是两个正整数,且m>n。。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include<conio.h>#include<Stdio.h>floatfun(intm,intn){}main(){clrscr();printf("/nP=%f/n",fun(10,5));NONO();/*严本函数与考生答题无关,考生不得改动,否则后果自负。*/}
问答题请编写函数mygets和myputs,其功能分别与gets和puts相同,函数中用getchar和putchar读入和输出字符。
