当前位置:文档之家› c语言选择试题

c语言选择试题

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

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

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

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

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

~B

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

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

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

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

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

~D

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

.exe

.c

.obj

.cp

~B

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

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

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

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

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

~A

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

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

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

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

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

~B

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

j2_key

_int

4d

_8_

~C

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

int _int;

double int_;

char for;

float us$;

~D

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

数字字符

下划线

~B

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

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

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

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

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

~A

下列叙述正确的是()。

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

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

C语言规定必须用main作为主函数名,程序从此开始执行,在次结束main可作为用户标示符,可以命名任意一个函数作为主函数

~C

下列叙述正确的是()。

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

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

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

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

~C

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

011

1e1

8.0e0.5

0xabc

~C

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

and _2007

date y-m-d

hi dr.tom

case big1

~A

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

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

由用户自己定义

由C语言编译系统决定

~D

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

x=y*5=x+z

int(15.8%3)

x=y+z+3,++y

~C

设有定义:int k=1;float f=7;则下列选项中错误的表达式是()。

k=k>=k

-k++

k%int(f)

k>=f>=m

~C

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

4.3

4.8

3.3

3.8

~D

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

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

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

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

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

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

x%2==1

x/2

x%2!=0

x%2==0

~D

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

C语句必须以分号结束

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

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

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

~C

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

int n1=n2=10;

char c=32;

float f=f+1.1;

double x=12.3E2.5

~B

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

x=y==5

x=n%2.5

x+n=i

x=5=1+4

~A

以下定义正确的是()。

int a=b=0;

char A=65+1,b='b';

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

double a=0.0;b=1.1;

~B

有下列程序:

*main()

*{char a1='M',a2='m';

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

*}

下列叙述正确的是()。

程序输出M

程序输出m

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

程序运行时产生出错信息

~B

有下列程序:

*main()

*{int x,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

设有定义:int k=0;下列选项的4个表达式中与其他3个表达式的值不同的是()。k++

k=k+1

++k

k+1

~A

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

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

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

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

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

~A

若有以下定义和语句:

*int a=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

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

2

8

4

~C

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

E3.4

-12345

2.2e0.8

4

~B

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

0~65535

-32768~32767

-256~255

~B

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

b%(a%4)

b%(a-a%5)

b%a-a%5

(b%a)-(a%4)

~D

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

!(9

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

a>9&&a<14

!(a<=9)&&!(a>=14)

~A

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

*#include

*main()

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

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

*}

1

2

3

~A

能正确表示“当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

若有定义:int a=4,b=5;float x=3.4,y=2.1;则下面表达式的值为()。

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

5.5

55

5.500000

55.00000

~C

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

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

25

-40

40

-14

~B

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

6

5

5.0

6.0

~B

有以下程序:

*main()

*{int y=1,x=2,z=3;

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

*}

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

3,5

2,5

3,3

1,5

~D

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

*main()

*{int a=1,b=2;

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

*}

1,2

1,3

0,2

0,3

~D

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

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

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

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

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

~A

下面说法正确的是()。

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

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

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

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

~C

以下说法正确的是()。

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

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

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

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

~C

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

break

char

Switch

return

~C

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

*int a[N]

#define n 5

*int a[2*n]

int a[5+5]

int n=10,a[n]

~D

下设有如下程序段

*char s[20]="Beijing",*p;

*p=s;

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

可以用*p表示s[0]

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

s和p都是指针变量

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

~A

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

int x[][3]={0};

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

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

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

~B

有以下程序:

*main()

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

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

*}

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

7 5 3

3 5 7

3 6 9

7 5 1

~B

若有定义语句:int a[3][6];,按内存中的存放顺序,a数组的第10元素是()。a[0][4]

a[1][3]

a[0][3]

a[1][4]

~B

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

int x[][3]={{0},{1},{1,2,3}};

int x[4][3]={{1,2,3},{1,2,3},{1,2,3}};

int x[4][]={{1,2,3},{1,2,3},{1,2,3}};

int x[][3]={1,2,3,4};

~C

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

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

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

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

char c2[]={'a','b','c'};

~B

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

*int a[5],*p=a;

*&a[5]

*a+2

*(p+5)

~D

若有说明:int a[][3]={0,0};则不正确的叙述是()。

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

数组a的第一维大小为1

