C语言期末复习练习题.docx

上传人:b****1 文档编号:2097417 上传时间:2023-05-02 格式:DOCX 页数:18 大小:21.66KB
下载 相关 举报
C语言期末复习练习题.docx_第1页
第1页 / 共18页
C语言期末复习练习题.docx_第2页
第2页 / 共18页
C语言期末复习练习题.docx_第3页
第3页 / 共18页
C语言期末复习练习题.docx_第4页
第4页 / 共18页
C语言期末复习练习题.docx_第5页
第5页 / 共18页
C语言期末复习练习题.docx_第6页
第6页 / 共18页
C语言期末复习练习题.docx_第7页
第7页 / 共18页
C语言期末复习练习题.docx_第8页
第8页 / 共18页
C语言期末复习练习题.docx_第9页
第9页 / 共18页
C语言期末复习练习题.docx_第10页
第10页 / 共18页
C语言期末复习练习题.docx_第11页
第11页 / 共18页
C语言期末复习练习题.docx_第12页
第12页 / 共18页
C语言期末复习练习题.docx_第13页
第13页 / 共18页
C语言期末复习练习题.docx_第14页
第14页 / 共18页
C语言期末复习练习题.docx_第15页
第15页 / 共18页
C语言期末复习练习题.docx_第16页
第16页 / 共18页
C语言期末复习练习题.docx_第17页
第17页 / 共18页
C语言期末复习练习题.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言期末复习练习题.docx

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

C语言期末复习练习题.docx

C语言期末复习练习题

C语言期末复习练习题

一、选择题

1).能直接执行的程序是机器语言程序,在机器内部以形式表示。

A)条形码B)拼音码C)内码D)二进制码

2).以下叙述中不正确的是________。

A)在函数中,通过return语句传回函数值

B)在函数中,可以有多个return语句

C)在C中,函数的调用必需在一条独立的语句中完成

D)在C中,main后的一对圆括号中也可以带有形参

3).若一个外部变量的定义形式为staticintx;其中static的作用是________。

A)将变量存放在静态存储区,使x的值可以永久保留

B)使变量x可以由系统自动初始化

C)使x的值可以永久保留

D)使x只能在本文件内引用

4).已知:

intx;floaty;所用的scanf调用语句格式为:

scanf(“x=%d;y=%f”,&x,&y);

则为了将数据10和66.6分别赋给x和y,正确的输入应当是:

A)x=10;y=66.6<回车>B)x=10,y=66.6<回车>

C)10<回车>66.6<回车>D)x=10<回车>y=66.6<回车>

5).语句if(!

i)i++;中的条件表达式!

i等价于________。

A)i==0B)i!

=1C)i!

=0D)-i

6).下面程序的运行结果是:

main()

{intx=10,y=10;

printf(“%d%d\n”,x--,--y);}

A)109B)910C)1010D)99

7).执行下面的程序段后,变量k中的值为:

intk=3,s[2];

s[0]=k;k=s[1]*10;

A)不定值B)33C)30D)10

8).已知英文字母a的ASCII代码值是十六进制数61H,那么字母d的ASCII代码值是:

A)34HB)54HC)24HD)64H

9)若有以下说明:

inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};

charc='a',d,g;

则数值为4的表达式是:

A)a[g-c]B)a[4]C)a['d'-'c']D)a['d'-c]

10).给出以下定义:

charx[]="abcdefg";

chary[]={'a','b','c','d','e','f','g'};

则正确的叙述为:

A)数组X和数组Y等价B)数组x和数组Y的长度相同

C)数组X的长度大于数组Y的长度D)数组X的长度小于数组Y的长度

11).C语言中规定,if语句的嵌套结构中,else总是与________配对。

A)与最近的if配套B)与第一个if配套

C)按缩进位置相同的if配套D)与最近的且尚未配对的if配套

12).若用数组名作函数参数,则传递的是:

A)数组的首地址B)数组中第一个元素得值

C)数组中全部元素的值D)数组元素的个数

13).当执行以下程序段时________。

x=-1;

do{x=x*x;}while(!

x);

A)循环体将执行一次B)循环体将执行两次

C)循环体将执行无限次D)系统将提示有语法错误

14).一个源文件中定义的外部变量的作用域:

A)本文件的全部范围。

B)本程序的全部范围。

C)本函数的全部范围。

D)从定义该变量的位置开始至本文件结束。

15).C语言规定,调用一个函数,实参与形参间数据传递方式:

A)地址传递B)值传递C)双向传递D)由用户指定传递方式

16).若有说明:

inti,j=7,*p=&i;则与i=j;等价的语句是:

A)i=*p;B)*p=*&j;C)i=&j;D)i=**p;

17).下面程序段的运行结果是_________.

char*s="abcde";

s+=2;printf("%d",s);

A)cdeB)字符'c'C)字符'c'的地址D)无确定的输出结果

18).设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确的执行的赋值语句是________.

A)c=*p1+*p2;B)p2=cC)p1=p2D)c=*p1*(*p2);

19).若有说明语句

chara[]="Itismine";

char*p="Itismine";

则以下不正确的叙述是________.

