东北大学秦皇岛c语言考试题8Word文档下载推荐.docx
《东北大学秦皇岛c语言考试题8Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《东北大学秦皇岛c语言考试题8Word文档下载推荐.docx(31页珍藏版)》请在冰点文库上搜索。
B)'
\17'
C)"
n"
D)'
\xaa'
5.若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是
A)fopen("
A:
\user\abc.txt"
"
r"
)
B)fopen("
\\user\\abc.txt"
r+"
C)fopen("
rb"
w"
B×
6.以下不能正确进行字符串赋初值的语句是
A)charstr[5]="
good!
"
;
B)charstr[]="
C)char*str="
D)charstr[5]={'
g'
'
o'
d'
};
A×
7.若有以下程序:
#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
8.有一函数,
1(x>
0)
y=0(x=0)
-1(x<
以下程序段中不能根据x值正确计算出y值的是
A)if(x>
0)y=1;
elseif(x==0)y=0;
elsey=-1;
B)y=0;
if(x>
elseif(x<
0)y=-1;
C)y=0;
=0);
D)if(x>
=0)
if(x>
elsey=0;
elsey=-1;
9.有以下程序段
intn=0,p;
do{scanf("
&
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
10.若有说明:
intn=2,*p=&
n,*q=p;
,则以下非法的赋值语句是
A)p=q;
B)*p=*q;
C)n=*q;
D)p=n;
11.有以下程序
floatfun(intx,inty)
{return(x+y);
{inta=2,b=5,c=8;
%3.0f\n"
fun(int)fun(a+c,b),a-c));
程序运行后的输出结果是
A)编译出错
B)9
C)21
D)9.0
12.有以下程序
voidfun(char*c,intd)
{*c=*c+1;
d=d+1;
%c,%c,"
*c,d);
{chara='
A'
b='
a'
fun(&
b,a);
%c,%c\n"
a,b);
A)B,a,B,a
B)a,B,a,B
C)A,b,A,b
D)b,B,A,b
13.在一个C程序中( )。
A)main函数必须出现在所有函数之前
B)main函数可以在任何地方出现
C)main函数必须出现在所有函数之后
D)main函数必须出现在固定位置
14.下列叙述中正确的是( )。
A)C语言中既有逻辑类型也有集合类型
B)C语言中没有逻辑类型但有集合类型
C)C语言中有逻辑类型但没有集合类型
D)C语言中既没有逻辑类型也没有集合类型
15.有以下程序
{inta=5,b=4,c=3,d=2;
if(a>
b>
c)
printf("
d);
elseif((c-1>
=d)==1)
d+1);
else
printf("
d+2)
执行后输出结果是( )。
A)2
B)3
C)4
D)编译时有错,无结果
16.阅读以下函数
fun(char*s1,char*s2)
{inti=0;
while(s1[i]==s2[i]&
s2[i]!
='
\0'
)i++;
return(s1[i]==&
s2{i}!
=='
}
此函数的功能是( )。
A)将s2所指字符串赋给s1
B)比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0
C)比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0
D)比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0
17.以下程序企图把从终端输入的字符输出到名为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没有定义
18.有以下程序
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
19.设变量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;
20.有以下程序
{ints=0,a=1,n;
scanf("
n);
do
{s+=1;
a=a-2;
while(a!
=n);
s);
若要使程序的输出值为2,则应该从键盘给n输入的值是( )。
A)-1
B)-3
C)-5
D)0
21.有以下程序
{printf("
NULL);
程序运行后的输出结果是( )。
A)0
B)1
C)-1
D)NULL没定义,出错
22.已定义c为字符型变量,则下列语句中正确的是( )。
A)c='
97'
B)c="
97"
C)c=97;
D)c="
a"
23.已定义以下函数
fun(int*p)
{return*p;
该函数的返回值是( )。
A)不确定的值
B)形参p中存放的值
C)形参p所指存储单元中的值
D)形参p的地址值
24.若有定义:
int*p[3];
,则以下叙述中正确的是( )。
A)定义了一个基类型为int的指针变量p,该变量具有三个指针
B)定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
C)定义了一个名为*p的整型数组,该数组含有三个int类型元素
D)定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
25.以下程序
main()
{intx=3,y=2,z=1;
x/y&
~z);
A)3
B)2
C)1
26.有以下程序
main()
intx=0,y=5,z=3;
while(z-->
0&
++x<
5)y=y-1;
%d,%d,%d\n"
x,y,z);
程序执行后的输出结果是( )。
A)3,2,0 B)3,2,-1 C)4,3,-1 D)5,-2,-5
27.有以下程序
charfun(charx,chary)
{if(xreturny;
main()
{inta=’9’,b=’8’,c=’7’;
printf(“%c\n”,fun(fun(a,B),fun(b,C)));
}
程序的执行结果是( )。
A)函数调用出错 B)8 C)9 D)7
28.有以下程序段
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
29.有以下程序
main()
{unsignedchara,b;
a=4|3;
b=4&
3;
printf("
%d%d\n"
执行后输出结果是
A)70B)07C)11D)430
30.有以下程序
main()
{inti=0,x=0;
for(;
{
if(i==3||i==5)continue;
if(i==6)break;
i++;
s+=i;
};
printf("
程序运行后的输出结果是( )。
A)10
B)13
C)21
D)程序进入死循环
31.以下能正确定义二维数组的是( )。
A)inta[][3];
B)inta[][3]=2{2*3};
C)inta[][3]={};
D)inta[2][3]={{1},{2},{3,4}};
32.有以下程序
intf(inta)
{returna%2;
{ints[8]={1,3,4,2,3,6},i,d=0;
for(i=0;
f(s[i]);
i++)
{d=d+s[i];
i,s[i]);
A)9
B)4
C)19
D)21
33.有以下程序
{inta=7,b=8,*p,*q,*r;
p=&
a;
q=&
b;
r=p;
p=q;
q=r;
%d,%d,%d,%d\n"
*p,"
q,a,b);
A)8,7,8,7
B)7,8,7,8
C)8,7,7,8
D)7,8,8,7
34.有以下程序
#include
{inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;
*q=*(p+5);
*p,*1);
程序运行后的输出结果是( )。
A)运行后报错
B)66
C)611
D)510
35.以下叙述中正确的是( )。
A)局部变量说明为static存储数,其生存期将得到延长
B)全局变量说明为static存储类,其作用域将被扩大
C)任何存储类的变量在未赋初值时,其值都是不确定的
D)形参可以使用的存储类说明符与局部变量完全相同
36.有以下说明和定义语句
structstudent
{intage;
charnum[8];
structstudentstu[3]={{20,"
200401"
},{21,"
200402"
},{10\9,"
200403"
}};
structstudent*p=stu;
以下选项中引用结构体变量成员的表达式错误的是( )。
A)(p++)->
num
B)p->
num
C)(*p).num
D)stu[3].age
37.数字字符0的ASCII值为48,若有以下程序
1'
2'
%c,"
b++);
%d"
b-a);
程序运行后的输出结果是( )。
A)3,2
B)50,2
C)2,2
D)2,50
38.有以下程序
{intm=12,n=34;
%d%d"
m++,++n);
%d%d"
n++,++m);
A)12353514
B)12353513
C)12343514
D)12343513
39.若整型变量a、b、c、d中的值依次为:
1、4、3、2。
则条件表达式a<
b?
a:
c<
d?
c:
d的值( )。
A)1
C)3
D)4
40.有以下程序
intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<
7)if(p[i]%2)j+=p[i];
j);
A)42
B)45
C)56
D)60
41.有以下程序
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;
a[7];
while(p<
q)
f(p,q);
p++;
q--;
for(i=0;
i<
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,
42.以下叙述中错误的是( )。
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变
C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
D)可以通过赋初值的方式确定数组元素的个数
43.有以下程序
#defineP3
#defineF(intx){return(P*x*x);
F(3+5));
A)192
B)29
C)25
D)编译出错
44.以下关于函数的叙述中正确的是( )。
A)每个函数都可以被其它函数调用(包括main函数)
B)每个函数都可以被单独编译
C)每个函数都可以单独运行
D)在一个函数内部可以定义另一个函数
45.设有定义:
intk=1,m=2;
floatf=7;
,则以下选项中错误的表达式是( )。
A)k=k>
=k B)-k++ C)k%int(f) D)k>
=f>
=m
46.有以下程序
{charc1='
c2='
c1=getchar();
c2=getchar();
putchar(c1);
putchar(c2);
当运行时输入:
a<
后,以下叙述正确的是( )。
A)变量c1被赋予字符a,c2被赋予回车符
B)程序将等待用户输入第2个字符
C)变量c1被赋予字符a,c2中仍是原有字符2
D)变量c1被赋予字符a,c2中将无确定值
47.有以下程序
intk=5,n=0;
while(k>
{
switch(k)
default:
break;
case1:
n+=k;
case2:
case3:
k--;
n);
A)0 B)4 C)6 D)7
48.有以下程序
{charp[]={'
'
b'
c'
},q[10]={'
strlen(p),strlen(q));
以下叙述中正确的是( )。
A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B)由于p数组中没有字符串结束符,长度不能确定;
但q数组中字符串长度为3
C)由于q数组中没有字符串结束符,长度不能确定;
但p数组中字符串长度为3
D)由于p和q数组中都没有字符串结束符,故长度都不能确定
49.有以下程序
inta=2;
intf(intn)
{staticinta=3;
intt=0;
if(n%2){staticinta=4;
t+=a++;
else{staticinta=5;
returnt+a++;
{ints=a,i;
for(i=0;
i<
i++)s+=f(i);
s);
A)26 B)28 C)29 D)24
50.有以下程序
#include
structSTU
{intnum;
floatTotalScore;
};
voidf(structSTUp)
{structSTUs[2]={{20044,550},{20045,537}};
p.num=s[1].num;
p.TotalScore=s[1].TotalScore;
{structSTUs[2]={{20041,703},{20042,58