C语言综合习题及答案Word文件下载.docx

上传人:b****5 文档编号:8556711 上传时间:2023-05-11 格式:DOCX 页数:24 大小:28.83KB
下载 相关 举报
C语言综合习题及答案Word文件下载.docx_第1页
第1页 / 共24页
C语言综合习题及答案Word文件下载.docx_第2页
第2页 / 共24页
C语言综合习题及答案Word文件下载.docx_第3页
第3页 / 共24页
C语言综合习题及答案Word文件下载.docx_第4页
第4页 / 共24页
C语言综合习题及答案Word文件下载.docx_第5页
第5页 / 共24页
C语言综合习题及答案Word文件下载.docx_第6页
第6页 / 共24页
C语言综合习题及答案Word文件下载.docx_第7页
第7页 / 共24页
C语言综合习题及答案Word文件下载.docx_第8页
第8页 / 共24页
C语言综合习题及答案Word文件下载.docx_第9页
第9页 / 共24页
C语言综合习题及答案Word文件下载.docx_第10页
第10页 / 共24页
C语言综合习题及答案Word文件下载.docx_第11页
第11页 / 共24页
C语言综合习题及答案Word文件下载.docx_第12页
第12页 / 共24页
C语言综合习题及答案Word文件下载.docx_第13页
第13页 / 共24页
C语言综合习题及答案Word文件下载.docx_第14页
第14页 / 共24页
C语言综合习题及答案Word文件下载.docx_第15页
第15页 / 共24页
C语言综合习题及答案Word文件下载.docx_第16页
第16页 / 共24页
C语言综合习题及答案Word文件下载.docx_第17页
第17页 / 共24页
C语言综合习题及答案Word文件下载.docx_第18页
第18页 / 共24页
C语言综合习题及答案Word文件下载.docx_第19页
第19页 / 共24页
C语言综合习题及答案Word文件下载.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言综合习题及答案Word文件下载.docx

《C语言综合习题及答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言综合习题及答案Word文件下载.docx(24页珍藏版)》请在冰点文库上搜索。

C语言综合习题及答案Word文件下载.docx

1]D)a[0][3]

13.若有说明:

inta[][4]={0,0};

则下面不正确的叙述是【D】

A)数组a的每个元素都可得到初值0B)二维数组a的第一维大小为1

C)因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1

D)有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

14.下列选项中错误的说明语句是【D】

A)chara[]={′t′,′o′,′y′,′o′,′u′,′\0′};

B)chara[]={"

toyou\0"

};

C)chara[]="

;

D)chara[]=′toyou\0′;

a1[]="

abc"

a2[80]="

1234"

将a1串连接到a2串后面的语句是

A)strcat(a2,a1);

B)strcpy(a2,a1);

C)strcat(a1,a2);

D)strcpy(a1,a2);

15.若函数调用时参数为基本数据类型的变量,以下叙述正确的是【C】。

  A)实参与其对应的形参共占存储单元

  B)只有当实参与其对应的形参同名时才共占存储单元

  C)实参与对应的形参分别占用不同的存储单元

  D)实参将数据传递给形参后,立即释放原先占用的存储单元

16.函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【D】。

  A)实参将其地址传递给形参,并释放原先占用的存储单元

  B)实参将其地址传递给形参,调用结束时形参再将其地址回传给实参

  C)实参将其值传递给形参,调用结束时形参再将其值回传给实参

  D)实参将其值传递给形参,调用结束时形参并不将其值回传给实参

17.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是【D】。

  A)函数的实参和其对应的形参共占同一存储单元

  B)形参只是形式上的存在,不占用具体存储单元

  C)同名的实参和形参占同一存储单元

  D)函数的形参和实参分别占用不同的存储单元

18.若用数组名作为函数调用的实参,则传递给形参的是【A】。

  A)数组的首地址B)数组的第一个元素的值

  C)数组中全部元素的值D)数组元素的个数

