全国计算机等级考试二级C语言笔试模拟试题(2)
发布时间:2014-09-04 13:40
22.有下列程序:
main()
{ int k=5;
while(--k) printf( "%d",k=1);
printf( "/n");
)
执行后的输出结果是( )。
A.1
B.2
C.4
D.死循环
23.若有定义:“int a[2][3];”,则对a数组的第i行第J列元素的正确引用为( )。
A.*(*(a+i)+j)
B.(a+i)[j]
C.*(a+i+j)
D.*(a+i)+j
24.下列能正确进行字符串赋值的是( )。
A.char s[5]={ "ABCDE"};
B.char s[5]={’A’,’B’,’C’,’D’,’E’};、
C.char*S;S= "ABCDE";
D.char*s;printf( "%《",s);
25.现有以下结构体说明和变量定义,如图所示,指针P、q、r分别指定一个链表中连续的3个结点。
struct node
{har data;
struct node*next;)*P,*q,*r;
现要将q和r所指结点交换前后位置,同时要保持链表的结构,下列不能完成此操作的语句是( )。
A.q-:>next=r->next;p--:>next=r;rm:>next=q;
B.q-:>next=r;q->next=r->next;r->next=q;
C.q-:>next=r->next;r->next=q;p->next=r;
D.q-:>next=q;p->next=r;q->next=r->next;
26.有下列程序:
main()
{int i,j,x=0;
for(i=0,i <2;i++)
{x++;
for(j=0;j <=3;j++)
{if(j%2)continue;
x++:
)
x++:
}
printf( "x=%d\n"x);
}
程序执行后的输出结果是( )。
A.x=4
B.x=8
C.x=6
D.x=12
27.有下列程序:
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中的值是( )。、
A.5.21 B.5 C.5.0 D.0.0
28.有下列程序:
main()
{int i,s=0,t[]={1,2,3,4,5,6,7,8,9};
for(i=0;i <9;i+=2)s+=*(t+i);
printf( "%d\n",s);
}
程序执行后的输出结果是( )。
A.45
B.20
C.25
D.36
29.有下列程序:
int fun(int n)
{if(n= =1))return l;
else
return(n+fun(n-1)):
}
main()
{ int x;
seanf( "%d",&x);x=fun(x);printf("%d\n",x);
}
执行程序时,给变量x输入l0,程序的输出结果是( )。
A.55
B.54
C.65
D.45
30.有下列程序:
int fun(int x[],int n)
{ static int sum=0,i;
for(i=0;i
return sum;
}
main()
{int a[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0;
s=fun(a,5)+fun(b,4);printf( "%d\n",s);
程序执行后的输出结果是( )。、
A.45
B.50
C.60
D.55
四、 31.有下列程序:
main()
f char*P[]={ "3697","2584");
int i,j;long num=0;
for(i=0;i <2;i++)
{j=0;
while(p[i][j]!=’\0’)
{if((p[i][j]-t\0’)%2)num=10*num+p[j][j]-’0’;
j+=2;
)
)
printf( "%d\n",num);
)
程序执行后的输出结果是( )。
A.35
B.37
C.39
D.3975
32.以下程序的输出结果是( )。
main()
{ char st[20]= "hell0\O\t\\\”;
printf( "%d%d\n",strlen(st),sizeof(st));
}
A.9 9
B.5 20
C.13 20
D.20 20
33.若有下的定义: "int t[3][2];",能正确表示t数组元素地址的表达式是( )。
A.&t[3][2]
B.t[3]
C.t[l]
D.t[2][2]
34.函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是( )。
A.文件开始
B.文件末尾
C.文件当前位置
D.以上都不对
35.下述程序的输出结果是( )。
#include
main()
{int i;
for(i=1;i <=10;i++)
{if(i*i >=20)&&(i*i<=lOO))
break;
}
printf( "%d\n",i*i);
)
A.49
B.36
C.25
D.64
36.若有定义“int b[8],*p=b;”,则p+6表示( )。
A.数组元素b[6]的值
B.数组元素b[6]的地址
C.数组元素b[7]的地址
D.数组元素b[0]的值加上6
37.设变量已正确定义,则以下能正确计算f=n!的程序是( )。
A.f=0; for(i=1;i <=n;i++)f*=i;
B.f=1;for(i=1;i
C.f=1;for(i=n;i >1;i++)f*=i;
D.f=1;for(i=n;i >=2;i--)f*=i;
38.下述程序执行的输出结果是( )。
#include
main()
{char a[2][4];,
strcpy(a。 "are");strcpy(a[1],"you");
a[o][3]=’ &’;
printf( "%s\n",a);
)
A.are &you
B.you
C.are
D.&
39.设x=011050,则x=x&01252的值是( )。
A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
40.在“文件包含,,预处理语句的使用形式中,当#include后面的文件名用(双引号)括时,寻找被包含文件的方式是( )。
A.直接按系统设定的标准方式搜索目录
B.先在源程序所在的目录搜索,如没找到,再按系统设定的标准方式搜索
C.仅仅搜索源程序所在目录
D.仅仅搜索当前目录
五、 二、基本操作题(共18分)
请补充函数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++)
{
sl=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);
)
本文编号:8659
本文链接:https://www.wllwen.com/wenshubaike/lwfw/8659_2.html