C语言程序设计试题及答案十.docx

上传人:b****5 文档编号:5896653 上传时间:2023-01-02 格式:DOCX 页数:27 大小:27.88KB
下载 相关 举报
C语言程序设计试题及答案十.docx_第1页
第1页 / 共27页
C语言程序设计试题及答案十.docx_第2页
第2页 / 共27页
C语言程序设计试题及答案十.docx_第3页
第3页 / 共27页
C语言程序设计试题及答案十.docx_第4页
第4页 / 共27页
C语言程序设计试题及答案十.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

C语言程序设计试题及答案十.docx

《C语言程序设计试题及答案十.docx》由会员分享,可在线阅读,更多相关《C语言程序设计试题及答案十.docx(27页珍藏版)》请在冰豆网上搜索。

C语言程序设计试题及答案十.docx

C语言程序设计试题及答案十

C语言程序设计试题及答案(十)

一、选择题:

1.以下不是C语言的特点的是(   )

A.C语言简洁、紧凑                 B.能够编制出功能复杂的程序

C.C语言可以直接对硬件进行操作    D.C语言移植性好

2.以下不正确的C语言标识符是(   )。

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

3.一个c程序的执行是从(  ).

A.main(   )函数开始,直到main(   )函数结束

B.第一个函数开始,直到最后一个函数结束

C.第一个语句开始,直到最后一个语句结束

D.main(   )函数开始,直到最后一个函数结束

4.以下不正确的语句(设有intp,q)是(   )。

A.P*=3; B.p/=q;  C.p十=3; D.p&&=q

5.下列四组选项中,均不是C语言关键字的选项是(   ).

A.define   B.getc     C.include   D.while    

if          char        sanf        go

type          printf      case        pow

6.下面四个选项中,均是合法整形常量的选项是(  ).

 A.160             B.-0xcdf       C.-01       D.-0x48a

  -0xffff           01a          986,012    2e5

      011             0xe            0668        0x

7.下面四个选项中,均是不合法浮点数的选项是(  ).

 A.160.           B.123           C.-.18       D.-e3

0.12             2e4.2             123e4     0.234

      e3                .e5              0.0          1e3

8.若有代数式3ae/bc,则不正确的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

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

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

10.若有定义:

inta=7;floatx=205,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )。

     A.2.500000         B.2.750000         C.3.500000         D.0.000000

11.sizeof(float)是( )。

A.一个双精度型表达式              B.一个整型表达式

      C.一种函数调用                       D.一个不合法的表达式

12.设intn=3;则n十十的结果是(   )。

    A.2        B.3      C.4      D.5

13.设有说明:

charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为(  )。

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

14.若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是( ).

A.scanf(“%d%d1x,%1e”,&x,&y,&z);

B.scanf(“%2d*%d%1f”,&x,&y,&z);

C.scanf(“%x%*d%o”,&x,&Y);

D.scanf(“%x%o%6.2f”,&x,&y,&z);

15.以下说法正确的是( ).

A.输入项可以为一个实型常量,如scanf(“%f”,3.5);

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

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

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

16.以下程序的执行结果是(  )。

#include

main()

{

intsum,pad;

sum=pad=5;

pad=sum++;

pad++;

++pad;

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

}

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

17.巳知字母A的ASCII码是65,以下程序的执行结果是( )。

#include

main()

