C语言考试复习专用三套题附答案.docx

上传人:b****1 文档编号:14353198 上传时间:2023-06-22 格式:DOCX 页数:25 大小:30.06KB
下载 相关 举报
C语言考试复习专用三套题附答案.docx_第1页
第1页 / 共25页
C语言考试复习专用三套题附答案.docx_第2页
第2页 / 共25页
C语言考试复习专用三套题附答案.docx_第3页
第3页 / 共25页
C语言考试复习专用三套题附答案.docx_第4页
第4页 / 共25页
C语言考试复习专用三套题附答案.docx_第5页
第5页 / 共25页
C语言考试复习专用三套题附答案.docx_第6页
第6页 / 共25页
C语言考试复习专用三套题附答案.docx_第7页
第7页 / 共25页
C语言考试复习专用三套题附答案.docx_第8页
第8页 / 共25页
C语言考试复习专用三套题附答案.docx_第9页
第9页 / 共25页
C语言考试复习专用三套题附答案.docx_第10页
第10页 / 共25页
C语言考试复习专用三套题附答案.docx_第11页
第11页 / 共25页
C语言考试复习专用三套题附答案.docx_第12页
第12页 / 共25页
C语言考试复习专用三套题附答案.docx_第13页
第13页 / 共25页
C语言考试复习专用三套题附答案.docx_第14页
第14页 / 共25页
C语言考试复习专用三套题附答案.docx_第15页
第15页 / 共25页
C语言考试复习专用三套题附答案.docx_第16页
第16页 / 共25页
C语言考试复习专用三套题附答案.docx_第17页
第17页 / 共25页
C语言考试复习专用三套题附答案.docx_第18页
第18页 / 共25页
C语言考试复习专用三套题附答案.docx_第19页
第19页 / 共25页
C语言考试复习专用三套题附答案.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言考试复习专用三套题附答案.docx

《C语言考试复习专用三套题附答案.docx》由会员分享,可在线阅读,更多相关《C语言考试复习专用三套题附答案.docx(25页珍藏版)》请在冰点文库上搜索。

C语言考试复习专用三套题附答案.docx

C语言考试复习专用三套题附答案

《C语言程序设计》习题集

习题一

一、    语言基础(共20分,每题2分)

(一)设x为一数字字符,则其所对应的十进制数值为。

A)xB)x-‘0’C)*xD)&x

(二)说明语句chars=‘\t’,使s包含了几个字符?

A)1B)2C)3D)说明有错

(三)设a=6,b=4,则表达式b*=a+3的值为。

A)3B)18C)27D)36

(四)若给定表达式(m)?

a++:

a--,则其中表达式m和

等价。

A)m==0B)m!

=0C)m=0D)m=1

(五)设有说明语句inta[10],则数组a包括了个数组元素。

A)1B)9C)10D)20

(六)以下函数test返回值类型为。

test(intx)

{printf(“%f\n”,(float)x);

}

A)intB)floatC)voidD)不确定或错误

(七)C语言规定,main函数的参数。

A)只能有0个B)只能有0个或一个

C)只能有0个或2个D)可有任意个

(八)设x为整型变量,p基类型为整型的指针变量,则正确的赋值表达式是。

A)p=&xB)p=xC)*p=&xD)*p=*x

(九)TurboC中,int型数据在存储器中占二个字节,则以下类型数据在存储器中占的字节数为:

structtest

{intx;

floaty;

charz;

};

A)2B)3C)6D)7

(十)rewind()函数的作用是。

A)重新打开文件

B)使文件位置指针重新回到文件的开始

C)使文件位置指针重新回到文件的末

D)返回文件长度值

 

二、阅读下列程序,写出运行结果(共18分,每题3分)

[程序1]

#include

voidmain()

{inta=1,b=4,c=2;运行结果:

1

a=(a+b)/c;

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

}

[程序2]

voidmain()

{charc1=67;/*‘A’的ASCII码值为65*/

if(‘A’<=c1&&c1<=’Z’)运行结果:

67,D

printf(“%d,%c”,c1,c1+1);

elseprintf(“%c”,c1);}

[程序3]

viodmain()

{inta=0,n=5;运行结果:

1,5,4,3,2,0

for(;;)

{a++;n--;

printf(“%d,”,a);

a=n;

if(n==0)break;

}

printf(“%d”,a);

}

