C语言程序设计模拟试题2附答案newWord文档格式.docx

上传人:b****5 文档编号:17412993 上传时间:2022-12-01 格式:DOCX 页数:22 大小:24.79KB
下载 相关 举报
C语言程序设计模拟试题2附答案newWord文档格式.docx_第1页
第1页 / 共22页
C语言程序设计模拟试题2附答案newWord文档格式.docx_第2页
第2页 / 共22页
C语言程序设计模拟试题2附答案newWord文档格式.docx_第3页
第3页 / 共22页
C语言程序设计模拟试题2附答案newWord文档格式.docx_第4页
第4页 / 共22页
C语言程序设计模拟试题2附答案newWord文档格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C语言程序设计模拟试题2附答案newWord文档格式.docx

《C语言程序设计模拟试题2附答案newWord文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计模拟试题2附答案newWord文档格式.docx(22页珍藏版)》请在冰豆网上搜索。

C语言程序设计模拟试题2附答案newWord文档格式.docx

_k++_________;

d=(k*(k+1));

}while(k<

=n);

s);

5.执行下述程序的输出结果是_-3-40443_______。

#inclued<

inta[6],i;

for(i=0;

i<

6;

i++)

a[i]=9*(i-2+4*(i>

3))%5;

%3d"

a[i]);

\n"

);

6.执行下述程序时的输出结果是____6_____________。

inta[]={2,4,6,},*ptr=&

a[0],x=8,y,z;

for(y=0;

y<

3;

y++)

z=(*(ptr+y)<

x)*(ptr+y):

x;

z);

7.执行下述程序的输出结果是____60________。

inta[][2]={10,20,30,40,50,60},(*p)[2];

p=a;

*(*(p+2)+1));

8.执行以下程序的输出结果是___s=10______。

ints,i,sum();

for(i=1;

=10;

s=sum(i);

s=%d\n"

sum(intk)

intx=0;

return(x+=k);

9.下述函数定义用来求出两个整数之和,并通过函数的模拟传地址调用,传回两整数相加之和值,请填空。

voidadd(intx,inty,___int*z____)

*z=x+y;

10.函数func的功能是将整型变量x的值转换成二进制数,并将该二进制数的每一位存入由整型指针b所指向的一维数组a,最低位存放于a[0]中,次低位存放于a[1]中,依此类推。

voidfunc(intx,int*b)

intr;

r=x%2;

____*b++___=r;

x/=2;

}while(x);

11.以下程序中函数invert实现将数组内所有数组元素的值逆置。

比如,执行本程序将输出

10987654321

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

invert(a,n-1);

10;

%3d”,a[i]);

invert(int*s,intnum)

int*t,k;

t=s+num;

while(____t>

=s________)

k=*s;

*s=*t;

*t=k;

s++;

t--;

12.若有以下定义和说明,则结构体变量w在内存中所占的字节数是_18__

unionaa

floatx;

floaty;

charc[6];

};

structst

unionaav;

floatw[5];

doubleave;

}w;

13.执行下述程序的输出结果是__95,Li___________。

structstr

char*y;

}*m;

structstrgroup[3]={

"

Li"

Wang"

Sun"

m=group;

%.lf,%s\n"

m->

x,m->

14.下面的程序用来统计某文件文件中字符的个数。

FILE*fp;

longnum=0;

if((fp=fopen("

"

"

r"

))++)==NULL)

Can'

topenthisfile!

exit(0);

while(!

fgetc(fp);

num++;

num=%d\n"

num);

fclose(fp);

15.执行下述程序后,输出结果为___29______。

#defineFUN1(a,b)a+b

#defineFUN2(a,b)a-b

#defineCAL(a,b)a*b+a+3

CAL(FUN1(3,5),FUN2(4,5)));

 

二、单项选择题。

(每题1分,共20分)

1.以下不是c语言规定保留字的是(B)。

(A)float(B)integer(C)signed(D)unsigned

2.设int型变量x有初始值3,则表达式x++*5/10的值是(B)

(A)0(B)1(C)2(D)3

3.下述程序执行后的输出结果是(A )

#include<

intx='

f'

;

%c\n"

'

a'

+(x-'

+1));

(A)g(B)h(C)i(D)j

4.设有程序

#include<

