c语言程序设计试卷

  • 格式:docx
  • 大小:21.06 KB
  • 文档页数:3

徐州师范大学试卷(20-20学年度学期)

(考试日期:年月日)

院系计算机学院专业计算机科学与技术

课程名称:成绩

题号 一 二 三 四 合分人

分值 30 20 20 30

得分

得分

一、单项选择题(每小题2分,共30分)

在下列每小题的四个备选答案中选出一个正确的答案,并将其字母标号填入题目的横线上。

1.以下叙述不正确的是_________

A.一个C源程序可由一个或多个函数组成

B.一个C源程序必须包含一个main函数

程序的基本组成单位是函数

D.在C程序中,注释说明只能位于一条语句的后面

2.以下程序段的输出结果是________

inti=010,j=10;printf(“%d,%d\n”,++i,j--);

,,10 C.010,,9

3.若x,i,j和k都是int型变量,则计算下面表达式后,x的值为_______

x=(i=4,j=16,k=32);

.16 C.

4.若有说明语句:charc=’\72’;则变量c

A.包含1个字符B.包含2个字符

C.包含3个字符D.说明不合法,c的值不确定

5.请阅读以下程序: main()

{inta=5,b=0,c=0;

if(a=b+c)printf(“***\n”);

elseprintf(“$$$\n”);

}

以上程序________

A.有语法错不能通过编译B.可以通过编译但不能通过连接

C.输出***D.输出$$$

6.设有说明ints[2]={0,1},*p=s;则下列错误的C语句是________

+=1;+=1;C.*p++;D.(*p)++;

7.下面程序段的运行结果是________

x=y=0;

while(x<15)y++,x+=++y;

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

,,12 C.20,,20

语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是________

A.地址传递

B.单向值传递

C.由实参传递给形参,再由形参传回实参

D.由用户指定传递方式

9.以下不正确的定义语句是________

[5]={,,,,};

[5]={0,1,3,5,7,9};

[]={‘1’,’2’,’3’,’4’,’5’};

[]={‘\x10’,’\xa’,’x8’};

语言允许函数值类型缺省定义,此时该函数值隐含的类型是____________

型型型型

11.若有宏定义如下:

#defineX5

#defineYX+1

#defineZY*X/2

则执行以下printf语句后,输出结果是________

inta;a=Y;

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

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

.12 C.

6655 注意:装订线外,勿写答案。

班级学号姓名 12.有如下语句inta=10,b=20,*p1,*p2;p1=&a;p2=&b;如图1所示;若要实现图2所示的存储结构,可选用的赋值语句是

p1p2p1p2

abab

图1图2

A.*p1=p2;=p2;

=*p2;D.*p1=p2;

13.语句int(*ptr)();的含义是

是指向一维数组的指针变量

是指向int型数据的指针变量

是指向函数的指针,该函数返回一个int型数据

是一个函数名,该函数名的返回值是指向int型数据的指针

14.若有以下说明和语句,则对pup中sex的正确引用方式是_____________

structpupil

{charname[20];

intsex;

}pup,*p;

p=&pup;

以下可作为函数fopen中第一个参数的正确格式是_________

:user\

得分

二、阅读程序(每小题10分,共20分)

16.当从键盘输入18并回车后,写出下列程序的运行结果。

main()

{intx,y,i,a[8],j,u,v;

scanf(“%d”,&x);

y=x;i=0;

do

{u=y/2;

a[i]=y%2;

i++;y=u;

}while(y>=i);

for(j=i-1;j>=0;j--)

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

}

17.写出下列程序的运行结果。

#include<>

f(inta[]) {inti=0;

while(a[i]<=10)

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

}

main()

{inta[]={1,5,10,9,11,7};

f(a+1);

}

得分

三、填空题(每空2分,共20分)

18.下面程序以每行4个数据的形式输出a数组,请填空。

#defineN20

main()

{inta[N],i;

for(i=0;i

for(i=0;i

{if(i%4==0)

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

}

printf(“\n”);

}

19.下面程序段将输出computer,请填空。

charc[]=”It’sacomputer”;

for(i=0;;i++)

{;printf(“%c”,c[j]);}

20.下面的程序是判断输入的字符串是否是“回文”,(顺读和倒读都一样的字符串称回文,如level)。请填空。

#include<>

#include<>

main()

{chars[81],*p1,*p2;

intn;

gets(s)

n=strlen(s);

p1=s;

p2=;

while()

{if(*p1!=*p2)break;

else{p1++;;}

}

if(p1

elseprintf(“yes\n”);

}

21.下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中。请填空。

main()

{inta[2][3]={1,2,3,4,5,6}; intb[3][2],i,j;

printf("arraya:\n");

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

for(j=0;_________;j++)

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

_____________;}

printf("\n");

printf("arrayb:\n");

for(i=0;_________;i++)

{for(j=0;j<=1;j++)

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

printf("\n");

}

}

得分

四、编程题。(每题15分,共30分)

22.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数自身。例如:153是一个“水仙花数”,因为153=13+53+33。

23.编一函数,计算并输出k以内最大的10个能被13或17整除的自然数之和。其中,k的值由主函数传入。