C语言知识点考试复习题库_第1页
C语言知识点考试复习题库_第2页
C语言知识点考试复习题库_第3页
C语言知识点考试复习题库_第4页
C语言知识点考试复习题库_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1C语言规定:简单变量作为实参时,它和对应形参之间的数据传递

方式是(B)o

A.地址传递B.单向值传递

C.由实参传给形参,再由形参传回给实参D.由用户指定的传递方

2以下程序的输出结果是Ao

#include<stdio.h>

voidmain()

{intk=4,m=l,p;

p=func(k,m);printf("%dj,p);

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

}

inta,b;

func(a,b)

{staticintm=0,i=2;

i+=m+l;m=i+a+b;return(m);

)

A)8,17B)8,16C)8,20D)8,8

3下列程序执行后输出的结果是D

#include

f(inta)

{intb=0;staticc=3:

a=c++,b++;

return(a);}

voidmain()

{inta=2,i,k;

for(i=0;i<2;i=++>k=f(a++);

printf(H%d\n",k);}

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

4若有以下定义:D

chara;intb;

floatc;doubled;

则表达式a*b+d-c值的类型为

A)floatB)intC)charD)double

5以下程序的输出结果是D

main()

{inta=-l,b=4,k;

k=(++a<0)&&!(b--<=0);

printf(',%d%d%d\n",k,a,b);}

A)104B)103C)003D)004

6D

若有定义:intx,y;chara,b,c;并有以下输入数据(此处“CR”代表换

行符,/u代表空格):

lu2

AuBuC

则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,

给c赋字符C的正确程序段是

A)scanf(nx=%dy+%d”,&x,&

y);a=getchar();b=getchar();c=getchar();

B)scanf("%d%d",&x,&

y);a=getchar();b=getchar();c=getchar();

C)scanf("%d%d%c%c%c",&x,&y,&a,&b,&c);

D)scanf("%d%d%c%c%c%c%c%cH,&x,&y,&a,&a,&b,&b,&

c,&c);

7有以下程序B

main()

{inti=10,j=l;

printf(M%d,%d\n",i-,++j);

}

执行后输出的结果是

A)9,2B)10,2C)9,1D)10,1

8有以下程序C

main()

{intm=0256,n=256;

printfC^o%o\n”,m,n)似八进制输出无符号整数

程序运行后的输出结果是()

A)02560400B)0256256C)256400D)400400

9下面程序的输出是(A)

#include"stdio.h'

voidmain()

{

intx=100,a=10,b=20,okl=5,ok2=0;

if(a)

if(b!=15)

if(!okl)

x=l;

else

if(ok2)x=10;

x=-l;

printf("%d\nH,x);

}

A)-1B)0

C)1D)不确定的值

10以下程序的输出为Bo

main()

{inta=20,b=30,c=40;

if(a>b)a=b;

b=c;c=a;

printf(na=%d,b=%d,c=%d,',a,b,c);

)

A)a=20,b=30,c=20

B)a=20,b=40,c=20

C)a=30,b=40,c=20

D)a=30,b=40,c=30

11阅读下面的程序:A

#include"stdio.h'

voidmain()

intk=-3;

if(k<=0)printf("####");

elseprintf("&&&&”);

}

上面程序片段的输出结果是()

A)####B)&&&&

C)####&&&&D)有语法错误,无输出结果

12已知intk=10,m=3,n;则下列语句输出结果是B

printf(h%d\nM,n=(k%m,k/m));

A.2

B.3

C.4

D.5

13若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)

后,x的值为C

A.4

B.16

C.32

D.52

14有如下程序C

main()

(floatx=2.0,y;

if(0.0>x)y=0.0;

elseif(10.0>x)y=1.0/x;

elsey=1.0;

printf("%f'n”,y);}

该程序的输出结果是

A.0.000000

B.0.250000

C.0.500000

D.1.000000

15循环语句B

for(x=0,y=0;(y!=l)||(x<4);x++)循环体;

的循环体执行次数是________O

A)无限次B)不确定次C)4次D)3次

16下面程序段的执行结果是____C_

a=2;b=l;c=2;

while(a<b<c)

{t=a;a=b;b=t;c—;}

printf("%d,%d,%d",a,b,c);

A)l,2,0B)2,l,0C)l,2,lD)2,l,l

18下列关于C语言用户标识符的叙述中正确的是B

A用户标识符中可以出现下划线和中划线(减号)

B用户标识符中不可以出现中划线,但可以出现下划线

C用户标识符中可以出现下划线,但不可以放在用户标识符的开头

D用户标识符中可以出现下划线和数字,它们都可以放在用户标识

符的开头

19下面标识符中,不合法的标识符是B

A.AbB.a#bC.x_y_2D.x2

20合法的数组定义是D

A.inta[]="string',;

B.inta[5]={0,l,2,3,4,5};

C.vhsts=nstring";

D.chara[]={0,l,2,3,4,5};

21sl和s2已正确定义并分别指向两个字符串。D

若要求:当si所指串大于s2所指串时,执行语句S;则以下选项中

正确的是

A.if(sl>s2)S;B.if(strcmp(sl,s2))S;

C.if(strcmp(s2,sl)>0)S;D.if(strcmp(sl,s2)>0)S;

22下列选项中正确的语句组是D

A.chars[8];s={uBeijing"};B.char*s;s={"Beijingn};

C.chars[8];s="Beijing'^;D.char*s;s="Beijing',;

