当前位置:文档之家› C语言 第1-9章基本概念练习题ans(最全)

C语言 第1-9章基本概念练习题ans(最全)

C语言  第1-9章基本概念练习题ans(最全)
C语言  第1-9章基本概念练习题ans(最全)

第一单元(1-5章)基本概念练习题

一、单选选择(直接在正确的选项上打勾,每题)

1、下面关于C语言特点的描述,不正确的是( )。D

A、C语言兼有高级语言和低级语言的双重特点,执行效率高

B、C语言既可以用来编写应用程序,又可以用来编写系统软件

C、C语言是一种结构式模块化程序设计语言

D、C语言的可移植性较差

2、C语言规定,在一个源程序中,main函数的位置( )。B

A、必须在最开始

B、可以任意

C、必须在最后

D、必须在系统调用的库函数的后面

3、下列说法中正确的是( )。C

A、C程序书写时,不区分大小写字母

B、C程序书写时,一行只能写一个语句

C、C程序书写时,一个语句可分成几行书写

D、C程序书写时每行必须有行号

4、C语言编译程序的首要工作是( )。A

A、检查C语言程序的语法错误

B、检查C语言程序的逻辑错误

C、检查程序的完整性

D、生成目标文件

5、C语言程序经过连接以后生成的文件名的后缀为( )。C

A、.c

B、.obj

C、.exe

D、.cpp

6、以下关于算法的说法中,错误的是( )。D

A、一个算法应包含有限个步骤

B、在计算机上实现的算法是用来处理数据对象的

C、算法的目的是为了求解

D、算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现

7、算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性之一的是( )。C

A、确定性

B、有穷性

C、零个或多个输出

D、零个或多个输入

8、以下不属于结构化程序设计三种基本结构之一的是( )。B

A、顺序

B、递归

C、循环

D、选择

9、下列数据中,不合法的C语言实型数据是( )。C

A、0.123

B、123e3

C、2.1e3.5

D、789.0

10、若变量a、i已正确定义,且i已正确赋值,以下属于合法的C语句是( )。

A、a==1

B、++i;

C、a=a++=5;

D、a=int(i);

11、已有定义int a=6; 则执行语句a+=a-=a*a;后,a的值为( )。D

A、36

B、0

C、-24

D、-60

12、若有以下程序段,其输出结果是( )。B

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

c = ( a -= a - 5), (a -= 3,++b);

printf(“%d,%d,%d\n”,a, b, c);

A、0,0,-10

B、2,1,5

C、-10,-3,-10

D、3,3,-10

13、有以下定义:int i = 10, j = 1; 执行语句printf("%d,%d\n",i--, ++j); 后输出结果是( )。B

A、9,2

B、10,2

C、9,1

D、10,1

14、字符串"\t\"\065\xff\n"的长度为( )。A

A、5

B、14

C、8

D、输出项不合法,无正常输出

15、已有定义:char c;执行赋值语句c=('z'-'a')/2+'A';后,变量c的值为( )。A

A、M

B、N

C、O

D、Q

16、以下4个选项中,不能看做一条语句的是( )。D

A、;

B、a=5,b=2.5,c=3.6;

C、if(a<5);

D、if(b!=5)x=2;y=6;

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

A、a&&b

B、a<=b

C、a||b+c&&b-c

