C语言最后部分练习题.docx

上传人:b****6 文档编号:7906608 上传时间:2023-05-12 格式:DOCX 页数:10 大小:19.47KB
下载 相关 举报
C语言最后部分练习题.docx_第1页
第1页 / 共10页
C语言最后部分练习题.docx_第2页
第2页 / 共10页
C语言最后部分练习题.docx_第3页
第3页 / 共10页
C语言最后部分练习题.docx_第4页
第4页 / 共10页
C语言最后部分练习题.docx_第5页
第5页 / 共10页
C语言最后部分练习题.docx_第6页
第6页 / 共10页
C语言最后部分练习题.docx_第7页
第7页 / 共10页
C语言最后部分练习题.docx_第8页
第8页 / 共10页
C语言最后部分练习题.docx_第9页
第9页 / 共10页
C语言最后部分练习题.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言最后部分练习题.docx

《C语言最后部分练习题.docx》由会员分享,可在线阅读,更多相关《C语言最后部分练习题.docx(10页珍藏版)》请在冰点文库上搜索。

C语言最后部分练习题.docx

C语言最后部分练习题

数组

选择题

1、有以下程序:

inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];

b中的值是___。

A)5B)6C)8D)9

2、有以下程序:

voidswap1(intc[]){intt,t=c[0];c[0]=c[1];c[1]=t;}

voidswap2(intc0,intc1){intt,t=c0;c0=c1;c1=t;}

main(){inta[2]={3,5},b[2]={3,5};swap1(a);swap2(b[0],b[1]);

printf(“%d,%d,%d,%d\n”,a[0],a[1],b[0],b[1]);}

其输出结果是___。

A)5,3,5,3B)5,3,3,5C)3,5,3,5D)3,5,5,3

3、有以下程序:

voidsum(int*a){a[0]=a[1];}

main(){intaa[10]=(1,2,3,4,5,6,7,8,9,10),i;

for(i=2;i>=0;i--)sum(&aa[i]);

printf(“%d\n”,aa[0]);}

程序运行后的输出结果是____。

A)4B)3C)2D)1

4、有以下程序:

intf(intb[][4]){inti,j,s=0;for(j=0;j<4;j++){i=j;if(i>2)i=3-j;s+=bb[i][j];}returns;}

main(){inta[4][4]={{1,2,3,4},{0,2,4,6},{3,6,9,12},{3,2,1,0}};printf(“%d\n”,f(a);)

程序运行后的输出结果是___。

A)22B)11C)18D)16

5、有以下程序:

voidsort(inta[],intn)

{inti,j,t;

for(i=0;i

for(j=i+2;j

if(a[i]

}

main(){intaa[10]={1,2,4,5,6,7,8,9,10},i;

sort(aa);for(i=0;i<10;i++)printf(“%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)9,2,7,4,5,6,3,8,1,10D)1,10,3,8,5,6,7,4,9,2

6、以下不能正确定义二维数组的选项是___。

A)inta[2][2]={{1},{2}}B)inta[][2]={1,2,3,4}

C)inta[2][2]={{1},2,3}D)inta[2][]={{1,2},{3,4}}

7、若有定义:

int*p[3];,则以下叙述中正确是_元素__。

A)定义一个基类型为int的指针变量p,该变量具有三个指针

B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针

C)定义了一个名*p的整型数组,该数组含有三个int类型元素

D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型

8、有以下程序:

main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,j,k=2;for(i=0;i<3;i++)printf(“%d”,m[k][i]);}

程序运行后的输出结果是___。

A)456B)258C)369D)789

二、填空题

1.若有定义:

doublex[3][5];则x数组中行下标的下限为_________,列下标的上限为_________.