19若函数调用时,用数组名作为函数的参数,以下叙述中正确的是【A】。

  A)实参与其对应的形参共用同一段存储空间

  B)实参与其对应的形参占用相同的存储空间

  C)实参将其地址传递给形参,同时形参也会将该地址传递给实参

  D)实参将其地址传递给形参,等同实现了参数之间的双向值的传递

20.如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量【C】。

  A)为全局变量,在本程序文件范围内有效

  B)为局部变量,只在该函数内有效

  C)为局部变量,只在该复合语句中有效

  D)定义无效,为非法变量

21.C语言中函数返回值的类型是由【D】决定。

  A)return语句中的表达式类型

  B)调用函数的主调函数类型

  C)调用函数时临时

  D)定义函数时所指定的函数类型

22.有以下程序

#include<

>

main()

{charp[]={′a′,′b′,′c′},q[10]={′a′,′b′,′c′};

printf("

%d%d\n"

strlen(p),strlen(q));

}

以下叙述中正确的是【B】

A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3

B)由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3

C)由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3

D)由于p和q数组中都没有字符串结束符,故长度都不能确定

23定义一个void型函数意味着调用该函数时,函数【C】

  A)通过return返回一个用户所希望的函数值

  B)返回一个系统默认值

  C)没有返回值

  D)返回一个不确定的值

24.若定义函数float*fun(),则函数fun的返回值为【B】。

  A)一个实数B)一个指向实型变量的指针

  C)一个指向实型函数的指针D)一个实型函数的入口地址

25.下列数组说明中,正确的是【D】

A)staticcharstr[]="

China"

B)staticcharstr[];

str="

C)staticcharstr1[5],str2[]={"

str1=str2;

D)staticcharstr1[],str2[];

str2={"

strcpy(str1,str2);

26.在C语言程序中,当调用函数时【B】

A)实参和形参共用一个存储空间

B)实参和形参各占一个独立的存储空间

C)由用户指定实参和形参是否共用存储空间

D)由系统确定实参和形参是否共用存储空间

27.关于以下fun函数的功能叙述中,正确的是【A】。

intfun(char*s)

{

char*t=s;

while(*t++);

t--;

return(t-s);

} 

  A)求字符串s的长度 B)比较两个串的大小

  C)将串s复制到串t D)求字符串s所占字节数

21.下面程序段运行后的输出结果是【B】(假设程序运行时输入5,3回车)

inta,b;

voidswap()

intt;

t=a;

a=b;

b=t;

}

main()

scanf("

%d,%d"

&

a,&

b);

swap();

printf("

a=%d,b=%d\n"

a,b);

  A)a=5,b=3B)a=3,b=5C)5,3D)3,5

22.以下程序运行后的输出结果是【D】。

fun(inta,intb)

if(a>

b)returna;

elsereturnb;

intx=3,y=8,z=6,r;

r=fun(fun(x,y),2*z);

printf("

%d\n"

r);

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

23.以下程序的运行结果是【C】。

voidf(inta,intb)

intx=1,y=3,z=2;

if(x>

y)f(x,y);

elseif(y>

z)f(x,z);

elsef(x,z);

%d,%d,%d\n"

x,y,z);

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

25有以下程序

#include<

intf(intx)

{inty;

if(x==0||x==1)return(3);

y=x*x-f(x-2);

returny;

}

{intz;

z=f(3);

z);

程序的运行结果是【C】

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

26.有以下程序

voidss(char*s,chart)

{while(*s)

{if(*s==t)*s=t-′a′+′A′;

s++;

}}

{charstr1[100]="

abcddfefdbd"

c=′d′;

ss(str1,c);

%s\n"

str1);

程序运行后的输出结果是【B】

A)ABCDDEFEDBDB)abcDDfefDbD

C)abcAAfefAbAD)Abcddfefdbd

26以下程序运行后的输出结果为【B】。