D、!((a

18、若有定义语句int a, b;double x;则下列选项中没有错误的是( )。C

A、switch(x%2)

B、switch((int)x/2.0)

{ case 0: a++; break; { case 0: a++; break;

case 1: b++; break; case 1: b++; break;

default : a++; b++; default : a++; b++;

} }

C、switch((int)x%2)

D、switch((int)(x)%2)

{ case 0: a++; break; { case 0.0: a++; break;

case 1: b++; break; case 1.0: b++; break;

default : a++; b++; default : a++; b++;

} }

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

main()

{ int x,y,z;

x = 0; y = 2; z = 3;

switch(x)

{ case 0: switch( y == 2)

{ case 1: printf("*"); break;

case 2: printf("%"); break;

}

case 1: switch( z )

{ case 1: printf("$");

case 2: printf("*"); break;

default : printf("#");

}

}

}

A、*

B、%

C、$*

D、*#

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

main()

{ int a=45,b=40,c=50,d;

d=a>=30?b:c;

switch(d)

{ case 30 : printf("%d",a);

case 40 : printf("%d",b);

case 50 : printf("%d",c);break;

default : printf("#");

}

}

A、304050#

B、304050

C、4050

D、#

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

main()

{ int a, b, c, x=35;

a =

b =

c = 0; x = 35;

if(!a)

x--;

else if(b) ;

if(c)

x = 3;

else

x = 4;

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

}

A、35

B、4

C、3

D、34

22、当c的值不为0时,能正确将c的值赋给变量a和b的选项是( )。C

A、c=b=a

B、(a=c)||(b=c)

C、(a=c)&&(b=c)

D、a=c=b

23、若变量已定义为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是( )。B

A、10<回车>22<回车>33<回车>

B、10.0,22.0,33.0<回车>

C、10.0<空格>22.0 <空格>33.0<回车>

D、10 2233<回车>

24、下面程序段的输出结果是( )。A

int x=1,y=10;

if( x=y ) printf("AAA");

else printf("BBB");

A、AAA

B、BBB

C、AAABBB

D、不确定

25、下面程序段的输出结果是( )。A

for (x=9 ;x>0;x--)

if (x%3!=0)

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

continue;

}

A、741

B、852

C、963

D、875421

26、对以下循环:for(a=0,b=0;(b!=123)&&(a<=4);a++);说法正确的是( )。D

A、无限循环

B、循环次数不定

C、执行4次

D、执行5次

27、在下列程序中,while循环的循环次数是( ) 。D

main( )

{ int i=0;

while(i<10)

{ if(i<1) continue;

if(i==5) break;

i++;

}

......

}

A、1

B、10

C、6

D、死循环、不能确定次数

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

main()

{ int i=0,a=0;

while(i<20)

{ for(;;)

{ if((i%10)= =0)

break;

else i--;

}

i+=11;

a+=i;

}

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

}

A、21

B、32

C、33

D、11

29、当输入为"quert?"时,下面程序的执行结果是( )。C

main()

{ while(putchar(getchar())!='?'); }

A、quert

B、Rvfsu

C、quert?

D、rvfsu?

30、以下能正确计算1×2×3×…×10的程序段是( )。

A、do{i=1;s=1; s=s*i; i++; }while(i<=10);

B、do{i=1;s=0; s=s*i; i++; }while(i<=10);

C、i=1;s=1;do{s=s*i; i++; }while(i<=10);

D、i=1;s=0;do{s=s*i; i++; }while(i<=10);

二、绘制NS算法流程图

(1)输入10个数,求其中的最大值。(2) 输入2个数,求它们的最大公约数。

第6章-数组基本概念练习题

1、在C语言中,引用数组元素时,其数组下标的数据类型允许是( )。

A、float

B、int

C、double

D、任何类型

答案:B

2、以下对一维整型数组a的正确定义是( )。

A、int a(10);

B、int n=10,a[n];

C、int n; scanf(“%d”,&n); int a[n];

D、#define SIZE 10

int a[SIZE];答案:D

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

A、int a[10]=(0,0,0,0,0);

B、int a[10]={ };

C、int a[]={0};

D、int a[10]= "abcdefg";

答案:C

4、不能给数组的首元素赋值的语句是( )。

A、int a[2]={1};

B、int a[2]={1*2};

C、int a[2];scanf (“%d”,a);

D、int a[2];a[1]=1;

答案:D

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

main()

{ int a[6],i;

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

{ a[i]=9*(i-2+4*(i>3))%5; printf("%2d",a[i]); }

}

A、-4 0 4 0 4

B、-4 0 4 0 3

C、-4 0 4 4 3

D、-4 0 4 4 0

答案:C

6、下列定义正确的是( )。

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

B、int b[]={2,5};

C、int a(10);

D、int 4e[4];

答案:B

7、若有说明int a[][4]={0,0};则下列叙述不正确的是( )。

A、数组a的每个元素都可以得到初值0。

B、二维数组a的第一维的大小为1。

C、数组a的行数为1,但是有4个元素。

D、只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值

答案:D

8、设有char str[10];下列语句正确的是( )。

A、scanf("%s",&str);

B、printf("%c",str);

C、printf("%s",str[0]);

D、printf("%s",str);

答案:D

9、下列说法正确的是( )。

A、在C语言中,可以定义元素个数可变的数组。

B、在C语言中,数组元素的个数可以不确定,允许随机变动。

C、在C语言中,数组元素的数据类型可以不一致。

D、在C语言中,定义了一个数组后,就确定了它所容纳的具有相同数据类型元素的个数。

答案:D

10、假设array是一个有10个元素的整型数组,则下列写法中正确的是( )。

A、array[0]=10;

B、array=0;

C、array[10]=0;

D、array[-1]=0;

答案:A

11、分析下列程序运行后,输出的结果是( )。

main()

{ int n[3],i,j,k;

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

n[i]=0;

k=2;

for(i=0;i

for(j=0;j

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

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

}

A、2

B、1

C、0

D、3

答案:D

12、若有以下定义:

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

char b= ‘a’, c, d, e;

则下面表达式中数值为2的是( )。

A、a [3]

B、a [e–c]

C、a [d-b]

D、a [e-b]

答案:A

13、下面几个字符串处理表达式中能用来把字符串str2连接到字符串str1后的一个是( )。

A、strcat(str1,str2);

B、strcat(str2,str1);

C、strcpy(str1,str2);

D、strcmp(str1,str2);

答案:A

14、设有两字符串“Beijing”、“China”分别存放在字符数组str1[20],str2[20]中,下面语句中能把“China”连接到“Beijing”之后的为( )。

A、strcpy(str1,str2);

B、strcpy(str1, “China”);

C、strcat(str1,“China”);

D、strcat(“Beijing”,str2);

答案:C

15、若有如下定义:,则下列语句的输出结果是( )。

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

for (i=0;i<=2;i++) printf(“%d”,a[i][2-i]);

A、3 5 7

B、3 6 9

C、1 5 9

D、1 4 7

答案:A

16、下列字符串赋值语句中,不能正确把字符串C program赋给数组的语句是( )。

A、char a[]={‘C’,‘’,‘p’,‘r’,‘o’,‘g’,‘r’,‘a’,‘m’};

B、char a[10]; strcpy(a, “C program”);

C、char a[10]; a= “C program”;

D、char a[10]={ “C program”};

答案:C

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

A、int a[2] [3] = {0};

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

C、int a[2][3]={{1,2},{3,4},{5,6}};

D、int a[ ][3]={1,2,3,4,5,6};

答案:C

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

char c[5]={‘a’,‘b’,‘\0’,‘c’,‘\0’};

printf(“%s”,c); }

A、‘a’‘b’

B、ab\0c\0

C、ab c

D、ab

答案:D

19、判断字符串a和b是否相等,应当使用( )。

A、if (a= =b)

B、if (a=b)

C、if (strcpy(a,b))

D、if(strcmp(a,b))

答案:D

20、有字符数组a[80]和b[80],则正确的输出语句是( )。

A、puts (a,b);

B、printf(“%s,%s”,a[],b[]);

C、putchar(a,b);

D、puts(a);puts(b);

答案:D

21、若有如下定义和语句,则输出结果是( )。

char s[12]= “a book!”;

printf(“%d”,strlen(s) );

A、12

B、8

C、7

D、6

答案:C

22、以下能对二维数组a进行正确说明和初始化的语句是( )。

A、int a( )(3)={ ( 1, 0, 1 ), ( 2, 4, 5 ) };

B、int a[2][]={ { 3, 2, 1 }, { 5, 6, 7 } };

C、int a[][3]={ { 3, 2, 1 }, { 5, 6, 7 } };

D、int a(2)( )={ ( 1, 0, 1 ), ( 2, 4, 5 ) };

答案:C

23、若有说明:int a[3][4] = {0};则下面正确的叙述是( )。

A、只有元素a[0][0]可以得到初值0

B、此说明语句不正确;

C、数组a中每个元素均可得到初值0

D、数组a每个元素均可得到初值,但不一定为0

答案:C

第7章-函数基本概念练习题

1.有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5)); 该函数调用语句中,含有的实参个数是。A

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

2.有如下程序,该程序的输出的结果是。

int runc(int a,int b)

{ return(a+b); }

main( )

{ int x=2,y=5,z=8,r;

r=func(func(x,y),z);

printf(“%\d\n”,r); }

A) 12 B) 13 C) 14 D) 15

3.有如下程序,该程序的输出结果是。

long fib(int n)

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

else return(2); }

main( )

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

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

4.有以下程序,执行后输出的结果是。

void f(int x,int y)

{ int t;

if(x

main()

{ int a=4,b=3,c=5;

f(a,b); f(a,c); f(b,c);

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

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

5.以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。在下划线处应填入的是。#define N 10

void arrin(int x[N])

{ int i=0;

while(i

scanf("%d",_________); }

A) x+i B) &x[i+1] C) x+(i++) D) &x[++i]

6.有以下程序,执行后输出结果是。

main()

{ char s[]="\n123\\";

printf("%d,%d\n",strlen(s),sizeof(s)); }

A) 赋初值的字符串有错B) 6,7 C) 5,6 D) 6,6

7.以下叙述中正确的是。

A) 全局变量的作用域一定比局部变量的作用域范围大

B) 静态(static)类别变量的生存期贯穿于整个程序的运行期间

C) 函数的形参都属于全局变量

D) 未在定义语句中赋初值的auto变量和static变量的初值都是随机值

8.以下程序执行后输出的结果是。

main()

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

d=f1(a,b); d=f1(d,c);

e=f2(a,b); e=f2(e,c);

f=a+b+c-d-e;

printf("%d,%d,%d\n",d,f,e); }

f1(int x, int y)

{ int z; z=(x>y)?x:y; return(z); }

f2(int x, int y)

{ int z; z=(x

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

9.以下程序的输出结果是。

int f(void)

{ static int i = 0;

int s =1;

s += i;

i++;

return (s); }

main()

{ int i, a = 0;

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

printf(“%d\n”, a); }

A) 1 B) 0 C) 非0的数D) –1

10.以下C语言中,对函数不正确的描述是。

A) 当用数组名作形参时,形参数组改变可使实参数组随之改变

B) 允许函数递归调用

C) 函数形参的作用范围只是局限于所定义的函数内

D) 函数说明必须在主调函数之前

11.以下所列的各函数首部中,正确的是。

A) void play(var :Integer,var b:Integer) B) void play(int a,b)

C) void play(int a,int b) D) Sub play(a as integer,b as integer)

12.以下叙述中不正确的是。

A) 在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。

B) 在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。

C) 在C中,外部变量的隐含类别是自动存储类别。

D) 在C中,函数形参可以说明为register变量。

13.以下对C语言函数的有关描述中,正确的是。

