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

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

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

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

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

《C语言程序设计》期末复习题

《C语言程序设计》期末复习题

一、选择题

1.能将高级语言编写的源程序转换成目标程序的是()

A.链接程序B.解释程序C.编译程序D.编辑程序

2.设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是()。

A.10

C.a>10&&a<15D.!

(a<=10)&&!

(a>=15)

3.当调用函数时,实参是一个数组名,则向函数传送的是()。

A.数组的长度B.数组的首地址

C.数组每一个元素的地址D.数组每个元素中的值

4.执行下面的程序段后,k的值是()

intk=1,n=325;

do{k*=n%10;n/=10;}while(n);

A.3B.30C.523D.325

5.若有以下数组说明,则i=6;a[a[i]]元素数值是( )。

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

A.3B.8C.6D.5

6.若变量已正确定义,要求程序段完成求5!

的计算,不能完成此操作的程序段是()

A.for(i=1,p=1;i<=5;i++)p*=i;

B.for(i=1;i<=5;i++){p=1;p*=i;}

C.i=1;p=1;while(i<=5){p*=i;i++;}

D.i=1;p=1;do{p*=i;i++;}while(i<=5);

7.若有:

inta[][3]={{1,2,3},{4,5},{6,7},{8}};则数组a的第一维的大小为:

()

A.12B.3C.4D.无确定值

8.设有如下程序段,则执行p=s;语句后,以下叙述正确的是()。

chars[20]=“Bejing”,*p;

p=s;

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;returnz;}

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

{intx,y;doublez;{doublez;

z=x+y;returnz;}z=x+y;returnz;}

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

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所指字符串中是否有'\0'

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;

if(a>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.有定义语句:

intx,y;若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是()。

A.1112<回车>B.11,<空格>12<回车>

C.11,12<回车>D.11,<回车>12<回车>

28.chara[10];不能将字符串"abc"存储在数组中的是()。

A.strcpy(a,"abc");B.a[0]=0;strcat(a,"abc");

C.a="abc";D.inti;for(i=0;i<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

voidmain()

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

switch(x)

{

case0:

switch(y)

{

case0:

a++;

case1:

b++;

}

case1:

switch(y)

{

case0:

a=a+5;

case1:

b=b+5;

}

}

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

}

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

#include

voidmain()

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

if(x

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<4;k++)

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

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

for(k=0;k<4;k++)

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

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

{for(k=0;k<4;k++)

printf("%d",y[j][k]);

printf("\n");

}

}

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

()

#include

voidmain()

{inti,j;

for(i=j=1;j<10;j++,i++)

{

if(j==5)

break;

if(i%2)

continue;

printf("i=%d,j=%d\n",i,j);

}

}

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

#include

voidmain()

{

chars2[]="\"c:

\\abc.dat\"";

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

}

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

()

#include

intfun(intn)

{ints;

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

elses=n+fun(n-1);

returns;

}

voidmain()

{

printf("%ld\n",fun(3));

}

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

()

voidmain()

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

inty=120,x,*p;

p=&a[1];

for(x=0;x<3;x++)y+=*(p+x);

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

}

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

()

#include

voidsub(ints[],inty)

{

staticintt=3;

y=s[t];

t--;

}

voidmain()

{

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

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

{

sub(a,x);

printf(“%d”,x);

}

printf(“\n”);

}

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

()

k1=1;k2=0;k3=3;x=15;

if(!

k1)x--;

elseif(k2)x=4;

elsex=3;

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

()

#include

main()

{ints=0,n;

for(n=0;n<4;n++)

{switch(n)

{default:

s+=5;

case1:

s+=1;

case2:

s+=2;

case3:

s+=3;

}

}

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

}

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

()

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

for(i=0;i<3;i++)sum+=a[i][2-i];

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

()

#include

intmain()

{

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

do

{

if(i%2!

=0)

n=n+i;

else

m=m+i;

i--;

}while(i>=0);

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

return0;

}

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

()

#include

