计算机类二级C

2014年全国计算机等级《二级C语言程序设计》上机考试冲刺试题(3)

43 题含答案C
共 43 题返回本类
1单选题1 / 43
下列叙述中错误的是(  )。
查看答案
C. 线性表的所有结点有且仅有一个前件和后件
2单选题2 / 43
设计软件结构是软件生命周期的(  )。
查看答案
B. 软件开发期
3单选题3 / 43
设变量已正确定义,则以下能正确计算f=n!的程序是(  )。
查看答案
D. f=1:
for(i=n;j>=2;j--)f*=i;
4单选题4 / 43
以下叙述中正确的是(  )。
查看答案
D. 用do-while语句构成循环时,只有在while后的表达式为零时结束循环
5单选题5 / 43
有以下程序:
#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<回车>
则输出结果是( )。
查看答案
D. 1245
6单选题6 / 43
若已包括头文件且已有定义char s1[18],s2={”ABCDE”)和int i,现要将字符串”ABCDE”赋给sl,下列语句错误的是(  )。
查看答案
C. s1=”ABCDE”:
7单选题7 / 43
设在c语言中,float类型数据占4个字节,则double类型数据占(  )个字节。
查看答案
C. 8
8单选题8 / 43
没有如下定义:
int(*ptr)();
则以下叙述中正确的是(  )。
查看答案
C. ptr是指向函数的指针,该函数返回一个int型数据
9单选题9 / 43
下面程序输出的是( )。
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]);)
查看答案
D. 1,3,5,
0,4,8, -l,3,7,
11单选题11 / 43
若i、j已定义成int型,则下列程序段中内循环体的总执行次数是( )。
for(i=6;i>0;i--)
for(j=0;j<4;j++){…}
查看答案
B. 24
12单选题12 / 43
若有定义:“int a=4,b=5;float x=3.4,y=2.1;”,则下列表达式的值为(  )。
(float)(a+b)/2+(int)x%(int)y;
查看答案
C. 5.500000
13单选题13 / 43
下列程序执行后的输出结果是(  )。
main()
( int x='f';printf("%c\n”,'A'+(x-‘a’+1));}
查看答案
A. G
14单选题14 / 43
若有定义:int c[4][5],(*cp)[5];和语句cp=c;,则能正确引用C数组元素的是(  )。
查看答案
D. *(*cp+2)
15单选题15 / 43
设有以下定义和语句:
char str[20]一”Program”,*P;
P=str:
则以下叙述中正确的是(  )。
查看答案
A. *P与str[0]的值相等
16单选题16 / 43
有以下结构体说明和变量的定义,且指针P指向变量a’指针q指向变量b,则不能把结点b连接到结点a之后的语句是(  )。
struct node
{ char data;
struct node*next;
}a,b,*p=&a,*q=&b;
查看答案
B. P.next=&b:
17单选题17 / 43
若变量已正确定义并赋值,符合C语言语法的表达式是(  )。
查看答案
B. a=7+b+e,a++
18单选题18 / 43
以下程序执行后SUm的值是(  )。
main()
{ int i,SUm;
for(i=1;i<6;i++)skim+一i;
printf(”%d\n”,sum);
)
查看答案
C. 不确定
19单选题19 / 43
有以下程序片段:
y=-1;
if(X!=0)
if(x>0)y=1;
else y=0;
其能正确表示的数学函数关系是(  )。
查看答案
C. 0(x<0)
20单选题20 / 43
有以下程序
#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]);
)
程序的运行结果是(  )。
查看答案
C. Zha0,m,85,90
21单选题21 / 43
在结构化分析方法中,数据字典的作用是(  )。
查看答案
D. 描述系统中所用到的全部数据和文件的有关信息
22单选题22 / 43
有以下程序:
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));)
执行后的结果是( )。
查看答案
C. 2
23单选题23 / 43
有如下程序:
#include
i=sizeof(a);
j=strlen(a):
printf("%d,%d",i,j);
)
main()
{FILE*fpl;
fpl=fopen(”f1.txt”,”w“);
fprintf(fpl,”abe”);
fclose(fpl);
)
若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为(  )。
查看答案
C. abe
24单选题24 / 43
下列程序的输出结果是(  )。
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;
)
查看答案
C. f
25单选题25 / 43
有以下程序
#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]);
)
程序运行结果是( )。
查看答案
D. ace,xabcc
26单选题26 / 43
下列说法不正确的是(  )。
查看答案
B. 调用函数时,实参与形参可以共用内存单元
27单选题27 / 43
有以下程序段:
int x=3;
do
{printf(”%3d”,x-=2);
)
while(!(--x));
程序段的输出结果是(  )。
查看答案
C. 1-2
28单选题28 / 43
有以下程序:
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));)
程序执行后的输出结果是( )。
查看答案
C. 2
29单选题29 / 43
下列程序的运行结果是( )。
#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));
)
查看答案
A. gae
30单选题30 / 43
以下叙述中错误的是(  )。
查看答案
C. 可以给指针变量赋一个整数作为地址值
31单选题31 / 43
对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。
查看答案
C. n
32单选题32 / 43
以下程序的输出结果是(  )。
main()
{ int i一0,S=0:
for(;;)
{
if(i==3 || i==5)continue;
if(i==6) break:
i++:
s+=i:
);
printf(”%d\n”,s):
查看答案
D. 程序陷入死循环
33单选题33 / 43
在16位编译系统上,若有定义“int a[]={10,20,30),*P=&a;”,当执行“P++;”后.下列说法错误的是(  )。
查看答案
A. P向高地址移了一个字节
34单选题34 / 43
设有定义语句:char a='\72';,则变量a( )。
查看答案
A. 包含1个字符
35单选题35 / 43
下列程序执行后的输出结果是( )。
main()
{char x一0xFFFF;printf(”%d\n”,x——);)
查看答案
C. -1
36单选题36 / 43
以下叙述中正确的是(  )。
查看答案
A. a是实型变量,C允许进行赋值a=10,但不可以这样说:实型变量中允许存放整型值
37单选题37 / 43
数据库管理系统DBMS中用来定义模式、内模式和外模式的语言为(  )。
查看答案
C. DDL
38单选题38 / 43
若变量已正确定义,有以下程序段
i=0:
do printf(”%d,”,i);while(i++);
printf(”%d”,i)
其输出结果是( )。
查看答案
B. 0,l
39单选题39 / 43
有以下程序:
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
则在程序下划线处应填人的是(  )。
查看答案
B. i
40单选题40 / 43
若变量已正确定义为int型,要给a、b、c输人数据,正确的输入语句是(  )。
查看答案
D. scanf(”%d%d%d”,&a,&b,&c);
41主观题41 / 43
请补充函数proc(),函数proe()的功能是求7的阶乘。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
#include
long proc(int n)
{
if(【1】 )
reurn(n”proc( 【2】 );
else if( 【3】 )
return 1:
}
void main()
{
int k=7:
printf(”%d!= \n”,k,proc(k));
}
查看答案
【1】n>1【2】n-1【3】n==1
42主观题42 / 43
下列给定程序中函数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);
}
查看答案
(1)错误:switCh(G); 正确:switCh(G)(2)错误:CAsEl:CAsE2:rEturnl; 正确:CAsEl;CAsE2:rEturnl;
43主观题43 / 43
某学生的记录由学号、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,
查看答案
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;/*求平均分*" >
← 上一卷下一卷 →