A) 在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B) C函数既可以嵌套定义又可以递归调用

C) 函数必须有返回值,否则不能使用函数

D) C程序中有调用关系的所有函数必须放在同一个源程序文件中

14.一个数据类型为void的函数中可以没有return语句,那么函数的被调用时。

A)没有返回值B)返回一个系统默认值C)返回值由用户临时决定D)返回一个不确定的值

15.在下面的函数声明中,存在着语法错误的是。

A)BC(int a, int);B)BC(int,int);C)DC(int,int=5);D)BC(int x, int y);

16.以下函数值的类型是。

fun ( float x )

{ float y;

y= 3*x-4;

return y;

}

A)int B)不确定C)void D)float

17. 下面程序的输出结果是:。

int m=13;

int fun( int x, int y)

{ int m=3;

return( x*y-m); }

main( )

{ int a=7,b=5;

printf(“%d\n”, fun(a,b)/m); }

A)1 B)2 C)7 D)10

18.若有说明语句:static int a[3][4]={0}; 则下面叙述正确的是。

A)只有a[0][0]元素可得到初值0;B)数组a中每个元素均可得到初值0。

C)数组a中各元素都可得到初值,但值不一定为0;D)此说明语句不正确

19. 以下不正确的说法为。

A)在不同函数中可以使用相同名字的变量。

B)形式参数是局部变量。

C)在函数内定义的变量只在本函数范围内有效。

D)在函数内的复合语句中定义的变量在本函数范围内有效。

20. 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为。

A)自动(auto)B)静态(static、C)外部(extern)D)寄存器(register)

21. 下面程序的输出结果是:。

int f( int a)

{ int b=0;

static int c=3;

b++; c++;

return (a+b+c); }

main( )

{ int a=2, i;

for(i=0;i<3;i++) printf(“%4d”,f(a) );}

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

22. 若使用一维数组名作函数实参,则以下正确的说法是。

A)与其对应的被调用函数的形参可以为同类型的指针变量。

B)与其对应的被调用函数的形参必须为同类型的数组。

C)与其对应的被调用函数的形参必须明确给出数组的长度。

D)实参数组名与形参数组名必须一致。

23. 有如下程序, 该程序的输出的结果是。

int runc(int a,int b)

{ return(a+b); }

main( )

{ int x=2,y=5,z=8,r;

r=func(func(x,y),z);

printf(“%d\n”,r); }

A)12 B)13 C)14 D)15

24. 有如下程序, 该程序的输出结果是。

long fib(int n)

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

else return(2); }

main( )

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

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

25. 有以下程序,执行后输出的结果是。

void f(int x,int y)

{ int t;

if(x

}

main()

{ int a=4,b=3,c=5;

f(a,b); f(a,c); f(b,c);

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

}

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

26. 以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值,在下划线处应填入的。

#define N 10

void arrin(int x[N])

{ int i=0;

while(i

scanf("%d",_________); }

A)x+i B、)&x[i+1] C)x+(i++) D)&x[++i]

27. 以下叙述中正确的是。

A)全局变量的作用域可以扩展到所有文件。

B)静态(statiC)类别变量的生存期贯穿于整个程序的运行期间。

C)函数的形参都属于全局变量。

D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值

28. 以下程序的输出结果是。

int f()

{ static int i = 0; int s =1;

s += i;

i++;

return (s); }

main()

{ int i, a = 0;

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

printf(“%d\n”, a);}

A)1 B)0 C)15 D)–1

29. 有如下程序段,运行的结果为。

int f(int a,int b);

main( )

{ int i=2,p,k=1;

p=f(i,++k);

printf(“%d, %d”,k,p); }

int f(int a,int b)

{ int c;

if(a>b) c=1;

else if(a==b) c=0;

else c=-1;

return(c); }

A)1,0 B)2,0 C)2,-1 D)1,1

30. 以下函数值的类型是。

fun ( float x )

{ float y;

y= 3*x-4;

return y; }

A)int B)不确定C)void D)float

第8章指针基本概念练习题

1.有以下程序:编译时出现错误,以下叙述中正确的是。

main()

{ char a,b,c,*d;

a='\'; b='\xbc';c='\0xab'; d="\0127";

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

}

A)程序中只有a='\';语句不正确。B)b='\xbc';语句不正确。

C)d="\0127";语句不正确。D)a='\';和c='\0xab';语句都不正确。

2.若有如下一些定义和语句,则下列四个选项中错误的语句是。

int a=4,b=3,*p,*q,*w;

p=&a; q=&b; w=q; q=NULL;

A) *q=0; B) w=p; C) *p=&a; D) *p=*w;

3. 对于基类型相同的两个指针变量之间,不能进行的运算是。

A)< B) = C) + D) –

4.有以下程序,执行后输出结果是。

main()

{ char *s[]={"one","two","three"},*p;

p=s[1];

printf("%c,%s\n",*(p+1),s[0]);

}

A) n,two B) t,one C) w,one D) o,two

5.有以下程序,执行后输出结果是。

main()

{ int x[8]={8,7,6,5,0,0},*s;

s=x+3;

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

}

A) 随机值B) 0 C) 5 D) 6

6.有以下程序,执行后输出结果是。

main()

{ char str[]="xyz",*ps=str;

while(*ps) ps++;

for(ps--;ps-str>=0;ps--) puts(ps);

}

A) yz B) z C) z D) x

xyz yz yz xy

xyz xyz

7. 有如下说明int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是。

A) *p+9 B) *(p+8) C) *p+=9 D) p+8

8. 有如下程序段,执行该程序段后,a的值为。

int *p,a=10,b=1;

p=&a; a=*p+b;

A) 12 B) 11 C) 10 D) 编译出错

9. 若有说明:int i, j , *p=&i ;则下面语句中与i =j;等价的语句是:。

A)*p=*&j ; B)i = *p C)i=&j ; D)i=**p

10. 若有如下语句: int *p1,*p2;则其中int所指的是。

A)p1的类型B)*p1和*p2的类型

C)p2的类型D)p1和p2所能指向变量的类型

11. 执行以下程序后,a的值为。

int *p, a = 10, b=1;

p = &a;

a = *p*b;

A) 12 B) 编译出错C) 10 D) 1

12. 已定义:int a[9],*p=a;并在以后的语句中未改变p的值,则不能表示a[1]地址的表达式是。

A) p+1 B) a+1 C) a++ D) ++p

13. 以下程序段的输出结果是。

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

printf(“%d”, *--p);

A) 非法B) a[4]的地址C) 3 D) 5

14. 若有以下定义和语句,则输出结果是。

int **pp,*p,a=10,b=20;

pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);

A)10,20 B)10,10 C)20,10 D)20,20

15. 若有以下定义和语句,则输出结果为。

char *sp=”\t\b\\\0English\n”;

printf(“%d”,strlen(sp));

A)12 B)3 C)17 D)13

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

main()

{ int a=5,*p1,**p2;

p1=&a,p2=&p1;

(*p1)++;

printf(“%d\n”,**p2);

}

A) 5 B) 4 C) 6 D) 不确定

17. 设有:void f1(int * m,long n);int a;long b;则以下函数调用合法的是。

A)f1(a,b);B)f1(&a,b);C)f1(a,&b);D)f1(&a,&b);

第9章-结构体基本概念练习题

1、设有如下定义,则对data中的a成员的正确引用是( )。

struct sk

{ int a; float b; } data,*p=&data;

A)(*p).data.a B)(*p).a C)p->data.a D)p.data.a

2、当定义一个结构体变量时,系统分配给它的内存容量是( )。

