第1章 程序设计和C语言

第1章 单元测验

1、单选题:
‎一个C程序的执行是从(  ) 。‎
选项:
A: 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
B: 本程序的main函数开始,到本程序文件的最后一个函数结束
C: 本程序文件的第一个函数开始,到本程序main函数结束
D: 本程序的main函数开始,到main函数结束
答案: 【 本程序的main函数开始,到main函数结束

2、单选题:
​以下叙述正确的是( )。‌
选项:
A: 在C程序中,main函数必须位于程序的最前面。
B: 在C程序的每一行只能写一条语句
C: C语言本身没有输入输出语句
D: 在对一个C程序进行编译的过程中,可发现注释中的拼写错误
答案: 【 C语言本身没有输入输出语句

3、单选题:
‌以下叙述不正确的是( ) 。‎
选项:
A: 一个C源程序可由一个或多个函数组成
B: 一个C源程序必须包含一个main函数
C: C程序的基本组成单位是函数
D: 在C程序中,注释说明只能位于一条语句的后面
答案: 【 在C程序中,注释说明只能位于一条语句的后面

4、单选题:
‍C语言规定:在一个源程序中,main函数的位置 ( )。‍
选项:
A: 必须在最开始 
B: 必须在系统调用的库函数的后面
C: 可以任意
D: 必须在最后
答案: 【 可以任意

5、单选题:
‍一个C语言程序是由(  ) 。​
选项:
A: 一个主程序和若干个子程序组成
B: 若干函数组成
C: 若干过程组成
D: 若干子程序组成
答案: 【 若干函数组成

6、填空题:
‏源程序的基本单位是【 】。‏
答案: 【 函数

7、填空题:
‏一个C源程序中至少应包括一个【 】。‏
答案: 【 main()函数

8、填空题:
‏在一个C源程序中,块式注释部分左侧的分界符为【 】。​
答案: 【 /*

9、填空题:
‌在一个C源程序中,块式注释部分右侧的分界符为【 】。‌
答案: 【 */

10、填空题:
‏在C语言中,输入操作是由库函数【 】完成的。‏
答案: 【 scanf

11、填空题:
​在C语言中,输出操作是由库函数【  】完成的。‏
答案: 【 printf

第2章 算法——程序设计的灵魂

第2章 单元测验

1、单选题:
有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换​‏      正确算法的流程图是?​
选项:
A:
B:
C:
D:
答案: 【 

2、单选题:
依次输入10个数,求其中最大的数,并输出‏正确算法的流程图是?‏‎‏
选项:
A:
B:
C:
D:
答案: 【 

3、单选题:
计算1+2+3+…+100‍正确算法的伪代码是?‍
选项:
A: sum=0n=1while n<100 do       sum=sum+n       n=n+1end doprint sum
B: sum=0n=1while n≤100 do       sum=sum+n       n=n+1end doprint sum
C: sum=0n=1while n≤100 do       sum=sum+1       n=n+1end doprint sum
D: sum=0n=1while n<100 do       sum=sum+1       n=n+1end doprint sum
答案: 【 sum=0n=1while n≤100 do       sum=sum+n       n=n+1end doprint sum

4、单选题:
求两个数m和n的最大公约数‎正确算法的伪代码是?‎
选项:
A: input m,nif m<n then swap m,nr=mod(m,n)if r≠0       m=n       n=r       r=mod(m,n)print n
B: input m,nif m<n then swap m,nr=mod(m,n)while r≠0 do       m=n       n=r       r=mod(m,n)end doprint n
C: input m,nif m<n then swap m,nr=mod(m,n)if r≠0        n=r        m=n        r=mod(m,n)print n
D: input m,nif m<n then swap m,nr=mod(m,n)while r≠0 do       n=r       m=n       r=mod(m,n)end doprint n
答案: 【 input m,nif m<n then swap m,nr=mod(m,n)while r≠0 do       m=n       n=r       r=mod(m,n)end doprint n

