资源描述:
《C语言易错选择题错题集.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1:设有定义:charp[]={'1','2','3'},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是( )。A)sizeof(p)B)sizeof(char)C)sizeof(*q)D)sizeof(p[0])参考答案:A【解析】根据题目中的定义可以知道sizeof(p),计算的是数组p中所有元素所占用的字节数,而不是char型数据所占字节数。2:面向对象方法中,继承是指( )。A)一组对象所具有的相似性质B)一个对象具有另一个对象的性质C)各对象之间的共同性质D)类之间共享属性和操作的机制参考答案:D【解析】继承是面向对象的方法的一
2、个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。3:若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是A)x+1=yB)++x,y=x--C)x=x+10=x+yD)double(x)/10参考答案:B【解析】A选项中不能将变量y赋给表达式,C选项中错误与A选项一样,D选项中强制类型转换表达式应写成(double)x/10。4:有以下程序#includemain(){FILE*pf;char*s1="China",
3、*s2="Beijing";pf=fopen("abc.dat","wb+");fwrite(s2,7,1,pf);rewind(pf);/*文件位置指针回到文件开头*/fwrite(s1,5,1,pf);fclose(pf);}以上程序执行后abc.dat文件的内容是A)ChinaB)ChinangC)ChinaBeijingD)BeijingChina参考答案:B【解析】本题考查文件操作函数,fwrite和rewind函数,题目中先是将s2字符串写入adc.dat中,然后将写指针回到文件开头,然后写入s1字符串,那么s1字符串就将前五个字符覆盖,所以最终结
4、果为Chinang,选项B正确。5:有以下程序#includevoidf(int*q){inti=0;for(;i<5;i++)(*q)++;}main(){inta[5]={1,2,3,4,5},i;f(a);for(i=0;i<5;i++)printf("%d,",a[i]);}程序运行后的输出结果是A)6,2,3,4,5,B)2,2,3,4,5,C)1,2,3,4,5,D)2,3,4,5,6,参考答案:A【解析】本题考查的是函数的地址调用,将数组名作为数组首地址进行传递,然后取数据元素值进行加1运算。因此A选项正确。6有以下结构体说明、
5、变量定义和赋值语句structSTD{charname[10];intage;charsex;}s[5],*ps;ps=&s[0];则以下scanf函数调用语句有错误的是A)scanf("%s",s[0].name);B)scanf("%d",&s[0].age);C)scanf("%c",&(ps->sex));D)scanf("%d",ps->age);参考答案:D【解析】本题考查结构体的相关知识,题目中需要输入一个变量,scanf要求参数为指针,而D选项中ps->age为一个变量,不是指针,所以错误。6:若有以下语句typedefstructS{intg
6、;charh;}T;以下叙述中正确的是A)可用S定义结构体变量B)可用T定义结构体变量C)S是struct类型的变量D)T是structS类型的变量参考答案:B【解析】本题考查typedef重新声明一种结构体类型,那么T为结构体类型,而不是结构体变量,所以B选项正确。7:有以下程序#include#includestructA{inta;charb[10];doublec;};structAf(structAt);main(){structAa={1001,"ZhangDa",1098.0};a=f(a);printf("
7、%d,%s,%6.1f",a.a,a.b,a.c);}structAf(structAt){t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;returnt;}程序运行后的输出结果是A)1002,ZhangDa,1202.0B)1002,ChangRong,1202.0C)1001,ChangRong,1098.0D)1001,ZhangDa,1098.0参考答案:B【解析】本题考查结构体变量的引用以及作为函数参数,题目虽然看似复杂,其实比较容易,f函数的参数是结构体变量,然后对参数重新赋值并返回,所以该题目的答案为B
8、选项。8:有以下程序#include<