文档库 最新最全的文档下载
当前位置:文档库 › 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)若干子程序组成.

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

一、选择题

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

A)整型B)字符型C)实型D)数组类型2.在C 语言中,下列类型属于构造类型的是。

A)空类型B)字符型C)实型D)共用体类型3.在C 语言中,下列类型属于构造类型的是。

A)整型B)指针类型C)实型D)结构体类型4.在C 语言中,下列类型属于基本类型的是。

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

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

5.下列类型属于基本类型的是。

A)结构体类型和整型B)结构体类型、数组、指针、空类型C)实型D)空类型和枚举类型

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

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

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

A)_WL B)3_3333 C)int D)LINE 3

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

A)sum B)average C).day_night D)M.D.JOHN 9.下列字符串不属于标识符的是。

A)total B)lutos_1_2_3 C)_night D)$ 123

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

A)_above B)all C)_end D)# dfg

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

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

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

A)十进制、八进制、十六进制B)十二进制、十进制

C)六进制、八进制D)二进制、十进制

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

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

14.在C语言中,退格符是。

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

15.在C语言中,反斜杠符是。

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

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

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

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

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

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

A)d=678 B)d=?a?C)d=”d”D)d=?gjkl?

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

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

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

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

21.如果i=3,则k=(i++)+(++i)+(i++)执行过后k的值为,i的值为。

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

22.如果i=3,则k=(++i)+(++i)+(i++)执行过后k的值为,i的值为。

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

23.如果i=3,则k=(++i)+(++i)+(++i)执行过后k的值为,i的值为。

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

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

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

25.如果int i=3,int j=4,则k=i+++j执行之后k,i和j的值分别为。

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

26.已知在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

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

{char c=?A?;int i=10;

c=c+10;

i=c%i;

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

}

A)75,7 B)75,5

C)K,5 D)因存在非图形字符,无法直接显示出来

28.已知在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

29.C语言中最简单的数据类型包括。

A)整型,实型,逻辑型B)整型,实型,字符型

C)整型,字符型,逻辑型D)整型,实型,逻辑型,字符型

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

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

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

A)-0. B)?105?C)?AB?D)3+5

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

A)”x-y”B)?105?C)?Be?D)7ff

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

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

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

A)-0x2al B)lg3 C)?[?D]”CHINA”

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

A)-0x3bl B)123e+2.3 C)?}?D)6e+7

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

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

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

A)+c B)*X C)_DAY D)next day

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

main()

{int x;

x=-3+4*5-6;printf(“%d”,x);

x=3+4%5-6; printf(“%d”,x);

x=-3*4%-6/5; printf(“%d”,x);

x=(7+6)%5/2; printf(“%d”,x);

}

A)11 1 0 1 B)11 –3 2 1

C)12 –3 2 1 D)11 1 2 1 39.下面程序的输出结果是。

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

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

main()

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

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

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

}

A)7 28 B)无法计算C)7,4 D)8,4 41.下面程序的输出结果是。

main()

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

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

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

}

A)14 40 B)20 0 C)20 4 D)14 4 42.下面程序的输出结果是。

main()

{int i,j;

i=16;j=(i++)+i;printf(“%d”,j);

i=15;printf(“%d %d”,++i,i);

}

A)32 16 15 B)33 15 15

C)34 15 16 D)34 16 15

43.在C语言中,以下合法的字符常量是。

A)'\084' B)'\x43' C)'0' D)"\0"

44.若已定义X和Y为double类型,则表达式:x=1,y=x+3/2的值为。

A)1 B)2 C)2.0 D)2.5

45.下列程序的执行结果是。

#include

#define sum 10+20

main()

{

int b=0,c=0;

b=5;

c=sum*b;

printf("%d",c);

}

A)100 B)110 C)70 D)150

46..下列程序的执行结果是。

#include

#define sum(10+20)

mian()

{

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

a=sum;

b=5;

c=sum*b;

printf("%d",c);

}

A)100 B)110 C)70 D)150

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

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

48.表达式(double)(20/3)的值为。

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

49. 在下面几组数据类型中, 全是基本数据类型是哪一组。

A)整型实型字符型B)整型数组指针

C)数组结构体共用体D)指针逻辑型空类型

50. 以下说法正确的是。

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

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

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

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

51. 假设所有变量均为整型, 则表达式( a=5, b=2, a++, a+b ) 的值是。

A)8 B)7

C)6 D)5

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

int a, b ;

float x;

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

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

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

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

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

54. 若有如下定义: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

55. 以下表达式: 2+?a?+i*f, 其中i为整型变量,f为float型变量,则表达式的最终数据类型为。

