1、C语言程序设计概述

单元测试

1、单选题:
‌C语言源程序名的后缀(扩展名)是 (              ).‏
选项:
A: .exe
B: .C  或 .CPP
C: .cp
D: .obj
答案: 【 .C  或 .CPP

2、单选题:
‍任何一个C语言的可执行程序都是从(              )开始执行的。‏
选项:
A: main()函数的入口处
B: 程序中的第一条语句
C: 程序中的第一个函数
D: 编译预处理语句
答案: 【 main()函数的入口处

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

4、单选题:
‍以下选项中,(         )是C语言关键字。‌
选项:
A: fun
B: default
C: include
D: printf
答案: 【 default

5、单选题:
‍在计算机中,算法是指(        )。‏
选项:
A: 处理方法
B: 查找方法
C: 排序方法
D: 解题方案的准确而完整的描述
答案: 【 解题方案的准确而完整的描述

6、单选题:
‏C程序的基本结构单位是(         )。‎
选项:
A: 语句
B: 表达式
C: 函数
D: 文件
答案: 【 函数

7、单选题:
‌结构化程序设计所规定的三种基本控制结构是(               )。‎‌‎
选项:
A: 树形,网形,环形
B: 顺序,选择,循环
C: 主程序,子程序,函数
D: 输入,处理,输出
答案: 【 顺序,选择,循环

8、单选题:
‎C语言执行程序的开始执行点是(             )。‍
选项:
A: 包含文件中的第一个函数
B: 程序中,第一个函数
C: 程序中的main(       )函数
D: 程序中,第一条可以执行语言
答案: 【 程序中的main(       )函数

9、单选题:
‏一个算法应该具有"确定性"等5个特性,下面对另外4个特性的描述中错误的是(                  )。‌‏‌
选项:
A: 可行性
B: 有穷性
C: 有零个或多个输入
D: 有零个或多个输出
答案: 【 有零个或多个输出

10、单选题:
‍软件调试的目的是(           )。‏
选项:
A: 改正错误
B: 发现错误
C: 验证软件的正确性
D: 改善软件的性能
答案: 【 改正错误

11、单选题:
‏算法一般都可以用(             )控制结构组合而成。‏
选项:
A: 循环,递归,选择
B: 顺序,循环,选择
C: 顺序,选择,嵌套
D: 选择,分支,递归
答案: 【 顺序,循环,选择

12、单选题:
‌以下关于C源程序的叙述正确的是(            )。‎
选项:
A: 注释只能出现在程序的开始位置或语句后面
B: 一条语句可以分写在多行中
C: 一个源程序只能保存在一个文件中
D: 一行中,不能有多条语句
答案: 【 一条语句可以分写在多行中

13、单选题:
‎程序调试的任务是(         )。‎
选项:
A: 发现程序中的错误
B: 诊断和改正程序中的错误
C: 验证程序的正确性
D: 设计测试用例
答案: 【 诊断和改正程序中的错误

14、单选题:
‍在下列选项中,(       )不是一个算法一般应该具有的基本特征。‏
选项:
A: 有穷性
B: 可行性
C: 确定性
D: 无穷性
答案: 【 无穷性

15、单选题:
‎下面关于算法的叙述中正确的是(          )。‍
选项:
A: 算法的有穷性是指算法必须能在执行有限个步骤之后终止
B: 其他三种描述都正确
C: 算法的空间复杂度是指算法程序中指令(或语句)的条数
D: 算法的执行效率与数据的存储结构无关
答案: 【 算法的有穷性是指算法必须能在执行有限个步骤之后终止

2、C语言程序设计基础

单元测试

1、单选题:
‏C语言能正确处理的指数是(            )。‏
选项:
A: 8.5E4288
B: 1.23e10
C: 4.5E-5.6
D: E-32
答案: 【 1.23e10

2、单选题:
‎C源程序中,不能表示的数制是(          )。‏
选项:
A: 十六进制
B: 十进制
C: 八进制
D: 二进制
答案: 【 二进制

3、单选题:
‍下列不正确的C语言语句是(               )。‍
选项:
A: x=y=5;
B: x=1,y=2;
C: y=int x;
D: x++;
答案: 【 y=int x;

4、单选题:
‏下列选项中(          )是正确的转义字符。​
选项:
A: ’abc'
B: ''
C: '81'
D: 'xaa'
答案: 【 'xaa'

