第一章C语言基础

第一章单元测试

1、单选题:
在一个C程序中(     )。‏A) main函数必须出现在所有函数之前     B) main函数可以在任何地方出现‏C) main函数必须出现在所有函数之后     D) main函数必须出现在固定位置‏​‏
选项:
A: C语言中main函数的位置不固定
B: C语言中main函数的位置不固定
C: C语言中main函数的位置不固定
D: C语言中main函数的位置不固定
答案: 【 C语言中main函数的位置不固定

2、单选题:
以下选项中合法的用户标识符是(    )。‍A) long                       B) _2Test                 C) 3Dmax                     D) A.dat‍‏‍
选项:
A: 标识符不能是关键字
B: 符合标符的定义
C: 标示符不能用数字开头
D: 标识符中不能有除下划线以外的其他特殊字符
答案: 【 符合标符的定义

3、单选题:
以下选项中不属于C语言的类型的是(   )。‎A) integer               B)float                              C) int                                D) char‎​‎
选项:
A: integer不是C语言中的类型关键字
B: float是C语言中的浮点类型关键字
C: int是C语言中的整型关键字
D: char是C语言中的字符类型关键字
答案: 【 integer不是C语言中的类型关键字

4、单选题:

以下变量x.yz均为double类型且已正确赋值,不能正确表示数学式子C语言表达式是(      )。

A) x/y*z                          B) x*(1/(y*z))                  C) x/y*1/z                        D) x/y/z

‏选项:
A: 该答案表示的是
B: 符合要求
C: 符合要求
D: 符合要求
答案: 【 该答案表示的是

5、单选题:
C语言中运算对象必须是整型的运算符是(   )。‏A) %              B) /                 C) =                D) <=‏‏‏
选项:
A: %是求余运算,运算对象只能是整型数据
B: /是除法运算符,运算对象可以是实型数据
C: =是赋值运算符,运算对象可以是其它类型
D: <=是关系运算符,运算对象可以是其它类型
答案: 【 %是求余运算,运算对象只能是整型数据

6、单选题:
设有 int x=11; 则表达式(x++ * 1/3) 的值是(    )。​‌     A) 3                      B) 4                   C) 11                       D) 12​‌​
选项:
A: 表达式x++ * 1/3运算过程中,先使用x的值参于运算,等同于11/3,由于运算对象均为整型,故得整数商3,当该表达式运算结束后,x的值自增为12
B: 不符合运算规则
C: 不符合运算规则
D: 不符合运算规则
答案: 【 表达式x++ * 1/3运算过程中,先使用x的值参于运算,等同于11/3,由于运算对象均为整型,故得整数商3,当该表达式运算结束后,x的值自增为12

7、单选题:
‎以下选项中,非法的字符常量是(  )。‍A) ‘t’                          B) ‘17’             C)“n”          D) ‘xaa’‍‎‍
选项:
A: 是转义字符
B: 是转义字符
C: 是字符串,不是字符
D: 是转义字符
答案: 【 是字符串,不是字符

8、单选题:
若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为(   )。​A) 1.4                 B) 1                    C) 2.0                      D) 2​‌​
选项:
A: 不符合运算规则
B: a/b的结果是1,1加上0.4是1.4,由于c是整型变量,进行强制类型转换,故c的值是1
C: 不符合运算规则
D: 不符合运算规则
答案: 【 a/b的结果是1,1加上0.4是1.4,由于c是整型变量,进行强制类型转换,故c的值是1

9、单选题:
以下程序的输出结果是(    )。‏#include <stdio.h>‏void main()‏{ char  c=’z’;‏printf(“%c”,c-25);‏}‏A) a                                B) Z                      C) z-25                          D) y                ‏‌‏
选项:
A: 字符‘z’的ASCII码值是122,122-25=97,97是字符‘a’的ASCII码值,按%c格式输出为字符'a'。
B: 计算错误
C: 表示错误
D: 计算错误
答案: 【 字符‘z’的ASCII码值是122,122-25=97,97是字符‘a’的ASCII码值,按%c格式输出为字符'a'。

10、单选题:
以下选项中,与k=n++完全等价的表达式是(    )。​A) k=n,n=n+1               B) n=n+1,k=n     C) k=++n                 D) k+=n+1​‍​
选项:
A: k=n++的含义是先将n的值赋给变量k,然后n自加1,故等价于逗号表达式k=n,n=n+1  
B: 不符合k=n++的含义
C: 不符合k=n++的含义
D: 不符合k=n++的含义
答案: 【 k=n++的含义是先将n的值赋给变量k,然后n自加1,故等价于逗号表达式k=n,n=n+1  

第二章 C语言控制语句

第二章单元测试

