C语言归纳题型练习.docx

上传人:b****1 文档编号:654246 上传时间:2023-04-29 格式:DOCX 页数:23 大小:45.24KB
下载 相关 举报
C语言归纳题型练习.docx_第1页
第1页 / 共23页
C语言归纳题型练习.docx_第2页
第2页 / 共23页
C语言归纳题型练习.docx_第3页
第3页 / 共23页
C语言归纳题型练习.docx_第4页
第4页 / 共23页
C语言归纳题型练习.docx_第5页
第5页 / 共23页
C语言归纳题型练习.docx_第6页
第6页 / 共23页
C语言归纳题型练习.docx_第7页
第7页 / 共23页
C语言归纳题型练习.docx_第8页
第8页 / 共23页
C语言归纳题型练习.docx_第9页
第9页 / 共23页
C语言归纳题型练习.docx_第10页
第10页 / 共23页
C语言归纳题型练习.docx_第11页
第11页 / 共23页
C语言归纳题型练习.docx_第12页
第12页 / 共23页
C语言归纳题型练习.docx_第13页
第13页 / 共23页
C语言归纳题型练习.docx_第14页
第14页 / 共23页
C语言归纳题型练习.docx_第15页
第15页 / 共23页
C语言归纳题型练习.docx_第16页
第16页 / 共23页
C语言归纳题型练习.docx_第17页
第17页 / 共23页
C语言归纳题型练习.docx_第18页
第18页 / 共23页
C语言归纳题型练习.docx_第19页
第19页 / 共23页
C语言归纳题型练习.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言归纳题型练习.docx

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

C语言归纳题型练习.docx

C语言归纳题型练习

归纳的题型练习

将历年试题整理如下

一.选择题

1.C语言程序是由__c____组成

(A)子程序(B)过程(C)函数(D)主程序和过程

2.C语言可执行程序的开始执行点是:

_____C_______

(A)程序中第一条可执行语句(B)程序中第一个函数

(C)程序中main函数(D)包含文件中的第一个函数

3.以下标识符组中,合法的用户标识符为_____B_____

(A)b-b(B)FLOAT(C)(D)int

4.下面不正确的字符串常量是___A______

(A)'abc'(B)"12'12"(C)"0"(D)""

5.设有说明:

charw;intx;floaty;doublez;

则表达式w*x+z-y值的数据类型为____D_______

(A)float(B)char(C)int(D)double

6.在下面给出的四个语句段中,__A______能够正确表示出以下的函数关系:

-1(x<0)

y=0(x=0)

1(x>0)

(A)if(x!

=0)(B)y=0;

if(x>0)y=1;if(x>=0)

elsey=-1;if(x)y=1;

elsey=0;elsey=-1;

(C)if(x<=0)y=-1;(D)y=-1;

if(x!

=0)y=1;if(x!

=0)

elsey=0;if(x>0)y=1;

elsey=0;

7.执行语句for(i=1;i++<4;);后变量i的值是___C______

(A)3(B)4(C)5(D)不定

8.定义intc;则表达式4+(c=7/2)>1的值为:

____C_______

(A)4(B)表达式非法,无值

(C)1(D)5

9.若有说明:

inta[3][4];则对数组元素的正确引用是____C______

(A)a[2][4](B)a[1,3](C)a[1+1][0](D)a

(2)

(1)

10.程序中使用了库函数strcpy,则该程序应包含如下哪个头文件?

_D_______

(A)stdio.h(B)stdlib.h(C)ctype.h(D)string.h

11.字符'\n'表示:

__C________

(A)回车(B)换行

(C)回车并换行(D)换行不回车

12.以下正确的函数声明形式是_C_________

(A)doublefun(intx,inty)

(B)doublefun(intx;inty)

(C)doublefun(intx,inty);

(D)doublefun(intx;inty);

13.以下不正确的说法为___D______

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

(B)形式参数是局部变量

(C)在函数内定义的变量只在本函数范围内有效

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

答案:

1、C2、C3、B(由于C语言区分大小写,FLOAT与float不同,float为关键字,但FLOAT可以为用户标识符)4、A5、D6、A7、C8、C(此时c为3)9、C10、D11、C12、C13、D

 

1、C语言程序的三种基本结构是A

A、顺序结构、选择结构、循环结构B、递归结构、循环结构、转移结构

C、嵌套结构、递归结构、顺序结构D、循环结构、转移结构、顺序结构

2、为了避免嵌套的条件语句ifelse的二义性,C语言规定:

else与B配对。

