二级C语言典型题集.docx
- 文档编号:26422952
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:25
- 大小:22.73KB
二级C语言典型题集.docx
《二级C语言典型题集.docx》由会员分享,可在线阅读,更多相关《二级C语言典型题集.docx(25页珍藏版)》请在冰豆网上搜索。
二级C语言典型题集
二级考试典型题汇集
一、指针相关
1.下面程序的输出是
A)xyzabcABCB)zabcABCC)yzabcABCD)xyabcABC
#include
#include
main()
{char*p1="abc",*p2="ABC",str[50]="xyz";
strcpy(str+2,strcat(p1,p2));
printf("%s\n",str);}
2.若要使指针p指向一个double类型的动态存储单元,请填空。
p=________malloc(sizeof(double));
3.执行下面的语句后,表达式*(p[0]+1)+**(q+2)的值为_______。
inta[]={5,4,3,2,1},*p[]={a+3,a+2,a+1,a},**q=p;
A)8B)7C)6D)5
4.下列程序的运行结果是
A)63B)36C)编译出错D)00
voidfun(int*a,int*b)
{int*k;
k=a;a=b;b=k;
}
main()
{inta=3,b=6,*x=&a,*y=&b;
fun(x,y);
printf("%d%d",a,b);
}
5.下列程序的运行结果是________
voidfun(int*a,int*b)
{a=b;*a=*b+10;(*b)++;}
main()
{inta=3,b=6,*x=&a,*y=&b;
fun(x,y);
printf("%d%d",a,b);
}
6.以下程序运行后的输出结果是________。
#include
char*ss(char*s)
{char*p,t;
p=s+1;t=*s;
while(*p){*(p-1)=*p;p++;}
*(p-1)=t;
returns;
}
main()
{char*p,str[10]="abcdefgh";
p=ss(str);
printf("%s\n",p);
}
7.有以下程序
#include
voidf(char*s,char*t)
{chark;
k=*s;*s=*t;*t=k;
s++;t--;
if(*s)f(s,t);
}
main()
{charstr[10]="abcdefg",*p;
p=str+strlen(str)/2+1;
f(p,p-2);
printf("%s\n",str);
}
程序运行后的输出结果是
A)abcdefgB)gfedcbaC)gbcdefaD)abedcfg
8.有以下程序
main()
{inta[][3]={{1,2,3},{4,5,0}},(*pa)[3],i;
pa=a;
for(i=0;i<3;i++)
if(i<2)pa[1][i]=pa[1][i]-1;
elsepa[1][i]=1;
printf("%d\n",a[0][1]+a[1][1]+a[1][2]);
}
执行后输出结果是
A)7B)6C)8D)无确定值
9.有以下程序
#include
main(intargc,char*argv[])
{inti,len=0;
for(i=1;i printf(“%5d\n”,len); ) 经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行 exabcdefgh3k44 执行后输出结果是 A}14B}12C}8D}6 10.下列程序的运行结果是_________。 #include char*ss(char*s) {returns+strlen(s)/2;} main() {char*p,*str=”abcdefgh”; p=ss(str);printf(“%s\n”,p); } 11.有以下定义和语句 inta[3][2]={1,2,3,4,5,6,},*p[3]; p[0]=a[1]; 则*(p[0]+1)所代表的数组元素是 A)a[0][1]B)a[1][0]C)a[1][1]D)a[1][2] 12.有以下程序 main() {inta[]={2,4,6,8,10},y=0,x,*p; p=&a[1]; for(x=1;x<3;x++)y+=p[x]; printf("%d\n",y); } 程序运行后的输出结果是 A)10B)11C)14D)15 13.下面程序的运行结果是________。 voidswap(int*a,int*b) {int*t; t=a;a=b;b=t; } main() {intx=3,y=5,*p=&x,*q=&y; swap(p,q); printf("%d%d\n",*p,*q); } 14.有以下程序 point(char*p){p+=3;} main() {charb[4]={'a','b','c','d'},*p=b; point(p);printf("%c\n",*p); } 程序运行后的输出结果是______。 A)aB)bC)cD)d 15.有以下程序 voidsub(int*s,int*y) {staticintt=3;*y=s[t];t--;} main() {inta[]={5,6,7,8},i,x=0; for(i=0;i<4;i++){sub(a,&x);printf("%d",x);} } 程序运行后的输出结果是______。 A)8765B)5678C)0000D)8888 16.有以下程序 #include main() { staticinta[]={3,8,10,6,9}; staticint*ptr[]={&a[0],&a[1],&a[2],&a[3],&a[4]}; int**p,i; for(i=0;i<5;i++) a[i]=a[i]/2+a[i]; p=ptr; printf("%d,",++(**p)); printf("%d\n",*(*(p+2))); } 运行后输出结果是__________________ A)3,6B)4,12C)5,15D)12,9 二、结构体、联合体、枚举型、自定义类型 1.下面程序的输出是 A)0123B)04010C)04515D)14515 main() {enumteam{my,your=4,his,her=his+10}; printf("%d%d%d%d\n",my,your,his,her);} 2.已知字符0的ASCII码为十六进制的30,下面程序的输出是 A)6B)9C)0D)3 main() {union{charc; unsignedinti[4]; }z; z.i[0]=0x39; z.i[1]=0x36; printf("%c\n",z.c);} 3.下面程序的输出是 A)32B)16C)8D)24 typedefunion{longx[2]; inty[4]; charz[8]; }MYTYPE; MYTYPEthem; main() {printf("%d\n",sizeof(them));} 4.下面min3函数的功能是: 计算单向循环链表first中每3个相邻结点数据域中值的和,返回其中最小的值。 请填空。 structnode{intdata;structnode*link;}; intmin3(structnode*first) {structnode*p=first; intm,m3=p->data+p->link->data+p->link->link->data; for(p=p->link;p! =first;p=_________) {m=p->data+p->link->data+p->link->link->data; if(________)m3=m;} return(m3);} 5.有以下程序 #include structSTU {intnum; floatTotalScore;}; voidf(structSTUp) {structSTUs[2]={{20044,550},{20045,537}}; p.num=s[1].num;p.TotalScore=s[1].TotalScore; } main() {structSTUs[2]={{20041,703},{20042,580}}; f(s[0]); printf("%d%3.0f\n",s[0].num,s[0].TotalScore); } 程序运行后的输出结果是 A)20045537B)20044550C)20042580D)20041703 6.有以下程序 #include structSTU {charname[10]; intnum;}; voidf(char*name,intnum) {structSTUs[2]={{"SunDan",20044},{"Penghua",20045}}; num=s[0].num; strcpy(name,s[0].name); } main() {structSTUs[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p; p=&s[1];f(p->name,p->num); printf("%s%d\n",p->name,p->num); } 程序运行后的输出结果是 A)SunDan20042B)SunDan20044 C)LiSiGuo20042D)YangSan20041 7.有以下程序 structSTU {charname[10];intnum;floatTotalScore;}; voidf(structSTU*p) {structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s; ++p;++q;*p=*q; } main() {structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}}; f(s); printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore); } 程序运行后的输出结果是 A)SunDan20044550B)Penghua20045537 C)LiSiGuo20042580D)SunDan20041703 8.以下程序的输出是 A)10B)11C)51D)60 structst {intx;int*y;}*p; intdt[4]={10,20,30,40}; structstaa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],}; main() {p=aa; printf("%d\n",++(p->x)); } 9.以下程序的输出结果是 structHAR {intx,y;structHAR*p;}h[2]; main() {h[0].x=1;h[0].y=2; h[1].x=3;h[1].y=4; h[0].p=&h[1];h[1].p=h; printf("%d%d\n",(h[0].p)->x,(h[1].p)->y); } A)12B)23C)14D)32 10.以下程序的输出结果是 unionmyun {struct {intx,y,z;}u; intk; }a; main() {a.u.x=4;a.u.y=5;a.u.z=6; a.k=0; printf(%d\n",a.u.x); } A)4B)5C)6D)0 11.有以下程序 structSTU {charname[10]; intnum; intScore; }; main() {structSTUs[5]={{“YangSan”,20041,703},{“LiSiGuo”,20042,580}, {“wangYin”,20043,680},{“SunDan”,20044,550}, {“Penghua”,20045,537}},*p[5],*t; inti,j; for(i=0;i<5;i++)p[i]=&s[i]; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->Score>p[j]->Score) {t=p[i];p[i]=p[j];p[j]=t;} printf(“%5d%d\n”,s[1].Score,p[1]->Score); } 执行后输出结果是 A}550550B}680680C}580550D}580680 12.有以下程序 #include structNODE{ intnum; structNODE*next; }; main() {structNODE*p,*q,*r; intsum=0; p=(structNODE*)malloc(sizeof(structNODE)); q=(structNODE*)malloc(sizeof(structNODE)); r=(structNODE*)malloc(sizeof(structNODE)); p->num=1;q->num=2;r->num=3; p->next=q;q->next=r;r->next=NULL; sum+=q->next->num;sum+=p->num; printf(“%d\n”,sum); } 执行后的输出结果是 A)3B)4C)5D)6 13.有以下说明和定义语句 structstudent {intage;charnum[8];}; structstudentstu[3]={{20,"200401"},{21,"200402"},{19,"200403"}}; structstudent*p=stu; 以下选项中引用结构体变量成员的表达式错误的是 A)(p++)->numB)p->numC)(*p).numD)stu[3].age 14.以下程序的功能是: 建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请从与下划线处号码对应的一组选若中选择出正确的选项。 #include stuctnode {chardata;structnode*next;}; (1)CreatList(char*s) {structnode*h,*p,*q}; h=(structnode*)malloc(sizeof(structnode)); p=q=h; while(*s! ='\0') {p=(structnode*)malloc(sizeof(structnode)); p->data= (2); q->next=p; q=(3); s++; } p->next='\0'; returnh; } main() {charstr[]="linklist"; structnode*head; head=CreatList(str); ... } (1)A)char*B)structnodeC)structnode*D)char (2)A)*sB)sC)*s++D)(*s)++ (3)A)p->nextB)pC)sD)s->next 15.以下程序运行后的输出结果是________。 structNODE {intk; structNODE*link; }; main() {structNODEm[5],*p=m,*q=m+4; inti=0; while(p! =q){ p->k=++i;p++; q->k=i++;q--; } q->k=i; for(i=0;i<5;i++)printf("%d",m[i].k); printf("\n"); } 16.以下程序运行后的输出结果是________。 structs{intx;inty;}p; intd[4]={1,2,3,4}; structsaa[4]={5,&d[0],6,&d[0],6,&d[0],6,&d[0]}; main() {p=aa; printf("%d,",++p->x); printf("%d,",(++p)->x); printf("%d\n",++(*p->x); } 17.设有如下定义: structsk{ intn; floatx; }date,*p; 若要使p指向的date中的n域,正确的赋值语句是_______________ A)p=&date.n;B)*p=data.n; C)p=(structsk*)&data.n;D)p=(structsk*)data.n; 18.以下程序运行后的输出结果是________。 #include main() { union{ inta; longb; unsignedcharc; }m; m.b=0x12345678; printf(“%x\n”,m.a); printf(“%x\n”,m.c); } A)1234B)5678C)12345678D)0 127812345678 三、函数、变量作用域 1.下面程序的输出是 A)3B)4C)6D)9 fun3(intx) {staticinta=3; a+=x; return(a);} main() {intk=2,m=1,n; n=fun3(k); n=fun3(m); printf("%d\n",n);} 2.下面程序的输出是________ longfun5(intn) {longs; if((n==1)||(n==2)) s=2; else s=n+fun5(n-1); return(s);} main() {longx; x=fun5(4); printf("%ld\n",x);} 3.下列程序执行后的输出结果是 A)helloB)helC)hloD)hlm voidfunc1(inti); voidfunc2(inti); charst[]="hello,friend! "; voidfunc1(inti) {printf("%c",st[i]); if(i<3){i+=2;func2(i);} } voidfunc2(inti) {printf("%c",st[i]); if(i<3){i+=2;func1(i);} } main() {inti=0;func1(i);printf("\n");} 4.有如下程序 longfib(intn) {if(n>2)return(fib(n-1)+fib(n-2)); elsereturn (2); } main() {printf(“%d\n”,fib(3));} 该程序的输出结果是 A)2B)4C)6D)8 5.以下程序的运行结果是_______。 fun(intn,int*s) {intf1,f2; if(n==1||n==2)*s=1; else{fun(n-1,&f1); fun(n-2,&f2); *s=f1+f2; } } main() {intx; fun(6,&x); printf(“%d\n”,x); } A)6B)7C)8D)9 6.以下程序的运行结果是_______。 #include intx=1; main() {inti=5; fun(i); printf(“%d,%d\n”,i,x); } fun(intm) {m+=x;x+=m; {charx=’A’; printf(“%d\n”,x); } printf(“%d\n”,x); } A)65B)AC)AD)65 6677 61615757 7.以下程序的运行结果是_______。 voidfun(char*s,inti,intj) {chart; while(i {t=*(s+i);*(s+i)=*(s+j);*(s+j)=t; i++;j--; } } main() {chara[]=”ABCDEFGHIJ”,*p=a; fun(p,0,3);fun(p,4,9);fun(p,0,9); printf(“%s\n”,p); } A)EFGHIJABCDB)JIHGFEDCBAC)FGHIJABCDED)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 典型