C机考复习题12Word文件下载.docx
《C机考复习题12Word文件下载.docx》由会员分享,可在线阅读,更多相关《C机考复习题12Word文件下载.docx(33页珍藏版)》请在冰豆网上搜索。
9.在C语言中运算对象必须是整型数的运算符是(A)
A)%
B)/
C)%和\
D)**
10.有以下程序
main()
{intx,y,z;
x=y=1;
z=x++,y++,++y;
printf("
%d,%d,%d\n"
x,y,z);
程序运行后的输出结果是
(C)
A)2,3,3
B)2,3,2
C)2,3,1
D)2,2,1
11.以下选项中当x为大于1的奇数时值为0的表达式是(D)
A)x%2==1
B)x/2
C)x%2!
=0
D)x%2==0
12.以下程序的输出结果是(C)。
{
intx=10,y=3;
%d\n"
y=x/y);
A)0
B)1
D)不确定的值
13.若a为int类型且其值为3则执行完表达式a+=a-=a*a后a的值是(C)
A)-3
B)9
C)-12
D)6
14.已知字符A的ASCII码为十进制的65下面程序的输出是(A)
main()H
{
charch1,ch2;
ch1='
+'
5'
-'
3'
ch2='
6'
%d,%c\n"
ch1,ch2);
A)67,D
B)B,C
C)C,D
15.有以下程序
chara='
a'
b;
%c,"
++a);
%c\n"
b=a++);
(A)
A)b,b
B)b,c
C)a,b
D)a,c
16.设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的值为(C)
C)2
D)3
17.设x、y、t均为int型变量则执行语句x=y=3;
t=++x||++y;
后y的值为(C)
A)不定值
B)4
D)1
18.有以下程序段
intk=0;
while(k=1)k++;
while循环执行的次数是(A)
A)无限次
B)有语法错不能执行
C)一次也不执行
D)执行1次
19.能正确表示逻辑关系“a>
=10或a<
=0”的C语言表达式是(D)
A)a>
=10ora=10
B)a>
=0|a<
=10
C)a>
=10&
a<
D)a>
=10||a<
20.表示关系x≤y≤z的c语言表达式为(A)
A)(x<
=y)&
(y<
=z)
B)(x<
=y)AND(y<
=z)
C)(x<
=y<
=z)
D)(x<
=z)
21.设有inta=1,b=2,c=3,d=4,m=3,n=3;
执行(m=a>
b)||(n=c>
d)后n的值为(A)。
A)0
B)1
C)2
22.以下关于逻辑运算符两侧运算对象的叙述中正确的是
(D)
A)只能是整数0或1
B)只能是整数0或非0整数
C)可以是结构体类型的数据
D)可以是任意合法的表达式
23.若x和y都是int型变量x=100y=200且有下面的程序片段
%d"
(x,y));
上面程序片段的输出结果是(A)
A)200
B)100
C)100200
D)输出格式符不够输出不确定的值
24.以下程序的输出结果是(D)
{intk=17
%d%o%x\n"
kkk)
A)170210x11
B)171717
C)170x11021
D)172111
25.x、y、z被定义为int型变量若从键盘给x、y、z输入数据正确的输入语句是(B)。
A)INPUTx、y、z;
B)scanf("
%d%d%d"
&
x,&
y,&
z);
C)scanf("
D)read("
y;
26.有以下程序
inti;
for(i=0;
i<
3;
i++)
switch(i)
case0:
prinft("
i);
case2:
default:
程序运行后的输出结果是(C)
A)022111
B)021021
C)000122
D)012
27.C语言中用于结构化程序设计的三种基本结构是(A)
A)顺序结构、选择结构、循环结构
B)if、switch、break
C)for、while、do-while
D)if、for、continue
28.若执行下面的程序时从键盘上输入5则输出是(B)
main()
{intx;
scanf("
x);
if(x++>
5)printf("
x);
elseprintf("
x--);
A)7
B)6
C)5
29.在嵌套使用if语句时C语言规定else总是
A)和之前与其具有相同缩进位置的if配对
B)和之前与其最近的if配对
C)和之前与其最近的且不带else的if配对
D)和之前的第一个if配对
30.设有以下程序片段:
switch(X)
case'
:
A"
);
B"
error"
假设X='
程序输出结果是(D)
A)A
B)B
C)error
D)ABerror
31.读程序
{intnum=0;
while(num<
=2)
{num++;
%d"
num);
上面程序的输出结果是(C)
A)1
B)22
C)123
D)1234
32.下述语句执行后变量k的值是(B)。
intk=1;
while(k++<
10);
A)10
B)11
C)9
D)此为无限循环值不定
33.以下程序段的执行结果是(A)。
intx=5;
do{printf("
%2d\n"
while(!
A)5
B)无任何输出
C)4
D)陷入死循环
34.设变量已正确定义则以下能正确计算f=n!
的程序段是
A)f=0;
for(i=1;
=n;
i++)f*=i;
B)f=1;
n;
C)f=1;
for(i=n;
i>
1;
D)f=1;
=2;
i--)f*=i;
35.以下程序的输出结果是(C)。
inta,b;
for(a=1,b=1;
=100;
a++)
if(b>
=10)break;
if(b%3==1)
b+=3;
continue;
printf("
a);
A)101
B)6
C)5
36.下列合法的数组定义是(D)。
A)inta[]="
string"
B)inta[5]={0,1,2,3,4,5};
C)chara="
D)chara[]={0,1,2,3,4,5};
37.以下定义语句中错误的是(D)
A)inta[]={1,2};
B)char*a[3];
C)chars[10]="
test"
D)intn=5,a[n];
38.以下正确的数组定义语句是(D)。
A)inty[1][4]={1,2,3,4,5};
B)floatx[3][]={{1},{2},{3}};
C)longs[2][3]={{1},{1,2},{1,2,3}};
D)intm[1][4]={4};
39.以下程序的输出结果是(C)。
{
inti,a[10];
for(i=9;
=0;
i--)
a[i]=10-i;
a[2],a[5],a[8]);
A)258
B)741
C)852
D)369
40.下面的程序中(C)有错误(每行程序前面的数字是行号)。
1#include<
stdio.h>
2main()
3{floats[5];
4inti,sz=0;
5for(i=0;
5;
6scanf("
s[i]);
7for(i=0;
8sz+=s[i];
9printf("
\n%f"
(float)sz);
10}
A)没有错误
B)第4行错误
C)第6行错误
D)第9行错误
41.若有定义语句inta[3][6];
按在内存中的存放顺序a数组的第10个元素是(B)
A)a[0][4]
B)a[1][3]
C)a[0][3]
D)a[1][4]
42.以下数组定义中不正确的是(D)
A)inta[2][3];
B)intb[][3]={0,1,2,3};
C)intc[100][100]={0};
D)intd[3][]={{1,2},{1,2,3},{1,2,3,4}};
43.以下程序的输出结果是(A)。
inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};
%d%d%d%d\n"
a[0][3],a[1][2],a[2][1],a[3][0]);
A)0650
B)1470
C)5430
D)输出值不定
44.若二维数组a有m列则在a[i][j]前的元素个数为(B
A)j*m+i
B)i*m+j
C)i*m+j-1
D)i*m+j+1
45.以下程序的输出结果是
(B)
{charcf[3][5]={"
AAAA"
"
BBB"
CC"
\"
%s\"
\n"
cf[1]);
A)"
B)"
BBBCC"
D)"
46.设有数组定义:
chararray[]="
China"
则数组array所占的空间为(C)
A)4个字节
B)5个字节
C)6个字节
D)7个字节
47.以下选项中不能正确赋值的是(A)。
A)chars1[10];
s1="
Ctest"
B)chars2[]={'
t'
e'
s'
C)chars3[20]="
D)char*s4="
Ctest\n"
48.给出以下定义
charx[]="
abcdfeg"
chary[]={'
b'
c'
d'
f'
g'
则正确的叙述为(C)。
A)数组x和数组y等价
B)数组x和数组y长度相同
C)数组x的长度大于数组y的长度
D)数组x的长度小于数组y的长度
49.设有charstr[]="
Beijing"
则执行
strlen(strcpy(str,"
)));
后的输出结果为(A)。
A)5
B)7
C)12
D)14
50.若要求从键盘读入含有空格字符的字符串应使用函数
A)getc()
B)gets()
C)getchar()
D)scanf()
51.有语句
charstr1[10],str2[10]={"
books"
则能将字符串books赋给数组str1的正确语句是(B)。
A)str1={"
Books"
B)strcpy(str1,str2);
C)str1=str2;
D)strcpy(str2,str1);
52.以下语句的输出结果是(A)
strlen("
\tc\065\xff\n"
));
D)输出项不合法无正常输出
53.若有语句int*point,a=4;
和point=&
a;
下面均代表地址的一组选项是(D)。
A)a,point,*&
a
B)&
*a,&
a,*point
C)*&
point,*point,&
a
D)&
a,&
*point,point
54.设已有定义floatx;
则以下对指针变量p进行定义且赋初值的语句中正确的是(D)
A)float*p=1024;
B)int*p=(float)x;
C)floatp=&
x;
D)float*p=&
55.设有语句inta=1,b=2,*p1=&
a,*p2=&
b;
以下可使指针p1指向变量b的赋值语句是(C)。
A)p1=*p2
B)*p1=p2
C)p1=p2
D)*p1=*p2
56.有以下程序
inta[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;
p<
a+10;
p++)
%d,"
*p);
程序运行后的输出结果是(A)
A)1,2,3,4,5,6,7,8,9,0,
B)2,3,4,5,6,7,8,9,10,1,
C)0,1,2,3,4,5,6,7,8,9,
D)1,1,1,1,1,1,1,1,1,1,
57.若已定义chars[10];
则在下面表达式中不能表示s[1]的地址的是(B)。
A)s+1
B)s++
C)&
s[0]+1
s[1]
58.在以下选项中操作不合法的一组是(B)。
A)intx[6],*p;
p=&
x[0];
B)intx[6],*p;
*p=x;
C)intx[6],*p;
p=x;
D)intx[6],p;
p=x[0];
59.有以下程序
{chars[]="
159"
*p;
p=s;
%c"
*p++);
pritnf("
A)15
B)16
C)12
D)59
60.以下程序运行后,如果从键盘上输入:
book<
回车>
空格>
<
则输出的结果是(B)
#include<
string.h>
{chara1[80],a2[80],*s1=a1,*s2=a2;
gets(s1);
gets(s2);
if(!
strcmp(s1,s2))
*"
else
#"
strlen(strcat(s1,s2)));
A)*8
B)#9
C)#6
D)*9
61.以下语句或语句组中能正确进行字符串赋值的是(D)
A)char*sp;
*sp="
right!
"
B)chars[10];
s="
C)chars[10];
*s="
D)char*sp="
62.下面程序段的运行结果是(A)。
char*p="
abcdefgh"
p+=2;
strlen(strcpy(p,"
ABCD"
A)6
B)12
C)4
D)7
63.下面程序段的运行结果是(B)。
charstr[]="
ABC"
*p=str;
*(p+3));
A)67
B)0
C)字符'
的地址
D)字符'
64.以下程序运行后输出结果是(B)
{char*s="
abcde"
s+=2;
s);
A)cde
B)字符c的ASCII码值
C)字符c的地址
D)出错
65.下面程序的运行结果是(B)。
#include<
{char*s1=“AbDeG”;
char*s2=“AbdEg”;
s1+=2;
s2+=2;
printf(“%d\n”,strcmp(s1,s2));
A)正数
B)负数
C)零
66.有以下程序
{char*p[10]={"
abc"
aabdfg"
dcdbe"
abbd"
cd"
strlen(p[4]));
}
执行后输出结果是(A)
A)2
B)3
D)5
67.若有语句char*line[5]以下叙述中正确的是(A)
A)定义line是一个数组每个数组元素是一个基类型为char的指针变量
B)定义line是一个指针变量该变量可以指向一个长度为5的字符型数组
C)定义line是一个指针数组语句中的*号称为间址运算符
D)定义line是一个指向字符型函数的指针
68.设有如下定义:
char*aa[2]={"
abcd"
}则以下说法中正确的是(B)。
A)aa数组成元素的值分别是"
和ABCD"
B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D)aa数组的两个元素中各自存放了字符串"
和"
的首地址
69.以下函数调用语句中含有(C)个实参。
fun((exp1,exp2),(exp3,exp4,exp5));
70.下列函数定义中会出现编译错误的是(B)
A)max(intx,inty,int*z)
{*z=x>
y?
x:
B)intmax(intx,y)
intz;
z=x>
returnz;
C)max(intx,inty)
return(z);
D)intmax(intx,inty)
{return(x>
y?
x:
y);
71.以下所列的各函数首部中正确的是(C)
A)voidplay(vara:
integer,varb:
integer)
B)voidplay(inta,b)
C)voidplay(inta,intb)
D)Subplay(aasinteger,basinteger)
72.C语言中函数值类型的定义可以缺省此时函数值的隐含类型是(B)
A)void
B)int
C)float
73.下面的函数调用语句中func函数的实参个数是
func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)));
A)3
D)8
74.有以下程序
fun(intx,inty)
{staticintm=0,i=2;
i+=m+1;
m=i+x+y;
returnm;
{intj=1,m=1,k;
k=fun(j,m);
k);
执行后的输出结果是
A)5,5
B)5,11
C)11,11
D)11,5
75.以下函数值的类型是
fun(floatx)
{floaty;
y=3*x-4;
returny;
A)int
B)不确定
C)void
D)float
76.