voidmain()

{

inta,b;

for(a=1,b=1;a<=100;a++)

{

if(b>20)break;

if(b%4==1)

{

b=b+4;

continue;

}

b=b-5;

}

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

}

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

()

#include

funa(inta)

{intb=0;

staticintc=4;

a=c++,b++;

return(a);

}

main()

{inta=2,i,k;

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

k=funa(a++);

printf("%d\n",k);

}

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

()

#include

voidmain(void)

{

chara[]="ABCDEFGH",b[]="abcDefGh";

char*p1,*p2;

intk;

p1=a;p2=b;

for(k=0;k<=7;k++)

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

printf("%c",*(p1+k));

printf("\n");

}

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

()

#include

#include

intmain()

{

inti;

charstr1[30]="abc",str2[3][5]={"defg","hij\0","klm"};

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

strcat(str1,str2[i]);

puts(str1);

return0;

}

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

()

voidmain()

{

intm=7,n=4;

floata=38.4,b=6.4,x;

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

printf("%.4f\n",x);

}

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

()

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

if(a>b>c)a=b;

elsea=c;

printf("%d\n",a);

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

()

intfunc(intx,inty)

{return(x+y);}

voidmain()

{

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

printf("%d\n",func((a+b,b+c,c+a),(d+e)));

}

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

voidmain()

{

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

p=&a[0][0];

for(i=0;i<9;i++)p[i]=i+1;

printf("%d\n",a[1][2]);

}

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

()

#include

voidfun(inta[]);

voidmain()

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

fun(a);

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

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

printf("\n");

}

voidfun(inta[])

{inti;

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

a[i]+=5;

}

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

()

#include

voidmain()

{inti,f[10];

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

for(i=2;i<10;i++)

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

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

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

}

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

()

#include

voidmain()

{intm=1,n=2,*p=&m,*q=&n,*r;

r=p;p=q;q=r;

printf("%d,%d,%d,%d\n",m,n,*p,*q);

}

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

()

#include

#include

intmain()

{

inti;

charstr[20]="abcdef";

strcpy(str,"opqrst");

str[5]='\0';

for(i=0;i

putchar(str[i]);

printf("\n");

return0;

}

三、程序填空

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

#include

intmain()

{intx,a,y,t;

printf("请输入一个非负的整数\n");scanf("%d",&x);

t=x;

【1】

do

{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");

elseprintf("y不能被17整除\n");

return0;

}

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

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

#include

voidmain()

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

charstr1[100],str2[100];

charch;

inti=0,k=0;

printf(“pleaseinputansentence:

\n”);

gets(【5】);

scanf("%c",&ch);

for(i=0;【6】;i++)

if(str1[i]!

=ch)

{str2[【7】]=str1[i];k++;}

str2[【8】]='\0';

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

}

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

求k!

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

例如:

若k=10,则应输出:

3628800。

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

#include

longfun(intk)

{if(k>0)

return(【9】);

elseif(【10】)

return1L;

}

main()

{intk=10;

printf("%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;i<【11】;i++)

  {t=a[i];

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

  【13】=t; } }

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

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

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

#include

#include

intprime(intn)

{inti;

for(i=2;i<=sqrt(n);i++)

if(【14】)return0;

return1;

}

intmain()

{inti;

for(i=2;【15】;i++)

if(【16】)printf("%5d",i);

printf("\n");

return0;

}

6.下面程序的功能是:

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

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

#include

voidmain()

{inta,b,c,i;

a=c=0;

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

{scanf("%d",&b);

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

else【18】;

}

printf("偶数的和=%d\n",a);

printf("奇数的和=%d\n",c);

}

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

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

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

#include

voidmain()

{intn=0,c;

c=getchar();

while(【19】)

{if(【20】)

n++;

c=getchar();

}

printf("【21】个数字\n",n);

}

8.程序的功能是:

求矩阵的转置。

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

#include

#include

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

当前位置:首页 > 高中教育 > 数学

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

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