东北大学秦皇岛c语言考试题17.docx
《东北大学秦皇岛c语言考试题17.docx》由会员分享,可在线阅读,更多相关《东北大学秦皇岛c语言考试题17.docx(30页珍藏版)》请在冰豆网上搜索。
东北大学秦皇岛c语言考试题17
一、选择题答案
1.以下所列的各函数首部中,正确的是
A)voidplay(var:
Integer,varb:
Integer)
B)voidplay(inta,b)
C)voidplay(inta,intb)
D)Subplay(aasinteger,basinteger)
你所选择的答案是:
*,正确答案是:
C×
2.以下程序的输出结果是
#defineSQR(X)X*X
main()
{inta=16,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("d\n",a);
}
A)16
B)2
C)9
D)1
你所选择的答案是:
*,正确答案是:
B×
3.在C语言中,合法的长整型常数是
A)OLB)4962710C)324562&D)216D
你所选择的答案是:
*,正确答案是:
A×
4.假定x和y为double型,则表达式x=2,y=x+3/2的值是
A)3.500000
B)3
C)2.000000
D)3.000000
你所选择的答案是:
*,正确答案是:
D×
5.若有说明:
inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是
A)i=*p;
B)p*=*&j;
C)i=&j;
D)i=**p;
你所选择的答案是:
*,正确答案是:
B×
6.以下定义语句中,错误的是
A)inta[]={1,2};
B)char*a[3];
C)chars[10]="test";
D)intn=5,a[n];
你所选择的答案是:
*,正确答案是:
D×
7.以下程序的输出结果是
main()
{inti,a[10];
for(i=9;i>=0;i--)a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A)258
B)741
C)852
D)369
你所选择的答案是:
*,正确答案是:
C×
8.以下程序的输出结果是
main()
{charst[20]="hello\0\t\\\";
printf(%d%d\n",strlen(st),sizeof(st));
}
A)99
B)520
C)1320
D)2020
你所选择的答案是:
*,正确答案是:
B×
9.以下程序的输出结果是
#include"stdio.h"
main()
{
inta,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=10)break;
if(b%3==1)
{b+=3;continue;}
}
printf("%d\n",a);
}
A)101
B)6
C)5
D)4
你所选择的答案是:
*,正确答案是:
D×
10.以下程序的输出结果是
unionmyun
{struct
{intx,y,z;}u;
intk;
}a;
main()
{a.u.x=4;a.u.y=5;a.u.z=6;
a.k=0;
printf(%d\n",a.u.x);
}
A)4
B)5
C)6
D)0
你所选择的答案是:
*,正确答案是:
D×
11.在16位C编译系统上,若定义longa;,则能给a赋40000的正确语句是
A)a=20000+20000;
B)a=4000*10;
C)a=30000+10000;
D)a=4000L*10L;
你所选择的答案是:
*,正确答案是:
D×
12.以下程序段的输出结果是
chars[]="\\141\141abc\t";
printf("%d\n",strlen(s));
A)9
B)12
C)13
D)14
你所选择的答案是:
*,正确答案是:
A×
13.以下程序的输出结果是
main()
{intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++)t=t+b[i][b[j][j]];
printf("%d\n",t);
}
A)3
B)4
C)1
D)9
你所选择的答案是:
*,正确答案是:
B×
14.以下叙述中正确的是
A)构成C程序的基本单位是函数
B)可以在一个函数中定义另一个函数
C)main()函数必须放在其它函数之前
D)所有被调用的函数一定要在调用之前进行定义
你所选择的答案是:
*,正确答案是:
A×
15.若有以下程序:
#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×
16.有以下程序段
intn=0,p;
do{scanf("%d",&p);n++;}while(p!
=12345&&n<3);
此处do-while循环的结束条件是
A)P的值不等于12345并且n的值小于3
B)P的值等于12345并且n的值大于等于3
C)P的值不等于12345或者n的值小于3
D)P的值等于12345或者n的值大于等于3
你所选择的答案是:
*,正确答案是:
D×
17.有以下程序
#include
main()
{char*p="abcde\Ofghjik\0";
printf("%d\n",strlen(p));
}
程序运行后的输出结果是
A)12
B)15
C)6
D)5
你所选择的答案是:
*,正确答案是:
D×
18.有以下程序
inta=3;
main()
{ints=0;
{inta=5;s+=a++;}
s+=a++;printf("%d\n",s);
}
程序运行后的输出结果是
A)8
B)10
C)7
D)11
你所选择的答案是:
*,正确答案是:
A×
19.以下叙述中正确的是( )。
A)C语言比其他语言高级
B)C语言可以不用编译就能被计算机识别执行
C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D)C语言出现的最晚,具有其他语言的一切优点
你所选择的答案是:
*,正确答案是:
C×
20.有以下程序段
intm=0,n=0;charc='a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:
10A10<回车>,则输出结果是:
( )。
A)10,A,10
B)10,a,10
C)10,a,0
D)10,A,0
你所选择的答案是:
*,正确答案是:
A×
21.有以下程序
main()
{inti=0,s=0;
do{
if(i%2){i++;continue;}
i++;
s+=i;
}while(i<7);
printf("%d\n",s);
}
执行后输出结果是( )。
A)16
B)12
C)28
D)21
你所选择的答案是:
*,正确答案是:
A×
22.有如下程序
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×
23.有以下程序
main()
{chars[]="\n123\\";
printf("%d,%d\n",strlen(s),sizeof(s));
}
执行后输出结果是( )。
A)赋初值的字符串有错
B)6,7
C)5,6
D)6,6
你所选择的答案是:
*,正确答案是:
C×
24.以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。
#include
main()
{FILE*fout;charch;
fout=fopen('abc.txt','w');
ch=fgetc(stdin);
while(ch!
='#')
{fputc(ch,fout);
ch=fgetc(stdin);
}
fclose(fout);
}
出错的原因是( )。
A)函数fopen调用形式错误
B)输入文件没有关闭
C)函数fgetc调用形式错误
D)文件指针stdin没有定义
你所选择的答案是:
*,正确答案是:
A×
25.设变量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×
26.已定义ch为字符型变量,以下赋值语句中错误的是( )。
A)ch='\';
B)ch=62+3;
C)ch=NULL;
D)ch='\xaa';
你所选择的答案是:
*,正确答案是:
A×
27.若程序中已包含头文件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×
28.有以下程序
#include
main()
{printf("%d\n",NULL);}
程序运行后的输出结果是( )。
A)0
B)1
C)-1
D)NULL没定义,出错
你所选择的答案是:
*,正确答案是:
A×
29.有以下程序
main()
{chark;intI;
for(i=1;i<3;i++)
{scanf(“%c”,&k);
switch(k)
{case‘0’:
printf(“another\n”);
case‘1’:
printf(“number\n”);
}
}
}
程序运行时,从键盘输入:
01<回车>,程序执行后的输出结果是( )。
A)another
number
another
B)another
number
number
C)another
number
D)number
number
你所选择的答案是:
*,正确答案是:
C×
30.有以下程序
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×
31.有以下程序
voidf(intv,intw)
{intt;
t=v;v=w;w=t;
}
main()
{intx=1,y=3,z=2;
if(x>y)f(x,y);
elseif(y>z)f(y,z);
elsef(x,z);
printf("%d,%d,%d\n",x,y,z);
}
执行后输出结果是( )。
A)1,2,3 B)3,1,2 C)1,3,2 D)2,3,1
你所选择的答案是:
*,正确答案是:
C×
32.有以下程序段
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5];
b中的值是( )。
A)5 B)6 C)8 D)9
你所选择的答案是:
*,正确答案是:
D×
33.有以下程序
main()
{intm=0256,n=256;
printf("%o%o\n",mn,n);
}
程序运行后的输出结果是( )。
A)02560400
B)0256256
C)256400
D)400400
你所选择的答案是:
*,正确答案是:
C×
34.有以下程序
main()
{charstr[][10]={"China","Beijing"},*p=str;
printf("%s\n",p+10);
}
程序运行后的输出结果是( )。
A)China
B)Bejing
C)ng
D)ing
你所选择的答案是:
*,正确答案是:
B×
35.37.在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则( )。
A)称为函数的直接递归调用
B)称为函数的间接递归调用
C)称为函数的循环调用
D)C语言中不允许这样的递归调用
你所选择的答案是:
*,正确答案是:
B×
36.有以下程序
main()
{unsignedinta;
intb=-1;
a=b;
printf("%u",a);
}
程序运行后的输出结果是( )。
A)-1
B)65535
C)32767
D)-32768
你所选择的答案是:
*,正确答案是:
B×
37.有以下程序
main()
{intx[]={1,3,5,7,2,4,6,0},i,j,k;
for(i=0;i<3;i++)
for(j=2;j>=i;j--)
if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;}
for(i=0;i<3;i++)
for(j=4;j<7-i;j++)
if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;}
for(i=0;i<3;i++)
for(j=4;j<7-i;j++)
if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1]=k;}
for(i=0;i<8;i++)printf("%d",x);
printf("\n");
}
程序运行后的输出结果是:
( )。
A)75310246
B)01234567
C)76310462
D)13570246
你所选择的答案是:
*,正确答案是:
A×
38.有如下程序
#include
main()
{FILE*fp1;
fp1=fopen("f1.txt","w");
fprintf(fp1,"abc");
fclose(fp1);
}
若文本文件f1.txt中原有内容为:
good,则运行以上程序后文件f1.txt中的内容为( )。
A)goodabc
B)abcd
C)abc
D)abcgood
你所选择的答案是:
*,正确答案是:
C×
39.数字字符0的ASCII值为48,若有以下程序
main()
{chara='1',b='2';
printf("%c,",b++);
printf("%d",b-a);
}
程序运行后的输出结果是( )。
A)3,2
B)50,2
C)2,2
D)2,50
你所选择的答案是:
*,正确答案是:
C×
40.有以下程序
main()
{inti=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d%d%d",i,j,k);
}
程序运行后的输出结果是( )。
A)123
B)234
C)223
D)233
你所选择的答案是:
*,正确答案是:
D×
41.有以下程序
main()
{
intc=35;printf("%d",c&c);
}
程序运行后的输出结果是( )。
A)0
B)70
C)35
D)1
你所选择的答案是:
*,正确答案是:
C×
42.以下语句或语句组中,能正确进行字符串赋值的是( )。
A)char*sp;*sp="right!
";
B)chars[10];s="right!
";
C)chars[10];*s="right!
";
D)char*sp="right!
";
你所选择的答案是:
*,正确答案是:
D×
43.有以下程序
main()
{
intnum[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;i++)
{
for(j=1;j<=i;j++)printf("%c",'');
for(j=j<4;j++)printf("%4d",num[i][j]);
printf("");
}
}
若要按以下形式输出数组右上半三角
1234
678
1112
16
则在程序下划线处应填入的是( )。
A)i-1
B)i
C)i+1
D)4-i
你所选择的答案是:
*,正确答案是:
B×
44.有以下程序段
intk=0,a=1,b=2,c=3;
k=ab:
k;
执行该程序段后,k的值是( )。
A)3 B)2 C)1 D)0
你所选择的答案是:
*,正确答案是:
B×
45.有以下程序段
intn,t=1,s=0;
scanf("%d",&n);
do{s=s+t;t=t-2;}while(t!
=n);
为使此程序段不陷入死循环,从键盘输入的数据应该是( )。
A)任意正奇数B)任意负偶数C)任意正偶数D)任意负奇数
你所选择的答案是:
*,正确答案是:
D×
46.设有定义:
intn1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是( )。
A)*p=*q;B)p=q;C)*p=&n1;D)p=*q;
你所选择的答案是:
*,正确答案是:
A×
47.有以下程序
#definef(x)(x*x)
main()
{
inti1,i2;
i1=f(8)/f(4);i2=f(4+4)/f(2+2);
printf("%d,%d\n",i1,i2);
}
程序运行后的输出结果是( )。
A)64,28B)4,4C)4,3D)64,64
你所选择的答案是:
*,正确答案是:
C×
48.有以下程序
main()
{
intk=5,n=0;
while(k>0)
{
switch(k)
{
default:
break;
case1:
n+=k;
case2:
case3:
n+=k;
}
k--;
}
printf("%d\n",n);
}
程序运行后的输出结果是( )。
A)0 B)4 C)6 D)7
你所选择的答案是:
*,正确答案是:
D×
49.有以下程序
voidsort(inta[],intn)
{inti,j,t;
for(i=0;i for(j=i+1;j if(a[i] }
main()
{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(aa+2,5);
for(i=0;i<10;i++)printf("%d,",aa[i]);
printf("\n");
}
程序运行后的输出结果是( )。
A)1,2,3,4,5,6,7,8,9,10, B)1,2,7,6,3,4,5,8,9,10,
C)1,2,7,6,5,4,3,8,9,10, D)1,2,9,8,7,6,5,4,3,10,
你所选择的答案是:
*,正确答案是:
C×
50.有以下程序
voidsum(inta[])
{
a[0]=a[1]+a[2];
}
main()
{
inta[10]={1,2,3,4,5,6,7,8,9,10};
sum(&a[2]);
printf("%d\n",a[2]);
}
程序运行后的输出结果是( )。
A)6 B)7 C)8 D)9
你所选择的答案是:
*,正确答案是:
D×
51.有以下程序
voidswap1(intc0[],intc1[])
{intt;
t=c0[0];c0[0]=c1[0];c1[0]=t;
}
voidswap2(int*c0,int*c1)
{intt;
t=*c0;*c0=*c1;*c1=t;
}
main()
{inta[2]={3,5},b[2]={3,5};
swap1(a,a+1);swap2(&b[0],&b[1]);
printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);
}
程序运行后的输出结果是( )。
A)3553 B)5335 C)3535 D)5353
你所选择的答案是:
*,正确答案是:
A×
52.有以下程序
flo