第一章 概述

单元测试

1、单选题:
1.以下叙述中错误的是(   )。‍‍
选项:
A: C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件
B: C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
C: 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D: C语言源程序经编译后生成后缀为.obj的目标程序
答案: 【 C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

2、单选题:
下列叙述中错误的是(   )。‎‌
选项:
A: C程序可以由一个或多个函数组成
B: C程序可以由多个程序文件组成
C: 一个C语言程序只能实现一种算法
D: 一个C函数可以单独作为一个C程序文件存在
答案: 【 一个C语言程序只能实现一种算法

3、单选题:
对于一个正常运行的C程序,以下叙述中正确的是(   )。‏‌
选项:
A: 程序的执行总是从程序的第一个函数开始, 在main函数结束
B: 程序的执行总是从main函数开始
C: 程序的执行总是从main函数开始,在程序的最后一个函数中结束
D: 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
答案: 【 程序的执行总是从main函数开始

4、单选题:
计算机能直接执行的程序是(   )。‍‍
选项:
A: 汇编程序
B: 目标程序
C: 可执行程序
D: 源程序
答案: 【 可执行程序

5、单选题:
以下叙述中正确的是(   )。‎‌
选项:
A: main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main等
B: 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C: C语言程序将从源程序中第一个函数开始执行
D: C语言规定必须用main作为主函数名,程序将从此开始执行
答案: 【 C语言规定必须用main作为主函数名,程序将从此开始执行

第二章 算法

单元测试_算法

1、单选题:
下列叙述中正确的是(   )。
选项:
A: 所谓算法就是计算方法
B: 程序可以作为算法的一种描述方法
C: 算法设计只需考虑得到计算结果
D: 算法设计可以忽略算法的运算时间
答案: 【 程序可以作为算法的一种描述方法

2、单选题:
下列关于算法的描述中错误的是(   )。
选项:
A: 算法强调动态的执行过程,不同于静态的计算公式
B: 算法必须能在有限个步骤之后终止
C: 算法设计必须考虑算法的复杂度
D: 算法的优劣取决于运行算法程序的环境
答案: 【 算法的优劣取决于运行算法程序的环境

3、单选题:
下列关于算法复杂度叙述正确的是(   )。
选项:
A: 最坏情况下的时间复杂度一定高于平均情况的时间复杂度
B: 时间复杂度与所用的计算工具无关
C: 对同一个问题,采用不同的算法,则它们的时间复杂度是相同的
D: 时间复杂度与采用的算法描述语言有关
答案: 【 时间复杂度与所用的计算工具无关

4、单选题:
算法的有穷性是指(   )。
选项:
A: 算法程序的运行时间是有限的
B: 算法程序所处理的数据量是有限的
C: 算法程序的长度是有限的
D: 算法只能被有限的用户使用
答案: 【 算法程序的运行时间是有限的

5、单选题:
算法的空间复杂度是指(   )。
选项:
A: 算法在执行过程中所需要的计算机存储空间
B: 算法所处理的数据量
C: 算法程序中的语句或指令条数
D: 算法在执行过程中所需要的临时工作单元数
答案: 【 算法在执行过程中所需要的计算机存储空间

6、单选题:
下列叙述中正确的是(   )。
选项:
A: 一个算法的空间复杂度大,则其时间复杂度也必定大
B: 一个算法的空间复杂度大,则其时间复杂度必定小
C: 一个算法的时间复杂度大,则其空间复杂度必定小
D: 算法的时间复杂度与空间复杂度没有直接关系
答案: 【 算法的时间复杂度与空间复杂度没有直接关系

7、单选题:
下列叙述中正确的是(   )。
选项:
A: 算法的效率只与问题的规模有关,而与数据的存储结构无关
B: 算法的时间复杂度是指执行算法所需要的计算工作量
C: 数据的逻辑结构与存储结构是一一对应的
D: 算法的时间复杂度与空间复杂度一定相关
答案: 【 算法的时间复杂度是指执行算法所需要的计算工作量

8、单选题:
算法空间复杂度的度量方法是(   )。
选项:
A: 算法程序的长度
B: 算法所处理的数据量
C: 执行算法所需要的工作单元
D: 执行算法所需要的存储空间
答案: 【 执行算法所需要的存储空间

9、单选题:
算法时间复杂度的度量方法是(   )。
选项:
A: 算法程序的长度
B: 执行算法所需要的基本运算次数
C: 执行算法所需要的所有运算次数
D: 执行算法所需要的时间
答案: 【 执行算法所需要的基本运算次数

第三章 顺序结构程序设计