5、单选题:
‏现有定义:‏‏int a;‏‏double b;‏‏float c;‏‏char k;‏‏则表达式a/b+c-k值的类型为:(     )。‏
选项:
A: float
B: double
C: int
D: char
答案: 【 double

6、单选题:
​关于字符常量,以下叙述正确的是(       )。‌
选项:
A: 所有的字符常量都可以作为整型量来处理
B: 单引号中的大写字母和小写字母代表的是相同的字符常量
C: 字符常量能包含多于一个的字符
D: 空格不是一个字符常量
答案: 【 所有的字符常量都可以作为整型量来处理

7、单选题:
‎已知:‌‎   char a;‌‎   int b;‌‎   float c;‌‎   double d;‌‎  则表达式a-b+c-d结果为(         )型。‌‎‌
选项:
A: int
B: float
C: char
D: double
答案: 【 double

8、单选题:
‌以下选项中,非法的字符常量是(          )。‌
选项:
A: '0'
B: 'xAA'
C: '\'
D: '201'
答案: 【 '201'

9、单选题:
‏可在C程序中,用作用户标识符的一组标识符是(         )。‍
选项:
A: 2c     DO     SIG
B: void     define     WORD
C: as_b3    _123    If
D: for    -abc    case
答案: 【 as_b3    _123    If

10、单选题:
‍以下所列的C语言常量中,错误的是(         )。‏
选项:
A: 1.2E0.5
B: '72'
C: 2L
D: 0xFF
答案: 【 1.2E0.5

11、单选题:
‏若有:‏‏    double a;‏‏   则正确的输入语句是(             )。‏
选项:
A: scanf("%le",a);
B: scanf("%lf",a);
C: scanf("%lf",&a);
D: scanf("%f",&a);
答案: 【 scanf("%lf",&a);

12、单选题:
​以下选项中,能用作数据常量的是(      )。‌
选项:
A: 115L
B: 1.5E1.5
C: 0118
D: o115
答案: 【 115L

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

14、单选题:
‌如果运行时输入字符为:Q    ,则以下程序的运行结果是(               )。‌‌#include"stdio.h"‌‌void main(     )‌‌{‌‌char ch;‌‌scanf("%c",&ch);‌‌ch=(ch>='A'&& ch<='Z')?(ch+32):ch;‌‌ch=(ch>='a'&&ch<='z')?(ch -32):ch;‌‌printf("%c",ch);‌‌}‌
选项:
A: ‘Q'
B: q
C: ’q'
D: Q
答案: 【 Q

15、单选题:
​数字字符0的ASCII值为48,运行下列程序的输出结果是(              )。 ​​#include<stdio.h> ​​void main(   ) ​​{​​  char a='1',b='2'; ​​  printf("%c,",b++); ​​  printf("%dn",b-a); ​​}​
选项:
A: 2,2
B: 3,2
C: 50,2
D: 2,50
答案: 【 2,2

3、控制结构

单元测试

1、单选题:
​以下4个程序段中有3个程序段的执行效果总是相同的,另一个执行效果不同的是(             )。‏
选项:
A: if(a>b)c=a,a=b,b=c;
B: if(a>b)c=a;a=b;b=c;
C: if(a>b){c=a;a=b;b=c;}
D: if(a>b){c=a,a=b,b=c;}
答案: 【 if(a>b)c=a;a=b;b=c;

2、单选题:
‌以下程序运行后的输出结果是(                    )。‍‌void  main()‍‌{   int i=1,j=2,k=3;‍‌    if(i++==1&&++j==3||k++==3)‍‌             printf("%d%d%dn",i,j,k);‍‌}‍
选项:
A: 2  2  3
B: 1  2  3
C: 2  3  3
D: 2  3  4  
答案: 【 2  3  3

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

4、单选题:
‍下列程序的运行结果是(                  )。‌‍#include<stdio.h>‌‍void main(   )‌‍{ int a=2,b=3,c=4;‌‍ if(a<b)‌‍ if(b<0)c=0;‌‍ else c+=1;‌‍ printf("%dn",c);‌‍}‌‍‌
选项:
A: 2
B: 5
C: 4
D: 3
答案: 【 5

5、单选题:
‍已知有声明‌‍int n;float x,y;‌‍则执行语句‌‍y=n=x=3.89;后,y的值为(              )。‌
选项:
A: 3.0
B: 3
C: 3.89
D: 4
答案: 【 3.0

