C语言程序设计模拟试题2附答案new.docx
- 文档编号:8447406
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:21
- 大小:24.02KB
C语言程序设计模拟试题2附答案new.docx
《C语言程序设计模拟试题2附答案new.docx》由会员分享,可在线阅读,更多相关《C语言程序设计模拟试题2附答案new.docx(21页珍藏版)》请在冰豆网上搜索。
C语言程序设计模拟试题2附答案new
《C语言程序设计》模拟试卷二
一、填空题。
(每空2分,共30分)
1.设有变量说明语句
intx=1,y=2;
则执行下述printf语句的输出结果是______ _____。
printf("%f\n",1.0+x/y);
2.执行下述程序
#include
main()
{
intx,y;
scanf("%2d%*2s%1d",&x,&y);
printf("%d\n",x+y);
}
若从键盘输入
12345671
则程序的输出结果是________。
3.以下程序的功能是:
从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或0为结束标志),统计并输出最高成绩和最低成绩。
请填空。
#include
main()
{
floatx,amax,amin;
scanf("%f",&x);
amax=x;
amin=x;
while()
{
if(x>amax)
amax=x;
elseif(x amin=x; scanf("%f',&x); } printf("\namax=%f\namin=%f\n",amax,amin); } 4.设n是整型变量,且已具有某正整数值。 根据下述数学式 求s的值并输出。 可编写如下之程序段实现之。 请填空。 intk; doubles,d; s=0.0; d=1.0; K=0; do { s=s+d; ___ _________; d=1.0/(k*(k+1)); }while(k<=n); printf("%f\n",s); 5.执行下述程序的输出结果是____ ____。 #inclued 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.执行下述程序时的输出结果是_________ ________。 #include main() { inta[]={2,4,6,},*ptr=&a[0],x=8,y,z; for(y=0;y<3;y++) z=(*(ptr+y) *(ptr+y): x; printf("%d\n",z); } 7.执行下述程序的输出结果是_____ _______。 #include main() { inta[][2]={10,20,30,40,50,60},(*p)[2]; p=a; printf("%d\n",*(*(p+2)+1)); } 8.执行以下程序的输出结果是___ ______。 #include main() { ints,i,sum(); for(i=1;i<=10;i++) s=sum(i); printf("s=%d\n",s); } sum(intk) { intx=0; return(x+=k); } 9.下述函数定义用来求出两个整数之和,并通过函数的模拟传地址调用,传回两整数相加之和值,请填空。 voidadd(intx,inty,____ ___) { *z=x+y; } 10.函数func的功能是将整型变量x的值转换成二进制数,并将该二进制数的每一位存入由整型指针b所指向的一维数组a,最低位存放于a[0]中,次低位存放于a[1]中,依此类推。 请填空。 voidfunc(intx,int*b) { intr; do { r=x%2; _____________=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"); } invert(int*s,intnum) { int*t,k; t=s+num; while(____ ________) { k=*s; *s=*t; *t=k; s++; t--; } } 12.若有以下定义和说明,则结构体变量w在内存中所占的字节数是_____ unionaa { floatx; floaty; charc[6]; }; structst { unionaav; floatw[5]; doubleave; }w; 13.执行下述程序的输出结果是______ _______。 #include structstr { floatx; char*y; }*m; structstrgroup[3]={ 95.0,"Li", 82.5,"Wang", 73.5,"Sun" }; main() { m=group; printf("%.lf,%s\n",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(____ _____) { fgetc(fp); num++; } printf("num=%d\n",num); fclose(fp); } 15.执行下述程序后,输出结果为____________。 #include #defineFUN1(a,b)a+b #defineFUN2(a,b)a-b #defineCAL(a,b)a*b+a+3 main() { printf("%d\n",CAL(FUN1(3,5),FUN2(4,5))); } 二、单项选择题。 (每题1分,共20分) 1.以下不是c语言规定保留字的是( )。 (A)float (B)integer (C)signed (D)unsigned 2.设int型变量x有初始值3,则表达式x++*5/10的值是( ) (A)0 (B)1 (C)2 (D)3 3.下述程序执行后的输出结果是( ) #include main() { intx='f'; printf("%c\n",'a'+(x-'a'+1)); } (A)g (B)h (C)i (D)j 4.设有程序 #include main() { inti,j; for(i=0,j=1;i<=j+1;i+=2,j--) printf("%d\n",i); } 在运行上述程序时,for语句中循环体的执行次数是( ) (A)3 (B)2 (C)1 (D)0 5.在下述选项时,没有构成死循环的程序是( ) (A)inti=100 while (1) { i=i%100+1; if(i>100) break; } (B)for(;;); (C)intk=1000; do { ++k; }while(k>=10000); (D)ints=36; while(s);--s; 6.假定a和b为int型变量,则执行下述语句组后,b的值为( )。 a=1; b=10; do { b-=a; a++; }while(b--<0); (A)9 (B)-2 (C)-1 (D)8 7.设有变量说明语句 int a=1,b=0; 则执行以下程序段的输出结果为( )。 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.以下合法的数组说明是( )。 (A)chara[7]="string"; (B)inta[5]={0,1,2,3,4,5}; (C)chara="string"; (D)INTa[]={0,12,3,4,5}; 9.下述程序代码中有语法错误的行是( )。 inti,ia[10],ib[10]; /*第1行*/ 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]地址的表达式是( )。 (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,%d\n",*p,**pp); 则输出结果是( )。 (A)10,10 (B)10,20 (C)20,10 (D)20,20 12.执行下述程序后的输出结果是( )。 #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("%d\n",k); } (A)3 (B)0 (C)5 (D)4 13.执行下述程序的输出结果是( )。 #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.读下面的程序,正确的输出结果是( )。 #include staticinta=50; voidf1(inta) { printf("%d,",a+=10); } voidf2(void) { printf("%d,",a+=3); } voidmain() { inta=10; f1(a); f2(); printf("%d\n",a); } (A)60,63,60 (B)20,23,23 (C)20,13,10 (D)20,53,10 15.执行下述程序的输出结果是( )。 #include intpower(intx,inty); main() { floata=2.6,b=3.4; intp; p=power((int)a,(int)b); printf("%d\n",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)81 16.已知函数scopy的定义如下 voidscopy(char*s,char*t) { while(*s++=*t++); } 则该函数的功能是( )。 (A)串复制 (B)求串长度 (C)串比较 (D)串反向 17.执行下述程序的输出是( )。 #include voidmain() { structcomplex { intre; intim; }; structcomplexcp[3]={2,5,4,7}; cp[2].re=cp[0].re+cp[1].re; cp[2].im=cp[0].im+cp[1].im; printf("%d%d\n",cp[2].re,cp[2].im); } (A)711 (B)612 (C)99 (D)126 18.执行下述程序的输出结果是( )。 #include main() { union { intk; chari[2]; } *s,a; s=&a; s->i[0]=0x39; s->i[1]=0x38; printf("%x\n",s->k); } (A)cccc3839 (B)3938 (C)380039 (D)390038 19.有以下程序,则结果为。 structabc {inta,b,c;}; main() { structabcs[2]={{1,2,3},{4,5,6}}; intt; t=s[0].a+s[1].b; printf(“%d\n”,t); } A)5 B)6 C)7 D)8 20.以下程序for语句循环体中printf语句执行次数是( )。 #include #defineN2 #defineMN+1 #defineNUM(M+1)*M/2 main() { inti; for(i=1;i<=NUM;i++) printf("%d\n",i); } (A)5 (B)6 (C)8 (D)9 三、程序分析题(每题5分,共30分) 1.阅读程序,写出执行该程序的输出结果。 #include main() { chars[]="pressakey."; inti; charch; for(i=0;(ch=s[i])! ='\0';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'); } } 2.阅读程序,写出执行该程序的输出结果。 #include #defineN5 main() { inti,j; inta[N][N]; for(i=0;i for(j=0;j if(i>=j) a[i][j]=1; else a[i][j]=a[i][j-1]+1; for(i=0;j { for(j=0;j printf("%3d",a[i][j]); printf("\n"); } } 3.阅读程序,写出执行该程序的输出结果 #include main() { intm[5],n[5],*px,*py,k; 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"); } 4.阅读程序,写出执行该程序的输出结果。 #include voidf(inty) { staticinti=5; intj=3; j++; printf("%d%d%d=%d\n",i,j,y,i+j+y); i*=2; } voidmain() { intx; for(x=1;x<+3;++x) f(x); } 5.阅读下列程序,写出程序运行的输出结果。 #include voidmain() {chara[20]={"1A2B3C"},b[20],*p1,*p2; p1=a,p2=b; do{if(! (*p1>='\0'&&*p1<='9')) {*p2=*p1; p2++; *p2=*p1; } else *p2=*p1; p1++,p2++; } while(*p1='\0'); *p2=*p1; printf("%s\n",b); } 6.阅读下列程序,写出程序的主要功能。 main() { intn,I; printf("
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 模拟 试题 答案 new