A)int B)float C)char D)double

56. 若有:int a,b=2;则a=(b*100+1.5,100)则a的值是。

A)100 B)100.5 C)200.5 D)300.5

57. 有如下语句:

printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”);

执行语句后的最终结果为。

A)COMPUTER ,CMP . B)COMPUTER, CMP.

C)COMPU, CMP. D)COMPU, CMP

58.已知ch是字符型变量,下面不正确的赋值语句

是:。

A)ch=…\0? B)ch=…a+b?

C)ch=…7?+…9? D)ch=7+9

59.若x和y都为float型变量,且x=3.6, y=5.8 执行下列语句后输出结果为:。

printf(“%f”,(x,y));

A)3.600000 B)5.800000

C)3.600000,5.800000 D)输出符号不够,输出不正确值

60.设变量a是整型,变量f是实型,变量I是双精度型,则表达式10 + …a?+I * f 值

的数据类型:。

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

61. 已知字母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)不确定值

62.以下不正确的C语言标识符是。

A)ABC B)abc C)a_bc D)ab.c

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

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

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

64.若有说明语句:char c= …\64? ;

则变量C包含:。

A)1个字符B)2个字符

C)3个字符D)说明不合法,C值不确定。

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

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

66.设整型变量a值为9,则下列表达式中使b的值不为4的表达式:。

A)b=a/2 B)b=a%2

C)b=8-(3,a-5) D)b=a>5?4:2

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

int k=7, x=12;

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

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

68.以下选项中是C语言的数据类型的是:。

A)复数型B)逻辑型

C)双精度型D)集合型

第三章顺序结构程序设计

一、选择题

1.C语言中调用printf进行输出时需要注意,在格式控制串中,格式说明与输出项的个数必须相同。如果格式说明的个数小于输出项的个数,多余的输出项将;如果格式说明的个数多于输出项的个数,则对于多余的格式将输出不定值(或0)。

A)不予输出B)输出空格

C)照样输出D)输出不定值或0

2.在scanf函数的格式控制中,格式说明的类型与输入的类型应该一一对应匹配。如果类型不匹配,系统。

A)不予接收

B)并不给出出错信息,但不可能得出正确信息数据

C)能接受正确输入

D)给出出错信息,不予接收输入

3.下列说法正确的是。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

main()

{

int i=011,j=11,k=0x11;

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

}

A)9,11,17 B)9,11,11 C)11,11,11 D)11,11,16

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

#include

main()

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

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

C)-1 D)1

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

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

9.设有如下定义

int x=10,y=3,z;

则语句

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

的输出结果是。

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

10.设有如下定义

int x=10,y=5,z;

则语句

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

的输出结果是。

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

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

main()

{int x=10,y=10;

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

}

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

12.写出下面程序的输出结果。

main()

{int x;

x=-3+4*5-6;printf("%d",x);

x=3+4%5-6;printf("%d",x);

x=-3*4%6/5;printf("%d",x);

x=(7+6)%5/2;printf("%d",x);

}

A)11 1 0 1 B)11 -3 2 1 C)12 -3 2 1 D)11 1 2 1

13.写出下面程序的输出结果。

main()

{

int x,y,z;

x=y=1;

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

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

}

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

14.写出下面程序的输出结果。

main()

{

int i,j;

i=20;j=(++i)+i;printf("%d",j);

i=13;printf("%d %d),i++,i);

}

A)42 14,13 B)41 14,14 C)42 13 13 D)42 13 14

15.若有定义:int x,y;char a,b,c;并有以下输入数据(此处,代表换行符)

1 2

A B C

则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是。

A)scanf("x=%dy=%d",&x,&y);a=getchar();b=getchar();c=getchar();

B)scanf("%dy%d",&x,&y);a=getchar();b=getchar();c=getchar();

C)scanf("%d%d%c%c%c%c%c%c",&x,&y,&a,&a,&b,&b,&c,&c);

D)scanf("%d%d%c%c%c",&x,&y,&a,&b,&c);

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

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

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

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

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

18.以下C程序,正确的运行结果是。

main()

{

long y=-34567;

printf("y=%-8ld\n",y);

printf("y=%-08ld\n",y);

printf("y=%08ld\n",y);

printf("y=%+8ld\n",y);

}

A)y= -34567 B)y=-34567

y=- 34567 y=-34567

y=-0034567 y=-0034567

y=-34567 y=+ -34567

C)y=-34567 D)y= -34567

y=-34567 y=-0034567

y=-0034567 y=00034567

y=-34567 y=+34567

19. C程序的基本编译单位是。

