本科插班生考试试题《高级程序设计语言》B卷.docx
《本科插班生考试试题《高级程序设计语言》B卷.docx》由会员分享,可在线阅读,更多相关《本科插班生考试试题《高级程序设计语言》B卷.docx(9页珍藏版)》请在冰点文库上搜索。
本科插班生考试试题《高级程序设计语言》B卷
韩山师范学院2019年本科插班生招生考试
计算机科学与技术专业高级语言程序设计试卷(B卷)
题号
一
二
三
四
五
总分
评卷人
得分
得分
评卷人
一、填空题(每空2分,共10分)
1.对C语言的源程序文件f.c进行编译和链接的操作后,得到的文件是。
2.有赋值表达式a=(b=10)%(c=6),则表达式的值为。
3.现有unsigneda=217,则表达式(a>>4)&(~(~0<<4)的值是。
4.fputc可以用来读写文件中的一个。
5.有doublew[10],则数组下标上限为。
得分
评卷人
二、单项选择题(每题2分,共30分)
题号
1
2
3
4
5
6
7
8
9
10
答案
题号
11
12
13
14
15
答案
1.以下选项中,能用作用户标识符的是()。
A.6a6B.mainC._6_D.signed
2.若有定义语句:
intx=10;,则表达式x-=x+x的值为()。
A.-20B.-10C.0D.10
3.设有定义:
inta=l,b=2,c=3;,以下语句中执行效果与其它三个不同的是()。
A.if(a>b)c=a,a=b,b=c;B.if(a>b){c=a,a=b,b=c;}
C.if(a>b)c=a;a=b;b=c;D.if(a>b){c=a;a=b;b=c;}
4.以下程序段中,与语句:
k=a>b?
(b>c?
1:
0):
0;功能相同的是()。
A.if((a>b)&&(b>c))k=l;B.if((a>b)||(b>c))k=l;
elsek=0;elsek=0;
C.if(a<=b)k=0;D.if(a>b)k=l;
elseif(b<=c)k=1;elseif(b>c)k=1;
elsek=0;
5.有以下定义语句,编译时会出现编译错误的是()。
A.chara='a';B.chara='\n';C.chara='aa';D.chara='\x2d';
6.定义:
charx[]="abc";chary[]={’a’,’b’,’c’};则正确的叙述为()。
A.数组x和数组y等价B.数组x和数组y长度相同
C.数组x的长度大于数组y的长度
D.数组x的长度小于数组y的长度
7.有以下程序
#includemain()
{charc1,c2;
c1='A'+'8'-'4';
c2='A'+'8'-'5';
printf("%c,%d\n",c1,c2);
}
已知字母A的ASCII码为65,程序运行后的输出结果是()。
A.E,68B.D,69C.E,DD.输出无定值
8.下面是有关C语言字符数组的描述,其中错误的是()。
A.不可以用赋值语句给字符数组名赋字符串
B.可以用输入语句把字符串整体输入给字符数组
C.字符数组中的内容不一定是字符串
D.字符数组只能存放字符串
9.下列叙述中错误的是()。
A.C语句必须以分号结束
B.复合语句在语法上被看作一条语句
C.空语句出现在任何位置都不会影响程序运行
D.赋值表达式末尾加分号就构成赋值语句
10.下列能正确定义且赋初值的语句是()。
A.inta,b=10;B.charc="3";
C.floata=a+2.1;D.intx=80000;
11.设fun()函数的定义形式为
voidfun(charch,floatx){…}
则下列对函数fun的调用语句中,正确的是()。
A.fun("abc",3.0);B.t=fun('D',16.5);
C.fun('65',2.8);D.fun(32,32);
12.设有以下程序,运行结果是()。
structstud
{intx,y;
}data[2]={10,20,30,40};
main()
{structstud*p=data;
printf(“%d\n”,p->y);
}
A.10B.20C.30D.40
13.若有以下说明,请选出哪个是对a数组元素地址的正确引用()。
inta[5],*p=a;
A.&a[5]B.p+2C.a++D.&a
14.若有说明:
inta[3][4];则对数组元素的正确引用是()。
A.a[1+1][0]B.a[2][4]C.a[1,3]D.a
(2)
(1)
15.若有整型变量a,b,c,s,且b和c均已赋值(c>0)
s=b;
for(a=1;a<=c;a++)s=s-1;
则与上述程序段功能等价的赋值语句为()。
A.s=s-b
B.s=b-a
C.s=b-c
D.s=s-c
得分
评卷人
三、阅读程序,将运行结果写到各题右侧的空白处(每题4分,共20分)
1.inti=8,y,z;
y=++i;
z=i++;
printf("%d\n",y);
printf("%d\n",z);
2.intnum=0;
while(num++<=1)
printf("*%d\n",num);
printf("**%d\n",num);
3.structdata
{
inta;
chars[5];
}arg={27,"abcd"};
voidmain()
{
arg.a-=5;
strcpy(arg.s,"ABCD");
printf("%d,%s",arg.a,arg.s);
}
4.enumem{em1=3,em2=1,em3=2};
char*aa[]={"AA","BB","CC","DD"};
printf("%s%s%s",aa[em1],aa[em2],aa[em3]);
5.#defineA3
#defineB(a)((A+1)*a)
voidmain()
{
intx;
x=3*(A+B(7));
printf("x=%d\n",x);
}
得分
评卷人
四、阅读程序或程序段,填空(每题4分,共20分)
1.输入某一年月,输出该月的天数。
voidmain()
{
inty,m,d;
scanf("%d,%d",&y,&m); //输入年月
switch(m)
{
case1:
case3:
case5:
case7:
case8:
d=31;break;
case4:
case6:
case9:
case11:
d=30;break;
case2:
if(①)
②
else
d=28;
break;
}
printf("%d",d);
}
2.打印下三角的九九乘法表
main()
{inti,j;
for(i=1;i<=9;i++)
{for(j=1;①;j++)
②
printf("\n");
}
}
3.判断m是不是素数(质数)
main()
{
intm,i;
scanf(“%d”,&m);
for(i=2;i<=m-1;i++)
if(①)break;
if(②)printf(“yes”);
elseprintf(“no”);
}
4.编写一个程序实现字符串的前连接和后连接。
voidstradd(char*s,char*t,intflag)
{
char*ptr,*ptr1;
if(flag)
{
ptr=s+strlen(s);
ptr1=t;
}
else
{
ptr=t+strlen(t);
ptr1=s;
}
for(;*ptr1!
='\0';①)
②
*ptr='\0';
}
5.用递归法计算1+2+…+n的和。
floatf(intnum)
{
floaty;
if(num<0)
printf("Inputerror!
");
elseif(num==0)
y=0;
else
y=①;
②
}
得分
评卷人
五、编程题(每题10分,共20分)
1.编写一子函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串,调用该子函数,并输出上述的结果。
2.从键盘输入一位整数,当输入是1至7时,显示对应的英文,直到输入0为止,编写一个程序实现上述功能。