6、单选题:
‍若有int a=1,b=2,c=3;,则执行下列语句后a的值为(            )。‍‍if(a>b)a=b;‍‍if(a>c)a=c;‍‍‍
选项:
A: 2
B: 1
C: 不定
D: 3
答案: 【 1

7、单选题:
‎有以下程序:‌‎#include<stdio.h>‌‎void main(){int x;‌‎scanf("%d",&x);‌‎if(x<=3);   else ‌‎if(x!=10)     printf("%dn",x);‌‎}‌‎程序运行时,输入的值在哪个范围才会有输出结果是(              )。‌‎‌
选项:
A: 大于3且不等10的整数
B: 小于3的整数
C: 大于3或等于10的整数
D: 不等于10的整数
答案: 【 大于3且不等10的整数

8、单选题:
‌能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是(               )。‎
选项:
A: a>=0 | a<=10
B: a>=10 || a<=0
C: a>=10 && a<=0
D: a>=10 or a<=0
答案: 【 a>=10 || a<=0

9、单选题:
‌以下叙述正确的是(                 )。‏
选项:
A: 在循环体内使用break语句或continue语句的作用相同
B: contiune语句的作用是结束整个循环的执行
C: 可以在循环体内和switch语句体内使用break语句
D: 从多层循环嵌套中,退出时,只能使用goto语句
答案: 【 可以在循环体内和switch语句体内使用break语句

10、单选题:
​下面4个关于C语言的结论中错误的是(                      )。​
选项:
A: 可以用 do…while 语句实现的循环,一定可以用 while 语句实现
B: 可以用 while 语句实现的循环,一定可以用 for 语句实现
C: 可以用 for 语句实现的循环一定可以用 while 语句实现
D: do…while 语句与 while 语句的区别仅是关键字"while"出现的位置不同
答案: 【 do…while 语句与 while 语句的区别仅是关键字"while"出现的位置不同

11、单选题:
‌有以下程序:‍‌#include<stdio.h>‍‌void  main()‍‌{   int x=1,y=0,a=0,b=0;‍‌   switch(x)‍‌         {case 1:‍‌             switch(y)‍‌                {case 0:  a++;  break;‍‌                 case 1:  b++;  break;‍‌                 }‍‌         case 2:  a++;  b++;  break;‍‌         case 3:a++;b++;‍‌         }‍‌      printf("a=%d,b=%dn",a,b);‍‌}‍‌程序的运行结果是(                     )。‍
选项:
A: a=2,b=1
B: a=2,b=2
C: a=1,b=1
D: a=1,b=0
答案: 【 a=2,b=1

12、单选题:
‍若i,j已定义成int型,则以下程序段中,内循环体的总执行次数是(                  ).  ‍‍for(i=6;i>0;i--)‍‍      for(j=0;j<4;j++)     {…}‍‍‍
选项:
A: 30
B: 20
C: 24
D: 25
答案: 【 24

13、单选题:
​下面程序的运行结果是(                  ).‌​#include"stdio.h"‌​void main()‌​{    int x,i;‌​    for(i=1;i<=100;i++)‌​        {‌​          x=i;‌​         if(++x%2==0)‌​               if(++x%3==0)‌​                     if(++x%7==0)‌​                          printf("%d",x);‌​          }‌​}‌
选项:
A: 3981
B: 2668
C: 4284
D: 2870
答案: 【 2870

14、单选题:
‎设有如下程序段:‌‎int k=10;‌‎while(k==0)‌‎k--;‌‎则下述说明中正确的是(              ).‌
选项:
A: 循环体执行一次
B: 死循环
C: 循环体一次也不执行
D: 循环体执行10次
答案: 【 循环体一次也不执行

15、单选题:
​以下不构成无限循环的语句或语句组是(                 )。‎
选项:
A: n=0; do{++n;}while(n<=0);
B: for(n=0,i=1; ; i++)          n+=i;
C: n=10; while(n);   {   n--;}
D: n=0; while(1)     {n++;}
答案: 【 n=0; do{++n;}while(n<=0);

16、单选题:
​以下程序的运行结果是().‏​#include <stdio.h>‏​void  main()‏​{‏​  int i=1,sum=0;‏​  while(i<10)  sum=sum+1;  i++;‏​  printf("i=%d,sum=%d",i,sum);‏​}‏​‏
选项:
A: i=9,sum=9
B: i=2,sum=1
C: i=10,sum=9
D: 死循环,没有结果
答案: 【 死循环,没有结果