[程序4]

main()

{inti,j;运行结果:

1,2,4,8,16,32,64,128,256,512

staticinta[10]={1,1,1,1,1,1,1,1,1,1};

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

for(j=0;j

a[i]=a[i]+a[j];

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

printf(“%d,”,a[i]);

}

[程序5]

intk=2;

f(intm)运行结果:

6,8

{m+=k;k+=m;5,9

printf(“%d,%d\n”,m,k++);

}

main()

{inti=4;

for(i++);

printf(“%d,%d\n”,i,k);}

[程序6]

voidmain()

{staticinta[10],i;运行结果:

13579

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

a[i]=i+1;

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

printf(“%d”,*(a+i));

}

 

三、阅读分析下列程序,在处填上适当的内容使程序(或函数)完整(共21分,每空3分)

(一)       以下程序输出所有大写字母和其对应的ASCII码值。

voidmain()

{intch;

for(ch=’A’;ch<=’Z’;ch++)

printf(“字母%c的ASCII码值是:

%d\n”,ch,1);

}

答案:

ch

(二)以下函数的功能是将一个字符串S的内容颠倒过来。

voidreserve

(2)答案:

chars[]

{inti,j,k;

for(i=0,j=strlen(s)-1;3;i++,j--)答案:

i

{k=s[i];s[i]=s[j];s[j]=k;}

}

(三)由键盘输入三个数a,b,c,计算以这三个数为边长的三角形面积。

#include

voidmain()

{floata,b,c,s,s1;

scanf(“%f%f%f”,4);答案:

&a,&b,&c

if((a+b)>c&&(a+c)>b&&(b+c)>a)

{s=(a+b+c)/2;

s1=s*(s-a)*(s-b)*(s-c);

s=5;答案:

sqrt(s1)

printf(“\n三角形面积为:

%f\n”,s);

}

else

printf(“\n不是三角!

\n”);

}

(四)从键盘输入一个字符串,把它输出到文件中,文件名由键盘输入。

#include

voidmain()

{FILE*fp;

charch,*fn;

scanf(“%s”,fn);

if((fp=fopen(fn,6))==NULL)答案:

“w”

{printf(“打开文件出错\n”);

exit

(1);

}

while((ch=getchar())!

=EOF)

{fputc(7);答案:

ch,fp

putchar(ch);

}

fclose(fp);}

 

四、编程题(共21分)

1.从键盘输入3个整数,输出其中最大数。

(5分)

main()

{inti=0,x,mx=-32768;

while(i++<3)

{scanf(“%d”,&x);

if(x>mx)mx=x;

}

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

}

2.编写一函数uf(s),将字符串s中的第一个和最后一个字母改写成大写字母(如原来不是字母或已是大写字母,则不变)。

(5分)

#include

uf(char*s)

{inti;

i=strlen(s);

if(i==0)return;

if(s[0]>=’a’&&s[0]<=’z’)

s[0]+=’A’-‘a’;

if(s[i-1]>=’a’&&s[i-1]<=‘z’)

s[i-1]+=’A’–‘a’;

}

main()

{chars[]=”asdfgh”;

uf(s);

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

}

3.从键盘输入10个浮点数,输出其平均值及所有低于平均值的数。

(5分)

#include

main()

{

floata[10],ave=0;

inti;

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

{

scanf(“%f”,&a[i]);

ave+=a[i];

}

ave/=10;

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

if(a[i]

printf(“%f\t”,a[i]);

}

习题二

一、语言基础(共20分,每题2分)

(一)  若a为float类型变量,且a=4.6785,则表达式(int)(a*100+0.5)/100.0

的值为4.68。

(二)设有intx=11,y=10;则以下表达式的值为10。

x-->y?

10:

11>y++?

’a’:

’z’

(三)若所有变量都已正确定义为int型则执行下列程序段后x的值为79。

x=80;a=10b=16;y=9;z=0;

if(a

if(b!

=15)

if(!

y)x=81;

elseif(!

z)x=79;

(四)i,j为int型的变量,则下面程序中的循环体的执行次数为5。

i=1;j=0;

while(i+j<=10)

{if(i>jj=j+2);

elsei=i+2;}

(五)若有数组a[10],类型为int型,元素及值如下所示:

数组元素:

a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]

元素中的值:

9483267015

则*(a+a[9])的值为6。

(六)以下函数调用语句中实参的个数为3.

Sub((x1,x2),(x3,x4,x5),x6)

(七)若有以下函数定义:

  int(*hs)()

{

……/*函数体*/

}

则函数hs返回的值是整形。

(八)某C编译程序规定,int型数据存储占2个字节,float型数据存储占4个字节,char型数据存储占1个字节,现有记录描述如下:

 structstu

{

union

{

charbj[5];

intbh[2];

}class;

charxm[8];

floatcj;

}xs;

则sizseof(xs)的值为17。

(九)设有以下定义:

#definea6

#defineba+4

则执行语句c=b*10(c为int型数据)后,c的值为46。

(十)在C中,文件指针变量的类型只能是FILE。

 

二、阅读下列程序,写出运行结果(共20分,每题4分)

[程序1]

  #include

main()

{

inti;运行结果:

i=18,J=29.44

floatj;

i=18;

j=29.4361;

printf(“i=%4d,j=%2.2f”,i,j);

}

[程序2]

main()

{intk=10;charc=’b’;

do

swith(c++)运行结果:

12

{

case‘a’:

k++;

case‘b’:

k--;

case‘c’:

k+=3;break;

case‘d’:

k=k%4;

}

while(c!

=’c’);

     printf(“%d\n”,k);}

[程序3]

main()

{

chara[]=”computer”;

chart;

inti,j=0;运行结果:

utrpomec

for(i=0;I<8;I++)

for(j=i+1;j<8;j++)

if(a[i]

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

printf(“%s”,a);

[程序4]

main()

{

char*p,s[]=”abcdefg”;

for(p=s;*p!

=’\0’);运行结果:

abcdefg

{

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

p++;

if(*p!

=’\0’)

p++;

elsebreak;

}

}

5、以下程序的输出结果为___hellowellcom______。

main()

{chars1[40]="hello",s2[20]="wellcom";

inti=0,j=0;

while(s1[i]!

='\0')i++;

while(s2[j]!

='\0')s1[i++]=s2[j++];

s1[i]=0;

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

}

6、#include

main()

{

inti,j,x=0;

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

{

x++;

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

{

if(j%2)break;

x++;

}

x++;

}

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

}

程序运行结果是:

x=6

三、阅读下列程序,在 线处填上合适的内容使程序(或函数)完整(共18分,每空2分)

1.  以下程序的功能是求三个数的最小公倍数。

max(intx,inty,intz)

{

if(x>y&&x>z)

return(x);

elseif(y>=x&&y>z)

return(y);

else

return(z);

}

main()

{

inta,b,c,I=1,j,s;

scanf(“%d%d%d”,&a,&b,&c);

s=max(a,b,c);

while

(1)

{

j=s*i;

if((j%a==0)&&(j%b==0)&&(j%c==0))

break;

i++;

}

prinf(“%d”,j); 

}

2.  下面程序是判断输入的字符是否中心对称,(如”xyzzyx”和”xyzyx”都中心对称

#include

main()

{

chars[100],*p1,p2;

intn;

gets(s);

n=strlen(s);

p1=s;

p2=s+n-1;

while(p1

if(*p1!

=*p2)

break;

else

{p1++;p2--;}

if(p1

printf(“NO\n”);

else

printf(“YES\N”);

}

3.  结构数组中有4人的姓名和年龄,以下程序输入四人中年龄最大的人的姓名和年龄。

#defineNULL0

staticstructnode

{

charname[20];

intage;

}person[]={“lihong”,18,

“wangjun”,19,

“zhangwei”,20,

“zhaofeng”,19

};

main()

{

structnode*p,*q;

intold=0;

q=NULL;

p=person;

for(;p!

=NULL;p++)

if(oldage)

{

q=p;

old=p->age;

}

printf(“%s,%d\n”,q->name,q->age);

}

四、编程题(共22分)

1. 有36块砖,共36人搬,成年男子一次搬4块砖,成年女子一次搬3块砖,儿童两人抬1块砖,恰好一次全部搬完,编程求出成年男子成年女子和儿童各有多少人。

(6分)

main()

{intmen,women,child;

for(men=0;men<9;men++)

for(womem=0;women<12;women++)

{child=36-men-women;

if((men*4+women*3+child/2.0)=36)

printf(“%d,%d,%d\n”,men,women,child);

}

2. 非波那契数的递归如下:

除X0和X1外,序列中某个元素的值是其前两个元素的和,编写程序输入序号n,求它的非波那契数Xn。

longfib(inty)

{

if(y==0)

return(0);

elseif(y==1)

return

(1);

else

return(fib(y-1)+fib(y-2));

}

main()

{

intn;

longk;

scanf(“%d”,&n);

k=fib(n);

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

}

3.用循环语句编程将二维数组a[3][4]的第一行和第三行对调(如下图),

并输出数组。

(8分)

main()

{

inti,j,t;

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

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

{

t=a[0][i];

a[0][i]=a[2][i];

a[2][i]=t;

}

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

{

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

printf(“%3d”,a[i][j]);

printf(“\n”);

}

}

 

习题三

一.语言基础(共20分,每题2分)

(一)正确的C语言自定义标志符是A。

1.A)file_bakB)abc(10)

C)continueD)class+3

(二)设intx=8,y,z;执行y=z=x++;x=y==z后,变量x的值是B。

2.A)0B)1C)8D)9