A)各成员所需内存量的总和B)结构中第一个成员所需内存量

C)成员中占内存量最大者所需的容量D)结构中最后一个成员所需内存量

3、以下程序运行后的输出结果是( )。

struct STU

{ char num[10]; float score[3]; };

main()

{ struct STU s[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p=s;

int i;

float sum=0;

for (i=0;i<3;i++) sum=sum+p->score[i];

printf("%6.2f\n",sum);

}

A)260.00 B)270.00 C)280.00 D)285.00 4、以下程序运行后的输出结果是( )。

struct STU

{ char num[10]; float score[3]; };

main()

{ struct STU s[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}};

int i;float sum=0;

for (i=0;i<3;i++) sum=sum+s[i].score[i];

printf("%6.2f\n",sum);

}

A)260.00 B)270.00 C)280.00 D)285.00 5、若程序中有下面的说明和定义:

struct stt

{ int x;

char b;

}

struct stt a1,a2;

则会发生的情况是( ) 。

A)程序将顺利编译、连接、执行。B)编译出错。

C)能顺利通过编译、连接,但不能执行。D)能顺利通过编译,但连接出错。

6、设有如下说明语句,则以下叙述不正确的是( )。

struct stu

{ int a;

float b;

} stutype;

A)struct是结构体类型的关键字B)struct stu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名

1-9章基本概念练习题参考答案

第1-5章

注:第21题的B、D项重复了,将D项改为34

第6章数组

第7章函数

注:第23、25、27、30题分别与第2、4、7、16题相同第8章指针

第9章结构体

C语言程序设计第二章-常用数据类型

第二章常用数据类型 【学习目标】 本章将学习一些基本的程序概念,如程序结构、标识符、章的学习要 关键字和注释等。本点包括如下几点: (1)了解C语言的基本结构。 (2)分号、块和空白的使用。 (3)标识符的约束规则。 (4)C关键字。 (5 )直接量的认识。 (6)注释的使用。 【学习导航】 本章的在整个课程中的位置如图2-1所示。 图2-1 本章学习导航

2.1 C语言基本程序结构 任何一种程序设计语言都具有特定的语法规则和规定的表达方法。一个程序只有严格按 照语言规定的语法和表达方式编写,才能保证编写的程序在计算机中能正确地执行,同时也 便于阅读和理解。为了了解C语言的基本程序结构,请看【课堂案例2-1】。 【课堂案例2-1】在控制台输出“你好”。 【案例目标】会使用Xcode编辑器实现字符串输出 【案例知识要点】C语言的程序结构、基本输出语句 【案例程序代码】hello.c 1#i nclude 2 2mai n() 3{ 4printf(你好”); 5} 【案例代码说明】 第1行的作用是进行相关的预处理操作。include成为文件包含命令,<>里的内容称为 头文件。头文件一般的扩展名为.ho stdio就是指“ sta ndard in put & output"(标准输入输出),所以,源代码中如用到标准输入输出函数时,就要包含这个头文件。 第2行是一个空行。空行不会影响程序的功能。空行起着分隔程序段落的作用,适当使用空行将使程序的布局更加清晰,提高程序的可读性。空行不会浪费内存,所以不要舍不得 用空行。一般建议在头文件后插入一个空行。 第3行声明了一个main函数,main是函数名。关于函数的详细介绍在第七章。main 函数具有特殊意义,它是程序执行的入口,也就是说,程序都是从main函数开始执行的。 第4—6行定义了main函数的内容,称为函数体。以“{”开始,以“ }”结束。 第5行调用了在stdio.h中的格式化输出函数printf,其作用是向终端(显示器、控制台)输出字符。在这一行结束时,需要加上(;)。在C语言中,一行代码由分号(;)终止。 图2-2是程序hello.c的执行结果: 图2-2 Simple.c程序输出结果 知识链接一编程规范 在hello.c程序中,要注意以下的编程规范: 【规则1-1】用#“clude 格式来引用标准库的头文件。 【规则1-2】包含头文件时一般不使用绝对路径名。 【规则1-3】在头文件和main函数之间使用空行隔开。 【规则1-4】函数体里面的内容(即{ }里面的内容),需要水平缩进四个空格。如第5行所示。hello.c

C语言基础知识_测试题

C语言程序设计基础测试题 一、单选 [1] 下面叙述中错误的是____。 A. 复合语句中定义的函数只在该复合语句中有效 B. return( )语句中的括号中,可以是变量,常量或有确定值的表达式 C. 形式参数也是局部变量 D. 主函数中定义的变量在整个程序中都是有效的 [2]下列说法中正确的是____。 A.带参数的宏定义中的参数是没有类型的 B.宏展开将占用程序的运行时间 C.宏定义命令是C语言中的一种特殊语句 D.使用#include命令包含的头文件必须以“.h"为后缀 [3.] 若函数的形参为一维数组,则下列说法中正确的是____。 A.调用函数时的对应实参必为数组名 B.形参数组可以不指定大小 C.形参数组的元素个数必须等于实参数组的元素个数 D.形参数组的元素个数必须多于实参数组的元素个数 [4]. 系统的标准输出设备是____。 A.键盘 B.硬盘 C.内存 D.显示器 [5] 下面叙述中正确的是____。 A.全局变量在定义它的文件中的任何地方都是有效的 B.全局变量在程序的全部执行过程中一直占用内存单元 C. C语言的switch语句中case后可为常量或表达式或有确定值的变量及表达式 D. 说明函数时必须明确其参数类型和返回类型 [6]. C程序的基本结构单位是____。 A.文件 B.语句 C.函数 D.表达式 [7] 对于定义,char *aa[2]={"abcd","ABCD"},选项中说法正确的是____。 A.aa数组元素的值分别是"abcd"和"ABCD" B.aa是指针变量,它指向含有两个数组元素的字符型一维数组 C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D.aa数组的两个元素中各自存放了字符'a'和'A'的地址 [8]. 任何一个C语言的可执行程序都是从____开始执行的。 A.程序中的第一个函数 B.main( )函数的入口处

C语言 第1-9章基本概念练习题ans(最全)

第一单元(1-5章)基本概念练习题 一、单选选择(直接在正确的选项上打勾,每题) 1、下面关于C语言特点的描述,不正确的是( )。D A、C语言兼有高级语言和低级语言的双重特点,执行效率高 B、C语言既可以用来编写应用程序,又可以用来编写系统软件 C、C语言是一种结构式模块化程序设计语言 D、C语言的可移植性较差 2、C语言规定,在一个源程序中,main函数的位置( )。B A、必须在最开始 B、可以任意 C、必须在最后 D、必须在系统调用的库函数的后面 3、下列说法中正确的是( )。C A、C程序书写时,不区分大小写字母 B、C程序书写时,一行只能写一个语句 C、C程序书写时,一个语句可分成几行书写 D、C程序书写时每行必须有行号 4、C语言编译程序的首要工作是( )。A A、检查C语言程序的语法错误 B、检查C语言程序的逻辑错误 C、检查程序的完整性 D、生成目标文件 5、C语言程序经过连接以后生成的文件名的后缀为( )。C A、.c B、.obj C、.exe D、.cpp 6、以下关于算法的说法中,错误的是( )。D A、一个算法应包含有限个步骤 B、在计算机上实现的算法是用来处理数据对象的 C、算法的目的是为了求解 D、算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现 7、算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性之一的是( )。C A、确定性 B、有穷性 C、零个或多个输出 D、零个或多个输入 8、以下不属于结构化程序设计三种基本结构之一的是( )。B A、顺序 B、递归 C、循环 D、选择 9、下列数据中,不合法的C语言实型数据是( )。C A、0.123 B、123e3 C、2.1e3.5 D、789.0 10、若变量a、i已正确定义,且i已正确赋值,以下属于合法的C语句是( )。 A、a==1 B、++i; C、a=a++=5; D、a=int(i); 11、已有定义int a=6; 则执行语句a+=a-=a*a;后,a的值为( )。D A、36 B、0 C、-24 D、-60 12、若有以下程序段,其输出结果是( )。B int a = 0, b = 0, c = 0; c = ( a -= a - 5), (a -= 3,++b); printf(“%d,%d,%d\n”,a, b, c); A、0,0,-10 B、2,1,5 C、-10,-3,-10 D、3,3,-10 13、有以下定义:int i = 10, j = 1; 执行语句printf("%d,%d\n",i--, ++j); 后输出结果是( )。B A、9,2 B、10,2 C、9,1 D、10,1 14、字符串"\t\"\065\xff\n"的长度为( )。A A、5 B、14 C、8 D、输出项不合法,无正常输出 15、已有定义:char c;执行赋值语句c=('z'-'a')/2+'A';后,变量c的值为( )。A

