1、第五章单选有如下程序,程序运营后输出成果是( )#include #include int main()char a20=”ABCD0EFG0”,b=”IJK”;strcat(a,b); printf(“%sn”,a);return 0;A.ABCDE0FG0IJKB.ABCDIJKC.EFGIJKD.IJK有如下程序,程序运营后输出成果是 ( )#includeint main()char s=012xy08s34f4w2;int i,n=0;for(i=0;si!=0;i+)if(si=0&si=9) n+;printf(%dn,n); return 0;A.7B.0C.8D.3下列选项中
2、,可以满足若字符串s1等于字符串s2,则执行ST规定是 ( )A.if(strcmp(s2,s1)=0)ST;B.if(s1-s2=0)ST;C.if(strcpy(s1,s2)=1)ST;D.if(s1=s2)ST;如下选项中对的语句组是( )A.char s;s=BOOK!;B.char s;s=BOOK!;C.char s10;s=BOOK!;D.char s=BOOK!;如下数组定义中错误是( )A.int x23=1,2,3,4,5,6;B.int x23=1,2,3,4,5,6;C.int x3=0;D.int x3=1,2,3,4,5,6;若有定义语句:int m=5,4,3,2
3、,1,i=4;则下面对m数组元素引用中错误是 ()A.mm0B.m2*2C.m-iD.mmi下列选项中,能正拟定义数组语句是( )A.int num;B.int N=;int numN;C.int num0;D.#define N int numN;有如下程序,程序运营时若输入:how are you?I am fine则输出成果是( )#includeint main()char a30,b30;scanf(%s,a);gets(b);printf(%sn %sn,a,b);return 0; A.how are you?I am fine B.how are you?I am fineC.
4、howare you?I am fineD.how are you?下面是关于C语言字符数组描述,其中错误是( )A.不可以用赋值语句给字符数组名赋字符串B.可以用输入语句把字符串整体输入给字符数组C.字符数组中内容不一定是字符串D.字符数组只能存储字符串有如下程序,程序运营后输出成果是( )#include #include int main()char x=”STRING”;x0=0;x1=0;x2=0;printf(“%d %dn”,sizeof(x),strlen(x);return 0;A.7 0B.6 1C.7 1D.6 3若要定义一种具备5个元素整型数组,如下错误定义语句是( )
5、A.int a5=0;B.int b=0,0,0,0,0;C.int i=5,di;D.int c2+3;有如下程序,程序运营后输出成果是 ( )#include#includeint main() char a510=“china”,”beijing”,”you”,”tiananmen”,”welcome”;int i,j;char t10;for(i=0;i4;i+) for(j=i+1;j0) strcpy(t,ai); strcpy(ai,aj); strcpy(ai,t); puts(a3);return 0;A.chinaB.beijingC.welcomeD.tiananmen程
6、序设计/*编写函数int fun(int lim,int aaMAX),该函数功能是求出不大于或等于lim所有素数并放在aa数组中,该函数返回所求出素数个数。 注意:某些源程序给出如下。 请勿改动main函数和其她函数中任何内容,仅在函数fun花括号中填入所编写若干语句。 试题程序:*/#include#include#define MAX 100int fun(int lim,int aaMAX)/*Begin*/*End*/ int main() FILE *wf; int limit,i,sum; int aaMAX; printf(输入一种整数); scanf(%d,&limit);
7、sum=fun(limit,aa); for(i=0;isum;i+) if(i%10=0&i!=0) /*每行输出10个数*/ printf(n ); printf(%5d ,aai); /*/ wf=fopen(debug2.out,w); sum=fun(15,aa); for(i=0;isum;i+) fprintf(wf,%dn,aai); fclose(wf);/*/return 0;【参照代码】 int i,j,k=0; for(i=2;i=lim;i+) for(j=2;j=i) aak+=i; return k;/*请编写函数fun,函数功能是:求出二维数组周边元素之和,作为
8、函数值返回。二维数组中值在主函数中赋予。 例如,若二维数组中值为 1 3 5 7 9 2 9 9 9 4 6 9 9 9 8 1 3 5 7 0 则函数值为61。 注意:某些源程序给出如下。 请勿改动main函数和其她函数中任何内容,仅在函数fun花括号中填入所编写若干语句。 试题程序:*/#include#include#define M 4#define N 5int fun( int a MN) /*Begin*/ /* End */void main() FILE *wf; int aaMN=1,3,5,7,9,2,9,9,9,4,6,9,9,9,8,1,3,5,7,10; int i
9、,j,y; printf (The original data is :n ); for(i=0;iM;i+) for (j=0;jN;j+) printf(%6d ,aaij); printf(n ); y=fun(aa); printf(nThe sun:%dn ,y); printf(n );/*/ wf=fopen(debugout10.dat,w); fprintf (wf,%d,y); fclose(wf);/*/ 【参照代码】 int i,j,sum=0; for(i=0;iM;i+) for(j=0;jN;j+) if(i=0|i=M-1|j=0|j=N-1) sum=sum+
10、aij;return sum;/*编写一种函数,从传入num个字符中找出最长一种字符串,并通过形参指针max传回该串地址(用*作为结束输入标志)。注意:某些源程序给出如下。请勿改动main函数和其她函数中任何内容,仅在函数fun花括号中填入所编写若干语句。试题程序:*/#include#include#includevoid fun(char a81,int num,char max)/*Begin*/* End */void main() FILE *wf; char ss1081,ps81; char s381=abcd,deg,diegns,p81; int i=0,n; printf(
11、输入若干个字符串:); gets(ssi); puts(ssi); while(!strcmp(ssi,*)=0) /*用4个星号作为结束输入标志*/ i+; gets(ssi); puts(ssi); n=i; fun(ss,n,ps); printf(nmax=%sn,ps);/*/ wf=fopen(debugout15.dat,w); fun(s,3,p); fprintf(wf,%s,p); fclose(wf);/*/【参照代码】int i=0; strcpy(max,a0); /*找出最长一种字符串*/ for(i=0;inum;i+) if(strlen(max)strlen(
12、ai) strcpy(max,ai);/*请编写一种函数fun,它功能是:求出1到m(含m)之内能被7或11整除所有整数放在数组a中,通过n返回这些数个数。 例如,若传给m值为50,则程序输出:7 11 14 21 22 28 33 35 42 44 49 注意:某些源程序给出如下。 请勿改动main函数和其她函数中任何内容,仅在函数fun花括号中填入所编写若干语句。 试题程序:*/#include#include#define M 100int fun(int m,int a) /*Begin*/ /* End */void main() FILE *wf; int aaM,n,k; n=f
13、un(50,aa); for(k=0;kn;k+) if(k+1)%20=0) /*每行输出20个数*/ printf(%4d,aak); printf(n); else printf(%4d,aak); printf(n);/*/ wf=fopen(debugout4.dat,w); for(k=0;kn;k+) fprintf(wf,%dn,aak); fclose(wf);/*/【参照代码】 int i,j=0; for(i=1;i=m;i+) if(i%7=0|i%11=0) aj+=i; return j; /*返回这些数个数*/ /*请编写一种函数fun,它功能是:将一种数字字符串
14、转换为一种整数(不得调用C语言提供将字符串转为整数函数)。例如,若输入字符串-1234,则函数把它转换为整数值-1234。注意:某些源程序给出如下。请勿改动main函数和其她函数中任何内容,仅在函数fun花括号中填入所编写若干语句。试题程序:*/#include #include long fun(char p) /*Begin*/ /* End */void main() FILE *wf; char s6; long n; printf(Enter a string:n); gets(s); n=fun(s); printf(%ldn,n);/*/ wf=fopen(debugout13.
15、dat,w); fprintf (wf,%ld,fun(-1234); fclose(wf);/*/【参照代码】long n=0,i=0; int flag=1; if(pi=-) /*负数时置flag为-1*/ i+;flag= -1; else if(pi=+) /*正数时置flag为1*/ i+; while(pi!=0) n=n*10+pi-0;/*将字符串转成相应整数*/ i+; return n*flag;/*请编写一种函数void fun(char ss),其功能是:将字符串ss中所有下标为奇数位置上字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入abc4EFg,则应
16、输出aBc4EFg。 注意:某些源程序给出如下。请勿改动main函数和其她函数中任何内容,仅在函数fun花括号中填入所编写若干语句。试题程序:*/#include #include void fun ( char ss) /*Begin*/ /* End */void main()char tt100;FILE *out,*in;printf(Please enter an character string within 50 characters:n);gets(tt);printf(nnAfter changing,the stringn%s,tt);fun(tt);printf(nbec
17、omesn %s,tt);/*/in=fopen(in.dat,r);out=fopen(debugout14.dat,w);fgets(tt,16,in);strcat(tt,After changing the string);fun(tt);fprintf(out,%s,tt);fclose(in);fclose(out);/*/【参照代码】 int i,n=0; while(ssi) n+; i+; for(i=0;i=a&ssi=z)&i%2!=0) /*将下标为奇数位置字母转换成大写*/ ssi=ssi-32; ssi=0;/*编写一种函数fun,它功能是:实现两个字符串连接(不使
18、用库函数strcat),即把p2所指字符串连接到p1所指字符串后。例如,分别输入下面两个字符串:FirstString SecondString 则程序输出:FirstStringSecondString注意:某些源程序给出如下。请勿改动main函数和其她函数中任何内容,仅在函数fun花括号中填入所编写若干语句。 试题程序:*/#include#includevoid fun(char p1,char p2) /*Begin*/ /* End */void main() FILE *wf,*in; char s180,s240; char p180=FirstString,p240=Secon
19、dString; printf(Enter s1 and s2:n) ; scanf(%s%s,s1,s2); printf(s1=%sn,s1); printf(s2=%sn,s2); printf(Invoke fun(s1,s2):n); fun(s1,s2); printf(After invoking:n); printf(%sn,s1);/*/ in=fopen(in.dat,r); wf=fopen(debugout16.dat,w); fscanf(in,%s %s,p1,p2); fun(p1,p2); fprintf(wf,%s,p1); fclose(in); fclos
20、e(wf);/*/【参照代码】 int i,j; for(i=0;p1i!=0;i+); for(j=0;p2j!= 0;j+) p1i+=p2j; p1i= 0;/*请编写函数fun,其功能是:将所有不不大于1不大于整数m非素数存入xx所指数组中,非素数个数通过k传回。 例如,输入17,则应输出4 6 8 9 10 12 14 15 16。注意:某些源程序给出如下。请勿改动main函数和其她函数中任何内容,仅在函数fun花括号中填入所编写若干语句。试题程序:*/#include#includeint fun(int m,int xx) /*Begin*/ /* End */void main
21、() FILE *wf; int m,n,zz100; printf(nPlease enter an integer number between 10 and 100:); scanf(%d,&n); m=fun(n,zz); printf(nnThere are %d non-prime numbers less than %d:,m,n); for(n=0;nm;n+) printf(n %4d,zzn);/*/ wf=fopen(debugout7.dat,w); m=fun(30,zz); for(n=0;nm;n+) fprintf(wf,%dn,zzn); fclose(wf)
22、;/*/【参照代码】int i,j,n=0; for(i=4;im;i+) /*找出不不大于1不大于整数m非素数*/ for(j=2;ji;j+) if(i%j=0) break; if(ji)xxn+=i; return n; /*返回非素数个数*/ /*请编写一种函数 void fun(char tt,int pp),记录在tt字符串中a到z26个字母各自浮现次数,并依次放在pp所指数组中。例如,当输入字符串abcdefghabcdeabc后,程序输出成果应当是:3 3 3 2 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 注意:某些源程序给出
23、如下。 请勿改动main函数和其她函数中任何内容,仅在函数fun花括号中填入所编写若干语句。试题程序:*/#include #include void fun(char tt,int pp ) /*Begin*/ /* End */void main( ) FILE *wf; char aa1000; int bb26,k; system(CLS); printf(nPlease enter a char string :) ; scanf(%s,aa); fun(aa,bb); for (k=0 ;k26 ;k+) printf(%dn,bbk) ;/*/ wf=fopen(debugout
24、2.dat,w); fun (abcdefgabcdeabc,bb) ; for (k=0 ;k26 ;k+) fprintf(wf,%dn,bbk) ; fclose(wf);/*/【参照代码】 int i; for(i=0;i=a&tti=z) pptti-a+; 程序改错/*下列给定程序中,函数fun功能是:删除字符串s中所有空白字符(涉及Tab符、回车符及换行符)。输入字符串时用#结束输入。 请改正程序中错误,使它能得出对的成果。 注意:不要改动main函数,不得增行或删行,也不得更改程序构造。 试题程序:*/#include #include #include fun(char *p
25、) int i,t;char c80; for(i=0,t=0;pi;i+) if(!isspace(*(p+i) ct+=pi;/*ERROR*/ ct=0; strcpy(p,c);void main()char c,s80; int i=0; printf(Input a string:); c=getchar(); while(c!=#) si=c;i+;c=getchar(); si=0; fun(s); puts(s);【参照答案】ct=0;ct=0;/*下列给定程序中,函数fun功能是:求出数组中最大数和次最大数,并把最大数和a0中数对调、次最大数和 a1 中数对调。 请改正程序
26、中错误,使它能得出对的成果。 注意:不要改动main函数,不得增行或删行,也不得更改程序构造。 试题程序:*/#include#define N 20/*ERROR*/void fun(int a,int n); int i, m,t,k; for(i=0;in;i+) /*ERROR*/ m=0; for(k=i+1;kam) m=k; t=ai; ai=am; am=t; void main() int bN=11,5,12,0,3,6,9,7,10,8,n=10,i; for(i=0;in;i+) printf(%d ,bi); printf(n); fun(b,n); for(i=0;
27、in;i+) printf(%d ,bi); printf(n);【参照答案】void fun(int a,int n)【参照答案】m=i;/*下列给定程序中,函数fun功能是:先从键盘上输入一种3行、3列矩阵各个元素值,然后输出主对角线元素之和。请改正函数fun中错误,使它能得出对的成果。注意:不要改动main函数,不得增行或删行,也不得更改程序构造。试题程序:*/#include void fun() int a33,sum; int i,j;/*ERROR*/ sum=1; for (i=0;i3;i+) for (j=0;j3;j+)/*ERROR*/ scanf(%d,aij); f
28、or(i=0;i3;i+) sum=sum+aii; printf(Sum=%dn,sum);void main()fun();【参照答案】sum=0;【参照答案】scanf(%d,&aij);请改正程序中错误,使它能得出对的成果。注意:不要改动main函数,不得增行或删行,也不得更改程序构造。试题程序:*/#include double fun(int x)/*ERROR*/ int sum=0.0; int c=0,I=0; while(xI!=0) if(xI0) sum+=xI; c+; I+; /*ERROR*/ sum=sumc; return sum;void main() in
29、t x1000; int i=0; printf(nPlease enter some data(end with 0) :); do scanf(%d,&xi); while(xi+!=0); printf(%fn,fun(x);【参照答案】double sum=0;double sum=0.0;float sum=0;float sum=0.0;【参照答案】sum=sum/c;sum/=c;程序填空/*请补充函数fun,该函数功能是:求一维数组xN平均值,并对所得成果进行四舍五入(保存两位小数)。例如,当x10=15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0
30、,10.0,16.0,成果为:avg=15.030000。注意:某些源程序给出如下。请勿改动main函数和其她函数中任何内容,仅在函数fun横线上填入所编写若干表达式或语句。试题程序:*/#include #include double fun(double x10) int i; long t; double avg=0.0; double sum=0.0; for(i=0;i10;i+)/*FILL*/ 1 ; avg=sum/10;/*FILL*/ avg= 2 ;/*FILL*/ t= 3 ; avg=(double)t/100; return avg;void main() doub
31、le avg,x10=15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0; int i; printf(nThe original data is :n); for(i=0;i10;i+)printf(%6.1f,xi); printf(nn); avg=fun(x); printf(average=%fnn,avg);【参照答案】sum+=xi;sum=sum+xi;【参照答案】avg*1000;1000*avg;【参照答案】(avg+5)/10 ;(5+avg)/10;/*请补充函数fun,该函数功能是:整除x且是偶数数,把这些数保存在数组b
32、b中,并按从大到小顺序输出。例如当x=20时,依次输出:20 10 4 2。注意:某些源程序给出如下。 请勿改动main函数和其她函数中任何内容,仅在函数fun横线上填入所编写若干表达式或语句。试题程序:*/#include void fun(int k,int bb) int i; int j=0;/*FILL*/ for( 1 ;i=0;i-)printf(%d ,bbi);int main() int k=1; int bb100; printf(nPlease input X=); scanf(%d,&k); fun(k,bb); return 0;【参照答案】k%i=0&i%2=0i%2=0&k%i=0(k%i=0)&(i%2=0)(i%2=0)&(k%i=0)【参照答案】-jj-1/*请补充函数fun,该函数功能是:整除x且是偶数数,把这些数保存在数组bb中,并按从大到小顺序输出。例如当x=20时,依次输出:20 10 4 2。注意:某些源程序给出如下。请勿改动main函数和其她函数中任何内容,仅在函数fun横线上填入所编写若干表达式或语句。