文档库 最新最全的文档下载
当前位置:文档库 › C语言复习题

C语言复习题

C语言复习题
C语言复习题

第一章C语言基础知识

一、选择题

1.C语言规定,必须用作为主函数名。

A)Function B)include C)main D)stdio

2.一个C程序可以包含任意多个不同名的函数,但有且仅有一个,一个C程序总是从开始执行。

A)过程B) 主函数C)函数D)include 3.是C程序的基本构成单位。

A)函数B) 函数和过程C) 超文本过程D) 子程序4.下列说法正确的是。

A)一个函数的函数体必须要有变量定义和执行部分,二者缺一不可

B)一个函数的函数体必须要有执行部分,可以没有变量定义

C)一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数

D)以上都不对

5.下列说法正确的是。

A)main函数必须放在C程序的开头

B)main函数必须放在C程序的最后

C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的

D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的

6.下列说法正确的是。

A)在执行C程序时不是从mian函数开始的

B)C程序书写格式严格限制,一行内必须写一个语句

C)C程序书写格式自由,一个语句可以分写在多行上

D)C程序书写格式严格限制,一行内必须写一个语句,并要有行号

7.在C语言中,每个语句和数据定义是用结束。

A)句号B)逗号C)分号D)括号

8.下列字符串是标识符的是。

A)_HJ B)9_student C)long D)LINE 1

9.以下说法正确的是。

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

B)在C语言程序中,要调用的函数必须在main()函数中定义

C)C语言程序总是从main()函数开始执行

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

10.不是C语言提供的合法关键字。

A)switch B)print C)case D)default

11.C语言提供的合法关键字是。

A)breack B)print C)funiton D)end

12.C语言提供的合法关键字是。

A)continue B)procedure C)begin D)append

13. C语言规定: 在一个源程序中, main函数的位置。

A) 必须在最开始B) 必须在系统调用的库函数的后面

C) 可以在任意位置D) 必须在源文件的最后

14. 一个C语言程序是由。

A)一个主程序和若干个子程序组成;

B)函数组成, 并且每一个C程序必须且只能由一个主函数;

C)若干过程组成;

D)若干子程序组成.

二、填空题

1.一个C程序至少包含一个,即。

2.一个函数由两部分组成,它们是和。

3.函数体的范围是。

4.函数体一般包括和。

5.C语言是通过来进行输入输出的。

6.在C语言中,凡在一个标识符后面紧跟着一对圆括弧,就表明它是一个。

7.主函数名后面的一对圆括号中间可以为空,但一对圆括号不能。

第二章 C语言程序设计的初步知识

一、选择题

1.在C 语言中,下列类型属于基本类型的是。

A)整型、实型、字符型B)空类型、枚举型

C)结构体类型、实型D)数组类型、实型

2.下列字符串属于标识符的是。

A)INT B)5_student C)2ong D)!DF

3.C语言中不能用来表示整常数的进制是。

A)十进制B)十六进制C)八进制D)二进制

4.在C语言中,回车换行符是。

A)\n B)\t C)\v D)\b

5.在ASCII码表中可以看到每个小写字母的ASCII码比它相应的大写字母的ASCII 码。

A)大32 B)大64 C)小32 D)小64

6.设d为字符变量,下列表达式不正确的是。

A)d=97 B)d=?a?C)d=”a”D)d=?g?

7.10+?a?+1.5-567.345/?b?的结果是型数据。

A)long B)double C)int D)unsigned float

8.语句int i=3;k=(i++)+(i++)+(i++);执行过后k的值为,i的值为。

A)9,6 B)12,5 C)18,6 D)15,5

9.如果int i=3,则printf(“%d”,-i++)的结果为,i的值为。

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

10.已知在ASCII字符集中,数字0的序号为48,下面程序的输出结果为。

main()

{char x,y;

x=?0?;y=?9?;

printf(“%d,%d\n”,x,y);

}

A)因输出格式不合法,输出错误信息B)48,57

C)0,9 D)48,58

11.已知在ASCII集中,字母A的序号为65,下面程序的输出结果为。main()

{char c1=?B?,c2=?Y?;

printf(“%d,%d\n”,++c1,--c2);

}

A)输出格式不合法,输出错误信息B)67,88

C)66,89 D)C,X

12.C语言中,运算对象必须是整型数的运算符是。

A)% B)\ C)% 和\ D)**

13.下列常数中,合法的C 常量是。

A)?\n?B)e-310 C)?DEF?D)?1234?

14.下列符号中,可以作为变量名的是。

A)+a B)12345e C)a3B D)5e+0

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

mian()

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

x*=3+2; printf(“%d”,x);

x*=y=z=4; printf(“%d”,x);

}

A)8 40 B)10 40

C)10,4 D)8,4

16.若已定义X和Y为double类型,则表达式:x=1,y=x+3/2的值为。A)1 B)2 C)2.0 D)2.5

17.表达式(int)2.1416的值为。

A)2 B)2.1 C)0 D)3

18. 以下说法正确的是。

A)在C程序中, 每行只能写一条语句.

B)在C程序中, 无论是整数还是实数, 其存放形式都一致.

C)在C程序中, %是只能用于整数运算的运算符.

D)在C程序中, 变量可以不必先定义就可使用.

19. 若有以下定义, 则正确的赋值语句为。

int a, b ;

float x;

A)a=1, b=2, B)b++;

C)a=b=5 D)b= int (x) ;

20. C语言规定标识符由等字符组成.

A)字母数字下划线B)中划线字母数字

C)字母数字逗号D)字母下划线中划线

21. 若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式:

(float)(a+b)/2+(int)x%(int)y的值是。

A)2.500000 B)3.500000 C)4.500000 D)5.000000

22. 已知字母A的ASCII码为十进制65,下面程序段的运行结果为:。

char ch1,ch2;

ch1= …A?+5-3; ch2= …A?+6-3;

printf(“%d, %c\n”, ch1,ch2);

A)67, D B)B, C C)C, D D)不确定值

24. 设x、y均为float型变量,则以下不合法的赋值语句是。

A)+ + x; B)y = ( x%2 ) / 10;

C)x *= y + 8; D)x = y = 0;

25.设有以下定义,则能使值为3的表达式是:。

