2007年第2次C语言等级考试_第1页
2007年第2次C语言等级考试_第2页
2007年第2次C语言等级考试_第3页
2007年第2次C语言等级考试_第4页
2007年第2次C语言等级考试_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、全国高等学校非计算机专业计算机等级考试二级C语言笔试试题(A卷)考试时间:2007年11月17日上午9: 0011: 00考生必读:1. 考生应严格遵守考场规则。考生拿到试卷后应首先将自己的所在学校名 称、考场地点、性命、准考证号填涂在答题纸和答题卡规定的位置上。2. 考生得到监考人员指令后方可作答。3. 考生在答题前务必认真阅读题目要求,按要求作答。客观题的答案(选 择题和判断题)必须用2B铅笔填涂在答题卡的相应位置上;主观题的答案必须 用蓝、黑色钢笔或圆珠笔填写在答题纸的相应位置上;且必须注明试卷类型( A 卷或B卷)。否则答案无效。4. 注意字迹清楚,保持卷面整洁。5. 考试时间为120

2、分钟。考试结束时,把试题册、答题卡、答题纸放在桌 上,不得带走。等监考人员收齐点清后,考生才可离开考场。 本试卷版权所有,任何单位或个人不得复制、出版和存留,违者必究重庆市教育委员会2007 年11月二级C语言笔试试卷(A)(共100分)注意事项:1. 一题为客观题,请将答案涂在机读答题卡上2. 请将二、三、四、五题的答案做在答题纸上一.单项选择题。(每小题1分,共20分)1. 一个C程序的执行是从()。(A )本程序的main函数开始(B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束(C) 本程序的main函数开始,到本程序文件的最后一个函数结束(D) 本程序文件的第一个函数

3、开始,到本程序main函数结束2.设有C语句:int x=3, y=4,z=5;,则下面表达式中值为0的是()。(A)x&y(B)x=y(C) x|y+z& y-z(D)!(xy )& !z|1)3.以下有关宏替换的叙述不正确的是()。(A) 宏替换不占用运行时间(B)宏名无类型(C)宏替换只是字符串替换;(D)宏替换是在运行时进行的4.在标准库函数的调用形式“ fread(buffer,size,cou nt,fp);”中,参数buffer代表的是( )。(A) 一个整型变量,代表要读入的数据总数(B) 一个文件指针,指向要读的文件(C) 一个指针,指向读入数据存放的首地址(D) 一个存储区

4、,存放要读的数据项5. 位运算中,操作数每左移一位,在没有溢出的情况下其结果相当于(A)林作数乘以2(B)操作数除以2(C)操作数除以4(D)操作数乘以46. 下面程序运行后,变量m的值为()。#in cludevoid mai n() int m, n, k;m=( n=4)+(k=10-7);printf(” m=%dn”,m);(A) 4(B) 3(C) 7(D)147. 下面程序运行结果(或出现的情况)是()。#in cludevoid mai n() int x=3,y=0,z=0;if (x=y+z)printf(” * ” );elseprintf( ” #n ” );(A) 有

5、语法错误不能通过编译(B) 输出:*(C) 可以通过编译,但不能通过连接,因而不能运行(D) 输出:#8. 已有定义int k=2; int *ptrl, *ptr2, 且ptrl和ptr2均已指向变量 k,下面不能正确执行的赋 值语句是( )O(A) k =*ptr1+*ptr2;(B) ptr2 = k;(C) ptr1=ptr2;(D) k = *ptr1*(*ptr2);9. 若有已经建好的链表结构如下,指针平p、q分别指向图示节点(b节点为插入c节点前的链表末尾);不能实现将q所指节点插入到链表末尾的一组语句是(A) q next = NULL; p= p next; p next=