5、判断题:

有3个数a b c,要求按大小顺序把它输出

以下的NS图是否正确?

​选项:
A: 正确
B: 错误
答案: 【 正确

第3章 最简单的C程序设计——顺序程序设计

第3章 单元测验

1、单选题:
‌C语言中(以16位PC机为例),各数据类型的存储空间长度的排列顺序为(  )。‌
选项:
A: char<int<long<=float<double
B: char=int<long<=float<double
C: char<int<long=float=double
D: char=int=long<=float<double
答案: 【 char<int<long<=float<double

2、单选题:
‌若x、i、j和k都是int型变量,则计算下面表达式后,x的值为(      ) 。‍‌x=(i=4,j=16,k=32)‍
选项:
A: 4
B: 16
C: 32
D: 52
答案: 【 32

3、单选题:
‍假设所有变量均为整型,则表达式(a=2,b=5,a+b++,a+b)的值是(       ) 。‏
选项:
A: 7
B: 8
C: 5
D: 2
答案: 【 8

4、单选题:
‎下列四组选项中,均不是C语言关键字的选项是(       )。‌
选项:
A: defineIFtype
B: getccharprintf
C: includescanfcase
D: whilegopow
答案: 【 defineIFtype

5、单选题:
‌下列四组选项中,均是C语言关键字的选项是 (     )。‌
选项:
A: AP 0do
B: floatla0_A
C: b-agotoint
D: _123tempINT
答案: 【 b-agotoint

6、单选题:
‏ C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 (       )。‍
选项:
A: 必须为字母
B: 必须为下划线 
C: 必须为字母或下划线
D: 可以是字母、数字和下划线中的任一种字符
答案: 【 必须为字母或下划线

7、单选题:
‍下面四个选项中,均是合法整型常量的选项是(      )。‍
选项:
A: 160-0xffff011
B: -0xcdf01a0xe
C: -01986.0120668
D: -0x48a2e50x
答案: 【 160-0xffff011

8、单选题:
​下面四个选项中,均是不合法的整型常量的选项是(      )。‎
选项:
A: -0f1-0xffff0011
B: -0Xcdf01712,456
C: -0189995e2
D: -0x48eg-06803f
答案: 【 -0x48eg-06803f

9、单选题:
‌下面四个选项中,均是不合法的浮点数的选项是(      )。‌
选项:
A: 160.0.12e3
B: 1232e4.2.e5
C: -.18123e40.0
D: -e3.2341e3
答案: 【 1232e4.2.e5

10、单选题:
‏下面四个选项中,均是合法转义符的l选项是(      )。‎
选项:
A: ''''\' 'n' 
B: ''   '17'           '"'             
C: '18''f''xab' 
D: '\0''101''x1f'
答案: 【 ''''\' 'n' 

11、单选题:
‍下面正确的字符常量是(      )。‏
选项:
A: "c"
B: '\''
C: 'W' 
D: ""
答案: 【 'W' 

12、单选题:
‏若有代数式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
答案: 【 3*a*e/b*c

13、单选题:
‌已知各变量的类型说明如下,则不符合C语言语法规定的表达式是(      )。‍‌int  k,a,b;
unsigned long w=5;
double x=1.42;‍
选项:
A: x%(-3)
B: w+=-2
C: k=(a=2,b=3,a+b)
D: a+=a-=(b=4)*(a=3)
答案: 【 x%(-3)

14、单选题:
‎已知各变量说明如下,则符合C语言语法规定的表达式是(      )。‌‎int  i=8,k,a,b;
unsigned long w=5;
double x=1.42,y=5.2‌
选项:
A: a+=a-=(b=4)*(a=3)
B: a=a*3=2
C: x%(-3)
D: y=float(i)
答案: 【 a+=a-=(b=4)*(a=3)

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

