文档库 最新最全的文档下载
当前位置:文档库 › C语言编程练习

C语言编程练习

C语言编程练习
C语言编程练习

C语言编程练习(一)

选择题

1. 一个C程序的执行是从( )。

A) 本程序的main函数开始,到main函数结束

B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序的main函数开始,到本程序文件的最后一个函数结束 D) 本程序文件的第一个函数开始,到本程序main函数结束

2. 下列选项中,不能用作标识符的是( )。

A) _1234_ B) _1_2 C) int_2_ D) 2_int_

3. 以下定义语句中正确的是( )。

A) char a='A'b='B'; B) float a=b=10.0;

C) int a=10,*b=&a; D) float *a,b=&a;

4.设有以下定义:#define d 2

int a=0; double b=1.25; char c=’A’; 则下面语句中错误的是( )。

A) a++; B) b++ C) c++; D) d++;

5.以下4个选项中,不能作为一条C语句的是( )。

A) {;} B) a=0,b=0,c=0; C) if(a>0); D) if(b==0) m=1;n=2;

6.有以下定义语句 double a,b; int w; long c;

若各变量已正确赋值,则下列选项中正确的表达式是( )。

A) a=a+b=b++ B) w%(int)a+b) C) (c+w)%(int)a D) w=a==b;

7.设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是( )。

A) p=1; B) *q=2; C) q=p; D) *p=5;

8.设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是( )。

A) scanf(“%d”,pa) B) scanf(“%d”,a)

C) scanf(“%d”,&pa) D) scanf(“%d”,*pa);

9.若有说明:char *language[]={”FORTRAN”,”BASIC”,”PASCAL”,”JA V A”,”C”};则表达式*language[1]>*language[2]比较的是()。

A)字符B和字符P B) 字符串FORTRAN和字符串BASIC

C)字符F和字符B D) 字符串BASIC和字符串PASCAL

10. 执行语句for(i=1;i++<4;);后变量i的值是( )。

A) 3 B)4 C) 5 D) 不定

11.以下4组用户定义标识符中,全部合法的一组是()

A)_total clu_1 sum B)if -max turb

C)txt REAL 3COM D)int k_2 _001

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

#include

main( )

{

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

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

}

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

13.以下正确的叙述是()

A) 在C语言中,main函数必须位于文件的开头

B) C语言每行中只能写一条语句

C) C语言本身没有输入、输出语句

D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误

14.设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是()

A)scanf("%d",pa); B)scanf("%d",a); C)scanf("%d",&pa); D)scanf("%d",*pa);

15.若有以下程序段, int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是()

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

16.能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是()

A) a>=10 or a<=0 B)a>=0|a<=10 C)a>=10 &&a<=0 D)a>=10‖a<=0

17.执行下面的程序时,将1、2、3、4分别赋给a、b、c、d,正确的输入是()

main( )

{

int a,b,c,d;

sca nf(“%d,%d,%d%d”,&a,&b,&c,&d);

}

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

18.有以下程序段

main( )

{

int k=0;

while(k=1) k++;

}

则while循环执行的次数是()

A) 无限次 B) 有语法错,不能执行C) 一次也不执行 D) 执行1次

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

#include

main( )

{

int a = 5, b = 4, c = 6, d;

printf(“%d”,d=a>b?(a>c?a:c): b);

}

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

20.下面是对数组a的初始化,其中不正确的是()

A)a[5]={"ABCD"} B)a[5]={'A','B','C','D'}

C)a[5]="" D)a[5]="ABCDE"

21.以下各组常量中,完全符合C语言常量形式的是 .

A) 123, e-10 B) 05678, ‘a’

C) 0xbf, -1e05, D) 3.1416, 10-5

22.假定 int a=4, b=3, c=1, 表达式: (a=b)+(a>b==c) 的值是 .

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

23.假定 int a=0, b=1, 表达式: !(a=’0’) && b--, a+b 的值是。

A) 0 B) 1 C) 48 D) 49

24.在以下各表达式中,与 !(a+b+c) && a*b*c 不等价的是。

A) a+b+c==0 && a&&b&&c B) !(a+b+c) && a!=b!=c

C) ! (a+b+b)*a*b*c D) a*b*c && a+b==c

25.以下各循环语句中,不是无限循环的是。