(三)字符串“w\x53\\\np\103q”的长度是A。

3.A)7B)9C)15D)16

(四)设inta=9,b=8,c=7,x=1;则执行语句

if(a>7)if(b>8)if(c>9)x=2;elsex=3;

后x的值是C。

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

(五)有如下程序

main()

{

intx=23;

do{

printf(“%d”,x--);

}while(!

x);

}

该程序的执行结果是B。

5.A)321B)23

C)不输出任何内容D)陷入死循环

(六)定义一个具有8个元素的整型数组,应当使用语句A。

6.A)inta[8];B)inta[2,4];

C)inta[];D)int*a[8];

(七)设intx[]={4,2,3,1},q,*p=&x[1];则执行语句

q=(*――p)++后,变量q的值为A。

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

(八)函数调用时,下列说法中不正确的是B。

8.A)实际参数和形式参数可以同名

B)若用值传递方式,则形式参数不予分配存储单元

C)主调函数和被调函数可以不在同一个文件中

D)函数间传递数据可以使用全局变量

(九)下列数据类型中不属于构造类型的是D。

9.A)数组型B)结构型C)公用型D)枚举型

(十)存储整型数据-7856时,在二进制文件和文本文件中占用的字节数分别是B。

10.A)3,2B)2,5C)5,5D)5,2

 