习题:顺序结构习题

1、单选题:
设有定义:double  x=2.12;,以下不能完整输出变量x值的语句是(   )。
选项:
A: printf("x=%5.0fn",x);
B:  printf("x=%fn",x);
C:  printf("x=%lfn",x);
D: printf("x=%0.5fn",x);
答案: 【 printf("x=%5.0fn",x);

2、单选题:
设有定义:int a,b;  float x,y; ,则以下选项中对语句所作的注释叙述错误的是(   )。​​
选项:
A: scanf("%d%d",&a,&b,&x);      /* 多余的输入项不能获得输入数据 */
B: scanf("%d%d%f",&a,&b);       /* 多余的格式符%f完全不起作用 */
C: scanf("%d%f%d",&a,&b,&x);  /* 输入项与格式符类型不匹配,变量b和x得不到正确的输入数据 */
D: scanf("Input:%d%d",&a,&b); /* 格式串中允许加入格式符以外的字符串 */
答案: 【 scanf("%d%d%f",&a,&b);       /* 多余的格式符%f完全不起作用 */

3、单选题:
有以下程序      #include <stdio.h>      main()      {  char  a,b,c,d;         scanf("%c%c",&a, &b);         c=getchar();         d=getchar();         printf("%c%c%c%cn",a,b,c,d);      }当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)      12<CR>      34<CR>则输出结果是(   )。
选项:
A: 1234
B: 12
C: 123
D: 1234
答案: 【 123

4、单选题:
若变量已正确定义为int型,要通过语句      scanf("%d,%d,%d",&a,&b,&c); 给a赋值1、给b赋值2、给 c赋值3,以下输入形式中错误的是(注:□代表一个空格符)(   )。‍‏
选项:
A: 1,2,3<回车>
B: □□□1,2,3 <回车>
C: 1,□□□2,□□□3<回车>
D: 1□2□3<回车>
答案: 【 1□2□3<回车>

5、单选题:
有以下程序      #include <stdio.h>      main()      {  int  a=1,b=0;         printf("%d,",b=a+b);         printf("%dn",a=2*b);      }程序运行后的输出结果是(   )。‏‏
选项:
A: 3,2
B: 1,0
C: 1,2
D: 0,0
答案: 【 1,2

6、单选题:
设变量均已正确定义,若要通过      scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:□代表空格字符)(   )。​​
选项:
A: 10□X20□Y<回车>
B: 10X<回车>20Y<回车>
C: 10□X<回车>20□Y<回车>
D: 10□X□20□Y<回车>
答案: 【 10X<回车>20Y<回车>

7、单选题:
设有定义:      int  a;  float  b;执行       scanf("%2d%f", &a, &b); 语句时,若从键盘输入      876  543.0<回车>则a和b的值分别是(   )。‎‍
选项:
A: 76和543.0
B: 876和543.0
C: 87和543.0
D: 87和6.0
答案: 【 87和6.0

8、单选题:
有如下程序段:      int  x=12;        double y=3.141593;       printf("%d%8.6f", x, y); 其输出结果是(   )。‏​
选项:
A: 12, 3.141593
B: 12  3.141593
C: 123.141593
D: 123.1415930
答案: 【 123.141593

9、单选题:
若有定义:      int a,b;通过语句      scanf("%d;%d",&a,&b);能把整数3赋给变量a,5赋给变量b的输入数据是(   )。
选项:
A: 3,5
B: 3;5
C: 3  5
D: 35
答案: 【 3;5

10、单选题:
若有定义      int a;      float b;      double c;程序运行时输入:      3  4  5<回车>能把值3输入给变量a、4输入给变量b、5输入给变量c的语句是(   )。​‏
选项:
A: scanf("%lf%lf%lf", &a,&b,&c);
B: scanf("%d%lf%lf", &a,&b,&c);
C: scanf("%d%f%f", &a,&b,&c);
D: scanf("%d%f%lf", &a,&b,&c);
答案: 【 scanf("%d%f%lf", &a,&b,&c);

单元测试_顺序结构

1、单选题:
有以下程序      #include <stdio.h>      main()      {  char  a,b,c,d;         scanf("%c%c",&a, &b);         c=getchar();         d=getchar();         printf("%c%c%c%cn",a,b,c,d);      }当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)      12<CR>      34<CR>则输出结果是(   )。‌‌
选项:
A: 1234
B: 12
C: 123
D: 1234
答案: 【 123

