




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2/2湖州师范学院C语言期末总分:100分 考试时间:60分钟注意事项:仔细查看答题卡正反面,如出现字迹模糊、行列歪斜或缺印、破损、有褶皱等现象,要立即向监考老师报告。答题须在专用的“答题卡”上进行,在试题卷和草稿纸上答题无效。考试结束前要离开考场的考生须先按答题卡、试卷、草稿纸从上到下的顺序平放在桌面上,再举手提出离场。一、单项选择题(每小题2分,共100分)1、下列说法中,正确的是______。 A、指针是一个变量 B、指针中存放的可以是任何类型的值 C、指针变量是变量地址 D、指针变量占用存储空间【答案】D【解析】指针是地址,存放指针的变量是指针变量,不同类型的指针变量存放不同类型数据的地址,指针变量作为可存储指针的变量,也要占用一定的存储空间。2、若int类型占两个字节,则以下语句输出为________。intk=-1;
printf("%d,%u\n",k,k); A、-1,-1 B、-1,65536 C、-1,32768 D、-1,65535【答案】D3、在嵌套使用if语句时,c语言规定else总是________。 A、和之前与其具有相同缩进位置的if配对 B、和之前与其最近的if配对 C、和之前与其最近的且不带else的if配对 D、和之前的第一个if配对【答案】C4、下列各循环语句中,不是死循环的是________。 A、inti=100;
while(i){
i=i%100+1;
if(i==20)
break;
} B、inti,sum=0;
for(i=1;;i++)
sum=sum+1; C、intk=0;
do
++k;
while(k>=0); D、ints=3379;
while(s++%2+3%2)
s++;【答案】A【解析】分析各个选项。选项A中,当变量i的值等于20时,会执行break;语句,即退出整个while循环体。所以选项A的循环语句不是死循环。其他各个选项的循环语句中,没有循环退出点,所以都是死循环。5、以下叙述不正确的是________。 A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面【答案】D【解析】本题考查C语言的基本基础知识。在C程序中,注释用符号“/*”开始,而以符号“*/”结束。程序的注释可以放在程序的任何位置。通常将注释放在程序的开始,以说明本程序的功能;或者放在程序的某个语句后面,以对此语句的功能进行说明。无论将注释放有何处,在程序进行编译时,编译程序不会处理注释的内容,且注释内容也不会出现在目标程序中。6、设intx=7,则~x的值是________。 A、-8 B、7 C、-1 D、1【答案】A7、若二维数组a有m列,则计算任一元素a[i][j]在数组中位臵的公式为(假设a[0][0]位于数组的第一个位臵上)________。 A、i*m+j B、j*m+i C、i*m+j-1 D、i*m+j+1【答案】D8、我们所写的每条c语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是______。 A、一条C语句可能会被转换成零条机器指令 B、一条C语句可能会被转换成多条机器指令 C、一条C语句对应转换成一条机器指令 D、某种类型和格式的C语句被转换成机器指令的条数是固定的【答案】C9、下面程序段的运行结果是char*s="abcde";s+=2;printf("%d",s); A、cde B、字符'c' C、字符'c'的地址 D、无确定的输出结果【答案】C【解析】对于字符串指针,其保留的是整个串的首地址,即第一个字符的起始地址;当该指针做算术运算时,就是该指针根据其类型向后移动相应的存储空间。10、表达式if(!x)中的"!x"等效于() A、x==0 B、x==1 C、x!=0 D、x!=1【答案】A【解析】表达式if(!x)表示判定x是否为0,即"如果x==0"。11、有如下函数调用语句func(rec1,rec2+rec3,rec4,rec5);该函数调用语句中,含有的实参个数是__________. A、3 B、4 C、5 D、有语法错误【答案】B12、下列标识符,不合法的是________。 A、abc B、_d C、123 D、e1【答案】C【解析】123不是合法的标识符,标识符不能以数字开头。13、每个c程序中都必须有且仅有一个________。 A、类 B、预处理命令 C、主函数 D、语句【答案】C【解析】每个C程序中都要有且仅有一个主函数,该函数是程序的入口,而语句、预处理命令和函数及类在程序中都可以有多个。14、若有如下定义和语句,且0<=i<5,下面()是对数值为3数组元素的引用
inta[]={1,2,3,4,5},*p,i;
p=a; A、*(a+2) B、a[p-3] C、p+2 D、a+3【答案】A15、有以下程序
#include<stdio.h>
main()
{
intx=0x13;
printf("int:%d\n",x+1);
}
程序运行后的输出结果是________。 A、INT:20 B、INT:13 C、INT:12 D、INT:14【答案】A16、用在switch语句的关键字没有哪个? A、continue B、break C、default D、if【答案】A17、在c语言中______。 A、函数定义可以嵌套,但函数调用不能嵌套 B、函数定义不可以嵌套,但函数调用可以嵌套 C、函数定义和调用均不能嵌套 D、函数定义和调用均可以嵌套【答案】B【解析】函数可以实现嵌套调用,但它的定义不可以嵌套。18、以下程序的输出结果是
fun(intx,inty)return(x+y);
main()
{
inta=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d",sum);
} A、9 B、8 C、7 D、6【答案】B【解析】逗号表达式a++,b++,a+b先计算a++,a=2;再计算b++,b=3;表达式的值就是a+b的值,为5。表达式c++的值是c递增前的值,为3。所以fun((a++,b++,a+b),c++)等价于fun(5,3),返回值为5+3=8。19、下列字符数组初始化语句中,不正确的是________。 A、charc[]='goodmorning'; B、chare[20]="goodmorning": C、charc[]=('a','b','c','d'); D、charc[]={”ffgoodmorning”);【答案】A20、c语言中的基本数据类型包括 A、整型、实型、字符型 B、整型、字符型、数组 C、整型、实型、逻辑型 D、整型、实型、结构体【答案】A21、若采用双符号位判断溢出,当结果的符号位为11时,表示(13)。 A、结果为正溢出 B、结果正,无溢出 C、结果负溢出 D、结果为负,无溢出【答案】D【解析】本题考查定点数加、减法溢出问题。
定点数加、减时,若采用双符号位法,即采用两个符号位,如果两个符号位相同,则没有溢出;若不同,则表示出现溢出,而第一符号位才是真正的符号。即两个符号位的高位为1表示负溢出,而高位为0、低位为1则表示正溢出。
题目中给出的结果的符号位为11,根据上面的分析,第一个符号位才是真正的符号,那么此数是负数,但两个符号位相同,表示没有溢出。22、未指定存储类别的变量,其隐含的存储类别为________。 A、auto B、static C、extern D、register【答案】A23、若有函数char*func(char*p)…returnp;则该函数的返回值是______。 A、无确切的值 B、形参p中存放的地址 C、一个临时存储单元的地址 D、形参p自身的地址【答案】B24、以下不正确的是______。 A、语句for(i=0:;i++)表示无限循环 B、for(;;)表示无限循环 C、for()也表示无限循环 D、while(1)表示无限循环【答案】C25、以下叙述中正确的是______。 A、不能用字符串常量对字符数组名进行整体赋值操作 B、字符串常量"Hello"会被隐含处理成一个无名字符型数组,它有5个元素 C、charstr[7]="string!";在语法上是合法的,运行也是安全的 D、char*str;str="Hello";与charstr[];str="Hello";效果是一样的【答案】A【解析】字符数组在定义时可以用字符串赋初值,其后就不可以再用字符串常量进行赋值。答案选择A。26、inta=1,b=2,c=3;
if(a>c)b=a;
a=c;
c=b;
则c的值为________。 A、1 B、2 C、3 D、不一定【答案】B27、若有定义语句:doublex[5]={1.0,2.0,3.0,4.0,5.0},*p=x;
则错误引用x数组元素的是______。 A、*p B、x[5] C、*(p+1) D、*x【答案】B28、C源程序中的命令#include与#define是在______阶段被处理的。 A、预处理 B、编译 C、连接 D、执行【答案】A29、下列表达式中,类型可以作为int型的是________。 A、"abe"+"efg" B、"abc"+"efg" C、'a'+'b' D、3+"4"【答案】C【解析】选项A的运算结果为字符串类型;选项B语法错误;选项D的运算结果也是字符串;只有选项C可以看做是两个字符的ASCII值相加,结果为int型。30、若要打开a盘上的user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是______。 A、fopen("A:\user\abc.txt","r") B、fopen("A:\\user\\abc.txt","r+") C、fopen("A:\user\abc.txt","rb") D、fopen("A:\\user\\abc.txt","w")【答案】B31、下列程序的运行结果是________。
voidfun(int*a,int*b)
{
int*k;
k=a;
a=b;
b=k;
}
main()
{
inta=3,b=6,*x=&a,*y=&b;
fun(x,y);
printf("%d%d",a,b);
} A、63 B、36 C、编译出错 D、00【答案】B【解析】在C语言中,调用函数时是将实参复制一份给形参,所以无论怎么改变形参的值,都不会影响到实参,即传值调用。即使形参是指针变量,也没有改变C语言传值调用这个事实,实参指针也还是复制了一份给形参指针,无论怎么改变形参指针的内容(注意:不是形参指针所指向的内容),也不会影响实参指针的内容。但它们两个现在的值一样,即指向的是同一个内存地址,所以改变形参指针所指向的内容,也就改变了实参指针所指向的内容,C语言就是这样实现传址调用的。本题中fun()函数的形参就是两个指针,但函数中没有任何语句改变这两个指针所指向的内容,只是交换了两个参数的内容,所以该函数不会对传递给它的实参以及实参所指向的内容造成任何影响,故a,b初始化时为3,6,输出结果亦为3和6。应该选择B。32、若希望当a的值为奇数时,表达式的值为"真"。a的值为偶数时,表达式的值为"假"。则以下不能能满足要求的表达式是________。 A、!(A%2) B、!(A%2==0) C、A%2==1 D、A%2【答案】A33、以下与库函数strcpy(char*p1,char*p2)功能不等的程序段是________。 A、strcpy1(char*p1,char*p2){
while((*p1++=*p2++)!='\0');
} B、strcpy2(char*p1,char*p2){
while((*p1=*p2)!='\0'){
p1++;p2++;
}
} C、strcpy3(char*p1,char*p2){
while(*p1++=*p2++);
} D、strcpy4(char*p1,char*p2){
while(*p2)*p1++=*p2++;
}【答案】D34、c语言中用于定义类的关键字是________。 A、class B、struct C、default D、sizeof【答案】A【解析】C中类定义的关键字是class。class不能大写。35、以下程序的输出结果是______。
#defineSQR(X)X*X
main()
{
intA,k=2,m=1;
A=SQR(k+m)/SQR(k+m);
printf("%d\n",a);
} A、1 B、7 C、9 D、3【答案】B36、与下面程序段等价的是________。
for(n=100;n<=200;n++)
{
if(n%3==0)continue;
printf("%4d",n);
} A、for(n=100;(n%3)&&n<=200;n++)printf("%4d",n); B、for(n=100;(n%3)||n<=200;n++)printf("%4d",n); C、for(n=100;n<=200;n++)if(n%3!=0)printf("%4d",n); D、for(n=100;n<=200;n++){
if(n%3)printf("%4d",n);Elsecontinue;Break;}【答案】C37、语句int(*ptr)();
的含义是______。 A、ptr是指向一维数组的指针变量 B、ptr是指向int型数据的指针变量 C、ptr是指向函数的指针,该函数返回一个int型数据 D、ptr是一个函数名,该函数的返回值是指向int型数据的指针【答案】C38、下面程序的输出结果是__________.
#include<stdio.h>
voidmain()
{
intx=8,y=-7,z=9;
if(x<y)if(y<0)z=0;
elsez-=1;
printf("%d\n",z);
} A、8 B、1 C、9 D、0【答案】C39、下列一维数组初始化语句中,正确且与语句floata[]={0,3,8,0,9};等价的是__________. A、floata[6]={
0,3,8,0,9}; B、floata[4]={
0,3,8,0,9}; C、floata[7]={
0,3,8,0,9}; D、floata[5]={
0,3,8,0,9};【答案】D40、有以下程序
structstu
{
charname[10];
intnum;
};
voidf(char*name,intnum)
{
structstus[2]={{"sundan",20044},{"penghua",20045}};
num=s[0].num;
strcpy(name,s[0].name);
}
main()
{
structstus[2]={{"yangsan",20041},{"lisiguo",20042}},*p;
p=&s[1];
f(p->name,p->num);
printf("%s%d\n",p->name,p->num);
}
程序运行后的输出结果是________。 A、SunDan20042 B、SunDan20044 C、LiSiGuo20042 D、YangSan20041【答案】A41、以下叙述中错误的______。 A、C程序在运行过程中所有计算都以二进制方式进行 B、C程序在运行过程中所有计算都以十进制方式进行 C、所有C程序都需要编译链接无误后才能运行 D、C程序中整型变量只能存放整数,实型变量只能存放浮点数【答案】B42、设x=061,y=016,则z=x|y的值是________。 A、00001111 B、11111111 C、00111111 D、11000000【答案】C【解析】本题主要考查按位或运算,x=061(二进制为00110001),y=016(二进制为00001110),进行或运算后结果为00111111。43、三种基本结构中,能简化大量程序代码的是________。 A、顺序结构 B、分支结构 C、选择结构 D、重复结构【答案】D44、以下描述中正确的是________。 A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句 B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号 C、在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作 D、do-while循环中,根据情况可以省略while【答案】C45、charh,*s=&h;可将字符h通过指针存入变量h中的语句是________。 A、*s=H; B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国U型热镀锌锅行业投资前景及策略咨询报告
- 2025至2030年中国PVC乳化粉行业投资前景及策略咨询报告
- 2025至2030年中国PTFE导向带市场分析及竞争策略研究报告
- 2025至2030年中国4-甲基-3-硝基苯酚行业投资前景及策略咨询研究报告
- 2025至2030年中国2-氨基-4-甲基噻唑市场调查研究报告
- 人工智能在智慧城市建设中的挑战与机遇
- 2025至2030年不均孔海绵项目可行性研究报告
- 2025至2030年HPV分型检测液芯项目可行性研究报告
- 中医药膳制作实践教程
- 2025年03月广西海洋科学院北部湾生态灾害与环境安全创新团队科技人员3人笔试历年参考题库考点剖析附解题思路及答案详解
- 钢管材质证明书
- 劳务费签领表
- 网络经济学PPT完整全套教学课件
- 国家重点保护野生植物采集申请表
- 高中语文:陈情表
- 数字信息技术与中学思政课教育教学深度融合
- 江苏省交通技师学院教师招聘考试真题2022
- 数据挖掘(第2版)PPT全套完整教学课件
- 2023年北京海淀高三一模化学试题及参考答案
- 教师资格定期注册申请表(样表)
- 中国近现代史纲要(上海建桥学院)智慧树知到答案章节测试2023年
评论
0/150
提交评论