int*f(int*x,int*y)

if(*x<

*y)returnx;

elsereturny;

inta=7,b=8,*p,*q,*r;

p=&

a,q=&

b;

r=f(p,q);

*p,*q,*r);

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

27.以下程序的正确运行结果是【A】。

#inclued<

intk=4,m=1,p;

p=func(k,m);

printf(“%d”,p);

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

func(inta,intb)

staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

  A)8,17B)8,16C)8,20D)8,8

28.有以下程序

intfun(intn)

if(n==1)return1;

elsereturn(n+fun(n-1));

intx;

%d"

&

x);

x=fun(x);

x);

  程序执行时,若输入10,程序的输出结果是【A】。

  A)55  B)54  C)65  D)45

29.下面是一个计算1至m的阶乘并依次输出的程序。

程序中应填入的正确选项是【D】。

doubleresult=1;

factorial(intj)

result=result*j;

return;

intm,i=0,x;

Pleaseenteraninteger:

"

);

m);

for(;

i++<

m;

{

x=factorial(i);

%d!

=%.0f\n"

【】);

}

  A)i,factorial(i)B)i,xC)j,xD)i,result

30.下面程序段的运行结果是【D】

char*s="

abcde"

s+=2;

s);

A)cdeB)字符′c′C)字符′c′的地址D)无确定的输出结果

31.有以下程序

voidfun(int*s,intn1,intn2)

{inti,j,t;

i=n1;

j=n2;

while(i<

j)

{t=s[i];

s[i]=s[j];

s[j]=t;

i++;

j--;

}}

{inta[10]={1,2,3,4,5,6,7,8,9,0},k;

fun(a,0,3);

fun(a,4,9);

fun(a,0,9);

for(k=0;

k<

l0;

k++)

a[k]);

\n"

32.下面程序的输出结果是

{char*p1="

*p2="

ABC"

str[50]="

xyz"

strcpy(str+2,strcat(p1,p2));

str);

A)xyzabcABCB)xyabcABCC)zabcABCD)yzabcABC

33.有以下程序

voidf(int*q)

{inti=0;

for(;

i<

5;

i++)(*q)++;

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

f(a);

for(i=0;

i++)

%d,"

a[i]);

程序运行后的输出结果是【A】

A)6,2,3,4,5,B)2,2,3,4,5,C)1,2,3,4,5,D)2,3,4,5,6,

34.有以下程序

typedefstruct{

charname[9];

charsex;

floatscore[2];

}STU;

voidf(STUa)

{STUb={"

Zhao"

′m′,,};

inti;

strcpy,;

=;

2;

i++)[i]=[i];

{STUc={"

Qian"

′f′,,};

f(c);

%s,%c,%,%\n"

,,[0],[1]);

A)Qian,f,85,90B)Qian,m,95,92

C)Zhao,f,95,92D)Zhao,m,85,90

35.有以下程序

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:

a++;

break;

case1:

b++;

case2:

b++;

case3:

程序的运行结果是【D】

A)a=1,b=0B)a=2,b=2

C)a=1,b=1D)a=2,b=1

36.下列程序的输出结果是【C】

#include"

{inti,a=0,b=0;

for(i=1;

10;

i++)

{if(i%2==0)

{a++;

continue;

a=%d,b=%d"

A)a=4,b=4B)a=5,b=4C)a=4,b=5D)a=5,b=5

37.已知

#intt=0;

while(t=1)

{...}

则以下叙述正确的是【A】

A)循环控制表达式的值为1B)循环控制表达式的值为0

C)循环控制表达式不合法D)以上说法都不对

38.有如下程序

{charch[2][5]={“6937”,”8254”},*p[2];

inti,j,s=0;

i++)p[i]=ch[i];

for(j=0;

p[i][j]>

’\0’;

j+=2)

s=10*s+p[i][j]-‘0’;

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

该程序的输出结果是【C】。

