C语言程序设计模拟试题8(附答案)

  • 格式:doc
  • 大小:68.50 KB
  • 文档页数:3

下载文档原格式

  / 3
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《C语言程序设计》模拟试卷八

一、填空题。(每空2分,共10分)

1.实数在语言中又称

2.表达式a = 1,a + 1,a + + 的值是

___________________。

3. 设int i = 5;则循环语句while (i > = 1) i - -;执行后,i的值为_______________。

4.设char string[] =″This_is_a_book!″;则数组的长度应是________________。

5.设int a[2][3] = {{2},{3}};则数组元素

_____________________的值为3。

二、单项选择题。(每题2分,共在 20分)

1. C语言程序编译时,程序中的注释部分【】

A. 参加编译,并会出现在目标程序中

B. 参加编译,但不会出现在目标程序中

C. 不参加编译,但会出现在目标程序中

D. 不参加编译,也不会出现在目标程序中

2.下列表达式的值为0的是【】

A. 3﹪5

B. 3/5.0

C. 3/5

D. 3<53. 下列保留字中用于构成循环结构的是【】

A. if

B. while

C. switch

D. def ault

4. 与语句if(a>b) if(c>d)x = 1;else x = 2;等价的是【】

A. if(a>b){i f(c>d) x = 1;else x = 2;}

B. if(a>b){if(c>d) x = 1;} else x = 2;

C. if((a>b) && (c>d)) x = 1;else x = 2;

D. if(a< =b) x = 2;else if (c>d) x = 1;

5.设char x =′a′;则printf(″x = ﹪c, y = ﹪c \ n″,x,97);

的输出是【】

A. x = a,y = 97

B. x = 97,y = a

C. x = 97,y = 97

D. x = a,y = a

6. 设int a[][4]={1,2,3,4,5,6,7,8,9};则数组

a的第一维的大小是【】

A. 2

B. 3

C. 4

D. 无确定值

7.执行下列程序

int a[3][3]={{1},{2},{3}};

int b[3][3]={1,2,3};

main()

{printf(″﹪d \ n″,a[1][0] + b[0][0]);}

后输出的结果是【】

A. 0

B. 1

C. 2

D. 3

8. 执行下列程序

int a = 3, b = 4;

void f un(int x1, int x2)

{printf(″﹪d, ﹪d \ n″, x1 + x2, b);}

main()

{int a = 5, b = 6;f un(a, b);}

后输出的结果是【】

A. 3,4

B. 11,1

C. 11,4

D. 11,6

9. 将一个整数10002存到磁盘上,以ASCII码形式存储

和以二进制形式存储,占用的字节数分别是【】

A. 2和2

B. 2和5

C. 5和2

D. 5和5

10.执行如下程序

main()

{ int *p,a[10];

a[0]=10;a[1]=20;

p=a;

printf(“%d”,*(p++));}

则输出结果【】

A. 10

B. 20

C. 40

D . 无法确定

三、按给出的程序功能,在空格处,填写正确的程序语

句,使程序完整。(每题6分,共18分)

1. 以下程序的功能是用选择法对数组a中的整数由小到

大进行排序。

void sort(int b[],int n)

{ int i,j,t;

f or(i = 0;i

f or(______;j

if(b[i]_____b[j])

{t = b[i];_____________;b[j]=t;}

}

main()

{ int a[]={5,8,6,2,7,4,1,3};

int i;

sort(a,8);

f or(i = 0;i<8;i ++ )

printf(″﹪5d″,a[i]);

printf(″\ n″);

}

2. 输入一字符串(换行为结束标志)统计其中数字(0,1,2,…,9不单独统计)、空白和其它字符出现的次数。# include ″stdio.h″

main()

{ char c;

int ___________________________;

while((c = getchar())! =′\ n′)

{

if(__________________________)digit + + ;

else if(c = =′′‖c = =′\ t′) ++ blank;

else __________________________;

}printf(″digit =﹪d,blank =﹪d,other =﹪d \

n″,digit,blank,other);

}

3. 先为数组a输满数据,再为x输入一个数据,在数组

a中找出第一个与x相等的元素并将其下标输出,若不

存在这样的元素,则输出“Not f ound!”标志。

main()

{int i,x,a[10];

f or(i = 0;i<10;i ++ )scanf(″﹪d″,___________);

scanf(″﹪d″,&x);print f(″﹪d″,x);

f or(i = 0;i<10;i ++) if(_________________)break;

if (i _________10)print f(″ position:﹪d \ n″,i);

else printf(″ Not f ound! \ n″,x);

}

四、按要求编写下列程序。(1-4题每题10分,第5题

12分,共52分)

1. 有一分数序列2/1,3/2,5/3,8/5,13/8,21/13………

求这个数列的前20项的和。

2. 打印所有的水仙花数。

3.编写一程序,将两个字符串连接起来。不要用strcat

函数。

4.打印出扬辉三角(打印10行)

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

5.写一函数,使给定的一个二维数组(3╳3)转置。

模拟试卷八答案:

一、填空

二、选择

三、程序填空

四、编写程序题

1、

#include "stdio.h"

main()

{int a[10],m,n,t,i;

m=1;

n=2;

f or (i=0;i<20;i++)

{a[i]=n/m;

t=n;

n=m+n;

m=t;

}

f or(i=0;i<20;i++)

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

}

2、

#include "stdio.h"

main()

{int i,j,k;

f or(i=1;i<=9;i++)

f or(j=0;j<=9;j++)

f or(k=0;k<=9;k++)

if (i*100+j*10+k==i*i*i+j*j*j+k*k*k)

printf("%d\n",i*100+j*10+k);

}

3、

#include "stdio.h"

main()

{char a[80],b[40];

int i=0,j=0;

scanf("%s",a);

scanf("%s",b);

while (a[i]!='\n')

i++;

i--;