1、单选题:
能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是(    )。‍A) a>=10 or a<=0   B) a>=0||a<=10      C) a>=10 &&a<=0   D) a>=10||a<=0‍‎‍
选项:
A: 解析错误
B: 解析错误
C: 解析错误
D: 表达式“a≥=10或a≤0”是指a大于等于10或者小于等于0,故只有该答案正确。
答案: 【 表达式“a≥=10或a≤0”是指a大于等于10或者小于等于0,故只有该答案正确。

2、单选题:
设 a、b、c、d、m、n均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值应为(    )。​A) 0                     B) 1                               C)2                                    D) 3​‍ ​
选项:
A: 理解错误
B: 理解错误
C: 表达式(m=a>b)&&(n=c>d)运算时,由于m=a>b的值是0,故&&运算不再继续运算,产生运算短路,n=c>d不再执行,故c的值不变
D: 理解错误
答案: 【 表达式(m=a>b)&&(n=c>d)运算时,由于m=a>b的值是0,故&&运算不再继续运算,产生运算短路,n=c>d不再执行,故c的值不变

3、单选题:
假定w、x、y、z、m均为int型变量,有如下程序段:‍w=1; x=2;  y=3; z=4;                                   ‍m=(w<x)?w: x;    m=(m<y)?m:y;    m=(m<z)?m:z;‍则该程序运行后,m的值是(   )‍A) 4                                 B) 3                          C) 2                          D) 1‍
选项:
A: 运算错误
B: 运算错误
C: 运算错误
D: 本题主要考查条件运算的运算规则,执行m=(w<x)?w: x;以后m的值是1,再执行  m=(m<y)?m:y;    m=(m<z)?m:z;以后,m的值仍然是1。
答案: 【 本题主要考查条件运算的运算规则,执行m=(w<x)?w: x;以后m的值是1,再执行  m=(m<y)?m:y;    m=(m<z)?m:z;以后,m的值仍然是1。

4、单选题:
若执行以下程序时从键盘上输入9,则输出结果是(   )​#include <stdio.h>​void main()​{  int  n;​   scanf(“%d”,&n);​   if(n++<10)   printf(“%dn”,n);​   else  printf(“%dn”,n--);​}​A) 11                  B) 10                            C) 9                          D) 8​
选项:
A: 解析错误
B:  语句if(n++<10)   printf(“%dn”,n);执行时,先计算表达式“n++<10”,由于n的值是9,故表达式“n++<10”值为真,此时n自加为10,故 printf(“%dn”,n);语句输出10。
C: 解析错误
D: 解析错误
答案: 【  语句if(n++<10)   printf(“%dn”,n);执行时,先计算表达式“n++<10”,由于n的值是9,故表达式“n++<10”值为真,此时n自加为10,故 printf(“%dn”,n);语句输出10。

5、单选题:
若有定义: float w;  int a, b; 则合法的switch语句是(   )。​‎     A) switch(w)                                B) switch(a)​‎        { case 1.0: printf("*n");            { case 1 printf("*n");​‎          case 2.0: printf("**n");             case 2 printf("**n");​‎        }                                                   }​‎     C) switch(b)                                 D) switch(a+b);​‎        { case 1:   printf("*n");          {  case 1:  printf("*n");​‎          default:  printf("n");                case 2:  printf("**n");​‎          case 2: printf("**n");             default: printf("n");​‎        }                                                  }​
选项:
A: case后的常量是实数,不符合规则
B: case后面无冒号
C: 符合switch语句的构造规则
D: switch后面多了分号
答案: 【 符合switch语句的构造规则

6、单选题:
程序‏         #include <stdio.h>‏void main()‏{     int    n=9;‏while(n>6)   {n--;printf(“%d”,n);}‏}‏的输出结果是(      )‏A)987             B) 876             C) 8765           D)9876‏​‏
选项:
A: 输出结果不对
B: 循环体执行三次,第一次输出8,第二次输出7,第三次输出6。
C: 输出结果和输出次数都不对
D: 输出结果和输出次数都不对
答案: 【 循环体执行三次,第一次输出8,第二次输出7,第三次输出6。

7、单选题:
‌        以下程序段的输出结果是(    )。‍int x=3;‍   do‍    {‍      printf("%3d,",x-=2);‍    }while(!(--x));‍A)1                  B) 0            C)死循环          D) 1,-2,‍‌‍
选项:
A: 分析错误
B: 分析错误
C: 分析错误
D: do...while是一个先执行循环体再判断的循环语句,初始x=3,执行printf("%3d,",x-=2);输出1,此时x=1;while(!(--x))中的循环条件是先让x自减1,x=0,!(x)为真,继续执行循环体,printf("%

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

发表评论

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