大学MOOC C语言程序设计(苏州工业职业技术学院)1206676809 最新慕课完整章节测试答案
项目一 课程准备
文章目录
项目一单元测验
1、单选题:
1. 程序员职业道德要严守商业秘密,代码、资料保密,尤其是做到不进行恶意泄露、破坏代码,严格编程规范,请问编写正确代码、数组边界检查目的是为进行( )
选项:
A: 防止拒绝服务攻击;
B: 防止远程操纵;
C: 缓冲器溢出保护;
D: 防止报文攻击.
答案: 【 缓冲器溢出保护;】
2、单选题:
printf()函数的格式说明符中,要输出单个字符应使用下面那个说明符
选项:
A: %d
B: %s
C: %f
D: %c
答案: 【 %c】
3、单选题:
一个完整的C源程序是( )
选项:
A: 要由一个主函数(或)一个以上的非主函数构成
B: 由一个且仅由一个主函数和零个以上(含零)的非主函数构成
C: 要由一个主函数和一个以上的非主函数构成
D: 由一个且只有一个主函数或多个非主函数构成
答案: 【 由一个且仅由一个主函数和零个以上(含零)的非主函数构成】
4、单选题:
下列说法中正确的是( )
选项:
A: main函数必须出现在所有函数之前
B: main函数可以在任何地方出现
C: main函数必须出现在所有函数之后
D: main函数必须出现在固定位置
答案: 【 main函数可以在任何地方出现】
5、单选题:
C语言的基本单位是( )
选项:
A: 程序行
B: 语句
C: 函数
D: 字符
答案: 【 函数】
6、单选题:
一个C语言程序中有()个主函数
选项:
A: 0
B: 有且只有一个
C: 2
D: 不确定
答案: 【 有且只有一个】
7、多选题:
C语言的运行环境有哪些
选项:
A: VC++6.0
B: C/C++程序实验与学习系统
C: windows系统
D: word环境
答案: 【 VC++6.0;
C/C++程序实验与学习系统】
8、多选题:
1. C语言程序总是从_____________函数开始,而不论其在程序中的位置。
选项:
A: 主
B: main
C: 任意位置
D: 不确定
答案: 【 主;
main】
项目七 汽车数据间接显示(指针)
任务7.1 统计某车企的汽车数量(指针和变量)随堂测验
1、单选题:
下程序的运行结果是()。 void ast (int x,int y,int *cp,int *dp)
{ *cp=x+y; *dp=x-y; }
main()
{ int a=4,b=3,c,d;
ast(a,b,&c,&d);
printf("%d,%dn",c,d);
}
选项:
A: 7,1
B: 1,7
C: 7,-1
D: c、d未赋值,编译出错
答案: 【 7,1】
2、单选题:
有以下语句: int a[5]={0,1,2,3,4,5},i; int *p=a; 设0≤i<5,对a数组元素不正确的引用是( )。
选项:
A: *(&a[i])
B: a[p-a]
C: *(*(a+i))
D: p[i]
答案: 【 *(*(a+i))】
3、单选题:
若有定义int *p1,*p2; 则错误的表达式是( )。
选项:
A: p1+p2
B: p1-p2
C: p1<p2
D: p1=p2
答案: 【 p1+p2 】
4、单选题:
以下程序段运行后,表达式*(p+4)的值为( )。 char a[]="china"; char *p; p=a;
选项:
A: 'n'
B: 'a'
C: 存放'n'的地址
D: 存放'a'的地址
答案: 【 'a'】
5、单选题:
以下程序段运行后,表达式*(p++)的值为( )。 char a[5]="work"; char *p=a;
选项:
A: 'w'
B: 存放'w'的地址
C: 'o'
D: 存放'o'的地址
答案: 【 'w' 】
6、单选题:
若有定义: int *p,k=4; p=&k; 以下均代表地址的是( )。
选项:
A: k, p
B: &k, &p
C: &k, p
D: k, *p
答案: 【 &k, p 】
7、单选题:
下面语句错误的是( )。
选项:
A: int *p; *p=20;
B: char *s="abcdef"; printf("%sn",s);
C: char *str="abcdef"; char *p;p=str
D: char *str;str="abcdef";
答案: 【 int *p; *p=20;】
任务7.2汽车一年销售额显示(指针和数组)动手练习
1、单选题:
若有以下定义和语句,且0≤i<10则对数组元素的错误引用是 。 int a[10]={1,2,3,4,5,6,7,8,9,10},*p,i; p=a;
选项:
A: *(a+i)
B: a[p-a]
C: p+i
D: *(&a[i])
答案: 【 p+i 】
2、单选题:
若有以下说明: int
a[10]={1,2,3,4,5,6,7,8,9,10},*p=a ; 则数值为6 的表达式是 。
选项:
A: *p+6
B: *(p+6)
C: *(p+5)
D: p+5
答案: 【 *(p+5)】
3、单选题:
设P1和P2 是指向同一个int型一维数组的指针变量,k 为int 型变量,则不能正 确执行的语句是 。
选项:
A: k=*P1+*P2;
B: p2=k;
C: P1=P2;
D: k=*P1 * (*P2);
答案: 【 P1=P2;】
4、单选题:
有如下说明 int
a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9 的表达式是 。
选项:
A: *p+9
B: *(p+8)
C: *p+=9
D: p+8
答案: 【 *(p+8)】
5、单选题:
下面程序输出数组中的最大值,由s指针指向该元素. void
main() {
int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s; for(p=a, s=a;p-a<10;p++) if(【 】)s=p; printf("The
max:%d",*s): } 则在if 语句中的判断表达式应该是 。
选项:
A: p>s
B: *p>*s
C: a[p]>a[s]
D: p-a>p-s
答案: 【 *p>*s 】
6、单选题:
若有以下定义和语句: int
a[10]={1 ,2,3 ,4,5 ,6,7 ,8,9 ,10},*p=a ; 则不能表示a 数组元素的表达式是 。
选项:
A: *p
B: a[10]
C: *a
D: a[p-a]
答案: 【 a[10] 】
任务7.3 某车企多项数据显示(指针作为函数参数)动手练习
1、单选题:
若有定义int a[2][3],*p=a;,则能表示数组元素a[1][2]地址的是( )。
选项:
A: *(a[1]+2)
B: a[1][2]
C: p[5]
D: p+5
答案: 【 p+5】
2、单选题:
若已定义: int a=5,*p; 且 p=&a; 则以下表示中不正确的是( )。
选项:
A: &a==&(*p)
B: *(&p)==a
C: &(*p)==p
D: *(&a)==a
答案: 【 *(&p)==a 】
3、单选题:
若有以下程序段,则叙述正确的是( )。char s[]="computer"; char *p; p=s;
选项:
A: s和p完全相同
B: 数组s的长度和p所指向的字符串长度相等
C: *p与s[0]相等
D: 数组s中的内容和指针变量p中的内容相等
答案: 【 *p与s[0]相等 】
4、单选题:
若有以下程序段,则不能正确访问数组元素a[1][2]的是( )。 int (*p)[3];int a[][3]={1,2,3,4,5,6,7,8,9};p = a;
选项:
A: p[1]+2
B: p[1][2]
C: (*(p+1))[2]
D: *(*(a+1)+2)
答案: 【 p[1]+2 】
5、单选题:
以下程序段的运行结果是( )。 int
a[]={1,2,3,4,5,6,7},*p=a; int
n,sum=0; for(n=1;n<6;n++)
sum+=p[n++];
printf("%d",sum);
选项:
A: 12
B: 15
C: 16
D: 27
答案: 【 12】
6、单选题:
以下程序段运行后变量s的值为( )。 int
a[]={1,2,3,4,5,6,7}; int
i,s=1,*p; p=&a[3]; for(i=0;i<3;i++)
s*=*(p+i);
选项:
A: 6
B: 60
C: 120
D: 210
答案: 【 120】
7、单选题:
以下程序段运行后变量ans的值为( )。 int a[]={1,2,3},b[]={3,2,1}; int
*p=a,*q=b; int
k,ans=0; for(k=0;k<3;k++) if(*(p+k)==*(q+k)) ans=ans+*(p+k)*2;
选项:
A: 2
B: 4
C: 6
D: 12
答案: 【 4】
单元测验
1、单选题:
若有以下定义和语句,且0≤i<10则对数组元素的错误引用是 。 int a[10]={1,2,3,4,5,6,7,8,9,10},*p,i; p=a;
选项:
A: *(a+i)
B: a[p-a]
C: p+i
D: *(&a[i])
答案: 【 p+i 】
2、单选题:
char *s="t\Name\Addressn"; 指针s所指字符串的长度为: 。
选项:
A: 说明不合法
B: 19
C: 18
D: 15
答案: 【 15】
3、单选题:
分析下面函数,以下说法正确的是 。 swap(int *p1,int *p2) { int *p;
*p=*p1; *p1=*p2; *p2=*p; }
选项:
A: 交换*p1和*p2的值
B: 正确,但无法改变*p1和*p2的值
C: 交换*p1和*p2的地址
D: 可能造成系统故障,因为使用了空指针
答案: 【 可能造成系统故障,因为使用了空指针】
4、单选题:
设有说明int (*ptr)[M]; 其中ptr是 。
选项:
A: M个指向整型变量的指针
B: 指向M个整型变量的函数指针
C: 一个指向具有M个整型元素的一维数组的指针
D: 具有M个指针元素的一维指针数组,每个元素都只能指向整型量
答案: 【 一个指向具有M个整型元素的一维数组的指针】
5、单选题:
在说明语句:int *f(); 中,标识符代表的是: 。
选项:
A: 一个用于指向整型数据的指针变量
B: 一个用于指向一维数组的指针
C: 一个用于指向函数的指针变量
D: 一个返回值为指针型的函数名
答案: 【 一个返回值为指针型的函数名】
6、单选题:
若int x ,*pb;
,则正确的赋值表达式是 。
选项:
A: pb=&x
B: pb=x;
C: *pb=&x;
D: *pb=*x
答案: 【 pb=&x】
7、单选题:
对于类型相同的两个指针变量之间,不能进行的运算是 。
选项:
A: <
B: =
C: +
D: -
答案: 【 + 】
8、单选题:
若已定义:int a[9] ,*p=a;并在以后的语句中未改变p 的值,不能表示a[1] 地 址的表达式是 。
选项:
A: p+1
B: a+1
C: a++
D: ++p
答案: 【 a++ 】
9、单选题:
设有如下的程序段: char
str[ ]="Hello" ; char
*ptr ; ptr=str; 执行上面的程序段后 ,*(ptr+5)的值为 。
选项:
A: 'o'
B: ''
C: 不确定的值
D: 'o'的地址
答案: 【 '' 】
10、单选题:
下面各语句行中,能正确进行字符串赋值操作的语句是 。
选项:
A: char
ST[5]={"ABCDE"};
B: char S[5]={'A','B','C','D','E'};
C: char *S; S="ABCDE";
D: char *S; scanf("%s",S);
答案: 【 char *S; S="ABCDE";】
项目三 车辆数据类型选择(选择结构)
任务3.1新能源汽车电池组的选择(单分支)随堂测验
1、单选题:
已知定义double类型值battery_capacity,则scanf格式化字符串___.
选项:
A: %D
B: %lf
C: %C
D: .%S
答案: 【 %lf】
2、单选题:
使用scanf函数需要在头文件中添加___.
选项:
A: #include <stdio.h>
B: #include <ctype.h>
C: #include <float.h>
D: include <iomanip.h>
答案: 【 #include <stdio.h> 】
3、单选题:
定义int x=5, y=6;执行y=x+y程序后,变量y的值是___.
选项:
A: 1
B: 11
C: 6
D: 0
答案: 【 6】
4、单选题:
有下面的程序 int a=3,b=5; if(a>b)b=a; printf("b=%d",b);
选项:
A: b=5
B: b=3
C: b=0
D: b=1
答案: 【 b=5】
5、单选题:
执行下面程序的输出结果为___.void main(){
int x=11,y=16,z=20;
if(x>y){
printf("%d",z);
}
if(y>z){
printf("%d",z);
}
if(z>x){
printf("%d",z);
}
}
选项:
A: 16
B: 20
C: 11
D: 15
答案: 【 20】
任务3.2判断车辆是否存在故障(双分支)随堂测验
1、单选题:
两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( )。 int x;
scanf("%d",&x);
if(++x>5)
printf("%d",x);
else
printf("%dn",x --);
选项:
A: 7和5
B: 6和3
C: 7和4
D: 6和4
答案: 【 7和4 】
2、单选题:
已知A=7.5,B=2,C=3.6,表达式(A>B && C>A) || (A<B && !C>B)的值是( )。
选项:
A: 0
B: 10
C: 1
D: 5
答案: 【 0】
3、单选题:
下边程序段 int a=2,b=3,c=4;
if(c=a+b)
printf(“OK!”);
else
printf(“NO!”); 输出结果是( )。
选项:
A: OK!
B: NO
C: 程序错误
D: 以上都不对
答案: 【 OK!】
4、单选题:
设整型变量a,b的值分别为1,0,那么a || b的结果是( )。
选项:
A: 0
B: 1
C: 2
D: 都不对
答案: 【 1】
5、单选题:
有以下程序段 int a; if (3&&2) a=1; else a = 2; 执行后a=( )。
选项:
A: 1
B: 2
C: 3
D: 0
答案: 【 1 】
任务3.3判断车辆的故障等级(多分支)随堂测验
1、单选题:
下列语句搭配正确的是( )
选项:
A: if ,while
B: while ,else
C: if ,else
D: if ,else if
答案: 【 if ,else】
2、单选题:
下面括号该填的是( )void main(){
int Rap;
printf("输入你的电量状态(占比数字):n");
scanf("%d",&Rap);
if(Rap==0)
{
printf("无电量,无法行驶状态。n");
}
else if( Rap<20)
{
printf("缺电状态n");
}
(______________________________________)
{
printf("正常状态n");
}
选项:
A: if
B: else
C: else if
D: do
答案: 【 else】
3、单选题:
大于零并且小于十五时输出一档该填( )#include "stdio.h"
void main()
{
int speed;
printf("输入你的车速(km):n");
scanf("%d",&speed);
if(speed==0)
{
printf("零档n");
}
else if(speed________)
{
printf("一挡n");
}
else if(speed<30)
{
printf("二挡n");
}
else if(speed<40)
{
printf("三挡n");
}
else
{
printf("四挡n");
}
}
选项:
A: <15
B: >15
C: >=15
D: <=15
答案: 【 <15】
4、单选题:
要输出:一级故障/严重故障,停机处理 则要输入()void main()
{
int Fault_level;
printf("输入你的事故等级(数字):n");
scanf("%d",&Fault_level);
if(Fault_level==0)
{
printf("正常n");
}
else if(Fault_level<2)
{
printf("一级故障/严重故障,停机处理;n");
}
else
{
printf("输入错误,请重新输入n");
}
}
选项:
A: 0
B: 1
C: 2
D: 3
答案: 【 1】
5、单选题:
请给空格处填空void main()
{
char Typeofdrivinglicense[2];
printf("输入你的车型:n");
scanf("(____)",&Typeofdrivinglicense);
选项:
A: %a
B: %c
C: %s
D: %f
答案: 【 %c】
任务3.4 判断车辆的故障等级(switch)随堂测验
1、单选题:
写出下面程序的输出结果 ()#include <stdio.h>
int main()
{
int x=1, y=0, a=0, b=0;
switch(x)
{
case 1:
switch(y)
{
case 0: a++;
case 1: b++;
}
case 2: a++;
b++;
}
printf("a=%d, b=%dn", a, b) ;
return 0;
}
选项:
A: a=1, b=0
B: a=2, b=1
C: a=1, b=1
D: a=2, b=2
答案: 【 a=2, b=2】
2、单选题:
若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是()
选项:
A: switch(x) { case 1.0:printf("*n");case 2.0:printf("**n");}
B: switch((int)x);{ case 1:printf("*n");case 2.0:printf("**n");}
C: switch(a+b) { case 1:printf("*n");case 2:printf("**n");}
D: switch(a+b){ case 1:printf("*n");case c:printf("**n");}
答案: 【 switch(a+b) { case 1:printf("*n");case 2:printf("**n");} 】
任务3.5 车辆故障诊断与维修(选择嵌套)随堂测验
1、单选题:
在嵌套使用if语句时,C语言规定else总是()。
选项:
A: 和之前与其具有相同缩进位置的if配对
B: 和之前与其最近的if配对
C: 和之前与其最近的且不带else的if配对
D: 和之前的第―个if配对
答案: 【 和之前与其最近的且不带else的if配对】
2、单选题:
以下关于switch语句和break语句的描述中,正确的是()。
选项:
A: 在switch语句中必须使用break语句
B: 在switch语句中,可以根据需要使用或不使用break语句
C: break语句只能用于switch语句中
D: break语句是switch语句的一部分
答案: 【 在switch语句中,可以根据需要使用或不使用break语句】
3、单选题:
#include <stdio.h> #include <math.h> int main ( ) { double x, y; scanf("%lf",& x); if (x<2) y=x; else if(x<6) y=x*x+1; else if(x<10) y=sqrt(x+1); else y=1/(x+1); printf("%lfn", y); return 0; }从键盘输入3,那么程序的结果为
选项:
A: 3
B: 10
C: 2
D: 0.333
答案: 【 10】
项目三:单元测试
1、单选题:
以下运算符中优先级最高的为()
选项:
A: &&
B: !
C: !=
D: ==
答案: 【 ! 】
2、单选题:
1. 分析以下程序, 下列说法正确的是 。main() { int x=5,a=0,b=0;if(x=a+b) printf("* * * *n");else printf("# # # #n"); }
选项:
A: 有语法错,不能通过编译
B: 通过编译,但不能连接
C: 输出* * * *
D: 输出# # # #
答案: 【 输出# # # #】
3、单选题:
若以定义 int=12;执行下面程序的输出结果为___.Printf(“a=%d,a=%o,a=%xn”a,a,a);
选项:
A: a=12,a=14,a=c
B: a=12,a=14,a=a
C: a=12,a=16,a=c
D: a=12,a=14,a=c
答案: 【 a=12,a=14,a=c】
4、单选题:
设整型变量a,b的值分别为1,0,那么a || b的结果是
选项:
A: 0
B: 1
C: 2
D: 都不对
答案: 【 1】
5、单选题:
已知有程序为int x=3,y=10;if(x<1)x=x+y;else if(x<=3) { if(y>x) y=y-x; else y=x-y; }则 y 的值为
选项:
A: 7
B: -7
C: 10
D: 13
答案: 【 7】
6、单选题:
从键盘输入1 81,则输出结果为void main(){ int mode,required,time; printf("1:快充t2:慢充nn"); printf("请选择充电方式:(输入对应方式前的数字)n"); printf("请输入需求电量:n"); scanf("%d%d",&mode,&required); switch(mode) {