二、阅读下列程序,写出运行结果(共20分,每题4分)

【程序1】

#include

main()

{

intx=1,a=0,b=0;运行结果:

a=1,b=1

switch(x){

case0;b++;

case1;a++;

case2;a++;b++;

}

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

}

【程序2】

space(intm)

            while(m--)printf(“%c”,32);

        }运行结果:

*

main()***

{inti,j;printf(“\n”);***

for(i=5;i>=1;i--)***

{                                               ***

           space(i);

           printf(“*”);

for(j=3;j>=2*(i/5)+2;j--)

{

space(4-i);

printf(“*”);

   }

printf(“\n”);

}

        }

【程序3】

longff(intn)运行结果:

6

{

if(n>3)

return(ff(n-1)+ff(n-2));

elsereturn(3);

}

main()

{

printf(“%d\n”,ff(4));

}

 

【程序4】

main()运行结果400-4-3:

{

inti,a[5];

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

a[i]=9*(i-2+4*(i>2))%5;

for(i=4;i>=0;i--)

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

}

【程序5】

#include运行结果:

13

unionpw

{

inti;

charch[2];

}a;

main()

{

a.ch[0]=13;

a.ch[1]=0;

printf(“%d\n”,a.i);

}

6、以下程序的输出结果为_____x=37___。

#defineA3

#defineB(a)(A+1)*a

main()

{intx;

x=3*A+B(7);

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

}

7.#include

voidFun(int*y)

{

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

*y+=20;

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

}

main()

{

intx=10;

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

Fun(&x);

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

}

程序运行结果是:

x=10

*y=10

*y=30

X=30

三、阅读下列程序,在处填上适当的内容使其完整。

(共20分,每空2分)

(一)下面程序用于计算n!

的值

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

当前位置:首页 > 经管营销 > 企业管理

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

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