找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1808|回复: 1

《C语言》模拟自测题

[复制链接]
发表于 2019-7-2 09:16:21 | 显示全部楼层 |阅读模式

C语言》模拟自测题3
一选择题
1下面四个选项中,均是不合法的用户标识符的选项是(        )。
A)A            B) float       C) b-a        D) _123
   p_0             lao            goto          temp
  do               _A            int           INT
2下面四个选项中,均是不合法浮点数的选项是(       )。
A)160.       B) 123       C)-018       D) -e3
   0.12         2e4.2        123e4         .234
   e3             .e5         0.0           1e3
3下面四个选项中,均是不正确的八进制或十六进制数的选项是(       )。
A)016       B)0abc           C)010           D)0a12  
  0x8f        017              -0x11           7ff
  018        0xa              0x16            -123
4  C语言中规定,简单变量做实参时,它和对应形参之间的数据传递方式是(    )。
(A)地址传递   (B)单向值传递  (C)有实参传给形参,再由形参传回给实参    (D)由用户指定传递方式
5可用作用户标识符的一组标识符是(      )。
    A)void         B)a3_b3          C)For            D)2a
      define         _xyz           -abc              DO
WORD        IF             Case              sigeof

6  以下描述中,正确的是(    ) 。
 A)预处理是指完成宏替换和文件包含中指定的文件的调用
 B)预处理命令只能位于C源程序的开始 
 C)凡是以"#"标识的控制行都是预处理命令      D)预处理是在编译之前处理
答案为D

7在下列for循环中,其循环次数是(     )
for(x=1,y=0;(y!=123)&&(x<4); x++);
 A)4  B)3    C)1   D)无数多次

8  语句while(!e==0);什么时候将会陷入死循环(    )
A)e==0  B)e!=0  C)e!=1  D)e!=-1

9现已定义整型变量inti=1;
执行循环语句while(i+ +<5);后,i的值为(      )。
A)1     B)5       C)6           D)以上三个答案均不正确

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

11若有说明语句:charc='\72';则变量c (      )。
A)包含1个字符              B)包含2个字符
C)包含3个字符              D)说明不合法,c的值不确定

12设X、Y、Z都是int整型变量,且x=2,y=3, z=4,则下面的表达式中,值为0的表
达式是(         )。
A)'x'&&'z'                B) (!y==1)&&(!z= = 0)
C)(x<y)&&!z||1            D)x||y+y&&z-y

13以下叙述中正确的是(       )。
A)在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示
B)若在定义语句double a,b;之后,因为变量a,b已正确定义,因此立刻执行这样的表达式:a=b+9.381是正确的
C)在C程序中,常量、变量、函数调用,都是表达式的一种
D)在main函数中,变量一经定义,系统将自动赋予初始值

14设有说明:charw;int x;float y;double z;则表达式w*x+z-y值的数据类型为(        )。
A)float         B) char             C) int            D) double

15假定所有变量均已定义, ok1=1; ok2=2; ok3=3; x=15;
 if(!ok1) x--;
  else if (ok2) if (ok3) x=3;
   else x=4;
上面程序段运行后x的值是:(     )
A)14   B)4   C)15   D)3

16在C语言中,逻辑值"真"的表示是用(           )。
A)true    B) 整型值0    C) 非另整型值    D) T

17以下不正确的叙述是(        )。
A)在C程序中,逗号运算的优先级最低
B)在C程序中,APH和aph是两个不同的变量
C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

18以下结果为整型的表达式(设有int i; char c; float f;)是(       )。  
A)i+f         B)i*c        C)c+f           D)i+c+f

19设有逗号表达式(a=3*5,a*4),a+15,a的值为(         )。
A)60    B)30   C)15   D)90

20设Intn=3;则有表达式n++,n的结果是(       )。
A)2     B)3     C)4      D)5

21若在scanf函数语句中没有非格式字符作输入数据的间隔,则可用(         )。
作为输入数据的间隔。
A)空格      B)逗号         C)TAB             D)回车

22使用scanf函数时,在源程序开头(        )。
A)书写#include"stdio.h"           B)书写#include <stdio.h>
C)不必写#include<stdio.h>    D)书写#include"scanf.h"

23下述程序执行后,变量i的结果是(      )
int i;
char *s="a\045+045\''b";
for (i=0;*s++;i++)
A.7    B.8    C.9    D.10

