二级C语言上机题库05Word文档格式.docx
《二级C语言上机题库05Word文档格式.docx》由会员分享,可在线阅读,更多相关《二级C语言上机题库05Word文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
;
%d\n"
(x<
1)&
&
(z<
'
z'
));
B)1
C)2
D)3
7.设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>
b)&
(n=c>
d)运算后,n的值位为
8.阅读以下程序:
{intx;
scanf("
&
if(x--<
5)printf("
elseprintf("
x++);
程序运行后,如果从键盘上输人5,则输出结果是
A)3
B)4
C)5
9.以下程序的输出结果是
{
intnum=0;
while(num<
=2)
{num++;
num);
A)1
2
3
4
2
C)1
D)l
10.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是
A)地址传递
B)单向值传递
C)由实参传给形参,再由形参传回实参
D)传递方式由用户指定
11.以下程序的输出结果是
amovep(intp,int(a)[3],intn)
{inti,j;
for(i=0;
i<
i++)
for(j=0;
j<
n;
j++){*p=a[i][j];
p++;
{int*p,a[3][3]={{1,3,5},{2,4,6}};
p=(int*)malloc(100);
amovep(p,a,3);
printf("
%d%d\n"
p[2],p[5]);
free(p);
A)56
B)25
C)34
D)程序错误
12.以下程序的输出结果是
#defineM(x,y,z)x*y+z
{inta=1,b=2,c=3;
M(a+b,b+c,c+a));
A)19
B)17
C)15
D)12
D×
13.若有说明语句:
inta,b,c,*d=&
c;
,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是
A)scanf("
%d%d%d"
a,&
b,d);
B)scanf("
b,&
d);
C)scanf("
a,b,d);
D)scanf("
a,b,*d);
14.以下程序的输出结果是
inta=5,b=4,c=6,d;
d=a>
b?
(a>
c?
a:
c):
(b));
A)5
C)6
D)不确定
15.以下程序段的输出结果是
chars[]="
\\141\141abc\t"
printf("
strlen(s));
A)9
B)12
C)13
D)14
16.不合法的main函数命令行参数表示形式是
A)main(inta,char*c[])
B)main(intarc,char**arv)
C)main(intargc,char*argv)
D)main(intargv,char*argc[])
17.以下程序的输出的结果是
intx=3;
voidncre();
inti;
for(i=1;
x;
i++)ncre();
voidncre()
staticintx=1;
x*=x+1;
x);
A)33
B)22
C)26
D)25
18.若以下定义:
structlink
{intdata;
strucklink*next;
}a,b,c,*p,*q;
且变量a和b之间已有如下图所示的链表结构:
ab
datanextdatanext
┌──┬──┐┌──┬──┐
│5│┼──→│9│\0│
└──┴──┘└──┴──┘
↑p
c
datanext
┌──┬──┐
│7││
└──┴──┘
↑q
指针p指向变量a,q指向变量c。
则能够把c插入到a和b之间并形成新的链表的语句组是:
A)a.next=c;
c.next=b;
B)p.next=q;
q.next=p.next;
C)p->
next=&
c;
q->
next=p->
next;
D)(*p).next=q;
(*q).next=&
b;
19.以下选项中合法的实型常数是
A)5E2.0B)E-3C).2E0D)1.3E
20.与数学式子对应的C语言表达式是
A)3*x^n(2*x-1)
B)3*x**n(2*x-1)
C)3*pow(x,n)*(1/(2*x-1))
D)3*pow(n,x)/(2*x-1)
21.若有以下程序:
#include"
stdio.h"
intk=2,i=2,m;
m=(k+=i*=k);
%d,%d\n"
m,i);
执行后的输出结果是
A)8,6
B)8,3
C)6,4
D)7,4
22.有以下程序
floatfun(intx,inty)
{return(x+y);
{inta=2,b=5,c=8;
%3.0f\n"
fun(int)fun(a+c,b),a-c));
程序运行后的输出结果是
A)编译出错
C)21
D)9.0
23.有以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;
{inti,j=0;
for(i=i;
3;
i++)j+=f(i);
j);
A)4
B)3
D)1
24.有以下程序
inta=3;
{ints=0;
{inta=5;
s+=a++;
s);
A)8
B)10
C)7
D)11
25.有以下程序
{inti=10,j=1;
printf("
i--,++j);
执行后输出结果是( )。
A)9,2
B)10,2
C)9,1
D)10,1
26.有如下程序
voidf(intx,inty)
{intt;
if(x }
main()
{inta=4,b=3,c=5;
f(a,b);
f(a,c);
f(b,c);
printf("
%d,%d,%d\n"
a,b,c);
}
A)3,4,5
B)5,3,4
C)5,4,3
D)4,3,5
27.有以下程序
{intm[][3]={1,4,7,2,5,8,3,6,9};
inti,j,k=2;
for(i=0;
{printf("
m[k][i]);
A)456
B)258
C)369
D)789
28.以下叙述中正确的是( )。
A)全局变量的作用域一定比局部变量的作用域范围大
B)静态(static)类别变量的生存期贯穿于整个程序的运行期间
C)函数的形参都属于全局变量
D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值
29.有以下程序
inta=1,b=2,m=0,n=0,k;
k=(n=b>
a)||(m=a<
b);
k,m);
A)0,0B)0,1C)1,0D)1,1
30.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是( )。
A)x=x*100+0.5/100.0;
B)x=(x*100+0.5)/100.0;
C)x=(int)(x*100+0.5)/100.0;
D)x=(x/100+0.5)*100.0;
31.有以下程序
{ints=0,a=1,n;
scanf("
n);
do
{s+=1;
a=a-2;
while(a!
=n);
printf("
若要使程序的输出值为2,则应该从键盘给n输入的值是( )。
A)-1
B)-3
C)-5
D)0
32.要求以下程序的功能是计算:
s=1+1/2+1/3+……+1/10
main()
{intn;
floats;
s=1.0;
for(n=10;
n>
1;
n--)
s=s+1/n;
%6.4f\n"
程序运行后输出结果错误,导致错误结果的程序行是( )。
A)s=1.0;
B)for(n=10;
C)s=s+1/n;
D)printf("
33.有以下函数定义:
voidfun(intn,doublex){……}
若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是( )。
A)fun(inty,doublem);
B)k=fun(10,12.5);
C)fun(x,n);
D)voidfun(n,x);
34.若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是( )。
A)int*i=NULL;
B)float*f=NULL;
i);
*f=10.5;
C)chart='
m'
*c=&
t;
D)long*L;
*c=&
L='
\0'
35.以下能正确定义一维数组的选项是( )。
A)intnum[];
B)#defineN100
intnum[N];
C)intnum[0..100];
D)intN=100;
36.有以下程序
charstr[][20]={"
Hello"
"
Beijing"
};
char*p=str[0];
strlen(p+20));
程序运行后的输出结果是( )。
A)0
B)5
C)7
D)20
37.有以下程序
main()
{inti,n=0;
for(i=2;
5;
{do
{if(i%3)continue;
n++;
}while(!
i);
}
printf(“n=%d\n”,n);
程序执行后的输出结果是( )。
A)n=5 B)n=2 C)n=3 D)n=4
38.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是
A)chars[10]="
abcdefg"
B)chart[]="
*s=t;
C)chars[10];
s="
D)chars[10];
strcpy(s,"
);
39.有以下程序(提示:
程序中fseek(fp,-2L*sizeof(int),SEEK_END);
语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节)
#include
{FILE*fp;
inti,a[4]={1,2,3,4},b;
fp=fopen("
data.dat"
wb"
for(i=0;
4;
i++)fwrite(&
a[i],sizeof(int),1,fp);
fclose(fp);
fp=fopen("
rb"
);
fseek(fp,-2L*sizeof(int).SEEK_END);
fread(&
b,sizeof(int),1,fp);
/*从文件中读取sizeof(int)字节的数据到变量b中*/
fclose(fp);
B);
执行后输出结果是
A)2B)1C)4D)3
40.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<
10的是( )。
A)abs(x-y)<
10
B)x-y>
-10&
x-y<
10
C)!
(x-y)<
-10||!
(y-x)>
D)(x-y)*(x-y)<
100
41.有以下程序
{inti=0,x=0;
for(;
)
{
if(i==3||i==5)continue;
if(i==6)break;
i++;
s+=i;
};
}
程序运行后的输出结果是( )。
A)10
B)13
C)21
D)程序进入死循环
42.以下能正确定义二维数组的是( )。
A)inta[][3];
B)inta[][3]=2{2*3};
C)inta[][3]={};
D)inta[2][3]={{1},{2},{3,4}};
43.有以下程序
intf(inta)
{returna%2;
{ints[8]={1,3,4,2,3,6},i,d=0;
for(i=0;
f(s[i]);
{d=d+s[i];
i,s[i]);
d);
A)9
B)4
C)19
D)21
44.有以下定义和语句
inta[3][2]={1,2,3,4,5,6,},*p[3];
p[0]=a[1];
则*p[0]+1)所代表的数组元素是( )。
A)a[0][1]
B)a[1][0]
C)a[1][1]
D)a[1][2]
45.有以下程序
{intm,n,p;
m=%dn=%dp=%d"
m,&
n,&
p);
%d%d%d"
m,n,p);
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是( )。
A)m=123n=456p=789
B)m=123n=456p=789
C)m=123,n=456,p=789
D)123456789
46.有以下程序
intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<
7)if(p[i]%2)j+=p[i];
%d"
程序运行后的输出结果是( )。
A)42
B)45
C)56
D)60
47.有以下程序
voidf(int*x,int*y)
{intt;
t=*x;
*x=*y;
*y=t;
{inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;
q=&
a[7];
while(p<
q)
f(p,q);
q--;
for(i=0;
8;
%d,"
a[i]);
A)8,2,3,4,5,6,7,1,
B)5,6,7,8,1,2,3,4,
C)1,2,3,4,5,6,7,8,
D)8,7,6,5,4,3,2,1,
48.有以下程序
intc=35;
c&
c);
A)0
B)70
C)35
D)1
49.以下叙述中错误的是( )。
A)C语句必须以分号结束
B)复合语句在语法上被看作一条语句
C)空语句出现在任何位置都不会影响程序运行
D)赋值表达式末尾加分号就构成赋值语句
50.以下关于函数的叙述中正确的是( )。
A)每个函数都可以被其它函数调用(包括main函数)
B)每个函数都可以被单独编译
C)每个函数都可以单独运行
D)在一个函数内部可以定义另一个函数
51.若有语句:
char*line[5];
,以下叙述中正确的是( )。
A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量
B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
C)定义line是一个指针数组,语句中的*号称为间址运算符
D)定义line是一个指向字符型函数的指针
52.设变量已正确定义,则以下程序不能正确计算f=n!
的程序段是( )。
A)f=1;
for(i=1;
=n;
f*=i;
B)f=0;
i--)
f*=i;
C)f=1;
for(i=n;
i>
f=f*i;
D)f=1;
for(i=n;
=2;
i--)
f=f*i
53.以下数组定义中错误的是
A)intx[][3]={0};
B)intx[2][3]={{1,2},{3,4},{5,6}};
C)ntx[][3]={{1,2,3},{4,5,6}};
D)intx[2][3]={1,2,3,4,5,6};
54.已定义以下函数
intfun(int*p)
{return*p;
}
fun函数返回值是