计算机类二级C
2013年9月全国计算机等级《二级C语言程序设计》专家预测卷(2)
43 题含答案C
1单选题1 / 43
若有以下程序段:
int r=8;
print("%d\n",r>>1):
输出结果是( )。
查看答案
C. 4
2单选题2 / 43
软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件),下面属于系统软件的是( )。
查看答案
B. 操作系统
3单选题3 / 43
有以下程序:
#includedstdio.h>
int f(int n);
main( )
{int a=3,s;
s=f(a);s=s+f(a);printf("%dkn",s);
}
int f(int n)
{static int a=1;
n+=a++;
return n;
}
程序运行后的输出结果是( )。
查看答案
C. 9
4单选题4 / 43
一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。
查看答案
C. 多对多
5单选题5 / 43
有下列程序:
main( )
{ int k=5;
while(--k) printf("%d",k=1);
printf("/n");
}
执行后的输出结果是( )。
查看答案
A. 1
6单选题6 / 43
以下关于算法的叙述中错误的是( )。
查看答案
B. 一个正确的算法必须有输入
7单选题7 / 43
有以下程序:
#include
void f(int*p);
main()
{int a[5]={1,2,3,4,5),*r=a;
f(r);printf("%d\n",*r);
}
void f(int*p)
{p=p+3;printf("%d,",*p);}
程序运行后的输出结果是( )。
查看答案
D. 4,1
8单选题8 / 43
下面是有关C语言字符数组的描述,其中错误的是( )。
查看答案
D. 字符数组只能存放字符串
9单选题9 / 43
有以下程序(strcat函数用以连接两个字符串)
#include
#include。
main()
{char a[20]="ABCD\oEFG\0",h[]="IJK";
strcat(a,b);printf("%s\n",a);
)
程序运行后的输出结果是( )。
查看答案
B. ABCDIJK
10单选题10 / 43
若有定义语句int b=2;,则表达式(b<<2)/(3||b)的值是( )。
查看答案
B. 8
11单选题11 / 43
在E—R图中,用来表示实体联系的图形是( )。
查看答案
C. 菱形
12单选题12 / 43
av9功能是求整形数组中的前若干个元素的平均值,设数组元素个数最多不超过则下列函数说明语句错误的是( )。
查看答案
C. int avg(int a,int n);
13单选题13 / 43
有以下程序:
#include
main( )
{char ch[3][5]={"AAAA","BBB","CC"};
printf("%s\n",ch[l]);
}
程序运行后的输出结果是( )。
查看答案
D. BBB
14单选题14 / 43
以下不能将S所指字符串正确复制到t所指存储空间的是( )。
查看答案
C. do{*t++=*s++;)while(*s);
15单选题15 / 43
有以下程序,其中k的初值为八进制数:
#include
main( )
{int k=011;
printf{"%d|n",k++};
}
程序运行后的输出结果是( )。
查看答案
D. 9
16单选题16 / 43
有以下定义:“int a;long b;double X,Y;”,则以下选项中正确的表达式是( )。
查看答案
D. y=x+y=X
17单选题17 / 43
以下选项中关于程序模块化的叙述错误的是( )。
查看答案
C. 可采用自低向上、逐步细化的设计方法把若干独立模块组装成所要求的程序
18单选题18 / 43
下列合法的声明语句是( )。
查看答案
A. int_abc=50;
19单选题19 / 43
有以下程序:
#include
#include
typedef struct{char name[9];char sex;int score[2];}STU;
STU f(STU a)
{ STU b={"Zha0","m",85,90};
int i;
strcpy(a.name,b.name);
sex=b.sex;
for(i=o;i<2;i++)a.score[i]=b.score[i];
return a;
}
main( )
{ STU c={"Qian",f,95,92),d;
d=f(c);
printf("%S,%C,%d,%d,",d.name,d.sex,d.score[0],d.score[l]);
printf("%s,%c,%d,%d\n",C.name,C.sex,c.score[0],C.score[1]);
}
程序运行后的输出结果是( )。
查看答案
A. Zhao,m,85,90,Qian,f,95,92
20单选题20 / 43
有以下程序
#include
void fun(int p)
{int d=2;
p=d++;printf("%d".p);}
main( )
{int a=1;
fun(a):printf("%d\n",a);)
程序运行后的输出结果是( )。
查看答案
C. 21
21单选题21 / 43
在面向对象方法中,实现信息隐蔽是依靠( )。
查看答案
C. 对象的封装
22单选题22 / 43
有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数):
#include
#include
main( )
{char a[10]="abc",b[10]="012",c[10]="xyz";
strcpy(a+1,b+2);
puts(strcat(a,c+1));
}
程序运行后的输出结果是( )。
查看答案
C. a2yz
23单选题23 / 43
有以下程序:
#include
main()
{ char s[]="rstuv";
printf("%c\n",*s+2);
}
程序运行后的输出结果是( )。
查看答案
C. t
24单选题24 / 43
有以下程序:
#include
#define N 8
void fun(int*x,int i)
{*x=*(x+i);)
main( )
{ int a[N]={1,2,3,4,5,6,7,8},i;
fun(a,2);
for(i=0;i<n/2;i++)
{printf("Ha",a[i]);}
printf("\n");
}
程序运行后的输出结果是( )。
查看答案
C. 3234
25单选题25 / 43
有以下程序:
#include
int f(int t[],int n);
main( )
{int a[4]={1,2,3,4},s;
s=f(a,4);printf("%d\n",s);
int f(int t[],int n)
{if(n>0)return t[n-1]+f(t,n-1);
else return 0;
}
程序运行后的输出结果是( )。
查看答案
B. 10
26单选题26 / 43
有以下程序:
#include
#define N 4
void fun(int a[][N],int[])
{ int i;
for(i=o;i
}
main( )
{ int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;
fun(X,y);
for(i=0;i
}
程序运行结果为( )。
查看答案
B. -3,-l,1,3,
27单选题27 / 43
下列叙述中正确的是( )。
查看答案
C. 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
28单选题28 / 43
有以下程序:
#include
#include
void fun(int*pl,int*p2,int*s)
{ s=(int*)malloc(sizeof(int));
*s=*pl+*p2;
free(s);
}
main( )
{ int a=1,b=40,*q=&a;
fun(&a,&b,q);
printf("%d\n",*q);
}
程序运行后的输出结果是( )。
查看答案
C. 1
29单选题29 / 43
有以下程序:
#include
main( )
{int c=0,k;
for(k=1;k<3;k++)
switch(k)
{default:c+=k;
case2:c++;break;
case4:c+=2;break;
}
printf("%d\n",c);
}
程序运行后的输出结果是( )。
查看答案
A. 3
30单选题30 / 43
有下列程序:
int funl(double a){return a*=a;}
int fun2(double x,double y)
{double a=0,b=0;
a=funl(x);b=funl(y);return(int)(a+b);
}
main( )
{double w;w=fun2(1.1,2.0),……}
程序执行后变量w中的值是( )。 、
查看答案
C. 5.0
31单选题31 / 43
某系统总体结图如下图所示:
该系统总体结构图的深度是( )。
查看答案
C. 3
32单选题32 / 43
计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的事( )。
查看答案
A. C语言程序仅可以编译执行
33单选题33 / 43
有以下程序:
#include
#include
main( )
{ char a[5][10]={"china","beijing","you","tiananmen","welcome");
int i,j;char t[10];
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(strcmp(a[i],a[j]>O)
{strcpy(t,a[i]);strepy(a[i],a[j]);strcpy(a[j],t)};
puts(a[3]);
}
程序运行后的输出结果是( )。
查看答案
C. welcome
34单选题34 / 43
下列叙述中正确的是( )。
查看答案
D. 一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
35单选题35 / 43
有以下程序
#include
main( )
{int n=2,k=0;
while(k++&&n++>2);
printf("%d%d\n",k,n);
}
程序运行后的输出结果是( )。
查看答案
D. 12
36单选题36 / 43
有以下程序,程序中库函数islower(ch)用以判断ch中的字母是否为小写字母
#include
#include
void fun(char*p)
{int i=0;
while(p[i])
{ if(p[i]=="&&islower(p[i-1]))p[i一1]=p[i-1]='a'+'A';
i++。
}
}
main()
{char sl[100]="ab cd EFG!";
fun(a1);printf("%s\n",sl);
程序运行后的输出结果是( )。
查看答案
C. aB cD EFG!
37单选题37 / 43
对如下二叉树进行后序遍历的结果为( )。
查看答案
D. DEBFCA
38单选题38 / 43
在满足实体完整性约束的条件下( )。
查看答案
A. 一个关系中应该有一个或多个候选关键字
39单选题39 / 43
若有以下语句:
typedef struct S
{int g;char h;}T;
以下叙述中正确的是( )。
查看答案
B. 可用T定义结构体变量
40单选题40 / 43
一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是( )。
查看答案
D. m:n联系
41主观题41 / 43
请补充函数proc(),该函数的功能是计算下面公式SN的值:
SN=1+1/3十4/5+...+2N-1/SN-1
例如,当N=20时,SN=29.031674。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
#include
double proc(int n)
{
double s=1.0,sl=0.0;
int k;
for(【1】;k<=n;k++)
{
s1=S;
【2】
}
return 【3】 ;
}
void main()
{
int k=0:
double sum;
system("CLS");
printf("\nPlease input N=");
scanf("%d",&k);
sum=proc(k);
printf("\nS=%If",sum);
}
查看答案
【1】k=2【2】s+=(2*k一1)/sl【3】s
42材料分析题42 / 43
给定程序中,函数proc()的功能是:使数组中的元素的值缩小5倍。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#include
float m[10];
//****found****
int proc(void)
{
int j;
printf("In subfunc after calling\n");
for(j=0;j<10;j++)
{
//****found****
printf("%f",m[j]%5);
}
}
void main()
{
int i;
printf("In main before calling\n");
for(i=0;i<10;i++)
{
m[i]=i+20;
printf("%f",m[i]);
}
proc();
printf("\nln main after calling\n");
for(i=0;i<10;i++)
printf("%f",m[i]/5);
}
查看答案
(1)错误:int proC(voiD)正确:voiD proC(voiD) (2)错误:printF("%F",m[j]%5); 正确:pFintF("%F",m[j]/5);
43主观题43 / 43
请编写函数proc(),其功能是:将str所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。
例如,当str所指字符串中的内容为abcdefg,则在t所指数组中的内容应是bdf。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include
#include
#include
#include
void proc(char*str,char t[])
{
}
void main()
{
char str[100],t[100];
system("CLS");
printf("\nPlease enter string str:");
scanf("%S",str);
proc(str,t);
printf("\nThe result is:%s\n",t);
}
查看答案
voiD proC(ChAr*str,ChAr t[])
{
int i,i=0,k=strlen(str); //k是放字符串的长度的变量
for(i=1;i<k;i=i+2)//i=i+2,表示的为奇数
t[j++]=str[i]; //把下标为奇数的数放到t数组中
t[i]='\o'; //因为t是字符串,因此必须用'\0'作为结束标志
}