A)函数B)文件C)源文件D)子程序

20.设有如下定义和执行语句,其输出结果为:。

int a=3,b=3;

a = --

b + 1; printf(“%d %d”,a,b);

A)3 2 B)4 2 C)2 2 D)2 3

21.根据定义和数据的输入方式,输入语句的正确形式为:。已有定义: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);

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

main( )

{ int I=012, j=12, k=0x12;

printf(“%d,%d,%d\n”,I, j, k );

A)10, 12, 18 B)12, 12, 12

C)10, 12, 12 D)12, 12, 18

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

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.下列运算符中优先级最高的是。(0级)

A)> B)+ C)&& D)!= 2.以下关于运算符优先级的描述中,正确的是。(0级)

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

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

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

3.逻辑运算符的运算对象的数据类型。(0级)

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

C)只能是整型或字符型D)任何类型的数据4.能正确表示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)

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

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 6.以下程序的运行结果是。

main( )

{

int c,x,y;

x=0;

y=0;

c=0;

c=x++&&y++;

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

}

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

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

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

C)(ch>=?A?)&&(ch<=?Z?)D)(ch>=?A?)AND(ch<=?Z?)

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

A)?a?<=ch<=?z?B)(ch>=a)&&(ch<=z)

C)(ch>=?a?)||(ch<=?z?)D)(ch>=?a?)&&(ch<=?z?)

9.以下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);

10.分析以下程序:

main( )

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

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

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

以上程序。

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

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

11.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是。main( )

{ int x;

scanf(“%d”,&x);

if(x++>5) printf(“%d”,x);

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

}

A)7和5 B)6和3 C)7和4 D)6和4

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

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 13.写出下面程序的执行结果。(2级)

main()

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

if(z<0)

if(y>0) x=3;

else x=5;

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

if(z=y<0) x=3;

else if(y= =0 ) x=5;

else x=7;

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

printf("%d\t",z);

}

A)1 7 0 B)3 7 0 C)5 5 0 D)1 5 1 14.假定所有变量均已正确说明,下列程序段运行后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 15.写出下面程序的运行结果是。(2级)

main()

{int x,y=1,z;

if(y!=0) x=5;

printf("x+%d\t",x);

if(y= =0) x=3;

else x=5;

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

x=1;

if(z<0)

if(y>0)x=3;

else x=5;

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

if(z=y<0)x=5;

else x=7;

printf("x=%d\t",x);

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

if(x=y=z)x=3;

printf("x=%d\t",x);

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

}

A)x=5 x=5 B)x=5 x=5 x=1 x=1

x=7 z=0 x=5 z=0

x=3 z=1 x=3 z=0 C)x=5 x=5 D)x=5 x=5 x=5 x=1

x=7 z=0 x=7 z=0

x=3 z=1 x=3 z=0 16.若有以下函数关系

x<0 →y=2x

x>0 →y=x

x=0 →y=x+1

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

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; 17.若有以下变量定义:

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");

}

18. 以下关于运算符优先顺序的描述正确的是。

A)关系运算符<算术运算符<赋值运算符<逻辑运算符

B)逻辑运算符<关系运算符<算术运算符<赋值运算符

C)赋值运算符<逻辑运算符<关系运算符<算术运算符

D)算术运算符<关系运算符<赋值运算符<逻辑运算符

19. 能正确表示a>=10或a<=0的关系表达式是。

A)a>=10 or a<=0 B)a>=10 | a<=0

C)a>=10 && a<=0 D)a>=10 | | a<=0

20. 以下不正确的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++;}

21. 当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

22. 以下if语句中语法错误的是。

A)if (a>b)printf(“%f”,a); B)if(a>b)printf(“%f”,a);

else printf(“%f”,b);

C)if(a>b)printf(“%f”,a) D)if(a>b)printf(“%f”,b);

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

23. 能表示整数x符合下面两个条件的语句是。

(1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除.

A)(x%4==0&&x%100!=0)||x%400==0

B)(x%4==0||x%100!=0)&&x%400==0

C)(x%4==0&&x%400!=0)||x%100==0

D)(x%100==0||x%4!=0)&&x%400==0

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

后变量ch是值为:。

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

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

25.若I为整型变量,则下列程序段的运行结果为。

I=322;

if(I%2==0) printf(“#####”)

else printf(“*****”);

A)##### B)#####*****

C)***** D)有语法错误,无法输出结果

26.已知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

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

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

28.已知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

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

main( ) {int x=2,y=-1,z=2;

if (x

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

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

30.设a、b和c是int型变量,且a=2,b=4,c=6,则下面表达式中值为0的是:。

A)‘a’+ …b?B)a<=b

