华立C语言期末复习资料.docx

上传人:b****5 文档编号:5933344 上传时间:2023-01-02 格式:DOCX 页数:16 大小:23.31KB
下载 相关 举报
华立C语言期末复习资料.docx_第1页
第1页 / 共16页
华立C语言期末复习资料.docx_第2页
第2页 / 共16页
华立C语言期末复习资料.docx_第3页
第3页 / 共16页
华立C语言期末复习资料.docx_第4页
第4页 / 共16页
华立C语言期末复习资料.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

华立C语言期末复习资料.docx

《华立C语言期末复习资料.docx》由会员分享,可在线阅读,更多相关《华立C语言期末复习资料.docx(16页珍藏版)》请在冰豆网上搜索。

华立C语言期末复习资料.docx

华立C语言期末复习资料

12C语言期末考试复习资料

一选择题

1.C语言源程序的基本单位是()。

A过程B函数C子程序D标识符

2.下列程序的输出结果是()。

main()

{inta=7,b=5;

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

}

A5B1C0D不确定值

3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?

a++:

b++,a+b)的值是()。

A7B8C9D2

4、C程序的执行特点是

A、从程序的main函数开始,到程序的最后一个函数结束

B、从程序的第一个函数开始,到程序的最后一个函数结束

C、从程序的main函数开始,到程序的main函数结束

D、从程序的第一个函数开始,到程序的main函数结束

5、字符型(char)数据在微机内存中的存储形式是________

A、EBCDIC码B、ASCII码C、补码D、反码

6、以下不合法的用户标识符是

A、W32_KERB、doubleC、ASA4D、_10_

7.设a为int型变量,执行下列赋值语句后,a的取值分别是()。

a=125.534;a=(int)125.521%4;a=5<<2;

A125,31,1B125,1,20C125,31,20D125.534,2,20

8.设有如下程序段,下面描述中正确的是()。

intk=10;while(k=0)k=k-1;

A循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次

9.以下程序的输出结果为()。

inti;

voidprt()

{for(i=5;i<8;i++)printf("%c",'*');

printf("\t");

}

main()

{for(i=5;i<=8;i++)prt();

}

A***B************C******D***

10、设a=9,b=6,c=7,d=10,m=4,n=4,执行(m==a>b)&&(n==c>d)后n的值为________A、2B、3C、1D、0

11、表达式2.6-5/2+1.4+7%2的值是

A、4.3B、4.8C、3.3D、3

12、在以下一组运算符中,优先级最高的运算符是________

A、&&B、=C、<=D、!

13..在C语言程序中,以下说法正确的是( )。

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

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

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

D函数的定义和函数的调用都可以嵌套

14.以下函数调用语句中含有()个实参。

func((e1,e2),(e3,e4,e5));

A2B3C5D语法错误

15.以下程序的输出结果为()。

#defineADD(x)x*x

main()

{inta=4,b=6,c=7,d=ADD(a+b)*c;

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

}

Ad=70Bd=80Cd=140Dd=700

/*a+b*a+b*c

=4+6*4+6*7

*/

16、设有以下定义

inta=0;

doubleb=1.25;

charc=’E’;

#defineW2

则下面语句中错误的是

A、a++B、b++C、c++D、W++

17、设有定义:

inta, int*pa=&a;

以下scanf函数语句中能正确为变量a读入数据的是

A、scanf(”%d”,a);B、scanf(”%d”,a);

C、scanf(”%d”,&a);D、scanf(”%d”,*a);

18、假定所有变量均已正确说明,下列程序段运行后x的值是________

inta,b,c,x;

a=b=0;x=35;

if(b)

x=3;

else

x=4;

A、35B、4C、34D、3

19.已知职工记录描述如下,在TurboC中,系统为变量w分配()字节的空间。

structworker

{intno;

charname[20];

charsex;

union

{intday;intmonth;intyear;}birth;

}w;

A29B20C25D6

20.设有以下定义,值为5的枚举常量是()。

enumweek{sun,mon=4,tue,wed,thu,fri,sat}w;

AtueBsatCfriDthu

21.下面选项中正确的赋值语句是(设chara[5],*p=a;)()。

Ap="abcd";Ba="abcd";C*p="abcd";D*a="abcd";

22.设有以下程序段,则值为6的表达式是()。

structst{intn;structst*next;};

staticstructsta[3]={5,&a[1],7,&a[2],9,0},*p;

p=&a[0];

Ap++->nB++p->nCp->n++D(*p).n++

23、指向某变量的指针,其含义是指向该变量的

A、值B、地址C、名D、一个标志

24、设变量c为char类型,能正确判断出c为小写字母的表达式是

A、’a’<=c<=’z’B、(c>=’a’)||(c<=’z’)

C、(c.>=’a’)&&(c<=’z’)D、以上都不是

25、循环语句while和do-while的主要区别是

A、do-while循环体至少要无条件执行一次,while循环体可以一次都不执行

B、while的循环控制条件比do-while的循环控制条件更严格

C、do-while允许从外部跳转到循环体内

D、do-while的循环体不能是复合语句

26、当执行以下程序段时