23以下程序完成3行3列矩阵的转置,请填空—a[i][j]=a[j][i]

#include<stdio.h>

voidmain()

(

inta[3][3]={l,2,3,4,5,6,7,8,9);

inti,j,k;

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

for(j=O;j<i;j++)

{k=a[i][j];

-------------,■

a[j][i]=k;

)

}

24下面程序段运行的结果6_o

inta=O,y=O;

do{

a+=2;y+=a;

if(y>5)break;

}while(a);

printf(u%d",y);

25分析如下程序,此程序运行时输出结果是:20

#include<stdio.h>

voidtest(int*x,int*y);

voidmain()

inta=10,b=20;

test(&a,&b);

printf(u%d",a);

}

voidtest(int*x,int*y)

{

intt;

t=*x;*x=*y;*y=t;

26分析如下程序,此程序运行时输出结果是:zhang

#include<stdio.h>

typedefstruct

{inta;

floatb;

char*c;

}UN;

voidmain()

{

staticUNx={19,83.5,"zhang"};

UN*px;

px=&x;

printf(H%su,px->c);

27以下程序运行后的输出结果是NOo

#include<stdio.h>

voidmain()

|

inta=l,b=3,c=5;

if(c==a+b)printff'Yes\n");

elseprintf(nNo\n");

)

28生注意:先将源程序文件705.C复制到D盘中操作,操作完成后,

将此文件复制回来(覆盖)!

要求:补充程序使得程序运行时完成以下功能:

用函数调用完成求一个数组{1。,0,2,4,5,8,10,12,2,40}

中的最大元素值

要求:通过函数调用实现(计算方法在子函数中,通过主函数调用实

现)

29考生注意:先将源程序文件101.C复制到D盘中操作,操作完成

后,将此文件复制回来(覆盖)!

要求:补充程序使得程序运行时完成以下功能:

编写一个程序,向屏幕输出以下信息:

Hello!

Verygood!!!!!

3。考生注意:先将源程序文件209.C复制到D盘中操作,操作完成

后,将此文件复制回来(覆盖)!

要求:补充程序使得程序运行时完成以下功能:

计算公式:[x+1x<0

y=[x*x+20<=x<=2

[x*x*x+3x>2

要求:1)从键盘输入x的值,根据x的值求y的值

2)输出y的值

31考生注意:先将源程序文件510.C复制到D盘中操作,操作完成

后,将此文件复制回来(覆盖)!

要求:补充程序使得程序运行时完成以下功能:

编写程序打印如下图形:

要求:1)5行的等腰三角形

2)每个字符占两列的宽度。

答案题号:1分值:2得分:0答案:B试卷:D

题号:2分值:2得分:2答案:A试卷:A

题号:3分值:2得分:0答案:D试卷:B

题号:4分值:2得分:0答案:D试卷:C

题号:5分值:2得分:2答案:D试卷:D

题号:6分值:2得分:0答案:D试卷:A

题号:7分值:2得分:2答案:B试卷:B

题号:8分值:2得分:2答案:C试卷:C

题号:9分值:2得分:2答案:A试卷:A

题号:10分值:2得分:2答案:B试卷:B

题号:11分值:2得分:2答案:A试卷:A

题号:12分值:2得分:2答案:B试卷:B

题号:13分值:2得分:0答案:C试卷:D

题号:14分值:2得分:0答案:C试卷:A

题号:15分值:2得分:0答案:B试卷:C

题号:16分值:2得分:2答案:C试卷:C

题号:17分值:2得分:0答案:B试卷:D

题号:18分值:2得分:2答案:B试卷:B

题号:19分值:2得分:2答案:B试卷:B

题号:20分值:2得分:0答案:D试卷:A

题号:21分值:2得分:0答案:D试卷:C

题号:22分值:2得分:0答案:D试卷:C

题号:23分值:2得分:0

答案:

a[i][j]=a[j][i]

试卷:

题号:24分值:2得分:2答案:6试卷:6

题号:25分值:2得分:2答案:20试卷:20

题号:26分值:2得分:2答案:zhang试卷:zhang

题号:27分值:2得分:2答案:No试卷:No

1在函数调用过程中,如果函数funA调用了函数funB,函数funB

又调用了函数funA,则(B)

A)称为函数的直接递归调用B)称为函数的间接递归调用

C)称为函数的循环调用D)C语言中不允许这样的递归调

2c语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是

B

A)voidB)intC)floatD)double

3有如下函数调用语句fun(reel,rec2+rec3,rec4*rec5),该语

句中含有的实参个数是A

A)3B)4C)5D)有语法错误

4有以下程序B

main()

{charal='M',a2='m';

printf("%c\n",(al,a2));}

以下叙述中正确的是

A)程序输出大写字母MB)程序输出小写字母m

C)格式说明符不足,编译出错D)程序运行时产生出错信息

5若变量a、il已正确定义,且i已正确赋值,合法的语句是B

A)a==lB)++i;C)a=a++=5;D)a=int(i);

6如这程序所示,如果运行时,输入18,18,那么b的值为多少?D

voidmain()

»

inta,b;

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

b+=a;

printf("%dH,b);

)

A.36B.34C.输入错误,b的值不确定D.19

7以下叙述中正确的是D

A)输入项可以是一个实型常量,如:

scanf("%f,3.5);

B)只有格式控制,没有输入项,也能正确输入数据到内存,例如:

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

C)当输入一个实型数据时,格式控制部分可以规定小数点后的

