C语言期末B卷.docx

上传人:b****8 文档编号:10081968 上传时间:2023-05-23 格式:DOCX 页数:10 大小:18.83KB
下载 相关 举报
C语言期末B卷.docx_第1页
第1页 / 共10页
C语言期末B卷.docx_第2页
第2页 / 共10页
C语言期末B卷.docx_第3页
第3页 / 共10页
C语言期末B卷.docx_第4页
第4页 / 共10页
C语言期末B卷.docx_第5页
第5页 / 共10页
C语言期末B卷.docx_第6页
第6页 / 共10页
C语言期末B卷.docx_第7页
第7页 / 共10页
C语言期末B卷.docx_第8页
第8页 / 共10页
C语言期末B卷.docx_第9页
第9页 / 共10页
C语言期末B卷.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言期末B卷.docx

《C语言期末B卷.docx》由会员分享,可在线阅读,更多相关《C语言期末B卷.docx(10页珍藏版)》请在冰点文库上搜索。

C语言期末B卷.docx

C语言期末B卷

《C语言程序设计》期末考试试卷(B卷120分钟)

年级院系专业姓名学号座位号

题号

得分

得分

 

得分

一.单项选择题:

(每题2分,共20分)

下列各题A)、B)、C)、D)四个选项中只有一个是正确的,请将正确选项填在答题卡相应题目的横线上。

答在试卷上不得分。

1.执行程序:

inta;printf("%d\n",(a=3*5,a*4,a+5));后,a的值是______。

A)60B)20C)15D)10

2.程序段:

intx=023;printf("%d\n",--x);的输出是______。

A)19B)18C)23D)22

3.程序段:

staticchars[10]={'C','h','i','n','a'};printf("%d\n",strlen(s));的输出是______。

A)6B)5C)11D)10

4.若fun(intx){printf(“%d\n”,x);},则fun_______。

A)返回值为void类型B)返回值类型无法确定

C)返回值为int类型D)没有返回值

5.有宏定义:

#defineMULT1(a,b)a*b

#defineMULT2(a,b)(a)*(b)

且引用宏:

y=MULT1(3+2,5+8);z=MULT2(3+2,5+8);则y和z的值是______。

A)y=65,z=65B)y=21,z=65C)y=65,z=21D)y=21,z=21

6.程序段chars[]="Hello",*p;p=s;执行后,*(p+5)的值是______。

A)'o'B)'\0'C)'o'的地址D)不确定的值

7.程序段:

char*s=”ABCD”,*p;for(p=s;*p;p++)printf("%s\n",p);的输出是______。

A)ABCDB)AC)DD)ABCD

BCDBCABC

CDCBAB

DDAA

8.若定义:

int(*p)[3];则标识符p______。

A)定义不合法。

B)是一个指针数组名,每个元素是一个指向整型变量的指针。

C)是一个指针,它指向一个具有三个元素的一维数组。

D)是一个指向整型变量的指针。

9.定义:

structsk{inta;floatb;}data,*p;且p=&data;则正确引用成员a的方式是______。

A)p.data.aB)(*p).aC)p->data.aD)(*p).data.a

10.以二进制只读方式打开一个已有的文本文件file1,正确调用fopen函数的方式是______。

A)FILE*fp;B)FILE*fp;

fp=fopen("file1","rb");fp=fopen("file1","r+");

C)FILE*fp;D)FILE*fp;

fp=fopen("file1","r");fp=fopen("file1","rb+");

得分

二.填空题:

(每空1分,共20分)

请将正确答案填在答题卡相应题目的横线上。

答在试卷上不得分。

1.C程序一个函数的定义由__________和____________两部分组成。

2.C语言的整型变量可分为基本型、短整型、________和________。

3.C语言在判断一个量是否为“真”时,以____代表“假”,以____代表“真”。

4.C语言中的break语句只能用于______和______语句。

5.对________和________型数组不赋初值,系统会对所有元素自动赋以0值。

6.C语言中“文件包含”是通过____________命令完成的,而符号常量是通过____________命令定义的。

7.对于数组x[5][5],*(x+2)+3表示__________,*(x[3]+2)表示__________。

8.若定义:

struct{inty,m,d;}today,*pdata;则为today分配内存____字节,为pdata分配内存____字节。

9.C语言文件按数据的存放形式可分为________文件和_________文件。

10.C语言文件是一个________序列,这类文件称为_________文件。

得分

三.程序归纳题(每题2分,共10分)

阅读下列函数,总结其主要功能填在答题卡相应的横线上。

答在试卷上不得分。

1.intfun1(char*str){char*ptr=str;

while(*ptr++);returnptr-str-1;}

2.doublefun2(doublex,doubley,doublez){

returnx>(y>z?

y:

z)?

x:

(y>z?

y:

z);}

