C语言期末复习讲解级参考答案.docx

上传人:b****1 文档编号:1811860 上传时间:2023-05-01 格式:DOCX 页数:13 大小:32.89KB
下载 相关 举报
C语言期末复习讲解级参考答案.docx_第1页
第1页 / 共13页
C语言期末复习讲解级参考答案.docx_第2页
第2页 / 共13页
C语言期末复习讲解级参考答案.docx_第3页
第3页 / 共13页
C语言期末复习讲解级参考答案.docx_第4页
第4页 / 共13页
C语言期末复习讲解级参考答案.docx_第5页
第5页 / 共13页
C语言期末复习讲解级参考答案.docx_第6页
第6页 / 共13页
C语言期末复习讲解级参考答案.docx_第7页
第7页 / 共13页
C语言期末复习讲解级参考答案.docx_第8页
第8页 / 共13页
C语言期末复习讲解级参考答案.docx_第9页
第9页 / 共13页
C语言期末复习讲解级参考答案.docx_第10页
第10页 / 共13页
C语言期末复习讲解级参考答案.docx_第11页
第11页 / 共13页
C语言期末复习讲解级参考答案.docx_第12页
第12页 / 共13页
C语言期末复习讲解级参考答案.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言期末复习讲解级参考答案.docx

《C语言期末复习讲解级参考答案.docx》由会员分享,可在线阅读,更多相关《C语言期末复习讲解级参考答案.docx(13页珍藏版)》请在冰点文库上搜索。

C语言期末复习讲解级参考答案.docx

C语言期末复习讲解级参考答案

期末复习

一、题型:

共有5大题:

1、单项选择题(每小题1.5分,小计30分)

2、填空题(每空2分,小计20分)

3、写出下列程序的运行结果(每小题5分,小计20分)

4、程序填空(每空2分,小计10分)

5、程序设计题(有3小题,其中:

第1、2小题各6分,

第3小题8分,小计20分)

二、考试形式、时间、涉及内容

考试形式为闭卷,时间为90分钟

涉及内容:

各讲内容均有涉及

三、样题(与考题无必然联系,仅供参考)

(1)单选题:

1、C语言中,运算对象必须是整型的运算符是【】

A./B.%C.++D.!

2、下列标识符中,不合法的是【】

A.x2B.sizeofC._123D.char2

3、若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为【】

A.4B.16C.32D.52

4、设有数组定义:

chara[]="China";则数组a所占的空间为【】字节

A.4B.5C.6D.7

5、设d是double型变量,若要从键盘输入数据给d,正确的语句是【】

A.scanf(d);B.scanf("%f",d) ;

C.scanf("%f",&d) ;D.scanf("%lf",&d) ;

6、以下程序段的输出结果是【】

intx=3;

do

{

printf("%d",x-=2);

}while(!

(--x));

A.1-2B.30C.1D.无输出

7、下列程序段执行之后,输出的结果是【】

doublex=4,y;

if(x<0)

y=0;

elseif(x<10)

y=1.0/x;

else

y=1;

printf("%.2f\n",y);

A.0.25B.0.50C.0.75D.1.00

8、若已定义:

inta[]={0,11,22,33,44,55,66,77,88,99},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是【】

A.p[i]B.*(&a[i])//a[i]C.a[10]D.a[p-a]//a[0]

9、现有定义:

int*p[3];下列关于标识符p的描述中,正确的是【】

A.定义不合法B.是一个指向整型变量的指针

C. 是一个指针,它指向一个具有3个元素的一维数组

D.是一个指针数组名,每个元素是一个指向整型变量的指针

10、若有如下定义,则对ex中的a成员的正确引用是【】

structsk{inta;floatb;}ex,*p=&ex;

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

11、判断字符串s1和s2是否相等的表达式是【】

A.s1=s2B.s1==s2C.strcpy(s1,s2)==0D.strcmp(s1,s2)==0

12、数字11与13进行“位或”运算(即11|13)的结果是【】

