C语言上机题库百科园第5章南信大.docx
- 文档编号:25460002
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:41
- 大小:67.10KB
C语言上机题库百科园第5章南信大.docx
《C语言上机题库百科园第5章南信大.docx》由会员分享,可在线阅读,更多相关《C语言上机题库百科园第5章南信大.docx(41页珍藏版)》请在冰豆网上搜索。
C语言上机题库百科园第5章南信大
C语言上机题库百科园第5章!
南信大!
第五章
单选
有以下程序,程序运行后的输出结果是()
#include
#include
intmain()
{
chara[20]=”ABCD\0EFG\0”,b[]=”IJK”;
strcat(a,b);printf(“%s\n”,a);
return0;
}
A.ABCDE\0FG\0IJK
B.ABCDIJK
C.EFGIJK
D.IJK
有以下程序,程序运行后的输出结果是()
#include
intmain()
{chars[]="012xy\08s34f4w2";
inti,n=0;
for(i=0;s[i]!
=0;i++)
if(s[i]>='0'&&s[i]<='9')n++;
printf("%d\n",n);
return0;
}
A.7
B.0
C.8
D.3
下列选项中,能够满足"若字符串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.chars;s={"BOOK!
"};
B.chars[];s="BOOK!
";
C.chars[10];s="BOOK!
";
程序设计
/*编写函数intfun(intlim,intaa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,
该函数返回所求出的素数的个数。
注意:
部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
*/
#include
#include
#defineMAX100
intfun(intlim,intaa[MAX])
{
/**********Begin**********/
/**********End**********/
}
intmain()
{
FILE*wf;
intlimit,i,sum;
intaa[MAX];
printf("输入一个整数");
scanf("%d",&limit);
sum=fun(limit,aa);
for(i=0;i { if(i%10==0&&i! =0)/*每行输出10个数*/ printf("\n"); printf("%5d",aa[i]); } /******************************/ wf=fopen("debug\\2.out","w"); sum=fun(15,aa); for(i=0;i fprintf(wf,"%d\n",aa[i]); fclose(wf); /*****************************/ return0; } 【参考代码】 inti,j,k=0; for(i=2;i<=lim;i++) { for(j=2;j if(i%j==0)break; if(j>=i) aa[k++]=i; } returnk; /*请编写函数fun,函数的功能是: 求出二维数组周边元素之和,作为函数值返回。 二维数组中的值在主函数中赋予。 例如,若二维数组中的值为 13579 29994 69998 13570 则函数值为61。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include #include #defineM4 #defineN5 intfun(inta[M][N]) { /***************Begin************/ /***************End************/ } voidmain() { FILE*wf; intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,10}}; inti,j,y; printf("Theoriginaldatais: \n"); for(i=0;i {for(j=0;j printf("%6d",aa[i][j]); printf("\n"); } y=fun(aa); printf("\nThesun: %d\n",y); printf("\n"); /******************************/ wf=fopen("debug\\out10.dat","w"); fprintf(wf,"%d",y); fclose(wf); /*****************************/ } 【参考代码】 inti,j,sum=0; for(i=0;i for(j=0;j if(i==0||i==M-1||j==0||j==N-1) sum=sum+a[i][j]; returnsum; /*编写一个函数,从传入的num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include #include #include voidfun(chara[][81],intnum,charmax[]) { /***************Begin************/ /***************End************/ } voidmain() { FILE*wf; charss[10][81],ps[81]; chars[3][81]={"abcd","deg","diegns"},p[81]; inti=0,n; printf("输入若干个字符串: "); gets(ss[i]); puts(ss[i]); while(! strcmp(ss[i],"****")==0)/*用4个星号作为结束输入的标志*/ { i++; gets(ss[i]); puts(ss[i]); } n=i; fun(ss,n,ps); printf("\nmax=%s\n",ps); /******************************/ wf=fopen("debug\\out15.dat","w"); fun(s,3,p); fprintf(wf,"%s",p); fclose(wf); /*****************************/ } 【参考代码】 inti=0; strcpy(max,a[0]); /*找出最长的一个字符串*/ for(i=0;i if(strlen(max) strcpy(max,a[i]); /*请编写一个函数fun,它的功能是: 求出1到m(含m)之内能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。 例如,若传给m的值为50,则程序输出: 711142122283335424449 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include #include #defineM100 intfun(intm,inta[]) { /***************Begin************/ /***************End************/ } voidmain() { FILE*wf; intaa[M],n,k; n=fun(50,aa); for(k=0;k if((k+1)%20==0)/*每行输出20个数*/ {printf("%4d",aa[k]); printf("\n"); } else printf("%4d",aa[k]); printf("\n"); /******************************/ wf=fopen("debug\\out4.dat","w"); for(k=0;k fprintf(wf,"%d\n",aa[k]); fclose(wf); /*****************************/ } 【参考代码】 inti,j=0; for(i=1;i<=m;i++) if(i%7==0||i%11==0) a[j++]=i; returnj;/*返回这些数的个数*/ /*请编写一个函数fun,它的功能是: 将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。 例如,若输入字符串"-1234",则函数把它转换为整数值-1234。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include #include longfun(charp[]) { /***************Begin************/ /***************End************/ } voidmain() { FILE*wf; chars[6]; longn; printf("Enterastring: \n"); gets(s); n=fun(s); printf("%ld\n",n); /******************************/ wf=fopen("debug\\out13.dat","w"); fprintf(wf,"%ld",fun("-1234")); fclose(wf); /*****************************/ } 【参考代码】 longn=0,i=0; intflag=1; if(p[i]=='-')/*负数时置flag为-1*/ {i++;flag=-1;} elseif(p[i]=='+')/*正数时置flag为1*/ i++; while(p[i]! ='\0') {n=n*10+p[i]-'0';/*将字符串转成相应的整数*/ i++; } returnn*flag; /*请编写一个函数voidfun(charss[]),其功能是: 将字符串ss中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。 例如,若输入abc4EFg,则应输出aBc4EFg。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include #include voidfun(charss[]) { /***************Begin************/ /***************End************/ } voidmain() { chartt[100]; FILE*out,*in; printf("Pleaseenterancharacterstringwithin50characters: \n"); gets(tt); printf("\n\nAfterchanging,thestring\n%s",tt); fun(tt); printf("\nbecomes\n%s",tt); /******************************/ in=fopen("in.dat","r"); out=fopen("debug\\out14.dat","w"); fgets(tt,16,in); strcat(tt,"Afterchangingthestring"); fun(tt); fprintf(out,"%s",tt); fclose(in); fclose(out); /******************************/ } 【参考代码】 inti,n=0; while(ss[i]) { n++; i++; } for(i=0;i if((ss[i]>='a'&&ss[i]<='z')&&i%2! =0) /*将下标为奇数位置的字母转换成大写*/ ss[i]=ss[i]-32; ss[i]='\0'; /*编写一个函数fun,它的功能是: 实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。 例如,分别输入下面两个字符串: FirstString SecondString 则程序输出: FirstStringSecondString 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include #include voidfun(charp1[],charp2[]) { /***************Begin************/ /***************End************/ } voidmain() { FILE*wf,*in; chars1[80],s2[40]; charp1[80]="FirstString",p2[40]="SecondString"; printf("Enters1ands2: \n"); scanf("%s%s",s1,s2); printf("s1=%s\n",s1); printf("s2=%s\n",s2); printf("Invokefun(s1,s2): \n"); fun(s1,s2); printf("Afterinvoking: \n"); printf("%s\n",s1); /******************************/ in=fopen("in.dat","r"); wf=fopen("debug\\out16.dat","w"); fscanf(in,"%s%s",p1,p2); fun(p1,p2); fprintf(wf,"%s",p1); fclose(in); fclose(wf); /*****************************/ } 【参考代码】 inti,j; for(i=0;p1[i]! ='\0';i++); for(j=0;p2[j]! ='\0';j++) p1[i++]=p2[j]; p1[i]='\0'; /*请编写函数fun,其功能是: 将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k传回。 例如,输入17,则应输出46891012141516。 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include #include intfun(intm,intxx[]) { /***************Begin************/ /***************End************/ } voidmain() { FILE*wf; intm,n,zz[100]; printf("\nPleaseenteranintegernumberbetween10and100: "); scanf("%d",&n); m=fun(n,zz); printf("\n\nThereare%dnon-primenumberslessthan%d: ",m,n); for(n=0;n printf("\n%4d",zz[n]); /******************************/ wf=fopen("debug\\out7.dat","w"); m=fun(30,zz); for(n=0;n fprintf(wf,"%d\n",zz[n]); fclose(wf); /*****************************/ } 【参考代码】 inti,j,n=0; for(i=4;i /*找出大于1小于整数m的非素数*/ {for(j=2;j if(i%j==0)break; if(j } returnn;/*返回非素数的个数*/ /*请编写一个函数voidfun(chartt[],intpp[]),统计在tt字符串中"a"到"z"26个字母各自出现的次数, 并依次放在pp所指数组中。 例如,当输入字符串abcdefghabcdeabc后, 程序的输出结果应该是: 333221110000000000000000000 注意: 部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: */ #include #include voidfun(chartt[],intpp[]) { /***************Begin************/ /***************End************/ } voidmain() { FILE*wf; charaa[1000]; intbb[26],k; system("CLS"); printf("\nPleaseenteracharstring: "); scanf("%s",aa); fun(aa,bb); for(k=0;k<26;k++) printf("%d\n",bb[k]); /******************************/ wf=fopen("debug\\out2.dat","w"); fun("abcdefgabcdeabc",bb); for(k=0;k<26;k++) fprintf(wf,"%d\n",bb[k]); fclose(wf); /*****************************/ } 【参考代码】 inti; for(i=0;i<26;i++) pp[i]=0; i=0; for(;tt[i]! ='\0';i++) if(tt[i]>='a'&&tt[i]<='z') pp[tt[i]-'a']++; 程序改错 /*下列给定程序中,函数fun的功能是: 删除字符串s中所有空白字符(包括Tab符、回车符及换行符)。 输入字符串时用"#"结束输入。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: */ #include #include #include fun(char*p) {inti,t;charc[80]; for(i=0,t=0;p[i];i++) if(! isspace(*(p+i)))c[t++]=p[i]; /**********ERROR**********/ c[t]="\0"; strcpy(p,c); } voidmain() {charc,s[80]; inti=0; printf("Inputastring: "); c=getchar(); while(c! ='#') {s[i]=c;i++;c=getchar();} s[i]='\0'; fun(s); puts(s); } 【参考答案】 c[t]=0; c[t]='\0'; /*下列给定程序中,函数fun的功能是: 求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: */ #include #defineN20 /**********ERROR**********/ voidfun(inta[],intn); { inti,m,t,k; for(i=0;i { /**********ERROR**********/ m=0; for(k=i+1;k if(a[k]>a[m]) m=k; t=a[i]; a[i]=a[m]; a[m]=t; } } voidmain() { intb[N]={11,5,12,0,3,6,9,7,10,8},n=10,i; for(i=0;i printf("%d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 上机 题库 百科 章南信大