int k=7, x=12;

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

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

二、填空题

1.C语言的数据类型有四大类,分别是、、、。

2.C语言基本数据类型包括、、、。

3.在C语言中,程序运行期间,其值不能被改变的量叫。

4.在C语言中,常量有不同的类型,包括、、和等。

5.在C语言中,在习惯上符号常量名用,变量用。(大写或小写)

6.在C语言中,用来标识变量名,符号常量名,函数名,数组名,类型名,文件名的有效字符序列称为。

7.在C语言中,标识符只能由、和三种字符组成,且第一个字符必须或。

8.在C语言中,要求对所有甬道的变量,遵循先定义后的原则。

9.可以用来表示C的整常数的进制是、、。

10.实型变量分为和,即float和double型。

11.C的字符常量是用括起来的一个字符。

12.在一个变量定义语句中可以同时定义多个变量,变量之间用隔开。

13.下面的程序

mian()

{printf("abc\tde\rfg\n");/*空白处分别为两个和一个空格*/

printf("h\ti\b\bjk"); /*空白处为三个空格*/

}

运行结果是。

14.int型的取值范围是。

15.下面的程序

main()

{char c1,c2;

c1='a';c2='b';

c1=c1-32;c2=c2-32;

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

}

运行结果为。

16.在 C 语言中,系统在每一个字符串的结尾自动加一个“字符串结束标志符”即,以便系统据此数据判断字符串是否结束。

17.表达式10+'a'+1.5-0.5*'b'的结果。

18.表达式10+'a'+1.5-567.345/'b'的结果是型数据。

19.表达式x=(a=3,6*3)和表达式x=a=3,6*a分别是表达式和表达式,两个表达式执行完的结果是和.执行后X的值分别是, .

20.main()

{int i,j,m,n;

i=8;j=10;

m=++i;n=j++;

printf("%d,%d,%d,%d",i,j,m,n);

}

运行后i,j,m,n的值是.

21.在C语言中,可以利用,将一个表达式的值转换成指定的类型。

第三章顺序结构程序设计

一、选择题

1. 下列说法正确的是。

A)输入项可以是一个实型常量,如scanf("%f",4.8);

B)只有格式控制,没有输入项也能进行正确输入,如scanf("a=%d,b=%d");

C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%5.3f",&f);

D)当输入数据时,必须指明变量的地址,如scanf("%f",&f);

2. 根据题目中已给出的数据的输入和输出形式,程序中输入/输出语句的正确是。

main()

{

int a;float x;

printf("input a,x:");

输入语句

输出语句

}

输入形式input a,x:3 2.1

输出形式a+x=5.10

A)scanf("%d,%f",&a,&x); B)scanf("%d %f",&a.&x);

printf("\na+x=%4.2f",a+x); printf("\na+x=%4.2f",a+x);

C)scanf("%d %f",&a,&x); D)scanf("%d %3.1f",&a,&x);

printf("\na+x=%6.1f",a+x); printf("\na+x=%4.2f",a+x);

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

main()

{

int i=010,j=10,k=0x10;

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

A)8,10,16 B)8,10,10 C)10,10,10 D)10,10,16

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

#include

main()

{printf("%d\n",NULL);}

A)不确定的值(因变量无定义)B)0

C)-1 D)1

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

main()

{

char c1='6',c2='0';

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

}

A) 因输出格式不合法,输出出错信息B) 6,0,6,102

C) 6,0,7,6 D) 6,0,5,7

6. 设有如下定义

int x=10,y=3,z;

则语句

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

的输出结果是。

A)3 B)0 C)4 D)1

7. 设有如下定义

int x=10,y=5,z;

则语句

printf("%d\n",z=(x+=y,x/y));

的输出结果是。

A)1 B)0 C)4 D)3

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

main()

{int x=10,y=10;

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

}

A)10 10 B)9 9 C)9 10 D)10 9

9. 若已知a=10,b=20,则表达式!a

A)10 B)20 C)1 D)0

10. printf函数中用到格式符"%4s",其中数字4表示输出的字符串站用4列。如果字符串长度大于4,则按原字符长从左向右全部输出;如果字符串长度小于4,则输出方式为。

A)从左起输出该字符串,右补空格B)按原字符长从左向右全部输出

C)右对齐输出该字符,左补空格D)输出错误信息

11.根据定义和数据的输入方式,输入语句的正确形式为:。

已有定义:float a1, a2;

数据的输入方式: 4.523

3.52

A)scanf(“%f %f ”, &a1,&a2); B)scanf(“%f ,%f ”, a1, a2);

C)scanf(“%4.3f ,%3.2f ”, &a1,&a2); D)scanf(“%4.3f %3.2f ”, a1,a2);

12. 以下程序的输出结果是:(注:▂表示空格)。

main( )

{ printf(“\n*s1=%8s*”, “china”);

printf(“\n*s2=%-5s*”, “chi”) ; }

A)*s1=china▂▂▂* B)*s1=china▂▂▂*

*s2=chi* *s2=chi▂▂*

C)*s1=▂▂▂china* D)*s1=▂▂▂china*

*s2=▂▂chi * *s2=chi▂▂*

二、填空题

1. putchar函数的作用是。

2. printf函数的“格式控制”包括两部分,他们是和。

3. 对不同类型的语句有不同的格式字符。例如:格式字符是用来输出十进制整数,格式字符是用来输出一个字符,格式字符是用来输出一个字符串。

4. %-ms表示如果串长m,则在m列范围内,字符串向靠,补空格。

5. getchar函数的作用是。

6. 符号“&”是运算符,&a是指。

7. 复合语句是由一对括起来的若干语句组成。

8. 分析下面程序:

#include

main()

{

int x=2,y,z;

x*=3+2;printf("%d\n",x);

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

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

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

}

程序的输出结果为。

9. 编制程序对实数a与b进行加,减,乘,除计算,要求显示如下结果。

jia=70.000000

jian=30.000000

cheng=1000.000000

chu=2.5000000

程序:

#include

void main( )

{ (1)

a=50.0;b=20.0;

printf("jia=%f\n", (2) ); printf("jian=%f\n" (3) );

printf("cheng=%f\n", (4) ); printf("chu=%f\n", (5) );

}

