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

C语言选择题

C语言选择题
C语言选择题

题干A B C

不合法的字符常量是( ).'\t'"A"'a'

合法的字符常量是( ) .'\084''\84''ab' C语言源程序的基本单位是()。过程函数子程序

下列字符序列中,可用作C标识符的一组字符序列是()。S.b,sum,average,

_above

class,day,lotus_1,

2day

#md,&12x,month,

student_n!

以下标识符中,不能作为合法的C用户定义标

识符的是()。

a3_b3void_123

以下数据中,不正确的数值或字符常量是

()。

05L o13

以下数值中,不正确的八进制数或十六进制

数是()。

0x1616-16

以下的选择中,正确的赋值语句是()。a=1,b=2j++a=b=5;以下运算符中,优先级最高的运算符是()

?:++&&

在C语言中,能代表逻辑值“真”的是()。True大于0的数非0整数下列变量说明语句中,正确的是()。char:a b c;char a;b;c;int x;z;下列字符序列中,不可用作C语言标识符的是

()。

b70#ab symbol

以下不正确的叙述是()。在C程序中所用的变量必

须先定义后使用

程序中,APH和aph是两

个不同的变量

若a和b类型相同,在执

行了赋值语句a=b;后b

中的值将放入a中,b中

的值不变

以下标识符中,不能作为合法的C用户定义标

识符的是()。

For Printf WORD

以下标识符中,不能作为合法的C用户定义标

识符的是()。

answer to signed 以下标识符中,不能作为合法的C用户定义标

识符的是()

putchar_double_123

以下数据中,不正确的数值或字符常量是

()。

8.9e1.2100xff00以下数据中,不正确的数值或字符常量是

()。

c660xaa

以下运算符中,优先级最高的运算符是()

*=>=(类型)以下运算符中,优先级最高的运算符是()

||%!

以下运算符中,优先级最高的运算符是()

=!=*(乘号)

以下叙述中不正确的是()。一个好的程序应该有详

尽的注释

在C程序中,赋值运算符

的优先级最低

在C程序中,j++;是一条

赋值语句

设C语言中,int类型数据占2个字节,则long

类型数据占()。

1个字节2个字节4个字节

设C语言中,int类型数据占2个字节,则

short类型数据占()。

1个字节2个字节4个字节

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

C语言中,char类型数据占()。1个字节2个字节4个字节

设C语言中,int类型数据占2个字节,则

unsigned类型数据占()。

1个字节2个字节4个字节

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

main()

{char c1=97,c2=98;

printf("%d %c",c1,c2);

}

97 9897 b a 98

执行下列语句后变量x和y的值是()。

y=10;x=y++;

x=10,y=10x=11,y=11x=10,y=11

下列数据中,为字符串常量的是()。A"house"How do you do.先用语句定义字符型变量c,然后要将字符a

赋给c,则下列语句中正确的是()。

c='a';c="a";c="97";

下列语句的结果是()。

main()

{ int j;

j=3;

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

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

}

3,33,44,3

设a=12,且a定义为整型变量。执行语句

a+=a-=a*=a;后a的值为()。

121440

已知year为整型变量,不能使表达式

(year%4==0&&year%100!=0)

||year%400==0的值为“真”的数据是()。

199019921996

下列运算符中,不属于关系运算符的是()

<>>=

假设所有变量均为整型,表达

式:a=2,b=5,a>b?a++:b++,a+b的值

是()。

789

以下不符合C语言语法的赋值语句是()。a=1,b=2++j;a=b=5;

以下不符合C语言语法的赋值语句是()。j++;j=j=5;k=2*4,k*4;执行下列程序后,其输出结果是()。

main()

{int a=9;

a+=a-=a+a;

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

}

189-18

下列语句的输出结果是()。 printf("%d\n",(int)(2.5+3.0)/3);有语法错误不能通过编

21

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

main()

{int a=7,b=5;

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

}

051

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

main()

{int a=011;

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

}

121110

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

main()

{

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

}

0变量无定义-1

若int类型数据占两个字节,则下列语句的输

出为()。

int k=-1; printf("%d,%u\n",k,k);

-1,-1-1,32767-1,32768

若k,g均为int型变量,则下列语句的输出为

()。

k=017; g=111; printf("%d\t",++k);

printf("%x\n",g++);

15 6f16 7015 71

以下程序段的执行结果是()。 double x;x=218.82631; printf("%-6.2e\n",x);输出格式描述符的域宽

不够,不能输出

输出为21.38e+01输出为2.2e+02

若k为int型变量,则以下程序段的执行结果是()。

k=-8567; printf("|%06D|\n",k);格式描述符不合法,输出

无定值

输出为|%06D|输出为|0-8567|

若ch为char型变量,k为int型变量(已知字

符a的ASCII十进制代码为97), 则以下程序段的执行结果是()。 ch='a'; k=12;

printf("%x,%o,",ch,ch,k);

printf("k=%%d\n",k);因变量类型与格式描述

符的类型不匹配,输出

无定值

输出项与格式描述符个

数不符,输出为零值或

不定值

61,141,k=%d

若有以下定义:char s='\092'; 则该语句()。使s的值包含1个字符

定义不合法,s的值不确

使s的值包含4个字符

若a是float型变量,b是unsigned型变量,以下输入语句中合法的是()。scanf("%6.2f%d",&a,&b

);

scanf("%f%n",&a,&b);scanf("%f%3o",&a,&b);

已知字母a的ASCII十进制代码为97,则执行

下列语句后的输出结果为()。

char a='a'; a--;

printf("%d,%c\n",a+'2'-'0',a+'3'-'0');b,c

a--运算不合法,故有语

法错

98,c

下列程序的输出结果为()。

main()

{int m=7,n=4;

float a=38.4,b=6.4,x;

x=m/2+n*a/b+1/2;

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

}

27.00000027.50000028.000000

若给定条件表达式(M)?(a++):(a--),则其中

表达式M()。

和(M==0)等价和(M==1)等价和(M!=0)等价以下程序的输出结果是()。

main()

{int i,j,k,a=3,b=2;

i=(--a==b++)?--a:++b;

j=a++;k=b;

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

}

i=2,j=1,k=3i=1,j=1,k=2i=4,j=2,k=4

a,b为整型变量,二者均不为0,以下关系表

达式中恒成立的是()。

a*b/a*b==1a/b*b/a==1a/b*b+a%b==a 为了提高程序的运行速度,在函数中对于整

型或指针可以使用()型的变量。

auto register static

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

main()

{int i=010,j=10;

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

}

11,109,10010,9

C 语言中以下几种运算符的优先次序()的排列是正确的。由高到低为:!,&&,||,算

术运算符,赋值运算符

由高到低为:!,算术运算

符,关系运算符,&&,||,

赋值运算符

由高到低为:算术运算

符,关系运算符,赋值运

算符,!,&&,||

设a为整型变量,初值为12,执行完语句

a+=a-=a*a后,a的值是()。

552144264

经下列语句定义后,sizeof(x),

sizeof(y),sizeof(a),sizeof(b)在

微机上的值分别为()。

char x=65;

float y=7.3;

int a=100;

double b=4.5;

2,2,2,41,2,2,41,4,2,8

用下列语句定义a,b,c,然后执行b=a、

c='b'+b,则b,c的值是()。

long a=0xffffff;

int b; char c;

0ffffff 和0x61-1和98-1和97

执行下列语句后,a和b的值分别为()。

