标准答案:
D
10.【题号:
5122】在如下程序段中的while循环()
intk=0;
while(k=1)k++;(2.5分)
A.有语法错,不能执行
B.无限循环
C.一次都不执行
D.执行一次
标准答案:
B
11.【题号:
5123】下述程序的输出结果是()
#include
voidmain()
{
inty=10;
while(y--);
printf("y=%d",y);
}(2.5分)
A.y=0
B.y=1
C.y=随机值
D.y=-1
标准答案:
D
12.【题号:
5124】若有以下说明:
char*str1="copy",str2[20],*str3="str",*str4,*str5="good";
则错误的串操作语句是()(2.5分)
A.strcpy(str4,str1);
B.strcat(str1,str3);
C.str2="newstr";
D.strcpy(str5,str3);
标准答案:
C
13.【题号:
5125】下面程序运行后,x,y,z的值分别为()voidmain(){intx=0,y=0,z=0;++x||++y||++z;printf("%d%d%d\n",x,y,z);}(2.5分)
A.100
B.000
C.111
D.001
标准答案:
A
14.【题号:
5126】关于C++和C语言学关系描述中,错误的是()(2.5分)
A.C语言与C++是兼容的
B.C++对C语言进行了一些改进
C.C语言是C++的一个子集
D.C++和C语言都是面向对象的
标准答案:
D
15.【题号:
5127】#definef(x)1+x+x*x
#include
voidmain()
{
inta=2,b=3;
printf("%d\n",f(a+b));
}(2.5分)
A.17
B.31
C.13
D.7
标准答案:
A
二.读程序回答问题(共10题,共25分)
16.【题号:
5128】下列程序运行的结果为()。
#include
main()
{intk=0;
charc='A';
do
{switch(c++)
{case'A':
k++;break;
case'B':
k--;
case'C':
k+=2;break;
case'D':
k=k%2;continue;
case'E':
k=k*10;break;
default:
k=k/3;
}
k++;
}while(c<'G');
printf("k=%d",k);}(2.5分)
A.k=1
B.k=2
C.k=3
D.k=4
标准答案:
D
17.【题号:
5129】阅读如下程序:
#include
abc(s,t,k)
int*s,t,*k;
{intp;
for(p=0,*k=p;pif(s[p]>s[*k])*k=p;
}
main()
{inta[10],i,k;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
abc(a,10,&k);
printf("%d,%d\n",k,a[k]);
}
以上程序的功能是()(2.5分)
A.查询并输出数组中最大值的位置及最大值
B.查询并输出数组中最小值的位置及最小值
C.计算数组中各元素之和
D.计算数组中各元素之乘积
标准答案:
A
18.【题号:
5130】执行下面程序时输入"Iwillpasstheexam!
",其输出结果是()。
#include
intfun(chars[])
{inti=0;
while(s[i]!
='\0')
i++;
returni;}
voidmain()
{chars[81];
printf("Pleaseinputastring:
\n");
scanf("%s",s);
printf("%d\n",fun(s));}(2.5分)
A.5
B.21
C.1
D.17
标准答案:
C
19.【题号:
5131】阅读如下程序:
main()
{charch[2][5]={"6934","8254"},*p[2];
inti,j,s=0;
for(i=0;i<2;i++)
p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>'0'&&p[i][j]<='9';j+=2)
s=10*s+p[i][j]-'0';
printf("%d\n",s);
}
程序运行的结果是()(2.5分)
A.6385
B.69825
C.63825
D.693825
标准答案:
A
20.【题号:
5132】下列程序运行的结果为()
#include
fun(intx,inty,int*cp,int*dp)
{*cp=x+y;
*dp=x-y;}
main()
{inta,b,c,d;
a=30;b=50;
fun(a,b,&c,&d);
printf("%d,%d\n",c,d);
getch();}(2.5分)
A.50,30
B.30,50
C.80,-20
D.80,20
标准答案:
C
21.【题号:
5133】阅读程序回答问题:
main()
{inti,j,k,m=0;
for(i=1;i<4;i++)
for(j=1;j<4;j++)
for(k=1;k<4;k++)
m++;
printf("M=%d",m);
}以上程序输出M=()(2.5分)
A.3
B.6
C.9
D.27
标准答案:
D
22.【题号:
5134】下列程序运行的结果为()。
#include
main()
{voidpic(intlen,charc);
inti=4,j;
pic(27,'');
j=i;
pic(i+2*j-1,'*');
putchar('\n');
for(j=2;j>=0;j--)
{pic(30-j,'');
pic(i+2*j,'*');
putchar('\n');
}
}
voidpic(intlen,charc)
{intk;
for(k=1;k<=len;k++)
putchar(c);}(2.5分)
A.
*
***
*****
*******
B.
**********
**********
**********
**********
C.
**********
********
******
****
D.
****
******
********
**********
标准答案:
C
23.【题号:
5135】读下列程序,运行时输入:
Thisisabook!
#include
intchange(char*c,intfg)
{if(*c=='')
return1;
else
if(fg&&*c<='z'&&*c>='a')
*c+='A'-'a';
return0;
}
voidmain()
{
intflag=1;
charch;
do
{ch=getchar();
flag=change(&ch,flag);
putchar(ch);
}while(ch!
='\n');
}程序的运行结果是()(2.5分)
A.THISISABOOK!
B.thisIsABook!
C.ThisIsABook!
D.ThisIsaBook!
标准答案:
C
24.【题号:
5136】下面程序的输出是()。
#include"stdio.h"
intfun(charvalue,intn)
{value>>=n-1;
value&=0x01;
return(value);
}
voidmain()
{charc=13;
printf("%d\n",fun(c,2));
}(2.5分)
A.13
B.1
C.3
D.0
标准答案:
D
25.【题号:
5137】读下列程序,回答问题。
#include"iostream.h"
voidmain()
{char*s="213142";
inta=0,b=0,c=0,d=0;
intk;
for(k=0;s[k];k++)
switch(s[k])
{default:
d++;
case'1':
a++;
case'3':
c++;
case'2':
b++;
}
cout<<"a="<}该程序的输出结果是()(2.5分)
A.a=4,b=5,c=4,d=1
B.a=4,b=9,c=3,d=1
C.a=3,b=6,c=4,d=1
D.a=8,b=8,c=8,d=8
标准答案:
C
三.程序填空(共5题,共37.5分)
26.【题号:
5138】函数fun的功能是求x的y次方(y>=1),请填空。
doublefun(doublex,inty)
{___;
doublez;
for(i=1,z=1;___;i++)
z=z*x;
___;
}(7.5分)
标准答案:
inti,i<=y,returnz
27.【题号:
5139】下面程序的功能是:
将给定的整数x按指定的位置插入已有的
10个整数序列并输出,插入操作在被调函数insert中完成。
(指定的位置应大于等于0且小于等于10)
#include
voidinsert(___,inti,intx)
{intj;
for(j=9;j>=i;j--)
___;
p[i]=x;}
voidmain()
{inti,a[11]={1,2,3,4,5,6,7,8,9,10},wz,x;
printf("Inputtheinsertingposition,>=0&<=10\n");
scanf("%d",&wz);
printf("Inputainsertingdata\n");
scanf("%d",&x);
___(a,wz,x);
for(i=0;i<=10;i++)
printf("%d",a[i]);}(7.5分)
标准答案:
int*p,p[j+1]=p[j],insert
28.【题号:
5140】下面程序的功能是:
从键盘上输入若干个学生的成绩,统计并
输出最高成绩和最低成绩,当输入负数时结束输入。
请填空。
main()
{floatx,max,min;
scanf("%f",&x);
max=x;
min=x;
while(___)
{if(x>max)max=x;
if(___)min=x;
scanf("%f",&___);}
printf("\nMax=%f\nMin=%f\n",max,min);
}(7.5分)
标准答案:
x>=0,x29.【题号:
5141】下面程序是利用插入排序法对数组a进行降序排列。
插入排序的
思路是:
先对数组的头两个元素进行排序,然后把第三个元素
插入已排好序的前两个元素,再插入第四个,依次完成全部元
素的插入排序。
请填空。
#include
voidmain()
{inta[10];
inti,j,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=1;i<10;i++)
{t=a[i];
j=___;
while(j>=0&&t>a[j])
{___;
j--;}
___;
}
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");}(7.5分)
标准答案:
i-1,a[j+1]=a[j],a[j+1]=t
30.【题号:
5142】以下程序是判断输入的字符串是否是"回文"
(顺读和倒读都一样的字符串叫回文,如level),请填空。
#include"stdio.h"
#include"string.h"
voidmain()
{chars[81],*p1,*p2;
intn;
gets(s);
n=strlen(s);
p1=s;
p2=___;
while(___)
{if(*p1!
=*p2)break;
else{p1++;___;}
}
if(p1elseprintf("Yes\n");
}(7.5分)
标准答案:
s+n-1,p1