x=8;

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

x);

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

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

27、设有定义:

inta[10];以下对a数组元素正确引用的是

A、a[10]B、a[3,5]C、a(5)D、a[10-10]

28、若用数组名作为函数的实参,传递给形参的是

A、数组的首地址B、数组第一个元素的值

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

29、C语言允许函数类型缺省定义,此时函数值隐含的类型是

A、floatB、intC、longD、double

30、若有语句:

char *line[5];,以下叙述中正确的是

 A)定义line是一个数组,每个数组元素是一个基本类型为char的指针变量

 B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组

 C)定义line是一个指针数组,语句中的*号称为间址运算符

 D)定义line是一个指向字符型函数的指针

31、若有定义“intx[5]={1,2,3,4,6};int*p=&x[1];”,则以下表达式中值为4的是

A)*(p+2)

B)*(p+1)

C)p+1

D)*p+2

32、下列字符数组初始化语句中,正确的是

A)charc[3][11]={"China","Guanzhou","University"};

B)charc[4][10]={"China","Guanzhou","University"};

C)charc[3][10]={"China","Guanzhou","University"};

D)charc[4][11]={"China,Guanzhou,University"};

33、有以下程序

voidmain()

{inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3];int*q=p+2;

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

}

程序运行后的输出结果是

A)16B)10C)8D)6

34、[多选题]以下程序段执行后,a的值为1的是

A)inta=0,b=1,c;b=c;b=a;c=a;

B)inta=0,b=1;a=a+b;b=a-b;a=a-b;

C)inta=0,b=1,c;c=a;a=b;b=c;

D)inta=0,b=1,c;c=a;b=a;b=c;

35、[多选题]以下叙述中正确的是

A)在一个函数内定义的变量只在本函数范围内有效

B)在不同的函数中可以使用相同名字的变量

C)在一个函数内的复合语句中定义的变量在本函数范围内有效

D)函数中的形式参数是局部变量

36、[多选题]以下不能对数组a进行正确初始化的语句是

A)inta[]={};

B)inta[4]={1,2,3};

C)inta[6]={0,1,2,3,4};

D)inta[]={1};

37、[多选题]下述对C语言字符数组的描述正确的是

A)不可以用关系运算符对字符数组中的字符串进行比较

B)字符数组可以存放字符串

C)字符数组中的字符串可以整体输入、输出

D)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值

二、填空题

1、在C语言中没有逻辑型数据,以______代表”真”,以_____代表”假”。

2、设x、y、z和k都是int型变量,则执行表达式x=(y=40,z=13,k=48)后,x的值为____________。

3、C的字符常量是用______________括起来的一个ASCII码字符。

4、能正确表示a和b同时为正或同时为负的表达式是__________________。

5、设x=4.5,a=7,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是______________。

6、C语言程序设计的基本单位是。

7、下面程序段中while循环语句执行次。

n=11;

  while(n=0)++n;

8、设二进制x的值是11001101,y的值是00001111,可通过运算,使得x中的低4位不变,高4位清零。

9、有以下语句段:

intn1=15,n2=30;

printf(’’”,n1,n2);

要求按以下格式输出n1,n2的值,每个输出行从第一列开始,请填空。

n1=15

n2=30

10、设intb=3;则表达式b<<2的值是。

11.有一个3*4矩阵,求其中的最大元素。

max_value(

(1))

{inti,j,max;

max=array[0][0];

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

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

if(array[i][j]>max)

max=array[i][j];

(2);

}

main()

{inta[3][4],i,j;

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

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

(3);

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

}

12.输入x、y两个整数,按先大后小的顺序输出x、y。

#include“stdio.h”

main()

{intx,y,*px,*py,(4);

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

(5);(6);

if(x

{p=px;px=py;py=p;}

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

printf(“MAX=%d,MIN=%d\n”,*px,*py);

}

三、阅读程序,写结果

1、以下主程序的输出结果是。

voidmain()

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

p=a;q=&p;

printf(“%d,%d\n”,*(p++),**q);}

2、以下函数与主程序

voidswap(char*x,char*y)

{chart;

t=*x;

*x=*y;

*y=t;}

voidmain()

{char*s1="abc",*s2="123";

swap(s1,s2);printf("%s,%s\n",s1,s2);}

程序执行后的输出结果是。

3.floataverage(floatarray[10])

{inti;

floataver,sum=array[0];

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

sum=sum+array[i];

aver=sum/10;

return(aver);

}

main()

{floatscore[10]={89,67.5,78,91,56,82.5,65,70,79,88},aver;

inti;

aver=average(score);

printf(“averagescoreis%5.2f\n”,aver);

}程序执行后的输出结果是。

4.main()

{chara[5]={‘A’,‘B’,‘C’,‘D’,‘E’},*p=a,**pa;

for(p=0;p

printf(“%2c”,*p);

printf(“\n”);

printf(“%2c\n”,**(pa=&p));

}程序执行后的输出结果是。

5、以下程序的输出结果是。

voidmain()

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

for(i=0;i<3;i++)s+=a[i][i];

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

}

6、以下程序运行后的输出结果是。

voidmain()