将缺少的部分填在空白处。

10. 下列程序的输出结果是。

#include

main()

{char a;

a='A';

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

}

11. 分析下面程序

main()

{

int x=2,y,z;

x*=3+2;printf("%d\n",x);

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

x=y=1;

z=x++-1;printf("%d,%d\n",x,z);

z+=-x++ +(++y);printf("%d,%d",x,z);

}

程序的输出结果是。

12. 以下程序的输出结果为:____________。

#include

main( )

{ char c1,c2;

c1=…a?;

c2=…\n?;

printf(“%c%c”,c1,c2); }

三、编程题

1. 从键盘上输入一个大写字母,要求改用小写字母输出。

2. 请编写一个程序,能显示出以下两行文字。

I am a student.

I love China.

第四章选择结构程序设计

一、选择题

1.以下关于运算符优先级的描述中,正确的是。

A)!(逻辑非)>算术运算>关系运算>&&(逻辑与)>||(逻辑或)>赋值运算B)&&(逻辑与)>算术运算>关系运算>赋值运算

C)关系运算>算术运算>&&(逻辑与)>||(逻辑或)>赋值运算

D)赋值运算>算术运算>关系运算>&&(逻辑与)>||(逻辑或)

2.逻辑运算符的运算对象的数据类型。

A)只能是0或1 B)只能是.T.或.F.

C)只能是整型或字符型D)任何类型的数据

3.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是。

A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)

B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)

C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)

D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)

4.以下程序的运行结果是。

main( )

{

int c,x,y;

x=1;

y=1;

c=0;

c=x++||y++;

printf(“\n%d%d%d\n”,x,y,c);

}

A)110 B)211 C)011 D)001

5.判断字符型变量ch为大写字母的表达式是。

A)?A?<=ch<=?Z?B)(ch>=?A?)&(ch<=?Z?)

C)(ch>=?A?)&&(ch<=?Z?)D)(ch>=?A?)AND(ch<=?Z?)6.以下if语句书写正确的是。

A)if(x=0;)B)if(x>0)

printf(”%f”,x); {x=x+1; printf(”%f”,x);}

else printf(”%f”,-x); else printf(”%f”,-x);

C)if(x>0);D)if(x>0)

{x=x+1; printf(”%f”,x);} {x=x+1; printf(”%f”,x) }

else printf(”%f”,-x); else printf(”%f”,-x);

7.分析以下程序:

main( )

{ int x=5,a=0,b=0;

if(x=a+b) printf(“** **\n”);

else printf(“## ##\n”);

以上程序。

A)有语法错,不能通过编译B)通过编译,但不能连接

C)输出** ** D)输出## ##

8.写出下面程序的执行结果。

main( )

{int x,y=1;

if(y!=0) x=5;

printf(“%d\t”,x);

if(y= =0) x=3;

else x=5;

printf(“%d\t\n”,x);

}

A)1 3 B)1 5 C)5 3 D)5 5 9.假定所有变量均已正确说明,下列程序段运行后x的值是。

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

if(!a) x=-1;

else if(b);

if(c) x=3;

else x=4;

A)34 B)4 C)35 D)3 10.若有以下函数关系

x<0 →y=2x

x>0 →y=x

x=0 →y=x+1

下面程序段能正确表示以上关系的是。

A)y=2x; B)y=2x;

if(x!=0) if(x<=0)

if(x>0)y=x; if(x= =0) y=x+1;

else y=x+1; else y=x;

C)if(x>=0) (D)y=x+1;

if(x>0) y=x; if(x<=0)

else y=x+1; if(x<0) y=2x;

else y=2x; else y=x;

11.若有以下变量定义:

float x; int a,b;

则正确的switch语句是。

A)switch(x)

{ case 1.0:printf("*\n");

case 2.0:printf("* *\n");

}

B)switch(x)

{ case 1,2:printf("*\n");

case 3:printf("* *\n");

}

C)switch(a+b)

{ case 1:printf("*\n");

case 2*a:printf("* *\n");

}

D)switch(a+b)

{ case 1:printf("*\n");

case 1+2:printf("* *\n");

}

12. 以下不正确的if 语句形式是。

A)if ( x > y && x != y ) ;

B)if ( x = = y ) x + = y ;

C)if ( x != y ) scanf ( “%d”, &x) else scanf ( “%d”, &y);

D)if ( x < y ) { x++; y++;}

13. 当a = 1, b = 3 , c = 5, d = 4 时, 执行完下面程序段后x 的值为。

if ( a < b )

if ( c < d ) x = 1 ;

else

if ( a < c )

if ( b < d ) x =2 ;

else x = 3 ;

else x = 6 ;

else x = 7 ;

A)1 B)2 C)3 D)6

14.设有如下定义:char ch=?z?,则执行下面语句

后变量ch是值为:。

ch=(…A?<=ch&&ch<=…Z?)?(ch+32):ch

A)A B)a C)Z D)z

15.已知int x=30,y=50,z=80;以下语句执行后变量x、y、z的值分别为:。

if (x>y||xz)

z=x; x=y; y=z;

A)x=50, y=80, z=80 B)x=50, y=30, z=30

C)x=30, y=50, z=80 D)x=80, y=30, z=50

16. C语言中,要求运算对象必须是整型的运算符是:。

A)> B)++ C)% D)!=

17.在C语言中,多分支选择结构语句为:

switch(c)

{ case 常量表达式1:语句1;

……

case 常量表达式n-1:语句n-1;

default 语句n;}

其中括号内表达式c的类型:。

A)可以是任意类型B)只能为整型

C)可以是整型或字符型D)可以为整型或实型

二、填空题

1.在C语言中,对于if语句,else子句与if子句的配对约定是。

2.以下两条if语句可合并成一条if语句为。

if(a<=b) x=1;

else y=2;

if(a>b) printf("* * * * y=%d\n",y);

else printf("# # # # x=%d\n",x);

3.设有程序片段如下:

switch(class)

{case 'A':printf("GREA T!\n");

case 'B':printf("GOOD!\n");

case 'C':printf("OK! \n");

case 'D':printf("NO!\n");

default:printf("ERROR!\n");

}

若class的值为'C',则输出结果是。

