C机考复习题6.docx
《C机考复习题6.docx》由会员分享,可在线阅读,更多相关《C机考复习题6.docx(27页珍藏版)》请在冰豆网上搜索。
C机考复习题6
1.以下说法中正确的是()
A)C语言程序总是从第一个的函数开始执行
B)在C语言程序中,要调用的函数必须在main()函数中定义
C)C语言程序总是从main()函数开始执行
D)C语言程序中的main()函数必须放在程序的开始部分
2.下选项中不是C语句的是()。
A){inti;i++;printf(“%d\n”,i);}
B);
C)a=5,c=10
D){;}
3.以下选项中不能作为C语言合法常量的是()
A)'cd'
B)0.1e+6
C)"\a"
D)'\011'
4.若x,a,b和c均是int型变量,则执行表达式x=(a=1,b=2)后x的结果为()。
A)1
B)2
C)3
D)不确定
5.以下能正确定义整型变量a,b和c并为其赋初值1的语句是()。
A)inta=b=c=1;
B)inta,b,c=1;
C)a=b=c=1;
D)inta=1,b=1,c=1;
ysdbvd
6.字符串"\t\065\xff\n"中的字符数(不算’\0’)为()
A)5
B)14
C)8
D)4
7.对两个静态函数A和B进行如下初始化:
charA[]="ABCDEF";
charB[]={'A','B','C','D','E','F'};
则下列叙述正确的是()。
A)A和B完全相同
B)A和B只是长度相等
C)A和B不相同,A是指针数组
D)A数组长度比B数组长
8.若有以下定义:
chara;intb;
floatc;doubled;
则表达式a*b+d-c值的类型为()
A)float
B)int
C)char
D)double
9.在C语言中,运算对象必须是整型数的运算符是()
A)%
B)/
C)%和\
D)**
10.有以下程序
main()
{intx,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序运行后的输出结果是()
A)2,3,3
B)2,3,2
C)2,3,1
D)2,2,1
11.以下选项中,当x为大于1的奇数时,值为0的表达式是()
A)x%2==1
B)x/2
C)x%2!
=0
D)x%2==0
12.以下程序的输出结果是()。
main()
{
intx=10,y=3;
printf("%d\n",y=x/y);
}
A)0
B)1
C)3
D)不确定的值
13.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()
A)-3
B)9
C)-12
D)6
15.有以下程序
main()
{
chara='a',b;
printf("%c,",++a);
printf("%c\n",b=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的值为()
A)0
B)1
C)2
D)3
17.设x、y、t均为int型变量,则执行语句:
x=y=3;t=++x||++y;后,y的值为()
A)不定值
B)4
C)3
D)1
18.有以下程序段
intk=0;
while(k=1)k++;
while循环执行的次数是()
A)无限次
B)有语法错,不能执行
C)一次也不执行
D)执行1次
19.能正确表示逻辑关系“a>=10或a<=0”的C语言表达式是()
A)a>=10ora=10
B)a>=0|a<=10
C)a>=10&&a<=0
D)a>=10||a<=0
20.表示关系x≤y≤z的c语言表达式为()
A)(x<=y)&&(y<=z)
B)(x<=y)AND(y<=z)
C)(x<=y<=z)
D)(x<=y)&(y<=z)
21.设有:
inta=1,b=2,c=3,d=4,m=3,n=3;执行(m=a>b)||(n=c>d)后n的值为()。
A)0
B)1
C)2
D)3
22.以下关于逻辑运算符两侧运算对象的叙述中正确的是()
A)只能是整数0或1
B)只能是整数0或非0整数
C)可以是结构体类型的数据
D)可以是任意合法的表达式
23.若x和y都是int型变量,x=100,y=200,且有下面的程序片段:
printf("%d",(x,y));
上面程序片段的输出结果是()
A)200
B)100
C)100200
D)输出格式符不够,输出不确定的值
24.以下程序的输出结果是()
main()
{intk=17;
printf("%d,%o,%x\n",k,k,k);
}
A)17,021,0x11
B)17,17,17
C)17,0x11,021
D)17,21,11
25.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()。
A)INPUTx、y、z;
B)scanf("%d%d%d",&x,&y,&z);
C)scanf("%d%d%d",x,y,z);
D)read("%d%d%d",&x,&y;&z);
26.有以下程序
main()
{
inti;
for(i=0;i<3;i++)
switch(i)
{
case0:
prinft("%d",i);
case2:
prinft("%d",i);
default:
prinft("%d",i);
}
}
程序运行后的输出结果是()
A)022111
B)021021
C)000122
D)012
27.C语言中用于结构化程序设计的三种基本结构是()
A)顺序结构、选择结构、循环结构
B)if、switch、break
C)for、while、do-while
D)if、for、continue
29.在嵌套使用if语句时,C语言规定else总是()
A)和之前与其具有相同缩进位置的if配对
B)和之前与其最近的if配对
C)和之前与其最近的且不带else的if配对
D)和之前的第一个if配对
30.设有以下程序片段:
switch(X)
{
case'A':
printf("A");
case'B':
printf("B");
default:
printf("error");
}
假设X='A',程序输出结果是()
A)A
B)B
C)error
D)ABerror
31.读程序:
main()
{intnum=0;
while(num<=2)
{num++;printf("%d",num);}
}
上面程序的输出结果是()
A)1
B)22
C)123
D)1234
33.以下程序段的执行结果是()。
intx=5;
do{printf("%2d\n",x--);}
while(!
x);
A)5
B)无任何输出
C)4
D)陷入死循环
34.设变量已正确定义,则以下能正确计算f=n!
的程序段是()
A)f=0;
for(i=1;i<=n;i++)f*=i;
B)f=1;
for(i=1;iC)f=1;
for(i=n;i>1;i++)f*=i;
D)f=1;
for(i=n;i>=2;i--)f*=i;
35.以下程序的输出结果是()。
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
36.下列合法的数组定义是()。
A)inta[]="string";
B)inta[5]={0,1,2,3,4,5};
C)chara="string";
D)chara[]={0,1,2,3,4,5};
37.以下定义语句中,错误的是()
A)inta[]={1,2};
B)char*a[3];
C)chars[10]="test";
D)intn=5,a[n];
38.以下正确的数组定义语句是()。
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.以下程序的输出结果是()。
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
41.若有定义语句:
inta[3][6];,按在内存中的存放顺序,a数组的第10个元素是()
A)a[0][4]
B)a[1][3]
C)a[0][3]
D)a[1][4]
42.以下数组定义中不正确的是()
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.以下程序的输出结果是()。
main()
{
inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);
}
A)0650
B)1470
C)5430
D)输出值不定
45.以下程序的输出结果是()
main()
{charcf[3][5]={"AAAA","BBB","CC"};
printf("\"%s\"\n",cf[1]);;
}
A)"AAAA"
B)"BBB"
C)"BBBCC"
D)"CC"
46.设有数组定义:
chararray[]="China";则数组array所占的空间为()
A)4个字节
B)5个字节
C)6个字节
D)7个字节
47.以下选项中,不能正确赋值的是()。
A)chars1[10];s1="Ctest";
B)chars2[]={'C','t','e','s','t'};
C)chars3[20]="Ctest";
D)char*s4="Ctest\n";
48.给出以下定义:
charx[]="abcdfeg";
chary[]={'a','b','c','d','e','f','g'};
则正确的叙述为()。
A)数组x和数组y等价
B)数组x和数组y长度相同
C)数组x的长度大于数组y的长度
D)数组x的长度小于数组y的长度
50.若要求从键盘读入含有空格字符的字符串,应使用函数()
A)getc()
B)gets()
C)getchar()
D)scanf()
51.有语句:
charstr1[10],str2[10]={"books"};
则能将字符串books赋给数组str1的正确语句是()。
A)str1={"Books"};
B)strcpy(str1,str2);
C)str1=str2;
D)strcpy(str2,str1);
52.以下语句的输出结果是()
printf("%d\n",strlen("\tc\065\xff\n"));
A)5
B)14
C)8
D)输出项不合法,无正常输出
53.若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是()。
A)a,point,*&a
B)&*a,&a,*point
C)*&point,*point,&a
D)&a,&*point,point
54.设已有定义:
floatx;,则以下对指针变量p进行定义且赋初值的语句中正确的是()
A)float*p=1024;
B)int*p=(float)x;
C)floatp=&x;
D)float*p=&x;
55.设有语句:
inta=1,b=2,*p1=&a,*p2=&b;以下可使指针p1指向变量b的赋值语句是()。
A)p1=*p2
B)*p1=p2
C)p1=p2
D)*p1=*p2
56.有以下程序
main()
{
inta[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;pprintf("%d,",*p);
}
程序运行后的输出结果是()
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]的地址的是()。
A)s+1
B)s++
C)&s[0]+1
D)&s[1]
58.在以下选项中,操作不合法的一组是()。
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.有以下程序
main()
{chars[]="159",*p;
p=s;
printf("%c",*p++);
pritnf("%c",*p++);
}
程序运行后的输出结果是()
A)15
B)16
C)12
D)59
61.以下语句或语句组中,能正确进行字符串赋值的是()
A)char*sp;*sp="right!
";
B)chars[10];s="right!
";
C)chars[10];*s="right!
";
D)char*sp="right!
";
62.下面程序段的运行结果是()。
char*p="abcdefgh";
p+=2;
printf("%d\n",strlen(strcpy(p,"ABCD")));
A)6
B)12
C)4
D)7
63.下面程序段的运行结果是()。
charstr[]="ABC",*p=str;
printf("%d\n",*(p+3));
A)67
B)0
C)字符'C'的地址
D)字符'C'
64.以下程序运行后,输出结果是()
main()
{char*s="abcde";
s+=2;
printf("%d\n",s);}
A)cde
B)字符c的ASCII码值
C)字符c的地址
D)出错
66.有以下程序:
main()
{char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};
printf("%d\n",strlen(p[4]));
}
执行后输出结果是()
A)2
B)3
C)4
D)5
67.若有语句:
char*line[5];,以下叙述中正确的是()
A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量
B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
C)定义line是一个指针数组,语句中的*号称为间址运算符
D)定义line是一个指向字符型函数的指针
68.设有如下定义:
char*aa[2]={"abcd","ABCD"};则以下说法中正确的是()。
A)aa数组成元素的值分别是"abcd"和ABCD"
B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D)aa数组的两个元素中各自存放了字符串"abcd"和"ABCD"的首地址
69.以下函数调用语句中含有()个实参。
fun((exp1,exp2),(exp3,exp4,exp5));
A)1
B)2
C)4
D)5
71.以下所列的各函数首部中,正确的是()
A)voidplay(vara:
integer,varb:
integer)
B)voidplay(inta,b)
C)voidplay(inta,intb)
D)Subplay(aasinteger,basinteger)
72.C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是()
A)void
B)int
C)float
D)double
73.下面的函数调用语句中func函数的实参个数是()
func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)));
A)3
B)4
C)5
D)8
74.有以下程序
fun(intx,inty)
{staticintm=0,i=2;
i+=m+1;m=i+x+y;returnm;
}
main()
{intj=1,m=1,k;
k=fun(j,m);printf("%d,",k);
k=fun(j,m);printf("%d\n",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.以下程序的输出结果是()
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(5,2,a);
printf("%d",a);
}
A)0
B)2
C)31
D)无定值
77.有以下程序
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
78.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()
A)地址传递
B)单向值传递
C)由实参传给形参,再由形参传回实参
D)传递方式由用户指定
79.有以下程序
voidf(intb[])
{inti;
for(i=2;i<6;i++)
b[i]*=2;
}
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10},i;
f(a);
for(i=0;i<10;i++)
printf("%d,",a[i]);
}
程序运行后的输出结果是()
A)1,2,3,4,5,6,7,8,9,10,
B)1,2,6,8,10,12,7,8,9,10,
C)1,2,3,4,10,12,14,16,9,10,
D)1,2,6,8,10,12,14,16,9,10,
80.在C语言中,函数返回值的类型最终取决于()
A)函数定义时在函数首部所说明的函数类型
B)return语句中表达式值的类型
C)调用函数时主调函数所传递的实参类型
D)函数定义时形参的类型
81.调用一个函数,此函数中没有return语句,下列说法正确的是:
该函数()。
A)没有返回值
B)返回若干个系统默认值
C)能返回一个用户所希望的函数值
D)返回一个不确定的值
83.若有以下调用语句,则不正确的fun函数的首部是()
main()
{…
inta[50],n;
…
fun(n,&a[9]);
…
}
A)voidfun(intm,intx[])
B)voidfun(ints,inth[41])
C)voidfun(intp,int*s)
D)voidfun(intn,intA)
85.有以下程序
voidswap(char*x,char*y)
{chart;
t=*x;*x=*y;*y=t;
}
main()
{char*s1="abc",*s2="123";
swap(s1,s2);printf("%s,%s\n",s1,s2);
}
程序执行后的输出结果是()
A)123,abc
B)abc,123
C)1bc,a23
D)321,cba
86.以下程序的输出结果()
#include
sub(intx,inty,int*z)
{
*z=y-x;
}
main()
{
inta,b,c;
sub(10,5,&a);
sub(7,a,&b);
sub(a,b,&c);
printf("%d,%d,%d\n",a,b,c);
}
A)5,2,3
B)-5,-12,-7
C)-5,