[计算机类试卷]国家二级C语言(结构体、共用体、位运算及文件操作)机试模拟试卷6及答案与解析.doc
《[计算机类试卷]国家二级C语言(结构体、共用体、位运算及文件操作)机试模拟试卷6及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言(结构体、共用体、位运算及文件操作)机试模拟试卷6及答案与解析.doc(19页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言(结构体、共用体、位运算及文件操作)机试模拟试卷 6及答案与解析 一、选择题 1 以下结构体类型说明和变量定义中正确的是 ( A) typedef structint n; char c; REC; REC t1, t2; ( B) struct REC; int n; char c; ; REC t1, t2; ( C) typedef struct REC; int n=0; char c=A; t1, t2; ( D) structint n; char c; )REC; REC t1, t2; 2 若 有定义 typedef char T10; T*a;上述定义中 a的
2、类型与下面选项中完全相同的是 ( A) char(*a)10; ( B) char*a; ( C) char a10; ( D) char*a10; 3 以下叙述中错误的是 ( A) typedef的作用是用一个新的标识符来代表已存在的类型名 ( B) typedef说明的新类型名必须使用大写字母,否则会出编译错误 ( C)可以用 typedef说明的新类型名来定义变量 ( D)用 typedef可以说明一种新的类型名 4 有以下程序 #include stdio h typedef structint b, p; A; void f(A c) *注意: c是结构变量名 * int j; c
3、b+=1; c p+=2; main()i; A a=1, 2; f(a); printf(“ d, d n“, a b, a p); 程序运行后的输出结果是 ( A) 2, 4 ( B) 1, 2 ( C) 1, 4 ( D) 2, 3 5 有以下程序 struct Sint n; int a20; ; voidf(struct S*p) int i, j, t; for(i=0; i p- n-1; i+) for(j=i+1; j p- n; j+) if(p- ai p- aj)t=p- ai; p- ai=p- aj; p- aj=t; main() int i; struct S
4、s=10, 2, 3, 1, 6, 8, 7, 5, 4, 10, 9; f(&s); for(i=0; i s n; i+)printf(“ ( A) 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, ( B) 2, 3, 1, 6, 8, 7, 5, 4, 10, 9, ( C) 10, 9, 8, 7, 6, 1, 2, 3, 4, 5, ( D) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 6 有以下结构体说明、变量定义和赋值语句 struct STDchar name10; int age;char sex; s5, *ps; ps=&s0;则以下 sc
5、anf函数调用语句有错误的是 ( A) scanf(“d“, &s0 age); ( B) scanf(“ c“, &(ps- sex); ( C) scanf(“ s“, s0 name); ( D) scanf(“ d“, ps- age); 7 设有以下语句 typedefstruct TTchar c; int a4; )CIN;则下面叙述中正确的是 ( A) TT是 struct类型的变量 ( B)可以用 TT定义结构体变量 ( C) CIN是 struct TT类型的变量 ( D)可以用 CIN定义结构体变量 8 有下列程序: struct Sint n; int a20; ; v
6、oid flint*a, int n) int i; for(i=0; i n-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; i s n; i+)printf(“ d, “, s ai); 程序运行后的输出结果是 ( A) 3, 4, 2, 7, 9, 8, 6, 5, 11, 10, ( B) 2, 3, 1, 6, 8, 7, 5, 4, 10, 9, ( C) 2, 4, 3, 9, 12, 12, 11, 11, 18, 9, ( D) 1, 2
7、, 3, 6, 8, 7, 5, 4, 10,9, 9 有以下程序 #include stdio h #include string h struct A int a; char b10; double c; ; void f(struct A t); main() struct A a=1001, “ZhangDa“, 1098 0; f(a); printf(“ d, s, 6 1f n“, a a, a b, a c); void f(struct A t) t a=1002; strcpy(t b, “ChangRong“); t c=1202 0; ( A) 1002, ChangR
8、ong, 1202 0 ( B) 1001, ChangRong, 1098 0 ( C) 1001, ZhangDa, 1098 0 ( D) 1002, ZhangDa, 1202 0 10 有以下程序 #include stdio h #include“string h“ typedef structchar name9; char sex; float score2; STU; void f(STU a) STU b=“Zhao“, m, 85 0, 90 0; int i; strcpy(a name, b name); a sex=b sex; for(i=0; i 2; i+)a
9、 scorei=b scorei; 程序的运行结果是 ( A) Qian, m, 85, 90 ( B) Zhao, m, 85, 90 ( C) Zhao, f, 95, 92 ( D) Qian, f, 95, 92 11 若有以下程序 struct stuchar*name, gender; int score; ; main()struct stu a=NULL, m, 290, b; a name=(char*)malloc(10); strcpy(a name, “Zhao“); b=a; b gender=f; b score=350; strcpy(b name, “Qian“
10、); printf(“ s, c, d, “, a name, a gender, a score); printf(“ s, c, d n“, b ( A) Zhao, m, 290, Qian, f, 350 ( B) Qian, f, 350, Qian, f, 350 ( C) Zhao, m, 290, Zhao, e350 ( D) Qian, m, 290, Qian, f, 350 12 若有以下程序 typedef struct stuchar name10, gender; int score; STU; void f(char*p)sgcpy(p, “Qian“); ma
11、in()STU a=“Zhao“, m, 290, b; b=a; f(b name); b gender=f; b score=350; printf(“ s, c, d, “, a name, a gender, a score); printf(“ s, c, d n“, b name, b gender, b sc ( A) Zhao, m, 290, Zhao, m, 290 ( B) Qian, f, 350, Qian, f, 350 ( C) Zhao, m, 290, Qian, f, 350 ( D) Zhao, m, 290, Zhao, f, 350 13 以下叙述中正
12、确的是 ( A)结构体类型中的成分只能是 C语言中预先定义的基本数据类型 ( B)在定义结构体类型时,编译程序就为它分配了内存空间 ( C)结构体类型中各个成分的类型必须是一致的 ( D)一个结构体类型可以由彩个称为成员 (或域 )的成分组成 14 以下叙述中正确的是 ( A)结构体变量的地址不能作为实参传给函数 ( B)结构体数组名不能作为实参传给函数 ( C)即使是同类型的结构体变量,也不能进行整体赋值 ( D)结构体中可以含有指向本结构体的指针成员 15 若已建立以下链表结构,指针 p、 S分别指向如图所示结点则不能将 S所指节点插入剑链表末尾的语句组是 ( A) s- next= 0;
13、 p=p- next; p- next=s; ( B) p=p- next; s- next=p; p- next=s; ( C) p=p- next; s- next=p- next; p- next=s; ( D) p=(*p) next; (*s) next=(*p) next; (*p) next=s; 16 有以下程序 main()unsigned char a=8, c; C=a 3; printf(“ d n“, c); 程序运行后的输出结果是 ( A) 16 ( B) 32 ( C) 1 ( D) 0 17 变量 a中的数据用二进制表示的形式是 01011101,变量 b中的数
14、据用二进制表示的形式是 11110000若要求将 a的高 4位取反,低 4位不变,所要执行的运算是 ( A) ab ( B) a|b ( C) a&b ( D) a 4 18 有以下程序 #include stdio h main() int a=2, b; b=a 2; printf(“ d n“, b); ( A) 4 ( B) 6 ( C) 8 ( D) 2 19 若变量已正确定义,则以下语句的输出结果是 s=32; s=32: printf(“ d“, s); ( A) -1 ( B) 1 ( C) 32 ( D) 0 20 有以下程序 main()int i=0; i= i: pri
15、ntf(“ d n“, i); 程序运行后的输出结果是 ( A) 0 ( B) 1 ( C) 8 ( D) -1 21 以下叙述中正确的 是 ( A)打开一个己存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖 ( B)在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1个数据 ( C) C语言中的文件是流式文件,因此只能顺序存取数据 ( D)当对文件的读 (写 )操作完成之后,必须将它关闭,否则可能导致数据丢失 22 设 fp已定义,执行语句 fp=fopen(“file”, “w”);后,以下针对文本文件 file操作叙述的选项中正确的是 ( A)写操作结
16、束后可以从头开始读 ( B)只能写不能读 ( C)可以在原有内 容后追加写 ( D)可以随意读和写 23 有以下程序 #include stdio h main()FILE*f; f=fopen(“filea txt“, “w“); fprintf(“abc“); fclose(f); 若文本文件 filea txt中原有内容为: hello,则运行以上程序后,文件 filea txt中的内容为 ( A) abclo ( B) abc ( C) helloabc ( D) abchello 24 读取二进制文件的函数调用形式为: fread(buffer, size, count, fp);其
17、中 buffer代表的是 ( A)一个整型变量,代表待读取的数据的字节数 ( B)一个内存块的首地址,代表读入数据存放的地址 ( C)一个文件指针,指向待读取的文件 ( D)一个内存块的字节数 25 有以下程序 #include stdio h main() FILE*pf; char*s1=“China“, *s2=“Beijing“; pf=fopen(“abc dat“, “wb+“); fwrite(s2, 7, 1, pf); rewind(pf); *文件位置指针回到文件开头 * fwrite(s1, 5, 1, pf); fclose(pf); 以上程序执行后 abc dat文件
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 结构 共用 运算 文件 操作 模拟 答案 解析 DOC