4.根据以下if语句写出与其功能相同的switch语句(x的值在0~100之间)。

if语句:

if(x<60) m=1;

else if(x<70) m=2;

else if(x<80) m=3;

else if(x<90) m=4;

else if(x<100) m=5;

switch语句:

switch((1))

{

(2)m=1;break;

case 6:m=2;break;

case 7:m=3;break;

case 8:m=4;break;

(3)m=5;

}

5. 输入3个实数a, b, c要求按从大到小的顺序输出三数。

main( )

{ float a,b,c,t;

scanf(“%f,%f,%f”,&a,&b,&c);

if (a

{t=a; __(1)__ b=t;}

if(__(2)__)

{t=a; a=c; c=t;}

if(b

{__(3)__ b=c; c=t;}

printf(“%f,%f,%f”,a,b,c);

}

6.输入一个字符,如果是大写字母,则把其变成小写字母;如果是小写字母,则变成大写字母;其它字符不变。请在()内填入缺省的内容。

main( )

{ char ch;

scanf(“%c”,&ch);

if (___(1)____) ch=ch+32;

else if(ch>=?a?&&ch<=…z?) (__(2)___);

printf(”%c\n”,ch); }

7.在C语言中提供的条件运算符"?:"的功能是.

8.用C语言描述下列命题

(1)a小于b或小于c ,

(2)a和b都大于c

(3)a或b中有一个小于c

(4)a是奇数。

三、编程题

1.编写一个程序,要求有键盘输入三个数,计算以这三个数为边长的三角形的面积。

2.输入圆的的半径r和一个整型数k,当k=1时,计算圆的面积;但k=2时,计算圆的周长,当k=3时,既要求求圆的周长也要求出圆的面积。编程实现以上功能。

3.有一函数,其函数关系如下,试编程求对应于每一自变量的函数值。

x2(x<0)

y = -0.5x+10 (0≤x<10)

x-x(x≥10)

4.编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为…A?;80~89分为…B?;70~79分为…C?;60~69分为…D?;60分以下为…E?。

第五章循环结构程序设计

一、选择题

1.for语句中的表达式可以部分或全部省略,但两个不可省略。但当三个表达式均省略后,因缺少条件判断,循环会无限制地执行下去,形成死循环。

A)0 B)1 C);D),

2.程序段如下

int k=-20;

while(k=0) k=k+1;

则以下说法中正确的是。

A)while循环执行20次B)循环是无限循环

C)循环体语句一次也不执行D)循环体语句执行一次

3.以下for循环是。

for(a=0,b=0;(b!=123)&&(a<=4);a++);

A)无限循环B)循环次数不定C)执行4次D)执行5次

4.在下列程序中,while循环的循环次数是。main( )

{ int i=0;

while(i<10)

{if(i<1) continue;

if(i= =5) break;

i++;

}

......

}

A)1 B)10 C)6 D)死循环、不能确定次数5.程序段如下

int k=0; while(k++<=2) printf("%d\n",k);

则执行结果是。

A)1 B)2 C)0 D)无结果

2 3 1

3 4 2

6.执行下面的程序后,a的值为。

main()

{int a,b;

for(a=1,b=1;a<=100;a++)

{if(b>=20)break;

if(b%3==1)

{b+=3;

continue;

}

b-=5;

}

}

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

7.以下程序的输出结果。

main()

{

int x=3;

do

{printf("%3d",x-=2);

}while(--x);

}

A)1 B)30 3 C)1 -2 D)死循环

8.定义如下变量:

int n=10;

则下列循环的输出结果是。

while(n>7)

{n--;

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

}

A)10 B)9 C)10 D)9

9 8 9 8

8 7 8 7

7 6

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

main()

{int i;

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

{if(i%2)printf("#");

else continue;

printf("*");

}

printf("$\n");

A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$

10.当输入为"quert?"时,下面程序的执行结果是。

#include

main()

{char c;

c=getchar();

while(c!='?')

{

putchar(c);

c=getchar();

}

}

A)quert B)Rvfsu C)quert? D)rvfsu?

11.在C语言的循环语句for,while,do-while中,用于直接中断最内层循环的语句是。

A)swich B)continue C)break D)if

12.若i,j已定义为int型,则以下程序段中循环体的总的执行次数是。

for(i=5;i;i--)

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

{ }

A)20 B)24 C)25 D)30

13.以下程序的功能是:按顺序读入10名学生的4门课程的成绩,计算出每位学生的平均分并输出,程序如下:

main()

{int n,k;

float score,sum,ave;

sum=0.0;

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

{for(k=1;k<=4;k++)

{scanf("%f",&score);sum+=score};}

ave=sum/4.0;

printf("NO%d:%f\n",n,ave);

}

}

上述程序有一条语句出现在程序的位置不正确。这条语句是。

A)sum=0.0; B)sum+=score;

C)ave=sum/4.0; D)printf("NO%d:%f\n",n,ave);

14. 循环语句中的for语句,其一般形式如下:

for(表达式1;表达式2;表达式3) 语句

其中表示循环条件的是。

A)表达式1 B)表达式2 C)表达式3 D)语句

15. 下面有关for循环的正确描述是。

A)for循环只能用于循环次数已经确定的情况

B)for循环是先执行循环体语句,后判断表达式

C)在for循环中,不能用break语句跳出循环体

D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

16. 以下能正确计算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);

17. 以下程序段。

x=-1; do { x=x * x;} while(!x);

A)是死循环B)循环执行二次

C)循环执行一次D)有语法错误

18.设有以下程序段,则执行该程序后为:。

int x = 0, s = 0 ;

while ( !x != 0 ) s += ++ x ;

printf ( “ %d ”, s ) ;

A)运行程序段后输出0

B)运行程序段后输出1

C)程序段中的控制表达式是非法的

D)程序段执行无限次

19.下面程序的运行结果是:。

#include

main( )

{ int I ;

for ( I = 1; I <=5; I++)

switch ( I%5 )

{ case 0: printf ( “ * ” ); break;

case 1: printf ( “ # ” ); break;

default : printf (“\n”);

case 2: printf ( “ &” ); break; }

}

A)#&&* B)#& C)# D)#&

& &

&* & *

&

*

二、填空题