位数,例如:

scanf(M%4.2f',&f);

D)当输入数据时,必须指明变量地址,例如:

scanf("%fn,&f);

8若运行时给变量x输入12,则以下程序的运行结果是A

main()

{intx,y;

scanf("%d",&x);

y=x>12?x+10:x-12;

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

}

A)0B)3C)2D)1

9阅读以下程序:B

main()

{intx;

scanf("%d",&x);

if(x-<5)printf(,'%d"'x);

elseprintf("%d'Mx++);

程序运行后,如果从键盘上输人5,则输出结果是

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

10请写出以下程序的输出结果

main()

{inta=100;

if(a>100)printf("%d\n”,a〉100);

elseprintf(w%d\nw,a<=100);

}

A0B1C100D-1

11对于条件表达式(k)?(i++):(i—)来说,其中的表达式k等价于Co

A)k==0B)k==lC)k!=0D)k!=l其中k不为零即为真

12下列程序的输出结果是C

main()

{intx,y;

x=1.5;y=(x-3.5)/5;

printf(r'%d\n",y);

}

A.1

B.1.0

C.0

D.0.9

13

若变量a,i已正确定义,且i已正确赋值,合法的语句是B

A.a==1

B.++i;

C.a=a++=5;

D.a=int(i);

14有如下程序:A

main()

{intn=9;

while(n>6)

{printf("%d",n);n-;}

)

该程序的输出结果是

A.987

B.876

C.8765

D.9876

152.语句while(!E);中的表达式!E等价于—A

A)E==OB)E!=1C)E!=OD)E==1

16有以下程序

#include<stdio.h>

voidmain()

{intx=0,y=3,z=l;

while(z->0&&++x<4)y=y-l;

printf(u%d,%d,%d\nu,x,y,z);

)

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

A)l,2,0B)l,2,-1C)4,3,-lD)3,-2,-l

17以下叙述中正确的是C

A.C语言比其他语言高级

B.C语言可以不用编译就能被计算机识别执行

C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形

D.C语言出现的最晚,具有其他语言的一切优点

18以下述叙不正确的是D

A.一个C源程序可以由一个或多个函数组成

B.一个C源程序必须包含一个main函数

C.C程序的基本组成单位是函数

D.在C程序中注释说明只能位于一条语句的后面

19D

在设计程序时,应采纳的原则之一是

A.不限制goto语句的使用

B.减少或取消注解行

C.程序越短越好

D.程序结构应有助于读者理解

20以下叙述中错误的是_C。

A.对于double类型数组,不可以直接用数组名对数组进行整体输

入或输出

B.数组名代表的是数组所占存储区的首地址,其值不可改变

C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统

将给出“下标越界”的出错信息

D.可以通过赋初值的方式确定数组元素的个数

21给出以下定义:C

charx[]="abcdefgH;

