C复习题.docx

上传人:b****8 文档编号:28276841 上传时间:2023-07-10 格式:DOCX 页数:80 大小:36.07KB
下载 相关 举报
C复习题.docx_第1页
第1页 / 共80页
C复习题.docx_第2页
第2页 / 共80页
C复习题.docx_第3页
第3页 / 共80页
C复习题.docx_第4页
第4页 / 共80页
C复习题.docx_第5页
第5页 / 共80页
点击查看更多>>
下载资源
资源描述

C复习题.docx

《C复习题.docx》由会员分享,可在线阅读,更多相关《C复习题.docx(80页珍藏版)》请在冰豆网上搜索。

C复习题.docx

C复习题

###

~~~1

该变量已正确定义为整型,则表达式n=i=2,++i,i++[<3>]。

~~~1

已知字母A的ASCII值为65,下列程序运行后的输出结果是[<67G>]

main()

{chara,b;

a='A'+'5'-'3';b=a+'6'-'2';

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

}

~~~1

下列isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。

请填空。

intisprime(inta)

{inti;

for(i=2;i<=a/2;i++)

if(a%i==0)[];

[

(1)>];

}

~~~1

设有定义:

floatx=123.4567;,则执行下列语句后的输出结果是[<123.460000>]

printf("%f\n",(int)(x*100+0.5)/100.0);

~~~1

若有定义:

inta=4,b=5,c=6;接着顺序执行下列语句后,变量b中的值是[<1>]。

c=(a-=(b-5));

c=(a%3)+(b=1);

~~~1

若a的值为1,则表达式!

a||++a的值是[<1>]。

~~~7

下列程序的功能是:

求出数组x中各相临两个元素的和依次存放到数组a中,然后输出。

请填空。

main()

{intx[10],a[9],i;

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

scanf("%d",&x[i]);

for([];i<10;i++)

a[i-1]=x[i]+[];

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

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

printf("\n");

}

~~~7

设有定义语句:

inta[][3]={{0},{1},{3}},则数组元素a[1][2]是[<0>]

~~~7

下列程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行4个输出,请填空。

main()

{inta[10],b[10],i;

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

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

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

[];

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

{printf("%d",b[i-1]);

if(i%4==0)printf("\n");

}

}

~~~7

下面程序将二维数组a的行和列互换后存放到一个二维数组b中,请填空。

main()

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

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

{

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

[]

}

}

}

###

~~~1

下列叙述中错误的是()。

算法正确的程序最终一定会结束。

算法正确的程序可以有零个输出。

算法正确的程序可以有零个输入。

算法正确的程序对于相同的输入一定有相同的结果。

~B

~~~1

下列叙述中错误的是()。

C程序必须由一个或一个以上的函数组成。

函数调用可以作为一个独立的语句存在。

若函数有返回值,必须通过return语句返回。

函数形参的值也可以传回给对应的实参。

~D

~~~1

C语言源程序名的后缀是()。

.exe

.c

.obj

.cp

~B

~~~1

下列叙述中错误的是()。

用户定义的标示符允许使用关键字。

用户定义的标示符应做到“见名知意”。

用户定义的标示符必须以字母或下划线开头。

用户定义的标示符中大、小写字母代表不同标示。

~A

~~~1

下列关于函数的叙述正确的是()。

每个函数都可以被其他的函数调用(包含main函数)。

每个函数都可以被单独编译。

每个函数都可以单独运行。

在一个函数内部可以定义另一个函数。

~B

~~~1

下列不合法的用户标示符是()。

j2_key

_int

4d

_8_

~C

下列定义变量的语句中错误的是()。

int_int;

doubleint_;

charfor;

floatus$;

~D

按照C语言规定的用户标示符命名规则,不能出现在标示符中的是()。

大写字母

连字符

数字字符

下划线

~B

~~~1

对于一个正常运行的C程序,下列叙述正确的是()。

程序的执行总是起止于main函数。