24在C语言中,对函数而言的概念有(       )。
A) 函数可以嵌套定义  B) 函数不能嵌套定义    C) 函数可以嵌套调用 
D) 函数可以递归调用    E) 函数可以没有返回值

25在下列程序中,调用f(8)的值是(      )
  int f(int n)
  { if(n==1) return(1);
   else if(n==2) return(2);
   else return(f(n-1)+f(n-2));
  }
(A) 13   (B) 21    (C) 55   (D) 34

二判断题
1、C语言规定标识符只能由字母、数字和小数点三种字符组成。

2、C语言使字符型数据和整型数据之间可以通用。一个字符数据既可以以字符形式输出,也可以以整数形式输出。  

3、C语言中定义了一个变量,代表内存中的一个地址。

4、表达式3.5+ 1/2 + 56%10的计算结果是7.5 。

5、由赋值运算符将一个变量和一个表达式连接起来的式子称为"赋值表达式"。   

6、设C语言中,一个int型数据在内存中占2个字节,则int数据的取值范围为-32768-32769。  

7、在使用scanf函数之前应包含头文件"math.h"。

8、在scanf("%c%c",&c1,&c2)函数中,当输入为字符a,b时,将a赋给c1,将b赋给c2。

9、C程序中,函数调用时用数组名作为函数的实参,则传递给形参的是数组的首元素值。

10、假定变量x,y,z在说明时已赋初值,则if  ((x=y+5)>0)  z=x; 是正确的  

11、在C语言中,任何一个表达式的最后加上一个分号就构成一个合法的语句。  

12、在printf函数中,格式字符"%5c"可用来输出5个字符。

13、可以对两个实型表达式进行“相等”的判断。

14、C语言的编译系统对宏命令的处理是在对源程序中其他成份正式编译之前进行的。  
15、算术运算符的优先级别高于关系运算符

16、inta=0,b=1,c=2,x,y;,则!(x=a)&&(y=b)&&c的值为1

17、return语句可以带有表达式也可以不带。

18、求n!既可以用递归的方式,也可以用递推的方式。 

19、与下列程序段等价的赋值语句是 y=x>0?1:x<0?-1:0   
  if(x>0)y=1;
  else if(x<0) y=-1;
  else y=0; 
20、在C语言中,for语句既可以用于计数类型循环又可以用于条件类型循环。
三、填空题

1、若x和n均是int型变量,且x的初值为12,n的初值为5,则执行下面表达式后,x的值为(       )。x%=(n%=2)
2、假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为【    】。
3、若a是int型变量,则执行下面表达式后,a的值为【   】。a=25/3%3
4、表达式1/3*3的计算结果是【  】。
5、若a是int型变量,则计算表达式后a的值为【   】。a=25/3%3
6、在输入字符数据时,若"格式控制字符串"中没有非格式字符,则认为所有输入的字符均为【     】字符。
7、在scanf函数中,【    】表示变量a的地址。
8、以下程序的运行结果是【         】。
main()
{printf("%s,%5.3s","computer","computer");  }
9、在C语言中,表示逻辑"真"值用【     】
10、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b/3+c/2的值是【   】
11、设a=-1,b=0,c=1,则表达式a||b+c&&b==c的值是【  】
12、有inta=3,b=4,c=5,x,y;,则以下表达式的值为【  】
!(x=a)&&(y=b)&&c
13、以下程序的输出结果是 (  )。
 #define M(x,y,z) x*y+z
 main(  )  
  { int a=1,b=2, c=3;    
 printf("%d\n", M(a+b,b+c, c+a)); }

14、以下程序中,printf语句执行的次数是(    )。
 #define N 2 
 #define M N+1 
   #define NUM 2*M+1
 main( ) 
  {int i; 
   for(i=0;i<=NUM;i++) 
    printf("%d\n",i); } 
15、若有int i = 10,j=0; 并执行下列程序段:
 switch ( i )
 { 
  case 9: i += 1; break;
  case 10:
  case 11: i -= 2; break;
  default: j+= 3; break;
 }
 则变量i的结果是(    )。






















以下为本试卷的标准答案:
一选择题
1、C
2、B
3、D
4、B
5、B
6、D
7、B
8、B
9、B
10、C
11、C
12、A
13、B
14、C
15、D
16、D
17、C
18、D  
19、B
20、C
21、ACD
22、ABC
23、B
24、BCD
25、D