6、q;(B) p=p next;q next=p next; p next=q;(C) b= p next;q next=p; p next=q;(D) p= (*p).next;(*q).next = (*p).next; (*p).next = q;10. 有定义int a=3,b=4,c=5;执行完表达式()(A) 34 511. 下列程序的执行结果是(#in cludea+-b&b+c-&+c(B)435)。(C) 4后,a,b,c的值分别为(D) 445union ssshort int i; char c2;void union ss x ; x.c0=10; x.c1=1; pri

7、ntf( %d ,x.i);(A) 11main ()(B)266(C) 26512.若有C语言int i = 10;,则执行下面程序段后变量i的值是(D)138switch (i) case9:i+=1;case10:case11:i-=1;default:i+=1;(A) |10(B) 11(C) 12)o(D) 913. 在下列选项中,不正确的赋值语句是(A) t/=5;(B) n1=(n2=(n3=0);(C) k=i= = j;14. 下面C程序运行后变量x的值是()o(D) a=b+c=1 ;#in clude void mai n() int a,b,c,x; a=b=c=0;

8、x=35; if(!a)x-;else if(b) if (c)x=3;elsex=4;printf (” %dn ,x);(A) 34(B) 4(C) 35(D) 315. 设有以下宏定义:#define N 3#define Y(n) (N+1* n)则执行语句:z=2 *(N*Y(5+1);后,z的值为()(A) 30(B) 72(C) 48(D) 5416. 在以下的四个运算符中,优先级最低的运算符是()。(A)=(B) /(C) !=(D) &17. 已知E的ASCII码是69,则执行下面C语句的结果是()。printf( %c , D 8+5);(A) 66(B) A(C) B(D

9、) E18. 设有以下语句:int a=3, b=6,c; c=aAb2;执行后c的低8位二进制值是()。(A) 00011011(B) 00010100(C) 00011100(D) 0001100019. 在C语言中,以下叙述错误的是()。(A)函数被调用时,系统才为形参分配内存(B )实参和对应形参的数据类型必须一致(C) |实参可以是变量、常量或表达式(D )形参可以是变量、常量或表达式20. 字符串常量ab cnt012xa1*2 在内存中所占的存储空间节数是()。(A11(B) 13(C) 15(D) 18二基本概念选择填空题(本大题后面有若干备选项,请选择合适的备选项,并讲其号码

10、 填入各小题的空白处。每空2分,共10分)1. 函数首部 int main(int argc, char *argv)中 argc表示的是 _E2. C语言能处理的文件类型可以是文本文件和M 。3. 下面语句定义了共用体(联合体)变量a,则a占用G个字节。union data short int i ;char c ; double d;a;4. 为了避免嵌套的if-else语句的二义性,C语言规定else总是与H 组成配对关系。5. 宏定义中的宏名不能包含_L备选项:(A)空格(B)二进制文件(C)数字(D)在其之前未配对的if(日参数字符串(F)命令行参数的个 数(G) 11(H)在其之前

11、最近的未配对的if(J)8(K)在定义该函数时所指 定的数据类型(L)下划线(M程序文件三.程序填空题(每空 2分,共20分)1. 下面程序的功能是:从键盘上输入若干个学生的成绩(用负数结束输入过程),统计计算出平均成绩;请填空完成程序。#in cludevoid mai n() float sum=0.0,ave,a;int n=0;printf( E nter markn);scanf( %f,&a );while(a=0.0) sum=sum+a;n+ ; scanf( %f,& a );ave=su m/n;printf( ave=%fn ,ave);2. 下面程序的功能是将一个字符串

12、str的内容颠倒并输出,请填空完成程序。#in cludevoid mai n() char str= abcdefg ;char *p1,*p2,ch;p1= str;p2=str;while(*p2!=z 0 z )p2+ ;while(p1p2) ch=*p1,*p 1=*p2,*p2=ch; :p2-;puts(str);3. 下面程序从终端输入一行字符串存入字符数组,然后输出;请填空完成程序。#in cludevoid mai n() char str80,*sp;int n;for(n=0; n 80; n+) str n=gets()if(strn=/ n / )break;st

13、rn=/ 0 / ;sp=str;while(*sp) putchar( str【80】);4. 下面函数fun的功能是比较两个字符串的大小,若两字符串相同则返回两个字符串中第一个不相同字符之差;请填空完成函数。#in cludeint fun( char *s,char *t)while(*t+=*s+ & *t!=/ 0 / & *s!= / 0 / )5return(strcmp(str1 , str2 );void mai n() char str180,str280;gets(str1);gets(str2);printf( % dn fun(str1,str2);5. 下面程序的功

14、能是统计字符串中大小写字母的个数,请填空完成程序。#in clude#defi ne IA(x)void mai n() char str80,*s,ch;int coun t=0;gets(str);s=str;while(*s) ch=*s+;if(IA(ch)coun t+;printf( the sum is %dn ,count);0值,否则返回i大于等于元素6. 下面函数在一维数组v中将x插入到下标为i (i=0 )的元素前,如果n所指向的的个数,则x添加到v数组原数据的末尾。V数组原有元素个数保存在指针 变量中,插入后元素个数加1;请填空完成程序。#in cludevoid in

15、 sli ne(double,i nt *n, double x,i nt ,i) int j;if()for(j=* n-1;j-)=vjelsei=* n;vi=x;(* n)+;void mai n() double s10=11,23,65,78,x;int m=4,*p=&m,k;x=99;scanf( %d ,&k);in sli ne(s,p,x,k);for(k=0;km;k+)printf( %f ,sk);putchar( n );四.阅读程序题(每小题 5分,共30分)1. 写出下面程序的运行结果。#in cludeint f(int nu m,i nt run) str

16、tic int fact,i;if(run=O) fact=1;i=1;fact *=i;if(+i=num)f(n um,1);return(fact);void mai n() int i=0;printf( f=%dn ,f(3,0);2. 写出下面程序的运行结果。#in cludevoid mai n() int a,b;for(a=1,b=1;a=20)break;if(b%3=1)b+=3;continue;b-=5;printf( %d,%dn ,a,b);3. 写出下面程序的运行结果。#includevoid main() char ch25= 1234int j,k,s=0;

17、for(k=0;k2;k+)pk=chk;for(k=0;k s=10*s+pkj- printf( s=%dn ,s);, 5678 ,*p2;0 &pkj= 9;j+=2) 0;4.写出下面程序在输入数据为:a4BZ!CR(CR:表示按Enter键)时的运行结果。#includevoid main() char ps80,*str; char c; gets(ps); str=ps; while(c=*str)!= if(c= c=c+4;if(c0 )az & c= / A & c=Zz &c/ z / )Z)c=c-26;*str=c;str+;printf(%sn,ps);5. 写出下面程序的运行结果。#includevoid main() long fun(int n);printf( %ldn ,fun(4);long fun (i nt n) long s;if(n=1 II n=2)s=2;elses=n+fun(n-1);return s;6.写出下面程序的运行结果。#in cludevoid mai n() void fun (i nt *x,i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论