[计算机类试卷]国家二级C语言(结构体、共用体、位运算及文件操作)机试模拟试卷4及答案与解析.doc
《[计算机类试卷]国家二级C语言(结构体、共用体、位运算及文件操作)机试模拟试卷4及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言(结构体、共用体、位运算及文件操作)机试模拟试卷4及答案与解析.doc(19页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言(结构体、共用体、位运算及文件操作)机试模拟试卷 4及答案与解析 一、选择题 1 以下叙述中错误的是 ( A)可以用 typedef将己存在的类型用一个新的名字来代表 ( B)可以通过 typedef增加新的类型 ( C)用 typedef定义新的类型名后,原有类型名仍有效 ( D)用 typedef可以为各种类型起别名,但不能为变量起别名 2 以下叙述中错误的是 ( A)可以用 typedef将已存在的类型用一个新的名字来代表 ( B)可以通过 typedef增加新的类型 ( C)用 typedef定义新的类型名后,原有类型名仍有效 ( D)用 typedef可以为各种类型起
2、别名,但不能为变量起别名 3 以下结构体说明和变量定义中,正确的是 ( A) typedef struct abcint n; double m; ABC; ABC x, y; ( B) struct abcint n; double m; struct abc x, y; ( C) struct ABCint n; double m; struct ABC x, y; ( D) struct abcint n; double m; ; abc x, y; 4 有以下程序段 Typedef struct NODE int num; struct NODE*next; OLD; 以下叙述中正确的
3、是 ( A)以上的说明形式非法 ( B) NODE是一个结构体类型 ( C) OLD是一个结构型类型 ( D) OLD是一个结构变量 5 有以下程序 struct Sint a, b; )data2=10, 100, 20, 200; main() struct S p=data1; printf(“ d n“, +(p a); 程序运行后的输出结 果是 ( A) 11 ( B) 20 ( C) 21 ( D) 10 6 有以下程序 #include stdio h #include string h typedef structchar name9; char sex; int score2
4、; )STU; STU f(STU a) STU b=“Zhao“, m, 85, 90; int i; strcpy(a name, b name); a sex=b sex; for(i=0; i 2; i+)a scorei=b scorei; retum a; main() STU c=“Qian“, f ( A) Zhao, m, 85, 90, Zhao, m, 85, 90 ( B) Qian, f, 95, 92, Qian, f, 95, 92 ( C) Zhao, m, 85, 90, Qian, f, 95, 92 ( D) Qian, f, 95, 92, Zhao,
5、m, 85, 90 7 若有以下语句 typedefstruct Sint g; char h; )T;以下叙述中正确的是 ( A)可用 S定义结构体变量 ( B) S是 struct类型的变量 ( C) T是 struct S类型 的变量 ( D)可用 T定义结构体变量 8 有以下程序 #include struct ordint x, y; )dt2=1, 2, 3, 4); main()struct ord*p=dt; printf(“ d“, +(p- x)=printf(“ d n“, +(p- y); 程序运行后的输出结果是 ( A) 4, 1 ( B) 2, 3 ( C) 3,
6、4 ( D) 1, 2 9 有下列程序: #include stdio h #include string h typedef structchar name9; char sex; float score2; STU; STU 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 scorei=b scorei; return a; main() STU c=“Q ( A) Qian, m, 85, 90 ( B) Zhao, f, 95, 92
7、 ( C) Zhao, m, 85, 90 ( D) Qian, f, 95, 92 10 有以下定义和语句: struct workers int num; char name20; char c; struct int day; int month; int year; s; ; struct workers w*pw; pw=&w; 能给 w中 year成员赋 1980的语句是 ( A) w year=1980; ( B) pw- year=1980; ( C) w s year=1980; ( D) *pw year=1980; 11 设有定义: structchar mark12;
8、int num1; double num2; t1, t2;若变量均已正确赋初值,则以下语句中错误的是 ( A) t2 num1=t1 num1; ( B) t2 mark=t1 mark; ( C) t1=t2; ( D) t2 num2=t1 num2; 12 若有以下程序 typedef struct stuchar*name, gender; int score; STU; void f(char*p)p=(char*)malloc(10); strcpy(p, “Qian“); main()STU a=NULL, m, 290, b; a name=(char*)malloc(10)
9、; strcpy(a name, “Zhao“); b=a; f(b name); b gender=f; b score=350; printf(“ s, c, d, “, a ( A) Zhao, m, 290, Qian, f, 350 ( B) Qian, f, 350, Qian, f, 350 ( C) Qian, m, 290, Qian, f, 350 ( D) Zhao, m, 290, Zhao, f, 350 13 为了建立如图所示的存储结构 (即 每个结点含两个域, data是数据域, next是指向结点的指针域 ),则在 _处应填入的选项是 Struct linkch
10、ar data;_node; ( A) struct link*next; ( B) link next; ( C) link*next; ( D) struct link next; 14 以下叙述中正确的是 ( A)结构体类型中的各个成分均不能是数组或指针 ( B)结构体类型的变量,不能在声明结构体类型组成时一起定义 ( C)使用 typedef定义新类型名后,新类型 名与原类型名实际上是等价的 ( D)元素为结构体类型的数组,只能在声明过结构体类型之后,单独进行定义 15 设有如下的说明和定义 structint a; char*s; x, *p=&x; x a=4;x s=“hello
11、“;则以下叙述中正确的是 ( A)语句 +p- a;的效果是使 p增 1 ( B) (p+)- a与 p+- a都是合语法的表达式,但二者不等价 ( C)语句 *p- s+;等价于 (*p)- s+; ( D)语句 +p- a;的效果是使成员 a增 1 16 有以下程序 #include stdio h struct STUchar name9; char sex; int score2; ; void f(struct STU a) struct STU b=“zhao“, m, 85, 90; a1=b; main() struct STU c2=“Qian“, f, 95, 92, “S
12、un“, m, 98, 99; f(c); printf(“ s, c, d, d, “, c0 name, c0 sex, c0 sc ( A) Qian, f, 95, 92, Sun, m, 98, 99 ( B) Zhao, m, 85, 90, Sun, m, 98, 99 ( C) Qian, f, 95, 92, Zhao, m, 85, 90 ( D) Zhao, m, 85, 90, Qian, f, 95, 92 17 有以下程序 main()unsigned char a=2, b=4, c=5, d; d=a|b; d&=c; printf(“ d n“, d); 程序
13、运行后的输出结果是 ( A) 3 ( B) 5 ( C) 4 ( D) 6 18 若有以下程序段 int r=8: printf(“ d n“, r 1); 输出结果是 ( A) 8 ( B) 4 ( C) 16 ( D) 2 19 有以下程序 #include stdio_h main() char a=4; printf(“ d n“, a=a 1); ( A) 8 ( B) 16 ( C) 40 ( D) 4 20 若有以下程序 main()int c; c=105; printf(“ d n“, c); 则程序的输出结果是 ( A) 15 ( B) 10000 ( C) 5 ( D)
14、105 21 有以下程序 main()int i=1; i=ii; printf(“ d n“, i); 程序运行后的输出结果是 ( A) -1 ( B) 0 ( C) 1 ( D) 7 22 下列关于 C语言文件的叙述中正确的是 ( A)文件由结构序列组成,可以构成二进制文件或文本文件 ( B)文件由一系列数据依次排列组成,只能构成二进制文件 ( C)文件由数据序列组成,可以构成二进制文件或文本文件 ( D)文件由字符序列组成,其类型只能是文本文件 23 以下函数不能用于向文件中写入数据的是 ( A) fwrite ( B) fputc ( C) flell ( D) fprintf 24
15、有以下程序 #include stdio h main() FILE*fp; int i, a6=1, 2, 3, 4, 5, 6; fp=fopen(“d2 dat“, “w+ ); for(i=0; i 6; i+)fprintf(fp, “ d n“, ai); rewind(fp); for(i=0; i 6; i+)fscanf(fp“ d“, &a5-i); fclose(fp); for(i=0; i 6; i+)printf(“ d“, ai); ( A) 1, 2, 3, 4, 5, 6 ( B) 6, 5, 4, 3, 2, 1, ( C) 4, 5, 6, 1, 2, 3
16、, ( D) 1, 2, 3, 3, 2, 1, 25 有下列程序: #include stdio h main() FILE*fp; int a10=1, 2, 3), i, n; fp=fopen(“d1 dat“, “w“); for(i=0; i 3; i+)fprintf(fp“ d“, ai); fprintf(fp, “ n“); fclose(fp); fp=open(“d1 dat“, “r“); fscanf(fp“ d“, &n); fclose(fp); printf(“ d n“, n); 程序的运行结果是 ( A) 12300 ( B) 123 ( C) 1 ( D
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 结构 共用 运算 文件 操作 模拟 答案 解析 DOC
