第1章C语言简介

【练习】C语言程序

1、单选题:
‌下列叙述中正确的是(   )。‎
选项:
A: C语言程序将从源程序中第1个函数开始执行。
B: 可以在程序中由用户指定任意一个函数作为主函数,程序将从这个主函数开始执行。
C: C语言规定必须用main作为主函数名,程序从主函数开始执行,并在主函数中结束程序运行。
D: main可作为用户标识符来使用。
答案: 【 C语言规定必须用main作为主函数名,程序从主函数开始执行,并在主函数中结束程序运行。

2、单选题:
‎C语言源程序文件的扩展名是(   )。​
选项:
A: c
B: obj
C: exe
D: h
答案: 【 c

【练习】程序和算法

1、单选题:
‍下列叙述中正确的是(    )。‎
选项:
A: 算法必须要有输入和输出操作。
B: 算法可以没有输出,但必须要有输入操作。
C: 算法可以没有输入,但必须要有输出操作。
D: 算法可以既没有输入,也没有输出操作。
答案: 【 算法可以没有输入,但必须要有输出操作。

2、单选题:
​下列选项中不属于结构化程序设计方法的是(   )。‍
选项:
A: 自顶向下
B: 逐步求精
C: 模块化
D: 可复用
答案: 【 可复用

3、单选题:
‌结构化程序由三种基本结构组成,三种基本结构组成的算法(   )。‏
选项:
A: 可以完成任何复杂的任务
B: 只能完成部分复杂的任务
C: 只能完成符合结构化的任务
D: 只能完成一些简单的任务
答案: 【 可以完成任何复杂的任务

第2章基本数据类型和运算符

【单元测验1】基本数据类型、运算符与表达式

1、单选题:
‏字符串"Hello,world!"在内存中占用的字节数是(    )。‍‏‍‍
选项:
A: 12
B: 13
C: 14
D: 15
答案: 【 13

2、单选题:
‎下列(   )是C语言中的合法常量。‌
选项:
A: 08
B: '45'
C: e1
D:  1.0e0.5
答案: 【 '45'

3、单选题:
‏设有int a=2,则a+=a/=a*a的值是(   )。‍‏‍
选项:
A: 0
B: 0.5
C: 1
D: 1.0
答案: 【 0

4、单选题:
‎若有定义#define T 8和int a,b;,下面正确的表达式是(   )。‎‎‎
选项:
A: ++b--‍
B: a+2++‍
C: T++
D: 21+'a'
答案: 【 21+'a'

5、单选题:
​C语言中,运算对象必须是整型数的运算符是(    )。‌
选项:
A: %
B:
C: % 和
D: /
答案: 【 %

6、单选题:
‍以下能正确地定义整型变量a、b和c,并为它们赋初值5的语句是(     )。‎
选项:
A: int a=b=c=5;
B: int a,b,c=5;
C: a=5,b=5,c=5;
D: int a=5,b=5,c=5;
答案: 【 int a=5,b=5,c=5;

7、单选题:
‍下列两条语句:‎‍int a=1,b=2,c;
c=1.0/b*a;执行后变量c中的值是(      )。‎
选项:
A: 0
B: 0.5
C: 1
D: 2
答案: 【 0

8、单选题:
‌如果变量 x、y 已经正确定义,下列哪个选项的语句不能正确将x、y的值进行交换?​
选项:
A: x=x+y, y=x-y, x=x-y;
B: t=x, x=y; y=t;
C: t=y, y=x, x=t;
D: x=t, t=y, y=x;
答案: 【 x=t, t=y, y=x;

9、单选题:
‍若变量已正确定义并赋值,符合C语言语法的表达式是(    )。​
选项:
A: a = 2 ++
B: a = 3 , 5
C: a = a + 1 = 3
D: 12.3 % 4
答案: 【 a = 3 , 5

10、单选题:
‎若变量已正确定义,表达式 ( j=3, j++) 的值是____。‌
选项:
A: 3
B: 4
C: 5
D: 6
答案: 【 3

11、单选题:
‎下列叙述中错误的是(   )。‏
选项:
A: 扩展名为obj的文件不能直接运行。‍
B: 连接是指将扩展名为obj的文件,经连接程序生成扩展名为exe可执行文件的操作。
C: 计算机可以直接运行扩展名为c的文件。‍
D: 连接是指将扩展名为obj的文件,经连接程序生成扩展名为exe可执行文件的操作。
答案: 【 计算机可以直接运行扩展名为c的文件。‍

12、单选题:
‏一个字长为8位的无符号二进制数能表示的十进制数值范围是(    )。‏
选项:
A: 1~255
B: 0~255
C: 1~256
D: 0~256
答案: 【 0~255

13、单选题:
‌下列各种数制的数中,最大的数是(    )。​
选项:
A:
B:
C:
D:
答案: 【 

