C语言期末试题.pdf

所需积分/C币:10 2019-08-19 20:05:42 348KB PDF
13
收藏 收藏
举报

C语言程序设计期末试题及知识点总结。
(2,3,4)(整个是赋值表达式)这个时候z的值为4。(有点难度哦!) =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"是字符串占两个字节(含有一个结束符号 0’的ASG||数值表示为48,'a'的ASC数值是97,"A'的ASCⅣ数值是65 一般考试表示单个字符错误的形式:'65"1 字符是可以进行算术运算的,记住:"0-0=48 大写字母和小写字母转换的方法:"A"+32='a'相互之间一般是相差32。 2)转义宇符 转义字符分为一般转义字符、八进制转义字符、十六进制转义字符。 一般转义字符:背诵\0、\n、\ 八进制转义字符:“\141′是合法的,前导的0是不能写的。 十六进制转义字符:’\x6d’才是合法的,前导的0不能写,并且x是小写。 3、字符型和整数是近亲:两个具有很大的相似之处 char a 65 pr intf(“‰c”,a);得到的输出结果:a printf(“%d”,A);得到的输出鲒果:65 第九章、位运算 1)位运算的考查:会有一到二题考试题目。 总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制 再变成十进制)。 例1: char a=6,b b=a<2;这种题目的计算是先要把a的十进制6化成二进制,再做位运算 例2:一定要记住,异或的位运算符号”^”。0异或1得到1。 0异或0得到0。两个女的生不出来。 考试记忆方法:一男(1)一女(0)才可以生个小孩(1)。 例3:在没有舍去数据的时候,<左移一位表示乘以2;》右移一位表示除以2。 第二章 第一节:数据输出(一)(二) 、使用 printf和 scanf函数时,要在最前面加上# include“ stdio.h” 2、 pr intf可以只有一个参数,也可以有两个参数。(选择题考过一次) 3、 pr intf(“第一部分”,第二部分):把第二部分的变量、表达式、常量以第一部分 的形式展现出来! 4、 pr intf(“a=‰d,b=%d”,12,34)考试重点! 一定要记住是将12和34以第一部分的形式现在在终端也就是黑色的屏幕上。考试核心为: 模一样。在黑色屏幕上面显示为a=1,b=34 pr intf(“a=%d,、nb=‰d”,12,34)那么输出的结果就是:a=12, b=34 5、intx=017 定要弄清楚为什么是这个结果!过程很重要 printf(“%d”,x);15 pr intf ( x);17 pr intf ,x);017 pr intf(“‰x”,x);11 pr intf(“‰x”,x);0x11 6、intx=12,y=34;注意这种题型 char z=a 4 pr intf(“%d”,x,y);一个格式说明,两个输出变量,后面的y不输出 结果为:12 7、一定要背诵的 格式说明 表示内容 格式说明 表示内容 ‰d 整型int 字符chat ‰d 长整型 字符串 int 浮点型 float 八进制 %f double %5o 带前导的八进制 输出一个百分号 oX 十六进制 X 带前导的十六进制 举例说明: printf(“%2d”,123);第二部分有三位,大于指定的两位,原样输出123 printf(“‰5d”,123);第二部分有三位,小于指定的五位,左边补两个空格123 pr intf(“%10f”,1.25);小数要求补足6位的,没有六位的补0,。结果为1.250000 printf(“‰5.3f”,125);小数三位,整个五位,结果为1.250(小数点算一位 pr intf(“%3.1f”,1.25);小数一位,整个三位,结果为1.3(要进行四舍五入) 第三节数据输入 、 scanf(“a=%,b=%d”,&a,跏b)考试超级重点! 定要记住是以第一部分的格式在终端输入数据。考试核心为:一模一样。 在黑色屏幕上面输入的为a=12,b=34才可以把12和34正确给a和b。有一点不同也不 行 2、 scanf(“%‰d,%‰d”,x,y);这种写法绝对错误, scanf的第二个部分一定要是地址! scanf(“%,%”,&x,&y);注意写成这样才可以! 3、特别注意指针在 scanf的考察 例如:intx=2;int*=&x; scanf(“‰d”,x);错误 scanf(“‰d”,p);正确 scanf(“‰d”,&p);错误 scanf(“%d”,*)错误 4、指定输入的长度(考试重点) 终端输入:1234567 scanf(“‰2d%4d%d”,&x,&y,&z);x为12,y为3456,z为7 终端输入:1234567由于1和2中间有空格,所以只有1位给x scanf(“%2d%4d%d”,&x,&y,&z);x为1,y为2345,z为67 5、字符和整型是近亲 int x=97 pr intf(“%d”,x);结果为97 pr intf(“‰c”,x);结果为a 6、输入时候字符和整数的区别(考试超级重点) scanf(“%d”,&x);这个时候输入1,特别注意表示的是整数 scanf(“‰”,&x);这个时候输入1,特别注意表示的是字符“1′Ascl|为整数49。 补充说明 1) scanf函数的格式考察: 注意该函数的第二个部分是&a这样的地址,不是a; scanf(“‰d%d%*d‰d”,&a,&b,&c);跳过输入的第三个数据。 2) putchar, getchar函数的考查 char a= getchar∩是没有参数的,从键盘得到你输入的一个字符给变量a。 putchar(y’)把字符y输出到屏幕中。 3〕如何实现两个变量κ,y中数值的互换(要求背下来) 不可以把x=y,y=x;要用中间变量t=x;x=y;y=t 4)如何实现保留三位小数,第四位四舍五入的程序,(要求背下来) y=(int)(x*100+0.5)/100.0这个保留两位,对第三位四舍五入 y=(int)(x*1000+0.5)/1000.0这个保留三位,对第四位四舍五入 (int)(x*1000.5)/1000.0这个保留四位,对第五位四舍五入 这个有推广的意义,注意ⅹ(int)x这样是把小数部分去掉。 第三章 特别要注意:C语言中是用非0表示逻辑真的,里0表示逻辑假的 C语言有构造类型,没有逻辑类型。 关系运算符号:注意<的写法,=和=的区别!(考试重点) if只管后面一个语句,要管多个,请用大括号 1)关系表达式: a、表达式的数值只能为1(表示为真),或0(表示假)。 如9)8这个关系表达式是真的,所以98这个表达式的数值就是1。 如7<6这个关系表达式是假的,所以76这个表达式的数值就是0 b、考试最容易错的:就是intx-1,y=0,z=2; xyz是真还是假?带入为1<0<2,从数学的角度出发肯定是 错的,但是如果是C语言那么就是正确的!因为要1<0为假得到0,表达式就变成 了0<2那么运算结果就是1,称为了真的了 、等号和赋值的区别!一定记住“=”就是赋值,“==”才是等号。虽然很多人可以 背 诵,但我依然要大家一定好好记住,否则,做错了,我一定会强烈的鄙视你! 2)逻辑表达式 核心:表达式的数值只能为1(表示为真),或0(表示假)。 a)共有&&||!三种逻辑运算符号。 b)!>8&》||优先的级别。 c)注意短路现象。考试比较喜欢考到。详细请见书上例子,一定要会做例1和例2 d)表示x小于0大于10的方法。 0<x<10是不行的(一定记住)。是先计算0<x得到的结果为1或则0;再用0,或1与 10比较得到的总是真(为1)。所以一定要用(0<x)k&(x<10表示比大比10小。 3)if语句 a、else是与最接近的if且没有else的语句匹配 b、交换的程序写法:t=x;x=y;y=t; c、if(a①b)ta;a-b;b=t; if(ab){ta;a=b;b=t;}两个的区别,考试多次考到了! d、单独的if语句:if(a<b)t=a 标准的if语句:if(a<b)min=a; ese min=b: 嵌套的if语句:if(a<b) f(b>c) printf(“ok!”) 多选一的i语句if(a==t) printf(“a”); e se if(b==t) pr intf(“b”) ese if(c==t) printf(“c”); else pritnf(“d”) 通过习题,要熟悉以上几种if语句! 经典考题:结合上面四种讧语句题型做题,答错了,请自行了断!预备,开始! int a=1 b=0 if(!a)b++; else if (a==o) if (a) b+=2 e|seb+=3;请问b的值是多少? 如采没有看懂题目,你千万不要自行了断,这样看得懂不会做的人才会有理由的活着。 正确的是b为3。 int a=1 b=0 f(! ab 是假的不执行 else if (a==0 是假的执行 if(a)b+=2;属于 else if的嵌套if语句,不执行。 else bt=3 if-else-if语句没有一个正确的,就执行else的语句! 4)条件表达式: 表达式1?表达式2:表达式3 4、考试口诀:真前假后 b、注意是当表达式1的数值是非0时,才采用表达式2的数值做为整个运算结果,当表达 式1的数值为0时,就用表达式3的数值做为整个的结果。 、inta=1,b=2,c=3,d=4,e=5; k=a>b?c:d)e?d:e;求k的数值时多少?答案为san 5) switch语句: a)执行的流程一定要弄懂!上课时侯详细的过程讲了,请自己一定弄懂! b)注意有 break和没有 break的差别,书上的两个例子,有 break时候,只要有一个 case匹配了,剩下的都要执行,有 break则是直接跳出了 swich语句。 break在¢语言中就是 分手,一刀两断的意思。 c) switch只可以和 break一起用,不可以和 continue用。 d) switch(x)x:是整型常量,字符型常量,枚举型数据。 case 不可以是变量。 case 2 e) switch是必考题型,请大家一定要完成书上的课后的 switch的习题 第四章 1)三种循环结构: a)for(); while0;d- while(三种。 b)for循环当中必须是两个分号,千万不要忘记。 c)写程序的时候一定要注意,循环一定要有结東的条件,否则成了死循环。 d)do- while0循环的最后一个 while0;的分号一定不能够丢。(当心上机改错),do- while 循环是至少执行一次循环。 2) break和 continue的差别 记忆方法 break:是打破的意思,(破了整个循环)所以看见 break就退出整个一层循环。 cont inue:是继续的意思,(继续循环运算),但是要结柬本次循环,就是循环体內剩下的 语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环。 3)嵌套循环 就是有循环里面还有循环,这种比较复杂,要一层一层一步一步耐心的计算,一般记住两层 是处理二维数组的。 4)whle(c= getchar(O)!=”n)和 while( getchar!=n”)的差别 先看a=3!=2和(a=3)!=2的区别: (!=号的级别高于三号所以第一个先计算3!=2)第一个a的数值是得到的1:第二个a 的数值是3。 考试注意点:括号在这里的重要性 5)每行输出五个的写法 for(i=0;i<=100;i+) pr intf(“%d”,i) if(计+1)‰5=0) pr intf(“\n”);如杲i是从1开始的话,就是if〔i‰5=0) pr intf(“Ⅵn"; 6)如何整除一个数:i‰5=0表示整除5 %2==0表示整除2,同时表示是偶数 7)输入123,输出321逆序输出数据 ti=123 ile(i!≡0) pr intf(“‰”,i%10) i=i/0;} 8)for只管后面一个语句 int i=3 for(i=3;i<6;i+): pr intf(“#”): 请问最终打印几个#号?答案为一个 9)不停的输入,直到输入#停止输入 不停的输入,直到输入S停止输入! while((x= getchar o)!=’#’) while〔(x= getchar()!=’$’) 不停的输入,直到遇到?停止输入! while((x= getchar o)!=’?’)解说:一定要注意这种给出了条件,然后如何去写的 方法 10)for循环和 switch语句的和在一起考题! l1)多次出现的考题 int k=1 int k=1 while (--k: while (k-): printf(“%d”,k) printf(“%d”,k); 结果为0 结果为-1 第五章 1、函数:是具有一定功能的一个程序块,是C语言的基本组成单位。 2、函数不可以嵌套定义。但是可以嵌套调用。 3、函数名缺省返回值类型,默认为int。 4、C语言由函数组成,但有且仅有一个main函数!是程序运行的开始! 5、如何判断B是否为质数:背诵这个程序! void iszhi shu( int a) i for (i=2 i<a/2: i++) if(a%i==0) printf(“不是质数”) pr intf(“ 是质数!”) 6、如何求阶层:回背诵这个程序 int fun (int n) Int p=1: for(i=1; i<=n; i++)p=p*i return p; 7、函数的参数可以是常量,变量,表达式,甚至是函数调用。 add (int x, int y) freturn x+y; main() int sum; sunFadd(ad(7,8),9);请问sum的结果是多少?结果为24 8、函数的参数,返回数值(示意图): mainO int add(intx,inty)被调用画数 y是形式参数 int a=5, b=6,c A函数返回数值是整型 d(、→调用函数 printf("%d"c a,b是实参 return 2就是这个add函数 ▲整个函数得到一个数值就是} 计算后得到的结果, Add函数的返回数值。 就是函数返回给主程 程序是在从上往下顺序执 序的返回数值 行,当碰到了函数ad后, 把a,b的数值穿给调用函 数,程序暂时中断等待返 回数值。当得到了返回数 值后,再顺序的往下执行 9、一定要注意参数之间的传递 实参和形参之间传数值,和传地址的差别。(考试的重点) 传数值的话,形参的变化不会改变实参的变化。 传地址的话,形参的变化就会有可能改变实参的变化 10、西数声明的考查 一定要有:函数名,函数的返回类型,函数的参数类型。不一定要有:形参的名称。 填空题也可能会考到!以下是终极难度的考题。打横线是函数声明怎么写 int *fun (int a[, int b]) }已经知道函数是这样。这个函数的正确的函数声明怎么写? int *fun(int *a, int *b) 这里是函数声明的写法,注意数组就是指 针 int *fun (int a, int b) 这种写法也是正确的 nt*fun(intb口,itc[) 这种写法也是正确的,参数的名称可以随 便写 int*fun(int*,int*)」 这种写法也是正确的,参数的名称可以不写 11、要求掌握的库函数: a、库函数是已经写好了函数,放在仓庳中,我们只需要如何去使用就可以了! b、以下这些库函数经常考到,所以要背诵下来。 bs0、 sarto、 fabs Q、pow0、sin0其中pow(a,b)是重点。2是由pow(2,3)表示 的。 第六章 指针变量的本质是用来放地址,而一般的变量是放数值的 1、int*中阳和p的差别:简单说粆是数值,p是地址! 鄰可以当做变量来用;的作用是取后面地址p里面的数值 p是当作地址来使用。可以用在 scant函数中: scant(“‰d”,p); 2、知艹和(*)+的之间的差别:改错题目中很重要!考试超级重点 *p十是地址会变化。 口诀:取当前值,然后再移动地址! (喇)艹是数值会要变化。口诀:取当前值,然后再使数值增加1 例题:int*,a[]={1,3,5,7,9 请问*+和(*)艹的数值分别为多少? φp艹:这个本身的数值为1。由于是地址会增加一,所以指针指向数值3了。 (*)十十这个本身的数值为1。由于有个艹表示数值会增加,指针不移动,但数值1由 于自加了一次变成了2。 3、二级指针: 卩:一级指针:存放变量的地址。 **q:二级指针:存放一级指针的地址。 常考题目:intx=7 int*p=&x, **q=p: 问你:*为多少?*q为多少?**q为多少? 再问你:**q=8x的写法可以吗? 不可以,因为二级指针只能存放一级指针的地址。 4、三名主义:(考试的重点) 数組名:表示第一个元素的地址。激组名不可以自加,他是地址常量名。(考了很多次) 函数名:表示该函数的入口地址。 字符串常量名:表示第一个字符的地址。 5、移动指针(经常加入到考试中其他题目综合考试 char*s=“ me i kanshu” whie(*s){ pr intf(“‰c”,*s);s艹t; 这个s首先会指向第一个字母m然后通过循环会一次打印出一个字符,s+是地址移动,打 印了一个字母后,就会移动到下一个字母! 6、指针变量两种初始化(一定要看懂 方法一:inta=2,*=&a;(定义的同时初始化) 方法二:inta=2,邾;(定义之后初始化) &a; 7、传数值和传地址(每年必考好多题目) void fun (int a, int b) void fun (int *a, int *b) I int t int t t=a: a=b: b=t Kb:*〓t main o main int x=1 I int x=1, y=3 fun(x, y) fun(&x, &y) pr I intf(“%, ); pr intf(“%d,%d”,x,y); 这个题目答荣是1和3。 这个题目的答案就是3和1a 传数值,fun是用变量接受,所以fun中传地址,fun用指针接受!这个时候fun 的交换不会影响到main中的x和y。 中的交换,就会影响到main中的x和y

...展开详情
试读 14P C语言期末试题.pdf
立即下载
限时抽奖 低至0.43元/次
身份认证后 购VIP低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • 分享精英

关注 私信
上传资源赚钱or赚积分
最新推荐
C语言期末试题.pdf 10积分/C币 立即下载
1/14
C语言期末试题.pdf第1页
C语言期末试题.pdf第2页
C语言期末试题.pdf第3页

试读结束, 可继续读2页

10积分/C币 立即下载