东北大学秦皇岛c语言考试题12.docx
《东北大学秦皇岛c语言考试题12.docx》由会员分享,可在线阅读,更多相关《东北大学秦皇岛c语言考试题12.docx(31页珍藏版)》请在冰点文库上搜索。
![东北大学秦皇岛c语言考试题12.docx](https://file1.bingdoc.com/fileroot1/2023-5/16/de9a86c9-287f-4f35-9a88-c257583dfe03/de9a86c9-287f-4f35-9a88-c257583dfe031.gif)
东北大学秦皇岛c语言考试题12
一、选择题答案
1.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是
A)-3
B)9
C)-12
D)6
你所选择的答案是:
*,正确答案是:
C×
2.以下程序的输出结果是
main()
{charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;
for(k=1;k<3;k++)printf("%s\n",w[k]);
}
A)ABCD
FGH
IJKL
KL
B)ABCD
EFG
IJ
M
C)EFG
JK
O
D)EFGH
IJKL
你所选择的答案是:
*,正确答案是:
D×
3.若定义了以下函数:
voidf(……)
{……
*p=(double*)malloc(10*sizeof(double));
……
}
p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是
A)double*p
B)float**p
C)double**p
D)float*p
你所选择的答案是:
*,正确答案是:
C×
4.以下程序的输出结果是
main()
{inta=3;
printf("%d\n",(a+a-=a*a));
}
A)-6
B)12
C)0
D)-12
你所选择的答案是:
*,正确答案是:
D×
5.设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×
6.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是
A)地址传递
B)单向值传递
C)由实参传给形参,再由形参传回实参
D)传递方式由用户指定
你所选择的答案是:
*,正确答案是:
B×
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.以下选项中,不能正确赋值的是
A)chars1[10];s1="Ctest";
B)chars2[]={'C','t','e','s','t'};
C)chars3[20]="Ctest";
D)char*s4="Ctest\n"
你所选择的答案是:
*,正确答案是:
A×
10.以下程序中,while循环的循环次数是
main()
{inti=0;
while(i<10)
{if(i<1)continue;
if(i==5)break;
i++;
}
......
}
A)1
B)10
C)6
D)死循环,不能确定次数
你所选择的答案是:
*,正确答案是:
D×
11.以下程序的输出结果是
main()
{
inta=0,i;
for(i=1;i<5;i++)
{
switch(i)
{
case0:
case3:
a+=2;
case1:
case2:
a+=3;
default:
a+=5;
}
}
printf("%d\n",a);
}
A)31
B)13
C)10
D)20
你所选择的答案是:
*,正确答案是:
A×
12.以下程序的输出结果是
#include
main()
{
inti=0,a=0;
while(i<20)
{
for(;;)
{
if((i%10)==0)break;
elsei--;
}
i+=11;a+=i;
}
printf("%d\n",a);
}
A)21
B)32
C)33
D)11
你所选择的答案是:
*,正确答案是:
B×
13.以下程序的输出结果是
intf()
{staticinti=0;
ints=1;
s+=i;i++;
returns;
}
main()
{inti,a=0;
for(i=0;i<5;i++)a+=f();
printf("%d\n",a);
}
A)20
B)24
C)25
D)15
你所选择的答案是:
*,正确答案是:
D×
14.以下程序的输出结果是
main()
{charx=040;
printf("%d\n",x<<1);
}
A)100
B)80
C)64
D)32
你所选择的答案是:
*,正确答案是:
C×
15.以下程序的输出结果是
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×
16.以下选项中合法的用户标识符是
A)longB)_2TestC)3DmaxD)A.dat
你所选择的答案是:
*,正确答案是:
B×
17.已知i、j、k为int型变量,若从键盘输入:
1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是
A)scanf("%2d%2d%2d",&i,&j,&k);
B)scanf("%d%d%d",&i,&j,&k);
C)scanf("%d,%d,%d",&i,&j,&k);
D)scanf("i=%d,j=%d,k=%d",&i,&j,&k);
你所选择的答案是:
*,正确答案是:
C×
18.若有以下程序:
#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×
19.以下选项中,与k=n++完全等价的表达式是
A)k=n,n=n+1
B)n=n+1,k=n
C)k=++n
D)k+=n+1
你所选择的答案是:
*,正确答案是:
A×
20.有以下程序
structSTU
{charnum[10];floatscore[3];};
main()
{structstus[3]={{"20021",90,95,85},
{"20022",95,80,75},
{"20023",100,95,90}},*p=s;
inti;floatsum=0;
for(i=0;i<3,i++)
sum=sum+p->score[i];
printf("%6.2f\n",sum);
}
程序运行后的输出结果是
A)260.00
B)270.00
C)280.00
D)285.00
你所选择的答案是:
*,正确答案是:
B×
21.以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。
#include
voidf(charp[][10],intn)
{chart[20];inti,j;
for(i=0;ifor(j=i+1;jif(strcmp(p[i],p[j])<0)
{strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}
}
main()
{charp[][10]={"abc","aabdfg","abbd","dcdbe","cd"};inti;
f(p,5);printf("%d\n",strlen(p[0]));
}
程序运行后的输出结果是
A)6
B)4
C)5
D)3
你所选择的答案是:
*,正确答案是:
C×
22.有以下程序
main()
{inta=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
elseif((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2)
}
执行后输出结果是( )。
A)2
B)3
C)4
D)编译时有错,无结果
你所选择的答案是:
*,正确答案是:
B×
23.以下叙述中正确的是( )。
A)C程序中注释部分可以出现在程序中任意合适的地方
B)花括号"{"和"}"只能作为函数体的定界符
C)构成C程序的基本单位是函数,所有函数名都可以由用户命名
D)分号是C语句之间的分隔符,不是语句的一部分
你所选择的答案是:
*,正确答案是:
A×
24.已定义ch为字符型变量,以下赋值语句中错误的是( )。
A)ch='\';
B)ch=62+3;
C)ch=NULL;
D)ch='\xaa';
你所选择的答案是:
*,正确答案是:
A×
25.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )。
A)函数调用可以作为独立的语句存在
B)函数调用可以作为一个函数的实参
C)函数调用可以出现在表达式中
D)函数调用可以作为一个函数的形参
你所选择的答案是:
*,正确答案是:
D×
26.有以下程序
#include
main()
{printf("%d\n",NULL);}
程序运行后的输出结果是( )。
A)0
B)1
C)-1
D)NULL没定义,出错
你所选择的答案是:
*,正确答案是:
A×
27.以下不能正确定义二维数组的选项是( )。
A)inta[2][2]={{1},{2}};
B)inta[][2]={1,2,3,4};
C)inta[2][2]={{1},2,3};
D)inta[2][]={{1,2},{3,4}};
你所选择的答案是:
*,正确答案是:
D×
28.有以下程序段
main()
{inta=5,*b,**c;
b=&a;c=&b;
……
}
程序在执行了c=&b;b=&a;语句后,表达式:
**c的值是( )。
A)变量a的地址
B)变量b中的值
C)变量a中的值
D)变量b的地址
你所选择的答案是:
*,正确答案是:
C×
29.有以下程序
main()
{
inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i+1;
printf("%d\n",a[1][2]);
}
程序运行后的输出结果是( )。
A)3
B)6
C)9
D)2
你所选择的答案是:
*,正确答案是:
B×
30.设有以下定义
#defined2
inta=0;
doubleb=1.25;
charc=’A’;
则下面语句中错误的是( )。
A)a++; B)b++ C)c++; D)d++;
你所选择的答案是:
*,正确答案是:
D×
31.有以下程序
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×
32.有以下程序
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×
33.有以下程序段
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×
34.有以下程序
intf(intb[][4])
{inti,j,s=0;
for(j=0;j<4;j++)
{i=j;
if(i>2)i=3-j;
s+=b[i][j];
}
returns;
}
main()
{inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
printf(“%d\n”,f(A));
}
执行后的输出结果是( )。
A)12 B)11 C)18 D)16
你所选择的答案是:
*,正确答案是:
D×
35.有以下程序
#include
main(intargc,char*argv[])
{
inti;
printf("%d\n",argc);
}
经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行
exa1a2a3a4
执行后输出结果是( )。
A)3 B)4 C)5 D)6
你所选择的答案是:
*,正确答案是:
C×
36.有以下程序
main()
{intm=0256,n=256;
printf("%o%o\n",mn,n);
}
程序运行后的输出结果是( )。
A)02560400
B)0256256
C)256400
D)400400
你所选择的答案是:
*,正确答案是:
C×
37.若变量已正确定义,要求程序段完成求5!
的计算,不能完成此操作的程序段是( )。
A)for(i=1,p=1;i<=5;i++)p*=i;
B)for(i=1;i<=5;i++){p=1;p*=i;}
C)i=1;p=1;while(i<=5){p*=i;i++;}
D)i=1;p=1;do{p*=i;i++;}while(i<=5);
你所选择的答案是:
*,正确答案是:
B×
38.有以下程序
main()
{
chars[]="ABCD",*p;
for(p=s+1;p
}
程序运行后的输出结果是( )。
A)ABCD
BCD
CD
D
B)A
B
C
D
C)B
C
D
D)BCD
CD
D
你所选择的答案是:
*,正确答案是:
D×
39.有如下程序
#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×
40.数字字符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×
41.以下能正确定义一维数组的选项是( )。
A)inta[5]={0,1,2,3,4,5};
B)chara[]={0,1,2,3,4,5};
C)chara={'A','B','C'};
D)inta[5]="0123";
你所选择的答案是:
*,正确答案是:
B×
42.有以下程序
intf1(intx,inty){return x>y?
x:
y;}
intf2(intx,inty){returnx>y?
y:
x;}
main()
{inta=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",e,f,g);
}
程序运行后的输出结果是( )。
A)4,3,7
B)3,4,7
C)5,2,7
D)2,5,7
你所选择的答案是:
*,正确答案是:
A×
43.有以下程序
#include"stdio.h"
voidWriteStr(char*fn,char*str)
{
FILE*fp;
fp=fopen(fn,"W");
fputs(str,fp);
fclose(fp);
}
main()
{
WriteStr("t1.dat","start");
WriteStr("t1.dat","end");
}
程序运行后,文件t1.dat中的内容是( )。
A)start
B)end
C)startend
D)endrt
你所选择的答案是:
*,正确答案是:
B×
44.设有定义:
intk=1,m=2;floatf=7;,则以下选项中错误的表达式是( )。
A)k=k>=k B)-k++ C)k%int(f) D)k>=f>=m
你所选择的答案是:
*,正确答案是:
C×
45.有以下程序段
intk=0,a=1,b=2,c=3;
k=ab:
k;
执行该程序段后,k的值是( )。
A)3 B)2 C)1 D)0
你所选择的答案是:
*,正确答案是:
B×
46.设变量已正确定义,则以下程序不能正确计算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×
47.设函数fun的定义形式为
voidfun(charch,floatx){…}
则以下对函数fun的调用语句中,正确的是( )。
A)fun("abc",3.0); B)t=fun('D',16.5);
C)fun('65',2.8); D)fun(32,32);
你所选择的答案是:
*,正确答案是:
D×
48.有以下程序
main()
{
charp[]={'a','b','c'},q[]="abc";
printf("%d%d\n",sizeof(p),sizeof(q));
}
程序运行后的输出结果是( )。
A)44 B)33 C)34 D)43
你所选择的答案是:
*,正确答案是:
C×
49.有以下程序
#include
main()
{charp[]={'a','b','c'},q[10]={'a','b','c'};
printf("%d%d\n",strlen(p),strlen(q));
}
以下叙述中正确的是( )。
A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B)由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3
C)由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3
D)由于p和q数组中都没有字符串结束符,故长度都不能确定
你所选择的答案是:
*,正确答案是:
B×
50.有以下程序,其中函数f的功能是将多个字符串按字典顺序排序
#include
voidf(char*p[],intn)
{char*t;inti,j;
for(i=0;i for(j=i+1;j if(strcmp(p[i],p[j])>0){t=p[i];p[i]=p[j];p[j]=t;}
}
main()
{char*p[5]={"abc","aabdfg","abbd","dcdbe","cd"};
f(p,5);
printf("%d\n",strlen(p[1]));
}
程序运行后的输出结果是( )。
A)2 B)3 C)6 D)4
你所选择的答案是:
*,正确答案是:
C×
51.有以下程序
main()
{
inta=0,b=0,c=0,d=0;
if(a=1)b=1;c=2;
elsed=3;
printf("%d,%d,%d,%d\n",a,b,c,d);
}
程序输出
A)0,1,2,0
B)0,0,0,3
C)1,1,2,0
D)编译有错
你所选择的答案是:
*,正确答案是:
D×
52.有以下程序
voidfun1(char*p)
{
char*q;
q=p;
while(*q!
='\0')
{(