16、单选题:
‌以下正确的叙述是(      )。​
选项:
A: 在C程序中,每行只能写一条语句
B: 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C: 在C程序中,无论是整数还是实数,都能被准确无误地表示
D: 在C程序中,%是只能用于整数运算的运算符
答案: 【 在C程序中,%是只能用于整数运算的运算符

17、单选题:
‌以下符合C语言语法的有赋值能力的表达式是(      )。‏
选项:
A: d=9+e+f=d+9 
B: d=9+e,f=d+9
C: d=9+e,e++,d+9
D: d=9+e++=d+7
答案: 【 d=9+e,f=d+9

18、单选题:
‌已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2的值为(      )。‎
选项:
A: D 
B: 68
C: 不确定的值
D: C
答案: 【 D 

19、单选题:
​在C语言中,要求运算数必须是整型(数)的运算符是(      )。‌
选项:
A: /
B: ++
C: !=
D: %
答案: 【 %

20、单选题:
​若以下变量均是整型,且num=sum=7;则计算表达式sUM=num++, sUM++,++num后sum的值为      。‌
选项:
A: 7
B: 8
C: 0
D: 10
答案: 【 7

21、单选题:
‎在C语言中,int、char和short三种类型数据在内存中所占用的字节数      。‍‎‍
选项:
A: 由用户自己定义
B: 均为两个字节
C: 是任意的
D: 由所用机器的字长决定
答案: 【 由所用机器的字长决定

22、单选题:
‏若有说明语句:char c='72';则变量c (      )。‍
选项:
A: 包含1个字符。
B: 包含2个字符。
C: 包含3个字符。
D: 说明不合法,c的值不确定。
答案: 【 包含1个字符。

23、单选题:
‍若有定义:int a=7; float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(      )。‍
选项:
A: 2.500000
B: 2.750000
C: 3.500000
D: 0.000000
答案: 【 2.500000

24、单选题:
​sizeof(float)是(      )。‌
选项:
A: 一个双精度型表达式
B: 一个整型表达式
C: 一种函数调用
D: )一个不合法的表达式
答案: 【 一个整型表达式

25、单选题:
​设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为(      )。‍
选项:
A: int
B: float
C: double
D: 不确定
答案: 【 double

26、填空题:
‏C语言规定在程序中对用到的所有数据都必须指定其数据类型,对变量必须做到先(     ),后使用。‏
答案: 【 定义

27、填空题:
‎C语言中,用关键字(    )定义单精度实型变量。‏
答案: 【 float

28、填空题:
‌C语言中,用关键字(          )定义双精度实型变量。‍
答案: 【 double

29、填空题:
‎设C语言中的一个基本整型数据在内存中占2个字节,若欲将整数135791正确无误地存放在变量a中,应采用的类型说明语句是(           )。‏
答案: 【 long int a=135791;##%_YZPRLFH_%##long int a=135791

30、填空题:
‎自增运算符++、自减运算符--,只能用于(          ),不能用于常量或表达式。‍
答案: 【 变量

31、填空题:
‍若a是int型变量,则执行下面表达式后a的值为(         ) 。‏‍a=25/3%‏‍‏
答案: 【 2

32、填空题:
​若有定义:int x=3,y=2; float a=2.5,b=3.5;则下面表达式的值为(          ) 。‍​(x+y)%2+(int)a/(int)b‍
答案: 【 1

33、填空题:
‎若有以下定义,int m=5,y=2;则执行表达式y+=y-=m*=y后的y值是(       ) 。‎
答案: 【 -16

34、填空题:
‎若a是int型变量,则表达式(a=4*5,a+2),a+6的值为(           )  。‌
答案: 【 26

35、填空题:
​若x和n均为int型变量,且x的初值为12,n的初值为5,则执行表达式x%=(n%=2)后x的值为:(         )。​
答案: 【 0

36、填空题:
‌若有定义语句:int e=1,f=4,g=2;float m=10.5,n=4.0,k;,则执行表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是 (             )。‎
答案: 【 13.7

第4章 选择结构程序设计

第4章 单元测验

