计算机类二级C

2014年全国计算机等级《二级C语言程序设计》考前押密试题(5)

43 题含答案C
共 43 题返回本类
1单选题1 / 43
能正确表示“当x的取值在[1,10]和[100,11O]范围内为真,否则为假”的表达式是(  )。
查看答案
C. (x>=1)&&(x<=10)||(x>=100)&&(x<=110)
2单选题2 / 43
下述程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,则程序空白上应该填写的是(  )。
#include
maln()
{char s1[]=”chinese”,s2[]=”japanese”;
int i;
{or(i=0;s1[i]!='\0'&&s2[i]!='\0';i++)
if(s1[i]==s2[i]&&i<7)
查看答案
C. print[(”%c%d\n”,s2[i],i)
3单选题3 / 43
有以下程序:
#inrllldp
maln()
{ char ch;
oh='A'+'5'-'3':
printf(”%d,%c\n”,ch,ch);
}
程序的输出结果是( )。
查看答案
A. 67,C
4单选题4 / 43
下列说法正确的是( )。
查看答案
D. 在C语言中,定义一个数组后,就确定了它所容纳的元素的个数
5单选题5 / 43
下列叙述中错误的是(  )。
查看答案
B. 数据的存储结构与数据的处理效率无关
6单选题6 / 43
有以下程序:
main()
{ int x,i;
for(i=l;i<=50;i++)
{x=i;
if(x%2=0)
if(x%3=0)
if(x%7=0)
printf(”%d,i)”;
}
}
输出结果是( )。
查看答案
C. 42
7单选题7 / 43
有以下函数:
char fun(char*p)
{return P;}
该函数的返回值是(  )。
查看答案
A. 无确功的值
8单选题8 / 43
有以下程序:
#include
main()
{ int y=10;
for(;y>0;y——)if(y%3==0)
{printf(”%d”,——y);continue;
)
}
程序的输出结果是( )。
查看答案
B. 852
9单选题9 / 43
在一个C语言源程序文件中所定义的全局变量,其作用域为(  )。
查看答案
D. 由具体定义位置和extern说明来决定范围
10单选题10 / 43
下列程序的输出结果是(  )。
#include
void p(int*x)
{printf(”%d”,++*x);
}
void main()
{ int y=3;
p(&y);
}
查看答案
B. 4
11单选题11 / 43
有下列程序:
main()
{char p[]={'a','b','c'),q[]=”abc”;
printf(”%d%d\n”,sizeof(p),sizeof(q));
}
程序运行后的输出结果是(  )。
查看答案
C. 3 4
12单选题12 / 43
设有下列程序段:
char str[]="HelloWorld":
char*ptr;
ptr=str ;
执行上面的程序段后,*(ptr+10)的值为( )。
查看答案
A. '\O'
13单选题13 / 43
链表不具有的特点是(  )。
查看答案
B. 町随机访问任意元素
14单选题14 / 43
有以下程序:
main()
{ union
{char ch[2];
im d;
d一0x4321;
printf(”%x,%x\n”,s.ch[O],s.ch[1]);
)S;
在16位编译系统上,程序执行后的输出结果是(  )。
查看答案
A. 21,43
15单选题15 / 43
有以下程序:
void funl(char*p)
{ char*q;
q=p
while(*q!='\0')
{(*q)++;q++;)
)
main()
{char a[]=(”Program”),“P;
p=&a[3];funl(p);
printf(”%s\n”,a);
)
程序执行后的输出结果是(  )。
查看答案
A. Prohsbn
16单选题16 / 43
设x=011050,则x=x801252的值是(  )。
查看答案
A. 0000001000101000
17单选题17 / 43
若ch为char型变量,k为int型变量(已知字符a的ASCIl码是97),则执行下列语句后输出的结果为(  )。
oh='b';
k=10;
printf(”%x,%0,”,ch,ch,k);
printf(“k=%%d\n”,k);
查看答案
C. 62,142,k=%d
18单选题18 / 43
以下程序的输出结果是(  )。
main()
{int x=0.5;char z='a';
printf(”%d\n”,(x&1)&&(z<'z'));}
查看答案
B. 1
19单选题19 / 43
执行下述程序后,输出的结果是(  )。
#include
#define S(X) X*X
void main()
{ int a=9,k=3,m=2;
a/=S(k+m)/s(k+m);
printf(”%d”,a);
}
查看答案
D. 0
20单选题20 / 43
下列程序的运行结果为(  )。
#include
main()
{ struct date
{ int year,month,day;
)today;
printf(”%d\n”,sizeof(struct date));
查看答案
B. 6
21单选题21 / 43
软件生命周期中,花费最多的阶段是(  )。
查看答案
D. 软件维护
22单选题22 / 43
若有定义“float a=25,b,*p=&b;”,则下列对赋值语句“*p=a;”和“p=&a;”的正确解释为(  )。
查看答案
C. *p=a是将变量a的值赋予变量b,而&a是使P指向变量a
23单选题23 / 43
在Internet中,域名服务器的主要功能是实现(  )的转换。
查看答案
B. 域名到IP地址
24单选题24 / 43
若有以下定义:
char a;int b;
float C;double d;
则表达式a*b+b-c值的类型为(  )。
查看答案
D. double
25单选题25 / 43
以下函数返回a所指数组中最小的值所在的下标值:
fun(int*a,int n)
{ int i,j=0,P;
P=j;
for(i=j;i<N;I++)
if(aEi]<A[J])&NBSP;&NBSP;&NBSP; return(p);
}
在下划线处应填入的是(  )。
查看答案
D. p=i
26单选题26 / 43
若有以下程序段,W和k都是整型变量:
:
w=k:
LB:if(w==0)go to LE;
W——:
printf(”*”)
goto LB:
LE;
则不能与上面程序段等价的循环语句是( )。 J
查看答案
C. w=k;
while(w——!=O)printf(”*”);
27单选题27 / 43
有以下结构说明和变量定义,指针p、q、r分别指向链表中的3个连续结点。
struct node
{int data;struct node*next;}*p,。q,*r;
现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能按要求完成操作的语句是(  )。
查看答案
D. p=q->next;
28单选题28 / 43
若有以下的说明和语句,则在执行for语句后,*(*(pt+1)+2)表示的数组元素是(  )。
im t[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]-&t[k][o];
查看答案
C. tell[2]
30单选题30 / 43
若有定义语句:int a[2][3],*p[3];,则以下语句中正确的是( )。
查看答案
B. p[o]=a;
31单选题31 / 43
利用fseek函数可实现的操作是(  )。
查看答案
D. 以上答案均正确
32单选题32 / 43
有以下程序:
#include
main()
{int aaE33E33-{(2),{4),(6)},i,*p=&.aa[o][o];
for(i=0;i<2;i++)
{i==0)aa[i][i+1]=*p+1;
else++P:
printf(”%d”,*p);
}
printf(”\n”);
}
程序的输出结果是(  )。
查看答案
A. 23
33单选题33 / 43
若变量a、b、x、i都已正确定义并赋值,则以下符合C语言语法的表达式是(  )。
查看答案
A. a+=a-=(b=4)*(a=3)
34单选题34 / 43
下列程序的输出结果是f )。
int f1(int x,int y){return x>y?x:y;)
int f2(int x,int y){return x>y?Y:x;)
main()
{ int a=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));
f=f1(f2(a,b),f2(c,d));
g=a+b+c十d-e-f;
printf(”%d,%d,%d\n”,e,f,g);)
查看答案
A. 4,3,7
35单选题35 / 43
判断char型变量C是否为大写字母的最简单且正确的表达式是( )。
查看答案
D. (c>='A')&&(c<='Z')
36单选题36 / 43
算法的空间复杂度是指(  )。
查看答案
D. 算法执行过程中所需要的存储空间
37单选题37 / 43
定义结构体数组:
struct stu
{ int hum;
char nameE20];
}X[5]={1,”1, "LI",2,”ZHAO”,3,”WANG”,4,”
ZHANG”,5,”LIU”);
for(i=1;i<5;i++)
printf(”%d%c”,x[i].hum,x[i].name[2]);
以上程序段的输出结果为(  )。
查看答案
A. 2A3N4A5U
38单选题38 / 43
有以下程序:
#include
StrOCt stu
{ int hum;
char name[10];
int age;)
void fun(struct stu*p)
(print[(”%s\n”,(*p).name);)
main()
(
struct stu students[3]-}{9801.”Zhang”,20},
{9802,”Wang”,19},{9803,”Zhao”,18}}
fun(students+2):
}
输出的结果是( )。
查看答案
B. Zhao
39单选题39 / 43
设变量a、b、e、d和y都已正确定义并赋值。若有以下if语句:
if(a<B)
if(c==d) y=0;
else y=1:
该语句所表示的含义是(  )。
查看答案
C. y=0,a
40单选题40 / 43
有下列函数定义:
fun(float h)
{ printf(”%f,%f\n”,h,h*h);)
该函数的类型是(  )。
查看答案
A. int类型
41主观题41 / 43
请补充函数proc(),该函数的功能是计算下面公式SN的值:
  