程序的执行总是从第一个函数开始,结束于main函数

程序的执行总是从main函数开始,在最后一个函数结束

程序的执行总是从第一个函数开始,在最后一个函数结束

~A

~~~1

下列叙述正确的是()。

C语言程序从源程序中第一个函数开始执行

可以在程序中由用户指定一个函数作为主函数,程序将从此开始执行

C语言规定必须用main作为主函数名,程序从此开始执行,在次结束

main可作为用户标示符,可以命名任意一个函数作为主函数

~C

~~~1

下列叙述正确的是()。

C程序中的注释只能出现在程序的开始位置

C程序书写格式严格,要求一行只能写一个语句

C程序书写格式自由,一行可以写多条语句

用C语言编写的程序只能放在一个程序文件中

~C

~~~1

下列不合法的数值常量是()。

011

1e1

8.0e0.5

0xabc

~C

~~~1

可在C程序中用作用户标识符的一组是()。

and_2007

datey-m-d

hidr.tom

casebig1

~A

~~~1

下列关于long、int和short类型数据占用内存大小的叙述正确的是()。

均占4个字节

根据数据的大小来决定所占内存的字节数

由用户自己定义

由C语言编译系统决定

~D

~~~1

设变量已正确定义并赋值,以下正确的表达式是()。

x=y*5=x+z

int(15.8%3)

x=y+z+3,++y

x=25%5.0

~C

~~~1

设有定义:

intk=1;floatf=7;则下列选项中错误的表达式是()。

k=k>=k

-k++

k%int(f)

k>=f>=m

~C

~~~1

表达式3.6-5/2+1.2+5%2的值是()。

4.3

4.8

3.3

3.8

~D

~~~1

下列叙述中错误的是()。

C程序中的#include和#define行均不是C语句

除逗号运算符外,赋值运算符的优先级最低

C程序中,j++;是赋值语句

C程序中,+、-、*、%是算术运算符,可用于整型数和实型数的运算

~D

~~~1

下列选项中,当x为大于1的奇数时,值为0的表达式是()。

x%2==1

x/2

x%2!

=0

x%2==0

~D

~~~1

下列叙述中错误的是()。

C语句必须以分号结束

复合语句在语法上被看作一条语句

空语句出现在任何位置都不会影响程序运行

赋值表达式加上分号就构成赋值语句

~C

~~~1

下列正确定义且赋初值的语句是()。

intn1=n2=10;

charc=32;

floatf=f+1.1;

doublex=12.3E2.5

~B

~~~1

若变量已正确定义并赋值,下列合法的语句是()。

x=y==5

x=n%2.5

x+n=i

x=5=1+4

~A

~~~1

以下定义正确的是()。

inta=b=0;

charA=65+1,b='b';

floata=1,"b=&a,"c=&b;

doublea=0.0;b=1.1;

~B

~~~1

有下列程序:

*main()

*{chara1='M',a2='m';

*printf("%c\n",(a1,a2));

*}

下列叙述正确的是()。

程序输出M

程序输出m

格式说明符不足,编译出错

程序运行时产生出错信息

~B

~~~1

有下列程序:

*main()

*{intx,y,z;

*x=y=1;

*z=x++,y++,++y;

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

*}

*程序运行的结果是()。

2,3,3

2,3,2

2,3,1

2,2,1

~C

~~~1

设有定义:

intk=0;下列选项的4个表达式中与其他3个表达式的值不同的是()。

k++

k=k+1

++k

k+1

~A

~~~1

在C语言中,以下说法不正确的是()。

在C程序中,整数和实数都能被准确无误的表示出来

在C程序中,任何一个变量名都代表存储器的一个位置

静态变量的生存周期与整个程序的运行期相同

C语言中,任何变量都必须先声明才能进行引用

~A

~~~1

若有以下定义和语句:

*inta=010,b=0x10,c=10;

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

*则输出结果是()。