1、单选题:
​逻辑运算符两则运算对象的数据类型(   )。​
选项:
A: 只能是0或1
B: 只能是0或非0正数
C: 只能是整型或字符型数据
D: 可以是任何类型的数据
答案: 【 可以是任何类型的数据

2、单选题:
​以下关于运算符优先顺序的描述中正确的是(  )。‏
选项:
A: 关系运算符<算术运算符<赋值运算符<逻辑运算符
B: 逻辑运算符<关系运算符<算术运算符<赋值运算符
C: 赋值运算符<逻辑运算符<关系运算符<算术运算符
D: 算术运算符<关系运算符<赋值运算符<逻辑运算符
答案: 【 赋值运算符<逻辑运算符<关系运算符<算术运算符

3、单选题:
‏下列运算符中优先级最高的是(     )。‌‏‌
选项:
A: <
B: +
C: &&
D: !=
答案: 【 +

4、单选题:
​能正确表示“当x的取值在[1,10]和[200,210]范围内为真”的C语言表达式为(     ) 。‍
选项:
A: (x>=1)&&(x<=10)&&(x>=200)&&(x<=210)
B: (x>=1)&&(x<=10)||(x>=200)&&(x<=210)
C: (x>=1)||(x<=10)||(x>=200)||(x<=210)
D: (x>=1)||(x<=10)&&(x>=200)||(x<=210)
答案: 【 (x>=1)&&(x<=10)||(x>=200)&&(x<=210)

5、单选题:
‍判断char型变量ch是否为大写字母的正确表达式为      。‏
选项:
A: 'A'<=ch<='Z'
B: (ch>='A')&(ch<='Z')
C: (ch>='A')&&(ch<='Z')
D: ('A'<=ch)AND('Z'>=ch)
答案: 【 (ch>='A')&&(ch<='Z')

6、单选题:
‍有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)
答案: 【 !((x<y)&&!z||1)

7、单选题:
‎已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是      。‌
选项:
A: 0
B: 语法错误
C: 1
D: 假
答案: 【 1

8、单选题:
‍若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是      。‏A)     B)    C)    D)‏‍‏
选项:
A: A%2= =1
B: !(A%2= =0)
C: !(A%2) 
D: A%2
答案: 【 !(A%2) 

9、单选题:
‌设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为      。​
选项:
A: 1
B: 2
C: 3
D: 4
答案: 【 2

10、单选题:
​判断char型变量ch是否为小写字母的正确表达式为      。‏
选项:
A: 'a'<=ch<='z'
B: (ch>=a)&&(ch<=z)
C: (ch>='a')||(ch<='z') 
D: (ch>='a')&&(ch<='z')
答案: 【 (ch>='a')&&(ch<='z')

11、单选题:
‍以下程序的运行结果是      。‌#include <stdio.h>
main()
{int a,b,d=241;
 a=d/100%9;
 b=(-1)&&(-1);
 printf("%d,%d",a,b);
}‍‌
选项:
A: 6,1
B: 2,1
C: 6,0
D: 2,0
答案: 【 2,1

12、单选题:
​执行以下语句后,a,b,c的值分别为      。‍int a,b,c;
a=b=c=1;
++a||++b&&++c;​‍
选项:
A: 1,1,1
B: 2,1,1
C: 2,2,1
D: 2,2,2
答案: 【 2,1,1

13、单选题:
‌执行以下语句后a的值为      。‌int a=5,b=6,w=1,x=2,y=3,z=4;
(a=w>x)&&(b=y>z);‌‌
选项:
A: 5
B: 0
C: 2
D: 1
答案: 【 0

14、单选题:
​下列运算符中优先级最低的是      。‌
选项:
A: ? :
B: &&
C: +
D: !=
答案: 【 ? :

15、单选题:
‍已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是      。‌if(x>y)
z=x;x=y;y=z;
选项:
A: 10,20,30
B: 20,30,30
C: 20,30,10
D: 20,30,20
答案: 【 20,30,10

