版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2/2C语言期末练习一、单项选择题(每小题2分,共40分)1、以下关于c语言标识符的描述中,正确的是________。 A、标识符可以由汉字组成 B、标识符只能以字母开头 C、关键字可以作为用户标识符 D、Area与area是不同的标识符2、当变量c的值不为2、4、6时,值也为"真"的表达式是________。 A、(c==2)‖(c==4)‖(c==6) B、(c>=2&&c<=6)‖(c!=3)‖(c!=5) C、(c>=2&&c<=6)&&!(c%2) D、(c>=2&&c<=6)&&(c%2!=1)3、下列程序的输出结果是________。
main()
{
inta=0,i;
for(i=1;i<5;i++)
{
switch(i)
{
case0:case3:a+=1;
case1;
case2:a+=2;
default:a+=3;
}
}
printf("%d",a);
} A、19 B、1 C、6 D、84、结构化程序设计思想的核心是要求程序只由顺序、循环和______三种结构组成。 A、分支 B、单入 C、单出 D、有规则GOTO5、在c语言中,函数返回值的类型最终取决于()。 A、函数定义时在函数首部所说明的函数类型 B、return语句中表达式值的类型 C、调用函数时主调函数所传递的实参类型 D、函数定义时形参的类型6、若变量x、y已正确定义并赋值,以下符合c语言语法的表达式是________。 A、++x,y=x-- B、x+l=y C、x=x+10=x+y D、double(x)/107、若二维数组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+18、在c语言中,以下一组运算符中,优先级最高的运算符是______。 A、<= B、= C、% D、&&9、下列字符串中不能作为c标识符使用的是________。 A、WHILE B、user C、_lvar D、9stars10、若有下面的程序片段:
int[12]={0},*p[3],**pp,i;
for(i=0;i<3;i)p[i]=&a[i*4];
pp=p
则对数组元素的错误引用是________。 A、pp[0][1] B、a[10] C、p[3][1] D、*(*(p+2)+2)11、有以下程序
#include<stdio.h>
voidfun(inta[],intn){
inti,t;
for(i=0;i<n/2;i++)t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
}
main(){
intk[10]=1,2,3,4,5,6,7,8,9,10,i;
fun(k,5);
for(i=2;i<8;i++)printf("%d",k[i]);
printf("\n");
}
程序的运行结果是______。 A、345678 B、876543 C、1098765 D、32167812、判断实数x属于闭区间[a,b]的表达式为▁▁▁▁▁设a为整型变量,不能正确表达数学关系10<a<15的c语言表达是________。 A、a>10&&a<15 B、a>10||a<15 C、!(a<=10||a>=15) D、!(a<=10)&&!(a>=15)13、以下叙述中正确的是________。 A、书写源程序时,必须注意缩进格式,否则程序会有编译错误 B、程序的主函数名除main外,也可以使用main或_main C、程序可以包含多个主函数,但总是从第一个主函数处开始执行 D、在C程序中,模块化主要是通过函数来实现的14、c语言中的基本数据类型包括 A、整型、实型、字符型 B、整型、字符型、数组 C、整型、实型、逻辑型 D、整型、实型、结构体15、下面程序段的运行结果是________.intn=0;while(n++<=2);printf("%d",n); A、2 B、3 C、4 D、有语法错16、有以下程序:
main(){
intk=4,n=0;
for(;n<k;){
n++;
if(n%3!=o)continue;
k--;
}
printf("%d,%d\n",k,n);
}
程序运行后的输出结果是________。 A、1,1 B、2,2 C、3,3 D、4,417、下面程序的输出是______。
main()
{
structcmplx
{
intx;
inty;
}
cnum[2]={1,3,2,7};
printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);
} A、0 B、1 C、3 D、618、运行下面程序时,若从键盘输入"3,4<cr>",则程序的输出结果是_________.
#include<stdio.h>
voidmain()
{
inta,b,s;
scanf("%d,%d",&a,&b);
s=a;
if(s<b)s=b;
s=s*s;
printf("%d\n",s);
} A、14 B、16 C、18 D、2019、设charstr[100];inti=5;则引用数组元素的错误形式的是________。 A、str[I+10] B、*(srr+ C、(str+I-1) D、*(&(str++)+20、若有以下说明和语句:
structst
{
intn;
char*ch;
}
;
structsta[3]
{
5,"abc",7,"def",9,"ghk"
}
,*p=a则值为6的表达式是______。 A、p++->n B、p->n++ C、(*.n++ D、++p->n二、填空题(每小题2分,共20分)1、已知t=5,则表达式"t-=t+=3"的值是______。2、以下程序的输出结果是________。
main()
{
intx;
printf("%d\n",(x=2*4,x+5));
}3、字符串函数___________用于把一个字符串写入指定的磁盘文件中。4、已知"floata=3.5;
intb=12;
",则算术表达式"a+b/5"的值是_____________。5、main()
{
inta,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=20)break;
if(b%3==1)
{
b+=3;
continue;
}
b-=5;
}
}
程序的输出结果a的值为________。6、一个c程序总是从_____________函数开始执行的。7、使文件指针重新定位到文件读写的首地址的函数是________。8、在c语言中,如果采用printf函数将整个字符串一次输出,那么对应的格式控制符为"________"。9、下面程序的功能是统计正整数的各位数字中零的个数,并求各位数字中的最大者。请分析程序填空。
#include<stdio.h>
main()
{
intn,count,max,t;
count=max=0;
scanf("%d",&n);
do
{
t=【1】________;
if(t==0)++count;
elseif(max<t)【2】________;
n/=10;
}
while(n);
printf("count=%d,max=%d",count,max);
}10、执行下列程序段后,输出的a的值是_____________。
main()
{
intm=0;
switch(m)
{
case0:m=2*m+1;
break;
case1:m=m-1;
break;
case2:m=m+5;
break
}
printf("%d",m);
}三、编程题(每小题分,共40分)1、编写程序:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。(本题10分)2、任意输入一行字符串保存在一维字符数组中,判断里面数字字符的个数。(本题14分)3、题⽬描述,定义⼀个包括年、⽉、⽇的结构体变量,读⼊年、⽉、⽇,计算该⽇在当年中是第⼏天。注意闰年问题。
输⼊
三个整数,分别表⽰年、⽉、⽇。保证输⼊是实际存在的⽇期,且年份在1000⾄3000之间(包含1000和3000)。输出
输出该⽇期是⼀年中的第⼏天。
请注意⾏尾输出换⾏。
样例输⼊
20121221
样例输出
356(本题16分)
参考答案及解析一、单项选择题1、D2、B3、A4、A【解析】结构化设计方法的基本要求是:在详细设计阶段为了确保逻辑清晰,应该对所有的模块只使用单入口、单出口和顺序、分支及循环三种基本控制结构。5、A6、A【解析】选项A)为C语言中的逗号表达式。赋值表达式的左侧不能是表达式。在进行强制类型转换时,数据类型两边的圆括号不能省略。7、D8、C9、D【解析】此题考查的是C语言中标识符的定义。标识符由字母、数字或下划线构成,但第一个字符必须是字母或下划线;标识符中大小写字母是不同的;用户定义标识符时,不允许采用系统的关键宇。10、C【解析】考查指向数组的指针。[解题要点]本题综合考查一维数组和多维数组指针变量的表示方法。在C语言中,引用数组元素的方法有两种,即:下标法和指针法。下标法如a[i]形式;指针法如*(a+i)或*(p+1)。其中a是数组名,p是指向数组的指针变量,其初值p=a。再如*(*(p+2)+2)是a[2][2]的值,注意语句中指针型数组的书写格式,不能写成“(*数组名)[长度]”,因为这是定义指向含有“长度”个元素的一维数组的指针变量。例如有定义语句“inta,b,c,c,*P[3]={&a,&b,&c};”,它定义了一个名为p的指针型数组,其3个元素p[0],p[1],p[2]分别指向B个整型变量a,b,c。[考点链接]数组元素的引用方法。11、D【解析】在主函数中,定义了一维数组k,并通过调用fun函数将形参数组a指向实参数组k所在的存储单元,这样,a和k共用同一存储单元,所以对数组a的元素值的改变相当于对相应数组k的元素值的改变。在fun函数中,通过for循环对数组元素a[0]与a[4]、a[1]与a[3]的值分别作了交换,也即相当于主函数中k[0]与k[4]、k[1]与k[3]的值分别作了交换,此时k中各元素的值为5,4,3,2,1,6,7,8,9,10,故输出k[2]到k[7]的值为321678。12、B13、D【解析】C语言的源程序中对缩进没有要求所以A选项错误。C语言中区分大小写main函数不能写成main或main所以B选项错误。一个C程序有且只有一个主函数所以C选项错误。14、A15、C16、C【解析】在本程序的for循环中,用到了一个continue语句,continue语句的作用是停止本次循环,不执行循环体内continue语句后面的其他语句,继续下次循环的条件判断。首先在for循环中n自加1(值变为1),然后执行后面的if语句,由于if语句后面括号的表达式1%3!=0的值为真,程序执行continue语句,回到for循环的开始部分,并且判断for循环中的条件表达式(n<k)为真,重复执行“n++;”语句,如此循环直到n=3时,if语句判定条件中表达式3%3!=0的值为假,程序执行if语句后面的“k--;”语句,此时k的值为3,不满足n<k,退出for循环。故最后的k和n的值为3和3,选项C符合题意。17、D18、B19、D20、D【解析】根据结构变量的存储特点,p+1意味着增加地址值为结构体数组a的一个元素所占的字节数,即p++使p由a[0]指向a[1]起始地址。本题++p->n得到p指向的结构体变量中成员n的值使之加1。因为p指向数组a起始地址,p->n的值为5,再执行自加1运行,结果为6。二、填空题1、02、133、fputs#fputs()4、5.5#5.5000005、86、main#主#main()#main()7、rewind8、%s9、【1】n%10【2】max=t10、1三、编程题1、#include<stdio.h>
#include<stdlib.h>
voidfun(int*s,intn)
{
inti;
intmax=s[0];
inta=0;
for(i=0;i<n;i++)
{
if(s[i]>max)
{
max=s[i];
a=i;
}
}
s[a]=s[0];
s[0]=max;
intj;
intmin=s[n-1];
intb=n-1;
for(j=0;j<n;j++)
{
if(s[j]<min)
{
min=s[j];
b=j;
}
}
s[b]=s[n-1];
s[n-1]=min;
}
voidprintf_s(int*s,intn)
{
inti;
for(i=0;i<n;i++)
printf("%d",s[i]);
printf("\n");
}
intmain()
{
ints[20];
inti,n;
printf("设置数组长度(<20):");
scanf("%d",&n);
printf("输入%d个元素:\n",n);
for(i=0;i<n;i++)
scanf("%d",&s[i]);
fun(s,n);
printf_s(s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第三节水圈和水循环教案
- 《楼宇经济发展情况报告》
- 屋顶餐厅屋顶防水修缮协议
- 苏教版五年级上册美术教案
- 冷冻仓储服务合同
- 河道城市办公设施工程合同
- 建筑绿化模板施工承包合同
- 航空航天甲方现场管理办法
- 玩具零售联营合同
- 教育工程合同教学质量
- 河南省周口市川汇区2024-2025学年八年级上学期期中质量监测地理试卷
- 中国航空学会-2024低空经济场景白皮书
- 学生会干部培训课件
- 期中试卷(试题)-2024-2025学年六年级上册数学苏教版
- 2024年新人教版一年级数学上册第4单元《第1课时 10的再认识》课件
- 二十届三中全会精神测试题(含答案共600道题)(可编辑)
- 2024年检察院招录书记员考试法律基础知识及答案
- 抗美援越烈士们永垂不朽
- 设备能力指数(CMK)计算表
- 2021年村法制宣传台账(替换图片 拿来即用)
- 养老护理员国家职业技能标准(2019年版)
评论
0/150
提交评论