MOOC 高级语言(河南科技学院)1206689847 最新慕课完整章节测试答案
第一章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/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("%