chary[]={宣笛

则正确的叙述为

A.数组X和数组Y等价

B.数组x和数组Y的长度相同

C.数组X的长度大于数组Y的长度

D.数组X的长度小于数组Y的长度

22

考生已知:intc[3][4];则对数组元素引用正确的是C

A.c[3][3]

B.c[0.5][0]

C.c[1-1][0]

D.以上表达都错误

23下面程序运行结果是(15)

#include<stdio.h>

voidmain()

{inta[5]={2,4,5,6,8};

inti,s=O;

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

if(i%2==0)s=s+a[i|;

printf("%d",s);

}

24下列程序段的输出是_5,2

intk,s;

for(k=0,s=0;k<4;k++)

s+=k/2;

printf(u%d,%dM,k,s);

2.有如下程序B

main()

{intx=23;

do{

printf(”%d”,x--);

{while(!x);

}

该程序的执行结果是

A.321

B.23

C.不输出任何内容

D.陷入死循环

3以下程序段的输出结果是A

chars[]=,,\\141\141abc\tM;

printf(M%d\nn,strlen(s));

A.9

B.12

C.13

D.14

4以下叙述中错误的是—C—o

A.对于double类型数组,不可以直接用数组名对数组进行整体输

入或输出

B.数组名代表的是数组所占存储区的首地址,其值不可改变

C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统

将给出“下标越界”的出错信息

D.可以通过赋初值的方式确定数组元素的个数

5.结构化程序设计的3种结构是D

A.顺序结构、选择结构、转移结构

B.分支结构、等价结构、循环结构

C.多分支结构、赋值结构、等价结构

D.顺序结构、选择结构、循环结构

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

#include

main()

{inty=10;

do{y-;}while(-y);

printf("%d'n”,y--);

}

A.-1

B.1

C.8

D.0

7下面各选项中,均是C语言标识符的选项组是B

A.33weauto

B._23me_3ew

C._433e_else

D.you-he32

8有如下程序:A

main()

{intn=9;

while(n>6)

{printf("%dM,n);n-;}

该程序的输出结果是

A.987

B.876

C.8765

D.9876

9设inta=5,b=6,表达式(b--==6)?++a:—b的值是__B

A.5

B.6

C.7

D.4

10设以下变量均为int类型,则值等于12的表达式是D

A.(x=y=6,x+l,5+x)

B.(x=y=6,y+l,5+y)

C.(y=6,y+l,x=y,x+l)

D.(x=6,x+l,y=6,x+y)

11以下二维数组c的定义形式是C

A.intc[3][]

B.floatc[3,4]

C.doublec[3][4]

D.floatc(3)(4)

12以下能正确定义字符串的语句是D

A.charstr口={'\064'};

B.charstr="kx43";

C.charstr=";

D.charstr[]='\0H;

13所有C函数的结构都包括的三部分是C

A.语句、花括号和函数体

B.函数名、语句和函数体

C.函数名、形式参数和函数体

D.形式参数、语句和函数体

14下列选项中不是结构化程序基本结构的是B

A.顺序结构

B.跳转分支结构

C.选择结构

D.循环结构

15以下程序段中,不能正确赋字符串(编译时系统会提示错误)的

是C

A.chars[10]="abcdefg”;B.chart[卜”abcdefg”,*s=t;

C.chars[10];s=,>abcdefg”;D.chars[10];strcpy

(s,”abcdefg");

16下列关于二维数组的说明语句正确是_B—。

A.二维数组在初始化时必须给出全部的值

B.如果对二维数组的全部元素赋初值,则第一维的长度可以省略

C.二维数组不可以分行进行赋值

D.二维数组在引用时可以省略行下标或列下标

17)已有定义:a[]={'x',y;z7O1},charb[]="xyzOn;,以下叙述中正

确的是—B—o

A.数组a和b的长度相同

B.a数组长度小于b数组长度

C.a数组长度大于b数组长度

D.上述说法都不对

18有以下程序

main()

{intp[7]={11,13,14,15,16,17,18},i=0,k=0;

while(i<7&&p[i]%2)

{k=k+p[i];i++;}

printf(u%d\nu,k);

}

执行后输出的结果是—D。

A.58

B.56

C.45

D.24

19以下说法正确的是C

A.C语言程序总是从第一个的函数开始执行

B.在C语言程序中,要调用函数必须在main()函数中定义

c.C语言程序总是从main()函数开始执行

D.C语言程序中的main()函数必须放在程序的开始部分

20若耳和k都是int型变量,则表达式(i=4,j=16,k=32,i=j)的值

为B

A.4

B.16

C.32

D.52

1假定a和b为int型变量,则执行以下语句后b的值为D

a=l;b=10;

do

{b-=a;a++;}

while(b—<0);

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

2以下函数调用语句中,含有的实参个数是C

fun_sum(a,a+l,(a+2,a+3));

A2B5C3D有语法错误

3有如下程序B

#include<stdio.h>

longfib(intn)

{if(n>2)return(fib(n-l)+fib(n-2));

elsereturn(2);

}

voidmain()

{printf("%d\n”,fib(3));

该程序的输出结果是

A)2B)4C)6D)8

4若有以下定义:D

chara;intb;

floatc;doubled;

则表达式a*b+d-c值的类型为

A)floatB)intC)charD)double

5下面的变量说明中正确的是_____Do

A.Inta,b,c;B.INTa,b,c;

C.inta,b,cD.inta,b,c;

6若有说明语句:inta;floatb;,以下输入语句正确的是C。

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

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

C)scanf(H%d,%f",&a,&b);

D)scanf(M%6.2f%6.2f",&a,&b);

7执行下面程序段,给x、y赋值时,不能作为数据分隔符的是Do

intx,y;

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

A)空格B)Tab键C)回车D)逗号

8以下程序段的输出结果是_A

#include"stdio.h'

voidmain()

{unsignedinti=65535;

printf(H%d\nH,i);

}

A)65535B)0C)有语法错误,无输出结果D)-1

9与y=(x>O?l:x〈0?-1:0);的功能相同的if语句是A

A)if(x>0)y=l;B)if(x)

elseif(x<0)y=-l;if(x>0)y=l;

elsey=0;elseif(x<0)y=-l;

elsey=0;

C)y=-lD)y=0;

if(x)if(x>=0)

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

elseif(x==0)y=0;elsey=-l;

elsey=-l;

10下面关于switch语句和break语句的结论中,正确的是(B)

A)break语句是switch语句的一部分。

B)在switch语句中,可以根据需要确定使用或不使用break语句。

C)在switch语句中,必须使用break语句。

D)break语句只能用在switch语句中。

11以下4个选项中,不能看作一条语句的是(D)

A){;}B)a=0,b=0,c=0;

C)if(a>0);D)if(b==0)m=l;n=2;

12设y是int型,请写出y为奇数的关系表达式可以表示为_A_。

A.(y%2)==l

B.(y%2)==0

C.(y/2)==l

D.(y/2)==0

13若已知a=10,则表达式!a的值是_A_

A.0

B.10

C.1

D.-10

14有如下程序B

main()

{inta=2,b=-l,c=2;

if(a)

if(0>b)

c=0;

C++;

printf("%d\nn,c);

}

该程序的输出结果是

A.0

B.1

C.2

D.3

15下面程序段的运行结果是—D—o

inta=l;b=2;c=2;

while(a<b){t=a;a=b;b=t;c";}

printf(',%d,%d,%d",a,b,c);

A)l,2,0B)2,l,0C)l,2,lD)2,l,l

16若x是int型变量,以下程序段的输出结果是D

for(x=3;xv6;x++)

printf((x%2)?(,,**%dM):("##%d\n"),x);

A)**3B)##3C)##3D)**3##4

##4**4**4##5**5

**5##5

17下面标识符中,不合法的标识符是B

A.AbB.a#bC.x_y_2D.x2

18以下选项中不合法的用户标识符是B

A_123BprintfCA#DDim

19在设计程序时,应采纳的原则之一是D

