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的值由主函数传入。