C)a||b+c&&b-c D)!( (a

31. 在C的if语句中,可用作判断的表达式是:。

A)关系表达式B)逻辑表达式

C)算术表达式D)任意表达式

32.下面能正确表示变量a在区间[0,5]或(6,10)内的表达式为:。

A)0<=a || a<=5 ||6

B)0<=a&&a<=5 || 6

C)(0<=a||a<=5)&&(6

D)0<=a&&a<=5&&6

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

switch(c)

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

……

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

default 语句n;}

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

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

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

34.以下if 语句语法正确的是:。

A)if ( x > 0 )

printf(“ %f ”, x )

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

B)if ( x > 0 )

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

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

C)if ( x > 0 )

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

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

D)if ( x > 0 )

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

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

35.为了表示关系x>=y>=z,应使用C语言表达式。

A)(x>=y)&&(y>=z) B)(x>=y)AND(y>=z)

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

36.若欲表示在if后a不等于0的关系,则能够正确表示这一关系的表达式为。

A)a<>0 B)!a C)a=0 D)a

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

main()

{int x,y,z;

x=y=1;

z=x++-1;

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

z+=-x+++(++y||++z);

printf(%d,%d”,x,z);

}

A)2,0 3,-1 B)2,1 3,0

C)2,0 2,1 D)2,1 0,1

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

main()

{int x=40,y=4,z=4;

x=y= =z;

printf(“%d”,x);

x=x= =(y-z);

printf(%d”,x);

}

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

39.若x=3,y=z=4,则下列表达式的值分别为。

(1)(z>=y>=x)?1:0

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

A)0 1 B)1 1 C)0 0 D)1 0

40.若x=3,y=z=4,则下列表达式的值分别为。

(1)(z>=y>=x)?1:0

(2)y+=z,x*=y

A)0 24 B)1 8 C)0 8 D)1 12

41.在以下一组运算符中,优先级最高的运算符是。

A)<= B)= C)% D)&&

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

main()

{

int a=-1,b=4,k;

k=(++a<=0)&&!(b--<=0);

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

}

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

43.若已定义int a=25,b=14,c=19;以下三项运算符(?:)所构成的语句的执行结果是。

a++<=25&&b--<=2&&c++?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b= %d,c=%d\n",a,b,c)

A)(***a=25,b=14,c=19) B)(***a=26,b=13,c=19)

C)(###a=25,b=14,c=19) D)(###a=26,b=13,c=19)

计算机C语言趣味的程序设计——题目百例

Contest - 2011级C语言课程大作业 Start Time: 2012-02-19 16:25:00 End Time: 2012-03-01 22:00:00 Current Time: 2012-2-23 15:51:18 Status:Running Public

写在最前: 本文档中的题目;在不不同的编译器中可能会有提示错误,呵呵,小小的动动手改下变量的定义就可以运行了……………….. 由于能力不足..有题目未解决的…或者有错误的我会…认真听取大家的..意见的…. 呵呵……..有一两个….偷了下懒哦……… 提供原题目还有本人自己的解答的源代码。感谢大家的。。。。建议……………. 问题A: 趣味程序设计_狼追兔子 时间限制: 1 Sec 内存限制: 128 MB 提交: 341 解决: 63 [提交][状态][讨论版] 题目描述 一只兔子躲进了n个环形分布的洞的某一个中。狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找;也没有找到,就隔两个洞,到第六个洞去找。以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中? 输入 有多组测试数据,读取到文件结尾符为止。每组测试数据输入n(2≤n≤100),即洞穴个数。输入到文件结尾符为止。 输出 兔子可能藏匿的洞。如果不止一个,按从小到大的顺序输出。如果不存在,输出空行。

样例输入 10 8 15 样例输出 2 4 7 9 2 4 5 7 8 9 11 12 14 提示 用一个数组a[10],对应的元素a[0],a[1],a[2]……a[9]对应表示10个洞,初值均置1。通过一个循环用“穷举法”找兔子,第n次查找对应第(n-1)%10个洞,如果在第(n-1)%10个洞中没有找到兔子,因此将数组元素a[(n-1)%10]置0值。循环完成后,检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身该洞中。 #include #include int ok[110]; int main() { int n,s,i,find; while(scanf("%d",&n)!=EOF) { memset(ok,0,sizeof(ok)); for(i=1;i<=200;i++) if(!ok[find=(i*(i+1)/2)%n]) if(find==0) ok[n]=1; else ok[find]=1; for(s=0,i=1;i<=n;i++) s+=ok[i]; for(i=1,find=0;i<=n;i++) if(!ok[i]) { if(find!=(n-s-1)) { printf("%d ",i);find++;

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语言试题及答案

一、单项选择题 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 )。

