问答题编写函数fun,它的功能是:求小于形参n,同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。例如,若n为1000时,程序输出应为:s=153.909064。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:
问答题三个整数a、b、c,由键盘输入,输出其中最大的数。
问答题请编写一个函数void fun(int m, int k, int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入所指的数组中。
例如,若输入17,5,则应输出19,23,29,3l,37。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <conio.h>
#include <stdio.h>
void fun(int m, int k, int xx[])
{
}
main()
{
int m,n, zz[1000];
clrscr();
printf("/nPlease enter two integers: ");
scanf("%d%d",
fun(m,n,zz);
for(m=O;m<n;m++)
printf("%d ",zz[m]);
printf("/n ");
}
问答题给定程序中,函数fun的功能是:在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。ss所指字符串数组中共有N个字符串,且串长小于M。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 #include<string.h>3 #define N 54 #define M 105 int fun(char(*ss)[M],int k)6 { int i,j=0,len;7 /**********found**********/8 for(i=0 ; i<_1_;i++)9 { len=strlen(ss[i]);10 /**********found**********/11 if(len<= __2__)12 /**********found***********/13 strcpy(ss[j++],__3___);}14 return j;}15 main()16 { char x[N][M]={''Beijing'',''Shanghai'',''Tianj ing'',''Nanj ing'',''Wuhan''};17 int i,f;18 printf(''\nThe original string\n\n'');19 for(i=0;i<N;i++)puts(x[i]);20 printf(''\n'');21 f=fun(x,7);22 printf(''The string witch length is less than or equal to 7:\n'');23 for(i=0;i<f;i++) puts(x[i]);24 printf(''\n'');}
问答题编写函数fun,其功能是:求Fibonacci数列中大于t的最小的数,结果由函数返回。Fibonacci数列F(n)的定义为: F(0)=0,F…=1 F(n)=F(n-1)+F(n-2) 例如,当t=1000时,函数值为1597。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序: #include<conio.h> #include<math.h> #include<scdio.h> int fun(int t) main() int n; n=1000; printf("n=%d,f=%d/n",n,fun(n));
问答题函数fun的功能是进行数字字符转换。若形参ch中是数字字符'0'~'9', 则'0'转换成'9','1'转换成'8','2'转换成'7',……,'9'转换成'0';若是其它字符则保持不变;并将转换后的结果作为函数值返回。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
/**********found**********/
___1___ fun(char ch)
{
/**********found**********/
if (ch>='0'
return ch ;
}
main()
{ char c1, c2;
printf("/nThe result :/n");
c1='2'; c2 = fun(c1);
printf("c1=%c c2=%c/n", c1, c2);
c1='8'; c2 = fun(c1);
printf("c1=%c c2=%c/n", c1, c2);
c1='a'; c2 = fun(c1);
printf("c1=%c c2=%c/n", c1, c2);
}
问答题请编写函数fun,其功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串“一1234”,则函数把它转换为整数值一1234。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<string.h>long fun(char*P){}void main(){ char s[6]; long n; printf("Enter a string:\n"); gets(s); n=fun(s); printf("%id\n",n);}
问答题规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了字符串前导的*号之外,将串中其他*号全部删除。在编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为“****A*BC*DEF*G*******”,删除后,字符串中的内容应当是“****ABCDEFG”。
注意
:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<string.h>
#indude<stdio.h>
#indude<conio.h>
void fun(char ,*)
{
}
main()
{char s[81];
printf("Enter a string:/n");
gets(s);
fun(s);
printf("The string after deleted:/n");
puts(s);
}
问答题给定程序MODI1.C中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#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 aafM][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的功能是:将十进制正整数m转换成k(2≤k≤9)进制数,并按位输出。例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件MODI1.C中,不要改动maln函数,不得增行或删行,也不得更改程序的结构! 试题程序:for(i=0;m;i++){/*********found*********/aa[i] =m/k;m/=k;}for (;i;i 一一 )/*********found*********/ printf ("% d",aa[i]) ;}main(){int b,n;printf "/nPlease enter a number and a base:/n") ;scanf "'% d% d", &n, &b) ;fun (n,b) ;printf ("/n ") ;}
问答题下列给定程序中,函数fun的功能是:在带头结点的单向链表中,查找数据域中值为eh的结点。找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch的结点,函数返回0值。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序:#include<stdio.h>#include<stdlib.h>#define N 8typedef struet list int data; struet list*next;}SLIST;SLIST*creatlist(char*);void ouflist(SLIST});int fun(SLIST*h,char ch){ SLIST*P;int n=0; P=h一>next;/******found******/while(P!=__1__){ n++: if(P一>data:=ch)/******found******/ return __2__; else P=P一>next: } return 0;}main()i SLIST$head:int k;char eh; chae:a[N]=;‘m’,‘P’,’g‘,’a’,‘w’; ‘x’.‘r’,‘d’;; head:creatlist(a); outhst(nead); printf(“Enter a letter:”); scanf(“%c,&chj: k:fun(___3___); if (k==0) prinff(“\nNot found!\n”); else onnff(The sequence number is:%d\n”,k):}SLIST*creatlist(char*a){ SLIST*h,*P,*q;int i;h=P=(SLIST*)malloe(sizeof(SLIST));for(i=0;i<N;i++){ q=(SLIST*)malloc(sizeof(SLIST)); q一>data=a[i]; P一>next=q; p=q;}P一>next=0:return h:}void outlist(SLIST*h){SLIST*p;P=h一>next;if(P==NULL) prinff(“\nThe list is NULL!\n”); else { printf(“\nHead”); do { prinff(“一>%c”,P一>data); P=p一>next; }while(P!=NULL); printf(“一>End\n”); }}
问答题函数fun的功能是将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。
例如,当a=45,b=12时,调用该函数后,c=5241。
注意:部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入编写的若干语句。
给定源程序如下。
#include<stdio.h>
void fun(int a,int b,long*c)
{
}
main()
{ int a,b;long c;
printf("Input a b:");
scanf("%d%d",
fun(a,b,
printf("The result is:%ld/n",c);
}
问答题给定程序modil.c的主函数中,将a、b、c三个结点链成一个单向链表,并给各结点的数据域赋值,函数fun()的作用是:累加链表结点数据域中的数据作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>typedef struct list{int data; struct list*next;}LIST;int fun(LIST*h){LIST*p;/*********found*********/ int t; p=h;/*********found*********/ while(*P){/*********found*********/ t=t+P.data; p=(*P).next;}return t;}main(){ LIST a,b,c,*h; a.data=34;b.data=51;c.data=87;c.next='\0'; h=&a;a.next=&b;b.next=&c; printf("总和=%d\n",fun(h));}
问答题请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。 例如,输入beijing<CR>shanghai<CR>(<CR>为回车键),函数将返回shanghai。 注意:部分源程序存在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include <stdio.h>char *fun (char *s, char *t){}main (){ char a[20] ,b[20] ;void NONO () ;printf("Input 1th string:");gets(a) ;printf("Input 2th string:");gets(b);printf("%s/n",fun (a, b) ) ;NONO ();}void NONO (){/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */FILE *fp, *wf ; int i ;char a[20], b[20] ; fp = fopen("in.dat","r"); wf = fopen("out.dat","w"); for(i = 0 ; i < 10 ; i++) { fscanf(fp, "%s %s", a, b); fprintf(wf, "%s/n", fun(a, b)); }fclose(fp); fclose(wf); }
问答题给定程序MODI1.C中函数fun的功能是:按以下递归公式求函数值。例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。#include/************found************/intfun(n){intc;/************found************/if(n=l)c=10;elsec=fun(n-l)+2;return(c);}main(){intn;printf("Entern:");scanf("%d",printf("Theresult:%d/n/n",fun(n));}
问答题填空题
请补充main函数,该函数的功能是:从键盘输入一个长整数,如果这个数是负数,则取它的绝对值,并显示出来。例如,输入:-3847652,结果为:3847652。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
main()
{
long int n;
clrscr();
printf("Enter the data;/n");
scanf(【1】);
printf("*** the absolute value ***/n");
if(n<0)
【2】
printf("/n/n");
printf(【3】);
}
问答题请编写函数fun,其功能是将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。
例如,当a=16,b=35,调用该函数后,c=5361。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
void fun(int a,int b/long*c)
{
}
main()
{
int a,b;
long c;
clrscr();
printf("Input a,b;");
scanf("%d%d",&a,&b);
fun(a,b,&c);
printf("The result is:%ld/n",c);
}
问答题请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。
例如:若输入17,则应输出9和4,6,8,9,10,12,14,15,16。
注意:部分源程序在文件PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
文件PROG1.C内容如下:
#include<stdio.h>
void fun(int m,int *k,int xx[])
{
}
void main{{U}} {{/U}}{
int m,n,zz[100];
printf("/nPlease enter an integer number between 10 and 100:");
scanf("%d",&n);
fun(n,&m,zz);
printf("/nThere are%d non-prime numbers less than%d:/n",m,n);
for(n=0;n<m;n++)printf("%4d",zz[n]);
printf("/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个。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
int fun(int x)
{ int n,s1,s2,s3,t ;
/*********found*********/
n=
【1】
;
t=100;
/*********found*********/
while(t<=
【2】
)
{s1=t%10;s2=(t/10)%10;
s3=t/100;
if(s1+s2+s3==15)
{ printf("%d",t);
n++;
}
/*********found*********/
【3】
;
}
return n;
}
main()
{ int x=-1;
while(x>999‖x<0)
{printf("Please input(0<x<=999):");
scanf("%d",&x);}
printf("\nThe result is:%d\n",fun(x));
}
问答题请编写一个函数int fun (int *s,int t,int *k),用来求出数组的最小元素在数组中的下标并存放在k所指的存储单元中。
例如,输入如下整数:
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]);
}
