您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言程序设计考前复习资料
1二级C语言笔试试卷(2009第一次)(共100分)注意事项:1.一、二题为客观题,请将答案涂在机读答题卡上2.三、四、五、六题为主观题,请将答案做在答题纸上一.单项选择题。(每小题1分,共20分)1.一个C程序的执行是从(A)。(A)本程序的main函数开始,到main函数结束(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束(C)本程序的main函数开始,到本程序文件的最后一个函数结束(D)本程序文件的第一个函数开始,到本程序main函数结束2.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是(D)。(A)x&&y;(B)x=y;(C)x||y+z&&y–z;(D)!((xy)&&!z||1);3.以下有关宏替换的叙述不正确的是(D)。(A)宏替换不占用运行时间(B)宏名无类型(C)宏替换只是字符串替换;(D)宏替换是在运行时进行的4.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是(C)。(A)一个整型变量,代表要读入的数据项总数(B)一个文件指针,指向要读的文件(C)一个指针,指向要读入数据的存放地址(D)一个存储区,存放要读的数据项5.在位运算中,操作数每左移一位,其结果相当于(A)。(A)操作数乘以2(B)操作数除以2(C)操作数除以4(D)操作数乘以46.数字字符0的ASCII值为48,若有以下程序#includestdio.hvoidmain(){chara='1',b='2';printf(%c,,b++);printf(%d\n,b-a);}程序运行后的输出结果是(C)。A)3,2B)50,2C)2,2D)2,507.有以下程序#includestdio.hvoidmain(){intm=12,n=34;2printf(%d%d,m++,++n);printf(%d%d\n,n++,++m);}程序运行后的输出结果是(C)。A)12353514B)12353513C)12343514D)123435138.已有定义intk=2;int*ptr1,*ptr2,且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是(B)A)k=*ptr1+*ptr2;B)ptr2=k;C)ptr1=ptr2;D)k=*ptr1*(*ptr2);9若有定义inti=2,a[10],*p=&a[i];则与*p++等价的是(A)。A)a[i++]B)a[i]++C)a[i]D)a[++i]10.有定义inta=3,b=4,c=5;执行完表达式a++--b&&b++c--&&++c后,a,b,c的值分别为(B)。A)345B)435C)444D)44511.已知:intx=1,y=2,z=0;则执行:z=xy?10:20后,z的值为(B)。A)10B)20C)1D)212.若已定义x和y为double类型,则表达式x=2,y=x+10/4的值是(C)。A)2B)4C)4.0D)4.513.有定义语句:intb;charc[10];,则正确的输入语句是(B)。A)scanf(%d%s,&b,&c);B)scanf(%d%s,&b,c);C)scanf(%d%s,b,c);D)scanf(%d%s,b,&c);14.在一个源程序文件中定义的全局变量,其作用域为(B)。A)定义所处的整个源程序文件B)从定义处开始到本源程序文件结束C)整个主函数D)所处C程序的所有源程序文件中15.在下面C语言的函数说明语句中,正确的是(A)。A)intfun(intx,inty);B)intfun(intx,y);C)intfun(x,y);D)intfun(intx;inty);16.有以下程序#includestdio.hvoidmain(){intm,n,p;scanf(m=%dn=%dp=%d,&m,&n,&p);printf(%d%d%d\n,m,n,p);}3若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是(A)。A)m=123n=456p=789B)m=123n=456p=789C)m=123,n=456,p=789D)12345678917.已知E的ASCII码是69,则执行以下语句的结果是(C)printf(%c,'E'-'8'+'5');A)66B)AC)BD)E18.有定义:char*s=”\t\”Name\\Address\”\n”;,那么strlen(s)等于(B)。A)15B)16C)17D)1819.设有定义:intm=1,n=-1;则执行语句printf(%d\n,(m--&++n));后的输出结果是(B)A)–1B)0C)1D)220.有以下程序#includestdio.hvoidmain(){inta,b,d=25;a=d/10%9;b=a&&(-1);printf(%d,%d\n,a,b);}程序运行后的输出结果是(B)。A)6,1B)2,1C)6,0D)2,0二.基本概念选择填空题(本大题后面有若干备选项,请选择合适的备选项并将其号码填入各小题的空白处。每空2分,共10分)1.函数main(intargc,char*argv[])中argc表示的是______①____。2.在C语言中,没有字符串变量,只有字符变量,字符串都存储在以②为结束符的字符数组中。3.一个函数调用语句为fun((e1,e2,e3),(e4,e5),e6);,其实参个数为__③____。4.为了避免嵌套的if-else语句的二义性,C语言规定else总是与___④____组成配对关系。5.当程序打开一个文件时,系统就要在内存中建立一个与该文件对应的⑤结构体变量,存储该文件的有关信息。①F②B③J④A⑤K备选项:(A)空格(B)'\0'(C)'\n'(D)在其之前未配对的if(E)参数字符串(F)命令行参数的个数(G)6(H)在其之前最近的未配对的if(J)3(K)FILE(L)EOF(M)命令行参数的字符数三.程序填空题。(每空2分,共20分)。41.以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩。请填空。#includestdio.hvoidmain(){floatsum=0.0,ave,a;intn=0;printf(Entermark\n);scanf(%f,&a);while(a=0.0){sum=sum+a;_____①_________;//n++scanf(%f,&a);}ave=sum/n;printf(ave=%f\n,ave);}2.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。#includestdio.hvoidmain(){charstr[]={abcdefg};char*p1,*p2,ch;p1=str;p2=str;while(*p2!='\0')p2++;____②________;//p2--while(p1p2){ch=*p1;*p1=*p2;*p2=ch;____③_____;//p1++p2--;}puts(str);}3.以下程序中,fun函数的功能是求m行4列二维数组每行元素中的最大值。请填空。#includestdio.hintfun(int,int,int(*)[4]);voidmain(){inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},i;for(i=0;i3;i++)printf(%4d,fun(④));//i,4,a5printf(\n);}intfun(intm,intn,inta[][4]){intj,x;x=a[m][0];for(j=0;jn;j++)if(_⑤__)x=a[m][j];//xa[m][j]returnx;}4.下面的程序是用来在数组table中查找x,若数中存在x程序输出数组中第一个等于x的数组元素的下标,否则输出-1。请填空。#includestdio.hinttable[10]={12,34,54,23,45,33,78,87,59,97},x;intlookup(intt[],intkey,intn){intk;for(k=0;kn;k++)if(t[k]==key)⑥;//breakif(⑦)k=-1;//k=nreturnk;}voidmain(){scanf(%d,&x);printf(x_location:%d\n,lookup(table,x,10));}5.下列函数insert实现在一维数组v中插入一个元素x,且要求将该元素插入到下标为i位置,数组原有下标为i及以后的元素都将向后移动一个元素的位置,i=0。如果i大于等于元素的个数,则x插到数组的末尾。原有的元素个数存放在指针n所指向的变量中,插入后元素个数加1。主函数验证了该函的功能。请填空。#includestdio.hvoidinsert(intv[],int*n,intx,inti);voidmain(){inta[20]={1,2,3,4,5,6,7};intkey=11;intn=7,*p=&n;insert(a,p,key,14);for(key=0;key*p;key++)printf(%d,a[key]);putchar('\n');printf(%d\n,n);}6voidinsert(intv[],int*n,intx,inti){intj;if(___⑧____)//i*nfor(j=*n-1;j=i;____⑨____)//j--_____⑩____=v[j];//v[j+1]elsei=*n;v[i]=x;(*n)++;}四.阅读程序题(每小题5分,共30分)1.下面程序的运行结果为:(f=6)#includestdio.hintf(intnum,intrun){staticintfact,i;if(run==0){fact=1;i=1;}fact*=i;if(++i=num)f(num,1);return(fact);}voidmain(){inti=0;printf(f=%d\n,f(3,0));}2.下面程序的运行结果是:(63)#includestdio.hmain(){inta[]={1,3,5,7,9},b[4]={2,4,6,8},*p=a,*q=b;p+=2;q++;*p=(*q)%3+5;*(++q)=*(p--)-3;printf(%d,*(p+1));7printf(%d\n,q[0]);}3.运行程序时输入-6931,则输出结果是:(-1396)#includestdio.hvoidprintopp(longintn){inti=0;if(n==0)return;elsewhile(n){if(n0||i==0)printf(%1d,n%10);elseprintf(%ld,-n%10);i++;n/=10;}}voidmain(){longintn;scanf(%ld,&n);printopp(n);printf(\n);}4.下面程序的运行结果是:(34)#includestdio.h#defineN2#defineY(n)((N+1)*n)main(){intz;z=2*(N+Y(5));printf(%d,z);}5.以下程序的运行结果为(9)#includestdio.hvoidmain(){longfun(intn);8printf(%ld\n,fun(4));}longfun(intn){longs;if(n==1||n==2)s=2;elses=n+fun(n-1);returns;}6.以下程序的运行结果为(4321)#includestdio.hvoidmain(){voidfun(int*x,int*y);inta[]={1,2,3,4},j,x=0;for(j=0;j
本文标题:C语言程序设计考前复习资料
链接地址:https://www.777doc.com/doc-3375570 .html