A、缩排位置相同的ifB、其之前最近且未配对过的if

C、其之后最近的ifD、同一行上的if

3、数组名作为参数传递给函数,作为实在参数的数组名被处理为D

A、该数组的长度B、该数组的元素个数

C、该数组中个元素的值D、该数组的首地址

4、若i=5,j=1为整数,则以下while循环执行B次.

do

{

printf("*");j=j+2;i=i+1;

}

while(j<=i);

A)4B)5C)3D)2

5、C语言程序中,若对函数类型未加显式说明,则函数的隐含类型为C类型。

A)voidB)doublec)intd)char

9、设inta=1,b=2,c=3;则表达式a==c||a+b>c的值是(B)

A.FB.0C.1D.T

答案:

1、A2、B3、D4、B5、C9、B

1、下列C常量中不合法的是(C)

A.'5'B."5"C.'500'D."500"

2.在C程序的函数内_______B_______嵌套定义函数。

A)能B)不能

3、C程序中,注释部分的位置(D)

A.必须在一行的开始B.必须在语句之后

C.必须在一行的最后D.以上三种都可以

4、下面C常量中不合法的是(B)

A."ABC\0"B.-e0.1C.'\0'D.0Xfff

5.下面程序的运行结果是(D)

main()

{chara='a',b='b';

putchar(a);

putchar('\b');

putchar(b);

}

A.abb

B.a

b

C.b

D.未使用预编译命令,无法调用putchar函数

6、下面表达式中(D)的值等于0。

(设:

inta=1;charb='0';)

A.!

a==!

bB.!

a||bC.!

(a==b)D.a&&!

b

7、.设intm=7;floatn=3.5;计算m-=m-!

n后,m的值是(D)

A.3B.3.5C.1D.0

8、.表达式x=1.42,(int)x+0.4的值是(C)。

(floatx;)

A.1.82B.1.42C.1.4D.0.4

9.已知x=0,y=0;执行以下程序段后,y的值为(A)。

if(x!

=0)

if(x>0)y=1;

elsey=-1;

A.0B.-1C.1D.不确定

10、执行下面程序段后,变量i的值是(B)

inti=5;

switch(i--)

{case4:

i+=2;

case5:

i+=3;

case6:

i+=4;break;

default:

i+=10;

}

A.9B.11C.12D.13

11.设charch;执行下面程序段时,若键盘输入abcde!

<回车>,则输出结果是(D)。