2.下面程序以每行4个数据的形式输出a数组,请填空。

 #defineN 20

 main()

  {inta[N],i;

  for(i=0;i

  for(i=0i

  {if (_____________)   _____________

   printf("%3d",a[i]);

  }

 printf("\n");

}

 

3.下面程序可求出矩阵a的主对角线上的元素之和,请填空。

 main()

 {

  inta[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;

  for(i=0;i<3;i++)

   for(j=0;j<3;j++)

    if(_____)sum=sum+_______;

   printf("sum=%d\n",sum);

}

 

4.当从键盘输入18并回车后,下面程序的运行结果是________.

 main()

 {intx,y,i,a[8],j,u,v;

  scanf("%d",&x);

  y=x;i=0;

  do

  {u=y/2; 

   a[i]=y%2;

   i++;y=u;

   }while(y>=1)

  for(j=i-1;j>=0;j--)

    printf("%d",a[j]);}

 

5.下面程序用插入法对数组a进行降序排序。

请填空。

 main()

 {inta[5]={4,7,2,5,1};

   inti,j,m;

  for(i=1;i<5;i++)

    {m=a[i];

     j=____;

     while(j>=0&&m>a[j])

     {_______;

      j--;

      }

    _______=m;

  }

   for(i=0;i<5;i++)

    printf("%d",a[i]);

   printf("\n");

}

 

6.下面程序的功能是在三个字符串中找出最小的,请填空。

 #include

 #include

 main()

 {

 chars[20],str[3][20];

 inti;

 for(i=0;i<3;i++)gets(str[i]);

 strcpy(s,_______);

 if(strcmp(str[2],s)<0)strcpy(s,str[2]);

 printf("%s\n",_______);

 }

 

7.下面程序的运行结果是________.

 #include

 main()

 {chars[]="ABCCDA";

   intk;charc;

  for(k=1;(c=s[k])!

='\0';k++)

   {switch(c)

     {case'A':

putchar('%');continue;

      case 'B':

++k;break;

      default:

putchar('*');      case 'C':

putchar('&');continue;

    }

  putchar('#');

  }

}

七、函数

典型考题

1、若程序中定义了以下函数:

doublemyadd(doublea,doubleb){return(a+b);}

将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是____。

 

A)doublemyadd(doublea,b)  B)doublemyadd(double,double)

C)doublemyadd(doubleb,doublea)  D)doublemyadd(doublex,doubley)

2、有以下程序:

charfun(charx,chary){if(x

main(){inta=’9’,b=’8’,c=’7’;

printf(“%c\n”,fun(fun(a,b),fun(b,c))}

程序运行结果是___。

A)函数调用出错  B)8   C)9  D)7

3、有以下程序:

voidf(intv,intw){intt;t=v;v=w;w=t;}

main(){intx=1,y=3,z=2;

if(x>y)f(x,y);

elseif(y>z)f(y,z);

elsef(x,z);

printf(“%d,%d,%d\n”,x,y,z);}

执行后的输出结果是___。

A)1,2,3  B)3,1,2  C)1,3,2   D)2,3,1

4、若已知定义的函数有返回值,则以下该函数调用的叙述中错误是_____。

A)函数调用可以作为独立的语句存在。

B)函数调用可以作为一个函数的实参。

C)函数调用可以出现在表达式中。

D)函数调用可以作为一个函数的形参。

5、有以下函数定义:

voidfun(intn,doublex){……}

若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是___。

A)fun(inty,doublem);  B)k=fun(10,12.5);

C)fun(x,n); D)voidfun(n,x);

6、下列函数定义中,出现编译错误的是____。

A)max(intx,inty,int*z){*z=x>y?

x:

y;}

B)intmax(intx,y){intz;z=x>y?

x:

y;returnz;}

C)max(intx,inty){intz;z=x>y?

x:

y;return(z);}

D)intmax(intx,inty){return(x>y?

x:

y);}

7、有以下程序:

fun(inta,intb){if(a>b)return(a);elsereturn(b);}

main(){intx=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf(“%d\n”,r);}

程序运行后的输出结果是____。

A)3  B)6  C)8  D)12

8、有以下程序:

intf1(intx,inty){returnx>y?

x:

y;}

intf2(intx,inty){returnx>y?

y:

x;}

main(){inta=4,b=3,c=5,d,e,f;d=f1(a,b);d=f1(d,c);e=f2(a,b);e=f2(e,c);f=a+b+c-d-e;printf(“%d,%d,%d\n”,d,f,e);}

程序运行后的输出结果是_____。

A)3,4,5B)5,3,4 C)5,4,3 D)3,5,4

9、有以下程序:

voidf(intx,inty){intt;if(x

main(){inta=4,b=3,c=5;f(a,b);f(a,c);f(b,c);printf(“%d,%d,%d\n”,a,b,c);}

程序运行后的输出结果是:

____。

A)3,4,5B)5,3,4C)5,4,3D)4,3,5

填空题

1、函数fun的功能是计算xn。

doublefun(doublex,intn){inti;doubley=1;for(i=1;i<=n;i++)y=y*x;returny;}

主函数已正确定义m、a、b变量并赋值,并调用fun函数计算:

m=a4+b4-(a+b)3。

实现这一计算的函数调用语句为______。

2、以下程序的功能是调用函数fun计算:

m=1-2+3-4+…+9-10,并输出结果。

请填空。

intfun(intn){intm=0,f=1,i;

for(i=1;i<=n;i++){m+=i*f;f=______;}returnm;}f=(-1)*f

main(){printf(“%d\n”,_____);}fun(10)

3、补全程序,使程序能正确运行。

____(double,double);doublemax