1. break语句的功能是。

2. continue语句的作用是,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。

3. 循环的嵌套是指。

4. while语句的特点是,do_while语句的特点是。

5. 把for(表达式1;表达式2;表达式3);改写为等价的while语句为。

三、程序填空题

1. 以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。

main()

{float x,amax,amin;

scanf("%f",&x);

amax=x;

amin=x;

while (1)

{if(x>amax) amax=x;

if (2)amin=x;

scanf("%f",&x);

}

printf("\namax=%f\namin=%f\n",amax,amin);

}

2. 下面程序可求出1~1000的自然数中所有的完数(因子和等于该数本身的数)请填空。

main( )

{ int m, n, s;

for(m=2;m<1000;m++)

{ ____(1)____

for(n=1;n<=m/2;n++)

if(__(2)___) s+=n;

if(__(3)___) printf(“%d\n”, m); } }

四、读程序写结果题

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

main()

{int n=0;

while(n++<=1);

printf("%d,",n);

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

}

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

main()

{int s,i;

for(s=0,i=1;i<3;i++,s+=i);

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

}

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

main()

{int i=10,j=0;

do

{j=j+i;i--;}

while(i>2);

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

}

4. 下面程序运行结果是:。

main( )

{ int x, i ;

for( i=1,x=1; i<=50; i++ )

{ if(x>=10) break;

if(x%2==1) { x+=5;continue;}

x - = 3;}

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

5. 下面程序运行结果是:。

#include

main( )

{ int i,j;

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

{ printf(“*”);

for(j=1;j<=4-i;j++)

printf(“*”);

printf(“\n”); } }

五、编程题

1.编写程序,求两个整数的最大公约数。

2.求100~200间的全部素数。

3.请编写一程序,打印出九九乘法口诀表(例:1*1=1)。

4.编写一程序,求1-3+5-7+.........-99+101的值。

第六章数组

一、选择题

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

A)整型常量B)整型常量或整型表达式

C)整型表达式D)任何类型的表达式

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];

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

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

B)int a[10]={ };

C)int a[ ]={0};

D)int a[10]={10*1};

4.不是给数组的第一个元素赋值的语句是。

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

C)int a[2];scanf (“%d”,a);D)a[1]=1;

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

6.下列定义正确的是。

A)static int a[]={1,2,3,4,5} B) int b[1]={2,5}

C) int a(10) D) int 4e[4]

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

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

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

C) 因为对二维数组a的第二维大小的值除以初值个数的商为1,故数组a的行数为1

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

8.设有char str[10],下列语句正确的是。

A) scanf("%s",&str); B) printf("%c",str);

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

9.下列说法正确的是。

A) 在C语言中,可以使用动态内存分配技术定义元素个数可变的数组

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

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

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

个数

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

A) array[0]=10 B) array=0

C) array[10]=0 D) array[-1]=0

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

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

int a=0;k;

for(k=0;k<8;k+=2)

a+=*(a+k);

A) 17 B) 27 C) 13 D) 有语法错误,无法确定

12.分析下列程序

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

13. 若有以下定义:

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 ]

14.下面几个字符串处理表达式中能用来把字符串str2连接到字符串str1后的一个是:。

A)strcat(str1,str2) ; B)strcat(str2,str1);

C)strcpy(str1,str2) ; D)strcmp(str1,str2);

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

A)strcpy(str1,str2); B)strcpy(str1, “China”);

C)strcat(str1,“China”);D)strcat(“Beijing”,str2);

16.若有二维数组a[m][n],则数组中a[I][j]之前的元素的个数为。

A)j*m+I B)I*n+j

C)I*m+j+1 D)I*n+j+1

17.若有如下定义:

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

18.下列字符串赋值语句中,不能正确把字符串 C program赋给数组的语句是:。

A)char a[]={…C?,…?,…p?,…r?,…o?,…g?,…r?,…a?,…m?};

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

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

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

19. 以下不能对二维数组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};

20. 下面程序的运行结果是。

char c[5]={‘a’,‘b’,‘\0’,‘c’,‘\0’};printf(“%s”,c); }

A)‘a’‘b’B)ab\0c\0

C)ab c D)ab

21. 判断字符串a和b是否相等,应当使用。

A)if (a= =b) B)if (a=b)

C)if (strcpy(a,b)) D)if(strcmp(a,b))

C语言试卷及答案

《C语言程序设计》考试试卷(答案) 一、填空题(每小空1分,共10分) 1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。 2.一个C程序有且仅有一个main( ) 函数。 3.C语言描述“x和y都大于或等于z”的表达式是x>=z && y>=z。 4.C语言可以用来实现循环的结构化语句是while、do while、for。 5.数组名表示数组在内存的首地址。 6.int a=3,*p=&a;*p+2的值是5。 二、单项选择题(每小题2分,共70分) 1.__B___是C语言合法的常量。 (A).45(B)078 (C)25.6e3.4 (D)‘xy’2.一个程序的执行是从 A 。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 (C)本程序的main函数开始,到本程序文件的最后一个函数结束。 (D)本程序文件的第一个函数开始,到main函数结束。 3.以下叙述正确的是 C 。 (A)在C程序中,main函数必须位于程序的最前面。 (B)C程序每行中只能写一条语句。 (C)C语言本是没有输入输出语句。 (D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 4.以下叙述不正确的是 D 。 (A)逗号运算符的运算级最低。 (B)ABC和abc是两个不同的变量。 (C)若a和b类型相同,在执行a=b后,b的自身值不变。 (D)‘a’和“a”是完全等价的常量。 5.int x=3,y=2;则表达式x+=x*=y+8的值为 C 。 (A)28 (B)30 (C)60(D)17 6.设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为 B 。 (A)2.7 (B)3.7(C)4.7 (D)4.03 7.执行下面两个语句后,输出的结果为__D___。 char c1=98; printf(“%d %c”,c1,c1-32); (A)97 66 (B)98 b (C)b 66 (D)98 B 8.执行下面语句后的结果为 C 。 y=10;x=y++; (A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11(D)x=11,y=10 9.Char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是A 。 (A)double (B)char (C)int (D)float 10.C语言中要求操作数必须是整数的运算符是 B 。

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

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语言经典笔试题目

嵌入式c语言经典笔试题目 1 .用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1) #define语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。 3)意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。 4)如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。 2 .写一个"标准"宏MIN,这个宏输入两个参数并返回较小的一个。 #define MIN(A,B)((A)<= (B) ? (A) : (B)) 这个测试是为下面的目的而设的: 1)标识#define在宏中应用的基本知识。这是很重要的。因为在嵌入(inline)操作符变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。 2)三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。 3)懂得在宏中小心地把参数用括号括起来 4)我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事? least = MIN(*p++, b); 3.预处理器标识#error的目的是什么? 如果你不知道答案,请看参考文献1。这问题对区分一个正常的伙计和一个书呆子是很有用的。只有书呆子才会读C语言课本的附录去找出象这种问题的答案。当然如果你不是在找一个书呆子,那么应试者最好希望自己不要知道答案。 死循环(Infinite loops) 4.嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢? 这个问题用几个解决方案。我首选的方案是: while(1) { } 一些程序员更喜欢如下方案: for(;;) { } 这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出这个作为方案,

c语言试题及答案

1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x,y); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式