例如,当N=20时,SN=29.031674。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
#include
double proc(int n)
{
double s=1.0,s1=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=%Lf”.sum);
}
查看答案
【l】k=2【2】s+=(2*k-1)/sl【3】s
42主观题42 / 43
下列给定的程序中,函数proc()的功能是:用选择法对数组中的m个元素按从小到大的顺序进行排序。
例如,排序前的数据为:11 32 -5 2 14则排序后的数据为:-5 2 11 14 32
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#define M 20
void proc(int a[],int n)
{
int i,j,t,P;
//****found****
for(j=0;j<N-1;J++);
{
P=j;
for(i=j;i<N;I++)
if(a[i]<A[P])
p=i;
t=a[p]];
a[p]=a[j];
//****found****
a[p]=t:
}
}
void main()
{
int arr[M]={11,32,-5,2,14).i,m=5;
printf(”排序前的数据:”);
for(i=0;i<M;I++)
printf(”%d”,arr[i]):
printf(”\n”);
proc(arr,m):
printf(”排序后的顺序:”);
for(i=0;i<M;I++)
printf(”%d”,arr[i]);
printf(”\n”);
}
}
查看答案
(1)错误:For(j=0;j<n-1;j++);正确:For(j=0;j<n-1;j++)(2)错误:A[p]=t;正确:A[j]=t;
43主观题43 / 43
请编写函数proc(),其功能是:将sir所指字符串中下标为偶数的字符删除.串中剩余字符形成的新串放在t所指数组中。
例如,当sir所指字符串中的内容为abcdefg。则在t所指数组中的内容应是bdf。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。
试题程序:
#include
#include
#include
#include.%strin9.h>
void proc(char*str,char t[])
{
)
void main()
{
,、hat str[100].t[100];
system(”CLS”):
printf(”\nPlease enter string str:”);
scanf(”%S”.str):
proc(sir,t);
printl'(”\nThe result is:%s\n”,t);
)
查看答案
voiDproC(ChAr*str,ChArt[])(
inti,i=0,k—strlen(str);//k是放字符串的长度的变量
for(i一1;i<k;i—i+2)//i=i+2,表示为奇数
t[j++]=str[i];//把下标为奇数的数放到t数组中
t[j]=’\0’;//N为t是字符串,因此必须用'\o'作为结束标志
}
← 上一卷下一卷 →