8,10,10

10,10,10

8,8,10

8,16,10

~D

~~~1

设C语言中,float类型数据占4个字节,则double类型数据占()个字节。

1

2

8

4

~C

~~~1

以下正确的实型常量()。

E3.4

-12345

2.2e0.8

4

~B

~~~1

设int类型的数据长度为2个字节,则unsignedint类型数据的取值范围是()。

0~255

0~65535

-32768~32767

-256~255

~B

~~~1

设a和b均为int型变量,且a=6,b=11,则能使值为3的表达式是()。

b%(a%4)

b%(a-a%5)

b%a-a%5

(b%a)-(a%4)

~D

~~~1

已定义变量a为整型,则不能正确表示9

!

(9

a==10||a==11||a==12||a==13

a>9&&a<14

!

(a<=9)&&!

(a>=14)

~A

~~~1

以下程序运行的结果是()。

*#include

*main()

*{inta=3,b=4,c=8,d=4,m=1,n=3;

*printf("%d\n",(m=a>b)&&(n=c>d))

*}

0

1

2

3

~A

~~~1

能正确表示“当x的取值范围在[1,10]和[100,110]范围内为真,否则为假”的表达式是()。

(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)

(x>=1)||(x<=10)||(x>=100)||(x<=110)

(x>=1)&&(x<=10)||(x>=100)&&(x<=110)

(x>=1)||(x<=10)&&(x>=100)||(x<=110)

~C

~~~1

若有定义:

inta=4,b=5;floatx=3.4,y=2.1;则下面表达式的值为()。

*(float)(a+b)/2+(int)x%(int)y

5.5

55

5.500000

55.00000

~C

~~~1

若a为int型变量,则执行以下语句后,a的值为()。

*a=5;a+=a-=a*a;

25

-40

40

-14

~B

~~~1

若已定义x和y为整型变量,且x=7,则表达式y=2.3+x/2的值是()。

6

5

5.0

6.0

~B

~~~1

有以下程序:

*main()

*{inty=1,x=2,z=3;

*printf("%d,%d\n",(++x,y++),z+2);

*}

*执行后的输出结果是()。

3,5

2,5

3,3

1,5

~D

~~~1

以下程序的输出结果是()。

*main()

*{inta=1,b=2;

*printf("%d,%d\n",--a,++b);

*}

1,2

1,3

0,2

0,3

~D

~~~1

C语言程序的执行是()。

从程序的主函数开始,到程序的主函数结束

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

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

从程序的第一个函数开始,到程序的主函数结束

~A

~~~1

下面说法正确的是()。

一个C程序可以有多个函数

一个C语言的函数中只允许有一对花括号

C语言一个语句可以写在一行内,也可以写在多行内

在对C程序进行编译时,可以发现注释行中的拼写错误

~C

~~~1

以下说法不正确的是()。

C程序是以函数为基本单位的,整个程序由函数组成

C语言程序的一条语句可以写在不同的行上

C程序的注释行对程序运行不起作用,所以注释应该尽可能少写

C程序的每个语句都以分号结束

~C

~~~1

以下标示符不是关键字的是()。

break

char

Switch

return

~C

~~~7

若要求定义具有10个int型元素的一维数组a,则下列定义语句中错误的是()。

#defineN10

*inta[N]

#definen5

*inta[2*n]

inta[5+5]

intn=10,a[n]

~D

~~~7

下设有如下程序段

*chars[20]="Beijing",*p;

*p=s;

*则执行p=s;语句后,以下叙述正确的是()。

可以用*p表示s[0]

s数组中元素的个数和p所指字符串长度相等

s和p都是指针变量

数组s中的内容和指针变量p中的内容相同

~A

~~~7

下列数组定义中错误的是()。

intx[][3]={0};

intx[2][3]={{1,2},{3,4},{5,6}};

intx[][3]={{1,2,3},{4,5,6}};

intx[2][3]={1,2,3,4,5,6};

~B

~~~7

有以下程序:

*main()

*{inti,t[][3]={9,8,7,6,5,4,3,2,1};

*for(i=0;i<3;i++)printf("%d",t[2-i][i]);

*}

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

753

357

369

751

~B

~~~7

若有定义语句:

inta[3][6];,按内存中的存放顺序,a数组的第10元素是()。

a[0][4]

a[1][3]

a[0][3]

a[1][4]

~B

~~~7

以下错误的定义语句是()。

intx[][3]={{0},{1},{1,2,3}};

intx[4][3]={{1,2,3},{1,2,3},{1,2,3}};

intx[4][]={{1,2,3},{1,2,3},{1,2,3}};

intx[][3]={1,2,3,4};

~C

~~~7

以下不正确的定义语句是()。

doublex[5]={1.0,2.0,3.0,4.0,5.0};

inty[5]={0,1,2,3,4,5}};

