MOOC C语言程序设计(成都理工大学)1206769805 最新慕课完整章节测试答案
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 );