C语言第二章习题带答案

1.C语言中的简单数据类型包括( B )。 A.整型、实型、逻辑型B.整型、实型、字符型 C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型2.在C语言中,错误的short类型的常数是( A )。 A.32768 B.0 C.037 D.0Xaf 3.下列常数中不能作为C的常量的是( D )。 A.0x45 B.2.5e-2 C.3e2 D.0582 4.short类型的数据长度为2个字节,则unsigned short类型数据的取值范围是( B )。 A.0至255 B.0~65535 C.-32768~32767 D.-256~255 5.下面4个选项中,均是合法转义字符的选项是( A )。 A.'\'','\\','\n' B.'\','\017','\' C.'\018','\f','xab' D.'\\0,'101','x1f 6.在C语言中,数字029是一个( D )。 A.八进制数B.十六进制数 C.十进制数D.非法数 7.下列可以正确表示字符型常数的是( B )。 A."a" B.'\t' C."\n" D.297 8.以下( C )是错误的转义字符。 A.'\\' B.'\'' C.'\81' D.'\0' 9.C语言中short类型的变量a的值为-8,则a在内存中的存储形式是( A )。 A.1111 1111 1111 1000 B.100000000000 1000 C.000000000000 1000 D.1111 1111 1111 0111 10.将字符g赋给字符变量c,正确的表达式是( C )。 A.c="g" B.c=101 C.c='\147' D.c='0147' 11.字符串"\\\22a,0\n"的长度是( C )。 A.8 B.7 C.6 D.5 12.为求出s=10!的值,则变量s的类型应当为( C )。 A.short B.unsigned short C.long D.以上三种类型均可13.已知:unsigned short x=65535;,则执行以下语句输出是( D )。 printf("%d\n", x); A.65535 B.1 C.无定值D.-1 14.下面4个选项中,均是合法整型常量的选项是( A )。 A.160,-0xffff,011 B.-0xcdf,01a,0xe C.-01,986,012,0668 D.-0x48a,2e5,0x 15.下面4个选项中,均是不合法的整型常量的选项是( D )。 A.--0f1,-0xffff,0011 B.-0Xcdf,01a,0xe C.-018,999,5e2 D.-0x48eg,-068,03f 16.下面4个选项中,均是合法浮点数的选项是( B )。 A.+1e+1,5e-9.4,03e2 B.-.60,12e-4,-8e5 C.123e,1.2e-.4,+2e-1 D.-e3,.8e-4,5.e-0

年C语言程序设计基础期末考试试卷‘B’及答案

年C语言程序设计基础期 末考试试卷‘B’及答案 The following text is amended on 12 November 2020.

一、单项选择题 1. 在C语言中,下面字符串能用作变量名的是( )。 A、a+b B、auto C、2-and D、a2 2. 若double x=2,y;则执行y=x+3/2;后,y的值是( )。 A、 B. C. D. 3 3. 下列关于C语言中字符常量与字符串常量的叙述中,错 误的是( )。 A、字符常量是用单撇号括起来的一个字符 B、空格字符也可用作字符常量 C、字符串常量是用单撇号括起来的一个字符序列 D、字符串常量是用双撇号括起来的一个字符序列 4. 若有以下变量说明和数据的输入方式,则正确的输入语 句为( )。

变量说明:float x1,x2; 数据的输入方式:<回车> <回车> A、scanf(“%f,%f”,&x1,&x2); B、scanf(“%f%f”,&x1,&x2); C、scanf(“%,%”,&x1,&x2); D、scanf(“%%”,&x1,&x2); 6. 在一个源文件中定义的全局变量的作用域为()。 A. 本文件的全部范围 B. 从定义该变量开始至本文件结束 C. 本函数的全部范围 D. 本程序的全部范围

7. 当调用函数时,实参是一个数组名,则向函数传送的是( )。 A、数组的长度 B、数组的首地址 C、数组每一个元素的地址 D、数组每个元素中的值 8.若j为整型变量,则下面while循环( )。 j=10; while(j!=0) j=j-1; A、执行0次 B、执行1次 C、执行10次 D、执行无限次 9. 在while(x)语句中的x与下面条件表达式等价的 是:( )。 A、x!=0 B、 x==1 C、x!=1 D、x==0 10. 以下对C语言函数的描述中,正确的是( )。 A、调用函数时,参数可以是表达式

《明解C语言》第2章 运算和数据类型练习题答案

【个人观点】 练习2-1 #include int main(void) { int no1,no2; printf("请输入两个整数:"); scanf("%d%d",&no1,&no2); printf("前者是后者的%.0f%%\n",((double)no1/ no2) * 100); return (0); } 【note】(1)no1/ no2是整数,因此要对其中一个浮点化,使得该结果为小数;(2)((double)no1/ no2) * 100的结果是:小数点后的位数为0 练习2-2 #include int main(void) { int vx,vy; puts("请输入两个整数。"); printf("整数vx:");scanf("%d",&vx); printf("整数vy:");scanf("%d",&vy); printf("它们的和是%d,积是%d\n",vx + vy,vx * vy); return (0); } 练习2-3 #include int main(void) { double no; puts("请输入一个实数:"); scanf("%lf",&no); 1

printf("您输入的实数是%f\n",no); return (0); } 练习2-4 #include int main(void) { int n1,n2,n3,n4; double d1,d2,d3,d4; n1 = 5 / 2; n2 = 5.0 / 2.0; n3 = 5.0 / 2; n4 = 5 / 2.0; d1 = 5 / 2; d2 = 5.0 / 2.0; d3 = 5.0 / 2; d4 = 5 / 2.0; printf("n1 = %d\n",n1); printf("n2 = %d\n",n2); printf("n3 = %d\n",n3); printf("n4 = %d\n",n4); printf("d1 = %f\n", d1); printf("d2 = %f\n",d2); printf("d3 = %f\n",d3); printf("d4 = %f\n",d4); return (0); } 练习2-5 #include int main(void) { int no1,no2; printf("请输入两个整数:"); 2

C语言基本选择题及参考答案

C语言基本选择题及参考 答案 The pony was revised in January 2021

计算机程序设计基础(C语言) 单项选择练习题 一、基本概念 1.C语言程序是由C构成的。 A)一些可执行语言B)main函数C)函数D)包含文件中的第一个函数2.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 3.C语言程序从C开始执行。 A)程序中第一条可执行语句?B)程序中第一个函数 C)程序中的main函数?D)包含文件中的第一个函数 4.C语言程序从main()函数开始执行,所以这个函数要写在_D___。 A)程序文件的开始B)程序文件的最后 C)它所调用的函数的前面D)程序文件的任何位置 5、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main()函数中定义