int a,b;

a=1+'a';

b=2+7%-4-'A';

-63,-6498,-601,-60

C语言中要求对变量作强制定义的主要理由是()。便于移植便于写文件

便于编辑预处理程序的

处理

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

main()

{float x=3.6;

int i;

i=(int)x;

printf("x=%f,i=%d\n",x,i);

}

x=3.600000,i=4x=3,i=3x=3.600000,i=3

经过以下语句定义后,表达式

z+=x>y?++x:++y的值为()。

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

236

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

main()

{

int i=1,sum=0;

while(i<10) sum=sum+1;i++;

printf("i=%d,sum=%d",i,sum);

}

i=10,sum=9i=9,sum=9i=2,sum=1

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

main()

{ int n;

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

{

if(n%3==0) continue;

printf("%d",n);

}

}

1245781036912

在C语言中,if语句后的一对原括号中,用以

决定分支的流程的表 达式()。只能用逻辑表达式只能用关系表达式

只能用逻辑表达式或关

系表达式

在以下给出的表达式中,与 do--while(E)语

句中的(E)不等价的

表达式是()。

(!E==0)(E>0||E<0)(E==0)

假定所有变量均已正确定义,下列程序段运

行后x的值是()。

k1=1;

k2=2;

k3=3;

x=15;

if(!k1) x--;

else if(k2) x=4;

else x=3;

14415

执行下列语句后的输出为()。

int j=-1;

if(j<=1) printf("****\n");

else printf("%%%%\n");

****%%%%%%%%c

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

main()

{ int x=1,y=0,a=0,b=0;

switch(x)

{

case 1:switch(y)

{

case

0:a++;break;

case

1:b++;break;

}

case 2:a++;b++;break;

case 3:a++;b++;break;

}

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

}

a=1,b=0a=2,b=1a=1,b=1

在C语言中,为了结束由while语句构成的循

环,while后一对圆括号

中表达式的值应该为()。

01True

下列程序的输出为()。

main()

{ int y=10;

while(y--);

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

}

y=0while构成无限循环y=1

C语言的if语句嵌套时,if与else的配对关系是()。每个else总是与它上面

的最近的if配对

每个else总是与最外层

的if配对

每个else与if的配对是

任意的

设j和k都是int类型,则for循环语句

for(j=0,k=-1;k=1;j++,k++)

printf("****\n");()。

循环结束的条件不合法是无限循环循环体一次也不执行下列数组说明中,正确的是()。int array[][4];int array[][];int array[][][5];

下列数组说明中,正确的是()。static char

str[]="China";

static char str[];

str="China";

static char

