C语言试题及答案04Word文件下载.docx
《C语言试题及答案04Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言试题及答案04Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
{chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
%d"
*--p);
A)非法
B)a[4]的地址
C)5
D)3
5.当调用函数时,实参是一个数组名,则向函数传送的是
A)数组的长度
B)数组的首地址
C)数组每一个元素的地址
D)数组每个元素中的值
6.在C语言中,合法的长整型常数是
A)OLB)4962710C)324562&
D)216D
A,正确答案是:
A√
7.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是
A)INPUTx、y、z;
B)scanf("
%d%d%d"
x,&
y,&
z);
C)scanf("
x,y,z);
D)read("
8.阅读以下程序:
{intx;
scanf("
x);
if(x--<
5)printf("
'
elseprintf("
x++);
程序运行后,如果从键盘上输人5,则输出结果是
A)3
B)4
C)5
D)6
9.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是
A)地址传递
B)单向值传递
C)由实参传给形参,再由形参传回实参
D)传递方式由用户指定
10.以下程序的输出结果是
{charc='
;
printf("
%c"
c-25);
A)a
B)Z
C)z-25
D)y
11.以下定义语句中,错误的是
A)inta[]={1,2};
B)char*a[3];
C)chars[10]="
test"
D)intn=5,a[n];
12.假定int类型变量占用两个字节,其有定义:
intx[10]={0,2,4};
,则数组x在内存中所占字节数是
A)3
B)6
C)10
D)20
13.以下叙述正确的是
A)可以把define和if定义为用户标识符
B)可以把define定义为用户标识符,但不能把if定义为用户标识符
C)可以把if定义为用户标识符,但不能把define定义为用户标识符
D)define和if都不能定义为用户标识符
14.以下程序的输出结果是
{inta=4,b=5,c=0,d;
d=!
a&
!
b||!
c;
d);
}
A)1
B)0
C)非0的数
D)-1
A×
15.不合法的main函数命令行参数表示形式是
A)main(inta,char*c[])
B)main(intarc,char**arv)
C)main(intargc,char*argv)
D)main(intargv,char*argc[])
16.以下叙述中正确的是
A)构成C程序的基本单位是函数
B)可以在一个函数中定义另一个函数
C)main()函数必须放在其它函数之前
D)所有被调用的函数一定要在调用之前进行定义
17.设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是
A)6.500000
B)6
C)5.500000
D)6.000000
D×
18.有以下程序
{intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
inti,s=0
for(i=0;
4;
i++)s+=aa[i][1];
s);
程序运行后的输出结果是
A)11
B)19
C)13
19.以下叙述中错误的是
A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B)在程序结束时,应当用fclose函数关闭已打开的文件
C)在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
D)不可以用FILE定义指向二进制文件的文件指针
20.C语言中用于结构化程序设计的三种基本结构是( )。
A)顺序结构、选择结构、循环结构
B)if、switch、break
C)for、while、do-while
D)if、for、continue
21.有以下程序段
intm=0,n=0;
charc='
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
22.有以下程序
intfl(intx,inty)
{returnx>
y?
x:
y;
}
intf2(intx,inty)
y:
x;
{inta=4,b=3,c=5,d,e,f;
d=f1(a,b);
d=f1(d,c);
e=f2(a,b);
e=f2(e,c);
f=a+b+c-d-e;
%d,%d,%d\n"
d,f,e);
执行后输出结果是( )。
A)3,4,5
B)5,3,4
C)5,4,3
D)3,5,4
23.有定义语句:
intx,y;
,若要通过scanf("
%d,%d"
y);
语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是( )。
A)1112<
B)11,12<
C)11,12<
D)11,<
12<
24.以下程序
main()
{intx=3,y=2,z=1;
x/y&
~z);
程序运行后的输出结果是( )。
A)3
B)2
C)1
D)0
25.有以下程序段
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
26.有以下程序
intf(intb[][4])
{inti,j,s=0;
for(j=0;
j<
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
27.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是
A)chars[10]="
abcdefg"
B)chart[]="
*s=t;
C)chars[10];
s="
D)chars[10];
strcpy(s,"
);
28.有以下程序
main()
{intm=3,n=4,x;
x=-m++;
x=x+8/++n;
x);
}
A)3
B)5
C)-1
D)-2
29.有以下程序
{chara='
b;
print("
%c,"
++a);
%c\n"
b=a++);
A)b,b
B)b,c
C)a,b
D)a,c
30.有以下程序
{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)程序进入死循环
×
33.有以下程序
voidfun(int*a,inti,intj)
{intt;
if(i<
J)
{t=a;
a=a[j];
a[j]=t;
j--;
fun(a,i,j);
{intx[]={2,6,18},i;
fun(x,0,3);
for(i=0;
i++)printf("
%2d"
\n"
程序运行后的输出结果是( )。
A)1268
B)8621
C)8162
D)8612
34.以下选项中,不能作为合法常量的是( )。
A)1.234e04
B)1.234e0.4
C)1.234e+4
D)1.234e0
35.有以下程序
{inti=1,j=2,k=3;
if(i++==1&
(++j==3||k++==3))
%d%d%d"
i,j,k);
A)123
B)234
C)223
D)233
36.有以下程序
prt(int*m,intn)
{
inti;
for(i=0;
n;
i++)
m[i]++;
inta[]={1,2,3,4,5},i;
prt(a,5);
5;
%d,"
a[i]);
程序运行后的输出结果是:
( )。
A)1,2,3,4,5,
B)2,3,4,5,6,
C)3,4,5,6,7,
D)2,3,4,5,1,
37.有以下程序
point(char*p)
p+=3;
{charb[4]={'
'
b'
c'
d'
},*p=b;
point(p);
%c"
*p);
A)a
B)b
C)c
D)d
38.程序中若有如下的说明和定义语句
charfun(char*);
char*s="
one"
a[5]={0},(*f1)()=fun,ch;
……
以下选项中对函数fun的正确调用语句是( )。
A)(*f1)(a);
B)*f1(*s);
C)fun(&
a);
D)ch=*f1(s)
40.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是( )。
A)k%2 B)k%2==1 C)(k%2)!
=0 D)!
k%2==1
41.有以下程序段
intn,t=1,s=0;
do{s=s+t;
t=t-2;
}while(t!
=n);
为使此程序段不陷入死循环,从键盘输入的数据应该是( )。
A)任意正奇数B)任意负偶数C)任意正偶数D)任意负奇数
42.有以下程序
{inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&
a[3],*q=p+2;
*p+*q);
A)16 B)10 C)8 D)6
44.有以下程序
#include
voidf(char*s,char*t)
{chark;
k=*s;
*s=*t;
*t=k;
s++;
t--;
if(*s)f(s,t);
{charstr[10]="
*p;
p=str+strlen(str)/2+1;
f(p,p-2);
%s\n"
str);
A)abcdefg B)gfedcba C)gbcdefa D)abedcfg
45.有以下程序
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<
3;
i++)s+=f(i);
s);
A)26 B)28 C)29 D)24
46.设有以下语句
inta=1,b=2,c;
c=a^(b<
2);
执行后,c的值为
A)6
B)7
C)8
D)9
47.若有以下程序
{inty=10;
while(y--);
y=%d\n"
y);
程序运行后的输出结果是
A)y=0
B)y=-1
C)y=1
D)while构成无限循环
49.有以下程序
{
inti,j,x=0;
2;
i++)
{x++;
for(j=0;
=3;
j++)
if(j%2)continue;
x++;
x=%d\n"
程序执行后的输出结果是
A)x=4
B)x=8
C)x=6
D)x=12
50.有以下程序
inti,t[][3]={9,8,7,6,5,4,3,2,1};
i++)printf(“%d”,t[2-i][i]);
程序的执行后的输出结果是
A)753
B)357
C)369
D)751
51.有以下程序
fun(charp[][10])
{intn=0,i;
7;
if(p[i][0]=='
T'
)n++;
returnn;
charstr[][10]={"
Mon"
"
Tue"
Wed"
Thu"
Fri"
Sat"
Sun"
};
printf(“%d\n”,fun(str));
A)1
C)3
D)0
52.以下叙述中错误的是
A)C程序必须由一个或一个以上的函数组成
B)函数调用可以作为一个独立的语句存在
C)若函数有返回值,必须通过return语句返回
D)函数形参的值也可以传回对应的实参
53.以下叙述中错误的是
A)可以通过typedef增加新的类型
B)可以用typedef将已存在的类型用一个新的名字来代表
C)用typedef定义新的类型名后,原有类型名仍有效
D)用typedef可以为各种类型起别名,但不能为变量起别名
54.在嵌套使用if语句时,C语言规定else总是________。
A)和之前与其具有相同缩进位置的if配对
B)和之前与其最近的if配对
C)和之前与其最近的且不带else的if配对
D)和之前的第一个if配对
55.有以下程序
intk=5;
while(--k)printf("
k-=3);
执行后的输出结果是________。
A)1 B)2 C)4 D)死循环
56.有以下程序
fun(intx,inty){return(x+y);
inta=1,b=2,c=3,sum;
sum=fun((a++,++b,a+b),c++);
A)6 B)7 C)8 D)9
57.有以下程序
chars[]="
abcde"
s+=2;
s[0]);
执行后的结果是________。
A)输出字符a的ASCII码
B)输出字符c的ASCII码
C)输出字符c
D)程序出错
58.在16位编译系统上,右有定义inta[]={10,20,30},*p=&
a;
当执行p++;
后,下列说法错误的是________。
A)p向高地址移了一个字节 B)p向高地址移了一个存储单元
C)p向高地址移了两个字节 D)p与a+1相等
48.有以下程序
inta=0,b=0,c=0,d=0;
if(a=1)b=1;
c=2;
elsed=3;
%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
43.有以下程序
#include
{charp[]={'
'
},q[10]={'
%d%d\n"
strlen(p),strlen(q));
以下叙述中正确的是( )。
A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B)由于p数组中没有字符串结束符,长度不能确定;
但q数组中字符串长度为3
C)由于q数组中没有字符串结束符,长度不能确定;
但p数组中字符串长度为3
D)由于p和q数组中都没有字符串结束符,故长度都不能确定
B×
32.已有定义:
inti,a[10],*p;
则合法的赋值语句是( )。
A)p=100;
B)p=a[5];
C)p=a[2]+