c语言趣味编程实例

1、编程序求5X+2Y+Z=50 的所有非负整数解。 #include int main() { int x, y, z; int count = 0; for (x = 0; 5 * x <= 50;x++) for (y = 0; 2 * y <= 50; y++) for (z = 0; z <= 50; z++) { if (5 * x + 2 * y + z == 50) { count++; printf("%d :", count); printf("x=%d,y=%d,z=%d", x, y, z); printf("\n"); } } return 0; } 2、把25个字母A、B、C、···、X、Y按如下要求打印出来:从最中间的字母M 开始打印,然后一左一右依次打印出其它字母,即M,L,N,K,O,...。 要求:初始化时按字母表顺序赋值。 #include int main() { char x[] = "ABCDEFGHIJKLMNPQRST"; int k; int n = 0; while (x[n]) { n++; if (x[n] == 'M') { k = n;break; } } printf("%c,",x[k]); for (int i = 1; i <= 12; i++) if (i <= 11) printf("%c,%c,", (x[k] - i), (x[k] + i)); else printf("%c,%c。", (x[k] - i), (x[k] + i)); printf("\n");

(完整版)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. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串

选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

C语言试卷及答案

一、选择题(每题 1 分,共 20 分) 1. C 语言程序的三种基本结构是顺序结构、选择结构和结构。 A、循环 B、递归 C、转移 D、嵌套 2. 下列标识符中,合法的是_______ 。 A) unsigned B) 5ab C) INT# D)_num2 3. 若float x ;x = 10/4 ;x的值是。 A、2.5 B、2.0 C、3 D、 2 4. 表达式!x 等价于。 A、x==0 B、x==1 C、x != 0 D、x != 1 5. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为。 A、算术运算、赋值运算、关系运算 B、关系运算、赋值运算、算术运算 C、算术运算、关系运算、赋值运算 D、关系运算、算术运算、赋值运算 6. 能将高级语言编写的源程序转换为目标程序的是。 A、链接程序 B、解释程序 C、编译程序 D、编辑程序 7. 下列语句定义pf为指向float类型变量f的指针,是正确的。 A、float f, *pf = f; B、float f, *pf = &f; C、float *pf = &f, f; D、float f, pf = f; 8. 一个C程序的执行是从。 A、本程序的main函数开始,到main函数结束 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束 9. 能正确表示“当x的取值在[1,10]或[[200,210]范围内为真,否则为假”的表达式是________。 A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B、(x>=1)||(x<=10)||(x>=200)||(x<=210) C、(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D、(x>=1)||(x<=10)&&(x>=200)||(x<=210) 10. 对两个数组a和b进行如下初始化 char a[]=“ABCDEF”;char b[]={ …A?,?B?,?C?,?D?,?E?,?F?}; 则以下叙述正确的是。 A、a和b数组完全相同 B、a和b长度相同 C、a和b中都存放字符串 D、a数组比b数组长度长 11. 是不正确的字符常量。 A、'\n' B、'1' C、"a" D、'\101' 12. 若变量已正确定义,语句“if(a>b) k=0; else k=1;”和等价。 A、k=(a>b)?1:0; B、k=a>b; C、k=a<=b; D、a<=b ? 0 : 1; 13. 设变量定义为“int x, *p=&x;”,则&*p相当于。 A、p B、*p C、x D、*&x 14. 有两个字符数组a、b,则以下正确的输入语句是。 A)gets(a,b); B) scanf(“%s%s”,a,b); C) scanf(“%s%s”,&a,&b); D) gets(“a”),gets(“b”); 15. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是。 A、地址传递 B、单向值传递

C语言经典编程

猴子吃桃 1、题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 1.程序分析:采取逆向思维的方法,从后往前推断。 2.程序源代码: main() { int day,x1,x2; day=9; x2=1; while(day>0) {x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/ x2=x1; day--; } printf("the total is %d\n",x1); } 回文数问题 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 1. 程序分析:学会分解出每一位数,如下解释:(这里是一种简单的算法) 2.程序源代码: main( ) { long a,b,c,d,e,x; scanf("%ld",&x); a=x/10000;/*分解出万位*/ b=x%10000/1000;/*分解出千位*/ c=x%1000/100;/*分解出百位*/ d=x%100/10;/*分解出十位*/ e=x%10;/*分解出个位*/ if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a); else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b); else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c); else if (d!=0) printf("there are 2, %ld %ld\n",e,d); else if (e!=0) printf(" there are 1,%ld\n",e); } 杨辉三角 题目:打印出杨辉三角形(要求打印出10行如下图) 1.程序分析: 1 1 1