C、C语言程序总是从main()函数开始执行 D、C语言程序中的main()函数必须放在程序的开始部分 6.下列方法中错误的是(D)。 A.主函数可以分为两个部分:主函数说明部分和主函数体。 B.主函数可以调用任何非主函数的其它函数。 C.任何非主函数可以调用其它任何非主函数。 D.程序可以从任何非主函数开始执行。 7.下列说法错误的是:(B) A.C程序运行步骤是编辑、编译、连接、执行。 B.C语言的变量名必须用小写,常量用大写。 C.C语言的三种基本结构是顺序、选择、循环。 D.C程序一定由函数构成的。 8.下列关于C语言的说法错误的是(B)。 A)C程序的工作过程是编辑、编译、连接、运行 B)C语言不区分大小写。 C)C程序的三种基本结构是顺序、选择、循环

C语言-基本选择题

计算机程序设计基础(C语言) 单项选择练习题 说明:带*号的对非信息学院的同学不作要求。 一、基本概念 1. C语言程序是由构成的。 A)一些可执行语言 B)main函数 C)函数 D)包含文件中的第一个函数2.()是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 3.C语言程序从开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数 4.C语言程序从main()函数开始执行,所以这个函数要写在___。 A) 程序文件的开始 B) 程序文件的最后 C) 它所调用的函数的前面 D) 程序文件的任何位置 5、以下说法中正确的是()。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 6. 下列方法中错误的是()。 A.主函数可以分为两个部分:主函数说明部分和主函数体。 B.主函数可以调用任何非主函数的其它函数。 C.任何非主函数可以调用其它任何非主函数。 D.程序可以从任何非主函数开始执行。 7. 下列说法错误的是:() A.C程序运行步骤是编辑、编译、连接、执行。 B.C语言的变量名必须用小写,常量用大写。 C.C语言的三种基本结构是顺序、选择、循环。 D. C程序一定由函数构成的。 8.下列关于C语言的说法错误的是()。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 9. 系统默认的C语言源程序扩展名为.C,需经过之后,生成.exe文件,才

C语言考试试题基础版

一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与’A ’是相同的 B. 字符串是常量,字符是变量 C. “A ”与’A ’是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 D. 语句的书写对程序的运行不起作用,因此可以随便写都可以 7. 以下各标识符中,合法的用户标识符组为 。 A. PAd ,P#d ,b-b ,abc ,_0123,ssiped B. cin ,a10,CPP ,float ,del_word ,signed C. void ,max ,hiy ,,list ,*jer if (x>y) {z=x; s=z*z;} else {z=y;s=1/(z*z);} if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);

C语言第1 9章基本概念练习题ans最全

第一单元( 1-5 章)基本概念练习题 一、单选选择(直接在正确的选项上打勾,每题) 1、下面关于 C 语言特点的描述,不正确的是 ( )。 D A 、 C 语言兼有高级语言和低级语言的双重特点,执行效率高 B 、C 语言既可以用来编写应用程序,又可以用来编写系统软件 C 、 C 语言是一种结构式模块化程序设计语言 D 、C 语言的可移植性较差 2、 C 语言规定,在一个源程序中, main 函数的位置( )。B A 、必须在最开始 B 、可以任意 C 、必须在最后 D 、必须在系统调用的库函数的后面 3、 下列说法中正确的是 ( )。 C A 、 C 程序书写时,不区分大小写字母 B 、 C 程序书写时,一行只能写一个语句 C 、 C 程序书写时,一个语句可分成几行书写 5、 C 语言程序经过连接以后生成的文件名的后缀为 ( )。 C A 、 .c B 、 .obj C 、 .exe 6、以下关于算法的说法中,错误的是 ( )。 D A 、一个算法应包含有限个步骤 B 、在计算机上实现的算法是用来处理数据对象的 C 、 算法的目的是为了求解 D 、 算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现 7、算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性之一的是 ( )。 C A 、 确定性 B 、 有穷性 C 、零个或多个输出 D 、 零个或多个输入 8、以下不属于结构化程序设计三种基本结构之一的是 ( )。 B A 、 顺序 B 、 递归 C 、 循环 D 、 选择 9、下列数据中, 不合法的 C 语言实型数据是 ( )。 C A 、 0.123 B 、 123e3 C 、 2.1e3.5 D 、 789.0 10、若变量 a 、 i 已正确定义,且 i 已正确赋值,以下属于合法的 C 语句是 ( )。 A 、 a==1 B 、 ++i; C 、 a=a++=5; D 、 a=int(i); 11、已有定义 int a=6; 则执行语句 a+=a-=a* a; 后, a 的值为 ( )。 D A 、 36 B 、 0 C 、 -24 D 、 -60 12、若有以下程序段,其输出结果是 ( ) 。B int a = 0, b = 0, c = 0; c = ( a -= a - 5), (a -= 3,++b); printf( “ %d,%d,n%”d,a, b, c); A 、 0,0,-10 B 、 2,1,5 C 、 -10,-3,-10 D 、 3,3,-10 13、有以下定义: int i = 10, j = 1; 执行语句 printf("%d,%d\n",i--, ++j); 后输出结果是 ( )。 B A 、 9,2 B 、 10,2 C 、 9,1 D 、 10,1 14、 字符串 "\t\"\065\xff\n" 的长度为 ( )。 A A 、 5 B 、 14 C 、8 D 、输出项不合法,无正常输出 15、 已有定义:char c;执行赋值语句c=('z'-'a')/2+'A :后,变量c 的值为( )。A A 、 M B 、 N C 、 O D 、 Q 16、 以下 4 个选项中,不能看做一条语句的是 ( )。 D D 、C 程序书写时每行必须有行号 4、 C 语言编译程序的首要工作是 ( A 、 检查 C 语言程序的语法错误 C 、 检查程序的完整性 )。 A B 、 检查 C 语言程序的逻辑错误 D 、 生成目标文件 D 、 .cpp

C语言数据类型习题包括答案.docx

