1、【
单选题
】
下列叙述中错误的是( )。
[1分]
、
线性表是由n个元素组成的一个有限序列
、
线性表是一种线性结构
、
线性表的所有结点有且仅有一个前件和后件
、
线性表可以是空表
答案:
2、【
单选题
】
设计软件结构是软件生命周期的( )。
[1分]
、
软件定义期
、
软件开发期
、
软件维护期
、
以上3个都不是
答案:
3、【
单选题
】
设变量已正确定义,则以下能正确计算f=n!的程序是( )。
[1分]
、
f=0;
for(i=1;i<=n:i+十)f*=i;
、
f=1
for(i=1:i
、
f=l:
for(i=n;i>1;i十+)f*=i;
、
f=1:
for(i=n;j>=2;j--)f*=i;
答案:
4、【
单选题
】
以下叙述中正确的是( )。
[1分]
、
do-while语句构成的循环不能用其他语句构成的循环来代替
、
do-while语句构成的循环只能用break语句退出
、
用do-while语句构成循环时,只有在while后的表达式为非零时结束循环
、
用do-while语句构成循环时,只有在while后的表达式为零时结束循环
答案:
5、【
单选题
】
有以下程序:
#include<STDIO.HD
main()
( char cl,c2,c3,c4,c5,c6;
scanf(”%c%c%c%c”,&cl,&.c2,8Lc3,&c4);
c5=getchar(); c6=getchar():
putchar(c1);putchar(c2);
printf(”%c%c\n”,c5,c6);
)
程序运行后,若从键盘输入(从第1l列开始)
123<回车>
45678<回车>
则输出结果是( )。
[1分]
、
1267
、
1256
、
1278
、
1245
答案:
6、【
单选题
】
若已包括头文件且已有定义char s1[18],s2={”ABCDE”)和int i,现要将字符串”ABCDE”赋给sl,下列语句错误的是( )。
[1分]
、
strcpy(s1,s2)
、
strcpy(s1,”ABCDE”);
、
s1=”ABCDE”:
、
for(i=0;i<6;i++)s1[i]=s2[i]
答案:
7、【
单选题
】
设在c语言中,float类型数据占4个字节,则double类型数据占( )个字节。
[1分]
答案:
8、【
单选题
】
没有如下定义:
int(*ptr)();
则以下叙述中正确的是( )。
[1分]
、
ptr是指向一维组数的指针变量
、
ptr是指向int型数据的指针变量
、
ptr是指向函数的指针,该函数返回一个int型数据
、
ptr是一个函数名,该函数的返回值是指int型数据的指针
答案:
9、【
单选题
】
下面程序输出的是( )。
main()
{ int t-1;fun(fun(t));)
fun(int h)
{static int a[3]-{1,2,3};
int k;
for(k-0;k%3;k++)a[k]+=a[k]-h;
for(k-0;k<3;k++)printf(”%d”,a[k]);
printf(”\n”);
return(a[h]);)
[1分]
、
1,2,3,
、
1,3,5,1,5,9, 1,3,5,
、
1,3,5,
、
1,3,5,
0,4,8, -l,3,7,
答案:
10、【
单选题
】
下列标识符不是关键字的是( )。
[1分]
、
break
、
char
、
Swithch
、
return
答案:
11、【
单选题
】
若i、j已定义成int型,则下列程序段中内循环体的总执行次数是( )。
for(i=6;i>0;i--)
for(j=0;j<4;j++){…}
[1分]
答案:
12、【
单选题
】
若有定义:“int a=4,b=5;float x=3.4,y=2.1;”,则下列表达式的值为( )。
(float)(a+b)/2+(int)x%(int)y;
[1分]
、
5.5
、
55
、
5.500000
、
55.00000
答案:
13、【
单选题
】
下列程序执行后的输出结果是( )。
main()
( int x='f';printf("%c\n”,'A'+(x-‘a’+1));}
[1分]
答案:
14、【
单选题
】
若有定义:int c[4][5],(*cp)[5];和语句cp=c;,则能正确引用C数组元素的是( )。
[1分]
、
cp+1
、
*(cp+3)
、
*(cp+1)+3
、
*(*cp+2)
答案:
15、【
单选题
】
设有以下定义和语句:
char str[20]一”Program”,*P;
P=str:
则以下叙述中正确的是( )。
[1分]
、
*P与str[0]的值相等
、
str与P的类型完全相同
、
str数组长度和P所指向的字符串长度相等
、
数组str中存放的内容和指针变量P中存放的内容相同
答案:
16、【
单选题
】
有以下结构体说明和变量的定义,且指针P指向变量a’指针q指向变量b,则不能把结点b连接到结点a之后的语句是( )。
struct node
{ char data;
struct node*next;
}a,b,*p=&a,*q=&b;
[1分]
、
a.next=q;
、
P.next=&b:
、
p—>next=&b;
、
(*p).next=q;
答案:
17、【
单选题
】
若变量已正确定义并赋值,符合C语言语法的表达式是( )。
[1分]
、
a=a+7:
、
a=7+b+e,a++
、
int(12.3%4)
、
a=a+7=c+b
答案:
18、【
单选题
】
以下程序执行后SUm的值是( )。
main()
{ int i,SUm;
for(i=1;i<6;i++)skim+一i;
printf(”%d\n”,sum);
)
[1分]
答案:
19、【
单选题
】
有以下程序片段:
y=-1;
if(X!=0)
if(x>0)y=1;
else y=0;
其能正确表示的数学函数关系是( )。
[1分]
、
-1(x-<0)
、
1(x<0)
0(x=0) -1(x=0)
1(x>0) 0(x>0)
、
0(x<0)
、
-1(x<0)
-1(x=0) 1(x=0)
1(X>0) 0(x>0)
答案:
20、【
单选题
】
有以下程序
#include
#include
typedef struct{ char Ylain@[9];char sex;float score
[2];)STU;
STU f(STU a)
(STU b=(”Zhao”,'m',85.0,90.0);int i;
strcpy(a.name’b.name):a.sex=b.SeX:
for(i=0;i<2;i++)a.scoreEi]=b.sooreEi];
retklrrl a:
}
main()
(STU c={”Qian”,'f',95.0,92.0},d;
d=f(c);printf(”%s.%c,%2.Of,%2.Of”,d.
name,d.SeX,d.score[0],d.scoreEl]);
)
程序的运行结果是( )。
[1分]
、
Qian,f,95,92
、
Qian,m,85,90
、
Zha0,m,85,90
、
Zha0,f,95,92
答案:
21、【
单选题
】
在结构化分析方法中,数据字典的作用是( )。
[1分]
、
存放所有需要处理的原始数据
、
存放所有处理的结果
、
存放所有程序文件
、
描述系统中所用到的全部数据和文件的有关信息
答案:
22、【
单选题
】
有以下程序:
int fun(int x)
{ int P;
if(x==0||x==1)return(3);
p=x-fun(x-2);
return P;
)
main()
{printf(”%d\n”,fun(7));)
执行后的结果是( )。
[1分]
答案:
23、【
单选题
】
下列程序的输出结果是( )。
char+point(char*pt):
main()
{char b[4]={'a','c','s','f'),*pt=b;
pt=point(pt);
printf(”%c\n“,*pt);
》
point(char*p)
{ p+=3;
return p;
)
[1分]
答案:
24、【
单选题
】
有以下程序
#include
#include
void fun(char s[][10],int n)
{
char t;int i,j;
for(i=0;i<N-1;I++)
for(j=i+1,j<N;J++)
/*比较字符串的首字符大小,并交换字符
串的首字符*/
if(s[o])>s[j][o]{t=s[i][o];sEi][o]=s
[j][o];s[j][o]=t;)
)
main()
{ char ssE5][10]={¨bcc”,”bbcc”,”xy”,”aaaacc”,”
aabcc”)
fun(ss,5);printf(”%s,%s”,ssEo],ss[4]);
)
程序运行结果是( )。
[1分]
、
xy,aaaacc
、
aaaacc,xy
、
XCC,aabcc
、
ace,xabcc
答案:
25、【
单选题
】
下列说法不正确的是( )。
[1分]
、
调用函数时,实参可以是表达式
、
调用函数时,实参与形参可以共用内存单元
、
调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等
、
调用函数时,实参与形参的类型必须一致
答案:
26、【
单选题
】
有以下程序段:
int x=3;
do
{printf(”%3d”,x-=2);
)
while(!(--x));
程序段的输出结果是( )。
[1分]
答案:
27、【
单选题
】
有以下程序:
fun(int x)
{ int P;
if(x==0|1 x==1)return(3);
p=x-fun(x-2);.
return P;
}
main()
{printf(”%d\n”,fun(7));)
程序执行后的输出结果是( )。
[1分]
答案:
28、【
单选题
】
下列程序的运行结果是( )。
#include
main()
{ static char a[]="Languagef",b[]=”programe”;
char*p1,*p2;int k;
p1=a;p2=b;
for(k=0;k<=8;k++)
if(*(p1+k)==*(p2+k))
printf(”%c”,*(p1十k));
)
[1分]
、
gae
、
ang
、
program
、
有语法错
答案:
29、【
单选题
】
以下叙述中错误的是( )。
[1分]
、
改变函数形参的值,不会改变对应实参的值
、
函数可以返回地址值
、
可以给指针变量赋一个整数作为地址值
、
当在程序的开头包含文件stdi0.h时,可以给指针变量赋NULL
答案:
30、【
单选题
】
对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。
[1分]
答案:
31、【
单选题
】
以下程序的输出结果是( )。
main()
{ int i一0,S=0:
for(;;)
{
if(i==3 || i==5)continue;
if(i==6) break:
i++:
s+=i:
);
printf(”%d\n”,s):
[1分]
答案:
32、【
单选题
】
在16位编译系统上,若有定义“int a[]={10,20,30),*P=&a;”,当执行“P++;”后.下列说法错误的是( )。
[1分]
、
P向高地址移了一个字节
、
P向高地址移了一个存储单元
、
P向高地址移了两个字节
、
P与a+1等价
答案:
33、【
单选题
】
设有定义语句:char a='\72';,则变量a( )。
[1分]
、
包含1个字符
、
包含2个字符
、
包含3个字符
、
定义不合法
答案:
34、【
单选题
】
下列程序执行后的输出结果是( )。
main()
{char x一0xFFFF;printf(”%d\n”,x——);)
[1分]
、
-32767
、
FFFE
、
-1
、
-32768
答案:
35、【
单选题
】
以下叙述中正确的是( )。
[1分]
、
a是实型变量,C允许进行赋值a=10,但不可以这样说:实型变量中允许存放整型值
、
在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式
、
执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0
、
已有a=3,b=5,当执行了表达式a=b,b=a之后,使a中的值为5,b中的值为3
答案:
36、【
单选题
】
若变量已正确定义,有以下程序段
i=0:
do printf(”%d,”,i);while(i++);
printf(”%d”,i)
其输出结果是( )。
[1分]
、
0,0
、
0,l
、
1,1
、
程序进入无限循环
答案:
37、【
单选题
】
有以下程序:
main()
{int num]-4][4]={{1,2,3,4),{5,6,7,8),{9,10,
11,12,),(13,14,15,16)},i,j;
for(i=0;i<4;i4-+)
( for(j=0;j<I;J++)PRINT{(”%4C”,“);
for(j=______;j<4;j++)print{(”%4d”,
num[i][j]);
print{(”n”);))
若要按以下形式输出数组右一k半三角
1 2 3 4
6 7 8
11 12
16
则在程序下划线处应填人的是( )。
[1分]
答案:
38、【
单选题
】
若变量已正确定义为int型,要给a、b、c输人数据,正确的输入语句是( )。
[1分]
、
read(a,b,C);
、
scanf(”%d%d%d”,a.b,c);
、
scanf(”%D%D%D”,&a,%b,%c);
、
scanf(”%d%d%d”,&a,&b,&c);
答案:
39、【
简答题】
下列给定程序中函数fun()的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:l,1,2,3,5,8,13,21,…
例如,若给n输入7,则该项的斐波拉契数值为13。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
long fun(int g)
(
//**+*found****
switch(g);
{
case 0:return 0;
//****found****
case l:case 2:return 1;
}
return(fun(g-1)+fun(g-2));
)
void main()
{
long fib;int n;
printf(”Input n:”);
scanf(”%d”,&n);
printf(”n=%d\n”,n);
fib=fun(n);
printf(”fib=%d\nkn”,fib);
}
[24分]
解析:
(1)错误:switCh(G); 正确:switCh(G)(2)错误:CAsEl:CAsE2:rEturnl; 正确:CAsEl;CAsE2:rEturnl;
40、【
简答题】
某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数,其功能是:求出该学生的平均分,并放入记录的ave成员中。
例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数fun()部位中填入你编写的若干语句。
试题程序:
#include
#define N 8
typedef struct
{
char nurn[10];
double s[N];
double ave;
)STREC;
void fun(STREC * a)
{
)
void main()
{
STREC s={¨GA005”,85.5,76,69.5,85,91,72,
[18分]
解析:
voiDFun(STREC*A)
inti;.A->ave=0.0;
for(i=0;i<N;i++)
a->ave=a->ave+a->s[i];/*求各门课程成绩的总和*/
a->ave=ar>ave/N;/*求平均分*" >