31. 下列选项中,能够满足“若字符串s1等于字符串s2,则执行ST"要求的是
A if(strcmp(s2,s1)==0)ST; B if(sl==s2)ST; C if(strcpy(s l ,s2)==1)ST;
D if(sl-s2==0)ST 答案:A
32. 以下不能将s所指字符串正确复制到t所指存储空间的是
A while(*t=*s){t++;s++;} B for(i=0;t[i]=s[i];i++);
C do{*t++=*s++;}while(*s); D for(i=0,j=0;t[i++]=s[j++];); 答案:C
33. 有以下程序( strcat函数用以连接两个字符串)
#include
#include
main()
{char a[20]=”ABCD\OEFG\0”,b[]=”IJK”;
strcat(a,b);printf(”%s\n”,a);
}
程序运行后的输出结果是
A ABCDE\OFG\OIJK B ABCDIJK\ C IJK D EFGIJK 答案:B
34. 有以下程序,程序中库函数islower (ch)用以判断ch中的字母是否为小写字母
#include
#include
voidfun(char*p)
{inti=0;
while (p[i])
{if(p[i]==’ ’&& islower(p「i-1」))p[i-1]=p[i-1]-‘a’+‘A’;
i++;
}
}
main()
{char s1[100]=”ab cd EFG!”;
fun(s1); printf(”%s\n”,s1);
}
程序运行后的输出结果是
A abcdEFG! B AbCdEFg! C aBcDEFG! D abcdEFg! 答案:C
35. 有以下程序
#include
voidfun(int x)
{if(x/2>1)fun(x/2);
printf(”%d”,x);
}
main()
{fun(7);printf(”\n”);}
程序运行后的输出结果是
A 1 3 7 B 7 3 1 C 7 3 D 3 7 答案:B
36. 有以下程序
#include
int fun()
{static int x=1;
x+=1;return x;
}
main()
{int i;s=1;
for(i=1;i<=5;i++)s+=fun();
printf(”%d\n”,s);
}
程序运行后的输出结果是
A 11 B 21 C 6 D 120 答案:B
37. 有以下程序
#inctude
#include
Main()
{int *a,*b,*c;
a=b=c=(int*)malloc(sizeof(int));
*a=1;*b=2,*c=3;
a=b;
printf(“%d,%d,%d\n”,*a,*b,*c);
}
程序运行后的输出结果是
A 3,3,3 B 2,2,3 C 1,2,3 D 1,1,3 答案:A
38. 有以下程序
#include
main()
{int s,t,A=10;double B=6;
s=sizeof(A);t=sizeof(B);
printf(“%d,%d\n”,s,t);
}
在VC6平台上编译运行,程序运行后的输出结果是
A 2,4 B 4,4 C 4,8 D 10,6 答案:C
39. 若有以下语句
Typedef struct S
{int g; char h;}T;
以下叙述中正确的是
A 可用S定义结构体变量 B 可用T定义结构体变量
C S是struct类型的变量 D T是struct S类型的变量 答案:B
40. 有以下程序
#include
main()
{short c=124;
c=c_______;
printf(“%d\n”、C);
}
若要使程序的运行结果为248,应在下划线处填入的是
A >>2 B |248 C &0248 D < 答案:C
二、填空题(每空2分,共30分)
请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。
1. 一个栈的初始状态为空。首先将元素5,4,3,2,1依次入栈,然后退栈一次,再将元素 A,B,C,D依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为【1】
答案:1DCAB2345
2. 在长度为n的线性表中,寻找最大项至少需要比较【2】次。
答案:log2(n)
3. 一棵二叉树有10个度为1的结点,7个度为2的结点,则该二叉树共有【3】个结点。
答案:25
4. 仅由顺序、选择(分支)和重复(循环)结构构成的程序是【4】程序。答案:结构化
5. 数据库设计的四个阶段是:需求分析,概念设计,逻辑设计【5】。答案:物理设计
6. 以下程序运行后的输出结果是【6】。
#include
main()
{int a=200,b=010;
printf(”%d%d\n”,a,b);
} 答案:2008
7. 有以下程序
#include
main()
{intx,Y;
scanf(”%2d%ld”,&x,&y);printf(”%d\n”,x+y);
}
程序运行时输入:1234567程序的运行结果是【7】。答案:3
8. 在C语言中,当表达式值为0时表示逻辑值“假”,当表达式值为【8】时表示逻辑值“真”。
答案:非0
9. 有以下程序
#include
main()
{int i,n[]={0,0,0,0,0};
for (i=1;i<=4;i++)
{n[i]=n[i-1]*3+1; printf(”%d ",n[i]);}
}
程序运行后的输出结果是【9】。答案:1 4 13 40
10. 以下fun函数的功能是:找出具有N个元素的一维数组中的最小值,并作为函数值返回。请填空。(设N已定义)
int fun(int x[N])
{int i,k=0;
for(i=0;i
if(x[i]
return x[k];
} 答案:i
11. 有以下程序
#include
int*f(int *p,int*q);
main()
{int m=1,n=2,*r=&m;
r=f(r,&n);printf(”%d\n”,*r);
}
int*f(int *p,int*q)
{return(*p>*q)?p:q;}
程序运行后的输出结果是【11】 答案:2
12. 以下fun函数的功能是在N行M列的整形二维数组中,选出一个最大值作为函数值返回,请填空。(设M,. N已定义)
int fun(int a[N][M))
{int i,j,row=0,col=0;
for(i=0;i
for(j=0;j
if(a[i][j]>a[row][col]){row=i;col=j;}
return(【12】): 答案:a[row][col]
13. 有以下程序
#include
main()
{intn[2],i,j;
for(i=0;i<2;i++)n[i]=0;
for(i=0;i<2;i++)
for(j=0;j<2;j++)n[j]=n「i」+1;
printf(”%d\n”,n[1]);
}
程序运行后的输出结果是【13】 答案:2
14. 以下程序的功能是:借助指针变量找出数组元素中最大值所在的位置并输出该最大值。请在输出语句中填写代表最大值的输出项。
#include
main()
{int a〔10],*p,*s;
for(p=a;p-a<10;p++)scanf(”%d”,p);
for(p=a,s=a;p-a<10;p++)if(*p>*s)S=P;
printf("max=%d\n”,【14】);
} 答案:*s
15. 以下程序打开新文件f.txt,并调用字符输出函数将a数组中的字符写入其中,请填空。
#include
main()
{【15】*fp;
char a[5]={’1’,’2’,’3’,’4’,’5’},i;
fp=fopen(”f .txt”,”w”);
for(i=0;i<5;i++)fputc(a[i],fp);
fclose(fp);
}
答案:FILE