A.不限制goto语句的使用

B.减少或取消注解行

C.程序越短越好

D.程序结构应有助于读者理解

20以下正确的定义语句是—D—o

A)inta[lj[4j={1,2,3,4,5};

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

C)longb[2][3]={{l},{l,2},{l,2,3}};

D)doubley[][3]={0};

21有以下定义

chara[10],*b=a;

不能给数组a输入字符串的语句是_B—

A)gets(a)B)gets(a[0])C)gets(&a[0]);D)gets(b);

22若有说明:inta⑶[4]={0};则下面正确的叙述是______D

A)只有元素a[0][0]可得到初值0;

B)此说明语句不正确;

C)数组a中各元素都可得到初值,但其值不一定为0;

D)数组a中每个元素均可得到初值0;

23以下程序运行后的输出结果是—abcbcc_o

charch[]="abc",x⑶⑷;inti;

for(i=0;i<3;i++)strcpy(x[i],ch);

for(i=0;i<3;i++)printf("%s",x[i][i]);

24分析如下程序,此程序运行时输出结果是:15

#include<stdio.h>

voidmain()

(

inti,m=0;

ints[10]={15,2,-45,21,58,100,255,3,999,-100};

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

{

m=s[0];

if(m<s[i])m=s[i];

)

printf(n%d\nu,m);

25分析如下程序,若此程序运行时输入:10,15,9则输出结果是

15:

#include<stdio.h>

intmax(inta,intb);

voidmain()

(

intx,y,z,t,m;

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

t=max(x,y);

m=max(t,z);

printf(u%d",m);

)

intmax(inta,intb)

(

if(a>b)

return(a);

else

return(b);

)

26分析如下程序,此程序运行时输出结果是:zhang

#include<stdio.h>

typedefstruct

{inta;

floatb;

char*c;

}UN;

voidmain()

staticUNx={19,83.5,"zhang1'};

UN*px;

px=&x;

printf(H%sn,px->c);

27如果想输出字符“%”,则应该在“格式控制”字符串中用一连

续两个%表示。

L若变量已正确定义并赋值,以下符合C语言语法的表达式是B

A.a:=b+l

B.a=b=c+2

C.int18.5%3

D.a=a++7

2.下列程序的输出结果是A

main()

{doubled=3.0;intx,y;

x=1.25;y=x/5;

printf(M%d\nM,d*y);

A.0

B.0.75

C.3.0

D.1.25

3.一个C语言程序是由B

A.一个主程序和若干子程序组成

B.函数组成

C.若干过程组成

D.若干子程序组成

4.阅读下列程序,则在执行后,程序的运行结果为D

main()

{chara[30]="nicetomeetyou!1';

strcpy(a+strlen(a)/2,nyou");

printf("%s\nu,a);}

A.nicetomeetyouyou

B.niceto

C.meetyouyou

D.nicetoyou

5.设y是int型,请写出y为偶数的关系表达式可以表示为

A.(y%2)==l

B.(y%2)==0

C.(y/2)==l

D.(y/2)==0

6.下面四个选项中,均是不合法的用户标识符的选项是C

A.AP_0do

B.floatlaO_A

C.b-agotoint

D._123tempint

7.以下叙述中正确的是—A—o

A.C程序中注释部分可以出现在程序中任意合适的地方

B.花括号汽”和只能作为函数体的定界符

C.构成C程序的基本单位是函数,所有函数名都可以由用户命名

D.分号是C语句之间的分隔符,不是语句的一部分

8.设inta=5,b=6,表达式(++a==b—)?++a:--b的值是—C_

A.5

B.6

C.7

D.4

9.在下列选项中,没有构成死循环的是_D—

A.inti=100;

while(1)

{i=i+1;

if(i==100)break;

B.for(;;);

C.intk=10000;

do{

k++;

}while(k>10000);

D.ints=36;

while(s)—s;

10.设有数组定义:chararray[]="China";则数组array所占的

空间为C

A.4个字节

B.5个字节

C.6个字节

D.7个字节

11.执行下面的程序段后,变量k中的值为A

intk=3,s[2];

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

A.不定值

B.33

C.30

D.10

12.有如下程序B

main()

{inta=2,b=-l,c=2;

if(a)

if(0>b)

c=0;

C++;

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

}

该程序的输出结果是

A.0

B.1

C.2

D.3

13.下面说明不正确的是D

A.chara[10]='china";

B.chara[10],*p=a;p=,'china"

C.char*a;a="china";

D.chara[10],*p;p=a="china"

14.已知intk;floatm=-3;执行语句k=m%2;后,变量k的值是D

A.-1

B.0

C.1

D.语句有错误

15.以下不能正确进行字符串赋初值的语句为oA

A.charstr[5]=ngood!"

B.charstr[]="good!"

C.char*str=,,good!n

D.charstr[5]={'g','o','o7d'}

16.以下程序的输出结果是B

main()

{inti,k,a[10],p[3]:

K=5;

for(i=O;i<10;i++)a[i]=i;

for(i=O;i<3;i++)p[i]=a[i*(i+l)];

for(i=O;i<3;i++)k+=p[i]*2;

printf("%d\nn,k);

}

A.20

B.21

C.22

D.23

17.C语言程序由组成。C

A.子程序B.主程序和子程序

C.函数D.过程

18.以下描述中正确的是C

A.由于do-while循环中循环体语句只能是一条可执行语句,所

以循环体内不能使用复合语句

B.do-while循环由do开始,用while结束,在while(表达

式)后面不能写分号

C.在do-while循环体中,是先执行一次循环,再进行判断

D.do-while循环中,根据情况可以省略while

19.有如下程序D

main()

(

intn[5]={0,0,0};

inti,k=2;

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

n[i]=n[i]+1;

printf(H%d\nH,n[k]);

}

该程序的输出结果是_____。

A.不确定的值

B.2

C.1

D.0

20.下列关于一维数组的应用叙述正确的是B

A.数组元素可以先引用后定义

B.C语言规定只能逐个引用数组中的元素,而不能一次引用整个数

C.数组元素可以被赋值,但不可以参与组成表达式

D.如果给全部元素赋值,则在数组说明中必须给出数组元素的个数

21.分析如下程序,此程序运行时输出结果是:999

#include<stdio.h>

voidmain()

{

inti,m=O;

ints[10]={15,2,-45,21,58,100,255,3,999,-100};

m=s[O];

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

|

if(m<s[i])m=s[i];

}

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

}

22.分析如下程序,此程序运行时输出结果是:6

#include<stdio.h>

voidmain()

inti,j,n=O;

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

n++;

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

{

if(j%2)

continue;

n++;

)

)

printf(H%d',,n);

}

23.分析如下程序,若此程序运行输出结果是:35

#include<stdio.h>

voidfun(int*x)

{

printf(H%d\n",*x+10);

)

voidmain()

inta=25;

fun(&a);

)

1设inta=5,b=6,表达式(a++==5)?++a:--b的值是_C_

A.5

B.6

C.7

D.4

2有以下程序A

main()

{inti=10;

printf(u%d\nu,-i);

}

执行后输出结果是

A.9

B.10

C.11

D.8

3若有函数内部说明:inta[3][4];则数组a中各元素C

A.可在程序的运行阶段得到初值。

B.可在程序的编译阶段得到初值。

C.不能得到确定的初值

D.可在程序的编译或运行阶段得到初值0

4有如下程序A

main()

{inta=2,b=-l,c=2;

if(a){if(0>b)c=0;}

elseC++;

printf("%d\nn,c);

}

该程序的输出结果是

A.0

B.1

C.2

D.3

5设有数组定义:chararray[]="China,,;则数组array所占的空

间为C

A.4个字节

B.5个字节

C.6个字节

D.7个字节

已知intk,m=l;执行语句k=-m++;后,k的值是A

6A.-1

B.0

C.1

D.2

7设有intx=ll;则表达式(++x*l/3)的值是B

A.3

B.4

C.11

D.12

8能正确表示逻辑关系:、>9或a<1”的C语言表达式是D

A.a>=9ora<=l

B.a>=l||a<=9

C.a>=9&&a<=l

D.a>=9||a<=l

9若有以下说明和语句,则输出结果是_____oC

chars[12]=nabook!,1;

printf("%d",strlen(s));

A.12B.8C.7D.11

10以下叙述不正确的是________oD

A.分号是C语言的必要组成部分

B.C程序的注释可以写在句的后面

C.函数是C程序的基本单位

D.主函数的名字不一定用main表示

11下面程序的输出结果是_____OC

main()

{charstr[50]=nhowdoyoudo";

strcpy(str+strlen(str)/2,"esshe");

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

}

A.howdoyoudoB.esshe

C.howdoessheD.howdoshe

12下列不是C语言的分隔符的是_____oD

A.逗号B.空格

C.制表符D.双引号

13以下程序的输出结果是B

main()

{inti,k,a[10],p[3]:

K=5;

for(i=O;i<10;i++)a[i]=i;

for(i=O;i<3;i++)p[i]=a[i*(i+l)];

for(i=O;i<3;i++)k+=p[i]*2;

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

)

A.20

B.21

C.22

D.23

14以下数组定义中不正确的是D

A.inta[2][3];

B.intb[][3]={0,l,2,3};

C.intc[100][100]={0};

D.intd⑶卜{{1,2},{1,2,3},{1,2,3,4}};

15C语言中运算对象必须是整型的运算符是B

A.*

B.%=

C./

D.\

16若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)

后,x的值为C

A.4

B.16

C.32

D.52

17有以下程序B

main()

{inti=10;

printf(u%d\nu,i-);

执行后输出结果是

A.9

B.10

C.11

D.8

18若有说明:inta[10];则对a数组元素的正确引用是D

A.a[10]

B.a[3,5]

C.a(5)

D.a[10-10]

19下列关于二维数组的说明语句正确是—B—o

A.二维数组在初始化时必须给出全部的值

B.如果对二维数组的全部元素赋初值,则第一维的长度可以省略

C.二维数组不可以分行进行赋值

D.二维数组在引用时可以省略行下标或列下标

20以下程序输出的结果是_A。

main()

{floata=5,b=4,d;

d=(a>b);

printf(u%d\nH,d);

A.1

B.0

C.1.0

D.4

1.所有C函数的结构都包括的三部分是C

A.语句、花括号和函数体

B.函数名、语句和函数体

C.函数名、形式参数和函数体

D.形式参数、语句和函数体

2.在C语言中,函数的数据类型是指(AA)。

A.函数返回值的数据类型B.函数形参的数据类型

C.调用该函数时的实参的数据类型D.任意指定的数据类型

3.C语言规定:简单变量作为实参时,它和对应形参之间的数据传

递方式是(BB)。

A.地址传递B.单向值传递

C.山实参传给形参,再由形参传回给实参D.山用户指定的传递方

4.下面不属于C语言的数据类型是Co

A)整型B)实型C)逻辑型D)双精度实型

5.下列选项中,合法的字符常量是(CC)

A、'\184'B、'ab'C、'\x37'D、“ab”

6.若变量已正确说明为int类型,要给a、b、c输入数据,以下正确

的输入语句是D

A)read(a,b,c);B)scanf(a%d%d%d”,a,b,c);

C)scanf(u%d%d%f”,&a,&b,&c);D)scanf(%d%d%d",&

a,&b,&c);

7.有以下程序段A

intm=O,n=O;charc='a';

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

printf(n%d,%c,%d\nn,m,c,n);

若从键盘上输入:10A10”回车,则输出结果是:

A)10,A,10B)10,a,10C)10,a,0D)10,A,0

