《C语言程序设计》期末复习题Word格式.docx

上传人:b****6 文档编号:17362218 上传时间:2022-12-01 格式:DOCX 页数:19 大小:26.86KB
下载 相关 举报
《C语言程序设计》期末复习题Word格式.docx_第1页
第1页 / 共19页
《C语言程序设计》期末复习题Word格式.docx_第2页
第2页 / 共19页
《C语言程序设计》期末复习题Word格式.docx_第3页
第3页 / 共19页
《C语言程序设计》期末复习题Word格式.docx_第4页
第4页 / 共19页
《C语言程序设计》期末复习题Word格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

《C语言程序设计》期末复习题Word格式.docx

《《C语言程序设计》期末复习题Word格式.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》期末复习题Word格式.docx(19页珍藏版)》请在冰豆网上搜索。

《C语言程序设计》期末复习题Word格式.docx

A.可以用*p表示s[0]

B.s数组中元素的个数和p所指字符串长度相等

C.s和p都是指针变量

D.数组s中的内容和指针变量p中的内容相等

9.以下正确的函数定义是()。

A.doublesum(intx,inty)B.doublesum(intx,y)

{z=x+y;

returnz;

}{intz;

C.sum(x,y)D.doublesum(intx,inty)

{intx,y;

doublez;

{doublez;

z=x+y;

}z=x+y;

}

10.已知学生信息描述为

structstudent

{

intno;

charname[20];

charsex;

struct{intyear;

intmonth;

intday;

}birth;

};

structstudents;

设变量s中的“生日”应是“1984年11月11日”,下列对“生日”的正确赋值方式是()。

A.year=1984;

month=11;

day=11;

B.birth.year=1984;

birth.month=11;

birth.day=11;

C.s.year=1984;

s.month=11;

s.day=11;

D.s.birth.year=1984;

s.birth.month=11;

s.birth.day=11;

11.下列数据中,为字符串常量的是()。

A.′A′B.Howdoyoudo.C."

A"

D.$abc

12.以下运算符中,优先级最高的运算符是()。

A.||B.%C.!

D.==

13.执行以下程序段后,输出结果和a的值是()。

inta=10;

printf("

%d"

++a);

A.10和10B.10和11C.11和10D.11和11

14.有定义语句:

intx,y;

若要通过scanf("

%d%d"

&

x,&

y);

语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,正确的是()。

A.1112<

回车>

B.11,<

空格>

12<

C.11,12<

D.11,<

12<

15.下列定义数组的语句中,正确的是(  )。

A.intx[0..10];

B.intx[];

C.#defineN10D.intN=10;

intx[N];

intx[N];

16.若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是()。

A.intp=&

x;

B.int*p=x;

C.*p=*x;

D.int*p=&

17.以下不是无限循环的语句为()。

A.for(y=0,x=1;

x>

++y;

x=i++)i=x;

B.for(;

;

x++=i);

C.while

(1){x++;

D.for(i=10;

i--)sum+=i;

18.有以下函数,函数的功能是(  )。

intfun(char*x,char*y)

{ intn=0;

  while((*x==*y)&

*x!

='

\0'

){x++;

y++;

n++;

  returnn;

A.将y所指字符串赋给x所指存储空间

B.查找x和y所指字符串中是否有'

C.统计x和y所指字符串中最前面连续相同的字符个数

D.统计x和y所指字符串中相同的字符个数

19.语言中,定义结构体的保留字是()。

A.unionB.structC.enumD.typedef

20.应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为()。

A.openB.fopenC.closeD.fclose

21.在C语言中,if语句后的一对原括号中,用以决定分支的流程的表达式()。

A.只能用逻辑表达式B.只能用关系表达式

C.只能用逻辑表达式或关系表达式D.可用任意表达式

22.假设所有变量均为整型,表达式:

a=2,b=5,a>

b?

a++:

b++,a+b的值是()。

A.7B.8C.9D.2

23.若有如下代码,则a的值为()。

inta=1,b=2,c=3;

if(a>

b)a=b;

c)a=c;

A.1B.2C.3D.不一定

24.假定所有变量均已正确定义,下列程序段运行后x的值是()。

k1=1;

k2=2;

k3=3;

x=15;

if(!

k1)x--;

elseif(k2)x=4;

elsex=3;

A.14B.4C.15D.3

25.以下for循环的执行次数是for(x=0,y=0;

(y=123)&

(x<

4);

x++);

()。

A.是无限循环B.循环次数不定C.4次D.3次

26.以下运算符中,优先级最高的运算符是()。

A.||B.%C.!

D.==

27.有定义语句:

%d,%d"

语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是()。

28.chara[10];

不能将字符串"

abc"

存储在数组中的是()。

A.strcpy(a,"

);

B.a[0]=0;

strcat(a,"

C.a="

D.inti;

for(i=0;

3;

i++)a[i]=i+97;

a[i]=0;

29.以下程序段char*alp[]={"

ABC"

"

DEF"

GHI"

intj;

puts(alp[1]);

的输出结果是()。

A.AB.BC.DD.DEF

30.若执行fopen函数时发生错误,则函数的返回值是()。

A.地址值B.0C.1D.EOF

二、读程序,写出程序的运行结果

1.以下程序的输出结果是()。

#include<

stdio.h>

voidmain()

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

switch(x)

{

case0:

switch(y)

case0:

a++;

case1:

b++;

a=a+5;

b=b+5;

printf(“a=%d,b=%d\n”,a,b);

2.以下程序的输出结果是()

#include<

voidmain()

{intx=-5,y=2,z=1;

if(x<

y)

if(y<

0)z=0;

elsez=z+1;

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

3.以下程序的输出结果是:

()

#include"

stdio.h"

voidmain()

intj,k,x[4][4],y[4][4];

for(j=0;

j<

4;

j++)

for(k=0;

k<

k++)

x[j][k]=j+k;

y[k][j]=x[j][k];

{for(k=0;

printf("

%d"

y[j][k]);

\n"

4.以下程序的输出结果是:

{inti,j;

for(i=j=1;

10;

j++,i++)

if(j==5)

break;

if(i%2)

continue;

i=%d,j=%d\n"

i,j);

5.若有以下程序段,则输出结果是( 

 

)。

voidmain()

chars2[]="

\"

c:

\\abc.dat\"

"

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

}

6.以下程序的输出结果是:

intfun(intn)

{ints;

if(n==1||n==0)s=5;

elses=n+fun(n-1);

returns;

{

%ld\n"

fun(3));

7.以下程序的输出结果是:

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

inty=120,x,*p;

p=&

a[1];

for(x=0;

x<

x++)y+=*(p+x);

printf("

y=%d\n"

y);

8.以下程序的输出结果是:

#include<

voidsub(ints[],inty)

staticintt=3;

y=s[t];

t--;

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

i<

i++)

sub(a,x);

printf(“%d”,x);

printf(“\n”);

9.以下程序段运行后x的值是:

k2=0;

10.以下程序的输出结果是:

main()

{ints=0,n;

for(n=0;

n<

n++)

{switch(n)

{default:

s+=5;

case1:

s+=1;

case2:

s+=2;

case3:

s+=3;

%d\n"

s);

11.以下程序段运行后sum的值是:

inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;

i++)sum+=a[i][2-i];

12.以下程序的输出结果是:

intmain()

inti=10,n=0,m=0;

do

if(i%2!

=0)

n=n+i;

else

m=m+i;

i--;

}while(i>

=0);

n=%d,m=%d\n"

n,m);

return0;

13.以下程序的输出结果是:

inta,b;

for(a=1,b=1;

=100;

a++)

if(b>

20)break;

if(b%4==1)

{

b=b+4;

continue;

}

b=b-5;

b=%d\n"

b);

14.以下程序的输出结果是:

funa(inta)

{intb=0;

staticintc=4;

a=c++,b++;

return(a);

{inta=2,i,k;

2;

i++)

k=funa(a++);

k);

15.以下程序的输出结果是:

voidmain(void)

chara[]="

ABCDEFGH"

b[]="

abcDefGh"

char*p1,*p2;

intk;

p1=a;

p2=b;

=7;

if(*(p1+k)==*(p2+k))

printf("

%c"

*(p1+k));

16.以下程序的输出结果是:

string.h>

inti;

charstr1[30]="

str2[3][5]={"

defg"

hij\0"

klm"

for(i=1;

strcat(str1,str2[i]);

puts(str1);

17.以下程序的输出结果是:

intm=7,n=4;

floata=38.4,b=6.4,x;

x=m/2+n*a/b+1/2;

%.4f\n"

x);

18.以下程序段的输出结果是:

inta=3,b=2,c=1;

b>

c)a=b;

elsea=c;

a);

19.以下程序的输出结果是:

intfunc(intx,inty)

{return(x+y);

inta=1,b=2,c=3,d=4,e=5;

func((a+b,b+c,c+a),(d+e)));

20.下列程序执行后的输出结果是()。

inta[3][3],*p,i;

a[0][0];

for(i=0;

9;

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

a[1][2]);

21.以下程序的输出结果是:

voidfun(inta[]);

{inti,a[5]={1,2,3};

fun(a);

for(i=0;

5;

%5d"

a[i]);

voidfun(inta[])

{inti;

a[i]+=5;

22.以下程序的输出结果是:

{inti,f[10];

f[0]=f[1]=1;

for(i=2;

f[i]=f[i-2]+f[i-1];

f[i]);

23.以下程序的输出结果是:

{intm=1,n=2,*p=&

m,*q=&

n,*r;

r=p;

p=q;

q=r;

%d,%d,%d,%d\n"

m,n,*p,*q);

24.以下程序的输出结果是:

charstr[20]="

abcdef"

strcpy(str,"

opqrst"

str[5]='

strlen(str)-1;

putchar(str[i]);

三、程序填空

1.任意输入一个非负的整数x,求该数的逆序数y,并判断x、y能否被17整除。

{intx,a,y,t;

请输入一个非负的整数\n"

scanf("

x);

t=x;

【1】

{a=x%10;

//取得个位数字

【2】;

//获得逆序数

x=x/10;

//去掉个位数字

}while(【3】);

if(【4】)printf("

x能被17整除\n"

elseprintf("

x不能被17整除\n"

if(y%17==0)printf("

y能被17整除\n"

y不能被17整除\n"

2.有一行文字,要求删去某一个字符。

此行文字和要删去的字符均由键盘输入,要删去的字符以字符形式输入(如输入a表示要删去所有的a字符)。

#include<

voidmain()

{/*str1表示原来的一行文字,str2表示删除指定字符后的文字*/

charstr1[100],str2[100];

charch;

inti=0,k=0;

printf(“pleaseinputansentence:

\n”);

gets(【5】);

ch);

for(i=0;

【6】;

if(str1[i]!

=ch)

{str2[【7】]=str1[i];

k++;

str2[【8】]='

\n%s\n"

str2);

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

求k!

,所求阶乘的值作为函数值返回。

例如:

若k=10,则应输出:

3628800。

请按要求把程序补充完整,使它能得出正确的结果。

longfun(intk)

{if(k>

0)

return(【9】);

elseif(【10】)

return1L;

{intk=10;

%d!

=%ld\n"

k,fun(k));

4.函数fun的功能是:

逆置数组元素中的值。

形参n给出数组中的数据的个数。

若a所指数组中的数据依次为:

1、2、3、4、5、6、7、8、9,则逆置后依次为:

9、8、7、6、5、4、3、2、1。

请按要求把空白部分补充完整。

voidfun(inta[],intn)

{ inti,t;

  for(i=0;

【11】;

  {t=a[i];

  a[i]=a[n-1-【12】];

  【13】=t;

 } }

5.下面的程序是输出1~100之间的全部素数,其中函数prime的功能是判断一个数n是否是素数。

当n是素数时,函数prime的返回值为1;

当n不是素数时,函数prime的返回值为0。

请按要求把程序补充完整。

math.h>

intprime(intn)

{inti;

=sqrt(n);

if(【14】)return0;

return1;

【15】;

if(【16】)printf("

%5d"

i);

6.下面程序的功能是:

由键盘输入10个整数,计算这10个整数中的奇数和与偶数和。

{inta,b,c,i;

a=c=0;

=10;

{scanf("

b);

if(【17】)a=a+b;

else【18】;

偶数的和=%d\n"

奇数的和=%d\n"

c);

7.下面给定程序的功能是:

从键盘输入的字符中统计数字字符的个数,用换行符结束循环。

{intn=0,c;

c=getchar();

while(【19】)

{if(【20】)

n++;

【21】个数字\n"

n);

8.程序的功能是:

求矩阵的转置。

stdlib.h>

std

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

当前位置:首页 > IT计算机 > 计算机软件及应用

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1