3.voidfuns3(intnum[],intsize){inti=0,tmp;

while(i

4.voidfun4(char*f,char*t)

{for(;*f!

='\0';f++,t++)*t=*f;*t='\0';}

5.voidfun5(char*ps){inta1=0,a2=0;

while(*ps!

='\0')

{if(*ps>='a'&&*ps<='z')a1++;

elseif(*ps>='0'&&*ps<='9')a2++;

p++;}

printf("%d,%d\n",a1,a2);}

得分

四.程序分析题(每题2分,共10分)

阅读程序,将其运行结果填在答题卡相应题目的横线上。

答在试卷上不得分。

1.#include"stdio.h"

voidmain(){

staticinta[]={1,2,3,4,5,6},*p;

p=a;*(p+3)+=2;

printf("%d,%d\n",*p,*(p+3));}

2.#include"stdio.h"

voidmain(){intx=1;

{intx=2;

{intx=3;printf("%2d",x);}

printf("%2d",x);}

printf("%2d",x);}

3.#include

#include

voidsort(char**str,intn){

char*tmp;inti,j;

for(i=0;i

for(j=0;j

if(strcmp(str[j],str[j+1])>0)

tmp=str[j],str[j]=str[j+1],str[j+1]=tmp;}

voidmain(){

char**ps,*str[3]={"BOOK","COMPUTER","CHINA"};

inti;

ps=str;sort(ps,3);

for(i=0;i<3;i++)printf("%d%s",i+1,str[i]);}

4.#include

intleap_year(intyear){

returnyear%4==0&&year%100!

=0||year%400==0;}

voidmain(){

intmonth_day[]={31,28,31,30,31,30,31,31,30,31,30,31},days,i;

structdate{

intyear;

intmonth;

intday;

}mdate={2008,5,1};

if(leap_year(mdate.year))

month_day[1]++;

for(i=1,days=mdate.day;i

days+=month_day[i-1];

printf("%d-%disthe%dthdayin%d",

mdate.month,mdate.day,days,mdate.year);}

5.#include

voidadd(int*x,int*y,intn){

while(n--)*x+++=*y++;}

voidmain(){

inti=5;staticints1[]={2,1,0,3,2},s2[5];

add(s2,s1,5);

while(i--)printf("%2d",s2[i]);}

得分

五.程序设计题(每题10分,共40分)

阅读下列程序,在指定位置上填入适当的内容使程序完整。

请勿改动其它内容。

请将正确答案填在答题卡上。

答在试卷上不得分。

1.函数insert将一个指定的单精度数按递减规律插入数组num中,注:

数组num中已有12个按照递减顺序排好序的单精度数。

voidinsert(floatnum[13],floatnew)

{inti=11;

/***answerbegin***/

……

/***answerend***/}

2.编写函数mycmp实现库函数strcmp的功能:

两个字符串的比较。

intmycmp(char*p1,char*p2)

{/***answerbegin***/

……

/***answerend***/}

3.设有三个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。

#include

structperson

{charname[20];

intcount;

}leader[3]={“Li”,0,“Zhang”,0,”Wang“,0};

main()

{inti,j;charleader_name[20];

for(i=1;i<=10;i++)

{/***answerbegin***/

……

/***answerend***/}

for(i=0;i<3;i++)

printf("%5s:

%d\n",leader[i].name,leader[i].count);

}

4.从键盘上输入一个字符串,将其中的小写字母转换成大写字母,然后输出到名为“test”的文本文件中保存。

输入字符串以“!

”结束。

#include

voidmain()

{

inti;charstr[80];FILE*fp;

if((fp=fopen("test","w"))==NULL)

{printf("cannotopenfile\n");

exit(0);}

printf("Inputastring(endwith!

):

");

gets(str);

/***answerbegin***/

……

/***answerend***/

}

参考答案:

一.单项选择题:

(每题2分,共20分)

CBBCBBACBA

二.填空题:

(每题2分,共20分)

1函数说明2函数体3长整型4无符号型50

6非07switch8循环9extern10static

11#include12#define13&x[2][3]14x[3][2]156

16217文本18二进制19字符(字节)20流式

三.程序归纳题(每题2分,共10分)

1求字符串长度

2求3个double型数中的大数

3翻转整型数组

4复制字符串

5统计指定字符串中小写字母、数字的个数

四.程序分析题(每题2分,共10分)

11,62321

31BOOK2CHINA3COMPUTER45-1isthe122thdayin2008

523012注:

标点符号错误不另扣分

五.程序设计题(每题10分,共40分)

1.num[12]=new;存储新值:

2分

while(i>=0&&data[i]

2分

{复合语句:

1分

new=num[i+1];暂存新值:

1分

num[i+1]=num[i];更新旧值:

2分

num[i]=new;更新新值:

1分

i--;循环计数:

1分

}

2.while(*p1&&*p2&&*p1==*p2)依次比较两个字符串直至其结束:

6分

p1++,p2++;更新位置指示:

2分

return*p1-*p2;返回差值:

2分

3.scanf("%s",leader_name);唱票:

2分

for(j=0;j<3;j++)循环寻找得票人:

2分

if(strcmp(leader_name,leader[j].name)==0)寻找得票人:

4分

leader[j].count++;更新得票人票数:

2分

4.for(i=0;str[i]!

='!

';i++)依次比较各字符直至字符串结束:

2分

if(str[i]>='a'&&str[i]<='z')判断是否是小写字母:

2分

str[i]-=32;转换为大写字母:

2分

printf("Writting%sintofiletest",str);

fputs(str,fp);将字符串存储到文件中:

2分

fclose(fp);关闭文件:

2分

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

当前位置:首页 > 幼儿教育 > 育儿知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2