8.若从终端输入以下数据,要给变量c赋以283.19,则正确的输入

语句是C

A)scanf(M%fw,c);B)scanf(w%8.2fM,&c);

C)scanf("%6.2f",&c);D)scanf("%6.20f”,&c);

9.若执行以下程序时从键盘上输入9,则输出结果是(B)

A)11B)10C)9D)8

#include"stdio.h'

voidmain()

intn;

scanf("%d",&n);

if(n++<10)printf(M%d\nn,n);

elseprintf("%d\nn,n—);

1。.有以下程序D

#include"stdio.h'

voidmain()

inti=l,j=2,k=3;

if(i++==l&&(++j==3||k++==3))

printf(u%d%d%d\nu,i,j,k);

)

程序运行后的输出结果是()

A)123B)234

C)223D)233

11.若要求在if后一对圆括号中表示a不等于。的关系,则能正确表

示这一关系的表达式为D

A)a<>0B)!aC)a=0D)a!=0

12.下列程序的输出结果是CC

main()

{doubled=3.2;intx,y;

x=1.2;y=(x-3.8)/5.0;

printf(M%d\nM,d*y);

A.3

B.3.2

C.0

D.3.07

13.若变量已正确定义并赋值,以下符合C语言语法的表达式是BB

A.a:=b+l

B.a=b=c+2

C.int18.5%3

D.a=a++7

14.下列选项中不是结构化程序基本结构的是B

A.顺序结构

B.跳转分支结构

C.选择结构

D.循环结构

15.以下程序段的输出结果是___A

inti,j,m=0;

for(i=1;i<=5;i+=4)

for(j=3;jv=19;j+=4)m++;

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

A)10B)15C)20D)25

