资源描述:
《C语言易错复习题课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言作业易错题讲解1题目:设inta=12,则执行完语句a+=a-=a*a;后,a的值是:___解析:a+=a-=a*a;a=a+(a-=a*a);a=a+(a=a-(a*a));答案:-264习题一2题目:下面程序的输出是:解析:‘/’:取整;‘%’:取余答案:3习题二3题目:你能找到这个程序的错误吗?解析:宏定义后面不要加’;’,有变量的一定要加上括号。建议少用宏定义(除条件编译外),可用const变量代替。答案:去掉3.1415926后面的’;’习题三4题目:设有程序段”intk=10;while(k=0)k=k-1;”,请问循环体语句执行几次?解析:由于赋值语句k=0的
2、执行结果是0,所以while语句的条件始终为假,故无法进入循环体,循环体语句一次也不执行。答案:循环体语句一次也不执行类似的题:a、循环语句”for(inti=0,j=10;i=j=10;i++,j--)”的循环次数?b、循环语句”while(inti=0;)i--;”的循环次数是?习题四5题目:设有以下字符串定义,chars1[]={‘S’,’t’,’r’,’i’,’n’,’g’};chars2[]=”String”;则s1和s2:长度?内容?解析:以‘ ’结尾的字符数组是字符串答案:长度不同,但内容相同。习题五6题目:设已定义“charstr[6]={‘a’,’b’,’
3、’,’c’,’d’,’ ’};”,执行语句“printf(“%s”,str)”结果为解析:以‘ ’结尾,从第一个字符到‘ ’的前一个字符组成的串就是字符串的内容。答案:ab习题六7类似题(1)voidmain(){chara[]=”abcd”,b[]=”123”;strcpy(a,b);printf(“%s”,a);}结果是:123(2)voidmain(){chara[]=”123”,b[]=”abcd”;if(a>b)printf(“%s”,a);elseprintf(“%s”,b);}结果是:1238对于C中对字符数组赋值一共3种:定义的时候直接赋值.1:
4、chara[20]="HelloWorld!";2:chara[20];strcpy(a,"HelloWorld!");3:chara[20]={'H','e','l','l','o','','W','o','r','l','d','!'};常见错误赋值方式(第八章选择题5)1:chara[20];a="HelloWorld!";补充9题目:若已有以下结构体定义,则值为2的表达式是___structcmplx{intx;inty;}c[]={1,2,3,4};解析:c[0].x=1;c[0].y=2;c[1].x=3;c[1].y=4;答案:c[0].y习题七10已知有数组定义“
5、inta[][3]={1,2,3,4,5,6,7,8,9};”,则a[1][2]的值是___6____解析:a[0][0]=1,a[0][1]=2,a[0][2]=3;a[1][0]=4,a[1][1]=5,a[1][2]=6;a[2][0]=7,a[2][1]=8,a[2][2]=9;补充11题目:设已经定义“unionu{chara;intb;}vu;”在VC中存储char型数据需要1个字节,存储int型数据需要4个字节,则存储变量vu需要几个字节?解析:一种使不同类型数据类型成员之间共享存储空间的方法,同时可以实现不同类型数据成员之间的自动类型转换。答案:4习题八12设有如
6、下程序段,则vu.a的值为?unionu{inta;intb;floatc;}vu;vu.a=1;vu.b=2;vu.c=3;答案:既不是1又不是2和3,而是1077936128,补充为什么?13题目:右边程序输出的结果是:解析:对于i++,系统会有个临时变量存储i自加1后的值,而对于++j,不需要临时变量。i++和++i的效率:内置类型没有区别,用户自定义类型重载后置++和前置++,前置比后置效率高.答案:9、16、6、6习题九14