A.1B.11C.13D.15

(2)填空题

1、一个C语言程序的执行是从main函数开始的。

2、结构化程序的三种基本结构是:

顺序结构、选择结构/分支结构和循环结构。

3、在VC++2008环境下,C语言源程序的扩展名是__c/cpp___,经过编译、链接后得到的可执行文件的扩展名是__exe_。

4、C语言中字符串的结束标志符是___’\0’_____;转义字符___’\n’____具有换行功能。

5、指针就是地址,指针变量就是用来保存地址值的变量。

6、若a=5,b=3,则表达式a>b?

a+b:

a-b的结果是8____。

7、数学式:

00&&x<13__________。

8、对于程序的描述,著名计算机科学家沃思提出的公式是算法+数据结构=程序

(3)写出下列程序的运行结果

1、

#include

intmain()

{

charc1,c2;

c1='A'+'8'-'5';//c1=68;//c1=’D’;

c2='A'+'8'-'4';//c1=69;//c1=’E’;

printf("%c,%d\n",c1,c2);

return0;

}

已知字母A的ASCII码为65,程序运行后的输出结果是D,69

2、

#include

inta=5;

voidfun(intb)

{

inta=10;

a+=b;//a=a+b;

printf("%d,",a);

}

intmain()

{

intc=20;

fun(c);

a+=c;//a=a+c;a=5+20;

printf("%d\n",a);

return0;

}

程序运行后的输出结果是30,25

3.

#include

voidbubbsort(int*a,intn)