c语言试题及答案

《C语言》课程综合复习资料 一、单选题 1. 在C语言中,字符型数据在存中的存储形式是 A)原码 B)补码 C)反码 D)ASCII码 2. 在C语言中,十进制数47可等价地表示为 A) 2f B) 02f C) 57 D) 057 3. 设有定义:int x=12,n=5; 则表达式 x%=(n%2) 的值为 A) 0 B) 1 C) 2 D) 3 4. 设有定义语句:char str[][20]={,"Beijing","中国石油大学"},*p=str; 则printf("%d\n",strlen(p+20)); 输出结果是 A)10 B) 6 C) 0 D) 20 5. 已定义以下函数: fun(int *p) { return *p; } 该函数的返回值是 A)不确定的值 B)形参p所指存储单元中的值 C)形参p中存放的值 D)形参p的地址值 6. C语言中,函数返回值的类型是由 A)return语句中的表达式类型决定 B)调用函数的主调函数类型决定 C)调用函数时的临时类型决定 D)定义函数时所指定的函数类型决定 7. 有以下函数定义: void fun( int n , double x ) { …… } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是 A) fun( int y , double m ); B) k=fun( 10 , 12.5 ); C) fun( 10 , 12.5 ); D) void fun( 10 , 12.5 ); 8. 以下选项中不能正确赋值的是 A) char b[]={′H′,′e′,′l′,′l′,′o′,′!′}; B) char b[10];b="Hello!";

C语言基础练习题(含答案)Word版

第一章C语言基础知识 1.1 选择题 1. 以下不是C语言的特点的是()。B A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2. 下列字符序列中,不可用作C语言标识符的是()。B A.abc123 B.no.1 C._123_ D._ok 3. 正确的C语言标识符是()。A A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。B A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 5. 下列符号中,不属于转义字符的是()。B A.\\ B.\0xAA C.\t D.\0 6. 不属于C语言关键字的是()。d A.int B.break C.while D.character 7. 是C语言提供的合法关键字的是()。b A.Float B.signed C.integer D.Char 8. 以下不能定义为用户标示符的是()。b A.scanf B.Void C._3com_ D.int 9. 一个C程序是由()。 b A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成 10. C语言程序的基本单位是()。 c A.程序行 B.语句 C.函数 D.字符 11. 下列说法中,错误的是()。 a A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用 D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12. 以下说法中正确的是()。 c A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行

c语言笔试题(答案)(精心整理)

笔试题 一、填空题(每个空4分,共28分) 1)struct tagABC { char name[10]; char sex; long sno; float score[4]; }*pAbc;(四字节对齐) pAbc=NULL; 那么,执行pAbc+=2;之后pAbc的值为(64 ) 2)如下代码,最终value的值是(8) int *p1,*p2; int value; p1=(int*)0×400; p2=(int*)0×408; value = p2-p1; 3)如下代码,printf的结果为(2) #include〈stdio.h〉 #include〈string.h〉 void main(void) { char acNew[20]= “\\0\0”; printf(“%d\n”,strlen(acNew)); } 4) 有如下程序段,运行该程序的输出结果是(33) main () { int y=3,x=3,z=1; printf(“%d%d\n”,(++x,y++),z+2); } 5)设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后,n的值为(2)6)struct tagAAA { Unsigned char ucId:1; Unsigned char ucPara0:2; Unsigned char ucState:6; Unsigned char ucTail:4; Unsigned char ucAvail; Unsigned char unTail2:4; Unsigned long ulData; }AAA_S 问:AAA_S在字节对齐分别为1,4情况下,占用的空间大小分别是多少?( 9)(12 )

C语言试题库(完整版)

C语言试题库 一、单项选择 第一章 C语言概述 (1)一个C程序的执行是从 A、本程序的MAIN函数开始,到MAIN 函数结束。 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 C、本程序的MAIN函数开始,到本程序的最后一个函数结束。 D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。(2)以下叙述正确的是 A、在C程序中,MAIN函数必须位于程序的最前面。 B、 C程序的每行中只能写一条语句。 C、 C语言本身没有输入输出语句。 D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。(3) C语言规定,在一个源程序中,MAIN主函数的位置是在: A、必须在最前面。 B、必须在系统调用的库函数的后面 C、可以在任意位置。

D、必须在最后面 (4)一个C程序是由: A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 (5)以下叙述不正确的是: A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个MAIN函数 C、 C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 第二章数据类型、运算符与表达式 (1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=( i=4, j=16, k=32) A、4 B、16 C、32

D、52 (2)下列四组选项中,均不是C语言键字的选项是 A、define , IF, type B、getc, char, printf C、include, scanf, case E、 if, struct, type (3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,do B、float,1a0, _A C、b-a, goto, int D、_123, temp, INT (4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3 B、3*a*e/bc C、3*a*e/b*c D、a*e/c/b*3 (5)已知各变量的类型说明如下:

c语言笔试题目及答案

c语言笔试题目及答案 C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。下面是c语言笔试题目及答案,请参考。 c语言笔试题目及答案 一、选择题((1)~(10)每小题2分,(11)~(50)每小题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选 项涂写在答题卡相应位置上,答在试卷上不得分。 (1)数据的存储结构是指________。 A)存储在外存中的数据 B)数据所占的存储空间量 C)数据在计算机中的顺序存储方式 D)数据的逻辑结构在计算机中的表示 答案:D 评析:数据的逻辑结构在计算机存储空间中的存放形式形式称为数据的存储结构(也称数据的物理结构)。 (2)下列关于栈的描述中错误的是________。 A)栈是先进后出的线性表

