C\C++程序设计复习题
一、 选择题
1、 一个C语言程序总是从( C )开始执行
A) 书写顺序的第一个函数
B) 书写顺序的第一条执行语句
C) 主函数main( )
D) 不确定
2、以下能正确定义二维数组的是 ( C )
A.int a[][3];
B.int a[][3]=2{2*3};
C.int a[][3]={};
D.int a[2][3]={{1},{2},{3,4}};
A.int a[][3];
B.int a[][3]=2{2*3};
C.int a[][3]={};
D.int a[2][3]={{1},{2},{3,4}};
3、设int x=3,y=4,z=5,则下列表达式中的值为0的是 ( D )
A) ‘x’&&’y’ B) x||y+z&&y-z C) x<=y D) !((x<y)&&!z||1)
4、 执行以下程序段后,i的值是 ( C )
int i=10;
switch(i+1)
{ case 10: i++; break;
case 11: ++i;
case 12: ++i; break;
default : i=i+1;
}
A) 11 B) 13 C) 12 D) 14
5、语句while(!e);中的条件!e等价于 ( B )
A) e==0 B)e!=1 C) e!=0 D) 运行时出错
6、下列数据中,为字符串常量的是( B ) 。
(A)‘A’
(B)“house”
(C)How do you do.
(D)’$abc’
7、 用 int a[4]={1,2}; 对数组进行初始化后,数组元素a[3]的值是 ( B )
A) 随机值 B) 0 C) 1 D) F
8、 在执行char str[10]=“china\0”; strlen(str)的结果是 ( B )
A)5 B) 6 D) 7 D 9
9、 若有定义,char *p=”computer”; 则语句printf(“%c”,*(p+2))运行结果是 ( B )
A) 随机值 B) m C)o D) omputer
10、有以下程序 ( D )
main()
{ int i=0,x=0;
for (;;)
{
if(i==3||i==5) continue;
if (i==6) break;
i++;
s+=i;
};
printf("%d\n",s);
}
main()
{ int i=0,x=0;
for (;;)
{
if(i==3||i==5) continue;
if (i==6) break;
i++;
s+=i;
};
printf("%d\n",s);
}
程序运行后的输出结果是
A.10
B.13
C.21
D.程序进入死循环
A.10
B.13
C.21
D.程序进入死循环
11、以下定义语句中正确的是 ( C )
A.char a='A'b='B';
B.float a=b=10.0;
C.int a=10,*b=&a;
D.float *a,b=&a;
A.char a='A'b='B';
B.float a=b=10.0;
C.int a=10,*b=&a;
D.float *a,b=&a;
12、设有int x=11;则表达式(x++*l/3)的值为( B )。
(A)3
(B)4
(C)11
(D)12
13、 在说明一个结构体变量时系统分配给它的存储空间是( D )
A)该结构体中第一个成员变量所需存储空间 B) 该结构体中最后一个成员变量所需存储空间
C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和
14、 用C语言编写的代码程序( B )
A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行
15、C语言中用于结构化程序设计的三种基本结构是( A )
A)顺序结构、选择结构、循环结构 B)if、switch、printf函数的执行顺序break C)for、while、do-while D)if、for、continue
16、下列选项中,不能用作标识符的是( D )
A)_1234_ B)_1_2 C) int_2_ D)2_int_
17、有以下程序
main()
{ int m=0256,n=256;printf("%o %o\n",m,n);
}
程序运行后的输出结果是 ( C )(//0256以0开头,表示是8进制整数,%o以8进制输出,0x是16进制,%x是16进制。)
A.0256 0400
B.0256 256
C.256 400
D.400 400
main()
{ int m=0256,n=256;printf("%o %o\n",m,n);
}
程序运行后的输出结果是 ( C )(//0256以0开头,表示是8进制整数,%o以8进制输出,0x是16进制,%x是16进制。)
A.0256 0400
B.0256 256
C.256 400
D.400 400
18、以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子:(x)/(y×z)的c语言表达式是( A )。
(A)x/y*z
(B)x*(1/(y*z))
(C) x/y*1/z
(D)x/y/z
19、有以下程序
int f(int a)
{ return a%2; }
main()
{ int s[8]={1,3,5,2,4,6},i,d=0;
for (i=0;f(s[i]);i++) d+=s[i];//f(s[i])为判断奇偶
printf("%d\n",d);
}
程序运行后的输出结果是 ( A )
int f(int a)
{ return a%2; }
main()
{ int s[8]={1,3,5,2,4,6},i,d=0;
for (i=0;f(s[i]);i++) d+=s[i];//f(s[i])为判断奇偶
printf("%d\n",d);
}
程序运行后的输出结果是 ( A )
A.9
B.11
C.19
D.21
B.11
C.19
D.21
20、以下叙述中正确的是 ( A )
A)局部变量说明为static存储类,其生存期将得到延长
B)全局变量说明为static存储类,其作用域将被扩大
C)任何存储类的变量在未赋初值时,其值都是不确定的
D)形参可以使用的存储类说明符与局部变量完全相同
21、有以下程序 ( B )
main()
{ char a='a',b;
main()
{ char a='a',b;
print("%c,",++a);
printf("%c\n",b=a++);
}
程序运行后的输出结果是
A.b,b
B.b,c
C.a,b
D.a,c
printf("%c\n",b=a++);
}
程序运行后的输出结果是
A.b,b
B.b,c
C.a,b
D.a,c
22、若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( D )
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);
23、有以下程序( B )
main()
{ char a='a',b;
printf("%c,",++a);
printf("%c\n",b=a++);}
程序运行后的输出结果是a)b,b B)b,c C)a,b D)a,c
24、有以下程序
main()
{ int i;
for(i=0;i<3;i++)
switch(i)
{
case 0:printf("%d",i);
case 2:printf("%d",i);
default:printf("%d",i);
main()
{ int i;
for(i=0;i<3;i++)
switch(i)
{
case 0:printf("%d",i);
case 2:printf("%d",i);
default:printf("%d",i);
}
}
程序运行后的输出结果是 ( D )
A.022111
B.021021
C.000122
D.012
}
程序运行后的输出结果是 ( D )
A.022111
B.021021
C.000122
D.012
25、假定w、x、y、z、m均为int型变量;有如下程序段:
w=1;x=2;y=3;z=4;
m=(w<x)?w:x, m=(m<y)?m:y; m=(m<z)?m:z;
则该程序段执行后,m的值是( D )。
(A)4
(B)3
(C)2
(D) 1
26、已定义c为字符型变量,则下列语句中正确的是( A )
A)c='97'; B)c="97"; C)c=97; D)c="a";
27、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( B ) 。
(A) 地址传递
(B) 单向值传递
(C) 由实参传给形参,再由形参传回实参
(D) 传递方式由用户指定
28、以下定义语句中,错误的是 ( D )。
(A)int a[]={1,2};
(B) char *a[3];
(C)char s[10]="text";
(D) int n=5,a[n];
29、以下能正确定义数组并正确赋初值的语句是( D )
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论