第二章数据类型,运算符与表达式 一.选择题 1.不合法的字符常量是( B)。 A)‘ \t ’B) “ A” C )‘ a’ D)’ \x32 ’ 2、合法的字符常量是( D)。 A)‘ \084 ’B)‘ \84 ’ C )‘ab’ D)’ \x43 ’ 2.( B)是 C 语言提供的合法的数据类型关键字。 A) Float B) signed C) integer D)Char 3.在以下各组标识符中,合法的标识符是( 4)。 (1) A) B01 B )table_1C) 0_t D) k% (2) A) Fast_ B) void C)pbl D) (3) A) xy_ B ) longdouble C)*p D) CHAR (4) A) sj B)Int C)_xy D)w_y23 4.属于合法的 C 语言长整型常量的是( B)。 A) 5876273B) 0L C) 2E10D) (long)5876273 5.下面选项中,不是合法整型常量的是( B)。 A) 160B)- 0xcdg C)- 01D)- 0x48a 6.判断 int x = 0xaffbc;x 的结果是( B)(turbo c版本)。 A)赋值非法 B )溢出C)为 affb D)为 ffbc 7.下面选项中,均是合法浮点数的是( B)。 A)+ 1e+ 1 B)- .60 C) 123e D )- e3 A)5e -B)12e-4C)- .4 D).8e- 4 A)03e2B)-8e5C)+ 2e-1D) -0 8.在 C 语言中,要求参加运算的数必须是整数的运算符是( C)。A) / B) * C ) % D) = 9.在 C 语言中,字符型数据在内存中以( D)形式存放。 A)原码 B ) BCD码C)反码D) ASCII 码 10.下列语句中,符合语法的赋值语句是( C)。 A) a= 7+ b+ c= a+7;B) a= 7+ b++= a+ 7; C) a=(7 + b, b++, a+ 7) ; D ) a=7+ b, c= a+ 7; 11.( B)是非法的 C 语言转义字符。 A)‘ b’B)‘ 0xf ’ C )‘037’ D )‘’’ 12.对于语句: f=,,,,,;的判断中( B),是正确的。 A)语法错误B)f 为 5.0C)f为 D) f 为 13.与代数式 (x*y)/(u*v)不等价的 C语言表达式是( A)。 A) x*y/u*v B) x*y/u/v C) x*y/(u*v) D) x/(u*v)*y 14.在 C 语言中,数字029 是一个( D)。 A)八进制数 B )十六进制数 C )十进制数 D )非法数 15. C语言中( Turbo C 环境)整数-8 在内存中的存储形式为( A)。A) 000B) 00 C) 000000000001000D)111 16.对于 char cx= ’039’; 语句,正确的是(A) 。 A)不合法 B ) cx 的 ASCII 值是 33 C) cx 的值为四个字符D)cx 的值为三个字符

C基本概念(选择题)

一、单选题 1、下面叙述中正确的是: (A) 在C语言程序中,main()函数必须放在程序的开始位置 (B) 在C语言程序中,要调用的函数必须在main()函数中定义 (C) C语言程序总是从第一个函数开始执行 (D) C语言程序总是从main()函数开始执行 2、程序设计一般可以简化为以下4个步骤,其中首先应该完成的是: (A) 调试并运行程序(B) 编写程序 (C) 建立数学模型(D) 设计数据结构和算法 3、编辑程序的功能是: (A) 调试程序(B) 将C源程序编译成目标程序 (C) 建立并修改程序(D) 命令计算机执行指定的操作 4、在纸上写好一个C语言程序后,上机运行的基本步骤为: (A) 编译、连接、编辑、运行(B) 编译、编辑、连接、运行 (C) 编辑、连接、编译、运行(D) 编辑、编译、连接、运行 5、用C语言等高级语言编写的程序称为: (A) 编译程序(B) 可执行程序 (C) 目标程序(D) 源程序 6、一个C语言源程序经过“编译程序”翻译后生成一个二进制代码文件,它的扩展名为: (A) .dat (B) .obj (C) .c (D) .exe 7、关于为什么要学习C语言,以下描述错误的是: (A) 非计算机专业同学学习C语言,可以培养使用计算机解决问题的思维和能力。 (B) C语言是结构化程序设计语言,是面向对象程序设计的基础。 (C) 通过对C语言的学习,可以培养工程推理和解决问题的能力。 (D) C语言早就过时了,应该学习最流行的语言。 8、一个C程序的执行是从: (A) 本程序的main函数开始,到main函数结束。 (B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 (C) 本程序的main函数开始,到本程序文件的最后一个函数结束。 (D) 本程序文件的第一个函数开始,到本程序main函数结束。 9、以下叙述不正确的是: (A) 一个C源程序可由一个或多个函数组成。 (B) 一个C源程序必须包含一个main函数。 (C) 程序的基本组成单位是函数。 (D) 在C程序中,注释说明只能位于一条语句的后面。 10、C语言程序的基本单位是:

C语言编程基础考试试题

C语言编程基础考试试题 文档名称文档密级 C语言编程基础考试 [考前说明]本题目中不考虑头文件引用问题(假定已经包含正确的头文件),C 语言的标 准函数都可用;如果不特别说明, 假定程序运行环境为:操作系统Windows 2000, VC6.0编译环境,缺省为四字节对齐, X86(80586)CPU处理器(32位小字节序处理器). 一、单选题 1、给出以下定义: char acX[ ]= "abcdefg"; char acY[ ]= {'a','b','c','d','e','f','g'}; 则正确的叙述为( ) A) 数组acX和数组acY等价 B) 数组acX和数组acY的长度相同 C) 数组acX的长度大于数组acY的长度 D) 数组acX的长度小于数组Y的长度 2、 void example(char acHello[]) { printf("%d", sizeof(acHello)); return; } void main()

{ char acHello[] = "hello"; example(acHello); return; } 的输出是( ) A 4 B 5 C 6 D不确定 3、以下叙述中不正确的是( ) A) 在不同的函数中可以使用相同名字的变量 B) 函数中的形式参数是在栈中保存 C) 在一个函数内定义的变量只在本函数范围内有效 D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数 中的成对括号构成的代码) 4、设有如下定义: unsigned long pulArray[] = {6, 7, 8, 9, 10}; unsigned long *pulPtr; 则下列程序段的输出结果为( ) 1 文档名称文档密级 pulPtr = pulArray; *(pulPtr + 2) += 2; printf ("%d,%d\n", *pulPtr, *(pulPtr + 2)); A)8,10 B)6,8 C)7,9 D)6,10

国家二级C语言机试(C语言基础知识)模拟试卷8

国家二级C语言机试(C语言基础知识)模拟试卷8 (总分:60.00,做题时间:90分钟) 一、选择题(总题数:30,分数:60.00) 1.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是 (分数:2.00) A.一条C语句可能会被转换成多条机器指令 B.一条C语句对应转换成一条机器指令√ C.一条C语句可能会被转换成零条机器指令 D.某种类型和格式的C语句被转换成机器指令的条数是固定的 解析:解析:由C语言编写的程序,通过编译、链接转换成可以让机器识别的01二进制指令。这些二进制指令命令机器计算,这些就是机器指令,而C语言的语句条数和机器指令的条数不是一对一的关系。 2.以下选项中不属于C语言程序运算符的是 (分数:2.00) A.sizeof B.() C.<> √ D.&& 解析:解析:sizeof为测试内存的运算符,()为算术运算符,&&为逻辑运算符。而<>不是C语言的运算符,C语言中!=表示不等于。 3.若变量已正确定义并赋值,以下不能构成C语句的选项是 (分数:2.00) A.A=a+b: B.B++; C.a=a+b √ D.A?a:b; 解析:解析:C语言语句的表示为分号,不加分号的表达式不能看成C语句。 4.以下叙述中正确的是 (分数:2.00) A.程序必须包含所有三种基本结构才能成为一种算法 B.如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达 C.只有简单算法才能在有限的操作步骤之后结束 D.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令√ 解析:解析:C语句构成了函数,函数构成的程序,经过编译转换成二进制代码后可以运行,算法是指为解决某个特定问题而采取的确定且有限的步骤,可以利用代码来捕述算法,而算法+数据结构才是程序,结构化的程序由顺序结构、循环结构和选择结构三种基本结构组成。由这三种基本结构组成的算法可以解决任何复杂的问题,反之则不一定,所有算法必须在有限步骤后结束。 5.下列选项中,不能用作标识符的是 (分数:2.00) A._1234 B._1_2 C.int_2_ D.2_int_ √ 解析:解析:C语言中标以符必须以字母或者下划线开始,选项D)中是以数字开始的不能作为标识符。6.以下选项中作为C语言合法常量的是 (分数:2.00) A.-80.√ B.-080

C语言基本数据类型及运算题库

