C语言易错选择题错题集

上传人:m**** 文档编号:503608044 上传时间:2022-10-19 格式:DOC 页数:8 大小:41.51KB
返回 下载 相关 举报
C语言易错选择题错题集_第1页
第1页 / 共8页
C语言易错选择题错题集_第2页
第2页 / 共8页
C语言易错选择题错题集_第3页
第3页 / 共8页
C语言易错选择题错题集_第4页
第4页 / 共8页
C语言易错选择题错题集_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《C语言易错选择题错题集》由会员分享,可在线阅读,更多相关《C语言易错选择题错题集(8页珍藏版)》请在金锄头文库上搜索。

1、1:设有定义:char p1, 2, 3,*qp; ,以下不能计算出一个char型数据所占字节数的表达式是()。A) sizeof(p)B) sizeof(char)C) sizeof(*q)D) sizeof(p0) 参考答案: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/104:有以下程序 #include main() FILE *pf; char *s1=China, *s2=Beijing; pf=fopen(abc.dat,wb+); fwrit

3、e(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字符串就将前五个字符覆盖,所以最终结果为Chinang,选项B正确。5:有以下程序 #include void f( int *q ) int

4、 i=0; for ( ;i5; i+) (*q)+; main() int a5 =1,2,3,4,5, i; f(a); for (i=0;isex);D) scanf(%d,ps-age); 参考答案:D【解析】本题考查结构体的相关知识,题目中需要输入一个变量,scanf要求参数为指针,而D选项中ps-age为一个变量,不是指针,所以错误。6:若有以下语句 typedef struct S int g; char h; T;以下叙述中正确的是A) 可用S定义结构体变量B) 可用T定义结构体变量C) S是struct 类型的变量D) T是struct S类型的变量 参考答案:B【解析】本题

5、考查typedef重新声明一种结构体类型,那么T为结构体类型,而不是结构体变量,所以B选项正确。7:有以下程序#include #include struct A int a; char b10; double c;struct A f(struct A t);main() struct A a=1001,ZhangDa,1098.0; a=f(a); printf(%d,%s,%6.1fn,a.a,a.b,a.c);struct A f(struct A t) t.a=1002; strcpy(t.b,ChangRong); t.c=1202.0; return t; 程序运行后的输出结果是

6、A) 1002,ZhangDa,1202.0B) 1002,ChangRong,1202.0C) 1001,ChangRong,1098.0D) 1001,ZhangDa,1098.0 参考答案:B【解析】本题考查结构体变量的引用以及作为函数参数,题目虽然看似复杂,其实比较容易,f函数的参数是结构体变量,然后对参数重新赋值并返回,所以该题目的答案为B选项。8:有以下程序 #include void fun(int *s, int n1, int n2) int i, j, t; i=n1; j=n2; while( ij ) t=si; si=sj; sj=t; i+; j-; main()

7、int a10=1,2,3,4,5,6,7,8,9,0, k; fun(a,0,3); fun(a,4,9); fun(a,0,9); for(k=0;kxB) pt-xC) *pt-y D) (pt+)-x 参考答案:A【解析】本题考查结构体数组初始化以及结构体变量的引用,题目中定义了一个结构体数组c并初始化,指针pt指向c的第一个元素,那么pt-x为10,+pt-x为11,*pt-y为1,(pt+)-x为20,所以答案为A。10:有以下程序 #include struct S int n; int a20; ; void f(int *a, int n) int i; for (i=0;

8、in-1; i+) ai+=i; main() int i; struct S s=10, 2,3,1,6,8,7,5,4,10,9; f(s.a, s.n); for (i=0; is.n; i+) printf(%d, s.ai); 程序运行后的输出结果是A) 2,3,1,6,8,7,5,4,10,9,B) 3,4,2,7,9,8,6,5,11,10,C) 2,4,3,9,12,12,11,11,18,9,D) 1,2,3,6,8,7,5,4,10,9, 参考答案:C【解析】题目中定义了一个结构体类型S,然后定义了一个结构体变量s并初始化,执行f函数后,将s中元素a的每个元素都加上i,这里

9、需要主要,最后一个元素没有加i,所以最终答案为C选项。11:以下结构体类型说明和变量定义中正确的是A) struct REC ; int n; char c; ;REC t1,t2;B) typedef struct int n; char c; REC;REC t1,t2;C) typedef struct REC; int n=0; char c=A; t1,t2;D) struct int n; char c; REC;REC t1,t2; 参考答案:B【解析】本题考查结构体的相关知识,选项A中struct REC后面不能有分号,C选项中typedef struct REC的后面也不能有分号,选项D中REC已经是结构体变量,不能当做结构体类型来使用。12:设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp) 的返回值为A) 0B) 0C) 非0值D) NULL 参考答案:C【解析】本题考查文件的定位,feof函数的用法是从输入流读取数据,如果到达文件末尾(遇文件结束符),eof函数值为非零值,否则为0,所以选项C正确。13:有以下程序#include main() int a=1,b=2,c=3,d=0; if (a=1 & b+=2)if (b!=2|c-!=3)printf(%d,%d,%dn,a,b,c); else pr

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号