A)a+1表示的是字符t的地址

B)p指向另外的字符串时,字符串的长度不受限制

C)p变量中存放的地址值可以改变

D)a中只能存放10个字符

20).设有如下定义:

structsk

{intn;

floatx;

}data,*p;

若要使p指向data中的n域,正确的赋值语句是_______.

A)p=&data.n;

B)*p=data.n;

C)p=(structsk*)&data.n;

D)p=(structsk*)data.n;

21).以下不是c语言规定保留字的是()。

A)floatB)integerC)signedD)unsigned

 

22).下述程序执行后的输出结果是( )

#include

main()

{

intx='f';

printf("%c\n",'a'+(x-'a'+1));

}

A)gB)hC)iD)j

 

23).设有程序

#include

main()

{

inti,j;

for(i=0,j=1;i<=j+1;i+=2,j--)

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

}

在运行上述程序时,for语句中循环体的执行次数是()

A)3B)23)1D)0

24)、错误的说明语句是:

______

A)charword[]={‘T’,’u’,’r’,’b’,’o’,’\0’};

B)charword[]={“Turbo\0”};

C)charword[]=“Turbo\0”;

D)charword[]=‘Turbo\0’;

25)已知:

intb[5];则对b数组元素的正确引用是:

_____

A)b[5]B)b[3.5]C)b(3)D)b[10-10]

 

26)、在一个C源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则定义为:

A)AutoB)staticC)externD)register

27).假定a和b为int型变量,则执行下述语句组后,b的值为()。

a=1;

b=10;

do

{

b-=a;

a++;

}while(b--<0);

A)9B)-2C)-1D)8

28).在C语言中,以下描述正确的是:

A)函数的定义可以嵌套,但函数的调用不可以

B)函数的定义不可以嵌套,但函数的调用可以

C)函数的定义和调用都不可以嵌套

D)函数的定义和调用均可嵌套

29).下述程序代码中有语法错误的行是()。

inti,ia[10],ib[10];/*第一行*/

for(i=0;i<=9;i++)/*第2行*/

ia[i]=0;/*第3行*/

ib=ia;/第4行*/

A)第1行B)第2行C)第3行D)第4行

30).若已定义

inta[9],*p=a;

并在以后的语句中未改变p的值,则不能表示a[1]地址的表达式是()。

A)p+1B)a+1C)a++D)++p

31).若有定义:

inta[2][3],则对a数组的第i行j列元素地址的正确引用为______.

A)*(a[i]+j)B)(a+i)C)*(a+j)D)a[i]+j

32).执行下述程序后的输出结果是()。

#include

voidmain()

{intf(int);

inta=2,i;

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

printf("%d",f(a));

}

intf(inta)

{autointb=0;

staticc=3;

b=b+1;

c=c+1;

return(a+b+c);

}

A)7910B)789C)799D)788

33).执行下述程序后的输出结果是()。

已知函数scopy的定义如下

voidscopy(char*s,char*t)

{

while(*s++=*t++);

}

则该函数的功能是()。

A)串复制B)求串长度C)串比较D)串反向

34).以下对结构体变量stu1中成员age的非法引用是________.

structstudent

{intage;

intnum;

}stu1,*p;

p=&stu1;

A)stu1.ageB)student.age

C)p->ageD)(*p).age

35).以下程序for语句循环体中printf语句执行次数是()。

#include

#defineN2

#defineMN+1

#defineNUM(M+1)*m/2

main()

{

inti;

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

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

}

A)5B)6C)8D)9

36).若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是______.

A)"ab+"B)"wb+"C)"rb+"D)"ab"

二、填空题

1)下面程序的运行结果是:

____

#include“stdio.h”

main()

{intx=23;

do

{printf(“%d”,x--);}

while(!

x);

}

2)若a=1;b=2;则问号表达式a>b?

a:

(b+1)的值是:

___

3)若定义:

charch;

使指针p指向变量ch的定义语句是:

____

通过指针p给变量ch赋值字符A的语句是:

_____

通过指针p输出变量ch中字符的语句是:

_____

4)循环语句for(x=0,y=0;(y!

=123)&&(x<4);x++)执行的循环次数是:

___次。

5)fp=fopen(“file1”,”r”)实现的操作是:

____

6).若x=2,y=3,则x&&y的结果是______.

7)C语言规定标识符只能有____三种字符组成,且第一个字符必须为__

8)假设m是一个三位数,从右到左用a、b、c表示各位数字,则从左到右各个数字是bac的三位数的表达式是:

____

3)main()

{printf(“*%f,%4.3f*”,3.14,3.1415);}输出结果:

_____

5)设有数组定义:

chararray[]="China";则数组array所占的空间为:

______个字节

三、程序阅读题

1.以下程序的输出结果是___________。

main()

{inti=010,j=10,k=0x10;

printf(“%d,%d,%d\n”,i,j,k);

}

2.写出以下程序的功能。

#include

voidmain()

{inta,b,s;

scanf("%d%d",&a,&b);

s=a-b;

if(a

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

}

3.以下程序的运行结果是。

#include

voidf(inta[])

{inti=0;

while(a[i]<=10)

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

i++;}

}