14、单选题:
‏下列语句中, (   ) 将输出%d。‌
选项:
A: printf("%d");
B: printf("%%d");
C: printf("%d");
D: printf("%%%d");
答案: 【 printf("%%d");

15、单选题:
​若a是整型变量,c是单精度实型变量,输入语句(      )是错误的。‌
选项:
A: scanf("%d,%f", &a, &c);
B: scanf("d=%d, c=%f", &a, &c);
C: scanf("%d%f", &a, &c);
D: scanf("%d%f", a, c);
答案: 【 scanf("%d%f", a, c);

16、单选题:
‌ 若变量已正确定义并赋值,不符合C语言语法的表达式是(    )。‏
选项:
A: a + b ++
B: a = 3 , 5
C: a + b = 3
D: 12 % 4
答案: 【 a + b = 3

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

18、填空题:
‎设有int x, a;,则执行a=(x=1, x++, x+2)后,a的值为(  )。‎
答案: 【 4

19、填空题:
‎设a已定义为整型变量,a=12,写出表达式 a /= a + a 运算后 a 的值(  )。‏
答案: 【 0

20、填空题:
‍设a已定义为整型变量,a=12, 写出表达式 a + = a - = a * = a 运算后 a 的值(  )。‎
答案: 【 0

21、填空题:
​设x=2.5, a=7, y=4.7,算术表达式 x + a % 3 * (int)(x+y) % 2 / 4的值为(   )。‏
答案: 【 2.5

【练习】常量

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

2、单选题:
​下面四个选项中,均是合法浮点数的选项是( ) 。‎
选项:
A: +1e+1 、 5e-9.4 、 03e2
B: -.60 、 12e-4 、 -8e5
C: 123e 、 1.2e-.4 、 +2e-1
D: -e3 、 .8e-4 、 5.e-0
答案: 【 -.60 、 12e-4 、 -8e5

3、单选题:
‍已知字符 'a' 的ASCII码为 97,执行下列语句的输出结果是(     )。‏‍printf ("%d, %c", 'b', 'b'+1 ) ;‏
选项:
A: 98, b
B: 语法不合法
C: 98, 99
D: 98, c
答案: 【 98, c

【练习】运算符与表达式

1、单选题:
‍设以下变量均为int类型,表达式的值不为9的是(    )。‌
选项:
A: x=y=8, x+y, x+1
B: x=y=8, x+y, y+1
C: x=8, x+1, y=8, x+y
D: y=8, y+1, x=y, x+1
答案: 【 x=8, x+1, y=8, x+y

2、单选题:
‎有如下语句:‎‎float x=2.5, y=4.7; 
int a=7;
printf(“%.1f”, x+a%3*(int)(x+y)%2/4);输出结果是(    )。‎
选项:
A: 2.5
B: 2.8
C: 3.5
D: 3.8
答案: 【 2.5

3、单选题:
‌设x 、y均为f1oat型变量,则以下不合法的赋值语句是 (    )。‌
选项:
A: y=1+x;
B: y=(x%2)/10;
C: x*=y+8;
D: x=y=0;
答案: 【 y=(x%2)/10;

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

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

6、单选题:
‌与x * = y + z等价的赋值表达式是(    )。​
选项:
A: x = y + z
B: x = x * y + z
C: x = x * (y + z)
D: x = x + y * z
答案: 【 x = x * (y + z)

7、单选题:
‍设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y;的功能是(    )。‏
选项:
A: 把x和y按从大到小排列
B: 把x和y按从小到大排列
C: 无确定结果
D: 交换x和y中 的值
答案: 【 交换x和y中 的值

8、单选题:
​若x为浮点型,则表达式x=10/4为( )。‏
选项:
A: 2.5
B: 2.0
C: 2
D: 3
答案: 【 2.0

9、单选题:
‏已知int i, a; 执行语句i=(a=2*3,a*5),a+6;后,变量i的值是( )。‏
选项:
A: 6
B: 12
C: 30
D: 36
答案: 【 30

10、单选题:
‎表达式(  )的值是0。‏
选项:
A: 3/5
B: 3<5
C: 3%5
D: 3/5.0
答案: 【 3/5

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

12、填空题:
‌设a和n都已定义为整型变量,a=12, n=5,写出表达式 a+=a 运算后a的值(   )。‍
答案: 【 24

第3章选择结构

【单元测验2】选择结构

1、单选题:
‍判断 i 和 j 至少有一个值为非0的表达式是(    )。‍
选项:
A: i != 0 && j != 0
B: i+j !=0
C: i | | j
D: i && j
答案: 【 i | | j

2、单选题:
‍分析下面程序片段,下面输出结果正确的是(    )。‌‍int a,b,c;
int x=8,y=10;
a=(++x==--y)?--x:++y;
b=x++;
c=++y;
printf("a=%d,b=%d,c=%dn",a,b,c);‌
选项:
A: a=8,b=8,c=10
B: a=8,b=9,c=10
C: a=9,b=8,c=10
D: a=8,b=8,c=9
答案: 【 a=8,b=8,c=10

