C语言试题 6.docx
- 文档编号:3526465
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:28
- 大小:24.58KB
C语言试题 6.docx
《C语言试题 6.docx》由会员分享,可在线阅读,更多相关《C语言试题 6.docx(28页珍藏版)》请在冰豆网上搜索。
C语言试题6
本改错题共有1道,改错题源文件在考生目录中,请在******下一行将错误改正。
不得增行与减行,改正后使程序运行正确存盘即可。
改错题的源文件分为:
modi1.c,
第1题分值为:
10分,
给定程序的功能是:
计算某足球队在联赛中的积分等决定名次的参数。
设已知某队在m场比赛(2≤m≤50)中各场的进球数和失球数(存入组长组xx),则可算出它的积分(胜一场得3分,平一场得1分,负一场得0分)、净胜球数n和总进球数与总失球数之比r。
例如:
若输入“4”和31、11、20、12、12、12、12、12,则应输出
...
Thetotalmark:
8
Thenetscore:
28
Therationofwinvslost:
1.60
请改正程序中的错误,使它能计算出正确的结果。
注意不得增行或删行,也不得更改程序的结构!
#include"conio.h"
#include"stdio.h"
structwinlost
{intwin;intlost;};
structresult
{intt;intn;floatr;};
voidtotal(intm,structwinlostxx[],structresult*final)
{
inti;
final->t=0;
final->n=0;
final->r=0.0;
for(i=0;i {if(xx[i].win>xx[i].lost) /********found**********/ final->t+=2; else /********found**********/ if(xx[i].win=xx[i].lost) final->t+=1; final->n+=xx[i].win; final->r+=xx[i].lost; } i=final->n; final->n=i-final->r; final->r=i/final->r; } voidmain(void) { inti,m; structwinlostaa[50]; structresultlast; printf("\nHowmanysimesofcompetetionclosetheteamtale: "); scanf("%d",&m); printf("\cPleaseenter%dresultsofeachcompetition",m); printf("(winlost): \n"); for(i=0;i scanf("%d%d",&(aa[i].win),&(aa[i].lost)); total(m,aa,&last); printf("\nTheresultofeachcompetition: "); for(i=0;i printf("\nNo.%2d: %2d(win: lost)",i+1,aa[i].win,aa[i].lost); printf("\n\nThetotalmark: %2d",last.t); printf("\nThenetscore: %2d",last.n); printf("\nTherationofwinvslost: %5.2f",last.r); } 请编写一个函数fun(),它的功能是: 比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较短的字符串。 若两个字符串长度相等,则返回第1个字符串。 例如,输入abcde 注意: 部分源程序已给出 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 此题的源文件在考生目录下,文件名为: prog1.c #include char*fun(char*s,char*t) { } main() { FILE*wf; chara[20],b[10],*p="nanjing123",*q="nanchang"; inti; printf("Input1thstring: "); gets(a); printf("Input2thstring: "); gets(b); printf("%s",fun(a,b)); /******************************/ wf=fopen("out.dat","w"); fprintf(wf,"%s",fun(p,q)); fprintf(wf,"%c",'\n'); fclose(wf); /*****************************/ } 一、选择题答案 1.有以下程序段 intk=0 while(k=1)k++; 循环执行的次数是 A)无限次 B)有语法错,不能执行 C)一次也不执行 D)执行1次 你所选择的答案是: *,正确答案是: A× 2.当执行下面的程序时,如果输入ABC,则输出结果是 #include"stdio.h" #include"string.h" main() {charss[10]="1,2,3,4,5"; gets(ss);strcat(ss,"6789");printf("%s\n",ss); } A)ABC6789 B)ABC67 C)12345ABC6 D)ABC456789 你所选择的答案是: *,正确答案是: A× 3.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是 A)INPUTx、y、z; B)scanf("%d%d%d",&x,&y,&z); C)scanf("%d%d%d",x,y,z); D)read("%d%d%d",&x,&y,&z); 你所选择的答案是: *,正确答案是: B× 4.以下函数值的类型是 fun(floatx) {floaty; y=3*x-4; returny; } A)int B)不确定 C)void D)float 你所选择的答案是: *,正确答案是: A× 5.以下程序的输出结果是 main() {charc='z'; printf("%c",c-25); } A)a B)Z C)z-25 D)y 你所选择的答案是: *,正确答案是: A× 6.以下选项中,不能正确赋值的是 A)chars1[10];s1="Ctest"; B)chars2[]={'C','t','e','s','t'}; C)chars3[20]="Ctest"; D)char*s4="Ctest\n" 你所选择的答案是: *,正确答案是: A× 7.若变量a是int类型,并执行了语句: a='A'+1.6;,则正确的叙述是 A)a的值是字符C B)a的值是浮点型 C)不允许字符型和浮点型相加 D)a的值是字符'A'的ASCII值加上1。 你所选择的答案是: *,正确答案是: D× 8.若有以下定义和语句: ints[4][5],(*ps)[5]; ps=s; 则对s数组元素的正确引用形式是 A)ps+1 B)*(ps+3) C)ps[0][2] D)*(ps+1)+3 你所选择的答案是: *,正确答案是: C× 9.以下程序的输出结果是 #include #include main() {charb1[8]="abcdefg",b2[8],*pb=b1+3; while(--pb>=b1)strcpy(b2,pb); printf("%d\n",strlen(b2)); } A)8 B)3 C)1 D)7 你所选择的答案是: *,正确答案是: D× 10.以下选项中合法的用户标识符是 A)longB)_2TestC)3DmaxD)A.dat 你所选择的答案是: *,正确答案是: B× 11.若有以下程序: #include"stdio.h" main() { intk=2,i=2,m; m=(k+=i*=k);printf("%d,%d\n",m,i); } 执行后的输出结果是 A)8,6 B)8,3 C)6,4 D)7,4 你所选择的答案是: *,正确答案是: C× 12.以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序 voidsort(inta[],intn) {inti,j,t; for(i=0;i for(j=i+1,j if(a[i]} main() {intaa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(&aa[3],5); for(i=o;i<10;i++)print("%d,",aa[i]); printf('\n"); } 程序运行后的输出结果是 A)1,2,3,4,5,6,7,8,9,10B)10,9,8,7,6,5,4,3,2,1, C)1,2,3,8,7.6.5.4.9,10D)1,2,10,9,8,7,6,5,4,3 你所选择的答案是: *,正确答案是: C× 13.有以下程序 intf(intn) {if(n==1)return1; elsereturnf(n-1)+1; } main() {inti,j=0; for(i=i;i<3;i++)j+=f(i); printf("%d\n",j); } 程序运行后的输出结果是 A)4 B)3 C)2 D)1 你所选择的答案是: *,正确答案是: B× 14.有以下程序 main() {chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j; i=sizeof(a);j=strlen(a); printf("%d,%d\b"i,j); } 程序运行后的输出结果是 A)9,9 B)8,9 C)1,8 D)9,8 你所选择的答案是: *,正确答案是: D× 15.以下叙述中正确的是( )。 A)C语言比其他语言高级 B)C语言可以不用编译就能被计算机识别执行 C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D)C语言出现的最晚,具有其他语言的一切优点 你所选择的答案是: *,正确答案是: C× 16.在一个C程序中( )。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 你所选择的答案是: *,正确答案是: B× 17.以下能正确定义数组并正确赋初值的语句是( )。 A)intN=5,b[N][N]; B)inta[1][2]={{1},{3}}; C)intc[2][]={{1,2},{3,4}}; D)intd[3][2]={{1,2},{34}}; 你所选择的答案是: *,正确答案是: D× 18.有以下程序 main() { charstr[]="xyz",*ps=str; while(*ps)ps++; for(ps--;ps-str>=0;ps--)puts(ps); } 执行后的输出结果是( )。 A)yz xyz xyz B)z yz xyz C)z yz D)x xy 你所选择的答案是: *,正确答案是: B× 19.有以下程序 main(intarge,char*argv[]) {intn,i=0; while(arv[1][i]! ='\0' {n=fun();i++;} printf(%d\n",n*argc); } intfun() {staticints=0; s+=1; returns; } 假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令行 exam123<回车> 则运行结果为( )。 A)6 B)8 C)3 D)4 你所选择的答案是: *,正确答案是: A× 20.若要说明一个类型名STP,使得定义语句STPs等价于char*s,以下选项中正确的是( )。 A)typedefSTPchar*s; B)typedef*charSTP; C)typedefstp*char; D)typedefchar*STP; 你所选择的答案是: *,正确答案是: D× 21.以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。 #include main() {FILE*fout;charch; fout=fopen('abc.txt','w'); ch=fgetc(stdin); while(ch! ='#') {fputc(ch,fout); ch=fgetc(stdin); } fclose(fout); } 出错的原因是( )。 A)函数fopen调用形式错误 B)输入文件没有关闭 C)函数fgetc调用形式错误 D)文件指针stdin没有定义 你所选择的答案是: *,正确答案是: A× 22.有以下程序 main() { inta=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a printf("%d,%d\n",k,m); } 程序运行后的输出结果是 A)0,0B)0,1C)1,0D)1,1 你所选择的答案是: *,正确答案是: C× 23.以下能正确定义一维数组的选项是( )。 A)intnum[]; B)#defineN100 intnum[N]; C)intnum[0..100]; D)intN=100; intnum[N]; 你所选择的答案是: *,正确答案是: B× 24.已定义以下函数 fun(int*p) {return*p;} 该函数的返回值是( )。 A)不确定的值 B)形参p中存放的值 C)形参p所指存储单元中的值 D)形参p的地址值 你所选择的答案是: *,正确答案是: C× 25. 你所选择的答案是: *,正确答案是: B× 26.有以下程序 main() {chara[]=”abcdefg”,b[10]=”abcdefg”; printf(“%d%d\n”,sizeof(A),sizeof(B)); } 执行后输出结果是( )。 A)77 B)88 C)810 D)1010 你所选择的答案是: *,正确答案是: C× 27.有以下程序 main() {unsignedchara,b; a=4|3; b=4&3; printf("%d%d\n",a,b); } 执行后输出结果是 A)70B)07C)11D)430 你所选择的答案是: *,正确答案是: A× 28.下面程序的功能是输出以下形式的金字塔图案是: * *** ***** ******* main() {inti,j; for(i=1;i<=4;i++) {for(j=1;j<=4-i;j++)printf(““); for(j=1;j<=_______;j++)printf(“*”); printf(“\n”); } } 在下划线处应填入的是( )。 A)i B)2*i-1 C)2*i+1 D)i+2 你所选择的答案是: *,正确答案是: B× 29.有以下程序 voidsort(inta[],intn) {inti,j,t; for(i=0;ifor(j=i+2;jif(a[i]} main() {intaa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(aa,10); for(i=0;i<10;i++)printf(“%d”,aa[i]); printf(“\n”); } 其输出结果是( )。 A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1, C)9,2,7,4,5,6,3,8,1,10, D)1,10,3,8,5,6,7,4,9,2, 你所选择的答案是: *,正确答案是: C× 30.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是 A)chars[10]="abcdefg";B)chart[]="abcdefg",*s=t; C)chars[10];s="abcdefg";D)chars[10];strcpy(s,"abcdefg"); 你所选择的答案是: *,正确答案是: C× 31.下列选项中,不能用作标识符的是( )。 A)_1234_ B)_1_2 C)int_2_ D)2_int_ 你所选择的答案是: *,正确答案是: D× 32.有以下定义语句 doublea,b;intw;longc; 若各变量已正确赋值,则下列选项中正确的表达式是( )。 A)a=a+b=b++ B)w%(int)a+b) C)(c+w)%(int)a D)w=a==b; 你所选择的答案是: *,正确答案是: C× 33.有以下程序 main() {intm=3,n=4,x; x=-m++; x=x+8/++n; printf("%d\n",x); } 程序运行后的输出结果是( )。 A)3 B)5 C)-1 D)-2 你所选择的答案是: *,正确答案是: D× 34.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是( )。 A)abs(x-y)<10 B)x-y>-10&&x-y<10 C)! (x-y)<-10||! (y-x)>10 D)(x-y)*(x-y)<100 你所选择的答案是: *,正确答案是: C× 35.有以下程序 main() { inta=3,b=4,c=5,d=2; if(a>b) if(b>c) printf("%d",d+++1); else printf("%d",++d+1); printf("%d\n",d); } 程序运行后的输出结果是( )。 A)2 B)3 C)43 D)44 你所选择的答案是: *,正确答案是: A× 36.有定义语句: intb;charc[10];,则正确的输入语句是( )。 A)scanf("%d%s",&b,&c); B)scanf("%d%s",&b,c); C)scanf("%d%s",b,c); D)scanf("%d%s",b,&c); 你所选择的答案是: *,正确答案是: B× 37.有以下程序 main() { inta=1,b; for(b=1;b<=10;b++) { if(a>=8)break; if(a%2==1){a+=5;continue;} a-=3; } printf("%d",b); } 程序运行后的输出结果是( )。 A)3 B)4 C)5 D)6 你所选择的答案是: *,正确答案是: B× 38.以下叙述中错误的是( )。 A)C语言中对二进制文件的访问速度比文本文件快 B)C语言中,随机文件以二进制代码形式存储数据 C)语句FILEfp;定义了一个名为fp的文件指针 D)C语言中的文本文件以ASCII码形式存储数据 你所选择的答案是: *,正确答案是: C× 39.设变量已正确定义,则以下程序不能正确计算f=n! 的程序段是( )。 A)f=1; for(i=1;i<=n;i++) f*=i; B)f=0; for(i=1;i<=n;i--) f*=i; C)f=1; for(i=n;i>1;i--) f=f*i; D)f=1; for(i=n;i>=2;i--) f=f*i 你所选择的答案是: *,正确答案是: B× 40.以下不合法的数值常量是 A)011 B)lel C)8.0E0.5 D)0xabcd 你所选择的答案是: *,正确答案是: C× 41.以下叙述中错误的是 A)C程序必须由一个或一个以上的函数组成 B)函数调用可以作为一个独立的语句存在 C)若函数有返回值,必须通过return语句返回 D)函数形参的值也可以传回对应的实参 你所选择的答案是: *,正确答案是: D× 42.若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x-y)? (x++): (y++)中的条件表达式(x-y)等价的是________。 A)(x-y>0) B)(x-y<0) C)(x-y<0║x-y>0) D)(x-y==0) 你所选择的答案是: *,正确答案是: C× 43.有以下程序 main() {inti; for(i=1;i<=40;i++) {if((i++%5==0)&&(++i%8=0)) printf("%d",i) } printf("\n") } 执行后的输出结果是________。 A)5 B)24 C)32 D)40 你所选择的答案是: *,正确答案是: C× 44.有以下程序 voidchange(intk[]){k[0]=k[5];} main() {intx[10]={1,2,3,4,5,6,7,8,9,10},n=0; while(n<=4){change(&x[n]);n++;} for(n=0;n<5;n++)printf("%
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言试题 语言 试题