四川省计算机二级考试培训讲义(内部资料)
{
char *p,*q;
p=(char *)malloc(sizeof(char)*20); q=p;
scanf(\ printf(\}
若输入abd def<回车>,则输出为( A ) A、def,def B、abc,def C、abc,d 4、下列函数形式正确的是( D ) A、 double fun(int x,int y)
{z=x+y; return z;} C、 fun(x,y)
B、 fun(int x,y)
{int z;
return z;}
D、 double fun(int x,int y)
{ double z; z=x+y;
D、d,d
{int x,y; double z=x+y;
return z;} return z;} 5、下列有关类和对象的说法不正确的是( ) A、对象是类的一个实例。
B、任何一个对象只能属于一个具体的类。 C、任何一个对象只能属于一个具体的类。
D、类与对象的关系和数据类型与变量的关系相似。
6、派生类的对象对它的基类成员中( A )是可以访问的。 A、公有继承的公有成员 B、公有继承的私有成员 C、保护继承的公有成员 D、私有继承的公有成员 7、已经学生结构体描述如下: struct students {
int no;
char name[10]; char sex; struct {
int day; int month; int year; }birth; int score; };
用学生结构体定义了变量w; struct students w;
设变量w中的“生日”是“1982年5月29日”,下列对生日的正确赋值方法是( C ) A、 day=29; B、 w.day=29; month=5; w.month=5;
- 34 -
四川省计算机二级考试培训讲义(内部资料)
year=1982; w.year=1982;
C、 w.birth.day=29; D、 birth.day=29; w.birth.month=5; birth.month=5; w.birth.year=1982; birth.year=1982;
8、假定p1和p2是已赋值的int型指针,则下面有关运算中,( A A、(p1+4)=p2; C、if(p1!=p2) printf(“!=”);
B、p2 = p1-10; D、p1+=(p2-p1)
)是非法的。
9、关于C/C++语言,以下叙述正确的是( D )
A、C是面向过程的程序设计语言,C++不支持面向过程的程序设计。 B、C语言支持图形设计,C++不支持。 C、C程序由函数组成,而C++程序由类组成。 D、C是C++的子集。 10、设有以下语句: char x=3,y=6,z; z=x^(y<<2); 则z的值是(
C )
A、00010100 B、00011100 C、00011011 D、00011000 二、读程序回答问题(每个选择分,共45分) 1、以下程序运行的结果为:( B ) #include
int a=2,b=-1,c=2; if(a
B、2 C、1 2、下列程序运行的结果为( C ) #include
int a=13, b=21,m=0; switch(a%3) {
case 0:m++;break; case 1:m++; switch(b%2) {
default:m++;
case 0:m++;break; }
- 35 -
C、0
四川省计算机二级考试培训讲义(内部资料)
}
printf(\} A、1 B、2 C、3 D、4 error3、以下程序运行后,文件test中的内容为( #include
void fun(char *fname,char *st) { FILE *fp; int i;
fp=fopen(fname,\ for(i=0;i void main() { } A、world B、worldhello 4、读下列程序: #include union value; { char ch; int n; double f; }Data; cout<<\ Data.ch='a'; cout< (1)value是(B ) A、共用体变量名 C、结构体变量名 B、共用体名 D、结构体名 B、 sizeof(Data)=8 a - 36 - ) C、helloworld D、hello (2)程序运行的结果是:( B ) A、 sizeof(Data)=13; a 四川省计算机二级考试培训讲义(内部资料) 100 100 78.168 78.168 C、 13 D、 8 a a 100 100 78.168 78.168 5、读下列程序: #include static char str[50]=\ int sum1 = 0,sum2=0; while(*p!='\\0') { if(*p>=48&&*p<=57) sum1++; else if(*p>=101&&*p<=107) sum2++; else; p++; } cout< (1)程序的运行结果是( D ) A、3,2 B、2,3 C、3,12 (2)while(*p!=’\\0’)与( A )功能相同 A、while(*p!=0) B、while(*p=0) C、while(*p<>’\\0’) D、while(*p!0) 6、读下列程序: #include #include void fun(char *w,int n) { char t,*s1,*s2; s1=w; s2=s1+n-1; while(s1 void main() { char p[20] = \ fun(p,strlen(p)); puts(p); } - 37 - D、12,3 四川省计算机二级考试培训讲义(内部资料) (1)输出结果是(B ) A、7654321 B、1711717 C、1714171 D、1234567 (2)若把程序中的语句:while(s1 #define X 5 #define Y X+1 #define Z Y*X/2 void main() { int a; a=Y; printf(\ printf(\} A、 7 6 B、12 6 C、12 5 D、7 5 8、读下列程序: #include void sub(int *s,int x) { static int t=0; x+=s[t]; t++; } void main() { int a[]={3,8,4,2},i; int x=0; for(i=0;i<4;i++) { sub(a,x); printf(\ } } (1)程序的执行结果为( C ) A、3 8 4 2 B、3 11 15 17 C、0 0 0 0 D、2 4 8 3 (2)若把main第二行的语句“int x;”删除,运行结果为( A、3 8 4 2 B、3 11 15 17 C、0 0 0 0 D、2 4 8 3 9、读下列程序分析运行结果 #include - 38 - C )