charc[]={'1','2','3','4','5'};

charc2[]={'a','b','c'};

~B

~~~7

若有以下定义,则正确引用数组元素的是()。

*inta[5],*p=a;

*&a[5]

*a+2

*(p+5)

*(a+2)

~D

~~~7

若有说明:

inta[][3]={0,0};则不正确的叙述是()。

数组a的每个元素的初值都是0

数组a的第一维大小为1

数组a的行数为1

只有元素a[0][0]和a[0][1]初值为0,其余元素得不到初值0

~D

~~~7

下列二维数组初始化语句中,不正确的是()。

intb[][2]={1,2,3,4,5,6,7};

intb[3][5]={0,0,0};

intb[][4]={{1,2},{3,4,5},{6}};

intb[3][2]={(1,2),(3,4),(5,6)};

~D

~~~7

有以下程序:

*main()

*{intaa[5][5]={{1,2,3,4},{5,6,1,8},{5,9,10,2},{1,2,5,6}};

*ints=0,i;

*for(i=0;i<4;i++)

*s+=aa[i][2];

printf("%d",s);

*}

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

26

19

10

20

~B

~~~7

###

~~~1

若已知:

a=1,b=2,则表达式:

!

(a]。

~~~1

若s是int型变量,且s=8,则s%3+(s+1)%3表达式的值为[<2>]。

~~~1

若x和n均是int型变量,且x=12,n=5,则执行y=x%=(n%=2)表达式后y的值为[<0>]。

###

~~~1

以下说法中正确的是()。

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

在C语言程序中,要调用的函数必须在main()函数中声明

任何C语言程序的执行都是从main()函数开始

C语言程序中的main()函数必须放在程序的最前面

~C

~~~1

以下合法的标识符是()。

123

#256

a.55

abhj1_2_3

~D

~~~1

以下程序的运行结果是()。

#include

*main()

*{inta=3,b=4,c=8,d=4,m=1,n=3;

*printf("%d\n",(m=a>b)&&(n=c>d));

*}

0

1

2

3

~A

~~~1

有定义语句:

intb;charc[10];,则正确的输入语句是()。

scanf("%d%s",&b,&c);

scanf("%d%s",&b,c);

scanf("%d%s",b,c);

scanf("%d%s",b,&c);

~B

有下列程序:

*main()

*{intm,n,p;

*scanf("m=%dn=%dp=%d",&m,&n,&p);

*printf("%d%d%d",m,n,p);

*}

*若想从键盘上输入数据,使变量m的值为123,n的值为456,p的值为789,则正确的输入是()。

m=123n=456p=789

m=123n=456p=789

m=123,n=456,p=789

123456789

~A

~~~1

要求当A的值为奇数时,表达式的值为“假”,A的值为偶数时,表达式的值为“真”。

则以下能满足要求的是()。

A%2==1

!

(A%2==0)

!

(A%2)

A%2

~C

~~~1

当把四个表达式用作if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是()。

k%2

k%2==1