CC语言趣味程序设计编程百例精解

C-C++语言趣味程序设计编程百例精解() ?81.角谷猜想 日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。请编程验证。 *问题分析与算法设计 本题是一个沿未获得一般证明的猜想,但屡试不爽,可以用程序验证。题目中给出的处理过程很清楚,算法不需特殊设计,可按照题目的叙述直接进行证。 *程序说明与注释 #include<stdio.h> int main() { int n,count=0; printf("Please enter number:"); scanf("%d",&n); /*输入任一整数*/ do{ if(n%2)

n=n*3+1; /*若为奇数,n乘3加1*/ printf("[%d]:%d*3+1=%d\n",++count,(n-1)/3,n); } else { n/=2; /*若为偶数n除以2*/ printf("[%d]: %d/2=%d\n",++count,2*n,n); } }while(n!=1); /*n不等于1则继续以上过程*/ } 82.四方定理 数论中著名的“四方定理”讲的是:所有自然数至多只要用四个数的平方和就可以表示。 请编程证此定理。 *问题分析与算法设计 本题是一个定理,我们不去证明它而是编程序验证。 对四个变量采用试探的方法进行计算,满足要求时输出计算结果。 *程序说明与注释 #include<stdio.h> #include<stdlib.h> int main()

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章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (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 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系

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语言编程100例

趣味 c 语言编程100 例 【程序 1】 题目:有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、 2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) / *以下为三重循环 */ for( j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /* 确保 i 、 j、 k 三位互不相同 */ printf("%d,%d,%d\n",i,j,k); } } 程序 2】 题目:企业发放的奖金根据利润提成。利润 (I) 低于或等于 10 万元时,奖金可提 10% ;利润高于 10 万元,低于 20 万元时,低于 10 万元的部分按 10% 提成,高于 10 万元的部分,可可提成 7.5% ; 20 万到 40 万之间时,高于 20 万元的部分,可提成 5% ; 40 万到 60 万之间时高于

40 万元的部分,可提成 3% ;60 万到 100 万之间时,高于 60 万元的部分,可提成 1.5% ,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总 数? 1. 程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2. 程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000) bonus=bonus4+(i-400000)*0.03;

C语言试题及答案

C语言试题及答案 Company number【1089WT-1898YT-1W8CB-9UUT-92108】

第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语言试卷及答案1

c语言试卷及答案1

浙江理工大学 C程序设计试题(一) 试题二、语言基础题(本题共30分) (一)判断题(本题共10分,每小题1分) 说明:在以下提供的若干陈述中,逐一判断其正确与否,选A表示正确,选B表示错误。 (16) C语言程序的三种基本结构是顺 序、选择和嵌套。 (17) 在C语言程序中,在函数内部定 义的变量称为全局变量。 (18) 运算符“=”和“&=”的优先级相 同。 (19) ‘%f’是不正确的字符常量。 (20) 运算符“+”不能作为单目运算符。 (21) 如果运算符“*”和“/”都是右 结合的,则表达式10*6/5的值是10。 (22) s(s-a)(s-b)(s-c)是合法的C语 言表达式。 (23) 表达式!!6的值是6。 (24) 表达式~(~2<<1)的值是5。 (25) 对于变量定:int a[10],*p=a+8; 数组a的最后一个元素是p[1]。

(二)单选题(本题共20分,每小题2分) (26) 执行语句printf("(26) ", "A");将得到出错信息。 A、%u B、%s C、%e D、%d (27) 设c是一个字符变量,求解表达 (27) 后,c的值不是1就是0。 A、c=getchar()!=’\n’ B、(c=getchar()!)=’\n’ C、c=’1’ D、c=EOF (28) 下列定义中,(28) 定义的变 量可以存放-123.4。 A、long a; B、 unsigned b; C、int d; D、float c; (29) 对于变量定义;char *pp[100], pp是一个(29) 。 A、函数 B、数组元素 C、指针变 量D、数组 (30) 下列程序段的输出结果是 (30) 。 char *st[ ]={ "SUM","MOON","STAR","X"}; printf("(%s,%c) ",*(st+1)+1,*(*(st+2)+2)+2)

C语言模拟试卷及答案详解

