[计算机类试卷]国家二级C语言机试(结构体、共用体与文件)模拟试卷3及答案与解析.doc
《[计算机类试卷]国家二级C语言机试(结构体、共用体与文件)模拟试卷3及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言机试(结构体、共用体与文件)模拟试卷3及答案与解析.doc(22页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言机试(结构体、共用体与文件)模拟试卷 3及答案与解析 一、选择题 1 有以下程序段 int *p; p= _ malloc( sizeof( int ); 若要求使 p指向一个 int 型的动态存储单元,在横线处应填入的是( )。 ( A) (int *) ( B) int ( C) int * ( D) ( *int ) 2 若有以下程序段 struct st int n; struct st *next; ; struct st a3= 5, p= 则以下选项中值为 6的表达式是( )。 ( A) +(p-n) ( B) (*p).n ( C) p-n+ ( D) p-n
2、3 有以下程序 #include main() int i=1; i = ii; printf(“%dn“, i ); 程序运行后的输出结果是( )。 ( A) 0 ( B) -1 ( C) 1 ( D) 7 4 以下程序用来统计文件中字符的个数(函数 feof用以检查文件是否结束,结束时返回非零 ) #include main() FILE *fp; long num=0; fp=fopen(“fname.dat“,“r“); while( _ ) fgetc(fp); num+; printf(“num=%dn“,num); fclose( fp ); 下面选项中,填入横线处不能得到正确结
3、果的是( )。 ( A) feof(fp) ( B) !feof(fp) ( C) feof(fp)=NULL ( D) feof(fp)=0 5 以下叙述中正确 的是( )。 ( A)在程序中,允许用 typedef来说明一种新的类型名 ( B)使用 typedef说明新类型名时,其格式是: typedef 新类型名 原类型名 ; ( C)使用 typedef 说明新类型名时,后面不能加分号 ( D)在使用 typedef改变原类型的名称后,只能使用新的类型名 6 以下叙述中正确的是( )。 ( A)一个结构体类型可以由多个称为成员(或域 ) 的成分组成 ( B)结构体类型中的成分只能是 C
4、语言中预先定义的基本数据类型 ( C)在定义结构体类型时,编译程序就为它分配了内存空间 ( D)结构体类型中各个成分的类型必须是一致的 7 以下叙述中正确的是( )。 ( A)使用 typedef定义新类型名后,新类型名与原类型名实际上是等价的 ( B)结构体类型中的各个成分均不能是数组或指针 ( C)结构体类型的变量,不能在声明结构体类型组成时一起定义 ( D)元素为结构体类型的数组,只能在声明过结构体类型之后,单独进行定义 8 下面选项中关于位运算的叙述正确的是( )。 ( A)位运算的对象只能是整型或字符型数据 ( B)位运算符都需要两个操作数 ( C)左移运算的结果总是原操作数 据 2
5、倍 ( D)右移运算时,高位总是补 0 9 下面选项中关于 “文件指针 “概念的叙述正确的是( )。 ( A)文件指针是程序中用 FILE定义的指针变量 ( B)文件指针就是文件位置指针,表示当前读写数据的位置 ( C)文件指针指向文件在计算机中的存储位置 ( D)把文件指针传给 fscanf函数,就可以向文本文件中写入任意的字符 10 以下叙述中正确的是( )。 ( A)在调用函数时,可以将结构体变量作为实参传给函数 ( B)函数的返回值不能是结构体类型 ( C)函数的返回值不能是结构体指针类型 ( D)结构体数组不能作为参数传给函数 11 以下叙述中正确的是( )。 ( A)结构体中可以含
6、有指向本结构体的指针成员 ( B)结构体变量的地址不能作为实参传给函数 ( C)结构体数组名不能作为实参传给函数 ( D)即使是同类型的结构体变量,也不能进行整体赋值 12 设有如下的说明和定义 struct int a; char *s; x, *p = x.a = 4; x.s = “hello“; 则以下叙述中正确的是( )。 ( A)语句 +p-a; 的效果是使成员 a增 1 ( B)语句 +p-a; 的效果是使 p增 1 ( C) (p+)-a与 p+-a都是合语法的表达式,但二者不等价 ( D)语句 *p-s+; 等价于 (*p)-s+; 13 下面关于位运算符的叙述,正确的是(
7、)。 ( A) z=( y1 ); printf( “%dn“,z ); 程序的输出结果是( )。 ( A) 0 ( B) 1 ( C) 4 ( D) 8 16 有以下程序 #include struct S int a;int b; ; main() struct S a, *p= a.a=99; printf( “%dn“ , _ ); 程序要求输出结构体中成员 a的数据,以下不能填入横线处的内容是( )。 ( A) *p. ( B) B ( C) A ( D) p- 17 若 fp已定义为指向某文件的指针,且没有读到该文件的末尾,则 C语言函数feof(fp)的函数返回值是( )。 (
8、A) 0 ( B)非 0 ( C) -1 ( D) EOF 18 有以下程序 #include struct STU char 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, “Sun“, m, 98, 99 ; f(c); printf( “%s,%c,%d,%d,“, c0.name, c0.sex, c0.score0, c0.score1 ); printf( “
9、%s,%c,%d,%dn“, c1.name, c1.sex, c1.score0, c1.score1 ); 程序运行后输出结果是( )。 ( A) Qian,f,95,92,Zhao,m,85,90 ( B) Qian,f,95,92,Sun,m,98,99 ( C) Zhao,m,85,90,Sun,m,98,99 ( D) Zhao,m,85,90,Qian,f,95,92 19 以下叙述中错误的是( )。 ( A) typedef说明的新类型名必须使用大写字母,否则会出编译错误 ( B) typedef的作用是用一个新的标识符来代表已存在的类型名 ( C)可以用 typedef说明的
10、新类型名来定义变量 ( D)用 typedef可以说明一种新的类型名 20 以下叙述中错误的是( )。 ( A)函数的返回值类型不能是结构体类型,只能是简单类型 ( B)只要类型相同,结构体变量之间可以整体赋值 ( C)可以通过指针变量来访问结构体变量的任何成员 ( D)函数可以返回指向结构体变量的指针 21 若有定义语句 int b = 2; 则表达式 ( b main() FILE *fp; int i, a6 = 1,2,3,4,5,6; fp = fopen( “d2.dat“, “w+“ ); for (i=0; i typedef struct stu char name10; c
11、har gender; int score; STU; void f(STU *a, STU *b) b = a; printf(“%s,%c,%d,“, b-name, b-gender, b-score); main() STU a=“Zhao“, m, 290, b=“Qian“, f, 350; f( printf(“%s,%c,%dn“, b.name, b.gender, b.score); 程序的运行结果是( )。 ( A) Zhao,m,290,Qian,f,350 ( B) Qian,f,350,Zhao,m,290 ( C) Qian,f,350,Qian,f,350 (
12、D) Zhao,m,290,Zhao,m,290 24 有以下程序 #include #include typedef struct stu char name10; char gender; int score; STU; void f(STU c) strcpy(c.name, “Qian“); c.gender = f; c.score = 350; main() STU a=“Zhao“, m, 290, b; b=a; f(b); printf(“%s,%c,%d,“, a.name, a.gender, a.score); printf(“%s,%c,%dn“, b.name, b
13、.gender, b.score); 程序的运行结果是( )。 ( A) Zhao,m,290,Zhao,m,290 ( B) Zhao,m,290,Qian,m,290 ( C) Zhao,m,290,Qian,m,350 ( D) Zhao,m,290,Qian,f,350 25 若有定义 typedef int T10; T a20; 则与上述定义完全等价的说明语句是( )。 ( A) int a2010; ( B) int a20; ( C) int a10; ( D) int a1020; 26 有以下程序 #include main() int c,d; c = 10 | 5; d
14、 = 10 + 5; printf(“%d,%dn“, c, d); 程序的运行结果是( )。 ( A) 15,15 ( B) 10,15 ( C) 5,15 ( D) 105,15 27 有以下程序 #include main() FILE *fp; int i, a6=1,2,3,4,5,6,k; fp = fopen(“data.dat“, “w+“); fprintf(fp, “%dn“, a0); for (i=1; i typedef struct stu char name10; char gender; int score; STU; void f(STU *a, STU *b
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 结构 共用 文件 模拟 答案 解析 DOC