二判断题
1、错
2、对
3、对
4、错
5、对
6、错
7、错
8、错
9、错
10、错
11、对
12、对
13、错
14、对
15、对
16、错
17、对
18、对
19、错
20、对

三、填空题

1、0
2、9
3、2
4、0
5、2
6、有效
7、&a
8、computer,com
9、非零数
10、1
11、1
12、0
13、12
14、7
15、8

 楼主| 发表于 2019-7-2 09:16:45 | 显示全部楼层

C语言》模拟自测题2
一、选择题
1下面四个选项中,均是非法常量的选项是(     )。
A)'as'        B)'\\'             C)-0x18         D)0xabc
   -0fff       '\01'              01177           '\0'
  '\0a'        12,456             0xf             "a"

2下面四个选项中,均是不合法整型常量的选项是(      )。
  A)-0f1        B)-0xcdf    C) -018   D)-0x48eg
    -0xffff       017          999       -068

0011          12,456       5e2      03f


3下面正确的字符常量是(    )。
A)"c"        B) '\\''          C) 'W'           D) '

4以下每个选项都代表一个常量,其中正确的整型常量是(      )。
A)1.2         B)-20         C)1,000       D)4 5  6

5以下选项中不合法的用户标识符是(      )。
   A)_123     B)Printf       C)A$            D)Dim

6在下列C语言程序中,可以用做变量名的是(       )。
A)1
B)a1
C)int
D)*p

7C语言提供的合法数据关键字是(      )。
A)float
B)Sagned
C)Integer
D)Char

8以下符号中不能用作用户标识符的符号是(      )。
A)_256                            B)void
C)scanf                           D)Struct

9若k为int型变量,则以下语句(      )。
k=8567;
printf("|%-06d|\n",k);
A)输出格式描述不合法              B)输出为|008567|
C)输出为|8567|                    D)输出为|-08567|

10sizeof(float)是(      )。
A)一个双精度表达式          B)一个整型表达式
C)一种函数调用              D)一个不合法的表达式

11在C语言中,int、char和short三种类型数据在内存中所占用的字节数(      )。
A)由用户自己定义            B)均为2个字节
C)是任意的                  D)由所用机器的机器字长决定

12判断char型变量c1是否为小写字母的正确表达式为  (         )。
A)'a'<=c1<='z'           B) (c1>=A. &&(c1<='z')
C)('a'>=c1)||('z'<=c1)    D)(c1>='a')&&(c1<='z')

13以下叙述中正确的是(     )。
A.a是实型变量,C语言允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型值
B.在赋值表达式中,赋值号右边即可以是变量也可以是任意表达式
C.执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0
D.已有a=3,b=5当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3

14表达式18/4*sqrt(4.0)/8值的数据类型为(    )。
A)int        B)float     C)double     D)不确定

15设int a=1,则执行完循环While(a++<5);a的值是:(   
A)6       B)5       C)1        D)-264

16为了避免嵌套的if-else语句的二义性,C语言规定else总是与(     )组成配对关系。
(A)缩进位置相同的if       (B)在其之前未配对的if 
(C)在其之前最近的未配对的if   (D)同一行上的if

17已知各变量的类型说明如下:
inti=8,k,a,b;
unsignedlong w=5;
doublex=1.42,y=5.2;
则以下符合C语言语法的表达式是(      )。
A)a+=a-=(b=4)*(a=3)
B)a=a*3=2
C)x%(-3)
D)y=float(i)

18若变量已正确定义并赋值,下面符合C语言语法的表达式是(      )。
   A)a=a+7;    B)a=7+b+c,a++  C)int 12.3%4    D)a=a+7=a+b

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

20设Intn=3;则n++的结果是(        )。
A)2     B)3     C)4      D)5

21用小数或指数形式输入实数时,在scanf函数语句里格式字符为(        )。
A)i              B)f            C)e         D)g

22可以使用(        )输入字符型数据。
A)putchar(c);  B)getchar(c);  C)getchar();     D)scanf("%c",&c);

23.在一个源程序文件中定义的全局变量,其作用域为(    )。
A) 整个源程序文件   B) 从定义处开始到本源程序文件结束
C) 整个主函数       D) 所处C程序的所有源程序文件中

24 C语言中,一个函数调用语句为fun((e1,e2,e3),(e4,e5),e6);,其实参个数为(     )。
A) 3个   B) 4个          C) 5个    D) 6个