A) for ( i=5; i --<5; ) i=4; B) for( i=0; i>=0 i++ );

C) for ( i=0,j=10; i-j; i++,j--) D) for ( i=0; i<0; i --)

26. 设char a[]=”ab’1’\\\1278”;则数组a的长度是。

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

27.假定 int a=100; char x=’1’; 则执行printf(“%c,%d”,a,x); 的输出结果是。

A) 100,1 B) d,49 C) 100,49 D) d,1

28.以下论述中正确的是

A) 实型数据占字节数多于整型数据,因此,实型运算比整型运算精确。

B) 二维数组元素有两个下标,在特殊情况下也可以是一个下标。

C) 如果a是带符号整型变量,b是无符号整型变量,则执行a=b后a的值一定为正。

D) 存放文本的文件称文本文件,存放二进制数的文件称二进制文件。

29.若有函数关系: y=1/x 当x!=0 时 y=1020 当 x=0 时

则以下程序段中不能正确表达上面关系的是。

A)if (x) y=1.0/x; B) if (x==0) y=1e20;

C) y= 1e20; D) y=1.0/x; else y=1e20;

if (x!=0) y=1.0/x; if (x) y=1.0/x; if (!x) y=1e20;

30.以下程序的功能是。 main()

{ int a[3][3]={1,2,3,4,5,6,7,8,9}, i,*p=a,s=0; for(i=0; i<3; i++)

for( p+=i; p

A) 求矩阵a的所有元素之和

B) 求矩阵a的上三角元素之和

C) 求矩阵a的下三角元素之和

D) 都不是

31.以下程序中,有一个不符合C语法规则的语句,这个语句是 . #define N 5 main() {

A) int a[2*N]={0,0,0,0,0,0,0,0,0,0}; {

B) int i, a=2;

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

D) for ( i=0; i<2*N; i++ ) printf ( "%d",a[i] ); } }

32.假定要使以下程序的输出结果第一行都是1,第二行都是2,第三行都是3,则正确的数据输入格式是。 main()

{ int i, j, a[3][3] for ( j=0; j<3; j++)

for( i=0; i<3; i++) scanf (“%d”, &a[i][j] ); for( i=0; i<3; i++)

{ printf (“\n”); for ( j=0; j<3; j++) printf (“%d”, a[i][j] ); } }

A) 1 2 3 1 2 3 1 2 3 B) 1 1 1 2 2 2 3 3 3

C) 1,2,3,1,2,3,1,2,3 D) 1,1,1,2,2,2,3,3,3

33.假定有如下求最大值和最小值的程序: main()

{ int i,a, max=-32768, min=32767; for ( i=0; i<10; i++) { scanf (“%d”, &a ); if (a < min ) min=a; else if ( a > max ) max=a; }

printf (“\n max,min= %d,%d”, max, min); }

则以下各结论中正确的是。

A) 程序完全正确 B) 当输入递增数据时结果不正确

C) 当输入递减数据时结果不正确 D) 输入任何数据结果都不正确

34.以下程序中不符合C语法规则的语句是 . main() {

A) int a[‘a’*2],*p=a,i;

B) for(i=0;i<10;i++) scanf(“%d”,a);

C) for(i=0;i<10;i++) scanf(“%d”,p++);

D) for(i=0;i<10;i++) scanf(“%d”,a++); }

35.在以下各函数中,不能正确将数列a实行倒序存放的是。

A) void inv ( int a[], int n) B) void inv ( int a[], int n) { int i, j, t; { int i=0, j=n-1, t; for( i=0; i

{t=a[i]; a[i]=a[n-i-1]; a[n-i-1]=t;} {t=a[i]; a[i]=a[j]; a[j]=t;} } } C) void inv ( int a[], int n) D) void inv ( int *a, int n) { int i=n/2-1, j=i+1, t; { int *i=a, *j=a+n-1, t; for( i+1 i--, j++) for( i

选择题参考答案

1、A

2、D

3、C

4、B

5、D

6、C

7、D

8、A

9、A 10、C 11、A 12、C 13、D

14、A

15、 B 16、 D 17、 D 18、 A 19、 C 20、 D 21、C 22、C 23、D 24、B 25、

D 26、D 27、B 28、B 29、D 30、B 31、D

32、A

33、C

34、D

35、A

相关文档