2012―2013 学年第一学期 《C 语言程序设计》模拟试卷(B) 一、单项选择题(每题1分,共30分) 1.C 语言程序总是从______开始执行。 A) 第一条语句 B) 第一个函数 C) 主函数 D) 子程序 2.以下选项中正确的C 语言标识符是______。 A) a+b B) 3Dmax C) _25 D) %d 3.以下选项中正确表示字符型常量的是______。 A) '\t' B) "a" C) 'abc' D) '279' 4.以下选项中属于C 语言基本数据类型的是______。 A) 逻辑型 B) 双精度型 C) 复数型 D) 集合型 5.已知:int a=8,b=5,c;,则执行语句c=a%b+0.3;后,c 的值是______。 A) 1 B) 1.3 C) 3 D) 3.3 6.设在程序中的a ,b ,c 均被定义为整型并且已赋予大于1的值,能正确表示代数式abc 1的表达式 是______。 A)1/a*b*c B)1/(a*b*c) C)1/a/b/(float)c D)1.0/a/b/c 7.已知字符'A'的ASCII 码值为十进制数65,则执行语句printf("%c",'A'+2);后,输出结果是______。 A) A B) C C) 65 D) 67 8.已知:int i=1;,则执行语句printf("%d",i++);后,输出结果是______。 A) 1 B) 2 C) -1 D) -2 9.以下选项中,和语句x*=y+2;等价的是______。 A) x=x*y+2; B) y=x*(y+2); C) x=y+2*x; D) x=x*(y+2); 10.以下选项中能正确判断字符变量c 不是大写字母的表达式是______。 A) c<'A' && c>'Z' B) !(c<'A' && c>'Z') C) c>='A' || c<='Z' D) !(c>='A' && c<='Z') 11.已知:float a=7.0,b=2.5;,则表达式(int)a/(int)b 的值是______。 A) 2 B) 2.8 C) 3 D) 3.5 12.已知:int a,b,c;,若要给变量a 、b 、c 输入数据,以下正确的输入语句是______。 A) scanf ("%d,%d,%d",a,b,c); B) scanf ("%d,%d,%d",&a;&b;&c); C) scanf ("%d,%d,%d",&a&b&c); D) scanf ("%d,%d,%d",&a,&b,&c); 13.已知:int a=1,b=2;,则执行语句printf("%d",a>b?a:b);后,输出结果是______。 A) 0 B) 1 C) 2 D) 以上都不正确 14.以下选项中叙述正确的是______。 A) 在switch 语句中,不一定使用break 语句 B) break 语句必须与switch 语句中的case 配合使用 C) 在switch 语句中必须使用default D) break 语句只能用于switch 语句中 15.执行以下程序后,输出结果是______。 #include void main()

复试C语言常考趣味程序设计

狼追兔子 1 巧夺偶数 2 五猴分桃 3 高次方数 4 借书方案 5 过桥问题 6 数制转换7 打渔晒网8 喝酒问题9 哥德巴赫猜想10 打印日历11 抓交通肇事逃逸犯12 反序数13 新郎新娘14 称重砝码15 求车速16 谁是窃贼17 出售金鱼18 百钱百鸡19 谜语博士20 猜牌术(-)21 舍罕王的失算22 怎样存钱利最大23 猜牌术(二)24 爱因斯坦的数学题25 取火柴游戏26 平分鱼和筐27 可逆素数28 三色球问题29 抢n游戏30 问题A: 趣味程序设计_狼追兔子 时间限制: 1 Sec 内存限制: 128 MB 提交: 341 解决: 63 [提交][状态][讨论版] 题目描述 一只兔子躲进了n个环形分布的洞的某一个中。狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找;也没有找到,就隔两个洞,到第六个洞去找。以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中? 输入 有多组测试数据,读取到文件结尾符为止。每组测试数据输入n(2≤n≤100),即洞穴个数。输入到文件结尾符为止。 输出 兔子可能藏匿的洞。如果不止一个,按从小到大的顺序输出。如果不存在,输出空行。 样例输入 10 8 15

样例输出 2 4 7 9 2 4 5 7 8 9 11 12 14 提示 用一个数组a[10],对应的元素a[0],a[1],a[2]……a[9]对应表示10个洞,初值均置1。通过一个循环用“穷举法”找兔子,第n次查找对应第(n-1)%10个洞,如果在第(n-1)%10个洞中没有找到兔子,因此将数组元素a[(n-1)%10]置0值。循环完成后,检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身该洞中。 #include #include int ok[110]; int main() { int n,s,i,find; while(scanf("%d",&n)!=EOF) { memset(ok,0,sizeof(ok)); for(i=1;i<=200;i++) if(!ok[find=(i*(i+1)/2)%n]) if(find==0) ok[n]=1; else ok[find]=1; for(s=0,i=1;i<=n;i++) s+=ok[i]; for(i=1,find=0;i<=n;i++) if(!ok[i]) { if(find!=(n-s-1)) { printf("%d ",i);find++; } else printf("%d",i); } printf("\n"); } return 0; } 问题B: 趣味程序设计_巧夺偶数 时间限制: 1 Sec 内存限制: 128 MB