voidmain()

{inta[]={12,5,10,9,13,4};

f(a+2);

}

4.写出以下函数的功能。

#include

intf(char*s)

{char*p=s;

while(*p!

='\0')p++;

return(p-s);

}

5.下面程序的运行结果是:

_____

#include“stdio.h”

main()

{chara[]=“Program”,*p;

for(p=a;p

putchar(*p);

}

6.以下程序的运行结果是________.

structn{

intx;

charc;};

main()

{structna={10,'x'};

func(a);

printf("%d,%c",a.x,a.c);}

func(structnb)

{b.x=20;

b.c='y';}

7.以下程序输出的结果是________。

#include

voidmain()

{intn;

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

{if(n%2)continue;

printf("%d\t",n);}

}

8.阅读以下函数,写出此函数的功能。

floatfun1(floata[],intn)

{inti=1;

floatresult=a[0];

for(;i

if(result>a[i])result=a[i];

returnresult;

}

9.以下程序的运行结果是。

#include

inta=8,b=5;

intmax(inta,intb)

{intc;

c=a>b?

a:

b;

return(c);

}

voidmain()

{inta=2;

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

}

10.运行以下程序,若输入:

57<回车>时,写出程序的输出结果。

#include

voidfun(int*p1,int*p2)

{intt;

t=*p1;*p1=*p2;*p2=t;

}

voidmain()

{intx,y;

int*p1,*p2;

scanf("%d%d",&x,&y);

p1=&x;p2=&y;

if(x

printf("x=%d,y=%d",x,y);

}

11.写出以下函数的功能。

#include

main()

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

for(j=1;j<=4;j++)

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

if(a[i]

{t=a[i];a[i]=a[i+1];a[i+1]=t;}

for(i=0;i<5;i++)printf("%d",a[i]);

}

12.下面程序的运行结果是___________.

main()

{structcmplx{intx;

inty;

}cnum[2]={1,3,2,7};

printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);}

四、程序填空

1)以下函数从数组a[n]中查找最大值并把该最大值作为函数的返回值。

findmax(inta[],intn)

{int*p,*s;

for(p=a,s=a;p-a<10;p++)

if()s=p;

return(*s);

}

2)有以下程序段:

s=1.0;

for(k=1;k<=n;k++)

s=s+1.0/(k*(k+1));

printf(“%f\n”,s);

请填空,使下面程序段的功能完全与之等同。

s=0.0;;k=0;

do{s=s+d;

③;

d=1.0/(k*(k+1));

}

while(④);

printf(“%f\n”,s);

3).以下程序用来求数组全部元素的和,请填写缺少的语句。

#include

voidmain()

{inta[]={0,1,2,3,4,5,6,7,8,9};

ints=0,i,*p;

p=;

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

printf("sum=%d",s);

}

4)以下程序的功能是求出输入整数的个位数、十位数和百位数(1000以下的正整数)。

请填空。

#include

voidmain()

{intx,a,b,c;

do{printf("输入一个1000以下的正整数:

");

;

printf("\n");

}while();

if(x<0)x=-x;

a=x/100;

b=(x-a*100)/10;

c=;

printf("%d的个位数是%d,十位数是%d,千位数是%d\n",x,c,b,a);

}

5)以下函数的功能是返回b的e次幂。

例如,intPow(2,3)的值为2*2*2。

假定e是非0整数,b是整数。

请填空。

intintPow(intb,inte)

{intresult,n;

for(n=0;n

;

returnresult;

}

五、编程题

1.下面的程序是用选择法对数组中10个整数按由小到大排序。

请定义该程序中的sort函数。

#include

voidmain()

{voidsort(intarray[],intn);

inta[10],i;

printf(″enterthearray\n″);

for(i=0;i<10;i++=

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

sort(a,10);

printf(″thesortedarray∶\n″);

for(i=0;i<10;i++=

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

 printf(″\n″);

 } 

/*sort函数的定义*/

2.有一个一维数组,内放10个学生成绩,下面的程序是求出并显示数组的平均分、最高分和最低分的。

请定义该程序中的average函数。

#include

floatMax=0,Min=0;/*全局变量*/

voidmain()

{floataverage(floatarray[],intn);

floatave,score[10];

inti;

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

 scanf(″%f″,&score[i]);

ave=average(score,10);

 printf(“max=%6.2f\nmin=%6.2f\n

average=%6.2f\n“,Max,Min,ave);

}

/*average函数的定义*/

3.计算个人所得税,月收入的5000元以上部分征20%,800元以上5000元之间部分需缴纳3%的税,800元以下的部分免税。

例如,小张月收入为6000元,则她需缴税(6000-5000)×20%+(5000-800)×3%=326元。

编程,要求输入个人应发工资,计算并输出个人所得税。

4.编程实现:

13个人围成一圈,从第1个人开始顺序报号1、2、3。

凡报到“3”者退出圈子,找出最后留在圈子中的人原来的序号。

复习题所涉及的知识点大家一定要好好掌握。

还有平时作业补充的那些编程题。

 

考试时间:

17周星期五

 

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

当前位置:首页 > 工程科技 > 能源化工

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

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