{

inti,j,p;

for(i=0;i

{

for(j=0;j

if(a[j]>a[j+1])

{

p=a[j];

a[j]=a[j+1];

a[j+1]=p;

}

}

}

intmain()

{

intarray[]={3,15,9,6,12};

bubbsort(array,5);

for(inti=0;i<5;i++)

printf("%d",array[i]);

printf("\n");

return0;

}

程序运行后的输出结果是

1、以下程序的功能是:

从键盘输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入的是负数时结束输入。

#include

intmain()

{

floatx,max,min;

printf("请输入学生成绩:

");

scanf("%f",&x);

max=min=x;

while(x>=0)

{

if(x>max)max=x;

if(x

scanf("%f",&x);

}

printf("max=%f,min=%f\n",max,min);

return0;

}

 

编程题:

1、输入三角形的三边长,求其面积

#include

#include

intmain()

{

doublea,b,c,area,p;

printf(“Pleaseinputtriangle’sabc:

\n”);

scanf(“%lf%lf%lf”,&a,&b,&c);

p=(a+b+c)/2.0;

area=sqrt(p*(p-a)*(p-b)*(p-c));

printf(“a=%lfb=%lfc=%lfarea=%lf”,a,b,c,area);

return0;

}

2、循环结

(2)例1

#include

intmain()

{

intsign=-1;

doubles=0,PI;

inti;

for(i=1;1.0/i>=1e-7;i=i+2)

{

sign=-sign;

s=s+1.0/i*sign;

}

PI=s*4;

printf("i=%d\n",i-2);

printf("PI=%10.8f\n\n",PI);

return0;

}

3、循环结

(2)

例2:

输入一批学生成绩,输出其中的最高分、最低分

#include

intmain()

{

intscore,min,max;

printf("请输入成绩(0--100),其它成绩结束:

");

scanf("%d",&score);

max=min=score;//min、max赋初值

while((score>=0)&&(score<=100))

{

if(score>max)

max=score;

if(score

min=score;

printf("请输入成绩(0--100),其它成绩结束:

");

scanf("%d",&score);

}

printf("max=%d,min=%d\n",max,min);

return0;

}

4、数组

已知一个int型数组,数据元素分别为{9,8,5,4,2,0}。

要求按由小到大的顺序,重新排列数组元素

#include

intmain()

{

inta[6],i,j,t;

printf("input6numbers:

\n");

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

scanf("%d",&a[i]);

printf("\n");

for(j=0;j<5;j++)

for(i=0;i<5-j;i++)

if(a[i]>a[i+1])

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

printf("thesortednumbers:

\n");

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

printf("%d",a[i]);

printf("\n");

return0;

}

 

5、请说明下列函数中,哪些能实现主函数的实参数据交换功能,哪些不能实现或程序存在问题,为什么?

(最好上机验证)

(1)

voidswap1(int*p1,int*p2)

{

inttemp;

temp=*p1;

*p1=*p2;

*p2=temp;

}//成功交换了实参的值

swap1(&a,&b);

(2)

voidswap3(intx,inty)

{

intp;

p=x;x=y;y=p;

}

//单向传递值,所以不能实现交换实参的值,但是形参x,y的值是交换了。

6、输入一个字符串,请编程统计其中的字母、数字、空格(含制表符)、标点符号的个数并输出。

如下图所示:

(提示:

在教材的p385-386中有字符和字符串函数,可以直接引用。

如isalpha()判断字母函数、isdigit()判断数字函数、isspace()判断空格函数、ispunct()判断标点函数等)

#include

#include

intmain()

{

charstr[201];

printf("请输入一个长度不超过的字符串:

\n");

gets(str);

intn1,n2,n3,n4;

n1=n2=n3=n4=0;

for(inti=0;str[i];i++)

{

if(isalpha(str[i]))

n1++;

elseif(isdigit(str[i]))

n2++;

elseif(isspace(str[i]))

n3++;

elseif(ispunct(str[i]))

n4++;

}

printf("该字符串的字母个数:

%d,数字个数:

%d,空格个数:

%d,标点个数:

%d\n\n",n1,n2,n3,n4);

return0;

}

7、编程计算数组各元素的平方和,要求如下:

(1)voidarray_input(intarray[],intn)的功能是:

输入整型数组array的各元素值,参数n是数组元素的个数;

(2)intsquare_sum(intarray[],intn)的功能是:

对整型数组array的各元素的平方求和,参数n是数组元素的个数;

(3)主函数的功能:

定义一个是长度为6的整型数组,通过调用array_input()输入各元素的值,再调用square_sum()得到各元素平方和,最后输出结果;

(4)主函数在前,上述两个函数在后面定义。

程序运行如下图所示:

#include

intmain()

{

voidarray_input(intarray[],intn);

intsquare_sum(intarrya[],intn);

inta[6];

array_input(a,6);

intarray_square_sum=square_sum(a,6);

printf("数组a的各元素平方和:

%d\n\n",array_square_sum);

return0;

}

voidarray_input(intarray[],intn)//输入数组元素的函数

{

printf("请输入整型数组的%d个元素:

\n",n);

for(inti=0;i

scanf("%d",&array[i]);

}

intsquare_sum(intarray[],intn)//计算数组元素平方和函数

{

inti;

intsum=0;

for(i=0;i

sum=sum+array[i]*array[i];

returnsum;

}

8.输入任意年份,判断是否为闰年(闰年的判断有两种情况,第一种情况:

当能被400整除,则为闰年,第二种情况:

能被4整除但不能被100整除,则为闰年)。

课本P107

9.已知有式子:

xyz+yzz=532,其中x、y、z为数字,编写程序输出所有满足条件的x、y和z。

lab_6第三题

10.有一个数列,它的第一项为1,第二项为2,第三项为3,以后每一项都等于它的前三项之和。

使用一维数组编程实现功能:

计算该数列的前20项并赋值给数组,然后以逆序方式输出,每一行5个数据。

lab_7第一题

11.定义一个将十进制数转换成十六进制数的函数voiddec_to_hex(intn),该函数的功能是将参数中的十进制数以十六进制方式输出。

在主函数输入一个十进制整数,然后调用dec2hex()输出对应的十六进制数。

lab_10第三题

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

当前位置:首页 > 初中教育 > 其它课程

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

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