B)栈只能顺序存储 C)栈具有记忆作用 D)对栈的插入与删除操作中,不需要改变栈底指针 答案:B 评析:栈是一种特殊的线性表,又称先进后出表(FILO—First In Last Out)。 (3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 ________。 A)冒泡排序为n2 B)冒泡排序为n C)快速排序为n D)快速排序为n(n一1)/2 答案:D 评析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后扫描和n/2遍的从后往前扫描,需要比较次数为n(n-1)/2。快速排序法的最坏情况比较次数也是n(n-1)/2。 (4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为________。 A)log2n B)n/2 C)n D)n+l 答案:C 评析:顺序查找过程中,如果被查找的元素是线性表中的最后一个元素,或者元素不在线性表中,则需要与线性表中所有的元素进行比较。对长度为n的线性表进行顺序查找,在最坏情况下需要比较

C语言全部题目及答案

C语言全部题目及答案 SANY GROUP system office room 【SANYUA16H-

C语言全部题目及答案 Exercise 1: Programming Environment and Basic Input/Output 1.Write a program that prints “This is my first program!” on the screen. (a)Save this program onto your own disk with the name of e2-1a; (b)Run this program without opening Turbo C; (c)Modify this program to print “This is my second program!”, then save it as e2-1b. Please do not overwrite the first program. 2.Write a program that prints the number 1 to 4 on the same line. Write the program using the following methods: (a)Using four “printf” statements. (b)Using one “printf” statement with no conversion specifier(i.e. no ‘%’). (c)Using one “printf” statement with four conversion specifiers 3.(a) Write a program that calculates and displays the number of minutes in 15 days. (b) Write a program that calculates and displays how many hours 180 minutes equal to. (c) (Optional) How about 174 minutes?

c语言试题及答案 ()

第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由

主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) 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

C语言基础选择试题(一)

C语言基础选择试题(一) 2123 答案 :C 所谓“裸机”是指( )。 a:没有安装机箱 b:没有安装应用软件 c:没有安装任何软件的计算机 c:只安装操作系统的计算机 2145 答案 :D 可用于大小写字母转换的键是( )。 a:Esc b:CapsLock c:Shift c:CapsLock或Shift 1068 答案 :D 计算机病毒的主要特征是()。 a:只会感染不会致病 b:造成计算机器件永久失效 c:格式化磁盘 c:传染性、隐蔽性、破坏性和潜伏性 1054 答案 :D 个人计算机属于( ) 。 a:小型计算机 b:中型计算机 c:巨型计算机 d:微型计算机 1080 答案 :B 用汉语拼音输入“长沙”两个汉字,输入“changsha”8个字符,那么,“长沙”两字的内码所占用的字节数是()。 a:2 b:4 c:8 c:16 1053 答案 :A 操作系统的功能是( )。 a:提高系统资源的利用率,方便用户使用计算机 b:负责给程序和数据分配内存空间 c:负责各种文件的管理 c:管理磁盘文件和I/O设备管理 1055 答案 :C 组建以太网时,通常都是用双绞线把若干台计算机连到一个中心的设备上,这个设备叫做()。 a:网络适配器 b:服务器 c:集线器 c:总线 1057 答案 :D

应用软件是指( )。 a:所有能够使用的软件 b:能被各应用单位共同使用的某种软件 c:所有微机上都应用的基本软件 c:专门为某一应用目的而编制的软件 1078 答案 :B 为网络提供共享资源并对这些资源进行管理的计算机称之为()。 a:网卡 b:服务器 c:工作站 c:网桥 1082 答案 :B 在Windows98中运行应用程序时,下列哪个操作调不出帮助信息()。 a:按F1键 b:按F10键 c:单击“帮助”菜单 c:单击窗口右上角“”按钮 1068 答案 :A ISO/ OSI参考模型七层协议中第一层是()。 a:物理层 b:数据链路层 c:网络层 c:传输层 2083 答案 :A 解释程序的功能是()。 a:解释执行高级语言程序 b:解释执行汇编语言程序 c:将汇编语言程序翻译成目标程序 c:将高级语言程序翻译成目标程序 1071 答案 :B 在计算机网络术语中,WAN的中文意义是()。 a:以太网 b:广域网 c:互联网 c:局域网 1055 答案 :C 主存储器又称为()。 a:RAM b:ROM c:内存 c:外存 1056 答案 :D 把同种或异种类型的网络相互连接起来称为()。 a:广域网 b:万维网(WWW c:城域网 c:互联网

嵌入式C语言面试题汇总(超经典)

第一部分:基本概念及其它问答题 1、关键字static的作用是什么? 这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用: 1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。 大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要性。 2、“引用”与指针的区别是什么? 答、1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。 指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。 流操作符<<和>>、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参数、其它情况都推荐使用引用。 3、.h头文件中的ifndef/define/endif 的作用? 答:防止该头文件被重复引用。 4、#include 与#include “file.h”的区别? 答:前者是从Standard Library的路径寻找和引用file.h,而后者是从当前工作路径搜寻并引用file.h。 5、描述实时系统的基本特性 答:在特定时间内完成特定的任务,实时性与可靠性。 6、全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 答:全局变量储存在静态数据区,局部变量在堆栈中。 7、什么是平衡二叉树? 答:左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。 8、堆栈溢出一般是由什么原因导致的? 答:1.没有回收垃圾资源 2.层次太深的递归调用

C语言期末考试题含答案

C语言期末考试题含答 案 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(21 的计算结果不. 相符的是( ) A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue

7.在while(!x)语句中的!x与下面条件表达式等价的是() A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include <> void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2B)2,2,1C)2,2,2D)2,2,3 9、有以下程序: #include <> void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: void fun(int n,double x){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是() A)fun(int y,double m); B)k=fun(10,; C)fun(x,n); D)void fun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。

