2009年4月,全国计算机等级二级C考试你准备好了没?考计算机等级二级C语言考试的朋友可以多关注一下考试大为大家整理的2009年4月,全国计算机等级二级C语言考前练习!希望对大家的备考有好的帮助!考试大祝各位考个好成绩!大家每天都来练习哦!不断的加强巩固!每天都有更新哦!考试大提示:每十道题的难度不同!继续上一篇... 1.分析以下程序,执行后的输出结果是() int f1(int x,int y) {return x >y? x:y; } int f2(int x,int y) {return x >y? y:x; } main() {int a=4,b=3,c=5,d,e,f; d=f1(a,b);d=f1(d,c); e=f2(a,b);e=f2(e,c); f=a+b+c-d-e;printf( "%d,%d,%d",d,f,e); } A)3,4,5 B)5,3,4 C)5,4,3 D)3,5,4
2.分析下面函数 swap(int *p1,*p2) { int *p; *p=*p1;*p1=*p2;*p2=*p; } 则该程序功能为() A)交换*p1和*p2的值 B)正确,考试大提示:但无法改变*p1和*p2的值 C)交换*p1和*p2的地址 D)可能造成系统故障,因为使用了空指针
3.有以下程序 main() { int n[3],i,j; for(i=0;i <3;i++)n[i]=0; for(i=0;i <2;i++) for(j=0;j <2;j++)n[j]=n[i]+1; printf( "%d\n",n[1]); } 程序运行后的输出结果是() A)2 B)1 C)0 D)3
4.有如下程序段: int a=14,b=15,x; char c=′A′; x=(a &&b)&&(c<′B′); 执行该程序段后,x的值为() A)1 B)0 C)false D)true
5.有以下程序 # include struct NODE {int num;struct NODE*next;} main() {struct NODE*p,*q,*r; p=(struct NODE*)malloc(sizeof(struct NODE)); q=(struct NODE*)malloc(sizeof(struct NODE)); r=(struct NODE*)malloc(sizeof(struct NODE)); p- >num=10;q->num=20;r->num=30; p- >next=q;q->next=r; printf( "%d\n",p->num+q->next->num); } 程序运行后的输出结果是() A)10 B)20 C)30 D)40
6.设有如下定义: structsk { inta; float b; } data; int *p; 若要使p指向data中的a域,正确的赋值语句是() A)p= &a; B)p=data.a; C)p= &data.a; D)*p=data.a;
7.若有如下说明: unions {char a[9]; intb;float c; } t; 则下列叙述正确的是() A)共用体变量t不能作为函数的参数 B)通过引用共用体变量名t可以得到成员的值 C)共用体变量t的地址和它的各成员的地址不同 D)共用体变量t所占的内存长度等于它的各成员所占的内存长度之和
8.若定义了以下函数: void sub(......) {...... *t=(int*)malloc(10*sizeof(int)); ......} 其中t是该函数的形参,要求通过t把动态分配存储单元的地址传回主调函数,则形参t的正确定义应该是() A)int *t B)int **t C)long **t D)long *t
9.以下对枚举类型名的定义中正确的是() A)enum a={one,two,three}; B)enum a {one=9,two=-1,three=200}; C)enum a={ "one","two","four"}; D)enum a { "nine","two","three"};
10.C语言规定如果调用fputc函数输出成功,则返回值是() A)1 B)输出的字符 C)0 D)true
答案:1.C 2.D 3.D 4.A 5.D 6.C 7.A 8.B 9.B 10.B
|