二级C语言176.docx
- 文档编号:6499268
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:15
- 大小:20.05KB
二级C语言176.docx
《二级C语言176.docx》由会员分享,可在线阅读,更多相关《二级C语言176.docx(15页珍藏版)》请在冰豆网上搜索。
二级C语言176
二级C语言-176
(总分:
100.00,做题时间:
90分钟)
一、选择题(总题数:
48,分数:
100.00)
1.若有以下程序段:
structst
{intn;
int*m;};
inta=2,b=3,c=5;
structsts[3]=({101,&a},{102,&c},{103,&b}};
main()
{structst*p;
p=s;
…}
则以下表达式中值为5的是______。
(分数:
2.00)
A.(p++)->m
B.*(p++)->m
C.(*p).m
D.*(++p)->m √
解析:
2.若有如下说明,且int类型占两个字节,则正确的叙述为______。
structst
{inta;
intb[2];
}a;
(分数:
2.00)
A.结构体变量a与结构体成员a同名,定义是非法的 √
B.程序只在执行到该结构体时才为结构体st分配存储单元
C.程序运行时为结构体st分配8字节存储单元
D.类型名structst可以通过extern关键字提前引用
解析:
3.已知一个文件中存放若干工人档案记录,其数据结构如下:
structa
{charnumber[100];
intage;
floatp[6];);
定义一个数组:
structanumber[10];
假定文件已正确打开,不能正确地从文件中读入10名工人数据到数组b中的是______。
(分数:
2.00)
A.fread(b,sizeof(structa),10,fp);
B.for(i=0;i<10;i++)fread(b[i],sizeof(structa),1,fp); √
C.for(i=0;i<10;i++)fread(b+i,sizeof(structa),1,fp);
D.fbr(i=0;i<5;i+=2)fread(b+i,sezeof(structa),2,fp);
解析:
4.设有如下定义:
structsk
{intm;
floatx;
}data,*q;
若要使q指向data中的m域,正确的赋值语句是______。
(分数:
2.00)
A.q=&data.m;
B.*q=data.m;
C.q=(structsk*)&data.m; √
D.q=(structsk*)data.m;
解析:
5.设有下面的定义:
structst
{inta;
floatb;
}d;
int*p;
要使p指向结构变量d中的a成员,正确的赋值语句是______。
(分数:
2.00)
A.*p=d.a;
B.p=&a;
C.p=d.a;
D.p=&d.a; √
解析:
6.定义结构体(联合)数组:
structstu
{intnum;
charname[20];
}x[5]={1,"ZHAO",2,"QIAN",3,"SUN",4,"LEE",5,"ZHOU"};
for(i=1;i<5;i++)
printf("%d%c",x[i].hum,x[j].name[2]);
其输出结果为______。
(分数:
2.00)
A.2A3N4E50 √
B.1H213U4E
C.1A2N3E40
D.1A2N3E50
解析:
7.有以下程序:
#include<stdio.h>
structst
{intx,y;)data[2]={1,10,2,20};
main()
{structst*p=data;
printf("%d,",p->y);printf("%d/n",(++p)->x);
}
程序的运行结果是______。
(分数:
2.00)
A.10,1
B.20,1
C.10,2 √
D.20,2
解析:
8.设有如下定义:
structSS
{charname[10];
intage;
charsex;
}std[3],*P=std;
下面各输入语句中错误的是______。
(分数:
2.00)
A.scanf("%d",&(*p).age);
B.scanf("%s",&std.name); √
C.scanf("%c",&std[0].sex);
D.scanf("%c",&(p->sex));
解析:
9.若有如下的结构定义,则正确的引用或定义是______。
structbox
{intx;charc;}stud;
(分数:
2.00)
A.x=10;
B.boxx2;x2.x=10 √
C.structstu2;stu2.x=10
D.structboxx2={10};
解析:
10.设有如下说明:
typedefstruct{intn;charc;doublex;}STD;
则以下选项中,能正确定义结构体数组并赋初值的语句是______。
(分数:
2.00)
A.STDtt[2]={{1,"A",62},{2,"B",75}}; √
B.STDtt[2]={1,"A",62,2,"B",75};
C.structn[2]={{1,"A"},{2,"B"}};
D.structtt[2]={{1,"A",62.5},{2,"B",75.0}};
解析:
11.下面4个选项中,均是C语言关键字的选项是______。
(分数:
2.00)
A.auto、Enum、Include
B.switch、typedef、continue
C.signed、union、scanf
D.if、struct、type √
解析:
12.以下所列对结构类型变量td1的声明中错误的是______。
(分数:
2.00)
A.typedefstructaa{intn;floatm;}AA;
B.#defineAAstructaaAA{intn;floatm;}td1;AAtd1;
C.struct{intn;floatm;)aa; √
D.struct{intn;floatmt)td1;structaatd1;
解析:
13.已知有如下的结构类型定义和变量声明:
structstudent
{intnum;
charname[10];
}stu={1,"Mary"},*P=&stu;
则下列语句中错误的是______。
(分数:
2.00)
A.printf("%d",stu.Dam);
B.printf("%d",(&stu)->num);
C.printf("%d",&stu->num); √
D.printf("%d",P->num);
解析:
14.若要使表达式“P++”无语法错误,则变量P不能声明为______。
(分数:
2.00)
A.intP;
B.doubleP;
C.int*P;
D.struct{intx;}P; √
解析:
15.若有如下说明,且int类型占两个字节,则正确的叙述为______。
structst
{inta;
intb[2];
}a;
(分数:
2.00)
A.结构体变量a与结构体成员a同名,定义是合法的 √
B.程序只在执行到该结构体时才为结构体st分配存储单元
C.程序运行时为结构体st分配8字节存储单元
D.类型名structst可以通过extern关键字提前引用
解析:
16.以下程序的输出结果是______。
#include<stdio.h>
structst
{intx;int*y;}*p;
intdt[4]={1,2,3,4);
structstaa[4]={2,&dt[0],3,&dt[0],4,&dt[0],5,&dt[0],};
main()
{p=aa;
printf("%d/n",++(p->x));
}
(分数:
2.00)
A.1
B.2
C.3 √
D.4
解析:
17.以下程序的输出结果是______。
typedefunion{longa[1];
intb[3];
charc[10];
}S;
St;
main()
{printf("%d/n",sizeof(t));}
(分数:
2.00)
A.32
B.16
C.10 √
D.20
解析:
18.下面程序的输出结果是______。
typedefunion{doublex[3];
inty[4];
charz[10];
}M;
Mt;
main()
{printf("%dkn",sizeof(t));}
(分数:
2.00)
A.32
B.26
C.24 √
D.4
解析:
19.以下程序的运行结果是______。
#include"stdio.h"
main()
{structdate
{intyear,month,day;}today;
printf("%d/n",sizeof(structdate));
}
(分数:
2.00)
A.6 √
B.8
C.10
D.12
解析:
20.说明语句“staticinti=10;”中“i=10”的含义是______。
(分数:
2.00)
A.说明变量i为整型的静态变量
B.等价于“autointi=10”
C.将i初始化为10 √
D.将i赋值为10
解析:
21.以下对C语言中联合类型数据的正确叙述是______。
(分数:
2.00)
A.定义了联合变量后,即可引用该变量或该变量中的任意成员
B.一个联合变量中可以同时存放其所有成员
C.联合中的各个成员使用共同的存储区域 √
D.在向联合中的一个成员进行赋值时,联合中其他成员的值不会改变
解析:
22.设有一联合体变量定义如下:
uniondata
{longa;
floatb;
intc;
chard;
};
uniondatax;
执行下列语句后,正确的联合体变量X的值是______。
x.a=111111;
x.b=2222;
x.c=2.1546;
x.d="R";
(分数:
2.00)
A.111111
B.2222
C.2.1546
D..R √
解析:
23.下面程序的输出结果为______。
main()
{union{unsignedintt;
unsignedcharc;
}u;
u.c="a";
printf("%c/n",u.t);
}
(分数:
2.00)
A.97
B..a √
C.0x61
D.产生语法错误
解析:
24.以下对联合类型叙述正确的是______。
(分数:
2.00)
A.可以对联合变量名直接赋值
B.使用联合变量的目的是为了节省内存 √
C.任何一个联合变量可以同时引用联合中的不同成员
D.联合类型定义中不能同时出现结构类型的成员
解析:
25.如果需要打开一个已经存在的非空文件“FILE”并进行修改,正确的语句是______。
(分数:
2.00)
A.fp=fopen("FILE","r");
B.fp=fopen("FILE","a+");
C.fp=fopen("FILE","w+");
D.fp=fopen("FILE","r+"); √
解析:
26.若以“a+”方式打开一个已存在的文件,则以下叙述正确的是______。
(分数:
2.00)
A.文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加或读操作 √
B.文件打开时,原有文件内容不被删除,只能进行读操作
C.文件打开时,原有文件内容被删除,只能进行写操作
D.以上各种说法皆不正确
解析:
27.使用fgets(str,n,p)函数从文件中读入一个字符串,以下叙述错误的是______。
(分数:
2.00)
A.字符串读入后会自动加入"/0"
B.fp是指向该文件的文件型指针
C.fgets函数将从文件中最多读入n-1个字符
D.fgets函数将从文件中最多读入n个字符 √
解析:
28.函数fseek(fp,-10L,SEEK_END)的含义是______。
(分数:
2.00)
A.将文件位置指针从当前位置向后移动10个字节
B.将文件位置指针移到距离文件头10个字节处
C.将文件位置指针从文件末尾处向后退10个字节 √
D.将文件位置指针移到离当前位置10个字节处
解析:
29.函数rewind(fp)的作用是______。
(分数:
2.00)
A.使fp指定的文件的位置指针重新定位到文件的开始位置 √
B.将fp指定的文件的位置指针指向文件中所要求的特定位置
C.使fp指定的文件的位置指针向文件的末尾
D.使fp指定的文件的位置指针自动移至下一个字符位置
解析:
30.已知函数fread的调用形式为“fread(buffer,size,count,fp);”,其中buffer代表的是______。
(分数:
2.00)
A.一个整型变量,代表要读入的数据项总数
B.一个文件指针,指向要读的文件
C.一个指针,是指向的输入数据放在内存中的起始位置 √
D.一个存储区,存放要读的数据项
解析:
31.函数ftell(fp)的作用是______。
(分数:
2.00)
A.得到fp所指向文件的当前读写位置 √
B.初始化文件的位置指针
C.移动文件的位置指针
D.以上答案均正确
解析:
32.若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是______。
(分数:
2.00)
A.EOF
B.-1
C.非0值
D.0 √
解析:
33.设函数a的定义如下:
voida()
{intx=12,y=345;FILE*fp=fopen("my.dat","W");
fprintf(fp,"%d%d",x,y);
fclose(fp):
}
已知main函数中有声明“intx,y;FILE*fp=fopen("my.dat","r");”,如果需要从文件my.dat中正确地读出由函数a写入的两个数据并分别保存到变量x和y中,则在main函数中使用的读数据语句应当是______(要求写出语句的完整格式)。
(分数:
2.00)
A.fscanf(fp,"%d%d",&x,&y); √
B.fprintf(fp,"%d%d",&x,&y);
C.ftell(fp)
D.fclose(fp);
解析:
34.在用fopen函数打开一个已经存在的数据文件abc时,若要求既可以读出abe文件中原来的内容,也可以用新的数据覆盖文件原来的数据,则调用fopen函数时,使用的存取方式参数应当是______。
(分数:
2.00)
A..r
B..a
C..r+ √
D..w
解析:
35.若需要对一个数据文件abe.txt中的数据做加密处理并且限定只能做一次打开文件操作,则在“fp=fopen("abe.txt",模式字符串);”中,模式字符串应当是______。
(分数:
2.00)
A."w+"
B."r+" √
C."a+"
D."r"
解析:
36.若打开一个新的文本文件c.txt中的数据做读/写操作,则在“fp=fopen("c.txt",模式字符串);”中,模式字符串应当是______。
(分数:
2.00)
A."w+" √
B."r+"
C."a+"
D."r"
解析:
37.若打开一个文本文件c.txt中的数据做读/写操作,则在“fp=fopen("c.txt",模式字符串);”中,模式字符串应当是______。
(分数:
2.00)
A."w+"
B."r+"
C."a+" √
D."r"
解析:
38.fread(buf,32,2,fP)的功能是______。
(分数:
2.00)
A.从fP文件流中读出整数32,存放在buf中
B.从fP文件流中读出32个字节的字符,存放在buf中 √
C.从fP文件流中读出整数32和2,存放在buf中
D.从fP文件流中读出2块32个字节的字符,存放在buf中
解析:
39.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为______。
(分数:
2.00)
A.0 √
B.1
C.-1
D.一个非0值
解析:
40.能作为函数fopen的第一个参数的字符串是______。
(分数:
2.00)
A.c:
user/test.txt
B.c:
/user/test.txt
C.c:
//user//test.txt √
D.c:
/uset/test.txt
解析:
41.下列关于C语言数据文件的叙述中正确的是______。
(分数:
2.00)
A.文件由ASCII码字符序列组成,C语言只能读写文本文件
B.文件由二进制数据序列组成,C语言只能读写二进制文件
C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 √
解析:
42.以下叙述中不正确的是______。
(分数:
2.00)
A.C语言中的文本文件以ASCII码形式存储数据
B.C语言中对二进制文件的访问速度比文本文件快
C.C语言中,随机读写方式不适用于文本文件
D.C语言中,顺序读写方式不适用于二进制文件 √
解析:
43.标准库函数fgets(buf,n,fp)的功能是______。
(分数:
2.00)
A.从fp所指向的文件中读取长度为n的字符串存入缓冲区buf
B.从fp所指向的文件中读取长度不超过n-1的字符串存入缓冲区buf √
C.从fp所指向的文件中读取n个字符串存入缓冲区buf
D.从fp所指向的文件中读取长度为n-1的字符串存入缓冲区buf
解析:
44.以下程序中C的二进制值是______。
chara=2,b=4,c;
c=a^b>>2
(分数:
2.00)
A.00000011 √
B.00010100
C.00011100
D.00011000
解析:
45.有以下程序
#include<stdio.h>
main()
{FILE*fp;inti=20,j=30,k,n;
fp=fopen("d1.dat","w");
fprintf(fp,"%d/n",i);fprintf(fp,"%d/n",j);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n);printf("%d%d/n",k,n);
fclose(fp);
}
程序运行后的输出结果是______。
(分数:
3.00)
A.2030 √
B.2050
C.3050
D.3020
解析:
46.已知一个文件中存放若干工人档案记录,其数据结构如下:
structa
{charnumber[100];
intage;
floatp[6];
};
定义一个数组:
structanumber[10];
假定文件已正确打开,不能正确地从文件中读入10名工人数据到数组b中的是______。
(分数:
3.00)
A.fread(b,sizeof(structa),10,fp);
B.for(i=0;i<10;i++)fread(b[i],sizeof(structa),1,fp); √
C.for(i=0;i<10;i++)fread(b+i,sizeof(structa),1,fp);
D.for(i=0;i<5;i+=2)fread(b+i,sezeof(structa),2,fp);
解析:
47.fgets(str,n,fp)函数从文件中读入一个字符串,以下错误的叙述是______。
(分数:
3.00)
A.字符串读入后会自动加入"/0"
B.fp是指向该文件的文件型指针
C.fgets函数将从文件中最多读入n个字符 √
D.fgets函数将从文件中最多读入n-1个字符
解析:
48.设有以下语句:
charx=3,y=6,z;
z=x^y<<2;
则z的二进制值是______。
(分数:
3.00)
A.00010100
B.00011011 √
C.00011100
D.00011000
解析:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 176