数组a的行数为1

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

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

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

int b[3][5]={0,0,0};

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

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

~D

有以下程序:

*main()

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

*int s=0,i;

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

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

printf("%d",s);

*}

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

26

19

10

20

~B

*以下程序的输出结果是[<4>]。

*#include

*main()

*{

* int a[5]={2,4,6,8,10},*p;

* p=a;p++;

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

*}

*以下程序的输出结果是[<3 5>]。

*#include

*void swap(int *a,int *b)

*{

* int *t ;

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

*}

*{

* int i=3,j=5,*p=&i,*q=&j;

* swap(p,q);printf("%d %d",*p,*q);

*}

*下面程序段的运行结果是[<68>]。

*char str[]="ABCD",*p=str;

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

设已有定义:float x;,则下列对指针变量p进行定义且赋初值的语句中正确的是( )。float *p=1024;

int *p=(float)x;

float p=&x;

float *p=&x;

~D

设有定义语句int (*f)(int);,则以下叙述正确的是( )。

f是基类型为int的指针变量

f是指向函数的指针变量,该函数具有一个int类型的形参

f是指向int类型一维数组的指针变量

f是函数名,该函数的返回值是其类型为int类型的地址

~B

设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是( )。*p=*q

p=q

*p=&n1;

p=*q

~A

在16位编译系统上,若有定义int a[]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是( )。

p向高地址移了一个字节

p向高地址移了一个存储单元

p向高地址移了两个字节

p与n+1等价

~A

若有定义语句:int k[2][3],*pk[3];,则下列语句中正确的是( )。

pk=k;

pk[0]=&k[1][2];

pk=k[0];

pk[1]=k;

~B

若有定义:char(*p)[6];则标识符p( )。

是一个指向字符型变量的指针

是一个指针数组名

是一个指针变量,它指向一个含有6个字符型元素的一维数组

定义不合法

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

#include

void main()

{ char str[]="abc",*p=str;

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

}

67

字符'C'的地址

字符'C'

~B

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

int a[5],*p=a;

*&a[5]

*a+1

*(p+5)

*(a+2)

~D

若变量a和b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的输出语句[]。

~~~2

*执行下列程序时,输入1234567,则输出结果是[<12 34>]。

*#include

*main()

*{ int a=1,b;

* scanf("%2d%2d",&a,&b);printf("%d%d\n",a,b);

*}

数字字符0的ASC||值为48,运行下列程序的输出结果是( )。

main()

{ char a='1',b='2';

printf("%c,",b++);

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

}

3,2

50,2

2,2

2,50

~C

下列不合法的字符常量是( )。

'\018'

'\"'

'\\'

~A

下列能正确定义字符串的语句是( )。

char str[]={'\064'};

char str="kx43";

char str='';

char str[]="\0";

~D

下列合法的字符型常量是( )。

'\x13'

'\081'

'65'

"\n"

~A

已知大写字母A的ASC||码是65,小写字母a的ASC||码是97。下列不能将变量c中的大字字母转换为对应小写字母的语句是( )。

c=(c-'A')%26+'a'

c=c+32

c=c-'A'+'a'

c=('A'+C)%26-'a'

~D

已知字符'A'的ASC||码值是65,字符变量c1的值是'A',c2的值是'D'。执行语句printf("%d,%d",c1,c2-2);后,输出结果是( )。

A,B

A,68

65,66

65,68

~C

下列正确的字符串常量是( )。

"\\\"

'abc'

Olympic Games

""

~D

要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,下列正确的程序段是( )。

while((ch=getchar())!='N') printf("%c",ch);

while(ch=getchar()!='N') printf("%c",ch);

while(ch=getchar()=='N') printf("%c",ch);

while((ch=getchar())=='N') printf("%c",ch);

~A

有以下程序段( )。

char ch;int k;

ch='a';k=12;

printf("%c,%d,",ch,ch,k);

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

已知字符a的ASC||十进制代码为97,则执行上述程序段后输出结果是

因变量类型与格式描述符的类型不匹配输出无定值

输出项与格式描述符个数不符,输出为零值或不定值

a,97,12k=12

a,97,k=12

~D

有定义语句:int b;char c[10];,则正确的输入语句是( )。

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

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

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

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

~B

设有定义:int a; float b;,执行scanf("%2d%f",&a,&b);语句时,若从键盘输入876543.0,a和b的值分别是( )。

