高三C语言第 7 次月考文档格式.docx

上传人:b****3 文档编号:17551645 上传时间:2022-12-07 格式:DOCX 页数:8 大小:23.31KB
下载 相关 举报
高三C语言第 7 次月考文档格式.docx_第1页
第1页 / 共8页
高三C语言第 7 次月考文档格式.docx_第2页
第2页 / 共8页
高三C语言第 7 次月考文档格式.docx_第3页
第3页 / 共8页
高三C语言第 7 次月考文档格式.docx_第4页
第4页 / 共8页
高三C语言第 7 次月考文档格式.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

高三C语言第 7 次月考文档格式.docx

《高三C语言第 7 次月考文档格式.docx》由会员分享,可在线阅读,更多相关《高三C语言第 7 次月考文档格式.docx(8页珍藏版)》请在冰豆网上搜索。

高三C语言第 7 次月考文档格式.docx

},{21,"

200402"

},{10,"

200403"

}};

structstudent*p=stu;

以下选项中引用结构体变量成员的表达式错误的是()。

A)(p++)->

num 

B)p->

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("

p+6);

D)scanf("

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<

stdio.h>

stdlib.h>

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<

  {inta;

  a=(int)((double)(3/2)+0.5+(int)1.99*2);

  printf("

a);

}程序运行结果是:

_______________________

2、inta=5;

voidfun(intb)

{inta=10;

 

a+=b;

printf(“%d”,a);

{intc=20;

fun(c);

a+=c;

printf(“%d\n”,a);

程序运行结果是:

3、 

{inta[]={2,3,5,4},i;

4;

switch(i%2)

{case0:

switch(a[i]%2)

{case0:

a[i]++;

break;

case1:

a[i]--;

}break;

case1:

a[i]=0;

for(i=0;

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("

t);

5、#include<

{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)功能为:

判断从键盘输入的某个字符串是否为回文串。

string.h>

  {chars[40],*p=s,*q;

gets(p);

for(;

p<

q;

p++,q--)

if(*p!

=*q)break;

if()printf(“Yes!

elseprintf(“No”);

}

(2)下面程序的功能是对链表进行建立和输出,每个结点有(num,name,next)三个成员请补充程序。

#include"

stdio.h"

stdlib.h"

alloc.h"

#defineLENsizeof(structstudent)

{longnum;

1;

{structstudent*head,*p;

inti;

head=NULL;

30;

{p=(structstudent*)malloc(LEN);

scanf("

%ld,%f"

p->

num,p->

name);

next=head;

2;

p=head;

while(p!

=NULL)

{printf("

%ld,%5.1f\n"

p->

3;

}}

35.阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。

请在答题卡中指出错误的行号,并给出该行修改后的程序代码。

(每空5行,共25分)

(1)1、给定程序modi.c中,fun函数的功能是:

将n个无序整数从小到大排序。

请改正程序中的错误,使它能得出正确结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构!

L1fun(intn,int*a)

L2{inti,j,p,t;

L3for(j=0;

j<

n-1;

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;

=n;

i++,z++)

L12{printf("

%4d"

*z);

L13if(!

(i%10))printf("

\n"

);

}printf("

{intaa[20]={9,3,0,4,1,2,5,6,8,10,7},n=11;

fun(n,aa);

\nAftersorting%dnumbers:

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)!

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语言答题卡

姓名________班级_________分数_________

17____

18_____

19____

20____

21______22______

二、基本操作题(每空3分,共12分)

28.

(1)________________

(2)________________

(3)________________(4)________________

31.

(1)________________

(2)________________

四、程序分析(共75分)

33.

(1)________________

(2)________________

(3)_______________(4)_______________

(5)________________

34.

(1)________________

(2)________________

35

(1)错误行____改正为:

______________________

(2)错误行____改正为:

______________________

(3)错误行____改正为:

________________________

(4)错误行____改正为:

(5)错误行____改正为:

五、程序编写(共25分)

36.a)

b)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1