while((ch=getchar())!

='!

')

{ch=ch+1;

putchar(ch);

}

A.bcdef!

B.abcdef!

C.abcdeD.bcdef

12.设intm,i;执行下面程序段后,变量m,i的值依次为(B)。

for(m=0,i=20;m<50;i-=2)

m=m+i;

A.40,16B.54,14C.69,12D.80,10

13.C语言中宏定#define所在命令行的位置(C)。

A.必须在程序的开始B.可以随意安排

C.必须在其它函数之外D.必须在其它函数之中

答案:

1、C2、B3、D4、B5、D6、D7、D8、C9、A10、B(思路提示:

①先执行switch(i)寻找入口->②再执行i--->③然后执行入口后面的语句。

这里注意:

语句要一直执行到break才跳出switch语句。

11、D12、B13、C

 

1.下面程序段输出结果是(B)。

charstr[]="adcd",*ps=str;

printf("%d\n",*(ps+4));

A.100B.0C.字符'd'的地址D.不确定

2.下列函数fun的返回值为(C)

fun(floatx)

{printf("%f\n",x);

}

A.void类型B.无法确定返回值C.int类型D.没有返回值

3.max函数定义如下,且a,b,c,d,e,f,g均为整型变量,下面的调用中(C)是不正确的。

max(intx,inty)

{intz;

if(x>y)z=x;

elsez=y;

return(z);

}

A.max(a,max(c,b))B.max(max(a,b),max(c,d))

C.max(a,b,c)D.g=max(f=max(a.b),max(d,e))

4.下面程序的输出结果是(C)

main()

{

intx=13;

printf("%d",x+func(x));

}

func(intx)

{

x=11;

return(x);

}

A.22B.26C.24D.出错

5.下面程序的输出结果是(A)

intx=10,y=100;

main()

{

move();

printf("%d,%d\n",x,y);

move();

printf("%d,%d\n",x,y);

}

move()

{

intw;

w=x;x=y;y=w;

}

A.100,10B.10,100C.100,10D.出错

10,10010,100100,10

6.下面是求1+2+3+......+n的函数,下划线处应选择(C)

intsum(intn)

{ints=0;

if(n==0)return(s);

if(n>=1)return(__);

}

A.1B.sum(n-1)C.n+sum(n-1)D.s+sum(n-1)

7.设x为整型变量,则语句int*px=&x;表示(D)。

A.给*px赋初值B.px为变量x所指的值

C.px的初值为xD.px的初值为x的地址

9.下面函数返回数组的最大值,下划线处应选择(B)。

intf(int*a,intn)

{intx=*a,i;

for(i=1;i

if(x

return(x);

}

A.x=a+iB.x=*(a+i)C.x=[a+i]D.x=&(a+i)

10.下面程序的输出是(D)。

#include"string.h"

main()

{charp1[10]="abc",*p2="DEF",str[20]="xyz";

strcpy(str+2,strcat(p1,p2));

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

}

A.xyzabcDEFB.zabcDEFC.yzabcDEFD.xyabcDEF

答案:

1、B2、C3、C4、C5、A(提示:

由于x,y都是全局变量,因此move函数中所用到的x和y都是全局的x和y)6、C7、D9、B10、D(提示:

strcpy(str+2,strcat(p1,p2));语句指的是先将p2字符串附加在p1字符串之后,且覆盖掉p1字符串的’\0’;再将p1拷贝到str字符串,从str+2开始拷贝。

如下图所示:

二、填空题

1.结构化程序的3种基本结构是顺序结构、选择结构和循环结构。

2.C程序的开始执行点是程序中main函数

3.流程图及N—S图都是一种)算法描述的工具。

4.有符号的基本整形变量的有效取值范围是)-32768~32767。

5.字符常量是用单引号括起来的一个字符。

6.字符串的结束标识是\0。

7.为避免条件语句if—else嵌套的二义性,C语言规定:

else与上面最近未匹配的if配对。

8.C语言用非表示逻辑“真”值。

9.能实现C程序循环结构的语句包括while语句,do-while语句和for语句

10.C语言的逻辑运算符包括&&(逻辑与)、||(逻辑或)和!

(逻辑非)

11.无条件使流程跳出循环的语句是break。

12.假使整形变量a、b的值分别1和3,表达式a+b/2的值是2。

13.在函数内部定义的变量,其有效范围是从定义变量开始到本函数结束。

14.函数体一般包括声明部分与执行部分。

15.C语言提供的预处理功能主要有宏定义、文件包含和条件编译

16.在C程序的函数内____不能__嵌套定义函数。

17.C语言规定标识符只能由________字母,下划线和数字三种字符组成。

18.设inta,b;则能正确表示代数式1/(ab)的C语言表达式是_____(18)_______。

19.设inti=1,s=0;

与do{s=s+i;}while(i++<5);等价的for循环结构是________(19)________。

20.下面程序读入20个整数,统计非负数个数并计算非负数之和。

请填空。

main()

{inti,a[20],s,count;

s=count=0;

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

scanf("%d",_(20)___);

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

{

if(a[i]<0)___(21)_____;

s+=a[i];

count++;

}

printf("%d\t%d",s,count);

}

21.下面程序的功能是从字符串"ComputerandC"中删去所有空格,请填空。

#include

main()

{charstr1[]="ComputerandC",str2[80];

inti,j=0;

for(i=0;i<_____(22)___;i++)

if(str1[i]___(23)___'')

{

str2[j]=str1[i];

j++;

}

str2[j]='\0';

printf("%s",str2);

}

22.下面程序的功能是把100~200之间的不能被3整除的数输出。

main()

{intn;

for((24);(25);___(26)____)

{if(n%3==0)(27);

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

}

}

23.以下程序用"辗转相除法"来求出两个正整数的最大公约数。

请填空.若两个数分别放在变量m和n中,求最大公约数的算法如下:

(1)将两数中大的那个放在m中,小的放在n中

(2)求出m被n除后的余数r

(3)若余数为0则执行步骤(7);否则执行步骤(4)

(4)把除数作为新的被除数;把余数作为新的除数

(5)求出新的余数r

(6)重复步骤(3)到(5)

(7)输出n,此时n即为最大公约数

#include

main()

{intr,m,n;

printf("Enterm,n:

",m,n);

scanf("%d,%d",&m,&n);

if(m

r=____(29)___;

while(___(30)_____)

{m=___(31)___;

n=____(32)____;

r=____(33)____;

}

printf("H.C.F=%d\n",n);

}

24.下面的函数是对一个数组的各元素值乘以2,(假设数组为int型),请填空。

voidsort(__(34)__)

{inti;

for(i=0;i

a[i]=a[i]*2;

return;

}

25、下面函数的功能是交换a,b指针所指向的值,请填空。

//此次考试不考

voidf(int*a,int*b)

{____(35)___;

t=*a;*a=*b;*b=t;

}

若函数f是如下写法,又该怎样修改,请填空。

voidf(int*a,int*b)

{____(36)___;

*t=*a;*a=*b;*b=*t;

}

26、下面函数实现将字符串s复制到字符串t。

//此次考试不考

voidf(char*s,char*t)

{while(___(37)___)

{

*t=_(38)__;

t++;

s++;

}

*t='\0';

}

27、打印9×9乘法表。

输出格式要求为:

1*1=1

2*1=22*2=4

3*1=33*2=63*3=9

………………

程序如下:

main()

{intm,n;

for(m=1;m<=9;m++)

{for(n=1;(39);n++)

printf(“(40)”,m,n,m*n);

(41)

}

}

28.判断某个大于2的无符号整数是否素数。

判断无符号整数N是否素数的标准是:

除了1与N以外,N不能被任何一个整数所整除。

main()

{intn,i,ext;/*n表示输入数据,ext表示n是否素数的判断结论*/

ext=1;

scanf(“%d”,(42));

for(i=2;i<=n-1;i++)

if(n%i==0)

{ext=(43);

(44)

}

if(ext!

=0)

printf(“YES”);

else

printf(“NO”);

}

答案:

(1)顺序结构、选择结构和循环结构

(2)程序中main函数(3)算法描述

(4)-32768~32767(5)单引号(6)\0(7)上面最近未匹配的if(8)非0

(9)while语句,do-while语句和for语句(10)&&(逻辑与)、||(逻辑或)和!

(逻辑非)(11)break;(12)2(13)从定义变量开始到本函数结束(14)声明部分

(15)宏定义、文件包含和条件编译(16)不能(17)字母,下划线和数字

(18)1/(float)(a*b)(19)for(;i<=5;i++){s=s+i;}或for(;i<6;i++){s=s+i;}

(20)&a[i](21)continue;(22)strlen(str1)(23)!

=(24)n=100(25)n<200(26)n++(27)continue(28){r=m;m=n;n=r;}(29)m%n(30)r!

=0(31)n(32)r(33)m%n(34)inta[],intn或int*a,intn(35)intt;

(36)intk;int*t;t=&k;(37)*s!

=’\0’(38)*s(39)n<=m

(40)%d*%d=%d\t(41)printf("\n");(42)&n(43)0(44)break;

三、读程序填空

1、现有C语言程序段

main()

{intsum,i;

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

{sum=0;

sum=sum+i;

}

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

}

其输出是:

2、当从键盘键入abcedef(回车)时,下面的C程序段输出是:

#include

try_me()

{

charc;

if((c=getchar())!

=‘\n’)

try_me();

putchar(c);

}

main()

{

printf(“\n”);

try_me();

printf(“\n”);

}

3、现有一个C语言计算的数学函数fib(n):

fib(intn)

{

switch(n){

case0:

return0;

case1:

return1;

default:

{

inti;

inta=0,b=1,result;

for(i=2;i<=n;i++)

{

result=a+b;

a=b;

b=result;

}

returnresult;

}

}

}

该数学函数的表达式是

4、下面程序段的输出结果是:

func(intx)

{x=11;

return(x);

}

main()

{intx=13;

func(x);

printf("%d",x+x);

}

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

#include

main()

{inti,j,k=0,m=0;

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

{for(j=0;j<3;j++)

k++;

k=k-j;

}

m=i+j;

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

}

7.运行下面程序段:

#include

main()

{intnumber,digit,s=0;

scanf("%d",&number);

do

{digit=number%10;

number=(number-digit)/10;

s=s+digit;

}while(number!

=0);

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

}

键盘输入值12345,输出结果为:

_____________

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

#include

longfunc(intx)

{longp;

if(x==0||x==1)return

(2);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

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

intx;

intsub(inty)

{intz;

x=x+1;

y=y+1;

z=x+y;

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

returnz;

}

main()

{inty,z;

x=10;

y=20;

z=30;

z=sub(y);

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

}

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

main()

{inti,s=0;

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

s=s+2;

printf(“%d”,s);

}

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

main()

{intn=3,a=1,b=1,c;

while(n<=5)

{c=a+b;

a=b;

b=c;

n=n+1;

}

printf(“%d”,c);

}

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

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

当前位置:首页 > 总结汇报 > 学习总结

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

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