876和543.000000

87和6.000000

87和543.000000

76和543.000000

~B

设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。下面的输入形式中正确的是( )(注:□代表空格字符)。

10□X□20□Y

10□X20□Y

10□X20Y

10X20□Y

~A

有下列程序段:

int j; float y;char name[50];

scanf("%2d%f%s",&j,&y,name);

当执行上述程序段,从键盘上输入55566 7777abc后,y的值为( )。

55566.0

566.0

7777.0

566777.0

~B

以下选项中不是字符常量的是( )。

'\v'

'\x2a'

'a'

"\0"

以下选项中非法的字符常量是( )。

'\\'

'\020"

'\xAA'

'0'

~B

在执行完下面的C语句段之后,则B的值是( )。char a='A';

int b;

B=((34&&56)&&(a<'b'));

1

TRUE

FALSE

~B

若变量已正确定义,以下正确的程序段是( )。while(ch=getchar()=='\N') putchar(ch);

while((ch=getchar())=='\n')putchar(ch);

while((ch=getchar())!='\N')putchar(ch);

while((ch=getchar())!='\n')putchar(ch);

~D

若变量已正确定义,下面程序段的输出结果是( )。#include

main()

{float x=1.236547;

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

}

1.237000

输出格式说明与输出项不匹配,输出无定值

1.236000

1.24

~A

设已定义x为double类型变量:

#include

main()

{ float x=323.82631;

printf("%.2e\n",x);

}

则以上语句( )。

输出格式描述符的域宽不够,不能输出

输出为32.38e+01

输出为3.24e+002

输出为3.24e2

若有以下定义和语句:

int u=011,v=0x11,w=11;

printf("%o,%x,%d\n",u,v,w);

则输出结果是( )。

9,17,11

9,11,11

11,11,11

11,17,11

~C

语句"printf("a\bhow\'are\'y\\\bou\n");"的输出结果是( )。

a\bhow\'are\'y\\bou

a\bhow\'are\'y\bou

how'are'you

ahow'are'y\bou

~C

若变量已正确定义,要求通过scanf("%c%d%c%d",&c1,&a,&c2,&b)语句给变量a和b赋数值32和45,给变量c1和c2赋字符A和B;以下选项中数据从第1列开始输入,正确的输入形式是( )。

A32<回车>B45<回车>

A45<回车>B32<回车>

A32B45<回车>

A 32

B 45<回车>

~D

若有"double a;",则正确的输入语句是( )。

scanf("%lf",a);

scanf("%f",&a);

scanf("%lf",&a);

scanf("%le",&a);

~D

已知i、j、k为int型变量,若要从键盘输入2,3,4<回车>,使i、j、k的值分别为2、3、4,以下正确的输入语句是( )。

scanf("%3d,%3d,%3d",&i,&j,&k);

scanf("%d,%d,%d",&i,&j,&k);

scanf("%d%d%d",&i,&j,&k);

scanf("i=%d,j=%d,k=%d",&i,&j,&k);

~B

下列程序中,fun()函数的功能是计算x^2-2x+6,主函数中将调用fun() 函数计算:

y1=(x+8)^2-2(x+8)+6

y2=sin^2(x)-2sin(x)+6

请填空。

#include "math.h"

double fun(double x) {return(x*x-2*x+6);}

main()

{ double x,y1,y2;

printf("Enter x:");

scanf("%lf",&x);

y1=fun([]);

y2=fun([]);

printf("y1=%lf,y2=%lf\n",y1,y2);

}

有下列程序:

int sub(int n) {return (n/10+n%10);}

main()

