C语言程序设计练习题1及答案 下载本文

C语言练习题(一)

一 选择题

1以下不正确的C语言标识符是( D )。 A.ABC B.abc C.a_bc D.ab.c 2以下正确的c语言标识符是( )。

A.%x B.a+b C.a123 D.test! 3一个c程序的执行是从( ).

A.main( )函数开始,直到main( )函数结束 B.第一个函数开始,直到最后一个函数结束 C.第一个语句开始,直到最后一个语句结束

D.main( )函数开始,直到最后一个函数结束 4 一个C语言程序是由()。

A)一个主程序和若干子程序组成 B)函数组成 C)若干过程组成 D)若干子程序组成

5 C语言程序的基本单位是( )。

A.过程 B.函数 c子程序 D.标识符 6 编辑程序的功能是( )。

A.建立并修改程序 B.将c源程序编译成目标程序

C.调试程序 D.命令计算机执行指定的操作 7以下结果为整数的表达式(设有int i;char c;float f;)(). A.i+f B.i*c C.c+f D.i+c+f 8以下不正确的语句(设有int p,q)是( )。

A.P*=3; B.p/=q; C.p+=3; D.p&&=q; 9 以下使i的运算结果为4的表达式是()。 A.int i=0,j=0;

(i=3,(j++)+i); B.int i=1,j=0;

j=i=((i=3)*2); C.int i=0,j=1;

(j==1)?(i=1);(i=3); D.int i=1,j=1; i+=j+=2;

10设n=10,i=4、则赋值运算n%=i+1执行后,n的值是(). A.0 B.3 C.2 D.1

11逗号表达式(a=3*5,a*4),a+15的值为( ),a的值为( )。 ①A.15 B.60 C.30 D.不确定 ②A.60 B.30 C.15 D.90

12 如果a=1,b=2,c=3,d=4,则条件表达式a<b?a:c<d?c:d的值为(). A.1 B.2 C.3 D.4

13 若有代数式3ae/bc,则正确的C语言表达式是(C) A)a/b/c*e*3 B)3*a*e/b/c C)3*a*e/b*c D)a*e/c/b*3 14在C语言中,要求运算数必须是整形的运算符是(D).

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

15 若以下变量均是整形,且num=sum=7;则计算表达式sum=num++,sum++,++num后sum的值为(A).

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

16在C语言中,int、char和short三种类型数据在内存中所占用的字节数(D)。

A)由用户自己定义 B)均为2个字节 C)是任意的 D)有所用的机器的机器字长决定

17 设变量a是整型,f是实型,i是双精度型,则表达式10+?a?+i*f值的数据类型为(C)。 A)int B)float C)double D)不确定

18 设int n=3;则++n的结果是( C ),n的结果是(C) A)2 B)3 C)4 D)5 19语句(1,2,3,4)的结果是( D )。

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

20有如下程序,若要求a1、a2、c1、c2的值分别为10、20、A、B,正确的数据输入是(D).

main() {

int a1,a2; char c1,c2;

scanf(\scanf(\}

A)1020AB B)10 20 AB

C)10 20 ABC D)10 20AB

21已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据是,正确的数据输入方式是(A)。(注:︼表示空格,表示回车) int a1,a2;char c1,c2;

scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);

A) 10A︼20B B) 10︼A︼20︼B C) 10 A20B D) 10A20︼B

22阅读以下程序,当输入数据的形式为:25,13,10,正确的输出结果为(D)。

main() { int x,y,z;

scanf(“%d%d%d”,&x,&y,&z); printf(“x+y+z=%d\\n”,x+y+z); }

A) x+y+z=48 B) x+y+z=35 C) x+z=35 D) 不确定值

23 设X,Y均为float变量,则以下不合法的赋值语句是(B) A) ++x;

B) y=(x%2)/10; C) x*=y+8; D) x=y=10;

24 以下程序的执行结果是( A )。 #include main() {

int sum,pad; sum=pad=5; pad=sum++; pad++; ++pad;

printf(\}

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

25有以下定义:int a; long b; double x,y;则以下选项中正确的表达式是(B) A)a%(int)(x-y) B)a=x!=y; C)(a*y)%b D)y=x+y=x 26以下选项中能表示合法常量的是( D ) A)整数:1,200 B)实数:1.5E2.0 C )字符斜杠:?\\? D)字符串:\

27表达式a+=a-=a=9的值是(D)

A)9 B)-9 C)18 D)0 28有以下程序(B) #include main()

{int a=1,b=2; while(a<6){b+=a;a+=2;b%=10;} printf(”%d,%d\n”,a,b); }

程序运行后的输出结果是 A)5,11 B)7,1 C)7,11 D)6,1

29有以下程序(B) #include<stdio.h> main()

{int y=10; while(y--); printf(”y=%d\n”,y); }

程序执行后的输出结果是 A)y=0 B)y= -1 C)y=1 D)while构成无限循环

30有以下程序(C) #include<stdio .h> main()

{char s[」=”rstuv\; printf(”%c\n”,*s+2); }

程序运行后的输出结果是 A)tuv B)字符t的ASCII码值 C)t 错

31有以下程序(B) #include<stdio.h> #include<string.h> main()

{char x[]=”STRING”; x[0」=0;x[1]=?\0?; x[2」=?0?;

printf(”%d %d\\n”,sizeof(x),strlen(x)); }

程序运行后的输出结果是 A)6 1 B)7 0 C)6 3 D)7 1 32有以下程序(D) #include<stdio.h> int f(int x); main() {int n=1,m; m=f(f(f(n)));

printf(”%d\n”,m); } int f(int x) {return x*2;}

程序运行后的输出结果是 A)1 B)2 C)4 D)8 33以下程序段完全正确的是(C) A)int *p; scanf(\&p); B)int *p; scanf(“%d”,p);

C)int k, *p=&k; scanf(\); D)int k, *p:; *p= &k; scanf(“%d”,p); 34下列定义数组的语句中,正确的是(B) A)int N=10; int x[N];

B)#define N 10 int x[N]; C)int x[0..10]; D)int x[];

35若要定义一个具有5个元素的整型数组,以下错误的定义语句是(D) A)int a[5]=﹛0﹜;

B)int b[]={0,0,0,0,0}; C)int c[2+3];

D)出