贵州大学2012-2013C语言考试A卷 附 重要考点复习资料

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1贵州大学2012-20103学年第一学期考试试卷AC语言程序设计满分100分,考试时间为120分钟。一、单项选择题(选出一个正确答案,每小题2分,共20分)1.完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为()A.连接、编译B.连接、运行C.编译、运行D.编译、连接2.下列说法正确的是()A.一个c语言程序并非总是从主函数位置开始执行的B.一个c语言程序有且只有一个主函数C.函数可以嵌套定义,不可以嵌套调用D.程序函数的位置不可以任意3.下面是合法C语言标识符的是()A.2A_K;B._M+N;C.–M3;D.AC_2;4.下列格式符中,可以用于控制字符输出的是()A.%dB.%fC.%oD.%c5.设x、y、z和k都是int型变量,则执行表达式x=(y=4,z=16,k=30)后,x的值是()A.4;B.16;C.30;D.50;6.执行语句“for(i=1,s=0;i=5;i++)s+=i;”后,变量s、i的当前值是()A.10,5B.15,6C.15,5D.10,67.若有定义intx,*p;,则以下正确的赋值表达式是()A.p=x;B.p=&x;C.*p=&x;D.*p=*x;8.以下对结构体类型变量的定义中,不正确的是()A.typedefstructaaB.#defineAAstructaa{intn;AA{intn;floatm;floatm;}AA;}stud;AAstud;C.structD.struct{intn;{intn;floatm;floatm;}aa;}stud;structaastud;9.有如下函数调用语句:func(rec1,rec2+rec3,(rec4+rec5));函数调用语句中,含有的实参个数是()A.3B.4C.5D.以上均不是10.对于以下宏定义:#defineSQ(x)x*x#defineQQ(x,y)SQ(x)-SQ(y)宏调用QQ(2*3,2+3)执行后值为()A.25B.11C.43D.以上均不是2二、填空题(每空2分,共20分)1.设inta=5,c=32;floatb=2.5;,表达式b+c/a的值为______2.若x和a均是int型变量,则计算x=(a=4,6*2)后x的值是__。3.设a=3,b=4,c=5。则a+bc&&b==c的值为___。4.有如下程序段:intk=10;while(k=0)k=k-1;则循环体语句执行___次。5.inti=0,s=0;while(in)s+=i++;等价于inti,s;for(______;________;________);6.将p说明为字符数组指针,数组大小为10,应写为______________;7.对于int*p,*q,i=5,j=6;,执行:p=&i;q=p;p=&j;输出结果(*p)=_______,(*q)=________。三、程序阅读题(请写出程序的输出结果。每题6分,共30分)1.#includestdio.hmain(){inti,j,m,n;i=8;j=10;m=++i;n=j++;printf(″%d,%d,%d,%d″,i,j,m,n);}输出结果:2.#includestdio.hmain(){inti;for(i=3;i10;i++){if(i*i/201)break;printf(%d;,i);}printf(\n);}输出结果:3.#includestdio.hintfac(intn){staticintf=1;f=f*n;return(f);}main(){inti;for(i=2;i=5;i++)printf(“%d!=%d\n”,i,fac(i));}输出结果:4.#includestdio.h3main(){chars[]=“ABCD”,*p;for(p=s+1;*p!=’\0’;p++)printf(“%s\n”,p);}输出结果:5.#includestdio.hintf(char*s){intk=0;while(*s)k=k*10+*s++-‘0’;return(k);}main(){inta;a=f(“1234”);printf(“a=%d\n”,a);}输出结果:四、根据下列各编程题题意填空(每空2分,共10分)1、用for循环打印147101316192225,其语句应为:for(i=1;i=9;i++)printf(“%3d”,___);2、程序A如下:intf(intn){if(n=1)returnn;elsereturnf(n-1)+f(n-2);}等价于程序B:intf(intn){_____;t0=0;t1=1;t=n;while(_____){t=______;t0=t1;t1=t;n--;}return______;}五、编程题(第1题8分,第2题12分,共20分)1.求分数序列:2/1,3/2,5/3,8/5,13/8,21/13,„,的前20项之和。2.输入5个字符串,从中找出最大的字符串并输出。要求:用二维字符数组存放这5个字符串,用指针数组元素分别指向这5个字符串,用一个二级指针变量指向这个指针数组。4答案一、单项选择题(每小题2分,共20分)1-5、DBDDC6-10、BBCAC二、填空题(每空2分,共20分)1.8.52.123.04.05.i=0,s=0;in;s+=i++6.char(*p)[10]7.6,5三、程序阅读题(每题6分,共30分)19,11,9,102.3;4;5;6;3.2!=23!=64!=245!=1204BCDCDD51234四、根据下列各编程题题意填空(每空2分,共10分)1.3*i-22.intt0,t1,tn=2t0+t1t五、编程题(第1题8分,第2题12分,共20分)1.#includestdio.hmain(){intn,t;floata=2,b=1,s=0;for(n=1;n=20;n++){s=s+a/b;t=a;a+=b;b=t;}printf(“thetotalis%f\n”,s);}2.#includestdio.hmain(){chara[5][80],*p[5],**q,**max;inti;for(i=0;i5;i++)p[i]=a[i];for(i=0;i5;i++)gets(p[i]);max=&p[0];q=&p[1];for(i=1;i5;i++,q++)if(strcmp(*max,*q)0max=q;puts(*max);}5C语言最重要的知识点总体上必须清楚的:1)程序结构是三种:顺序结构、选择结构(分支结构)、循环结构。2)读程序都要从main()入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。3)计算机的数据在电脑中保存是以二进制的形式.数据存放的位置就是他的地址.4)bit是位是指为0或者1。byte是指字节,一个字节=八个位.概念常考到的:1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。2、definePI3.1415926;这个写法是错误的,一定不能出现分号。3、每个C语言程序中main函数是有且只有一个。4、在函数中不可以再定义函数。5、算法:可以没有输入,但是一定要有输出。6、break可用于循环结构和switch语句。7、逗号运算符的级别最低,赋值的级别倒数第二。第一章C语言的基础知识第一节、对C语言的基础认识1、C语言编写的程序称为源程序,又称为编译单位。2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。3、一个C语言程序有且只有一个main函数,是程序运行的起点。第二节、熟悉vc++1、VC是软件,用来运行写的C语言程序。2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c---.obj---.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。(常考!)第三节、标识符所谓标识符是指常量、变量、语句标号以及用户自定义函数的名称。C语言规定标识符只能由字母、数字、下划线组成,并且只能由字母、下划线开头。一些标识符被赋于特定的含义就叫做保留字(或称为关键字)。1、标识符(必考内容):合法的要求是由字母,数字,下划线组成。有其它元素就错了。并且第一个必须为字母或则是下划线。第一个为数字就错了2、标识符分为关键字、预定义标识符、用户标识符。关键字:不可以作为用户标识符号。maindefinescanfprintf都不6是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。预定义标识符:背诵definescanfprintfinclude。记住预定义标识符可以做为用户标识符。用户标识符:基本上每年都考,详细请见书上习题。第四节:进制的转换十进制转换成二进制、八进制、十六进制。二进制、八进制、十六进制转换成十进制。第五节:整数与实数1)C语言只有八、十、十六进制,没有二进制。但是运行时候,所有的进制都要转换成二进制来进行处理。(考过两次)a、C语言中的八进制规定要以0开头。018的数值是非法的,八进制是没有8的,逢8进1。b、C语言中的十六进制规定要以0x开头。2)小数的合法写法:C语言小数点两边有一个是零的话,可以不用写。1.0在C语言中可写成1.0.1在C语言中可以写成.1。3)实型数据的合法形式:a、2.333e-1就是合法的,且数据是2.333×10-1。b、考试口诀:e前e后必有数,e后必为整数。请结合书上的例子。4)整型一般是4个字节,字符型是1个字节,双精度一般是8个字节:longintx;表示x是长整型。unsignedintx;表示x是无符号整型。第六、七节:算术表达式和赋值表达式核心:表达式一定有数值!1、算术表达式:+,-,*,/,%考试一定要注意:“/”两边都是整型的话,结果就是一个整型。3/2的结果就是1.“/”如果有一边是小数,那么结果就是小数。3/2.0的结果就是1.5“%”符号请一定要注意是余数,考试最容易算成了除号。)%符号两边要求是整数。不是整数就错了。[注意!!!]2、赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。1、intx=y=10:错啦,定义时,不可以连续赋值。2、intx,y;7x=y=10;对滴,定义完成后,可以连续赋值。3、赋值的左边只能是一个变量。4、intx=7.7;对滴,x就是75、floaty=7;对滴,y就是7.03、复合的赋值表达式:inta=2;a*=2+3;运行完成后,a的值是12。一定要注意,首先要在2+3的上面打上括号。变成(2+3)再运算。4、自加表达式:自加、自减表达式:假设a=5,++a(是为6),a++(为5);运行的机理:++a是先把变量的数值加上1,然后把得到的数值放到变量a中,然后再用这个++a表达式的数值为6,而a++是先用该表达式的数值为5,然后再把a的数值加上1为6,再放到变量a中。进行了++a和a++后在下面的程序中再用到a的话都是变量a中的6了。考试口诀:++在前先加后用,++在后先用后加。5、逗号表达式:优先级别最低。表达式的数值逗号最右边的那个表达式的数值。(2,3,4)的表达式的数值就是4。z=(2,3,4)(整个是赋值表达式)这个时候z的值为4。(有点难度哦!)z=2,3,4(整个是逗号表达式)这个时候z的值为2。补充:1、空语句不可以随意执行,会导致逻辑错误。2、注释是最近几年考试的重点,注释不是C语言,不占运行时间,没有分号。不可以嵌套!3、强制类型转换:一定是(int)a不是int(a),注意类型上一定有括号的。注意(int)(a+b)和(int)a+b的区别。前是把a+b转型,后是把a转型再加b。4、三种取整丢小数的情况:1、inta=1.6;2、(int)a;3、1/2;3/2;第八节、字符1)字符数据的合法形

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功