第二章基本数据类型及运算 一、选择题 1. 若以下选项中的变量已正确定义,则正确的赋值语句是。 A) x1=26.8%3; B) 1+2=x2; C) x3=0x12; D) x4=1+2=3; 答案:C 2. 设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是。 A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0 C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0 答案:C 3. 下列C语言中运算对象必须是整型的运算符是。 A) %= B) / C) = D) *= 答案:A 4. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是。 A) 0 B) 0.5 C) 1 D) 2 答案:A 5. 设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是。 A) 把x和y按从大到小排列 B) 把x和y按从小到大排列 C) 无确定结果 D) 交换x和y中的值 答案:D 6. 下列变量定义中合法的是。 A)short_a=1-.le-1; B)double b=1+5e2.5; C)long do=0xfdaL; D)float 2_and=1-e-3; 答案:A 7. 以下4个选项中,不能被看作是一条语句的是。 A) {;} B) a=0,b=0,c=0; C) if (a>0); D) if (b==0)m=1;n=2; 答案:D 8. 设x=1,y=-1,下列表达式中解为8的是。 A)x&y B)~x│x C)x^x D)x<<=3 答案:D 9. 在C语言中不合法的整数是。 A)20 B)0x4001 C)08 D)0x12ed 答案: C 10. 以下选项中不正确的实型常量是 A)2.607E-1 B)0.8103e0.2 C)-77.77 D)456e –2 答案:B) 11.若变量已正确定义并赋值,符合C语言语法的表达式是 A)a=a+7 B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b 答案:B) 12.以下十六进制数中不合法的是 A)oxff B)0Xabc C)0x11 D)0x19

C语言基础测试题

C语言基础测试题 一选择题(每题2分) 1. C语言程序的基本单位是( A )。 A. 函数 B. 过程 C. 语句 D. 子程序 2. 对于whil e语句,错误的说法是( C )。 A.用条件控制循环体的执行次数 B.循环体至少要执行一次 C.循环体有可能一次也不执行 D.循环体中可以包含若干条语句 3. 定义语句int a=3;则执行语句a+=a-=a*a后,变量a的值是(C)。 A.3 B.0 C.9 D.-12 4. 关于局部变量和全局变量的叙述中,错误的是(A)。 A.全局变量的重复赋值不会影响局部变量的使用。 B.主函数中定义的变量在整个程序中都是有效的 C.形式参数也是局部变量。 D.不论是局部变量还是全局变量,都以最近的一次赋值为准。 5. 已知:int a=13;那么:printf("%02d",a)结果是(A)。 A.13 B.013 C.01 D.03 6. 在main函数中调用scanf给变量a赋值的方法是错误的,原因是()。 int *p,a; p=&a; printf("input a:"); scanf("%d",*p); A. *p表示的是指针变量p的地址 B. *p表示的是变量a 的值,而不是变量a的地址 C. *p表示的是指针变量p的值 D. *p只能用来说明p是一个指针变量 7.若有以下定义,则对a数组元素地址的正确引用是()。 A.a+5 B.*a+1 C.&a+1 D.&a[0] 8. 若int k=4,a=3,b=2,c=1;则kb); A. 1,3 B. 1,4 C. 2,3 D. 2,4 二.填空题。(每空3分) 1.写一个宏MIN,这个宏输入两个参数并返回较小的一个_________。2.main函数中:for(int i=0; i<3; i++){printf("%d",i);}输出结果是_________。3.设int a=9,b=20;则printf("%d,%d",a--,--b);的输出结果是_________。

C语言基本选择题及参考答案

C语言基本选择题及参 考答案 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

计算机程序设计基础(C语言) 单项选择练习题 一、基本概念 语言程序是由C构成的。 A)一些可执行语言B)main函数C)函数D)包含文件中的第一个函数 2.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 3.C语言程序从C开始执行。 A)程序中第一条可执行语句?B)程序中第一个函数 C)程序中的main函数?D)包含文件中的第一个函数 4.C语言程序从main()函数开始执行,所以这个函数要写在_D___。 A)程序文件的开始B)程序文件的最后 C)它所调用的函数的前面D)程序文件的任何位置 5、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main()函数中定义 C、C语言程序总是从main()函数开始执行 D、C语言程序中的main()函数必须放在程序的开始部分 6.下列方法中错误的是(D)。 A.主函数可以分为两个部分:主函数说明部分和主函数体。

B.主函数可以调用任何非主函数的其它函数。 C.任何非主函数可以调用其它任何非主函数。 D.程序可以从任何非主函数开始执行。 7.下列说法错误的是:(B) A.C程序运行步骤是编辑、编译、连接、执行。 B.C语言的变量名必须用小写,常量用大写。 C.C语言的三种基本结构是顺序、选择、循环。 程序一定由函数构成的。 8.下列关于C语言的说法错误的是(B)。 A)C程序的工作过程是编辑、编译、连接、运行 B)C语言不区分大小写。 C)C程序的三种基本结构是顺序、选择、循环 D)C程序从main函数开始执行 9.系统默认的C语言源程序扩展名为.C,需经过C之后,生 成.exe文件,才能运行 A)编辑?编译B)编辑?连接C)编译?连接D)编辑?改错 10.下列说法中正确的是(B)。 A.由于C源程序是高级语言程序,因此一定要在TC软件中输入。 B.由于C源程序是由字符流组成的,因此可以作为文本文件 在任何文本编辑的软件中输入。 C.由于C程序是高级语言程序,因此输入后即可执行。 D.由于C程序是高级语言程序,因此它是由命令组成的。

(完整版)C语言基础知识综合练习题

一、C语言基本知识和基本语句 (一)选择题 1.设a,b和c都是int型变量,且a=3,b=4,c=5则下面的表达式中,值为零的表达式是()。 A)‘a’&&’b’ B) a<=b C) a || b+c&&b-c D) ! ((a= ‘A’ && ch <=‘Z’) ? ( ch + 32):ch,则表达式ch的值是()字符。 A) A B) a C) Z D) z 3.若x和y都是int 型变量,x=100,y=200,且有程序段:printf (“%d”,(x,y));则输出结果是()。 A) 200 B)100 C) 100,200 D)输出格式不够,输出不确定的值4.C语言中最简单的数据类型包括()。 A)整型、实型、逻辑型 B) 整型、单精度型、双精度、字符型 C) 整型、字符型、逻辑型 D) 整型、实型、逻辑型、字符型5.C语言中,运算对象必须是整型的运算符是()。 A)% B) / C) % 和 / D) ** 6.数学关系x≥y≥z ,它对应C语言表达式是()。 A)(x>=y)&& (y>=z ) B) (x>=y) AND (y>=z ) C) (x>=y>=z) D) (x>=y) & (y>=z ) 7.以下说法中正确的是()。 A)C语言程序总是从第一个定义的函数开始执行 B) 在C语言程序中,要调用的函数必须在main()函数中定义 C) C语言程序总是从main()函数开始执行 D) C语言程序中的main()函数必须放在程序的开始部分 8.设int x=10,y=3,z;则语句printf (“%d\n”,z=(x%y,x/y));的输出结果是()。 A) 1 B) 0 C) 4 D) 3 9.C语言表达式10 != 9 的值是()。 A)true B) 非零值 C) 0 D) 1 10.合法的C语言字符常量是()。 A)’\t’B) “A” C) 65 D) A 11.若int类型数据占两个字节,则下列语句的输出为()。 int k = -1 ; printf (“%d,%u\n ”,k,k); A)- 1,- 1 B) – 1,32767 C) –1,32768 D) –1,65535 12.组成C语言程序的是()。 A)子程序 B) 过程 C) 函数 D) 主程序和子程序

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