16.下列程序段执行后s的值为A_o

inti=l,s=0;

while(i++)

if(!(i%3))

break;

else

s+=i;

A)2B)3C)6D)以上均不是

17.下列是用户自定义标识符的是AA

A._wl

B.3_xy

C.int

D.LINE-3

19.下列可用于C语言用户标识符的一组是BB

A.void,do,WORD

B.a_bl23,_123,Car

C.For,-abc,if

D.2a,DO,while

20.以下程序的输出结果是B

#include<stdio.h>

voidmain()

{inti,k,a[10],p[3]:

K=5;

for(i=O;i<10;i++)a[i]=i;

for(i=O;i<3;i++)p[i]=a[i*(i+l)];

for(i=O;i<3;i++)k+=p[i]*2;

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

}

A.20

B.21

C.22

D.23

21.以下程序的输出结果是B

#include<stdio.h>

voidmain()

{inti,k,a[10],p[3]:

K=5;

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

for(i=0;i<3;i++)p[i]=a[i*(i+l)];

for(i=0;i<3;i++)k+=p[i]*2;

printf("%d\nM,k);

}

A.20

B.21

C.22

D.23

22.请读程序片段(字符串内没有空格):C

printf(u%d\nu,strlen(''ATS\nO12\l\\,'));

A.11

B.10

C.9

D.8

23.构成数组各个元素具有相同的数据类型___________。

27.设i为int型变量且初值为1,则表达式i=2,i++,i+5,i||i-9的值

为1。

1以下叙述中正确的是B

A)调用printf函数时,必须要有输出项

B)使用putchar函数时,必须在之前包含头文件stdio.h

C)在C语言中,整数可以以十二进制、八进制或十六进制的

形式输出

D)调用getchar函数读入字符时,可以从键盘上输入字符所

对应的ASCII码

2若有以下程序C

#include<stdio.h>

voidf(intn);

voidmain()

{voidf(intn);

f(5);

}

voidf(intn)

{printf("%d\n”,n);}

则以下叙述中不正确的是

A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用

函数f

B)若在主函数前对函数f进行说明,则在主函数和其后的其它函数

中都可以正确调用函数f

C)对于以上程序,编译时系统会提示出错信息:提示对对f函数重

复说明

D)函数f无返回值,所以可用void将其类型定义为无值型

3以下程序的输出结果是C

A)699B)669C)61515D)6615

#include<stdio.h>

intd=l;

fun(intp)

{staticintd=5;

d+=p;

printf(u%d",d);

return(d);

)

voidmain()

{inta=3;printf(H%d\n",fun(a+fun(d)));}

4有以下程序B

main()

{charal='M',a2='m";

printf("%c\n”,(al,a2));}

以下叙述中正确的是

A)程序输出大写字母MB)程序输出小写字母m

C)格式说明符不足,编译出错D)程序运行时产生出错信息

5以下不正确的字符串常量是C

(A)“x”(B)“ABC”(C)'ABC,(D)“1”

6若变量已正确说明为int类型,要给a、b、c输入数据,以下正确

的输入语句是D

A)read(a,b,c);B)scanf(u%d%d%d”,a,b,c);