A)69825B)63825C)6385D)693825

39.下面程序的输出是【B】

{intnum=0;

while(num<

=2)

{num++;

num);

}}

A)1B)1C)1D)1

222

33

4

40以下能正确定义一维数组的选项是【B】

A)inta[5]={0,1,2,3,4,5};

B)chara[]={'

0'

’1’,’2’,’3’,’4’,’5’,’\0’};

C)chara={'

A’,’B’,’C’};

D)inta[5]="

0123"

41.若有如下定义和语句,且0<

=i<

5,下面【A】是对数值为3数组元素的引用

inta[]={1,2,3,4,5},*p,i;

  p=a;

A)*(a+2)B)a[p-3]C)p+2D)a+3

42.下列【B】表达式的值为真

  a=5;

b=8;

c=10;

d=0

A)a*2>

8+2B)a&

&

dC)(a*2-c)||dC)a-b<

C*D

43.下列字符数组长度为5的是【A】

  A)chara[]={‘h’,‘a’,‘b’,‘c’,‘d’};

  B)charb[]={‘h’,‘a’,‘b’,‘c’,‘d’,‘\0’};

  C)charc[10]={‘h’,‘a’,‘b’,‘c’,‘d’};

  D)chard[6]={‘h’,‘a’,‘b’,‘c’,‘\0’}

44.执行下列程序后,其结果为【D】

  inta[]={2,4,6,8,10,12};

*p;

  *(p+4=2;

  printf(“%d,%d\n”,*p,*(p+4));

  A)0,10B)0,2C)2,10D)2,2

45.有下列结构体,对该结构体变量stu的成员项引用不正确的是【D】

  structstudent

  {intm;

  floatn;

  }stu,*p;

  A.B)p->

mC)(*p).mD)下列函数中不能用于对文件进行输入输出操作的是【B】

A)fscanf()B)printf()C)fgetc()D)fputs()

47.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是【B】。

A)"

ab+"

B)"

wb+"

C)"

rb+"

D)"

ab"

48..若fp是指向某文件的指针,文件操作结束之后,关闭文件指针应使用下列【D】语句

A)fp=fclose();

B)fp=fclose;

C)fclose;

D)fclose(fp);

二、程序填空题

1.以下程序实现了计算x的n次方,请将程序填写完整。

floatpower(floatx,intn)

{inti;

floatt=1;

for(i=1;

=n;

i++)

t=t*x;

;

【returnt】

main()

{floatx,y;

intn;

%f,%d"

x,&

n);

y=power(x,n);

%\n"

y);

2.以下程序实现了求两个数的最大公约数,请将程序填写完整。

intdivisor(inta,intb)

{intr;

r=a%b;

while()

【r!

=0】

{a=b;

b=r;

returnb;

voidmain()

{inta,b,d,t;

scanf("

%d%d"

a,&

if(a<

b)

{t=a;

d=divisor(a,b);

\ngcd=%d"

d);

3.给定程序中,函数fun的功能是:

找出100至x(x≤999)之间各位上的数字之和为15的所有整数,然后输出;

符合条件的整数个数作为函数值返回。

intfun(intx)

{intn,s1,s2,s3,t;

n=0;

;

【t=100】

while(t<

=999)

{s1=t%10;

s2=(t/10)%10;

s3=t/100;

if()

【s1+s2+s3==15】

{printf("

%d"

t);

n++;

____;

}【t++】

returnn;

{intx=-1;

while(x>

999||x<

0)

{printf("

Pleaseinput(0<

x<

=999):

"

\nTheresultis:

%d\n"

);

}【fun(x)】

4.输入N个实数,输出其中的最大值、最小值。

voidmain()

{intn,i;

floatno1,nmax,nmin;

%f"

no1);

nmax=no1;

nmin=no1;

for(i=2;

【&

no1】

if(no1>

nmax)nmax=no1;

;

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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