- 50.00 KB
- 2022-04-22 11:48:27 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'《C语言》期末考试模拟复习题一一、单项选择题(在本题的每一小题的备选答案中只有一个答案是正确的,请把正确选项的序号,填入题中的括号内。多选不给分。每题1分,共20分)1.以下不是c语言规定保留字的是(B)。(A)float (B)integer (C)signed (D)unsigned2.设int型变量x有初始值3,则表达式x++*5/10的值是(B)(A)0 (B)1 (C)2 (D)33.下述程序执行后的输出结果是(A ) #include main() { intx="f"; printf("%cn","a"+(x-"a"+1)); }(A)G (B)H (C)I (D)J4.设有程序#includemain(){ inti,j; for(i=0,j=1;i<=j+1;i+=2,j--) printf("%dn",i);}在运行上述程序时,for语句中循环体的执行次数是(C)(A)3 (B)2 (3)1 (D)05.在下述选项时,没有构成死循环的程序是(C)(A)inti=100 while(1) { i=i%100+1; if(i>100) break; }(B)for(;;);(C)intk=1000; do { ++k; }while(k>=10000);(D)int
s=36; while(s);--s;6.假定a和b为int型变量,则执行下述语句组后,b的值为(D)。 a=1; b=10; do { b-=a; a++; }while(b--<0); (A)9 (B)-2 (C)-1 (D)87.设有变量说明语句 int a=1,b=0;则执行以下程序段的输出结果为(B)。 switch (a) { case1: switch (b) { case0:printf("**0**");break; case1:printf("**1**");break; } case2:printf("**2**");break; } printf("n"); (A)**0** (B)**0****2** (C)**0****1****2** (D)有语法错误8.以下合法的数组说明是(D)。 (A)chara[6]="string"; (B)inta[5]={0,1,2,3,4,5}; (C)chara="string"; (D)INTa[]={0,12,3,4,5};9.下述程序代码中有语法错误的行是(D)。 inti,ia[10],ib[10]; /*第一行*/ for(i=0;i<=9;i++) /*第2行*/ ia[i]=0; /*第3行*/ ib=ia; /第4行*/ (A)第1行 (B)第2行 (C)第3行 (D)第4行10.若已定义 inta[9],*p=a; 并在以后的语句中未改变p的值,则不能表示a[1]地址的表达式是(C)。(A)p+1 (B)a+1 (C)a++ (D)++p
11.若有下述说明和语句 int**pp,*p,a=10,b=20; pp=&p; p=&a; p=&b; printf("%d,%dn",*p,**pp); 则输出结果是(D )。 (A)10,10 (B)10,20 (C)20,10 (D)20,2012.执行下述程序后的输出结果是(D)。 #include func(inta) { intb=0; staticintc=3; a=c++,b++; return(a); } main() { inta=2,i,k; for(i=0;i<2;i++) k=func(a++); printf("%dn",k); } (A)3 (B)0 (C)5 (D)413.执行下述程序的输出结果是( A)。 #include main() { intaa[3][3]={{2},{4},{6}}; inti,*p=&aa[0][0]; for(i=0;i<2;i++) { if(i==0) aa[i][i+1]=*p+1; else ++p; printf("%d",*p); } printf("n"); } (A)23 (B)26 (C)33 (D)36
14.读下面的程序,正确的输出结果是( D )。 #include staticinta=50; f1(inta) { printf("%d,",a+=10); } f2(void) { printf("%d,",a+=3); } main() } inta=10; f1(a); f2(); printf("%dn",a); } (A)60,63,60 (B)20,23,23 (C)20,13,10(D)20,53,1015.执行下述程序的输出结果是(A)。 #include intpower(intx,inty); main() { floata=2.6,b=3.4; intp; p=power((int)a,(int)b); printf("%dn",p); } intpower(intx,inty) { inti,p=1; for(i=y;i>0;i--) p=p*x; return(p); } (A)8 (B)9 (C)27 (D)8116.已知函数scopy的定义如下 voidscopy(char*s,char*t) { while
(*s++=*t++); } 则该函数的功能是( A)。 (A)串复制 (B)求串长度 (C)串比较 (D)串反向17.执行下述程序的输出是(B )。 #include main() { structcomplex { intre; intim; }; structcomplexcp[3]={2,5,4,7}; cp[2].re=cp[0].re+cp[1].re; cp[2].im=im=cp[0].im+cp[1].im; printf("%d%dn",cp[2].re,cp[2].im; } (A)711 (B)612 (C)99 (D)12618.执行下述程序的输出结果是(A )。 #include main() { union { intk; chari[2]; } *s,a; s=&a; s->i[0]=0x39; s->i[1]=0x38; printf("%xn",s->k); } (A)3839 (B)3938 (C)380039 (D)39003819.有以下程序 /*filename:file.c*/ #include #include main(intargc,char*argv[]) { FILE*fp1,*fp2; if
(argc<3) { printf("Usage:filefilename1filename2n"); exit(0); } fp1=fopen(argv[1],"r"); fp2=fopen(argv[2],"w"); while(!feof(fp1)) fputc(fgetc(fp1),fp2); fclose(fp1); fclose(fp2); }若在DOS提示符下输入如下的命令行 fileabc.filxyz.fil且程序正常执行完毕。那么,该程序所实现的功能是( B )。 (A)将文件xyz.fil的内容复制到文件abc.fil (B)将文件abc.fil的内容复制到文件夹xyz.fil (C)读取文件xyz.fil的内容并在屏幕上显示出来 (D)读取文件abc.fil的内容并在屏幕上显示出来20.以下程序for语句循环体中printf语句执行次数是(C )。 #include #defineN2 #defineMN+1 #defineNUM(M+1)*m/2 main() { inti; for(i=1;i<=NUM;i++) printf("%dn",i); } (A)5 (B)6 (C)8 (D)9二、填充题(每空2分,共30分) 1.设有变量说明语句 intx=1,y=2; 则执行下述printf语句的输出结果是______1.000000_______。 printf("%fn",1.0+x/y); 2.执行下述程序 #include main() { int
x,y; scanf("%2d%*2s%1d",&s,&y); printf("%dn",x+y); } 若从键盘输入 12345671 则程序的输出结果是____17________。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或0为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() { floatx,amax,amin; scanf("%f",&x); amax=x; amin=x; while(____x>0.0(或x>0)________) { if(x>amax) amax=x; elseif(x main() { inta[6],i; for(i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("n"); }6.执行下述程序时的输出结果是__________6__________。 #include main() { inta[]={2,4,6,},*ptr=&a[0],x=8,y,z; for(y=0;y<3;y++) z=(*(ptr+y) main() { inta[][2]={10,20,30,40,50,60},(*p)[2]; p=a; printf("%dn",*(*(p+2)+1)); }8.执行以下程序的输出结果是____10_______。 #include main() { ints,i,sum(); for(i=1;i<=10;i++) s=sum(i); printf("s=%dn",s); } sum(intk) { intx=0; return(x+=k); }
9.下述函数定义用来求出两个整数之各,并通过函数的模拟传地址调用,传回两整数相加之和值,请填空。 voidadd(intx,inty,____int*z___) { *z=x+y; }10.函数func的功能是将整型变量x的值转换成二进制数,并将该二进制数的每一位存入由整型指针b所指向的一维数组a,最低位存放于a[0]中,次低位存放于a[1]中,依此类推。请填空。 voidfunc(intx,int*b) { intr; do { r=x%2; _____*b++________=r; x/=2; }while(x); }11.以下程序中函数invert实现将数组内所有数组元素的值逆置。比如,执行本程序将输出 10 9 8 7 6 5 4 3 2 1 请填空。 #include main() { inta[10]={1,2,3,4,5,6,7,8,9,10},i,n=10; invert(a,n-1); for(i=0;i<10;i++) printf("%3d",a[i]); printf("n"); } inver(int*s,intnum) { int*t,k; t=s+num; while(____s structstr { floatx; char*y; }*m; structstrgroup[3]={ 95.0,"Li", 82.5,"Wang", 73.5,"Sun" }; main() { m=grogp; printf("%.lf,%sn",m->x,m->y); }14.下面的程序用来统计某文件文件中字符的个数。请填空。 #include #include main() { FILE*fp; longnum=0; if
((fp=fopen("fnam.dat","r"))==NULL) { printf("Can"topenthisfile!n"); exit(0); } while(____!feop(fp) (或feop(fp)==0)______) { fgetc(fp); num++; } printf("num=%dn",unm); fclose(fp); }15.执行下述程序后,输出结果为_____29_________。 #include #defineFUN1(a,b)a+b #defineFUN2(a,b)a-b #defineCAL(a,b)a*b+a+3 main() { printf("%dn",CAL(FUN(3,5),FUN(4,5))); }三、程序分析题(每题5分,共30分)1.阅读程序,写出执行该程序的输出结果。 #include main() { chars[]="pressakey."; inti; charch; for(i=0;(ch=s[i]!=" ";i++) { switch(ch) { case"p": case"a": case"k":putchar(ch-32);continue; case" ":putchar("*");break; case".":putchar("!");break; default:putchar(ch);continue; }
putchar("n"); } }答案:press* A* Key!2.阅读程序,写出执行该程序的输出结果。 #include #defineN5 main() { inti,j; inta[N][N]; for(i=0;i=j)| a[i][j]=1; else a[i][j]=a[i][j-1]+1; for(i=0;j main() { intm[5],n[5],*px,*py,ki; px=m;py=n; for(k=1;k<4;k++,px++,py++) { *px=k;*py=2*k;
printf("%d,%d",m[k-1],n[k-1]); } printf("n"); px=&m[1]; py=&n[1]; for(k=1;k<3;k++) { *px+=k;*py*=k; printf("%d,%d,",*px++,*py++); } printf("n"); }答案:1,2,2,4,3,6,3,4,5,12,4.阅读程序,写出执行该程序的输出结果。 #include main() { intx; for(x=1;x<+3;++x) f(x); } f(inty) { staticinti=5; intj=3; j++; printf("%d%d%d=%dn",i,j,y,i+j+y); i*=2; }答案:5+4+1=10 10+4+2=1620+4+3=275.阅读下列程序,写出程序运行的输出结果。 main() {chara[20]={”1A2B3C”},b[20],*p1=a,*p2=b; do{if(!((*p1>="O"&&*p1<="9")) {*p2=*p1; p2++; *p2=*p1; } else
*p2=*p1; p1++,p2++; } while(*p1=" "); *p2=*p1; printf(”%sn”,b); }答案:1AA2BB3CC6.阅读下列程序,写出程序的主要功能。 #include”string.h” main() {chars[5][81],*pl[5],**p2,**p3; inti; for(i=0;i<5;i++) {p1[i]=&s[i][0]; gets(p1[i]); } for(p3=p2=p1,i=0;i<5;i++,p2++) if(strcmp(*p3,*p2)<0)p3=p2; puts(*p3); }答案:输入5个字符串,输出其中最大的字符串。四、程序设计题1、编一个程序,从键盘上输入一串符号(以回车换行键为结束),将其以字符率形式存入一维字符型数组,然后再输出该字符型数组中的字符串。本题要求用指向字符的指针来处理字符型数组中的字符。main() {chars[100],*p=s,ch; scanf("%c",&ch); while(ch!="n") {*p=ch; p++; scanf("%c",&ch); } *p=" "; p=s; printf("%sn”,p); }2、编一个函数,计算并返回三角形的面积。其中三角形的三个边长作为函数的参数。#include"math.h" floatf(a,
b,c) floata,b,c; {floatl,s; l=(a+b+c)/2.0; s=sqrt(l*(l-a)*(l-b)*(l-c)); return(s); }'
您可能关注的文档
- x《初级会计电算化》习题六(含答案解析).doc
- zhujiao054+《民事诉讼法学》习题答案.doc
- [高中政治]《经济生活》第1单元考点练习题[含参考答案].doc
- 《ARM嵌入式系统结构与编程》课后习题答案.doc
- 《ASPNET动态网站开发教程(第三版)》各章习题参考答案.doc
- 《AutoCAD简明教程》第2版-习题答案.doc
- 《C++程序设计教程 第2版》教学素材习题04答案.doc
- 《C程序设计》课后习题答案(4-6章).doc
- 《C程序设计》课后习题答案(第8章).doc
- 《C语言程序设计(何钦铭 颜晖 主编)》习题8答案.doc
- 《C语言程序设计》第6章习题答案.doc
- 《C语言程序设计案例教程》练习题答案.docx
- 《EDA技术与VHDL基础》课后习题答案.doc
- 《IBM-PC汇编语言程序设计 第二版》部分习题答案(第5章).doc
- 《JavaScript 程序设计基础教程(第2版)》习题答案.doc
- 《JavaWeb程序开发入门》课后练习(含答案).docx
- 《Java基础入门》_课后习题答案1-6.doc
- 础入门》_课后题答案_stu.doc
相关文档
- 施工规范CECS140-2002给水排水工程埋地管芯缠丝预应力混凝土管和预应力钢筒混凝土管管道结构设计规程
- 施工规范CECS141-2002给水排水工程埋地钢管管道结构设计规程
- 施工规范CECS142-2002给水排水工程埋地铸铁管管道结构设计规程
- 施工规范CECS143-2002给水排水工程埋地预制混凝土圆形管管道结构设计规程
- 施工规范CECS145-2002给水排水工程埋地矩形管管道结构设计规程
- 施工规范CECS190-2005给水排水工程埋地玻璃纤维增强塑料夹砂管管道结构设计规程
- cecs 140:2002 给水排水工程埋地管芯缠丝预应力混凝土管和预应力钢筒混凝土管管道结构设计规程(含条文说明)
- cecs 141:2002 给水排水工程埋地钢管管道结构设计规程 条文说明
- cecs 140:2002 给水排水工程埋地管芯缠丝预应力混凝土管和预应力钢筒混凝土管管道结构设计规程 条文说明
- cecs 142:2002 给水排水工程埋地铸铁管管道结构设计规程 条文说明