16、单选题:
​ 以下if语句语法正确的是      。‏
选项:
A: if (x>0) printf("%f",x) else printf("%f",-x);
B: if(x>0){x=x+y;printf("%f",x);} else printf("%f",-x);
C: if(x>0){x=x+y;printf("%f",x);};else printf("%f",-x);
D: if(x>0){x=x+y;printf("%f",x)} else printf("%f",-x);
答案: 【 if(x>0){x=x+y;printf("%f",x);} else printf("%f",-x);

17、单选题:
‎有程序:‌‎main() {‌‎          int a=5,b=1,c=0;‌‎          if (a=b+c)  printf("***n");‌‎          else       printf("$$$n");‌‎}‌‎该程序      。‌
选项:
A: 有语法错误不能通过编译
B: 可以通过编译,但不能通过连接
C: 输出:***
D: 输出:$$$
答案: 【 输出:***

18、单选题:
​以下程序的运行结果是      。‍main()
{int m=5;
 if(m++>5) printf("%d",--m);
 else printf("%d",m++);
}
选项:
A: 4
B: 5
C: 6
D: 7
答案: 【 6

19、单选题:
‌ 当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是      。‌if(a<b)
if(c<d) x=1;
else
  if(a<c)
   if(b<d) x=2;
   else x=3;
  else x=6;
else x=3;‌‌
选项:
A: 1
B: 2
C: 3
D: 6
答案: 【 2

20、单选题:
‍以下程序的输出结果是      。‏main()
{int a=100,x=10,y=20,ok1=5,ok2=0;
if(x<y)
if(y!=10)
if(!ok1)
 a=1;
else
 if(ok2) a=10;
a=-1;
printf("%dn",a);
}
选项:
A: 1
B: 0
C: -1
D: 值不确定
答案: 【 -1

21、单选题:
‏以下程序的输出结果是      。​main()
{int x=2,y=-1,z=2;
if(x<y)
  if(y<0) z=0;
  else z+=1;
printf("%dn",z);
}‏​
选项:
A: 3
B: 2
C: 1
D: 0
答案: 【 2

22、单选题:
‎为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与      配对。​‎​
选项:
A: 缩排位置相同的if
B: 其之前最近的没有else配对的if
C: 其之后最近的if 
D: 同一行上的if
答案: 【 其之前最近的没有else配对的if

23、单选题:
‌以下不正确的语句为      。‎
选项:
A: if (x>y);
B: if (x=y)&&(x!=0) x+=y;
C: if (x) z=z/x;
D: if (x>y) {x++;y++;}
答案: 【 if (x=y)&&(x!=0) x+=y;

24、单选题:
‎请阅读以下程序:‏#include <stdio.h>
main()
{float a,b;
scanf("%f",&a);
if(a<0.0) b=0.0;
else if((a<0.5)&&(a!=2.0)) b=1.0/(a+2.0);
else if(a<10.0) b=1.0/a;
else b=10.0;
printf("%fn",b);
}‎若运行时输入2.0<CR>,则上面程序的输出结果是      。‏
选项:
A: 0.000000
B: 0.500000
C: 1.000000
D: 0.250000
答案: 【 0.500000

25、单选题:
‍若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是      。‍‍‍
选项:
A: exp==0
B: exp!=0
C: exp==1
D: exp!=1
答案: 【 exp!=0

26、单选题:
‎若运行时给变量输入12,则以下程序的运行结果是      。​main()
{int x,y;
scanf("%d",&x);
y=x>12?x+10:x-12;
printf("%dn",y);
}‎​
选项:
A: 0
B: 22
C: 12
D: 10
答案: 【 0

27、单选题:
​ 以下程序的运行结果是      。‎main()
{int k=4,a=3,b=2,c=1;
printf("n%dn",k<a?k:c<b?c:a);
}​‎
选项:
A: 4
B: 3
C: 2
D: 1
答案: 【 1

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注