{inta=1,b=2,c=3;

if(c=a)printf("%d\n",c);

elseprintf("%d\n",b);

}

7、以下程序段的运行结果是。

inti=1;

do

{if(i++%2){printf("@");continue;}

printf("*");

}while(i<6);

 

8、有下列程序:

#include

#include

voidfun(chars[][10],intn)

{chart;inti,j;

for(i=0;i

for(j=i+1;j

if(s[i][0]>s[j][0]){t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;}}

voidmain()

{charss[5][10]={"bcc","bbcc","xy","aaaacc","aabcc"};

fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序执行后的输出结果是。

9.main()

{inta=012,b=0x12,k=12;

charc=‘\102’,d=‘\r’;

printf(“a=%d\tb=%d\tk=%d\n”,a,b,k);

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

a=‘A’;c=49;

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

}程序执行后的输出结果是。

10、下列程序

#include

#include

char*fun(char*t)

{char*p=t;

return(p+strlen(t)/2);}

voidmain()

{char*str="abcdefgh";

str=fun(str);

puts(str);}程序执行后的输出结果是。

11.main()

{inta,b,s=0;

for(a=1,b=1;a<=100;a++)

{if(b>=20)break;

if(b%3==1)

 { b+=3;continue;}

b-=5;

}

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

}程序执行后的输出结果是。

12.main()

{printf(“main():

%d\n”,fact(5));

fact(-5);

}

fact(intvalue)

{intf;

if(value<0)

{printf(“Argerror\n");

return(-1);

}

elseif(value==1||value==0)f=1;

elsef=value*fact(value-1)+1;

printf(“Thiscalledvalue=%d\n”,f);

returnf;

}程序执行后的输出结果是。

4、程序填空题

1.百马百担问题:

有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马各多少匹?

main()

{inthb,hm,hl,n=0;

for(hb=0;hb<=100;hb+=

(1))

for(hm=0;hm<=100-hb;hm+=

(2))

{hl=100-hb-(3);

if(hb/3+hm/2+2*(3)==100)

{n++;

printf("hb=%d,hm=%d,hl=%d\n",hb/3,hm/2,2*hl);

}

}

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

}

2.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。

#defineN10

charstr[N];

main()

{inti,flag;

for(flag=1;flag==1;)

{scanf("%s",str);

flag=0;

printf("\n");

}

sort(___(4)___);

for(i=0;i

printf("%c",str[i]);

printf("\n");

}

sort(charstr[N])

{inti,j;

chart;

for(j=1;j

for(i=0;(i

='\0');i++)

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

{t=str[i];

____(5)____;

____(6)____;

}

}

3.以下程序是一个函数,功能是求二阶矩阵(m行n列矩阵)的所有靠外侧的各元素值之和。

(本程序中二阶矩阵用一维数组来表示。

例如,矩阵为:

3003

2573

1042

则所有靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=18。

add(intm,intn,intarr[])

{inti,j,sum=0;

for(i=0;i

for(j=0;j

sum=sum+(7);

for(j=0;j

for(i=1;(8);i++)

sum=sum+arr[i*n+j];

return(sum);

}

4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。

#defineN10

main()

{voidmaxmin(intarr[],int*pt1,int*pt2,intn);

intarray[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b;

p1=&a;p2=&b;

maxmin(array,p1,p2,N);

printf("max=%d,min=%d",a,b);

}

voidmaxmin(intarr[],int*pt1,int*pt2,intn)

{inti;

*pt1=*pt2=arr[0];

for(i=1;i

{if(arr[i]>*pt1)(9);

if(arr[i]<*pt2)(10);

}

}

 

5、以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否则输出NO。

当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是要同时满足三个条件:

a+b>c,a+c>b,b+c>a。

请将程序补充完整。

voidmain()

{floata,b,c;

scanf("%f%f%f",&a,&b,&c);

if()printf("YES\n");/*a、b、c能构成三角形*/

elseprintf("NO\n");/*a、b、c不能构成三角形*/

}

6、输出1~5行和1~10列的乘法表。

请将程序补充完整。

voidmain()

{introws,cols;

for(rows=1;rows<=5;rows++)

{for(cols=1;cols<=10;cols++)

printf(“%-4d”,____________);

printf(“\n”);

}

7、将一字符数组中的字符串拷贝到另一字符数组中。

请填空。

voidmain()

{charstr1[15],str2[]=”CLanguage”;

strcpy(_______,_______);

puts(str1);

printf(“\n”);

}

 

8、程序中,其max()函数的功能是将键盘输入的两个整型数据,输出大者。

要求函数有返回值。

请将以下程序中该函数的声明补充完整。

#include

voidmain()

{intx,y,z;

__________________;

printf(“Inputx,y:

”);

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

z=max(x,y);

printf(“max=%d\n”,z);

}

_____max(inta,intb)

{if(a>b)return(a);

elsereturn(b);

}

五、编程题

12C语言复习资料题目参考答案

一、选择题。

1

2

3

4

5

6

7

8

9

10

B

C

B

C

B

B

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

当前位置:首页 > 幼儿教育 > 少儿英语

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

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