C语言试题及答案

一 下面四个选项中,均是不合法的用户标识符的选项是()。 A、float la0 _A B、A P_0 do C、_123 temp int D、b-a goto int 表达式18/4*sqrt(4.0)/8值的数据类型为()。 A、double B、float C、int D、不确定 设: long w=65535,t=7654321; 根据下面的输出结果,正确的程序段是( ). w=65535,t=7654321 end A、printf("w=%5d,t=%7d\n",w,t);printf("%s","end'); B、printf("w=%5ld,t=%7ld",w,t);printf("%c","end"); C、printf("w=%5ld,t=%7ld\n",w,t);printf("%s","end"); D、printf("w=%5u,t=%7u\n",w,t);printf( "end"); 选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达式,但其值只能被判断为“真”或“假”。哪个数作为逻辑“假”值()。 A、0 B、-1 C、非零的数 D、1 假定有以下变量定义: int k=7,x=12; 则能使值为3的表达式是:( ) A、(x%=k)-(k%=5)

B、x%=(k-k%5) C、x%=k-k%5 D、x%=(k%=5) 在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的 表达式是()。 A、(E>0||E<0) B、(E==0) C、(!E==0) D、(E!=0) 下面有关 for 循环的正确描述是()。 A、for 循环是先执行循环体语句,后判断表达式 B、在 for 循环中,不能用 break 语句跳出循环体 C、for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 D、for 循环只能用于循环次数已经确定的情况 在C语言中,一维数组的定义方式为:类型说明符数组名()。 A、[整型常量]或[整型表达式] B、[正整型常量表达式] C、[整型表达式] D、[常量表达式] 以下正确的说法是( ). A、函数的类型决定返回值的类型 B、定义函数时,形参的类型说明可以放在函数体内 C、return后面不能为表达式 D、如果形参与实参的类型不一致,以实参类型为准 若调用一个函数,且此函数中没有return语句,则正确的说法是: 该函数()。 A、没有返回值 B、返回一个不确定的值 C、返回若干个系统默认值 D、能返回一个用户所希望的值 设函数的调用形式如下: f((x1, x2),(y1,y2,y3)),则函数有 ( )个形参. A、2 B、4 C、3 D、5

c语言试题及答案24213

C语言部分 一、选择题(每小题2分,共10分) (下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。错选或漏选均不得分)。 1、若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有( A,C,D, E ) A、*(a+1)为元素6的地址 这里a+1=a[1]的地址;*(a+1)的值是6,故A正确。 B、*(a[1]+1)的值为2 为8,故B不正确 C、**(a+1)+2的值为8 这里a+1是一个指针,指向的是a[1]. *(a+1)为a[1],a[1]指向的是a[1][0]. **(a+1)为6,加2得8,故C正确; D、a[0]与a相同 因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故D正确。 E、a[1][2]的值为10 它是指第二行的第三个元素,为10,正确 2、对函数的正确使用方法描述( A,C,D )。 A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组 B、实参数组元素和形参数组元素类型可以不一致 C、形参数组长度可以不指定 D、形参数组长度可以大于实参数组长度 E、数组名做参数属于值传递 3、对静态变量的正确描述( A,B,D,E ) A、静态局部变量在静态存储区内分配单元() B、静态外部变量可以赋初值,也可以不赋初值 C、静态外部变量的作用与外部变量相同 D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。 E、静态局部变量只赋一次初值 4、下列描述正确的是( A ,C)。 A、由main 函数及其参数argc和* argv[]可以实现命令行方式 B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中 //先写缓冲区数据到文件中,再释放文件指针 C、字符数组并不要求它的最后一个字符是‘\0’ //是的,以字符指针指向的字符串才要求,因为只有这样,才能知道字符串的长度,而在字符数组中,不用\0,一样可以知道到哪里是字符数组的结尾。 D、‘A’和“A”都是字符串常量 E、若char*S=“\ta\017bc”;则指针变量S指向的字符串所占的字节数是7 5、在缓冲文件系统中用于读写的函数有( A,B,D ) A、putchar () B、fread() C、rewind () D、purw() E、fseek() 二、程序阅读,并给出运行结果(共10分,每题5分)。 (1)main() { unsigned a,b,x int n; a=0x763 输出结果:

相关文档