版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C、y=-l
2023年C语言期末(一)
if(x)
(总分100分,考试时长90分钟)if(x>0)y=l;
elseif(x-0)y=0;
题号—•二三总分阅卷人
elsey=-l;
分值402040100D、y=0;
if(x>=0)
得分if(x>0)y=l;
elsey=一1;
■题目包括三大部分,单项选择题,填空题,编程题,请按要求作答。【答案】A
■答卷必须用蓝色或者黑色钢笔、圆珠笔,不许用铅笔或者红笔作答c4、以下程序运行后的输出结果是一
■考试中途不能无端离场,否则视为放弃。考试过程中如遇问题请及时向监考老师反馈。main()
一、单项选择题(每小题2分,共40分)(
inti=0,s=l;
1、若有定义inta[10],*P=a;则p+5表示的是□
for(;;)
A、a[5]的值
(
B、a[6]的值
if(i-5)break;
C、a[5]的地址
i++;
D、a[6]的地址
s+=i;
【答案】C
)
【解析】P指的是a[0],则p+5是指a[5]。
2、非法的字符常量是。
printf(〃%d\n〃,s);
A、'\101'
)
B、'\65'
A、死循环
C、'\xff'
B、16
D、'\019'
C、15
【答案】D
D、11
3、与y=(x>0?l:x<0?-l:0);的功能相同的if语句是o
【答案】B
A、if(x>0)y=l;
5、下列函数定义中,会出现编译错误的是
elseif(x<0)y=-l;
A、max(intx,inty,int*z)
elsey=0;
{*z=x>y?x:y;}
B、if(x)
B、intmax(intx,y)
if(x>0)y=l;
elseif(x<0)y=-l;
intz;
elsey=0;
z=x>y?x:y;
returnz;B、(E>0IIE<0)
}C、(E==0)
C、max(intx,inty)D、(E!=0)
{【答案】C
intz;9、按照c语言规定的用户标识符命名规则,不能出现在标识符中的是
z=x>y?x:y;return(z);A、大写字母
}B、连接符
D、intmax(intx,inty)C、数字字符
{D、下划线
return(x>y?x:y);}【答案】B
【答案】B【解析】C语言的标识符要符合以下规定:
6、若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元int*p①标识符是个以字母或下划线开头的,由字母、数字、下划线组成的字符串:
p=______malloc(sizeof(int));则应填入。②标识符不能与任意一个关键字同名:
A、int③标识符中的字母区分大小写。
B、int*故本题应该选择B。
C、(*int)10、合法的数组定义是_______O
D、(int*)A、inta[]="string”;
【答案】DB、inta[5]=0,1,2,3,4,5;
【解析】不论p是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型C、chara="string”;
一致,强制类型转换的格式为(数据类型*)。D、chara=0,1,2,3,4,5;
7、在c语言中,设有数组定义:chararray[]="china”;则数组ai"ray所占用的空间为【答案】D
11、有以下程序段:
A、5个字节intj;
B、6个字节floaty;
C、10个字节charname[50];
D、12个字节scanf("%2d%f%s",&j,&y,name);
【答案】B当执行上述程序段,从键盘上输入555667777abc后,y的值为
【解析】字符数组是每个元素存放一个字符型数据的数组。C语言中约定用\0作为字符A、55566.0
串的结束标志,它占内存空间,但不计入字符串的长度。对数组ai•ray赋初值charB、566.0
array[]='*China",此时系统自动在末尾加入一个''0',此时数组array的长度为C、7777.0
6,所占用的空间为6个字节,即chararray口="China”等价于charD、566777.0
array[]={'C','h','i','n','a','\0'}。若定义char【答案】B
array[]={'C','h','i','n','a',},此时数组array的长度为5个字节。【解析】本题考查通过scanf函数输入数据时的格式控制问题。变量j的格式控制为
8、在以下给出的表达式中,与while()中的(e)不等价的表达式是。“%2d”,即只接收输入数据的前两位,从第3位开始直到空格之间的输入都会被保存到
A、(!E==0)变量y中,因为y为浮点型数据,所以输出结果为选项B)。
12、下列字符序列中,不可用作c语言标识符的是oB、3,4,2,7,9,8,6,5,11,10,
A、b70C、2,3,1,6,8,7,5,4,10,9,
B、#abD、1,2,3,6,8,7,5,4,10,9,
C、symbol【答案】A
D、a_l15、下列程序的输出结果是o
【答案】Bmain()
13、通常适用于从被调用函数中将一个值传回主调函数的参数传递方式是(
A、利用返回值数据传递方式intp[8]={ll,12,13,14,15,16,17,18},i=0,j=0;
B、利用形参与实参传递数据的方式while(i++<7)if(p[i]%2)j+=p[i];
C、利用全局变量传递数据的方式printf("%d\n",j);
D、以上都不对)
【答案】AA、42
14、有以下程序B、45
structsC、56
(D、60
intn;【答案】B
inta[20];16、以下程序段的输出结果为()。
for(i=4;i>l;i--)
for(j=l;j<i;j++)
voidf(int*a,intn)putchar;
(A^无
inti;B、######
for(i=0;i<n-l;i++)a[i]+=i;C、#
}D、###
main()【答案】B
(17、在c语言中,系统为一个结构体变量分配的内存是—
inti;A、各成员所需内存量的总和
structss={10,B、结构体第一个成员所需的内存量
(C、成员中占内存量最大者所需的容量的整数倍
2,3,1,6,8,7,5,4,10,9});D、结构体中最后一个成员所需的内存量
f(s.a,s.n);【答案】C
for(i=0;i<s.n;i++)printf(z,%d,s.a[i]);18、运行下面程序时,从键盘输入〃12,34,9Vcr>〃,则输出结果是
}^include<stdio.h>
程序运行后的输出结果是Ovoidmain()
A、2,4,3,9,12,12,11,11,18,9,
intx,y,z;【解析】在scanf函数中,第二个参数应该表示为地址变量,而选项D)只是一个具体的
scanf(/z%d,%d,%d",&x,&y,&z);值,而并不是一个地址值。
if(x<y)if(y<z)printf(/,%d\n,/,z);
elseprintf(〃%d\n〃,y);
二、填空题(每小题2分,共20分)
elseif(xVz)printf("%d\n",z);
elseprintfx);
1、C语言提供的三种逻辑运算符是_____。
}
A、34【答案】&,〃,!
B、12
C、92、若a和b均为int型变量,则以下语句的功能是.。a+=b;b=a-b;a-=b;
D、不确定的值
【答案】['交换变量a和b的值']
【答案】A
19、定义如下变量和数组:inti;intx[3][3]={1,2,3,4,5,6,7,8,9}则下面语句的3、C语言源程序经过编译后,生成文件的后缀名是—.
输出结果是ofor(i=0;i<3;i++)printfx[i][2T]);
A、258【答案】.c
B、147
4、在c语言中(以16位pc机为例),一个char型数据在内存中所占的字节数为
C、357
D、369
一个int型数据在内存中所占的字节数为。
【答案】A
20、有以下结构体说明、变量定义和赋值语句【答案】1,2
structstd
(5、在c语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是
charname[10];________。我的答案:break
intage;
【答案】填空题]
charsex;
)6、以下程序的输出结果是。
s[5],*ps;main()
ps=&s[0];{
则以下scanf函数调用语句中错误引用结构体变量成员的是_______.chars[]="abcdef”;
A、scanf("%S",S[0].name);s[3]=AO);
B、scanf("%d”,&s[0].age);printf(线s\n”,s);
C>scanf("%C”,&(ps->sex));
D、scanfps->age);
【答案】D【答案】['abc']
7、一个c语言源程序由若干函数组成,其中至少应含有一个()【答案】#include<stdio.h>
voidmain()
【答案】主函数(或main函数)。
{inta[10];
inti,j,temp;
8、在传值调用中,实际是把实参的—
printf(z/inputscore:\n^);
【答案】地址传给形参for(i=0;i<10;i++)
scanf&a[i]);
9、下面程序的运行结果是。
printf('\n");
#include<stdio.h>for(i=l;i<10;i++)
main()
for(j=0;j<9;j++)
(
if(a[j]<a[j+l])
inti,t,sum=O;
{temp=a[j];
for(t=i=l;i<=10;)
a[j]=a[j+l];
(a[j+l]=temp;
sum+=t;
)
++i;for(i=0;i<10;i++)
if(设3=0)t=-i;
printf(〃%d,",a[i]);
elset=i;
}
)
printf("sum=%d”,sum);2、编写程序:字符串排序。如下:
)请输入3个字符串,每个字符串以回车结束!:
b
【答案】sum=19
a
10、下面程序段的运行结果是_______。for(a=l,i=-l;-l<=i<1;i++)
排序后的结果为:
(
a
a++;
b
printf(〃%d,〃,a);
t(本题14分)
)
printf("%2d”,i);
【答案】#include<stdio.h>
#include<stdlib.h>
【答案】1
#include<string.h>
三、编程题(每小题分,共40分)
voidswap(char*strl,char*str2);
1、从键盘输入10名学生的成绩数据,按成绩从高到低的顺序排列并输出。(提示:用数intmain()
组存放成绩数据)(本题10分)
charstrl[20],str2[20],str3[20];printf(zz姓名%s\n5科成绩平均分是:%.If分",a.name,AverageScore);
printf(〃请输入3个字符串,每个字符串以回车结束!:\n〃);return0;
fgets(strl,(sizeofstrl/sizeofstrl[0]),stdin);)
fgets(str2,(sizeofstr2/sizeofstr2[0]),stdin);
fgets(str3,(sizeofstr3/sizeofstr3[0]),stdin);
if(strcmp(strl,str2)>0)swap(strl,str2);
if(strcmp(str2,str3)>0)swap(str2,str3);
if(strcmp(strl,str2)>0)swap(strl,str2);
printf(〃排序后的结果为:\n〃);
printf(/z%s\n%s\n%s\nz/,strl,str2,str3);
return0;
}
voidswap(char*stri,char*str2)
chartem[20];
strcpy(tem,strl);
strcpy(strl,str2);
strcpy(str2,tem);
)
3、编写程序:利用结构体类型,编程计算一名同学5门课的平均分。(本题16分)
【答案】structstudent{
charname[30];
floatscore[5];
};
intmain(intargc,constchar*argv[])
|
structstudenta={“zhangsan”,20,30,40,50,60};
floatsum=0;//定义一个5科分数之和变量
floatAverageScore=0;〃定义一个平均分变量
for(inti=0;iV5;i++){
sum=sum+a.score[i];
AverageScore=sum/5;
)
2023年C语言期末(二)
(总分100分,考试时长90分钟)switch(k)
题号一二三总分阅卷人
default:break;
分值402040100case1:n=n+k;
case2:case3:n+=k;
得分
■题目包括三大部分,单项选择题,填空题,编程题,请按要求作答。)
■答卷必须用蓝色或者黑色钢笔、圆珠笔,不许用铅笔或者红笔作答。printf("%d\n",n);
■考试中途不能无端离场,否则视为放弃•考试过程中如遇问题请及时向监考老师反馈。)
一、单项选择题(每小题2分,共40分)程序运行后的输出结果足。
A、0
1、下列叙述中不正确的是.
B、4
A、变量名的第一个字符必须是字母
C、6
B、变量名的长度不超过255个字符
D、7
C、变量名可以包含小数点或者内嵌的类型声明字符
【答案】D
D、变量名不能使用关键字
5、对于if(表达式)语句,以下说法正确的是。
【答案】C
A、“表达式”的值只能是整数值
2、在下面关于指针的说法中,错误的一条是。
B、在“表达式”中不能调用返回整数的函数
A、变量的指针就是变量的地址
C、在“表达式”中不能含有函数调用
B、可以将一个整型量或任何其他非地址类型的数据赋给一个指针变量
D、“表达式”可以是算术表达式
C、一个指针变量只能指向同一个类型的变量
【答案】D
D、指针变量中只能存放地址(指针)
【解析】C语言规定,if(表达式)语句中的“表达式可以是关系表达式、逻辑表达式,甚
【答案】B
至是数值表达式,允许函数调用,但调用函数的返回值必须符合要求,因此选项ABC
3、在c语言中,if语句后的一对原括号中,用以决定分支的流程的表达式
错误,选项D正确;本题答案为D
A、只能用逻辑表达式
6、若有以下程序:inta=l,b=2;a=a'b;b=b'a;则执行以上语句后a和b的值分别是
B、只能用关系表达式
C、只能用逻辑表达式或关系表达式
A、a=l,b=2
D、可用任意表达式
B、a—3,b=l
【答案】D
C、a=3,b=2
4、有下列程序:
D^a=2.b=l
main()
【答案】B
(
7、关于数组的叙述中,下列说法不正确的是。
intk=5,n=0;
A、数组是最简单的复合数据类型,是有限元素的有序集合
while(k>0)
B、数组的元素可以是值(基本数据类型)、对象或其他数组C、函数的定义和调用都不能嵌套
C、定义数组时,必须分配内存D、函数的定义和调用都可以嵌套
D、一个数组中的元素都必须是相同的类型【答案】A
【答案】C12、对说明语句inta[10]={6,7,8,9,10};
【解析】【命题目的】考查数组的基本概念。【解题要点】定义数组时,并不分配内存,的正确理解是_______。
所以对数组的定义并不要求给出其元素的个数。【考点链接】数组分配内存是通过new操A、将5个初值依次a[l]至a[5]
作符或静态初始化来实现的。B、将5个初值依次a[0]至a[4]
8、在位运算中,操作数每左移一位,其结果相当于C、将5个初值依次a[5]至a[9]
A、操作数乘以2D、将5个初值依次a[6]至a[10]
B、操作数除以2【答案】B
C、操作数除以413、对长度为8的数组进行快速排序,最多需要的比较次数为。
D、操作数乘以4A、8
【答案】AB、28
【解析】左移运算符“<<”是双目运算符。其功能把“<<”左边的运算数的各二进C、56
位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。左移1D、64
位,相当于该数乘以2。【答案】B
9、下列字符串中不能作为c标识符使用的是o【解析】对长度为n的线性表进行快速排序,最坏情况下需要比较的次数为n(n-l)/2.
A、WHILE数组属于线性表,故对长度为8的数组进行快速排序,最多需要的比较次数为8(8-
B、user1)/2=28.本题答案为B选项。
C、_lvar14、以下关于逻辑运算符两侧运算对象的叙述中正确的是。
D、9starsA、可以是任意合法的表达式
【答案】DB、只能是整数0或非0整数
【解析】此题考查的是C语言中标识符的定义。标识符由字母、数字或下划线构成,但C、可以是结构体类型的数据
第一个字符必须是字母或下划线;标识符中大小写字母是不同的;用户定义标识符时,D、只能是整数0或1
不允许采用系统的关键宇。【答案】A
10、要定义一个字符串,下列选项中错误的是。【解析】C语言的逻辑运算符比较特别,它的操作数没有明确的数据类型,可以是任意合
A、chars[5]="hello"法的表达式,所以选择A
B、chars[]="hello”;15、有以下程序:
C、char*s=“hello”;#include<stdio.h>
D、chars[]={〃h〃,〃e〃main()
【答案】D(
【解析】定义字符数组,字符元素要用单引号括起来。chara-h’;
II、对于c语言的函数,下列叙述中正确的是_a=(a>='a'&&aO'z')?(a,a'+'a'):a;
A、函数的定义不能嵌套,但函数调用可以嵌套printf(z,%c\nz,,a);
B、函数的定义可以嵌套,但函数调用不能嵌套
)
程序运行后的输出结果是0
A、Astructstua={“zhao〃,'m',85.0,90.0},b={〃qian〃,'f',95.0,92.0};
ab二a;
C、IIprintf("%s,%c,%2.Of,%2.0f\n〃,b.name,b.sex,b.score[0],b.score[1]);
D、h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年江苏省盐城市射阳县一级造价工程师《土建计量》深度预测试卷含解析
- DB46T 648-2024尖鳍鲤的规范
- 保险课程设计怎么写
- 按钮调光灯课程设计
- java课程设计超市会员管理系统
- 美容美发公司股东变更合同书(标准版)
- 森林公园生态旅游环境保护与法律法规完善考核试卷
- 压力容器行业的安全文化建设与实践考核试卷
- 道路货物运输与跨境电商平台对接考核试卷
- 货运枢纽站安全技术标准与操作规程考核试卷
- 《临床药物治疗学》期末考试复习题库(含答案)
- 第一单元 项目(二)探究计算机中的数据表示-认识数据编码(一)课件-高中信息技术必修1
- 5.1 延续文化血脉(教案)九年级道德与法治上册(部编版)
- 手术医师能力评价表
- 禾川x3系列伺服说明书
- 图书编写规范
- 田字格信笺纸
- 新人教版pep四年级英语上册Unit2my-schoolbag-A-Lets-Talk课件
- 水罐施工方案
- 建立财务管理中心方案
- 喜迎国庆 国庆节主题班会课件
评论
0/150
提交评论