填空题给定程序中函数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的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否是“幻方”,若是,则函数返回值为1;若不是,则函数返回值为0。“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。 例如,以下3×3的矩阵就是一个“幻方”: 4 9 2 3 5 7 8 1 6 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #include<stdio.h> #defineN 3 int fun(int(*a)[N]) int i,j,m 1,m2,row,eolum; m1=m2=0; for(i=0;i<N;i++) j==N-i-1;m1+=a[i][i]; m2+=a[i][j]; if(m1!=m2)return 0; for(i=0;i<N;i++) /**********found************/ row=colum=______; for(j=0;j<N;j++) (row+=a[i][j];colum+=a[j][i]; /************found**************/ if((row!=colum)______(row!=m1))return0; /***************found**********/ return______; main() int x[N][N],i,j; printf("Enter number for array:/n"); for(i=0;i<N;i++) for(j=0;j<N;j++) scanf("%d"&x[i][j]); printf("Array:/n"); for(i=0;i<N;i++) for(j=0;j<N;j++) printf("%3d",x[i][j]); printf("/n"); if(fun(x))printf("The Array is a magic square./n"); else printf("The Array isn't a magic square./n");
填空题函数sstrcmp()的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。请填空。
#include <stdio.h>
int sstrcmp(char *s,char *t)
{
while(*s t++;}
rerurn {{U}}【16】 {{/U}};
}
填空题请补充函数fun(),函数fun()的功能是求7的阶乘。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
long fun(int n)
{
if({{U}} 【1】 {{/U}})
return(n*fun({{U}} 【2】 {{/U}});
else if({{U}} 【3】 {{/U}})
return 1;
}
main()
{
int k=7;
printf("%d!=%ld/n", k, fun(k));
}
填空题在Windows环境下,可以将窗口最小化为 【5】 。
填空题下列程序中函数fun的功能是:统计person所指结构体数组中所有性别(sex)为M的记录的个数,存入变量n中,并作为函数值返回。请填空。
#include <stdio.h>
#define N 3
typedef struct
{ int num; char nam[10]; char sex;} SS;
int fun(SS person[])
{ int i,n=0;
for(i=0; i<N; i++)
if({{U}} 【14】 {{/U}}=='M') n++;
return n;
}
main()
{ SS W[N]={{1,"AA",'F'},{2,"BB",'M'},{3,"CC",'M'}}; int n;
n=fun(W); printf("n=%d/n", n);
}
填空题下列程序运行时,若输入1abcedf2df<回车>,则输出结果为______。 #include<stdio.h> main() char a=0, ch; while((ch=getchar())!='/n') if(a%2!=0 a++; putchar(ch); printf("/n");
填空题下面程序功能是求两个浮点数的和,请把程序补充完整。
#include<stdio.h>
void add(double x, double y, double*p)
{
______=x+y;
}
int main()
{
double a=55.44, b=44.55;
double k;
add(a, b, ______);
printf("%.2lf/n", k);
return 0;
}
填空题给定程序中,函数fun的功能是:将自然数1~10以及它们的平方根写到文本文件中,然后再顺序读出显示在屏幕上。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
#include<math.h>
#include<stdio.h>
int fun(char*fname)
{FILE*fp;int i,n;float x;
if((fp=fopen(fname,"w"))==NULL)return 0;
for(i=1;i<=10;i++)
/**********found**********/
fprintf(______,"%d%f/n",i,sqrt((double)i));
printf("/nSucceed!!/n");
/**********found**********/
______;
printf("/nThe data in file:/n");
/**********found**********/
if((fp=fopen(______,"r"))==NULL)
return 0;
fscanf(fp,"%d%f",
while(!feof(fp))
{printf("%d %f/n",n,x);fscanf(fp,"%d%f",
}
fclose(fp);
return 1;
}
main()
{char fname[]="myfile3.txt";
fun(fname);
}
填空题若想通过以下输入语句给a赋值1,给b赋值2.则输入数据的形式应该是{{U}} 【15】 {{/U}}。
int a,b;
scanf("a=%d,b=%d",&a,&b) ;
填空题若有下列定义和语句:
char*s1="12345",*s2="1234";
printf("%d/n",strlen(strcpy(s1,s2)));
则输出结果为______。
填空题下列给定程序中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。
字符串的长度最长允许为79。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<string.h>
void fun(char s[],int n)
{
char a[80],*p;
int i;
/*********found*********/
s=p;
for(i=0;i<n;i++)a[i]="*";
do
{a[i]=*p;
i++;
}
/*********found*********/
while(*p++)
a[i]=0;
strcpy(s,a);
}
main()
{int n;char s[80];
printf("/nEnter a string:");
gets(s);
printf("/nThe string"%s"/n",s);
printf("/nEnter n(number of*):");
scanf("%d",
fun(s,n);
printf("/nThe string after insert:"%s"/n",s);
}
填空题有以下程序,若运行时从键盘输入:18,11<回车>,则程序的输出结果是______。main () int a, b; printf("Enter a, b:"); scanf("%d, %d", while(a!=b) while(a>b)a-=b; while(b>a)b-=a; printf("%3d%3d/n",a,b);
填空题以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。
main( )
{ int i,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++= scanf("%d",【 】);
fro(i=0;i<20;i++=
{ if(a>0)
{ count++;
sum+=【 】;
}
}
printf("sum=%d,count=%d\n",sum,count);
=
填空题给定程序中,函数fun的功能是计算下式直到,并把计算结果作为函数值返回。例如:若形参e的值为1e-3,函数的返回值为0.551690。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。不得增行或删行,也不得更改程序的结构!给定源程序:#include<stdio.h>doublefun(doublee){inti,k;doubles,t,x;s=0;k=1;i=2;/**********found**********/x=________/4;/**********found**********/while(x________e){s=s+k*x;k=k*(-1);t=2*i;/**********found**********/x=________/(t*t);i++;}returns;}main(){doublee=1e-3;printf("/nTheresultis:%f/n",fun(e));}
填空题请补充函数proc(),该函数的功能是把数组arr中的奇数元素按原来的先后顺序放在原数组后面。 例如,原始数组为33 67 42 58 25 76 85 16 41 55,则输出结果为42 58 76 16 33 67 25 85 41 55。 注意:部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容。 试题程序: #include<stdlib.h> #include<stdio.h> #define M 10 void proc(int arr[]) int i, j=0, k=0; int bb[M]; for(i=0; i<M; i++) if( (1) ) bb[k++]=arr[i]; else arr[j++]=arr[i]; for(i=0; i<k; (2) ) arr[j]=bb[i]; void main() int i; int arr[M]=33, 67, 42, 58。25, 76, 85, 16, 41, 55; system("CLS"); printf("/n***original list***/n"); for(i=0; i<M; i++) printf("%4d", arr[i]); proc(arr); printf("/n***new list***/n"); for(i=0; i<M; i++) printf("%4d", arr[i]);
填空题以下程序中给指针p分配3个double型动态内存单元,请填空。 # include<stdllb. h> main() double * p; p=(double*)malloc({{U}} {{/U}}); p[0]=1.5; p[1]=2.5; p[2]=3.5 printf("% f % f % f//n",p[0],p[1], p[2]);
填空题下列程序运行时,若输入labcedf2df<回车>输出结果为{{U}} 【10】 {{/U}}。
#include<stdio.h>
main()
{ char a=0,ch;
while((ch==getchar())!='/n')
{ if(a%2!=0
a++;prtchar(ch);
}
printf("/n");
}
填空题以下程序运行后的输出结果是 【11】 。 main() int i,n[]=0,0,0,0,0; for(i=1;i<=4;i++) n[i]=n[i-1]*2+1; printf("%",n[i]);
填空题以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。请填空。 strcen(char a[],char b[]) int num=0,n=0; while(*(a+num)! = 【15】 )num++; while(b[n])*(a+num)=b[n];num++; 【16】 ; return(num);
