四川省计算机二级考试培训讲义(内部资料)
int a=-1,b=4,k;
k=(a++<=0)&&(!(b--<=0)); cout<
输出 103
4.关于类概念的描述中,(A)是错误的 A 类就是C语言中的结构体类型
B 类是创建对象的样板
C 类是具有共同行为的若干对象的统一描述体 D 类是抽象数据类型的实现
5.下列程序的运行结果是() #include
Void fu(); fu(); fu(); }. Void fu() {
Static int a=0;
Printf(“a=%d,”,!a? 1:8); }
运行结果 a=1,a=1
6.以下程序中,输出值是() #include
Printf(“%d\\n”,NN); }
输出值 6
7.若有语句:char s1[]=”string1”,s2[8],*s3,*s4=”string2”;则(D)是对库函数strcpy的错误调用 A)strcpy(s1,“string2”);B)strcpy(s4,“string1”); A)strcpy(s3,“string1”);A)strcpy(“string2”,s2);
8.以下(C)为不正确的if语句
A)if(x>y); B)if(x==y) x+=y; C)if(x!=y) x=x*x else x+=1; D)if(x>y) {x++;y++;} 9.关于C++函数参数的描述中,错误的是(D) A 实参个数与形参个数可以不同
B 缺省参数必须放在形参表的最右端
- 24 -
四川省计算机二级考试培训讲义(内部资料)
C用引用变量做形参可以实现地址传递 D 重载函数可以有缺省参数 10.若有如下定义: struct node {
Int data;
struct node *next;
}
且已建立下面的链表结构,指针p,q分别指向图中所示接点,则不能将q所指结点插入到链表末尾的一组语句是( )
A、q->next=NULL;p=p->next;p->next=q; B、p=p->next;q->next=p->next;p->next=q; C、p=p->next;q->next=p;p->next=q;
D、p=(*p).next;(*q).next=(*p).next;(*p).next=q; 二、读程序回答问题
1.以下程序运行的结果为:() #include”stdio.h” #include”string.h” Void fun(char *s,int m) {
Char t,*p1,*p2; P1=s;p2=s+m-1; While(p1 { t=*p1++;*p1=*p2--;*p2=t; } } Main() { Char a[]=”ABCDEFG”; Fun(a,strlen(a)); Puts(a); } 运行结果为 AGAAGAG 2.读下列c程序,选择正确的输出结果 #include - 25 - 四川省计算机二级考试培训讲义(内部资料) #include char t[20]; int i,j; for(i=0;i if(strlen(str[i] strcpy(t,str[i]); strcpy(str[i],str[j]); strcpy(str[j],t); } } main() { char str[][10]={“abc”,”aabcd”,”abed”,”a”,”acdefg”}; int i; fun(str,5); for(i=0;i<5;i++) printf(“-”,strlen(str[i])); //输出6 5 4 3 2 1 printf(“\\n”); for(i=0;i<5;i++) puts(str[i]); //输出acdefg 换行 aabcd 换行 abed 换行 abc 换行 a } 3.以下是一个C++程序,读程序并回答运行结果 #include int temp; while(v!=0) { temp=u%v; u=v; v=temp; } return u; } void main() { int u,v; int t; cout<<”Input two integers:”; - 26 - 四川省计算机二级考试培训讲义(内部资料) cin>>u>>v; t=fun(u,v); cout< 4.以下程序的运行结果是() #include int flag=1;char ch; do{ ch=getchar(); flag=chang(&ch,flag); putchar(ch); }while(ch!=’\\n’); } chang(c,fg); char *c;int fg; { if(*c==’’) return 1; else if(fg &&*c<=’z’&&c>=’a’) *c+=’A’-‘a’; return 0; } 运行结果:输入This is a book! int a=1,b=2,c=3; a++;c+=b; { int b=4,c; c=2*b; a+=c; printf(“%d,%d,%d”,a,b,c); } printf(“%d,%d,%d\\n”,a,b,c); } 运行结果 10,4,8,10,2,5 6.以下程序的输出是() #include - 27 - 四川省计算机二级考试培训讲义(内部资料) { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: a++;break; case 1: b++;break; } case 2: a++;b++;break; case 3; a++;b++; } printf(“a=%d,b=%d\\n”,a,b); } 程序输出结果 a=2,b=1 7.若有以下程序段,该程序功能是( ) int a[]={4,0,2,3,1},k,j,t; for(j=I;j<5;j++) { t=a[j]; k=j-1; while(k>=0&&t>a[k]) {a[k+1]=a[k];k--;} a[k+1]=t; } 程序功能:对数组a进行插入排序(降序);插入排序是数组前面i-1个数已经排好序,将后面第i个插入到前面排好序的数列合适位置去 8.程序运行的结果 #include int m[3][3]={{1},{2},{3}}; int n[3][3]={1,2,3}; main() { printf(“%d\\n”,m[1][0]+n[0][0]); //3 printf(“%d\\n”,m[0][1]+n[1][0]); //0 } 9.程序运行结果() #include - 28 -