填空题给定程序中,函数fun的功能是:找出形参s所指字符串中出现频率最高的字母(不区分大小写),并统计出其出现的次数。
例如,形参s所指的字符串为:abcAbsmaxless,程序执行后的输出结果为:
letter"a":3times
letter"s":3times
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<string.h>
#include<ctype.h>
void fun(char * s)
{int k[26]={0},n,i,max=0;
char ch;
while(*s)
{if(isalpha(*s)){
/*********found*********/
ch=tolower(______);
n=ch-"a";
/*********found*********/
k[n]+=______;
}
s++;
/*********found*********/
if(max<k[n])max=______;
}
printf("/nAfter count:/n");
for(i=0;i<26;i++)
if(k[i]==max)
printf("/nletter"%c":%d times/n",i+"a",k[i]);
}
main()
{char s[81];
printf("/nEnter a string:/n/n");
gets(s);
fun(s);
}
填空题有下列程序:
#include<stdio.h>
main()
{ char c;
while((c=getchar())!=',')putchar(++c);
}
程序运行时,如果从键盘输入:A,B,<CR>,则输出结果为______。
填空题以下程序的定义语句中,x[1]的初值是______,程序运行后输出的内容是______。 #include <stdio.h> main() int x[]=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,*p[4],i; for(i=0;i<4;i++) p[i]= printf("/n");
填空题下列程序的运行结果为{{U}} 【14】 {{/U}}。
#include<stdio.h>
#include<string.h>
{ int a; char b[10]; double c; };
void f (struct A *t);
main()
{ struct A a={1001,"ZhangDa",1098.0};
f( printf("%d,%s,%6.lf/n",a.a,a.b,a.C);
}
void f(struct A*t)
{ strcpy(t->b, "ChangRong");}
填空题假设在当前盘的当前目录下有两个文件A.TXT和B.TXT,现在要将文件B.TXT合并连接到文件A.TXT的后面。若使用COPY命令,则完整的命令为【 】。
填空题请补充main()函数,该函数的功能是:把文本文件text2中的内容追加到文本文件text1的内容之后。
例如,文件text2的内容为“I"m very happy!”,文件text1的内容为“I"m a girl,”,追加之后文件text1的内容为“I"m a girl, I"m very happy”。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数main()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#define M 80
void main()
{
FILE*fp, *fp1, *fp2;
int i;
char c[M], ch;
system("CLS");
if((fp=fopen("text1.dat", "r"))==NULL)
{
printf("file text1 cannot be opened/n");
exit(0);
}
printf("/n text1 contents are: /n/n");
for(i=0; (ch=fgetc(fp))!=EOF; i++)
{
c[i]=ch;
putchar(c[i]);
}
fclose(fp);
if((fp=fopen("text2.dat", "r"))==NULL)
{
printf("file text2 cannot be opened/n");
exit(0);
}
printf("/n/n/nB contents are: /n/n");
for(i=0; (ch=fgetc(fp))!=EOF; i++)
{
d[i]=ch;
putchar(c[i]);
}
fclose(fp);
if((fp1=fopen("text1.dat", "a")) ______ (fp2=fopen("text2.dat", "r")))
{
while((ch=fgetc(fp2))!=EOF)
______;
}
else
{
printf("Can not open text1 text2!/n");
}
fclose(fp2);
fclose(fp1);
printf("/n***new text1 contents***/n/n");
if((fp=fopen("text1.dat", "r"))==NULL)
{
printf("file text1 cannot be opened/n"):
exit(0);
}
for(i=0; (ch=fgetc(fp))!=EOF; i++)
{
c[i]=ch;
putchar(c[i]);
}
______;
}
填空题以下程序的输出结果是______。 #include<stdio.h> int fun(int x) static int t=0; return(t+=x); main( ) int s,i; for(i=1;i<=5;i++) s=fun(i); prinff("%d/n",s);
填空题给定程序中,函数fun的功能是:将a所指3×5矩阵中第k列的元素左移到第0列,第k列以后的每列元素依次左移,原来左边的各列依次绕到右边。
例如,有下列矩阵:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
若k为2,程序执行结果为
3 4 5 1 2
3 4 5 1 2
3 4 5 1 2
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序如下。
#include<stdio.h>
#define M 3
#define N 5
void fun(int(*a)[N],int k)
{ int i,j,p,temp;
/*********found********/
for(p=1;p<=______;p++)
for(i=0;i<M;i++)
{ temp=a[i][0];
/***********found*********/
for(j=0;j<______;j++)
a[i][j]=a[i][j+1];
/********found***********/
a[i][N-1]=______;
}
}
main()
{ int x[M][N]={ {1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}},i,j;
printf("The array before moving:/n/n");
for(i=0;i<M;i++)
( for(j=0;j<N;j++)printf("%3d",x[i][j]);
printf("/n");
}
fun(x,2);
printf("The array after moving:/n/n");
for(i=0;i<M;i++)
{ for(j=0;j<N;j++)printf("%3d",x[i][j]);
printf("/n");
}
}
填空题请补充fun()函数,该函数的功能是求m的阶乘。不要改动主函数main()与他函数中的任何内容,仅在fun()函数的横线上填写所需的若干表达式或语句。 注意:部分源程序如下。 #include<stdio.h> long fun(int m) if (1) return(m*fun (2) ); return (3) ; main() printf("8!=%ld/n",fun(8));
填空题以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如,str所指字符串为Hello!,c中的字符为e,则函数返回字符串为ello!的首地址。若str所指字符串为空串或不包含c中的字符,则函数返回NULL。请填空。 char*fun(char*str,char c) int n=0;char*p=str; if(P!=NULL) while(p[n]!=c&&p[n]!='/0')n++; if(p[n]=='/0')return NULL; return______;
填空题若fp已下确定义为一个文件指针,d1.dat 为二进制文件,请填空,以便为“读”而打开此文件:fp= fopen({{U}} 【20】 {{/U}});。
填空题给定程序中,函数fun的功能是:用函数指针指向要调用的函数,并进行调用。规定在______处使f指向函数f1,在______处使f指向函数f2。当调用正确时,程序输出:
x1=5.000000,x2=3.000000,x1*x1+x1*x2=40.000000。
注意:不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
double f1(double x)
{return x*x;}
double f2(double x,double y)
{return x*y;}
double fun(double a,double b)
{
/*********found*********/
______(*f)();
double r1,r2;
/*********found*********/
f=______;
r1=f(a);
/*********found*********/
f=______;
r2=(*f)(a,b);
return r1+r2;
}
main()
{double x1=5,x2=3,r;
r=fun(x1,x2);
printf("/nx1=%f,x2=%f,
x1*x1+x1*x2=%f/n",x1,x2,r);
}
填空题现有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下:
#include<stdio.h>
#include"myfun.c"
maim()
{fun();printf("/n");}
myfun.c文件如下:
void fun()
{char s[80],c;int n=0;
while((c=getchar())!='/n')s[n++]=c;
n--;
while(n>=0)printf("%c",s[n--]);
当编译连接通过后,运行程序T18时,输入Thank!,则输出结果是_______。
填空题下面程序的输出是 【9】 。 main() enum ernem1=3,em2=1,em3; char *aa[]="AA","BB","CC","DD"; printf("%s%s%s/n",aa[em1],aa[em2],aa[em3]);
填空题以下程序的输出结果是{{U}} {{U}} {{/U}} {{/U}}。
main()
{ char *p[]={"BOOL","OPK","H","SP"};
int i;
for(i=3, i>=0; i--,i--)printf("%c",*p[i]);
printf("/n");
}
填空题假设在当前盘的当前目录下有两个文件A.TXT和B.TXT,现在要将文件B.TXT合并连接到文件A.TXT的后面。若使用COPY命令,则完整的命令为{{U}} 【2】 {{/U}}。
填空题四条语句:x++;、++x;、x=x+1;、x=1+x;,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同){{U}} {{U}} {{/U}} {{/U}}。
填空题以下fun函数的功能是在N行M列的整型二维数组中,选出一个最大值作为函数值返回,请填空。(设M,N已定义)
int fun(int a[N][M])
{int i,j,row=0,co1=0;
for(i=0;i<N;i++)
for(i=0;j<M;j++)
if(a[i][j]>a[row][co1]){row=i;co1=j;}
return {{U}}(12) {{/U}};
}
填空题下列给定程序中,函数fun()的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。例如,当a所指字符串中的内容为abcdefg,b所指字符串中的内容为1234时,c所指数组中的内容应该为a4b3c2dlefg;而当a所指字符串中的内容为1234,b所指字符串中的内容为abcdefg时,c所指数组中的内容应改为1g2f3e4dcba。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序
#include <conio.h>
#include <stdio.h>
#include <string.h>
void fun(char *a, char *b, char *c)
{
int i, j; char ch;
i=0; j=strlen(b)-1;
/*************found**************/
while (i>j}
{ch=bill; b[i]=b[j]; b[j]=ch;
i++; j--;
}
while (*a||*b)
{ if (*a){*c=*a; c++; a++;}
if(*b){*c=*b; c++; b++;}
}
/*************found**************/
*c=0 ;
}
main ()
{
char s1[100],s2[100],t[200];
clrscr();
printf("/nEnter s1 string: ");
scanf ("%s", s1);
printf("/nEnter s2 string: ");
scanf ("%s", s2);
fun(s1,s2,t);
printf("/nThe result is :%s/n",t);
}
填空题设一棵二叉树的中序遍历结果为ABCDEFG,前序遍历结果为DBACFEG,则后序遍历结果为 【1】 。
