c语言归纳题型练习 1文档格式.docx

上传人:b****6 文档编号:21042093 上传时间:2023-01-27 格式:DOCX 页数:20 大小:44.76KB
下载 相关 举报
c语言归纳题型练习 1文档格式.docx_第1页
第1页 / 共20页
c语言归纳题型练习 1文档格式.docx_第2页
第2页 / 共20页
c语言归纳题型练习 1文档格式.docx_第3页
第3页 / 共20页
c语言归纳题型练习 1文档格式.docx_第4页
第4页 / 共20页
c语言归纳题型练习 1文档格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

c语言归纳题型练习 1文档格式.docx

《c语言归纳题型练习 1文档格式.docx》由会员分享,可在线阅读,更多相关《c语言归纳题型练习 1文档格式.docx(20页珍藏版)》请在冰豆网上搜索。

c语言归纳题型练习 1文档格式.docx

(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>

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)

{

intx=13;

%d"

x+func(x));

func(intx)

x=11;

return(x);

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

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

intx=10,y=100;

move();

%d,%d\n"

x,y);

move();

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<

n;

i++)

if(x<

a[i])_____;

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

(a+i)

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

#include"

string.h"

{charp1[10]="

abc"

*p2="

DEF"

str[20]="

xyz"

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

%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(提示:

语句指的是先将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;

20;

scanf("

_(20)___);

if(a[i]<

0)___(21)_____;

s+=a[i];

count++;

%d\t%d"

s,count);

21.下面程序的功能是从字符串"

ComputerandC"

中删去所有空格,请填空。

#include<

string.h>

{charstr1[]="

str2[80];

inti,j=0;

_____(22)___;

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

'

str2[j]=str1[i];

j++;

str2[j]='

%s"

str2);

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

{intn;

for((24);

(25);

___(26)____)

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

n);

23.以下程序用"

辗转相除法"

来求出两个正整数的最大公约数。

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

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

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

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

否则执行步骤(4)

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

把余数作为新的除数

(5)求出新的余数r

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

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

stdio.h>

main()

{intr,m,n;

Enterm,n:

"

m,n);

%d,%d"

&

m,&

n);

if(m<

n)____(28)_____

r=____(29)___;

while(___(30)_____)

{m=___(31)___;

n=____(32)____;

r=____(33)____;

H.C.F=%d\n"

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

voidsort(__(34)__)

{inti;

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

return;

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

//此次考试不考

voidf(int*a,int*b)

{____(35)___;

t=*a;

*a=*b;

*b=t;

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

{____(36)___;

*t=*a;

*b=*t;

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

voidf(char*s,char*t)

{while(___(37)___)

*t=_(38)__;

t++;

s++;

*t='

27、打印9×

9乘法表。

输出格式要求为:

1*1=1

2*1=22*2=4

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

………………

程序如下:

{intm,n;

for(m=1;

=9;

m++)

{for(n=1;

(39);

n++)

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

(41)

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

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

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

{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!

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(;

=5;

i++){s=s+i;

}或for(;

6;

(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语言程序段

{intsum,i;

for(i=1;

=100;

{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);

printf(“\n”);

try_me();

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;

{intx=13;

func(x);

x+x);

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

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

for(i=0;

2;

XX文库-让每个人平等地提升自我{for(j=0;

j<

3;

j++)

k++;

k=k-j;

m=i+j;

k=%d,n=%d\n"

k,m);

7.运行下面程序段:

{intnumber,digit,s=0;

number);

do

{digit=number%10;

number=(number-digit)/10;

s=s+digit;

}while(number!

=0);

s);

}

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

_____________

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

longfunc(intx)

{longp;

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

(2);

p=x*func(x-1);

return(p);

{printf("

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;

{inty,z;

x=10;

y=20;

z=30;

z=sub(y);

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

{inti,s=0;

for(i=0;

10;

s=s+2;

printf(“%d”,s);

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

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

while(n<

=5)

{c=a+b;

a=b;

b=c;

n=n+1;

printf(“%d”,c);

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

当前位置:首页 > 表格模板 > 合同协议

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

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