{ int x,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若运行时输入:1234,程序的输出结果是[<10>]。

下列运算符中优先级最高的运算符是()。

!

%

-=

&&

~A

下列运算符中优先级最低的运算符是()。

||

!=

<=

+

~A

为表示关系x≥y≥z,应使用的C语言表达式是()。

(x>=y)&&(y>=z)

(x>=y)AND(y>=z)

(x>=y>=z)

(x>=y)&(y>=z)

~A

设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是()。a&&b

a<=b

a||b+c&&b-c

!(a

~D

若有int s[4]={1,2,3,4};则s[s[0]+2*s[2]-s[3]]的值是()。

1

2

3

4

~D

对数组的描述正确的是()。

数组一旦定义去大小是固定的,但数组元素的类型可以不同

数组一旦定义去大小是固定的,但数组元素的类型必须相同

数组一旦定义去大小是可变的,但数组元素的类型可以不同

数组一旦定义去大小是可变的,但数组元素的类型必须相同

~B

对字符串"Boy"进行完整赋值的操作是()

char s[3]={'B','o','y'}

char s[]="Boy"

char s[3]={"Boy"}

char s[3];s="Boy"

~B

在c语言中引用数组元素时,其数组下标的数组类型允许是() 整型常量

整型表达式

整型常量或整型表达式

任何类型的表达式

~C

对以下说明语句的正确理解是()

*int a[10]={6,7,8,9,10}

将5个初值依次赋给a[1]至a[5]

将5个初值依次赋给a[0]至a[4]

将5个初值依次赋给a[6]至a[10]

因为数组长度与初值的个数不相同,所以此语句不正确

~B

以下程序段给数组所有元素输入数据,应在下划线处填入的是() *main()

*{

*int a[10],i=0;

*while(i<10) scanf("%d",_______);

*:

*:

*}

a+(i++)

&a(i+1)

a+i

&a[++i]

~D

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

*main()

*{

* int a[]={2,4,6,8},y=1,x,*p;

*p=&a[1];

*for(x=0;x<3;x++) y+=*(p+x);

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

*}

17

18

19

20

~C

下述函数定义形式正确的是()

int f(int x;int y)

int f(int x, y)

int f(int x,int y)

int f(x,y:y)

~C

关于函数参数,说法正确的是()

实参与其对应的形参各自占用独立的内存单元

实参与其对应的形参共同占用一个内存单元

只有当实参和形参同名时才占用同一个内存单元

形参是虚拟的,不占用内存单元

~A

用数组名作为函数的实参时,传递给形参的是()

数组的首地址

数组的第一个元素

数组中的全部元素

数组的元素个数

~A

复合语句中定义的变量的作用范围是()

整个源文件

整个函数

整个程序

所定义的复合语句

~D

一个函数的返回值由()确定

return语句中的表达式

调用函数的类型

系统默认的类型

被调用函数的类型

~D

以下说法正确的是()

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

在C语言程序设计中,要调用的函数必须在main函数中定义C语言程序总是从main函数开始执行

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

~C

以下函数的类型是()

*fff(float x)

*{

*printf("",x*x);

*}

与参数x的类型相同

void类型

int类型

无法确定

~C

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

*fun(int a,int b)

*{int c;

*c=a+b;

*retutn c;

*}

*main()

*{int x=6,y=7,z=8,r;

*r=func((x--,y++,x+y),z--);

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

*}

11

20

21

31

~C

当说明一个结构体变量时,系统分配给它的内存是() 各成员所需内存总量的总和

结构中第一个成员所需内存量

成员中占内存量最大者所需的容量

结构中最后一个成员所需内存量

~A

设有以下说明语句:

*struct stu

*{int a;

* float b;

*}stutype;

*则下面叙述不正确的是()

strut是结构体类型的关键字

strut stu是用户定义的结构体类型

stutype是用户定义的结构体类型名

a和b都是结构体成员名

~C

C语言结构体类型变量在执行期间()

所有成员一直驻留在内存中

只有一个成员驻留在内存中

部分成员驻留在内存中

没有成员驻留在内存中

~A

若想对文本文件只进行读操作,打开此文件的方式为()

"r"

"W"

"a"

"r+"

~A

如果要打开C盘file文件夹下的abc.dat文件,fopen函数中第一个参数应为()

c:file\abc.dat

c:\file\abc.dat

"c:\file\abc.dat"

"c:\\file\\abc.dat"

~D

用fopen函数打开文件,操作完毕后用()函数关闭它

fopen

open

fclose

close

~C

以下可作为函数fopen中第一个参数的正确格式是()

c:user\test.txt

c:\user\test.txt

"c:\user\test.txt"

"c:\\user\\test.txt"

~D

若执行fopen函数时发生错误,则函数的返回值是()

地址值

1

EOF

~B

若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是()

"ab++"

"wb+"

"rb+"

"ab"

~B

若以"a+"方式打开一个已存在的文件,则以下叙述正确的是()

相关主题
文本预览
相关文档 最新文档