本答案对应课程为:点我自动跳转查看
本课程起止时间为:2021-03-01到2021-06-30

第一章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.、y、z均为double类型且已正确赋值,不能正确表示数学式子的C语言表达式是(      )。A) x/yz                          B) x(1/(yz))                  C) x/y1/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(“%d”,n);   else  printf(“%d”,n–);}A) 11                  B) 10                            C) 9                          D) 8
选项:
A:解析错误
B: 语句if(n++<10)   printf(“%d”,n);执行时,先计算表达式“n++<10”,由于n的值是9,故表达式“n++<10”值为真,此时n自加为10,故 printf(“%d”,n);语句输出10。
C:解析错误
D:解析错误
答案: 【 语句if(n++<10)   printf(“%d”,n);执行时,先计算表达式“n++<10”,由于n的值是9,故表达式“n++<10”值为真,此时n自加为10,故 printf(“%d”,n);语句输出10。

5、 问题:若有定义: float w;  int a, b; 则合法的switch语句是(   )。     A) switch(w)                                B) switch(a)        { case 1.0: printf("");            { case 1 printf("");          case 2.0: printf("");             case 2 printf("");        }                                                   }     C) switch(b)                                 D) switch(a+b);        { case 1:   printf("");          {  case 1:  printf("");          default:  printf("");                case 2:  printf("");          case 2: printf("");             default: printf("");        }                                                  }
选项:
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("%3d,",x-=2);输出-2,再判断!(–x)的值,此时!(–x)为假,结束循环。
答案: 【do…while是一个先执行循环体再判断的循环语句,初始x=3,执行printf("%3d,",x-=2);输出1,此时x=1;while(!(–x))中的循环条件是先让x自减1,x=0,!(x)为真,继续执行循环体,printf("%3d,",x-=2);输出-2,再判断!(–x)的值,此时!(–x)为假,结束循环。

8、 问题:设‍‍i、j、k均为int型变量,则执行完下面的for循环后,k的值为(         )。 for(i=0,j=10;i<=j;i++,j–)k=i+j;A)12                         B) 10                C) 11                D) 9
选项:
A:分析错误
B:循环体共执行了6次,每一次k的值均等于i+j,结果为10.
C:分析错误
D:分析错误
答案: 【循环体共执行了6次,每一次k的值均等于i+j,结果为10.

9、 问题:以下程序的输出结果是(      )。#include <stdio.h>void main()  {   int    a, b;for(a=1, b=1; a<=100; a++){ if(b>=10)  break;if(b%3==1){ b+=3; continue; }}printf(“%d”,a);}A)101                             B) 6                                  C) 5                                  D) 4
选项:
A:分析错误
B:分析错误
C:分析错误
D:注意continue和break的使用,循环体共执行了4次
答案: 【注意continue和break的使用,循环体共执行了4次

10、 问题:以下程序的输出结果是(       )。#include <stdio.h>void main(){ int  a=0,i;for(i=1;i<5;i++){  switch(i){ case 0:   case 3:a+=2;   case 1:   case 2:a+=3;   default:a+=5;}}printf("%d",a);}A)31                       B)13                        C)10                        D)20
选项:
A:循环共执行了4次,由于switch语句中没有使用break语句,当i=1时执行了a+=3;a+=5;结果是a=8;当i=2时执行了a+=3;a+=5;结果是a=16;当i=3时执行了a+=2;a+=3;a+=5;结果是a=26;当i=4时执行了a+=5;结果是a=31
B:分析错误
C:分析错误
D:分析错误
答案: 【循环共执行了4次,由于switch语句中没有使用break语句,当i=1时执行了a+=3;a+=5;结果是a=8;当i=2时执行了a+=3;a+=5;结果是a=16;当i=3时执行了a+=2;a+=3;a+=5;结果是a=26;当i=4时执行了a+=5;结果是a=31

第三章 数组 第三章单元测试

1、 问题:假定int类型变量占用两个字节,定义:int  x[10]={0,2,4};,则数组x在内存中所占字节数是(     )A) 3                             B) 6                            C) 10                           D) 20
选项:
A:理解错误
B:理解错误
C:理解错误
D:int  x[10]={0,2,4}实际上定义一个具有10个int型元素的一维数组,每个元素占2字节,故共占20个字节
答案: 【int  x[10]={0,2,4}实际上定义一个具有10个int型元素的一维数组,每个元素占2字节,故共占20个字节

2、 问题:执行下面的程序段后,变量k中的值为(    )。             int  k=3, s[2];             s[0]=k;  k=s[1]10;       A)不定值        B) 33          C) 30        D) 10
选项:
A:int k=3,s[2];定义了一个一维数组s[2],s[2]中有两个元素s[0]和s[1],后面的语句使s[0]=3,但s[1]没有确定的值,故执行语句k=s[1]
10后,k的值不确定
B:理解错误
C:理解错误
D:理解错误
答案: 【int k=3,s[2];定义了一个一维数组s[2],s[2]中有两个元素s[0]和s[1],后面的语句使s[0]=3,但s[1]没有确定的值,故执行语句k=s[1]*10后,k的值不确定

3、 问题:若有说明“int x[3][4];”,则对x数组元素的正确引用是(    )。A) x[2][4];                      B) x[1,3]                        C) x[4-2][0]                   D) x[3][0]
选项:
A:x[2][4]中的第二个下标越界
B:x[1,3]不符合C语言的语法规则
C:int x[3][4]共定义了12个数组元素,分别是x[0][0],x[0][1],x[0][2],x[0][3],x[1][0],x[1][1],x[1][2],x[1][3],x[2][0],x[2][1],x[2][2],x[2][3]。x[4-2][0] 指的是x[2][0] 。
D:x[3][0]中的第一个下标越界
答案: 【int x[3][4]共定义了12个数组元素,分别是x[0][0],x[0][1],x[0][2],x[0][3],x[1][0],x[1][1],x[1][2],x[1][3],x[2][0],x[2][1],x[2][2],x[2][3]。x[4-2][0] 指的是x[2][0] 。

4、 问题:若的以下语句,则下面(    )是正确的描述。char x[]=”12345”;char y[]={‘1’,’2’,’3’,’4’,’5’};A)x数组和y数组的长度相同      B) x数组的长度大于y数组的长度C) x数组的长度小于y数组的长度     D) x数组等价于y数组
选项:
A:理解错误
B:由于字符串”12345”隐含着一个字符串结束标志’\0′,故char x[]=”12345”定义的数组x的长度是6;而char y[]={‘1’,’2’,’3’,’4’,’5’};定义的y数组长度是5。
C:理解错误
D:理解错误
答案: 【由于字符串”12345”隐含着一个字符串结束标志’\0′,故char x[]=”12345”定义的数组x的长度是6;而char y[]={‘1’,’2’,’3’,’4’,’5’};定义的y数组长度是5。

5、 问题:程序 #include <stdio.h> void main() {   int  n[5]={0,0,0},i,k=2;for(i=0;i<k;i++)  n[i]=n[i]+1;printf(“%d”,n[k]);}输出结果是(    )。A) 不确定的值      B) 2               C) 1              D) 0
选项:
A:理解错误
B:执行过程分析错误

本门课程剩余章节答案为付费内容
本文章不含期末不含主观题!!
本文章不含期末不含主观题!!
支付后可长期查看
有疑问请添加客服QQ 2356025045反馈
如遇卡顿看不了请换个浏览器即可打开
请看清楚了再购买哦,电子资源购买后不支持退款哦

   

发表回复

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