str1[5],str2[]={"Chin

a"}; str1=str2;

下列定义数组的语句中正确的是()。#define size 10 char

str1[size],str2[size+

2];

char str[];int num['10'];

下列定义数组的语句中不正确的是()。static int

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

;

static int

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

static int

a[][3]={{1},{4}};

下列语句中,不正确的是()。static char

a[2]={1,2};

static int

a[2]={'1','2'};

static char

a[2]={'1','2','3'};

若输入ab,程序运行结果为()。

main()

{ static char a[3];

scanf("%s",a);

printf("%c,%c",a[1],a[2]);

}

a,b a,b,

下列说法不正确的是()。主函数main中定义的变

量在整个文件或程序中

有效

不同函数中,可以使用相

同名字的变量

形式参数是局部变量

关于return语句,下列正确的说法是()。不能在主函数中出现且

在其他函数中均可出现

必须在每个函数中出现

可以在同一个函数中出

现多次

在C语言的函数中,下列正确的说法是()。必须有形参形参必须是变量名可以有也可以没有形参

在C语言程序中()。函数的定义可以嵌套,但

函数的调用不可以嵌套

函数的定义不可以嵌套,

但函数的调用可以嵌套

函数的定义和函数调用

均可以嵌套

C语言执行程序的开始执行点是()。程序中第一条可以执行

语言

程序中第一个函数程序中的main函数

C语言程序中,若对函数类型未加显式说明,

则函数的隐含说明类型为()。

void double int

C语言程序中,当调用函数时()。实参和虚参各占一个独

立的存储单元

实参和虚参可以共用存

储单元

可以由用户指定是否共

用存储单元

数组名作为实参数传递给函数时,数组名被

处理为()。

该数组的长度该数组的元素个数该数组的首地址

以下描述中,正确的是()。预处理是指完成宏替换

和文件包含中指定的文

件的调用

预处理指令只能位于C源

文件的开始

C源程序中凡是行首以#

标识的控制行都是预处

理指令

以下对C语言函数的描述中,正确的是()。C程序必须由一个或一个

以上的函数组成

C函数既可以嵌套定义又

可以递归调用

函数必须有返回值,否则

不能使用函数

以下函数调用语句中实参的个数是()。

exce((v1,v2),(v3,v4,v5),v6);

345

以下函数调用语句中实参的个数是()。

func((e1,e2),(e3,e4,e5));

235

C语言中函数调用的方式有()。函数调用作为语句一种函数调用作为函数表达

式一种

函数调用作为语句或函

数表达式两种

执行下面程序后,输出结果是()。

main()

{ a=45,b=27,c=0;

c=max(a,b);

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

}

int max(x,y)

int x,y;

{ int z;

if(x>y) z=x;

else z=y;

return(z);

}

452718

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

main()

{int a=1,b=2,c=3,d=4,e=5;

printf("%d\n",func((a+b,b+c,c+a),(d+e)

));

}

int func(int x,int y)

{

return(x+y);

}

15139

下列定义不正确的是()。#define PI 3.141592#define S 345int max(x,y); int x,y; { }

下列程序运行结果为:

#define P 3

#define S(a) P*a*a

main()

{int ar;

ar=S(3+5);

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

}

1922927

已知p,p1为指针变量,a为数组名,j为整型

变量,下列赋值语句中

不正确的是()。

p=&j,p=p1;p=a;p=&a[j];

经过下列的语句 int j,a[10],*p;定义后,

下列语句中合法的是()。

p=p+2;p=a[5];p=a[2]+2;

两个指针变量不可以()。相加比较相减

若已定义x为int类型变量,下列语句中说明

指针变量p的正确语句是()。

int p=&x;int *p=x;int *p=&x;

关于指针概念说法不正确的是()。一个指针变量只能指向

同一类型变量

一个变量的地址称为该

变量的指针

只有同一类型变量的地

址才能放到指向该类型

变量的指针变量之中

设有说明int (*ptr)[M];其中标识符ptr是()。M个指向整型变量的指针

指向M个整型变量的函数

指针

一个指向具有M个整型元

素的一维数组的指针

下面选择中正确的赋值语句是(设char

a[5],*p=a;)()。

p="abcd";a="abcd";*p="abcd";具有相同类型的指针变量p与数组a,不能进

行的操作是()。

p=a;*p=a[0];p=&a[0];若有下列定义,则对a数组元素地址的正确引

用是()。

int a[5],*p=a;

&a[5]p+2a++

若有下列定义和语句,则对a数组元素的非法

引用是()。

int a[2][3], (*pt)[3]; pt=a;

pt[0][0]*(pt+1)[2]*(pt[1]+2)

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

char *alp[]={"ABC","DEF","GHI"}; int

j; puts(alp[1]);

A B D

设有以下语句, 若0

串的非法引用是()。

char

str[4][2]={"aaa","bbb","ccc","ddd"},*s

trp[4];

int j;

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

strp[j]=str[j];

strp str[k]strp[k]

若有int a[][]={{1,2},{3,4}}; 则

*(a+1),*(*a+1)的含义分别为()。

非法,2&a[1][0],2&a[0][1],3

若有定义:char *p1,*p2,*p3,*p4,ch; 则不能正确赋值的程序语句为()。p1=&ch;

scanf("%c",p1);

p2=(char

*)malloc(1);scanf("%c

",p2);

*p3=getchar();

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

结构中第一个成员所需

内存量

结构中最后一个成员所

需内存量

设有如下定义: struct sk {int a;

float b;} data,*p;

若要使p指向data中的a域,正确的赋值语句是()。p=(struct

sk*)&data.a;

p=(struct sk*)

data.a;

p=&data.a;

以下对枚举类型名的定义中正确的是()。enum a={sum,mon,tue};enum a {sum=9,mon=-

1,tue};

enum

a={"sum","mon","tue"}

;

在下列程序段中,枚举变量c1,c2的值依次

是()。

enum color

{red,yellow,blue=4,green,white} c1,c2;

c1=yellow;c2=white;

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

1,62,51,4

变量p为指针变量,若p=&a,下列说法不正确

的是()。

&*p==&a*&a==a(*p)++==a++

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

main()

{ char s[]="123",*p;

p=s;

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

}

123321213

执行下列语句后的结果为()。

int x=3,y;

int *px=&x;

y=*px++;

x=3,y=4x=3,y=3x=4,y=4

下列各m的值中,能使

m%3==2&&m%5==3&&m%7==2为真的是()。

82317

若有以下程序段:int a=3,b=4;

a=a^b;b=b^a;a=a^b;则执行以上

语句后,a和b的值分别是()。

a=3,b=4a=4,b=3a=4,b=4

在位运算中,操作数每右移一位,其结果相

当于()。

操作数乘以2操作数除以2操作数乘以16

fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是()。字符串读入后不会自动

加入'\0'

fp是file类型的指针

fgets函数将从文件中最

多读入n-1个字符

C语言中的文件类型只有()。索引文件和文本文件两

ASCII文件和二进制文件

两种

文本文件一种

C语言中,文件由()。记录组成由数据行组成由数据块组成

C语言中的文件的存储方式有()。只能顺序存取只能随机存取(或直接存

取)

可以顺序存取,也可随机

存取

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

main()

{ int x=1,y=0,a=0,b=0;

switch(x)

{

case 1:switch(y)

{

case

0:a++;break;

case

1:b++;break;

}

case 2:a++;b++;break;

case 3:a++;b++;break;

}

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

}

a=1,b=0a=2,b=1a=1,b=1

设j和k都是int类型,则下面的for循环语句

()。

for(j=0,k=0;j<=9&&k!=876;j++)

scanf("%d",&k);

最多执行10次最多执行9次是无限循环

以下程序段 char

*alp[]={"ABC","DEF","GHI"}; int j;

puts(alp[1]);

的输出结果是()。

A B D

下列标识符中,不合法的C语言用户自定义标

识符是()。

printf enum_

以下字符中不是转义字符的是()。\a'\b'\c'

下列程序段的输出结果为()。

float k=0.8567;

printf("%06.1f%%",k*100);

0085.6%%0085.7%0085.6%

下列程序段的输出结果为()。

float x=213.82631;

printf("%3d",(int)x);

213.82213.83213

C语言的注释定界符是()。{ }[ ]\* *\

下列字符序列中,是C语言保留字的是()。sizeof include scanf

double x;scanf("%lf",&x);不可以赋值给x

变量的常量是()。

123100000A'

C语言能正确处理的指数是()。8.5e4288e-32123000000000

下列运算符中是C语言关系运算符的是()。~!&

以下常量中,能够代表逻辑“真”值的常量

是()。

\0'0'0'

下列程序段的输出结果为()。

int x=3,y=2;

printf("%d",(x-=y,x*=y+8/5));

173

下列程序段的输出结果为()。

int a=7,b=9,t;

t=a*=a>b?a:b;

printf("%d",t);

7963

下列表达式中,可作为C合法表达式的是()

[3,2,1,0](3,2,1,0)3=2=1=0

以下语句中,不能实现回车换行的是()。printf("\n");putchar("\n");fprintf(stdout,"\n");执行以下程序段后,输出结果和a的值是()

int a=10;

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

10 和 1010 和 1111 和 10

以下语句中,循环次数不为10次的语句是()。for(i=1;i<10;i++);

i=1;do{i++;}while(i<=

10);

i=10;while(i>0){--i;}

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

for(i=4;i>1;i--)

for(j=1;j

putchar('#');

无#######

以下程序段中,能够正确地执行循环的是()。for(i=1;i>10;i++)

static int a;

while(a)

int s=6;

do s-=2;

while(s);

int a=1,b=2,c=3;

if(a>b)a=b;

if(a>c)a=c;

则a的值为()。

123

int a=3,b=2,c=1;

if(a>b>c)a=b;

else a=c;

则a的值为()。

321求平方根函数的函数名为()。cos abs pow

while(fabs(t)<1e-5)if(!s/10)break;循环结束的条件是()。t>=1e-5&&t<=-1e-

5&&s>-10&&s<10

fabs(t)<1e-5&&!s/10fabs(t)<1e-5

int a[10];合法的数组元素的最小下标值为

()。

1091

char a[10];不能将字符串"abc"存储在数组中的是()。strcpy(a,"abc");

a[0]=0;strcat(a,"abc"

);

a="abc";

int i,j,a[2][3];按照数组a的元素在内存的排列次序,不能将数

1,2,3,4,5,6存入a数组的是()。for(i=0;i<2;i++)for(j

=0;j<3;j++)a[i][j]=i*

3+j+1;

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

=0;j<2;j++)a[j][i]=j*

3+i+1;

for(i=0;i<6;i++)a[i/3

][i%3]=i+1;

static char str[10]="China";数组元素个

数为()。

569若char a[10];已正确定义,以下语句中不能

从键盘上给a数组的

所有元素输入值的语句是()。gets(a);scanf("%s",a);

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

=getchar();

char a[]="This is a program.";输出前5

个字符的语句是()。

printf("%.5s",a);puts(a);printf("%s",a);

int a[10];

给数组a的所有元素分别赋值为1、2、3、……的语句是()。for(i=1;i<11;i++)a[i]

=i;

for(i=1;i<11;i++)a[i-

1]=i;

for(i=1;i<11;i++)a[i+

1]=i;

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

char c[]="abc";

int i=0;

do ;while(c[i++]!='\0');printf("%d",i-

1);

abc ab2

char a1[]="abc",a2[80]="1234";将a1串连

接到a2串后面的语句是()。

strcat(a2,a1);strcpy(a2,a1);strcat(a1,a2);若有

char s1[]="abc",s2[20],*t=s2;gets(t);则下列语句中能够实现当字符串s1大于字符串s2时,输出s2的语句是()。if(strcmp(s1,s1)>0)pu

ts(s2);

if(strcmp(s2,s1)>0)pu

ts(s2);

if(strcmp(s2,t)>0)put

s(s2);

函数的形式参数隐含的存储类型说明是()

extern static register

与实际参数为实型数组名相对应的形式参数

不可以定义为()。

float a[];float *a;float a;

C语言中不可以嵌套的是()。函数调用函数定义循环语句

用户定义的函数不可以调用的函数是()。非整型返回值的本文件外的main函数

全局变量的定义不可能在()。函数内部函数外面文件外面

对于void类型函数,调用时不可作为()。自定义函数体中的语句循环体里的语句if语句的成分语句

在C语言中,调用函数除函数名外,还必须有

()。

函数预说明实际参数( )

C程序中的宏展开是在()。编译时进行的程序执行时进行的编译前预处理时进行的C语言中,定义结构体的保留字是()。union struct enum

结构体类型的定义允许嵌套是指()。成员是已经或正在定义

的结构体型

成员可以重名结构体型可以派生

对结构体类型的变量的成员的访问,无论数

据类型如何都可使用

的运算符是()。

.->*

相同结构体类型的变量之间,可以()。相加赋值比较大小

使用共用体变量,不可以()。节省存储空间简化程序设计进行动态管理

enum a {sum=9,mon=-1,tue};

定义了()。

枚举变量3个标识符枚举数据类型

在定义构造数据类型时,不能()。说明变量说明存储类型初始化

位字段数据的单位是()位。十六进制八进制二进制

C语言程序中必须有的函数是()。#include "stdio.h"main printf

指针变量p进行自加运算(即 执行p++;)后,

地址偏移值为2,则其

数据类型为()。

int float double

若有int i=3,*p;p=&i;下列语句中输出结果

为3的是()。

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

若有int *p=(int *)malloc(sizeof(int));

则向内存申请到内存

空间存入整数123的语句为()。

scanf("%d",p);scanf("%d",&p);scanf("%d",*p);

若有int

a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输

出结果不为5

的语句为()。

printf("%d",*(a+5));printf("%d",p[5]);printf("%d",*(p+5));

char *s1="hello",*s2;s2=s1;则()。s2指向不确定的内存单

不能访问"hello"

puts(s1);与puts(s2);

结果相同

char h,*s=&h;可将字符H通过指针存入变量h

中的语句是()。

*s=H;*s='H';s=H;

若有char a[80],*s=a;不正确的输入语句是

()。

scanf("%s",s);gets(s);fscanf(stdin,"%c",s);

int (*p)[6]; 它的含义为()。具有6个元素的一维数组定义了一个指向具有6个

元素的一维数组的指针

变量

指向整型指针变量

char *match(char c)是()。函数定义的头部函数预说明函数调用

若有double *p,x[10];int i=5;使指针变量

p指向元素x[5]的语句为()。

p=&x[i];p=x;p=x[i];

不仅可将C源程序存在磁盘上,还可将数据按

数据类型分别以什么的

形式存在磁盘上()。

内存缓冲区文件

应用缓冲文件系统对文件进行读写操作,打

开文件的函数名为()。

open fopen close

应用缓冲文件系统对文件进行读写操作,关

闭文件的函数名为()。

fclose()close()fread()

文件中有一个位置指针,指向当前读写的位

置,不可使p所指文件的

位置返回到文件的开头的是()。

rewind(p);fseek(p,0,SEEK_SET);fseek(p,0,0);

从键盘上输入某字符串时,不可使用的函数

是()。

getchar()gets()scanf()

选择结构中的条件与循环结构中循环成立的

条件,

在写法上可以是任一表达式,但其值只能被

判断为“真”或“假”。

哪个数作为逻辑“假”值()。

-11非零的数

static struct {int a1;float a2;char

a3;}a[10]={1,3.5,'A'};

说明数组a是地址常量,它有10个结构体型的

下标变量,采用静态存

储方式,其中被初始化的下标变量是()。

a[1]a[-1]a[0]

打开文件时,方式“w”决定了对文件进行的

操作是()。

只写盘只读盘可读可写盘

int a[10]={1,2,3,4,5,6,7,8};int

*p;p=&a[5];p[-3]的值是()。

234

一个算法应该具有“确定性”等5个特性,下

面对另外4个特性的描述

中错误的是()。

有零个或多个输入有零个或多个输出有穷性

能将高级语言编写的源程序转换为目标程序

的是()。

链接程序解释程序编译程序

以下叙述中正确的是 ()。C程序中注释部分可以出

现在程序中任意合适的

地方

花括号“{“和”}”只

能作为函数体的定界符

构成C程序的基本单位是

函数,所有函数名都可以

由用户命名

下列叙述中正确的是()。C语言编译时不检查语法C语言的子程序有过程和

函数两种

C语言的函数可以嵌套定

以下叙述中正确的是()。构成C程序的基本单位是

函数

可以在一个函数中定义

另一个函数

main()函数必须放在其

它函数之前

在一个C程序中()。main函数必须出现在所

有函数之前

main函数可以在任何地

方出现

main函数必须出现在所

有函数之后

以下叙述中正确的是()。C语言的源程序不必通过

编译就可以直接运行

C语言中的每条可执行语

句最终都将被转换成二

进制的机器指令

C源程序经编译形成的二

进制代码可以直接运行

一个C程序的执行是从()。本程序的main函数开始,

到main函数结束

本程序文件的第一个函

数开始,到本程序文件的

最后一个函数结束

本程序的main函数开始,

到本程序文件的最后一

个函数结束

以下叙述中正确的是 ()。C语言比其他语言高级C语言可以不用编译就能

被计算机识别执行

C语言以接近英语国家的

自然语言和数学语言作

为语言的表达形式

一个C语言程序是由()。一个主程序和若干子程

序组成

函数组成若干过程组成

C语言规定,在一个源程序中,main函数的位置()。必须在最开始

必须在系统调用的库函

数的后面

可以任意

以下叙述不正确的是()。一个C源程序可由一个或

多个函数组成

一个C源程序必须包含一

个main函数

C程序的基本组成单位是

函数

以下叙述正确的是()。在C程序中,main函数必

须位于程序的最前面

C程序的每行中只能写一

条语句

C语言本身没有输入输出

语句

表达式18/4*sqrt(4.0)/8值的数据类型为

()。

int float double

C语言中运算对象必须是整型的运算符是()

%=/=

若变量已正确定义并赋值,下面符合C语言语

法的表达式是()。

a:=b+1a=b=c+2int 18.5%3

若有条件表达式 (exp)?a++:b--,则以下表

达式中能完全等价于

表达式(exp)的是()。

(exp==0)(exp!=0)(exp==1)

设以下变量均为int类型,则值不等于7的表

达式是()。

(x=y=6,x+y,x+1)(x=y=6,x+y,y+1)(x=6,x+1,y=6,x+y)在C语言中,int、char和short三种类型数据

在内存中所占用的字节数()。

由用用户自己定义均为2个字节是任意的

设C语言中,一个int型数据在内存中占2个字

节,则unsigned int

型数据的取值范围为()。

0--2550--327670--65535

在C语言中,char型数据在内存中的存储形式

是()。

补码反码原码

设变量a是整型,f是实型,i是双精度型,则

表达式10+'a'+i*f值的

数据类型为()。

int float double

sizeof(float)是()。一个双精度型表达式一个整型表达式一种函数调用

若有定义:int a=7;float x=2.5,y=4.7;

则表达式x+a%3*(int)(x+y)%2/4的值是()

2.500000 2.750000

3.500000

已知大写字母A的ASCII码值是65,小写字母a

的ASCII码是97,则用

八进制表示的字符常量'\101'是()。

字符A字符a字符e

以下选项中合法的用户标识符是()。long_2Test3Dmax

以下选项中合法的实型常数是()。5E2.0E-3.2E0

语句printf("a\bre\'hi\'y\\\bou\n");的

输出结果是

(说明:'\b'是退格符)()。

a\bre\'hi\'y\\\bou a\bre\'hi\'y\bou re'hi'you

若已定义x和y为double类型,则表达式

x=1,y=x+3/2 的值是()。

12 2.0

下列变量定义中合法的是()。short _a=1-.1e-1;double b=1+5e2.5;long do=0xfdaL;

若变量a与i已正确定义,且i已正确赋值,合

法的语句是()。

a==1++i;a=a++=5;

设有 int x=11; 则表达式 (x++ * 1/3) 的

值是()。

3411

若以下变量均是整型,且num=sum=7;则计算

表达式sum=num++,

sum++,++num后sum的值为()。

789

设 int x=1, y=1; 表达式(!x||y--)的值是

()。

012

C语言中的标识符只能由字母,数字和下划线

三种字符组成,

且第一个字符()。

必须为字母必须为下划线必须为字母或下划线

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

的选项是()。

A P_0 do float la0 _A b-a goto int

下列四个选项中,均是C语言关键字的选项是()。auto enum

include

switch typedef

continue

signed union scanf

下列四组选项中,均不是C语言关键字的选项

是()。

define IF type getc char printf include scanf case 假设所有变量均为整型,则表达式

(a=2,b=5,b++,a+b)的值是()。

786

若有说明语句:char c='\72';则变量c()。包含1个字符包含2个字符包含3个字符

下面四个选项中,均是不合法的浮点数的选

项是()。

160. 0.12 e3123 2e4.2 .e5-.18 123e4 0.0

以下符合C语言语法的赋值表达式是()。d=9+e+f=d+9d=9+e,f=d+9d=9+e,e++,d+9

下面不正确的字符串常量是()。'abc'"12'12""0"

以下所列的C语言常量中,错误的是()。0xFF 1.2e0.52L

已定义ch为字符型变量,以下赋值语句中错

误的是()。

ch='\';ch=62+3;ch=NULL;

若a为int类型,且其值为3,则执行完表达式

a+=a-=a*a后,a的

值是()。

-39-12

下列选项中,合法的C语言关键字是()。VAR cher integer

设有说明语句:char a='\72';则变量a()。包含1个字符包含2个字符包含3个字符

以下选项中,与k=n++完全等价的表达式是

()。

k=n,n=n+1n=n+1,k=n k=++n

以下for循环的执行次数是

for(x=0,y=0;(y=123)&&(x<4);x++);()。 是无限循环循环次数不定4次

语句while(!E);中的表达式!E等价于()。E==0E!=1E!=0

下面有关 for 循环的正确描述是()。for 循环只能用于循环

次数已经确定的情况

for 循环是先执行循环

循环体语句,后判断表达

在 for 循环中,不能用

break 语句跳出循环体

若i为整型变量,则以下循环执行次数是()

for(i=2;i==0;) printf("%d",i--);

无限次0次1次

C语言中 while 和 do-while 循环的主要区别是()。do-while 的循环体至少

无条件执行一次

while的循环控制条件比

do-while的循环控制条

件更严格

do-while 允许从外部转

到循环体内

以下不是无限循环的语句为()。for(y=0,x=1;x>++y;x=i

++) i=x;

for(;;x++=i);while(1){x++;}

执行语句 for(i=1;i++<4;); 后变量 i 的

值是()。

345

C语言中用于结构化程序设计的三种基本结构是()。顺序结构、选择结构、

循环结构

if、switch、break for、while、do-while

对 for(表达式1; ;表达式3) 可理解为()。for(表达式1;0;表达式

3)

for(表达式1;1;表达式

3)

for(表达式1;表达式1;

表达式3)

下列运算符中优先级最高的是()。<+&& printf函数中用到格式符%5s,其中数字5表

示输出的字符串占用

5列,如果字符串长度大于5,则输出按方式()。从左起输出该字符串,右

补空格

按原字符长从左向右全

部输出

右对齐输出该字串,左补

空格

putchar函数可以向终端输出一个()。整型变量表达式值实型变量值字符串

以下描述中正确的是()。由于 do-while 循环中

循环体语句只能是一条

可执行语句,所以循环体

内不能使用复合语句

do-while 循环由do开

始,用while结束,在

while(表达式)后面不能

写分号

在 do-while 循环体中,

一定要有能使 while 后

面表达式的值变为零("

假")的操作

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

<赋值运算符<逻辑运算

逻辑运算符<关系运算符

<算术运算符<赋值运算

赋值运算符<逻辑运算符

<关系运算符<算术运算

已知x=43,ch='A',y=0;则表达式

(x>=y&&ch<'B'&&!y)的值是()。

0语法错1

若希望当A的值为奇数时,表达式的值为“真

”,A的值为偶数时,表达

式的值为“假”,则以下不能满足要求的表

达式是()。

A%2==1!(A%2==0)!(A%2)

判断char型变量cl是否为小写字母的正确表

达式是()。

'a'<=cl<='z'(cl>=a)&&(cl<=z)('a'>=cl)||('z'<=cl)

以下不正确的if语句形式是()。if(x>y&&x!=y);if(x==y) x+=y;if(x!=y)

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

为了避免在嵌套的条件语句 if-else 中产生

二义性,C语言规定:

else子句总是与()配对。

缩排位置相同的if其之前最近的if其之后最近的if

逻辑运算符两侧运算对象的数据类型()。只能是0或1只能是0或非0正数只能是整型或字符型数据

结构化程序设计所规定的三种基本控制结构

是()。

输入、处理、输出树形、网形、环形顺序、选择、循环

以下叙述正确的是()。do-while语句构成的循

环不能用其它语句构成

的循环来代替.

do-while语句构成的循

环只能用break语句退

出.

用do-while语句构成的

循环,在while后的表达

式为非零时结束循环.

对以下说明语句 int

a[10]={6,7,8,9,10}; 的正确理解是()。 将5个初值依次赋给a[1]

至a[5]

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

至a[4]

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

至a[10]

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

x[5]={2.0,4.0,6.0,8.0

,10.0};

int

y[5]={0,1,3,5,7,9};

char

c1[]={'1','2','3','4'

,'5'};

若有说明:int a[][3]={1,2,3,4,5,6,7};则

a数组第一维的大小是()。

234

若二维数组a有m列,则在a[i][j]前的元素个

数为()。

j*m+i i*m+j i*m+j-1

若有说明:int a[3][4];则数组a中各元素()。可在程序的运行阶段得

到初值0

可在程序的编译阶段得

到初值0

不能得到确定的初值

设有数组定义: char array [ ]="China";

则数组 array所占的

空间为()。

4个字节5个字节6个字节

以下能正确定义数组并正确赋初值的语句是()。int N=5,b[N][N];

int

a[1][2]={{1},{3}};

int

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

以下对二维数组a的正确说明是()。int a[3][]float a(3,4)double a[1][4]若有说明:int a[10];则对a数组元素的正确

引用是()。

a[10]a[3,5]a(5)

在C语言中,一维数组的定义方式为:类型说明符数组名()。[常量表达式][整型表达式]

[整型常量]或[整型表达

式]

以下能对一维数组a进行正确初始化的语句是

()。

int a[10]=(0,0,0,0,0)int a[10]={};int a[]={0};

以下对一维整型数组a的正确说明是()。int a(10);int n=10,a[n];int n;

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

若有说明 int a[3][4];则对a数组元素的正

确引用是()。

a[2][4]a[1,3]a[1+1][0]若有说明 int a[3][4];则a数组元素的非法

引用是()。

a[0][2*1]a[1][3]a[4-2][0]

以下能对二维数组a进行正确初始化的语句是()。int

a[2][]={{1,0,1},{5,2,

3}};

int

a[][3]={{1,2,3},{4,5,

6}};

int

a[2][4]={{1,2,3},{4,5

},{6}};

以下不能对二维数组a进行正确初始化的语句是()。int a[2][3]={0};

int

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

int

a[2][3]={{1,2},{3,4},

{5,6}};

若有说明: int a[3][4]={0};则下面正确的叙述是()。只有元素a[0][0]可得到

初值0

此说明语句不正确

数组a中各元素都可得到

初值,但其值不一定为0

若有说明: int a[][4]={0,0};则下面不正确的叙述是()。数组a的每个元素都可得

到初值0

二维数组a的第一维大小

为1

因为二维数组a中第二维

大小的值除经初值个数

的商为1,故数组a的行数

为1

以下定义语句中,错误的是()。int a[]={1,2};char *a[3];char s[10]="test";在C语言中,引用数组元素时,其数组下标的

数据类型允许是()。

整型常量整型表达式整型常量或整型表达式

以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()。char s[10]="abcdefg";

char

t[]="abcdefg",*s=t;

char

s[10];s="abcdefg";

以下不能正确定义二维数组的选项是()。int

a[2][2]={{1},{2}};

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

int

a[2][2]={{1},2,3};

假定int类型变量占用两个字节,其有定

义:int x[10]={0,2,4};,

则数组x在内存中所占字节数是()。

3610

以下数组定义中不正确的是()。int a[2][3];int b[][3]={0,1,2,3};int c[100][100]={0};

以下不能正确进行字符串赋初值的语句是

()。

char str[5]="good!";char str[]="good!";char *str="good!";

若使用一维数组名作函数实参,则以下正确的说法是()。必须在主调函数中说明

此数组的大小

实参数组类型与形参数

组类型可以不匹配

在被调用函数中,不需要

考虑形参数组的大小

凡是函数中未指定存储类别的局部变量,其

隐含的存储类别为()。

自动(auto)静态(static)外部(extern)在C语言中,函数的隐含存储类别是()。auto static extern

以下正确的描述是:在C语言程序中()。函数的定义可以嵌套,但

函数的调用不可以嵌套

函数的定义不可以嵌套,

但函数的调用可以嵌套

函数的定义和函数的调

用均不可以嵌套

C语言中,函数值类型的定义可以缺省,此时

函数值的隐含类型是()。

void int float

以下不正确的说法是:C语言规定()。实参可以是常量,变量或

表达式

形参可以是常量,变量或

表达式

实参可以为任何类型

以下正确的函数定义形式是()。double fun(int x,int

y)

double fun(int x;int

y)

double fun(int x,int

y);

以下正确的说法是:在C语言中()。实参和与其对应的形参

各占用独立的存储单元

实参和与其对应的形参

共占用一个存储单元

只有当实参和与其对应

的形参同名时才共占用

存储单元

若调用一个函数,且此函数中没有return语

句,则正确的说法是: 该函数()。没有返回值返回若干个系统默认值

能返回一个用户所希望

的值

以下叙述中正确的是()。全局变量的作用域一定

比局部变量的作用域范

围大

静态(static)类别变量

的生存期贯穿于整个程

序的运行期间

函数的形参都属于全局

变量

以下正确的说法是()。用户若需调用标准库函

数,调用前必须重新定

用户可以重新定义标准

库函数,若如此,该函

数将失去原有含义

系统根本不允许用户重

新定义标准库函数

若用数组名作为函数的实参,传递给形参的

是()。

数组的首地址数组第一个元素的值数组中全部元素的值

以下正确的说法是()。定义函数时,形参的类型

说明可以放在函数体内

return后边的值不能为

表达式

如果函数值的类型与返

回值类型不一致,以函

数值类型为准

C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是()。地址传递单向值传递

由实参传给形参,再由

形参传回给实参

C语言允许函数类型缺省定义,此时函数值隐

含的类型是()。

float int long

C语言规定,函数返回值的类型是由()。return语句中的表达式

类型所决定

调用该函数时的主调函

数类型所决定

调用该函数时系统临时

决定

以下错误的描述是:函数调用可以()。出现在执行语句中出现在一个表达式中做为一个函数的实参关于建立函数的目的,以下正确的说法是

()。

提高程序的执行效率提高程序的可读性减少程序的篇幅

以下只有在使用时才为该类型变量分配内存

的存储类说明是()。

auto和 static auto和 register register和 static

若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。函数调用可以作为独立

的语句存在

函数调用可以作为一个

函数的实参

函数调用可以出现在表

达式中

当调用函数时,实参是一个数组名,则向函

数传送的是()。

数组的长度数组的首地址数组每一个元素的地址在C语言中,形参的缺省存储类是()。auto register static

在调用函数时,如果实参是简单变量,它与

对应形参之间的数据 传递方式是()。地址传递单向值传递

由实参传给形参,再由

形参传回实参

以下运算符中优先级最低的是()。&&&||

在C语言中,要求运算数必须是整型或字符型

的运算符是()。

&&&!

在C语言中,要求运算数必须是整型的运算符

是()。

^%!

在位运算中,操作数每左移一位,其结果相

当于()。

操作数乘以2操作数除以2操作数除以4表达式,0x13&0x17的值是()。0x170x130xf8

若a=1,b=2则 a|b的值是()。012

以下叙述中不正确的是()。预处理命令行都必须以#

号开始

在程序中凡是以#号开始

的语句行都是预处理命

令行

C程序在执行过程中对预

处理命令行进行处理

设char型变量x中的值为10100111,则表达式

(2+x)^(~3)的值是()。

101010011010100011111101

若要说明一个类型名STP,使得定义语句STP

s等价于char *s,

以下选项中正确的是()。

typedef STP char *s;typedef *char STP;typedef stp *char;

以下叙述中正确的是()。在程序的一行上可以出

现多个有效的预处理命

令行

使用带参的宏时,参数的

类型应与宏定义时的一

宏替换不占用运行时间,

只占编译时间

以下各选项企图说明一种新的类型名,其中

正确的是()。

typedef v1 int;typedef v2=int;typedef int v3;

以下叙述正确的是()。可以把define和if定义

为用户标识符

可以把define定义为用

户标识符,但不能把if定

义为用户标识符

可以把if定义为用户标

识符,但不能把define定

义为用户标识符

以下叙述中不正确的是()。表达式a&=b等价于a=a&b表达式a|=b等价于a=a|b表达式a!=b等价于a=a!b

设 int b=2;表达式(b>>2)/(b>>1)的值是

()。

024

若x=2,y=3则x&y的结果是()。023

整型变量x和y的值相等、且为非0值,则以下

选项中,结果为零的

表达式是()。

x || y x | y x & y

下面说明不正确的是()。char a[10]="china";char

a[10],*p=a;p="china"

char *a;a="china";

设p1和p2是指向同一个字符串的指针变量,c

为字符变量,则以下

不能正确执行的赋值语句是()。

c=*p1+*p2;p2=c;p1=p2;

设 char *s="\ta\017bc";则指针变量s指向

的字符串所占的字节数

是()。

956

对于基本类型相同的两个指针变量之间,不

能进行的运算是()。

<=+

若有以下的定义:int t[3][2];能正确表示t

数组元素地址的表达式是()。

&t[3][2]t[3]&t[1]

变量的指针,其含义是指该变量的()。值地址名

若有语句int *point,a=4;和 point=&a;下

面均代表地址的一组选项是()。

a,point,*&a&*a,&a,*point*&point,*point,&a

若有说明:int *p,m=5,n;以下正确的程序段

是()。

p=&n;scanf("%d",&p);p=&n;scanf("%d",*p)scanf("%d",&n);*p=n;若有说明:int *p1,*p2,m=5,n;以下均是正

确赋值语句的选项是()。

p1=&m;p2=&p1p1=&m;p2=&n;*p1=*p2;p1=&m;p2=p1;

下面判断正确的是()。char *a="china";等价

于 char

*a;*a="china";

char

str[10]={"china"};等

价于char

str[10];str[]={"china

"};

char *s="china";等价

于 char *s;s="china";

若定义:int a=511,*b=&a;, 则

printf("%d\n",*b);的输出结果为()。

无确定值a的地址512

若有定义:int *p[3];,则以下叙述中正确的是()。定义了一个基类型为int

的指针变量p,该变量具

有三个指针

定义了一个指针数组p,

该数组含有三个元素,每

个元素都是基类型为int

的指针

定义了一个名为*p的整

型数组,该数组含有三

个int类型元素

下列选项中正确的语句组是()。char s[8];

s={"Beijing"};

char *s;

s={"Beijing"};

char s[8];

s="Beijing";

若有说明:int n=2,*p=&n,*q=p;,则以下非

法的赋值语句是()。

p=q;*p=*q;n=*q;

在说明语句:int *f();中,标识符f代表的是()。一个用于指向整型数据

的指针变量

一个用于指向一维数组

的行指针

一个用于指向函数的指

针变量

若有定义:int aa[ 8];则以下表达式中不能

代表数组元aa[1]的

地址的是()。

&aa[0]+1&aa[1]&aa[0]++

若有说明:int i, j=2,*p=&i;,则能完成i=j

赋值功能的语句是()。

i=*p;*p=*&j;i=&j;

设有定义:int n=0,*p=&n,**q=&p;则以下选

项中,正确的赋值语句是()。

p=1;*q=2;q=p;

fscanf函数的正确调用形式是()。fscanf(fp,格式字符串,

输出表列);

fscanf(格式字符串,输

出表列,fp);

fscanf(格式字符串,文

件指针,输出表列);

系统的标准输入文件是指()。键盘显示器软盘

函数 ftell(fp) 的作用是()。得到流式文件中的当前

位置

移到流式文件的位置指

初始化流式文件的位置

指针

函数 rewind 的作用是()。使位置指针重新返回文

件的开头

将位置指针指向文件中

所要求的特定位置

使位置指针指向文件的

末尾

fseek函数的正确调用形式是()。fseek(文件类型指针,起

始点,位移量)

fseek(fp,位移量,起始

点)

fseek(位移量,起始

点,fp)

利用 fseek 函数可以实现的操作是()。改变文件的位置指针文件的顺序读写文件的随机读写

函数调用语句:fseek(fp,-20L,2);的含义是()。将文件位置指针移到距

离文件头20个字节处

将文件位置指针从当前

位置向后移动20个字节

将文件位置指针从文件

末尾处退后20个字节

若调用fputc函数输出字符成功,则其返回值

是()。

EOF10在执行 fopen 函数时,ferror 函数的初值

是()。

TRUE-11

fwrite函数的一般调用形式是()。fwrite(buffer,count,s

ize,fp);

fwrite(fp,size,count,

buffer);

fwrite(fp,count,size,

buffer);

以下read函数的调用形式中,参数类型正确的是()。read(int fd,char

*buf,int count)

read(int *buf,int

fd,int count)

read(int fd,int

count,char *buf)

已知函数的调用形式:

fread(buffer,size,count,fp);其中buffer

代表的是()。

一个整数,代表要读入的数据项总数一个文件指针,指向要读的文件一个指针,指向要读入数

据的存放地址

当顺利执行了文件关闭操作时,fclose函数

的返回值是()。

-1

TRUE

若以"a+"方式打开一个已存在的文件,则以下叙述正确的是()。文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作文件打开时,原有文件内

容不被删除,位置指针移到文件开头,可作重写和读操作文件打开时,原有文件内容被删除,只可作写操作

若要用fopen函数打开一个新的二进制文件,

该文件要既能读也能写, 则文件方式字符串应是()。

"ab++""wb+""rb+"若执行fopen函数时发生错误,则函数的返回

值是()。

地址值

1

以下叙述中不正确的是()。

C语言中的文本文件以ASCⅡ码形式存储数据

C语言中对二进制文件的访问速度比文本文件快C语言中,随机读写方式不适用于文本文件以下可作为函数fopen中第一个参数的正确格

式是()。

c:user\text.txt

c:\user\text.txt "c:\user\text.txt"fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式 必须是()。

只写追加

读或读写

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

二进制文件打开后可以先读文件的末尾,而顺序文件不可以在程序结束时,应当用fclose函数关闭已打开的文件在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据

下列关于C语言数据文件的叙述中正确的是

()。

文件由ASCII码字符序列组成,C语言只能读写文本文件文件由二进制数据序列组成,C语言只能读写二进制文件

文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数 feof(fp)的值为()。

01

-1

若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,

下面符合此要求的函数调用是()。

fopen("A:\user\abc.tx t","r")fopen("A:\\user\\abc.txt","r+")fopen("A:\user\abc.tx t","rb")在C程序中,可把整型数以二进制形式存放到文件中的函数是()。

fprintf函数fread函数fwrite函数若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp) 的返回值是()。

EOF

非零值

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

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

只有一个成员驻留在内

存中

部分成员驻留在内存中当说明一个结构体变量时系统分配给它的内存是()。各成员所需内存量的总和结构中第一个成员所需内存量成员中占内存量最大者所需的容量( )不是C语言提供的合法的数据类型关键

字.

float

signed integer 属于合法的C语言长整型常量的是( ) .58762730L

2E10下面选项中,不是合法整型常量的是( ) .160-0xcdg -1判断short int x = 0xaffbc;x的结果是(

) .

赋值非法

溢出为affb 下面选项中,均是合法浮点数的是( ) .5e-9.4

03e2

+1e+1

-6012e-4-8e5123e 1.2e-.4+2e-1在C语言中,要求参加运算的数必须时整数的

运算符是( ).

/

*%在C语言中,字符型数据在内存中以( )形式

存放.

原码

BCD码反码

下列语句中,符合语法的赋值语句是( ).a=7+b+c=a+7;a=7+b++=a+7;a=(7+b,b++,a+7);( )是非法的C语言转义字符.'\b''\0xf''\037'对于语

句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,( )是正确的.

语法错误f为5.0

f为0.0

与代数式(x*y)/(u*v) 不等价的C语言表达式

是( ).

x*y/u*v x*y/u/v x*y/(u*v)

在C语言中,数字029是一个( ).八进制数十六进制数十进制数

C语言中整数-8在内存中的存储形式为( ).1111111111111000100000000001000000000000001000

对于char cx=' \039';语句,正确的是( ).不合法cx的ASCII值是33cx的值为四个字符若int k=7,x=12;则能使值为5的表达式是(

).

x%=(k%=5)x%=(k-k%5)x%=k-k%5

为了计算s=10!(即10的阶乘),则s变量应定义

为( ).

int unsigned long

以下所列的C语言常量中,错误的是( ).0xFF 1.2e0.52L

假定x和y为double型,则表达式x=2,y=x+3/2

的值是( ) .

3.5000003 2.000000

设变量n为float型,m为int类型,则以下能实

现将n中的数值保留小数点后两位,第三位进

行四舍五入运算的表达式是( ).

n=(n*100+0.5)/100.0m=n*100+0.5,n=m/100.0n=n*100+0.5/100.0以下合法的赋值语句是( ).x=y=100d――x+y

下选项中不属于C语言的类型是( ).signed short int unsigned long int unsigned int

设以下变量均为int类型,则值不等于7的表达

式是( ).

(x=y=6,x+y,x+1)(x=y=6,x+y,y+1)(x=6,x+1,y=6,x+y) C语言的程序一行写不下时,可以( ).用逗号换行用分号换行在任意一空格处换行putchar ( )函数可以向终端输出一个( ).整型变量表达式值实型变量值字符串

执行下列程序片段时输出结果是( ).65535-1-32767

执行下列程序片段时输出结果是( ).

float x=-1023.012

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

printf("%10.3f",x);

1023.012, -1023.012-1023.012,-1023.0121023.012,-1023.012

已有如下定义和输入语句,若要求

a1,a2,c1,c2的值分别为10,20,A和B,当从第

一列开始输入数据时,正确的数据输入方式是

( ).

int a1,a2; char c1,c2;

scanf("%d%c%d%c",&a1,&c1,&a2,&c2);

10A 20B↙10 A 20 B↙10A20B↙

对于下述语句,若将10赋给变量k1和k3,将20赋给变量k2和k4,则应按( )方式输入数据.1020↙

1020↙

10 20↙

10 20↙

10,20↙

10,20↙

执行下列程序片段时输出结果是( ).

int x=13,y=5;

printf("%d",x%=(y/=2));

321

下列程序的输出结果是( ).

main ( )

{ int x=023;

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

}

171823

已有如下定义和输入语句,若要求

a1,a2,c1,c2的值分别为10,20,A和B,当从第

一列开始输入数据时,正确的输入方式是(

).

int a1,a2; char c1,c2;

scanf("%d%d",&a1,&a2);

scanf("%c%c",&c1,&c2);

1020AB↙10 20↙AB↙10 20 AB↙

执行下列程序片段时输出结果是( ).

int x=5,y;

y=2+(x+=x++,x+8,++x);

printf("%d",y);

131415

若定义x为double型变量,则能正确输入x值的

语句是( ).

scanf("%f",x);scanf("%f",&x);scanf("%lf",&x);

若运行时输入:12345678↙,则下列程序运行

结果为( ).

main ( )

{ int a,b;

scanf("%2d%2d%3d",&a,&b);

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

}

465795690

已知i,j,k为int型变量,若从键盘输

入:1,2,3<回车>,使I的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是( ).scanf("%2d%2d%2d",&i,

&j,&k);

scanf("%d_%d_%d",&i,&

j,&k);

scanf("%d,%d,%d",&i,&

j,&k);

若int x,y; double z;以下不合法的scanf 函数调用语句是( ).scanf("%d%lx,%le",&x,

&y,&z);

scanf("%2d*%d%lf",&x,

&y,&z);

scanf("%x%*d%o",&x,&y

);

有输入语

句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为

使变量 a的值为1,b的值为3,c的值为2,则正

确的数据输入方式是( ).

132↙1,3,2↙a=1 b=3 c=2↙

逻辑运算符两侧运算对象的数据类型( ).只能是0或1只能是0或非0正数只能是整型或字符型数据

下列表达式中,( )不满足"当x的值为偶数时

值为真,为奇数时值为假"的要求.

x%2==0!x%2!=0(x/2*2-x)==0以下程序片段.

int x=2,y=3;

printf( );

什么都不输出输出为:***x=2输出为:###y=2

能正确表示"当x的取值在[1,10]和

[200,210]范围内为真,否则为假"的表达式是( ).(x>=1) && (x<=10) &&

(x>=200) && (x<=210)

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

| (x>=200) | |

(x<=210)

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

(x>=200) && (x<=210)

C语言对嵌套if语句的规定是:else总是与 .其之前最近的if配对第一个if配对缩进位置相同的if配对

设:int a=1,b=2,c=3,d=4,m=2,n=2;执行

(m=a>b) && (n=c>d)后n的值为 .

120

下面( )是错误的if语句(设int x,a,b;)if (a=b) x++;if (a=

以下程序片段 .

main ( )

{ int x=0,y=0,z=0;

if (x=y+z) printf("***"); else

printf("###"); }有语法错误,不能通过编

输出:***

可以编译,但不能通过连

接,所以不能运行

对下述程序,( )是正确的判断. main ( )

{ int x,y;

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

if (x>y)

x=y;y=x;

else

x++;y++;

printf("%d,%d",x,y); }有语法错误,不能通过编

若输入3和4,则输出4和5若输入4和3,则输出3和4

若w=1,x=2,y=3,z=4,则条件表达式w

: y

432

下述表达式中,( )可以正确表示x≤0或x≥1

的关系.

(x>=1) | | (x<=0)x>=1 | x<=0x>=1 && x<=0下述程序的输出结果是( ).

main ( )

{ int a=0,b=0,c=0;

if (++a>0 | | ++b>0)

++c;

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

}

0,0,01,1,11,0,1

下述程序的输出结果是( ).

main ( )

{ int x=-1,y=4,k;

k=x++<=0 && !(y--<=0);

printf("%d,%d,%d",k,x,y);

}

0,0,30,1,21,0,3

下述程序的输出结果是( ).

main ( )

{ int x=1,y=0,a=0,b=0;

switch(x) {

case 1:switch (y) {

case 0 : a++ ; break ;

case 1 : b++ ; break ;

}

case 2:a++; b++; break;

case 3:a++; b++;

}

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

}

a=1,b=0a=2,b=1a=1,b=1

下述程序的输出结果是( ).

main ( )

{ int a,b,c;

int x=5,y=10;

a=(--y=x++) ? y : ++x ;

b=y++ ; c=x ;

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

}

5,5,65,6,66,6,6

当a=1,b=3,c=5,d=4时,执行完下面一段程序

后x的值是( ).

if (a

if (c

else

if (a

if (b

else x=3;

else x=6;

else x=7;

123

在下面的条件语句中(其中S1和S2表示C语言

语句),只有( )一个在功能上与其他三个语句不等价.if (a) S1; else S2;

if (a==0) S2; else

S1;

if (a!=0) S1; else

S2;

若int i=10;执行下列程序后,变量i的正确结

果是( ).

switch (i) {

case 9: i+=1 ;

case 10: i+=1 ;

case 11: i+=1 ;

default : i+=1 ;

}

101112

若有说明语句int i=5,j=4,k=6;float f;则

执行f=(i

的值为 ( ).

4.0

5.0

6.0

若有定义:int a=3,b=2,c=1;并有表达式:①

a%b,②a>b>c,③b&&c+1,④c+=1,则表达式值

相等的是 .

①和②②和③①和③下面程序段

int k=2;

while (k=0) {printf("%d",k);k--;}则下面描述中正确的是( ).while循环执行10次循环是无限循环

循环题语句一次也不执

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