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

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

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

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

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

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

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

5、有以下程序:

voidsort(inta[],intn)

{inti,j,t;

for(i=0;

i<

n-1;

i+=2)

for(j=i+2;

n;

j+=2)

if(a[i]<

a[j]){t=a[i];

a[i]=a[j];

a[j]=t;

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

sort(aa);

for(i=0;

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;

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;

N;

i++)scanf("

%d"

_______);

for(i=0i<

i++)

{if 

(_____________) 

_____________

printf("

%3d"

a[i]);

}

\n"

);

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

{

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

for(j=0;

j++)

if(_____)sum=sum+_______;

sum=%d\n"

sum);

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

main()

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

scanf("

&

x);

y=x;

i=0;

do

{u=y/2;

a[i]=y%2;

i++;

y=u;

}while(y>

=1)

for(j=i-1;

j>

j--)

a[j]);

<

/P<

p>

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

请填空。

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

inti,j,m;

for(i=1;

5;

{m=a[i];

j=____;

while(j>

=0&

&

m>

a[j])

{_______;

j--;

_______=m;

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

#include<

stdio.h>

string.h>

{

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

inti;

i++)gets(str[i]);

strcpy(s,_______);

if(strcmp(str[2],s)<

0)strcpy(s,str[2]);

%s\n"

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

#include<

{chars[]="

ABCCDA"

;

intk;

charc;

for(k=1;

(c=s[k])!

='

\0'

k++)

{switch(c)

{case'

A'

:

putchar('

%'

continue;

case 

'

B'

++k;

break;

default:

*'

C'

'

putchar('

#'

七、函数

典型考题

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

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

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

 

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

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

charfun(charx,chary){if(x<

y)returnx;

returny;

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

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

程序运行结果是___。

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

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>

returnz;

C)max(intx,inty){intz;

return(z);

D)intmax(intx,inty){return(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

intf1(intx,inty){returnx>

intf2(intx,inty){returnx>

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<

y){t=x;

x=y;

y=t;

}}

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;

=n;

i++)y=y*x;

主函数已正确定义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;

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,&

printf(“%lf\n”,max(x,y);

doublemax(doublea,boubleb){return(a>

b?

a:

b);

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

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

#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=&

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=&

语句后,表达式**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、有以下程序段:

inta=4,b=3,*p,*q,*w;

p=&

q=&

w=q;

q=NULL;

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

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

int*f(int*x,int*y){if(*x<

*y)returnx;

elsereturny;

main(){inta=7,b=8,*p,*q,*r;

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

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

main(){char*p,*str=”abcdefgh”;

p=ss(str);

printf(“%s\n”,p);

补充

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

A)<

B)=C)+D)-

2、有如下程序段 int*p,a=10,b=1;

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;

c;

*p=’a’;

D)int*s,k;

s=p;

*s=1;

4、若有以下程序段:

doubler=99,*p=&

r;

*p=r;

则以下正确的叙述是__。

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

B)在doubler=99,*p=&

中,把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