C语言试题

C语言题 一、判断题(每题1分,共计10分) 1.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参。() 2.使用float b定义的外部变量存放在内存中的动态存储区。() 3.如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义 了一个变量,则该变量为局部变量,只在该复合语句中有效;。() 4.int (*ptr) (),则ptr是一维数组的名字。() 5.指针在任何情况下都可进行>,<,>=,<=,==运算。() 6.形参是局部变量,函数调用完成即失去意义。() 7.C语言程序总是从main()函数开始执行,C语言程序中的main()函数必须放在程序的开 始部分。() 8.在C语言程序中,函数的定义不能嵌套,但函数的调用可以嵌套。() 9.若函数调用时用数组名作为函数参数,实参与其对应的形参共占用同一段存储空间, 在调用函数中必须说明数组的大小,但在被调函数中可以使用不定尺寸数组。() 10.局部变量不能和全局变量重名。() 二、(共计10分) 1. 以下为Windows NT 下的32 位C程序,请计算sizeof 的值 char str[] = “Hello” ; char *p = str ; int n = 10; long d=12; 请计算 sizeof (str ) =__ (0.5分) sizeof ( p ) =__ (0.5分) sizeof ( n ) =__ (0.5分) sizeof(d)=__(0.5分) 2. 请给出如下程序的结果 int a = 3; int b = a << 3; a = ____ ,(0.5分) b = ____(0.5分) 3.int i=10, j=10, k=3; k*=i+j; k 最后的值是__(1分) 4. 1.-1,2,7,28,,126请问28和126中间那个数是__(2分) 5.如有定义语句int a[]={1,8,2,8,3,8,4,8,5,8}; ,则数组a的大小是___(1分) 6.以下程序: #include void main() { int x=10,y=10; printf("%d %d\n",x--,--y); } 输出结果为:___(0.5分),___ (0.5分) 7.函数调用语句: func((exp1,exp2),(exp3,exp4,exp5));

C语言基础练习题含复习资料

目录 第1-3章C语言基础知识习题 (2) 1 选择题 (2) 2 填空题 (7) 3 答案及部分解析 (9) 第4章选择结构习题 (11) 1 选择题 (11) 2 填空题 (17) 3 答案及部分解析 (23) 第5章循环结构习题 (26) 1 选择题 (26) 2 填空题: (32) 3 答案及部分解题分析 (39) 第6章数组习题 (41) 1. 单项选择题 (41) 2. 填空题 (44) 3. 判断题 (45) 4. 程序填空题 (45) 5. 阅读程序,分析程序的功能。 (49) 第7章函数习题 (55) 1. 单项选择题 (55) 2. 填空题 (56) 3. 判断题 (57) 4. 程序填空题 (58) 5. 写出下列程序运行结果 (59) 第8章指针习题 (67) 1 选择题 (67) 2 填空题 (69)

第1-3章C语言基础知识习题 1 选择题 1. 以下不是C语言的特点的是()。 A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 C._123_ D._ok 3.正确的C语言标识符是()。 A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 5. 下列符号中,不属于转义字符的是()。 A.\\ B.\0xAA C.\t D.\0 6.不属于C语言关键字的是()。 A.int B.break C.while D.character 7.是C语言提供的合法关键字的是()。 A.Float B.signed C.integer D.Char 8.以下不能定义为用户标示符的是()。 A.scanf B.V oid C._3com_ D.int 9.一个C程序是由()。 A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成 10. C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 11.下列说法中,错误的是()。 A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用 D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行

C语言试题及答案

一、单项选择题 1. 软件危机具有下列表现( d )。 I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住 III. 软件常常不可维护IV. 软件成本逐年上升 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。 A. 运行和维护阶段 B. 设计阶段 C. 代码实现阶段 D. 测试阶段 3. 下列属于软件的特点的是(D )。 A. 软件是一种逻辑实体,具有抽象性 ~ B. 软件在使用过程中没有磨损、老化的问题 C. 软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高 D. 以上都正确 4. 软件工程的出现是由于(D )。 A. 软件危机的出现 B. 计算机硬件技术的发展 C. 软件社会化的需要 D. 计算机软件技术的发展 5. 软件开发技术不包含( d )。 A. 软件开发方法学 B. 软件工程环境 C. 软件工具 D. 软件质量度度量 6. 软件工程的课程特点( D )。 【 I. 学科理论及其知识应用的多维性 II. 工程化 III. 浓厚的方法学色彩 IV. 实践性、指导性强 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 7. 下列属于应用软件的是( b )。 I. 计算机辅助教学软件II. 软件测试工具 III. 办公自动化软件IV. 工程与科学计算软件

A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 8. 需求分析阶段最重要的技术文档是( b )。 - A. 设计说明书 B. 需求规格说明书 C. 可行性分析报告 D. 用户手册 9. 以下关于数据流图的说法错误的是( c )。 A. 数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储 B. 数据流图是用作结构化分析的一种工具 C. 传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成 D. 数据流图的绘制采用自上向下、逐层分解的方法 10. 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( c )。 A. 数据库设计 B. 数据通信 C. 数据定义 D. 数据维护 11. 需求分析阶段的研究对象是( b )。 ¥ A. 系统分析员要求 B. 用户要求 C. 软硬件要求 D. 系统要求 12. 结构化方法的基本原则是( b )。 A. 模块化 B. 抽象与分解 C. 信息隐蔽 D. 逐步求精 13. 耦合度最高的是(b)耦合。 A. 环境 B. 内容 C. 控制 D. 数据 14. 内聚程度较低的是( a )内聚。 A. 偶然 B. 通讯 C. 顺序 D. 时间 15. 对一个程序来说,组成系统的模块数目( b ),则开发成本越小。 A. 越多 B. 越少 C. 顺序 D. 时间> 16. 画软件结构图时应注意调用关系只能是(B )。 A. 从下到上 B. 从上到下 C. 从左到右 D. 从右到左 17. 程序流程图中的箭头代表( b )。 A. 数据流 B. 控制流 C. 顺序流 D. 调用 18. 软件测试是软件质量保证的重要手段,下述( B )是软件测试的最基础环节。

相关文档