{

 charc1='A',C2='Y';

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

A.A,Y        B.65,65         C.65,90             D.65,89

18.为了避免嵌套的if-else语句的二义性,c语言规定else总是与(  )组成配对关系。

A.缩排位置相同的if

B.在其之前末配对的if

C.在其之前未配对的最近的if

D.同一行上的if

19.逻辑运算符两侧运算对象的数据类型( ).

 A.能是0或1

 B.只能是0或非0正数

 C.只能是整型或字符型数据

     D.可以是任何类型的数据

20.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是(  ).

A.’x’&&’y’

B.x<=y

C.x||y+z&&y-z

D.!

((x<y)&&!

z||1)

21.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。

则以下不能满足要求的表达式是( ).

A.A%2==1   B.!

(A%2==0)   C.!

(A%2)   D.A%2

22.以下不正确的if语句形式是( ).

A.if(x>y&&x!

=y);

B.if(x==y)x十=y;

C.if(x!

=y)scanf(“%d”,&x)e1sescanf(”%d,&y);

D.if(x<y){x十十;y十十;}

23.以下if语句语法正确的是( ).

A.if(x>0)

   printf(“%f“,x)

   elseprintf(“%f”,-x);

B.if(x>0)

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

elseprintf(“%f”,-x)

C.if(x>0)

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

elseprintf(“%f”,-x)

D.if(x>0)

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

elseprintf(“%f”,-x)

elseprintf(“%f”,-x);

24.阅读以下程序

main()

{inta=5,b=0,c=0;

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

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

}

以上程序(  ).

A.语法有错不能通过编译                      B.可以通过编译但不能通过连接

C.输出***                                   D.输出$$$

25.以下程序运行结果是( ).

main()

{inta=100,x=10,y=20,ok1=5,ok2=0;

 if(x

   if(y!

=10)

    If(!

ok1)

         a=1;

      else

         if(ok2)  a=10;

 a=-1;

printf(“%d\n”,a);

}

A.1          B.0             c.-1                  D.不确定

26.执行以下程序段后,变量a,b,c得值分别是( ).

intx=10,y=9;

inta,b,c;

a=(--x==y++)?

–x:

++y;

b=x++;

c=y;

A.a=9,b=9,c=9                 B.a=8,b=8,c=10

C.a=9,b=10,c=9                D.a=1,b=11,c=10

27.若w,x,y,z,m均为int型变量,则执行下面语句后的m值是( ).

w=1;  x=2;  y=3;  z=4;

m=(w

w:

x;

m=(m

m:

y;

m=(m

m:

z;

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

28.语句while(!

e);中的条件!

e等价于(   )。

    A.e==0      B.e!

=1          C.e!

=0            D.~e

29.下面有关for循环的正确描述是(  )

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

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

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

D.for循环体语句中,可以包含多条语句,但要用花括号括起来

30.C语言中while和do-while循环的主要区别是( ).

A.do-while的循环体至少无条件执行一次

B.while的循环控制条件比的循环控制条件严格

C.do-while允许从外部转到循环体内

D.do-while的循环体不能是复合语句

31.以下程序段( ).

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

x);

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

C.循环执行二次          D.有语法错误

32.下面程序的运行结果是( ).

#include

main()

{inty=10;

do{y--;}while(--y);

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

A.-1       B.1           C.8               D.0

33.以下正确的描述是( ).

A.continue语句的作用是结束整个循环的执行

B.只能在循环体内和switch语句体内使用break语句

C.在循环体内使用break语句或continue语句的作用相同

D.从多层循环嵌套中退出时,只能使用goto语句

34.c语言中(   )。

A.不能使用do-while语句构成的循环

B.do-while语句构成的循环必须用break语句才能退出

C.do—whiLe语句构成的循环,当while语句中的表达式值为非零时结束循环

D.do—while语句构成的循环,当while语句中的表达式值为零时结束循环

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

    A.整型常量  B.整型表达式C.整型常量或整型表达式D.任何类型的表达式

36.在C语言中,一位数组的定义方式为:

类型说明符数组名( )。

A.[常量表达] B.整型表达式C.[整型常量]或[整型表达式]D.[整型常量]

37.以下不能对二维整形数组a进行正确初始化的语句是( )。

A.inta[2][3]={0};

B.inta[][3]={{1,2},{0}};

C.inta[2][3]={{1,2},{3,4},{5,6}};

D.inta[][3]={1,2,3,4,5,6};

38.若有说明:

int a[][4]={0,0};则下面正确的叙述是()。

A.数组a中每个元素均可得到初值0

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

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

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

39.若有说明:

inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()。

A.2          B.3         C.4         D.无确定值

40.下面程序的运行结果是()。

charc[5]={‘a’,’b’,’\0’,’c’c,’\0’};

printf(“%s”,c);}

A.‘a’’b’

B.ab

C.abc

D.ab

41.有两个字符数组a、b,则以下正确的输入语句是( )。

gets(a,b);

scanf(“%s%s”,a,b);

scanf(“%s%s”,&a,&b);

gets(“a”),gets(“b”);

 

A.s[j+=]=s[i]         B.s[++j]=s[i]

C.s[j]=s[i];j++      D.s[j]=s[i]

42.若使用一维数组名作函数实参,则以下正确的说法是( ).

A.必须在主调函数中说明此数组的大小

B.实参数组类型与形参数组类型可以不匹配

C.在被调函数中,不需要考虑形参数组的大小

D.实参数组名与形参数组名必须一致

43.以下正确的说法是( ).

A.如果在一个函数中的复合语句中定义了一个变量,则该变量只在该复合语句中有效

B.在该函数中有效

C.在本程序范围内均有效

D.非法变量

44.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( ).

A.自动(auto)B.静态(static)C.外部(extern)D. 寄存器(register)

45.以下程序的运行结果是( )。

#defineMIN(x,y)  (x)<(y)?

(x):

(y)

main()

{inti=10,j+15,k;

k+10*MIN(i,j);

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

}

A.10          B.15            C.100              D.150

46.C语言的编译系统对宏命令的处理是( )。

A.在程序运行时进行的

B.在程序连接时进行的

C.和C程序中的其它语句同时进行编译的

D.在对源程序中的其它语句同时进行编译的

47.请读程序

#include

#defineMUL(x,y)(x)*y

main()

{inta=3,b=4,c;

c=MUL(a++,b++);

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

}

上面程序的输出结果是( )。

A.12      B.15      C.20       D.16

48.以下程序的输出结果为( )。

#definePT   5.5

#defineS(x)  PT*x*x

main()

{inta=1,b=2;

printf("%4.1\n",S(a+b));

}

A.12.0       B.9.5      C.12.5    D.33.5

49.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用<>括起时,寻找被包含文件的方式是()。

A.仅仅搜索当前目录

B.仅仅搜索源程序所在目录

C.直接按系统设定的标准方式搜索目录

D.先在源程序所在目录搜索,再按系统设定的标准方式搜索

50.以下正确的描述是()。

A.C语言的预处理功能是指定完成宏替换和包含文件的调用

B.预处理指令只能位于C源程序文件的首部

C.凡是C源程序中行首以“#”标识的控制行都是预处理指令

D.C语言的编译预处理就是对源程序进行初步的语法检查

51.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是( )。

 A.c=*p1+p2;    B.p2=c     C.p1=p2      D.c=*p1*(*p2);

52.设有下面的程序段:

         chats[]=”china”;char*p;p=s;

         则下列叙述正确的是( )。

A.s和p完全相同

B.数组s中的内容和指针变量p中的内容相等

C.s数组长度和p所指向的字符串长度相等

D.*p与s[0]相等

53.下面程序的运行结果是( )。

        #include

        #include

        main()

        {

char*p1,*p2,str[50]=”abc”;

p1=”abc”; p2=”abc”;

strcpy(str+1,strcat(p1,p2));

printf(“%s\n”,str);

}

A.abcabcabc  B.bcabcabc C.aabcabc  D.cabcabc

54.若有定义:

inta[2][3];则对数组a的第i行第j列(假设i,j已正确说明并赋值)元数值的正确引用为()。

       A.*(*(i+j)+j) B.(a+i)[j]  C.*(a+i+j)    D.*(a+i)+j

55.若有定义:

int (*p)[4];则标识符p( )。

A.是一个指向整型变量的指针

B.是一个指针数组名

C.是一个指针,它指向一个含有四个整型元素的一维数组

D.定义不合法

56.若有以下定义和赋值语句,则对b数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的非法引用为( )。

intb[2][3]={0},(*p)[3];

p=b;

A.*(*(p+i)+j)         B.*(p[i]+j)

C.(p+i)+j              D.(*(p+i))[j]

57.当说明一个结构体变量时系统分配给它的内存是( ).

A.各成员所需内存量的总和

B.结构中第一个成员所需内存量

C.成员中占内存量最大者所需的容量

D.结构中最后一个成员所需内存量

58.C语言结构体类型变量在程序执行期间( ).

A.所有成员一直驻留在内存中

B.只有一个成员驻留在内存中

C.部分成员驻留在内存中

D.没有成员驻留在内存中

59.以下对C语言中共用体类型数据的叙述正确的是(  )。

      A.可以对共用体变量名直接赋值

      B.一个共用体变量中可以同时存放其所有成员

      C.一个共用体变量中不可能同时存放其所有成员

      D.共用体类型定义中不能出现结构体类型的成员

60.C语言共用体型变量在程序运行期间 ( )  。

         A.所有成员一直驻留在内存中

         B.只有一个成员驻留在内存中

         C.部分成员驻留在内存中

         D.没有成员驻留在内存中

61.请读程序片段:

intx=20;

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

上面程序片段的输出结果是(  ).

A.02

B.–20

C.-21

D.-11

62.在位运算中,操作数每左移一位,其结果相当于(  ).

A.操作数乘以2

B.操作数除以2

C.操作数除以4

D.操作数乘以4

63.系统的标准输入文件是指( )。

A.键盘       B.显示器       C.软盘       D.硬盘

64.当顺利执行了文件关闭操作时,fclose函数的返回值是( )。

 A.-1      B.TURE       C.0      D.1

65.已知函数的调用形式:

fread(buffer,size,count,fp);其中buffer代表的是         ( )。

     A.一个整形变量,代表要读入的数据项总数

     B.一个文件指针,指向要读的文件

     C.一个指针,指向要读入数据的存放地址

     D.一个存储区,存放要读的数据项

 

二、填空题:

1.C程序的基本单位是         。

2.表达式10%3的结果是          。

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

4.在C语言中(以16位PC机为例),一个float型数据在内存中所占用的字节数为     ;

5.C语言所提供的基本数据类型包括:

                                           。

6.表达式pow(2.8,sqrt(double(x)))值的数据类型为                 。

7.以下程序的执行结果是                               。

#include

main()

{

floatf=3.5;

printf("%f,%g",f,f)

}

8.以下程序的执行结果是                 。

#include

main()

{

floatf=31.41592;

printf("%f,%e",f,f)

}

9.以下程序的执行结果是                         。

#include

main()

{

inta,b,c;

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

if(a>c)

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

else

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

printf("end\n");

}

10.在C语言中,表示逻辑“真”值用                .

11.有intx,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x︱︱z)的值为             。

12.下面程序从键盘输入的字符中统计数字字符的个数,用换行符结束循环。

请填空。

intn=0,c;

c=getchar();

while(             )

 {if(c>=‘0’&&c<=‘9’)n++;

 c=getchar();

 }

13.执行下面程序段后,k值是                      .

k=1;n=263;

do{k*=n%10;n/=10} while(n);

14.下面程序段中循环体的执行次数是     

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1