C语言程序设计

 

一、单项选择题

若以下各题所有库函数都可以合法使用,且变量定义如下:

int  m=5, i=3,j=2,*p, a=8,b=0;

int arr[10]={0,1,2,3,4,5,6,7,8,9},td[ ][3]={1,2,3,4,5,6};

float x=2.5,y=3.0;

double  z=0; long n=1;

char  c=’A’,ch[20]={’a’,’b’,’c’,’\0’,’d’,’\0’};

struct student

  {  int num;

     char name[20];

 float score;

 struct student *next;

}st1,st2,*ps;

    FILE *fp;

  1.若将3和10从键盘输入给变量a、x,输入语句为scanf(“a=%d,x=%f”,&a,&x);正确的键盘输入是(↙表回车):

  A a=3,x=10↙   B 3,10↙   C 3  10↙    D 3,10.0↙

2. 以下不是死循环的语句是:

A  for (  ; ;y+=i++);       

B  while(a) y+=i++ ;

C  do{ y+=i++}while (a>0);

D  for (b=0;(c=getchar()!=’\n’);)b++;

3.若p=arr;正确的语句是:  

A  *p=arr[10];  B  *p=arr[2*a];

C  p=arr[5];    D  p[i]=arr[0];

4.若ps=&st1;则下面描述正确的是:

  A  ps->num与st1->num等价。 B  ps.num与st1.num等价。

  C  ps->num与num等价。      D  ps->num与st1.num等价。