17、单选题:
‍以下程序的执行结果是(                  ).​‍#include <stdio.h>​‍void main()​‍{​‍  int num=0;​‍  while(num<=2)​‍  {​‍    num++;​‍    printf("%d,",num);​‍  }​‍}​‍​
选项:
A: 1,2,3,4
B: 1,2
C: 0,1,2
D: 1,2,3
答案: 【 1,2,3

18、单选题:
‏有以下程序‌‏#include <stdio.h>‌‏main()‌‏{‌‏  int i;‌‏  for(i=0;i<3;i++)‌‏ switch(i)‌‏ {‌‏   case 1:printf("%d",i);‌‏   case 2:printf("%d",i);‌‏   default:printf("%d",i);‌‏ }‌‏}‌‏‌‏执行后输出结果是(                 )。‌‏‌
选项:
A: 011122
B: 012020
C: 012
D: 120
答案: 【 011122

19、单选题:
‎下面程序段的运行结果是(            ).​‎a=1;b=2;c=2;​‎while(a<b<c)       {  t=a; a=b; b=t; c--;  }​‎printf("%d,%d,%d",a,b,c);​‎​
选项:
A: 1,2,0
B: 2,1,1
C: 1,2,1
D: 2,1,0
答案: 【 1,2,0

20、单选题:
​下面程序的运行结果是(                  )。‌​#include"stdio.h"‌​void  main()‌​{ int i; ‌​ for(i=1;i<=5;i++)‌​ { if(i%2)‌​ printf("$"); ‌​ else ‌​                        printf("@"); ‌​ }‌​}‌​‌
选项:
A: @$@$@
B: $@$@
C: @$@$
D: $@$@$
答案: 【 $@$@$

4、函数

函数单元测试题

1、单选题:
以下正确的说法是:在C语言中,(   )。‏
选项:
A: 形参是虚拟的,不占用存储单元
B: 实参和与其对应的形参各占用独立的存储单元
C: 实参和与其对应的形参共占用一个存储单元
D: 只有当实参和与其对应的形参同名时才共占用存储单元
答案: 【 实参和与其对应的形参各占用独立的存储单元

2、单选题:
在C语言程序中,以下说法正确的是(   )。‌
选项:
A: 函数的定义和函数的调用均可以嵌套
B: 函数的定义可以嵌套,但函数的调用不可以嵌套
C: 函数的定义不可嵌套,但函数的调用可以嵌套
D: 函数的定义和函数的调用均不可以嵌套
答案: 【 函数的定义不可嵌套,但函数的调用可以嵌套

3、单选题:
‍下面程序的输出结果是(   )。‌‍#include<stdio.h>‌‍void main(   )‌‍{int i=2,p;‌‍int f(int a,int b);‌‍p=f(i,i+1);‌‍printf("%d",p);‌‍}‌‍int f(int a,int b)‌‍{int c;‌‍c=a;‌‍if(a>b)c=1;‌‍else if(a==b)c=0;‌‍else c=-1;‌‍return c;‌‍}‌
选项:
A: 0
B: 1
C: 2
D: -1
答案: 【 -1

4、单选题:
‍有以下程序:‍‍#include<stdio.h>‍‍int fun(int a,int b)‍‍{‍‍if(b==0)return a;‍‍else return fun(--a,--b);‍‍}‍‍void main(   )‍‍{‍‍printf("%dn",fun(4,2));‍‍}‍‍程序的运行结果是(   ) ‍
选项:
A: 3
B: 1
C: 4
D: 2
答案: 【 2

5、单选题:
‏以下程序的输出结果是(    )‏‏#include"stdio.h"‏‏long fib(int n)‏‏{if(n>2)‏‏       return(fib(n-1)+fib(n - 2));‏‏else ‏‏       return(2);‏‏}‏‏void main(   )‏‏{‏‏ printf("%ldn",fib(6));‏‏}‏
选项:
A: 8
B: 16
C: 2
D: 30
答案: 【 16

6、单选题:
‌以下程序运行后的输出结果是(   )。‌‌#include<stdio.h> ‌‌int p=2;‌‌void main(   )‌‌{ int s,j, sum( int  );‌

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

发表评论

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