main()

{

inti,j;

for(i=0,j=1;

=j+1;

i+=2,j--)

i);

}

在运行上述程序时,for语句中循环体的执行次数是(C)

(A)3(B)2(C)1(D)0

5.在下述选项时,没有构成死循环的程序是(C)

(A)inti=100

while

(1)

i=i%100+1;

if(i>

100)

break;

(B)for(;

(C)intk=1000;

++k;

}while(k>

=10000);

(D)ints=36;

while(s);

--s;

6.假定a和b为int型变量,则执行下述语句组后,b的值为(D)。

a=1;

b=10;

b-=a;

A

a++;

}while(b--<

0);

(A)9(B)-2(C)-1(D)8

7.设有变量说明语句

inta=1,b=0;

则执行以下程序段的输出结果为(B)。

switch(a)

case1:

switch(b)

case0:

printf("

**0**"

break;

**1**"

case2:

**2**"

(A)**0**(B)**0****2**(C)**0****1****2**(D)有语法错误

8.以下合法的数组说明是(A)。

(A)chara[7]="

string"

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

(C)chara="

(D)INTa[]={0,12,3,4,5};

9.下述程序代码中有语法错误的行是(D)。

inti,ia[10],ib[10];

/*第1行*/

=9;

i++)/*第2行*/

ia[i]=0;

/*第3行*/

ib=ia;

/第4行*/

(A)第1行(B)第2行(C)第3行(D)第4行

10.若已定义

inta[9],*p=a;

并在以后的语句中未改变p的值,则不能表示a[1]地址的表达式是(C)。

(A)p+1(B)a+1(C)a++(D)++p

11.若有下述说明和语句

int**pp,*p,a=10,b=20;

pp=&

p;

p=&

a;

b;

%d,%d\n"

*p,**pp);

则输出结果是(D)。

(A)10,10(B)10,20(C)20,10(D)20,20

12.执行下述程序后的输出结果是(D)。

func(inta)

intb=0;

staticintc=3;

a=c++,b++;

return(a);

inta=2,i,k;

fori=0;

2;

k=func(a++);

k);

(A)3(B)0(C)5(D)4

13.执行下述程序的输出结果是(A)。

intaa[3][3]={{2},{4},{6}};

inti,*p=&

aa[0][0];

if(i==0)

aa[i][i+1]=*p+1;

else

++p;

%d"

*p);

(A)23(B)26(C)33(D)36

14.读下面的程序,正确的输出结果是(D)。

staticinta=50;

voidf1(inta)

%d,"

a+=10);

voidf2(void)

a+=3);

voidmain()

inta=10;

f1(a);

f2();

a);

(A)60,63,60(B)20,23,23(C)20,13,10(D)20,53,10

15.执行下述程序的输出结果是(A)。

intpower(intx,inty);

floata=,b=;

intp;

p=power((int)a,(int)b);

p);

intpower(intx,inty)

inti,p=1;

for(i=y;

i>

0;

i--)

p=p*x;

return(p);

(A)8(B)9(C)27(D)81

16.已知函数scopy的定义如下

voidscopy(char*s,char*t)

while(*s++=*t++);

则该函数的功能是(A)。

(A)串复制(B)求串长度(C)串比较(D)串反向

17.执行下述程序的输出是(B)。

structcomplex

intre;

intim;

structcomplexcp[3]={2,5,4,7};

cp[2].re=cp[0].re+cp[1].re;

cp[2].im=cp[0].im+cp[1].im;

%d%d\n"

cp[2].re,cp[2].im);

}

(A)711(B)612(C)99(D)126

18.执行下述程序的输出结果是(A)。

union

chari[2];

}*s,a;

s=&

s->

i[0]=0x39;

i[1]=0x38;

%x\n"

s->

k);

(A)cccc3839(B)3938(C)380039(D)390038

19.有以下程序,则结果为B。

structabc

{inta,b,c;

{structabcs[2]={{1,2,3},{4,5,6}};

intt;

 t=s[0].a+s[1].b;

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

A)5   B)6  C)7  D)8

20.以下程序for语句循环体中printf语句执行次数是(C)。

#defineN2

#defineMN+1

#defineNUM(M+1)*M/2

inti;

=NUM;

(A)5(B)6(C)8(D)9