2、单选题:
有以下程序      #include <stdio.h>      main()      {  int  a=1,b=0;         printf("%d,",b=a+b);         printf("%dn",a=2*b);      }程序运行后的输出结果是(   )。‎‎
选项:
A: 3,2
B: 1,0
C: 1,2
D: 0,0
答案: 【 1,2

3、单选题:
有如下程序段:      int  x=12;        double y=3.141593;       printf("%d%8.6f", x, y); 其输出结果是(   )。‍‌
选项:
A: 12, 3.141593
B: 12  3.141593
C: 123.141593
D: 123.1415930
答案: 【 123.141593

4、单选题:
有以下程序      #include <stdio.h>      main()      {            int a=2, c=5;
            printf( "a=%%d,b=%%dn", a,c );      }程序的输出结果是(   )。‌‏
选项:
A: a=2,b=5
B: a=%2,b=%5
C: a=%d,b=%d
D: a=%%d,b=%%d
答案: 【 a=%d,b=%d

5、单选题:
有以下程序#include <stdio.h>main(){  int  k=33;    printf("%d,%o,%xn", k, k, k);}程序的运行结果是(   )。‎‏
选项:
A: 33,41,21
B: 33,33,33
C: 41,33,21
D: 33,21,41
答案: 【 33,41,21

6、单选题:
有以下程序#include <stdio.h>main(){  int  k=-17;    printf("%d,%o,%xn", k, 1-k, 1-k);}程序的运行结果是(   )。
选项:
A: 17,22,12
B: -17,12,22
C: -17,-22,-12
D: -17,22,12
答案: 【 -17,22,12

7、单选题:
有以下程序#include <stdio.h>main(){   int  a=2, c=5;   printf("a=%%d,b=%%dn", a, c );}程序运行后的输出结果是(   )。
选项:
A: a=%d,b=%d
B: a=%2,b=%5
C: a=%%d,b=%%d
D: a=2,b=5
答案: 【 a=%d,b=%d

8、单选题:
以下叙述中正确的是(   )。‌‌
选项:
A: 由printf输出的数据的实际精度是由格式控制中的域宽和小数的域宽来完全决定的
B: scanf和printf是C语言提供的输入和输出语句
C: 由printf输出的数据都隐含左对齐
D: 赋值语句是一种执行语句,必须放在函数的可执行部分
答案: 【 赋值语句是一种执行语句,必须放在函数的可执行部分

9、单选题:
以下叙述中正确的是(   )。​‌
选项:
A: 当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键) 前,可以任意修改
B: 花括号对{}只能用来表示函数的开头和结尾,不能用于其他目的
C: 空语句就是指程序中的空行
D: 复合语句在语法上包含多条语句,其中不能定义局部变量
答案: 【 当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键) 前,可以任意修改

10、单选题:
以下叙述中正确的是(   )。
选项:
A: 在printf函数中,各个输出项只能是变量
B: 在使用scanf函数输入整数或实数时,输入数据之间只能用空格来分隔
C: 在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上
D: 使用printf函数无法输出百分号%
答案: 【 在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上

随堂测验:常量和变量 变量的操作

1、单选题:
以下非法的字符常量是(   )。​​
选项:
A: ’n’
B: ’101’
C: ’x21’
D: ’’
答案: 【 ’n’

2、单选题:
以下选项中,合法的数值型常量是(   )。​‍
选项:
A: 3.2
B: ’X’
C: 099
D: 0xEH
答案: 【 3.2

3、单选题:
以下选项中,合法的C语言实数是(   )。
选项:
A: .1e0
B: E1
C: 0.10E
D: 2.1e0.2
答案: 【 .1e0

4、单选题:
以下选项中,合法的C语言常量是(   )。‎‍
选项:
A: 21.84
B: ’CPP’
C: "1.0
D: 2MB
答案: 【 21.84

第四章 选择结构程序设计

习题:选择结构习题

1、单选题:
若有定义int  x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) : (y++)中的条件表达式(x-y) 等价的是(   )。‌‎
选项:
A: (x-y==0)
B: (x-y<0)
C: (x-y>0)
D: (x-y<0||x-y>0)
答案: 【 (x-y<0||x-y>0)

2、单选题:
有以下程序#include <stdio.h>main(){  char  a=´H´;   a = ( a>=´A´ && a<=´Z´ ) ? (a+32) : a;   printf("%cn", a );}程序运行后的输出结果是(   )。​‌
选项:
A: h    
B: H
C: A
D: a
答案: 【 h    

3、单选题:
有以下程序      #include <stdio.h>      main()      {  int  x=1, y=0;         if (!x)  y++;         else if (x==0)                   if (x)  y+=2;         &nb

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

发表评论

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