(k%2)!

=0

!

k%2==1

~D

~~~1

下列不能正确计算代数式(1/3)sin2(1/2)值的C语言表达式是()。

1/3*sin(1/2)*sin(1/2)

sin(0.5)*sin(0.5)/3

pow(sin(0.5),2)/3

1/3.0*pow(sin(1.0/2),2)

~A

~~~1

在printf的格式字符中,e格式字符的作用是()。

以十六进制无符号形式输出整数

以带符号的十进制形式输出整数

以指数形式输出实数

以字符形式输出,且只输出一个字符

~C

~~~1

若要从键盘读入含有空格字符的字符串,应使用函数()。

getc()

gets()

getchar()

scanf()

~B

当a=4,b=5,c=7,d=6时,执行下面一段程序:

*if(a

*if(c

*else

*if(a

*if(b

*elsex=3;

*elsex=4;

*elsex=5;

*执行后,x的值为()。

1

2

3

4

~B

~~~1

下面4个关于C语言的结论中错误的是()。

可以用do...while语句实现的循环一定可以用while语句实现

可以用for语句实现的循环一定可以用while语句实现

可以用while语句实现的循环一定可以用for语句实现

do...while语句与while语句的区别是关键字“while”出现的位置不同

~D

~~~1

关于字符常量,以下叙述正确的是()。

空格不是一个字符常量

字符常量能包含大于一个的字符

单引号中的大写字母和小写字母代表的是相同的字符常量

所有的字符常量都可以作为整型量来处理

~D

~~~1

有以下函数定义:

*intfun(doublea,doubleb)

*{returna*b;}

*若以下选项中所有变量都已经定义并赋值,错误的函数调用是()。

if(fun(x,y)){......}

z=fun(fun(x,y),fun(x,y));

z=fun(fun(x,y)x,y);

fun(x,y);

~C

~~~1

执行以下语句段后,xy的值是()。

*int*pt,xy;

*xy=200;

*pt=&xy;

*xy=*pt+30;

200

170

260

230

~D

~~~1

下面各语句行中,能正确进行赋值字符串操作的是()。

chars[5]={'a','b','c','d','e'};

char*s;gets(s);

char*s;s="ABCDEF";

chars[5];scanf("%s",&s);

~B,C

~~~1

以下有关宏的不正确的是()。

宏名无类型

宏定义不做语法检查

宏名必须用大写字母表示

双引号中出现的宏名不进行替换

~C

~~~1

下面说法正确的是()。

一个C程序可以有多个主函数

一个C语言的函数中只允许有一对花括号

C程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内

在对C程序进行编译时,可以发现注释行中的拼写错误

~C

若a为int型变量,则执行以下语句后,a的值为()。

*a=5;

*a+=a-=a*a;

25

-40

40

-14

~B

能正确表示逻辑关系“a>=5或a<=0”的C语言表达式是()。

a>=5ora<=0

a>=0||a<=5

a>=5&&a<=0

a>=5||a<=0

~D

以下能正确表示x在-5到5(含-5和5)内,值为“真”的表达式是()。

(x>=-5)&&(x<=5)

!

(x>=-5||x<=5)

x<5&&x>-5

(x<-5)||(x<5)

~A

以下关于运算符优先顺序描述中正确的是()。

算术运算符<关系运算符<赋值运算符<逻辑运算符

赋值运算符<逻辑运算符<关系运算符<算术运算符

逻辑运算符<关系运算符<算术运算符<赋值运算符

关系运算符<算术运算符<赋值运算符<逻辑运算符

~B

~~~1

以下合法的C语言赋值语句是()。

a=b=1

a=inta+b

a=2,b=3

i++;

~D

~~~1

若i、j已定义成int型,则以下程序段中内循环体的总执行次数是()。

*for(i=6;i>0;i--)

*for(j=0;j<4;j++){...}

2

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

当前位置:首页 > 总结汇报 > 其它

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

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