main(){doublex,y;scanf(“%lf”%lf,&x,&y);printf(“%lf\n”,max(x,y);)

doublemax(doublea,boubleb){return(a>b?

a:

b);}

4、有以下程序:

intf(intx,inty){return(y-x)*x;}

main(){inta=3,b=4,c=5,d;d=f(f(3,4),f(3,5));printf(“%d\n”,d);}

程序运行后的输出结果是_____。

八、指针

选择题

1、设有定义:

intn=0,*p=&n,**q=&p;下列选项中,正确的赋值语句是__。

A)p=1B)*q=2C)q=pD)*p=5

2、有以下程序:

voidfun(char*a,char*b){a=b;(*a)++;}

main(){charc1=’A’,c2=’a’,*p1,*p2;p1=&c1;p2=&c2;fun(p1,p2);printf(“%c%c\n”,c1,c2);}

程序运行后的输出结果是___。

A)AbB)aaC)AaD)Bb

3、有以下程序:

#include

main(){printf(“%d\n”,NULL);}

程序运行后的输出结果是___。

A)0B)1C)-1D)NULL没定义,出错

4、若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是___。

A)int*i=NULL;

scanf(“%d”,i);

B)float*f=NULL;

*f=10.5;

C)chart=’m’,*c=&t;

*c=&t;

D)long*L;

L=’\0’;

5、已经定义以下函数:

fun(int*p){return*p;}

该函数的返回值是___。

A)不确定值B)形参p中存放的值

C)形参p所指存储单元中的值D)形参p的地址值

6、有以下程序段:

main(){inta=5,*b,**c;c=&b;b=&a;…}

程序在执行了c=&b;b=&a;语句后,表达式**c的值是___。

A)变量a的地址B)变量b中的值

C)变量a中的值D)变量b的地址

7、已经定义以下函数:

fun(char*p2,char*p1){while((*p2=*p1)!

=’\0’){p1++;p2++;}}

函数的功能是____。

A)将p1所指字符串复制到p2所指内存空间

B)将p1所指字符串的地址赋给指针p2

C)对p1和p2两个指针所指字符进行比较

D)检查p1和p2两个指针所指字符串中是否有’\0’

8、有以下程序段:

#include

inta=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;

则以下选项中错误的语句是____。

A)*q=0B)w=pC)*p=aD)*p=*w

9、有以下程序:

int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}

main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf(“%d,%d,%d\n”,*p,*q,*r);}

程序运行后的输出结果是____。

A)7,8,8B)7,8,7C)8,7,7D)8,7,8

填空题

1、下面的sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指内存空间中,形成一个新字符串s。

请补全程序。

voidsstrcpy(char*s,char*t){while(*s++=____);}*t++

main(){charstr1[100],str2[]=”abcdefgh”;sstrycpy(str1,str2);printf(“%s\n”,str1);}

2、以下程序的运行结果是___。

efgh

#include

char*ss(char*s){returns+strlen(s)/2;}

main(){char*p,*str=”abcdefgh”;p=ss(str);printf(“%s\n”,p);}

补充

1、对于基类型相同的2个指针变量,不能进行的运算是___。

A)

2、有如下程序段 int*p,a=10,b=1;p=&a;a=*p+b;执行该程序段后,a的值为_B__。

A)12B)11C)10D)编译出错

3、以下正确的程序段是___。

A)int*p;

scanf(“%d”,p);

B)int*s,k;

*s=100;

C)int*s,k;

char*p,c;

s=&k;p=&c;*p=’a’;

D)int*s,k;

char*p,c;s=&k;

p=&c;s=p;*s=1;

4、若有以下程序段:

doubler=99,*p=&r;*p=r;则以下正确的叙述是__。

A)以上两处的*p含义相同,都是给指针变量p赋值

B)在doubler=99,*p=&r;中,把r的地址赋给了p所指的存储单元

C)语句*p=r;把变量r的值赋给指针p

D)语句*p=r;将变量r的值赋给指针p所指的存储单元

5、有以下函数:

char*fun(char*p){returnp;}该函数的返回值是__。

A)无确切的值B)形参p中存放的地址值

C)一个临时存储单元的地址D)形参p自身的地址值

6、下列程序执行后的输出结果是___。

intb=2;

intfunc(int*a){b+=*a;return(b);}

main(){inta=2,res=2;res+=func(&a);printf(“%d\n”,res);}

A)4B)6C)8D)10

7、下列程序的输出结果是___。

voidfunc(int*a,intb[]){b[0]=*a+6;}

main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf(“%d\n”,b[0]);}

A)6B)7C)8D)9

8、若有以下调用语句,则不正确的fun函数首部是___。

main(){inta[50],n;

……

fun(n,&a[9]);

……}

A)voidfun(intm,intx[])B)voidfun(ints,inth[41])

C)voidfun(intp,in*s)D)voidfun(intn,inta)

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2