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