25.在C语言中,下面关于数组的描述的是(      )。
(A)数组的大小是固定的,但可以有不同类型的数组元素
(B)数组的大小是可变的,但所有数组元素的类型必须相同
(C)数组的大小是固定的,所有数组元素的类型必须相同
(D)数组的大小是可变的,可以有不同的类型的数组元素

二判断题
1C语言中数据有常量与变量之分。

2一般一个字符变量在内存中占一个字节。

3C语言规定,可以在定义变量时,同时使变量初始化。

4把k1、k2定义成基本整型变量,并赋初值0的定义语句是int k1=k2=0; 。

5在C程序中,函数调用只能出现在表达式语句中。

6凡是表达式都有一个值。

7输入语句的格式为:scanf("%d,%d,%d",a,b,c);是正确的。  

8在scanf("%d,%*d,%d",&a,&b)函数中,当输入为1,2,3时,将1赋给a,将2赋给b。  

9 2.break语句只能用于循环语句中。(  )  

10假定变量a,b,c在说明时已赋初值,则if  ((a=b;)>0)  c=a;是正确的。  

11宏定义不是C语句,不必在行末加分号。
12printf函数是一个标准库函数,它的函数原型在头文件"string.h"中。  

13在C程序中,函数调用可以作为函数的形参。

14在printf函数中,输出表列的各输出项之间可用冒号分隔。  

15若intx=3; printf("%d",&x);则系统不会报错,会输出x的地址。

16在函数的定义中,若函数没有参数,则可以省略函数名后的括号。

17在一个函数定义中,只能有一个return语句。

18对同一类型的两个指针变量而言,一个变量向另外一个变量赋值的结果是使得两个指针指向同一个对象。

19指针变量可以与一个整型常量相乘

20 C语言在判断一个量是否为真时,以非0值代表“真”,以0值代表“假”。

三填空题
1若有以下定义:charc='\010';则变量C中包含的字符个数为   

2若有以下定义:intx=3,y=2;float a=2.5,b=3.5;则下面表达式的值为  。(x+y)%2+(int)a/(int)b

3在C语言中,若定义函数时未说明函数的类型,则该函数的数据类型为  】
4若x是int型变量,则执行下面表达式后,x的值为  。x=a=4,6*2

5若a是int型变量,且a的初值为6,则计算表达式a+=a-=a*a后a的值为   】。

6scanf函数的地址表列中给出各变量的地址,地址是由      后跟变量名组成的。

7使用getchar函数接收字符,若输入多于一个字符时,只接收第     个字符。

8 C语言的格式输出函数是     

9当a=5,b=4,c=2时,表达式a>b!=c  的值是   

10已知A=7.5,B=2,C=3.6,表达式A>B&&C>A|| A<B&&!C>B的值是   

11若a=3,b=2,c=1,则表达式a-b<c||b==c的值是【    】

12若有int k=5; flaot x=1.2; 则表达式(int)(x+k)的值是【  】

13.以下程序的输出结果是      )
#include <MATH.H>
main()
{ int a=1,b=4,c=2;
  float y=4.0,z;
  z=(a+b)/c+sqrt((double)y)*1.2/c;
  printf(%f\n",z);
 }

14  若 int i = 10,执行下列程序:
switch ( i )
 { case 9: i += 1;
  case 10:
  case 11: i -= 1;
  default: i += 1;
 }
 则变量i的结果是(    )

15以下程序段循环执行(    )次。
   int x=-1;
   do {x=x*x;} 
      while (!x);                                                   





以下为本试卷的标准答案:
一、选择题
1、A
2、D
3、C
4、B
5、C
6、B
7、A
8、B
9、C
10、B
11、D
12、D
13、B
14、C
15、A
16、C
17、A
18、B
19、C
20、B
21、BCD
22、CD
23、B
24 、A
25、C
二、判断题
1、
2、
3、
4、
5、
6、
7、
8、
9、
10、
11、
12、

13、
14、

15、

16、

17、

18、

19、

20 、

三、填空题
1、1
2、1
3、int
4、4
5、60
6、地址运算符"&"
7、
8、printf()
9、1
10、0
11、0
12、6
13、3.20000
14、10
15、1

QQ|手机版|小黑屋|网站地图|无忧答案网 ( 冀ICP备18010495号-1 )

GMT+8, 2024-5-5 18:07

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表