三、程序分析题(每题5分,共30分)

1.阅读程序,写出执行该程序的输出结果。

chars[]="

pressakey."

charch;

(ch=s[i])!

='

\0'

switch(ch)

case'

p'

:

k'

putchar(ch-32);

continue;

'

putchar('

*'

.'

!

'

default:

putchar(ch);

putchar('

\n'

Press*A*Key!

2.阅读程序,写出执行该程序的输出结果。

#defineN5

inta[N][N];

N;

for(j=0;

j<

j++)

=j)

a[i][j]=1;

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

a[i][j]);

不输出任何结果

3.阅读程序,写出执行该程序的输出结果

intm[5],n[5],*px,*py,k;

px=m;

py=n;

for(k=1;

k<

4;

k++,px++,py++)

*px=k;

*py=2*k;

%d,%d"

m[k-1],n[k-1]);

px=&

m[1];

py=&

n[1];

k++)

*px+=k;

*py*=k;

%d,%d,"

*px++,*py++);

1,22,43,6

3,4,4,8,

4.阅读程序,写出执行该程序的输出结果。

voidf(inty)

staticinti=5;

intj=3;

j++;

%d%d%d=%d\n"

i,j,y,i+j+y);

i*=2;

intx;

for(x=1;

x<

+3;

++x)

f(x);

541=10

1042=11

5.阅读下列程序,写出程序运行的输出结果。

{chara[20]={"

1A2B3C"

},b[20],*p1,*p2;

p1=a,p2=b;

do{if(!

(*p1>

0'

&

*p1<

9'

))

{*p2=*p1;

p2++;

*p2=*p1;

p1++,p2++;

}while(*p1='

%s\n"

b);

1

6.阅读下列程序,写出程序的主要功能。

intn,I;

\npleaseinputanumber:

&

n);

%d="

n);

for(i=2,i<

=n,i++)

while(n!

=i)

{

if(n%i==0)

%d*"

i);

n=n/i;

将整数n表示为其所有质因子乘积

四、程序设计题(每小题10分,共20分)

1、编写.程序求1、2、3、4个数字能组成多少个互不相同且无重复数字的三位数都是多少。

#include<

Voidmain()

Inti,j,k,m=0;

For(i=1;

=4;

For(j=1;

For(k=1;

While(i!

=j&

j!

=k&

k!

=i)

Printf(“%5d”,100*i+10*j+k);

m++;

Printf(“\n”);

Printf(“所有不重复的三位数个数为:

%d”,m);

2、有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少

Intfanio(intn)

If(n==1)

Return1;

Elseif(n==2)

Return1;

Else

Returnfanio(n-1)+fanio(n-2);

Voidmian()

Inti,n;

Printf(“请输入月份上限\n”);

Scanf(“%d”,&

Printf(“所有月份的兔子总数\n”);

=n;

Printf(“第%d月的兔子总数为:

%d”,i,fanio(i));

试卷二参考答案

1.

2.17

3.x!

=0&

x<

100&

x>

4.k++

5.-3-40443

6.6

7.60

8.s=10

9.int*z

10.*(b++)

11.t>

s

12.18

13.95,Li

14.!

feof(fp)

15.29

1、B2、B3、A4、C5、C6、D

7、B8、A9、D10、C11、D12、D

13、A14、D15、A16、A17、B18、A

19、B20、C

三、程序分析题

1、PressAKey!

2、无任何输出结果。

3、1,22,43,6

3,4,5,12,

4、541=10

1042=16

5、1

6、求一个正整数分解质因数。

四、程序设计题

1、

#include"

inti,j,k;

for(i=1;

5;

i++)/*以下为三重循环*/

for(j=1;

j++)

for(k=1;

k++)

if(i!

=k&

i!

=j&

j!

=k)/*确保i、j、k三位互不相同*/

%d,%d,%d\n"

i,j,k);

2、

longf1,f2;

intI;

f1=f2=1;

for(i=1;

i<

=20;

i++)

%ld%ld"

f1,f2);

if(i%2==0)

/*控制输出,每行四个*/

f1=f1+f2;

/*前两个月加起来赋值给第三个月*/

f2=f1+f2;

/*前两个月加起来赋值给第三个月*/

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

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

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

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