2017 年山东青岛大学计算机程序设计考研真题
一、单选题(每题 2 分,共 20 分)
1.下面的用户标识符正确的是()
A._c201
B.if
C.3com
D.int
2.对于一个完整的、可运行的 C 语言源程序来说,main 函数是()
A.可以没有
B.可以有多个
C.无所谓
D.必须有,且只有一个
3.如果函数参数是数组名,则向函数传送的是()
A.数组的长度
B.数组的首地址
C.数组每一个元素的地址
D.数组每个元素中的值
4.若有“inta=2,b=3,c=4;”,则下列表达式为假的是()
A.(a1)
B.((c-b-1)>0)||(c-a)
C.(!a==1)&&(!b)
D.a>0&&b>0
5.已知 A 的 ASCII 码值为 65,下列程序的执行结果是()
int main(){
char ch1, ch2;
ch1 = 'A' + '5 ' - '3';
ch2 = 'A' + '6 ' - '3';
printf("%d, %c\n", ch1, ch2);
}
A.67,D
B.B,C
C.C,D
D.程序有错
6.若有 intn=2,*p=&n,*q=p;则错误的赋值语句是()
A.p=q
B.*p=*q
C.n=*q
D.p=n
7.如有 inta,b,c;则执行 scanf("a=%d,b=%d,c=%d",&a,&b,&c)时,为使变量 a 的值为 1,b
的值为 3,c 的值为 2,从键盘输入数据的正确形式是()
A.132
B.1,3,2
C.a=1b=3c=2
D.a=1,b=3,c=2
8.下面的叙述中,不正确的是()
A.在不同的函数中可以使用相同名字的变量。
B.函数定义中的所列的参数是局部变量。
C.在一个函数内定义的变量只在本函数范围内有效。
D.在一个函数内的复合语句中定义的变量在本函数范围内有效。
9.执行 x=-1;do{x=x*x;}while(!x);循环时,下列说法正确的是()
A.循环体将执行一次
B.循环体将执行两次
C.循环体将执行无限次
D.系统将提示语法错误
10.下面列出的表达式中,与 while(E)中的 E 不等价的表达式是()
A.(!E==0)
B.(E>0)||(E<0)
C.(E==0)
D.(E!=0)
二、填空题(每空 2 分,共 20 分)
1.整型变量 a 和 b 的值分别为 10,20,若输出格式为:
a=10
b=20
则输出语句应为 printf("_____________",a,b);
2.若有 intx=6,y=5;表达式 1.0+x/y 的值为_____________
3.下面程序运行后的输出结果是_____________
int i=10, j=0;
do{
j = j + i;
i--;} while(i>2);
printf("%d\n", j);
4.下面的程序用于计算函数 SunFun(n)=f(0)+f(1)+...+f(n)的值,其中 f(x)=x3+1,填写下
面程序中的空行。
intSunFun(intn);
intf(intx);
intmain(){
printf("thesun=%d\n",SunFun(10));
return0;
}
intSunFun(intn){
intx,_____________;
for(x=0;x<=n;x++)
_____________;
returns;
}
intf(intx)
{return_____________;}
5.下面程序输入一个字符串和一个字符,在该字符串中查找该字符,若找到,打印从该字符
开始的子串。
_____________match(char*s,charch){
while(*s!='\0')
if(*s==ch)_____________
elses++;
_____________;
}
intmain(){
charch,str[90],*p=NULL;
printf("inputstring:\n");
scanf("%s",str);
getchar();ch=getchar();
if((p=match(str,ch))!=NULL)printf("%s\n",p);
elseprintf("Notfound!\n");
return0;
}
6.已经有定义 FILE*fw;下面的语句打开文本文件 readme.txt,在文件最后写入内容,将语
句填写完整:fw=fopen("readme.txt",_____________);
三、程序设计(1-2 题每题 10 分,3-5 题每题 20 分,第 6 题 30 分,共 110 分)
1.编写函数,将字符串中的小写字母变换为字母表中下一字母,大写字母只变为小写字母,
如:a 转换为 b,A 转换为 a。若最后一个字母为 z,则转换为 a。
2.编写程序,根据输入的 n 值,计算斐波那契数列的前 n 项。斐波那契数列的头两项均为 1,
后面任一项都是其前两项之和。
3.编写程序,输入字符串,判断该字符串是否是回文。所谓回文是字符串中心对称,如
“abccba”,“abcba”都是回文。
4.编写程序,输入正整数 n,据此动态申请空间存放 n 个整型数据,输入 n 个整数,去掉最
大值、最小值,计算余下数据的平均值。
5.编写程序,读入正整数 n,计算 1~n 之间的素数个数。要求素数的判断通过函数实现,主
程序调用该函数判断是否素数。
6.编写程序,输入一维数组,数组元素个数不大于 40,采用选择法将数组按升
序排序,将排序后的数组逆序输出。要求交换数据采用函数实现。