admin 管理员组

文章数量: 1086019


2024年4月27日发(作者:go语言函数)

第一单元(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、算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性之一的是(

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,%dn”,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,%dn",i--, ++j); 后输出结果是( )。B

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

14、字符串"t"065xffn"的长度为( )。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

)。 C

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 1: b++; break;

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、$*

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、# B、 C、4050

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

main()

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

a = b = c = 0; x = 35;

if(!a)

{ case 0.0: a++; break;

case 1.0: b++; break;

default : a++; b++;

}

D、*#

D、#

2010—2011学年第二学期 《C语言程序设计》 班名: 学号: 姓名: 组号:

x--;

else if(b) ;

if(c)

x = 3;

else

x = 4;

printf("%dn",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、

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)

Ⅰ-3

break;

else i--;

}

i+=11;

a+=i;

}

printf("%dn",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

2010—2011学年第二学期 《C语言程序设计》 班名: 学号: 姓名: 组号:

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;

Ⅰ-5

printf("%dn",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、ab0c0 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

2010—2011学年第二学期 《C语言程序设计》 班名: 学号: 姓名: 组号:

答案: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(“%dn”,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(“%dn”,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,%dn",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.有以下程序,执行后输出结果是 。

Ⅰ-7

main()

{ char s[]="n123";

printf("%d,%dn",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,%dn",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(“%dn”, 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)返回一个不确定的值


本文标签: 数组 函数 C语言