高三C语言第 7 次月考.docx
- 文档编号:4616728
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:8
- 大小:23.31KB
高三C语言第 7 次月考.docx
《高三C语言第 7 次月考.docx》由会员分享,可在线阅读,更多相关《高三C语言第 7 次月考.docx(8页珍藏版)》请在冰豆网上搜索。
高三C语言第7次月考
高三C语言三月月考试题
姓名:
________班级:
________总分:
__________
一、选择题(每小题5分,共30分)
17.执行x=5>1+2&&2||2*4<4-!
0后,x的值为:
()
A)3B)1C)2D)0
18.根据以下定义,能输出字母M的语句是()。
structperson{charname[9];intage;};
structpersonclass[10]={“John”,17,”Paul”,19,”Mary”,18,”Adam”,16,};
A、printf(“%c\n”,class[3].name);
B、printf(“%c\n”,class[3].name[1]);
C、printf(“%c\n”,class[2].name[1]);
D、printf(“%c\n”,class[2].name[0]);
19.有以下说明和定义语句
structstudent
{intage;charnum[8];};
Structstudentstu[3]={{20,"200401"},{21,"200402"},{10,"200403"}};
structstudent*p=stu;
以下选项中引用结构体变量成员的表达式错误的是()。
A)(p++)->num B)p->num C)(*p).num D)stu[3].age
20.有以下程序 main()
{intx=011;
printf("%d\n",++x); }
程序运行后的输出结果是
A)12B)11C)10D)9
21.设有定义:
doublex[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是
A)scanf("%f",&x[6]);B)scanf("%lf",*(x+6));
C)scanf("%lf",p+6);D)scanf("%lf",p[6]);
22.若有定义语句:
chars[3][10],(*k)[3],*p;,则以下赋值语句正确的是
A)p=s;B)p=k;C)p=s[0];D)k=s;
二、基本操作题
28)c语言中,文件操作fopen函数的原型为FILE*fopen(char*filename,char*mode),用于打开一个指定文件,若成功返回一个与之关联的流,否则返回___________;代码片段FIEL*fp=fopen(“c:
\\test.dat”,”a”)的含义是以_________的方式打开路径”c:
\\test.dat”对应的文件,当访问的文件是二进制文件时,还需要在字符串“a”后增加一个字符________.以上代码片段对应的关闭文件的C语言代码是___________.
三、综合应用题(每空5分,共20分)
31.设文件studs.dat中存放着学生的基本信息,基本信息由以下结构体来描述:
structstudent{
longintnum;/*学号*/
charname[20];/*姓名*/
charmajor[25];};/*专业*/
下列程序的功能是:
输入要读取的学生人数,利用malloc动态分配内存来存储从文件中读取的学生信息(以方便进一步处理),并输出读取的学生的学号,姓名,专业。
请将正确的内容填入答题卡相应位置中,使程序完整(每空5分,共20分)
#include
#include
structstudent{
longintnum;
charname[20];
charmajor[25];};
FILE*fp;
main()
{structstudentst,*pst;
inti,num,realnum;
printf(“请输入读取的学生数:
”);
scanf(“%d”,&num);
pst=(structstudent*)malloc(
);
if(!
pst)return;
fp=fopen(“studs.dat”,”rb”);
if(NULL==fp)
{
;return;}
realnum-0;
printf(“%s\t%s\t%s\t%s\n”,”number”,”name”,”major”);
/*文件包含的学生数量可能少于输入的人数*/
for(i=0;i<
;i++)
{fread(pst+i,sizeof(structstudent),l,fp);
realnum++;
;printf(“%d\t%ld\t%s\t%s\n”,realnum,st.num,st.name,st.major);}
free(pst);fclose(fp);
}
四、程序分析题(本题共3小题,共75分)
33.阅读程序,写出运行结果(每空5分,共25分)
1、 #include
main()
{inta;
a=(int)((double)(3/2)+0.5+(int)1.99*2);
printf("%d\n",a);
}程序运行结果是:
_______________________
2、inta=5;
voidfun(intb)
{inta=10;
a+=b;printf(“%d”,a);}
main()
{intc=20;
fun(c);a+=c;printf(“%d\n”,a);}
程序运行结果是:
_______________________
3、 main()
{inta[]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{case0:
switch(a[i]%2)
{case0:
a[i]++;break;
case1:
a[i]--;
}break;
case1:
a[i]=0;}
for(i=0;i<4;i++)printf(“%4d”,a[i]);printf(“\n”);}
程序运行结果是:
_______________________
4、下列程序的输出结果是
structabc{inta,b,c;};
main()
{structabcs[2]={{1,2,3},{4,5,6}};intt;
t=s[0].a+s[1].b;printf("%d\n",t);}
程序运行结果是:
_______________________
5、#include
main()
{intx[]={2,14,16,18,10,12,14,16},*p=x,a,b;
a=*p++;b=(*p)++;c=*(p++);
printf(“a=%4d\tb=%4d\tc=%4d\t”,a,b,c);
}输出结果是______________
34.程序填空。
按照题目的要求,将正确内容填入答题卡相应位置,使程序完整(每空5分,共25分)
(1)功能为:
判断从键盘输入的某个字符串是否为回文串。
#include
main()
{chars[40],*p=s,*q;
gets(p);
for(;p if(*p! =*q)break; if()printf(“Yes! ”); elseprintf(“No”);} (2)下面程序的功能是对链表进行建立和输出,每个结点有(num,name,next)三个成员请补充程序。 #include"stdio.h" #include"stdlib.h" #include"alloc.h" #defineLENsizeof(structstudent) structstudent {longnum; charname[20]; 1;}; main() {structstudent*head,*p;inti; head=NULL; for(i=0;i<30;i++) {p=(structstudent*)malloc(LEN); scanf("%ld,%f",&p->num,p->name); p->next=head; 2;} p=head; while(p! =NULL) {printf("%ld,%5.1f\n",p->num,p->name); 3;}} 35.阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。 请在答题卡中指出错误的行号,并给出该行修改后的程序代码。 (每空5行,共25分) (1)1、给定程序modi.c中,fun函数的功能是: 将n个无序整数从小到大排序。 请改正程序中的错误,使它能得出正确结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! L1fun(intn,int*a) L2{inti,j,p,t; L3for(j=0;j L4{p=j; L5for(i=j+1;i L6if(a[p]>a[i])t=i; L7if(p! =j){t=a[j];a[j]=a[p];a[p]=t;} }} L9putarr(intn,int*z) L10{inti; L11for(i=1;i<=n;i++,z++) L12{printf("%4d",*z); L13if(! (i%10))printf("\n");}printf("\n");} main() {intaa[20]={9,3,0,4,1,2,5,6,8,10,7},n=11; fun(n,aa); printf("\nAftersorting%dnumbers: \n",n);putarr(n,aa);} (2).以下函数的功能是: 在指针数组表示的字符串列表中查找特定的字符,指针数组以NULL指针结束,如果找到返回TRUE,否则返回FALSE。 程序中有两处错误,将错误处的行号及正确语句填入答题卡相应位置,不得增行或删行(每处错误5分,共10分) L1#include L2#include L3#defineTRUE1 L4#defineFALSE0 L5intfine_string(char**strings,charvalue) L6{char*cur_str; L8if(*strings==NULL) L9returnFALSE; L10while((cur_str=*strings)! =NULL) L11{while(cur_str! =’\0’) L13if(*cur_str++==value) L14returnTRUE;} L16returnFALSE;} 六、程序设计题 36. (1)一串数码是否构成合法的信用卡号,可以通过CheckCard算法来验证。 CheckCard算法验证的过程如下: 1卡号的长度必须是16位。 2从卡号最后一位数字开始,将奇数位数字求和。 3从卡号最后一位数字开始,将偶数位数字乘以2(如果乘积为两位数,则减9),再求和。 4将②和③所得的和值相加,当结果能被10整除时,则校验通过。 例如,卡号是: 5432123456788881奇数位和等于35 偶数位乘以2(乘积为两位数的减去9)的结果: 16261577,求和等于35。 35+35=70可以被10整除,校验通过。 编写函数实现CheckCard算法,判断输入的卡号是否能通过验证,通过则显示“成功”,否则显示“失败”。 (2)、随着信息化进程的不断推进,数据的安全性越来越受到人们的重视,数据加密技术是保证数据安全的重要手段。 编程实现对C盘根目录下名为”new.dat”文件的数据进行加密,加密方式是将”new.dat”文件中每个字符与字符A进行异或运算,运算后的加密数据存储到”new.dat”文件中。 湖南省2015年汨罗职业中专学校模拟考试 计算机应用类专业C语言答题卡 姓名________班级_________分数_________ 一、选择题(每小题5分,共30分) 17____ 18_____ 19____ 20____ 21______22______ 二、基本操作题(每空3分,共12分) 28. (1)________________ (2)________________ (3)________________(4)________________ 三、综合应用题(每空5分,共20分) 31. (1)________________ (2)________________ (3)________________(4)________________ 四、程序分析(共75分) 33. (1)________________ (2)________________ (3)_______________(4)_______________ (5)________________ 34. (1)________________ (2)________________ (3)_______________(4)_______________ (5)________________ 35 (1)错误行____改正为: ______________________ (2)错误行____改正为: ______________________ (3)错误行____改正为: ________________________ (4)错误行____改正为: ______________________ (5)错误行____改正为: ______________________ 五、程序编写(共25分) 36.a) b)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高三C语言第 次月考 语言 月考