5.语句printf(“%d",a<i>j);的输出结果是:

A  1           B  0          C 8         D都不对

  6.表达式 j/i+a%i+x  的值是:

A  6           B  4.5       C  6.0       D 5.5

  7.表达式 b||a+i&&i<j  的值是:

A  不确定      B  0.0       C 1           D 0

8.若执行语句 a=b+=3*j+(int)x;则b的值为:

A  1           B  8          C  0         D 8.5

9. 若执行语句 a=b>j ?++i : i++;则a与i的值分别为:

A  4 ,4      B  3 ,4       C  4 ,3     D  3 ,3

  

  10.if (a<b) if (c==d) x=8;else x=1;表示的逻辑关系是:

a09628f2e5701e35236c0cc68a499d708d27d6fc?a09628f2e5701e35236c0cc68a499d708d27d6fc?             8   a<b 且c=d              8   a<b 且c=d

A  x=                         B  x=

             1   a<b 且c≠d             1   a≥b且c=d

 

a09628f2e5701e35236c0cc68a499d708d27d6fc?a09628f2e5701e35236c0cc68a499d708d27d6fc?             8   a<b 且c=d               8   a<b 且c=d

C  x=                         D   x=

  1. a≥b                     1   a<b

11.将字符串“Wan    Ming”输入数组ch中,正确的是:

    A、scanf(“%s”,ch)           B、scanf(“%s”,&ch)     

C、ch=“Wan    Ming”       D、gets(ch)

12. 执行语句printf(“%c”,td[1][0]+’A’)的结果是:

    A、A                       B、B     

C、D                       D、E

13.下列关于main()函数说法正确的是

  1. C语言程序总是从main()开始执行   
  2. C语言程序可以没有main()函数

C、C语言程序可以包含多个main()函数,但必须在不同的模块中       

D、C语言程序中main()函数不能有形式参数

14.下列关于函数说法正确的是

  1. C语言程序的函数内还可定义其他的函数
  2. C语言程序的函数内不可再定义其他的函数
  3. C语言程序的函数不能自己调用自己
  4. C语言程序中只有同一源文件中的函数才能有调用与被调用关系

15.若#define squ(x) x*x 执行语句printf(“result=%d”,squ(i+j));结果为:

A、result=36      B、36        C、result=11      D、11

16. 若#define squ(x) (x)*(x) 执行语句printf(“result=%d”,squ(i+j));结果为:

A、result=36      B、result=17     C、result=11      D、result=25

17.C语言对宏命令叙述正确的是

  1. 宏替换占用运行时间
  2. 编译程序对宏命令的处理是在对源程序中其它成分编译之前进行的
  3. 宏命令的处理是在程序执行时进行的
  4. 宏命令的处理是在程序连接时进行的

18. 若执行语句a- =a+=a*=10;a的值为:

A、0              B、-10           C、-100           D、100

19.若执行语句p=arr;  printf(“%d”,*(p+i));输出结果为

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

20.若执行printf(“%s”,ch);结果为:

A、’abc’          B、abc        C、abcd       D、abc\0d

21.若对数组进行初始化:char carr[ ]={’s’,’t’,’u’,’d’,’e’,’n’,’t’},barr[ ]=”student”;则正确的是

A、carr与barr长度相同         B、carr比barr长

C、carr与barr相同             D、carr比barr短

22.若有说明语句int (*p)[N];则p是

A、N个指向整型变量的指针        B、可指向有N个整型元素的一维数组的指针

C、指向N个整型变量的函数指针    D、有N个指针元素的一维指针数组

23.若有说明语句int *f( );则函数f是

A、f是一个指向整型变量的数组指针    B、f返回一个整型数据

C、f是一个指向整型变量的函数指针    D、f 返回一个整型指针,指向函数本身

 

24.若函数f定义如下:void f(char *d, char *s)

{ while ( *d++=*s++);

}

函数f的功能是:

A、串比较     B、串复制     C、求串长     D、串反向

25.表达式100+a+’a’+x*z的值的数据类型为

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

26.若要动态申请一个double型内存单元,正确的语句是

A、pd=double  malloc(sizeof(double))    B、pd=( * double)malloc(sizeof(double))

C、pd=double * malloc(sizeof(double))   D、pd=(double *)malloc(sizeof(double))

27.若要从键盘上输入67892到变量n中,正确的语句是

A、scanf(“%lf”,&n);              B、scanf(“%ld ”,&n);  

C、scanf(“%lf ”,n);               D、scanf(“%d ”,&n);    

28.判断字符变量c是否不为小写英文字母的正确表达式是

A、’a’<=c <=’z’                 B、c>= ‘a’ && c<=’z’

C、’a’≤c ≤’z’                 D、c<’a’ || c>’z’   

29.下列每组表达式被执行后,结果完全等价的是

A、 !(b= =0)与  !(!b )    B、b=(a=4,4*5) 与 b=a=4,4*5

C、float(i/j) 与 float i/j            D、0<x<100  与 x>0 && x<100

30.表达式(m&1)==(m%2)的值是

A、 0                        B、无法确定

C、 1                        D、以上都不对   

31.数学式ln2x+asin(60°)的C语言表达式是

A、log(2*x)+a*sin(60)          B、ln(2*x) +a*sin(60/180*3.14)

C、ln(2*x) +a*sin(60)           D、log(2*x)+a*sin(3.14*60/180)   

32. 要打开一个已经存在的非空文件file用于修改,则正确的语句是

A、fopen(“file”,”r+”)                    B、fopen(“file”,”w”)  

C、fopen(“file”,”a+”)                    D、fopen(“file”,”r”)  

33. 若打开文件时发生错误,则fopen()函数的返回值是

A、1           B、0         C、不确定          D、没有返回值  

34. 调用函数fseek(fp,-25L,2),其操作结果是

  1. 文件位置指针从文件开始处前移25字节   

B、文件位置指针从文件结尾处后移25字节  

C、文件位置指针从文件当前位置处前移25字节 

D、文件位置指针从文件当前位置处后移25字节

35. 能正确表示a和b同时为正或同时为负的逻辑表达式是

  1. (a>=0||b>=0)&&(a<0||b<0)
  2. (a>=0&&b>=0)&&(a<0&&b<0)
  3. (a*b>0&&(a*b<=0)
  4. a*b>0

 

36. 若x=y=z=1;表达式(x--||++y)&&(z++)执行后,x,y,z的值分别为:

A. 0,1,1      B. 0,1,2      C. 0,2,1     D. 0,2,2

37.下列变量的初始化,不正确的是:

A. int x,y=5;             B. float x=y=3.5;

    C. char s[]=”a”;          D. int a[][3]={{1},{},{0,9}};

38. 可以代替while(x!=0)中的条件x!=0的是:

A. x        B. !x        C. x==1        D. x!=1

39.有关函数参数,下列说法不正确的是:

A. 实参和形参是不同的变量;   B. 实参可以将数据传给形参;

C. 形参可以将数据传给实参;   D. 实参和形参必须个数相等,类型一致。

40.为避免嵌套的条件语句if-else的二义性,C语言规定else与if的配对原则是:

A. 同一行上的未配对if        B. 缩排位置相同的未配对if      

  C. 它之前最近的未配对的if    D. 它之后最近的未配对if

41.对于一个二维数组,以下几种方法中,不能正确表示i行j列元素的是:

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

42.下面语句段不是死循环的是:

A. for(i=1;;i++)                 B. k=0;

         s=s+i;                         do{ k++;

                                        }while(k>0);

   C. i=0;                           D. a=1;

      while(1)                          while(a<10)

      { i++;                            { if(a>5) continue;

        if(i==20) break; }                a++; }

43.下列字符串中,可以用作变量名的是:

A. _out2      B. 12abc     C. while        D. stu&3

44. 表达式0<a<5和0<a&&a<5的值分别为:

A. 0和0       B. 0和1       C. 1和0     D. 1和1

45.下列常数中,符合C语法规则的是:

 A. ‘\’        B. .5e2        C. 018        D. e3

46.以下为合法的整型常量的是:

 A. 027a    B. 0.0    C.  0x4e3     D.  3×102   

47.以下为合法的整型常量的是:

A. ‘3’       B. 281    C. 5af      D. ‘\101’

48.以下为合法的实型常量的是: 

 A. 1.5×102    B. 1e-5    C.  1e1.5    D.  E+5  

49.以下为合法的实型常量的是: 

A. π        B.  .5     C.  025.3     D.   0

50.以下为合法的字符型常量的是: 

  A. "A"    B. 64      C. '啊 '    D. '\n'

51. 以下为非法的字符型常量的是:

A. ‘ok’       B. ‘*’   C. ‘A’      D.‘\111’

  1. 以下为合法的变量定义的是: 
  1. #define N 10                B. int a=12,b,c;  float x,y,a=1.5;

int  a[3*N];                             

C. int m,f(x);                 D. char c,*pc=&c,n;  

53.以下为非法的变量定义的是:

A. char 21cn;           B. int  k=0,*p=&k;

C. int  a=b=c=21;       D. static char[4]=”Good”;

54.以下是合法的表达式的是:

A. y=mn        B. (x+y)++      C. x+y=8       D.  putchar('A ')

55. 以下是非法的表达式的是:  

A. a+=b*c      B. i=0,k=k++     C. k==0       D.  !a||m≤n &&7

56.下是非法赋值语句的是:

A.a+b=0                 B. pc=&x        

C. ps->name=”Tan Jing”   D. static char[4]=’G’,’o’,’o’,’d’

 

一、单项选择题

   1. A 2. D 3. D 4. D 5. B 6. B 7. D 8. B 9. B 10. A

   11.D 12.D 13. A 14.B 15.C 16 .D 17.B 18. A 19.C 20.B

   21. D 22. B 23 .C 24 B 25.C 26.D 27.B 28 D 29 A 30.C

   31. D 32.A 33 . B 34. B 35. D 36.B 37.B 38.A 39.C 40.C

41.D 42. C 43. A 44.C 45.D 46.C 47.B 48.B 49.B 50.D

51. A 52. A 53.B 54. D 55. D 56.C

 

 

 

 

 

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部