C)scanf(u%d%d%f”c);D)scanf(u%d%d%d",&

a,&b,&c);

7若有以下程序段C

#include"stdio.h)

voidmain()

{intm=Oxabc,n=Oxabc;

m-=n;

printf(u%X\n",m);

}

执行后输出结果是______

A)0X0B)0x0C)0D)OXABC

8下面程序的输出结果是Co

main()

{floatx=123.456;

printf(a%.2f9,x);

)

A)123.456B)123.45C)123.46D)123.5

9若执行以下程序时从键盘上输入9,则输出结果是(B)

A)11B)10C)9D)8

#include"stdio.h'

voidmain()

{

intn;

scanf("%d",&n);

if(n++<10)printf(M%d\n',,n);

elseprintf(u%d\n",n-);

1。下列条件语句中,功能与其他语句不同的是(D)

A)if(a)printf(H%d\n",x);elseprintf("%d\nn,y);

B)if(a==O)printf("%d\nu,y);elseprintf("%d\nM,x);

C)if(a!=0)printf("%d\nM,x);elseprintf("%d\n",y);

D)if(a==O)printf("%d\n",x);elseprintf(*'%d\nn,y);

11对于条件表达式(k)?(i++):(i--)来说,其中的表达式k等价于Co

A)k==0B)k==lC)k!=0D)k!=l

12若已定义x和y为double类型,则表达式x=l,y=x+3/2的值

是C

A.1

B.2

C.2.0

D2.5

13设intx=l,y=l;表达式(!x||y--)的值是B

A.0B.lC.2D.-1

14执行语句for(i=l;4>i++;);后变量i的值是C

A.3

B.4

C.5

D.不定

15若x是int型变量,以下程序段的输出结果是D

for(x=3;xv6;x++)

printf((x%2)?("**%dn):C'##%d\n"),x);

A)**3B)##3C)##3D)**3##4

##4**4**4##5**5

**5##5

16下面程序的输出结果是—A—o

#include<stdio.h>

voidmain()

{intn=9;

while(n>6)

printf(u%d",n-);

)

A)987B)876C)8765D)9876

17以下述叙不正确的是D

A.一个C源程序可以由一个或多个函数组成

B.一个C源程序必须包含一个main函数

C.C程序的基本组成单位是函数

D.在C程序中注释说明只能位于一条语句的后面

18指出下面哪些是合法的用户定义的标识符?D

A.P-SB.putsC.doubleD._908

19c语言中,函数的开始和结束的标记是____A

A.一对大括号B.一对圆括号

C.一对方括号D.一对双引号

20以下对二维数组a的正确说明是___Co

A)inta[3][];B)floata(3,4);

C)doublea[l][4];D)floata(3)(4);

21给出以下定义:C

charx[]="abcdefg,';

chary[]={'aTb7c',d,'e',f,g};

则正确的叙述为

A.数组X和数组Y等价

B,数组x和数组Y的长度相同

C.数组X的长度大于数组Y的长度

D.数组X的长度小于数组Y的长度

22若有以下语句,则正确的描述是C

chara[]="toyou";

charb[]={'t'。','v':u'};

A.a数组和b数组的长度相同

B.a数组长度小于b数组长度

C.a数组长度大于b数组长度

D.a数组等价于b数组

27设i为int型变量且初值为1,则表达式i=2,i++,i+5,i||i-9的值

为1。

L有以下程序A

#include<stdio.h>

voidsum(inta[])

{a[0]=a[-l]+a[l];}

voidmain()

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

sum(&a[2]);

printf("%d\n",a[2]);

}

程序运行后的输出结果是

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

2.以下程序的输出结果是A

#include<stdio.h>

f(intb[],intm,intn)

{inti,s=O;

for(i=m;i<n;i=i+2)s=s+b[i];

returns;

)

voidmain()

{intx,a[]={l,2,3,4,5,6,7,8,9);

x=f(a,3,7);

printf(u%d\nu,x);

A)10B)18C)8D)15

3.以下正确的说法是(C)o

A.定义函数时,形参的类型说明可以放在函数体内。

B.return后边的值不能为表达式。

C.如果函数值的类型与返回值类型不一致,以函数值类型为准c

D.如果形参与实参类型不一致,以实参类型为准。

4.设a和b均为double型常量,且a=5.5>b=2.5,则表达式

(int)a+b/b的值是__D。

A)6.500000B)6C)5.500000D)6.000000

5.若有定义:inta=8,b=5,C;,执行语句C=a/b+0.4;后,c的值

为B

A)1.4B)1C)2.0D)2

6.当运行以下程序时,在键盘上从第一列开始输入

9876543210”CR”(此处“CR”代表Enter),则程序的输出结果是C

A)a=98,b=765,c=4321B)a=10,b=432,c=8765

C)a=98,b=765.000000,c=4321.000000

D)a=98,b=765.0,c=4321.0

main()

{inta;floatb,c;

scanf(a%2d%3f%4f,,&a,&b,&c);

printf("\na=%d,b=%f,c=%f\n”,a,b,c);

7.若有以下定义:B

#include"stdio.h'

voidmain()

{charcl='b',c2='e,;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论