3、单选题:
​分析下面程序片段,下面输出结果正确的是(    )。‌​int a=0,b=0,c=1;
c=a++&&(b=1);
printf("a=%d,b=%d,c=%dn",a,b,c);‌
选项:
A: a=1,b=0,c=0
B: a=1,b=1,c=0
C: a=1,b=0,c=1
D: a=1,b=1,c=1
答案: 【 a=1,b=0,c=0

4、单选题:
‎对于 int x=10, y=100; 以下逻辑表达式的值为0的是(     )。‌
选项:
A: ( x > 100 | | y < 10 ) && y == 100
B: ( x > 0 && y > 0 ) | | x < 100
C: ( x > 10 | | y > 10 ) && x == 10
D: x > 100 | | y < 10 | | y > 10
答案: 【 ( x > 100 | | y < 10 ) && y == 100

5、单选题:
​设i、j、和k是 int 型变量,且i = 3, j = 4, k = 5,则以下值为0的表达式是(     )。‎
选项:
A:  'i' && 'j'
B:  i <= j
C:  i || j + k && j - k
D:  ! ( ( i < j ) && ! k || 1 )
答案: 【  ! ( ( i < j ) && ! k || 1 )

6、单选题:
‏执行以下程序段后的b的值是(      )。‍‏int a=5,b=6,c=1,x=2,y=3,z=4;
c=(a=c>x)&&(b=y>z);‍
选项:
A: 0
B: 1
C: 6
D: 5
答案: 【 6

7、单选题:
‎对条件表达式(M)?(a++):(a--)来说,其中表达式 M 等价于(      )。‌
选项:
A: M == 0
B: M == 1
C: M != 0
D: M != 1 
答案: 【 M != 0

8、单选题:
‏能正确表示关系x≤y≤z的C语言表达式为(     )。‍
选项:
A: ( x <= y ) && ( y <= z )
B: ( x <= y ) AND ( y<= z )
C: ( x <= y <= z )
D: ( x <= y ) & ( y <= z ) 
答案: 【 ( x <= y ) && ( y <= z )

9、单选题:
‏若变量x、y都为float型数,以下表达式中不能正确表示数学关系|x-y|<10的是(     )。‏
选项:
A: fabs ( x - y ) < 10
B: x - y > -10 && x - y < 10
C: ( x - y ) < -10 | | ! ( y - x ) > 10
D: ( x - y ) * ( x - y ) < 100
答案: 【 ( x - y ) < -10 | | ! ( y - x ) > 10

10、单选题:
‎以下程序段运行后的输出结果是(      )。​‎   int x=1,y=0;
   if(!x) y++;
   else if(x==0)
   if (x) y+=2;
   else y+=3;
   printf("%dn",y);​
选项:
A: 3
B: 2
C: 1
D: 0
答案: 【 0

11、单选题:
‍以下程序段运行后的输出结果是(     )。​‍int a=0,b=0,c=0,d=0;
if(a=1) b=1; c=2;
else d=3;
printf("%d,%d,%d,%d",a,b,c,d);​‍​
选项:
A: 1,1,2,0
B: 0,0,0,3
C: 编译有错
D: 0,1,2,0
答案: 【 编译有错

12、单选题:
‌有如下嵌套的if语句‍‌if(a<b) 
   if(a<c) k=a;
   else k=c;
else  
   if(b<c) k=b;
   else k=c;以下选项中与上述语句等价的语句是(      )。‍‌‍
选项:
A: k = ( a < b ) ? ( ( b < c ) ? a : b ) : ( ( b > c ) ? b : c ) ;
B: k = ( a < b ) ? ( ( a < c ) ? a : c ) : ( ( b < c ) ? b : c ) ;
C: k = ( a < b ) ? a : b ; k=  ( b < c ) ? b : c ;
D: k = ( a < b ) ? a : b ; k = ( a < c ) ? a : c ;
答案: 【 k = ( a < b ) ? ( ( a < c ) ? a : c ) : ( ( b < c ) ? b : c ) ;

13、单选题:
‎有以下程序段运行时从键盘输入9<回车>, 则输出结果是(     )。​ int a;
 scanf("%d",&a);
 if(a++<9) printf("%dn",a);
 else printf("%dn",a+1);​‎​
选项:
A: 8
B: 9
C: 10
D: 11
答案: 【 11

14、单选题:
‏若有定义:‎‏float x=1.5;‎‏int a =1,b=3,c=2;‎‏则正确的switch语句是(           )。‎‏‎
选项:
A: switch(a+b)
{ case 1: printf("*n");
 case 2+1: printf("**n");
}
B: switch((int)x);
{ case 1

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

发表评论

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