大学MOOC 计算机基础(理工科)-赵强(山西大学)1451589221 最新慕课完整章节测试答案
第2周计算
小测验
1、填空题:
写出以下代码执行后,t1和t2的值,以空格隔开:int a=14;int t1 = a++;int t2 = ++a;
答案: 【 14 16】
2、填空题:
写出以下表达式的结果,结果之间间隔一个空格:6 + 5 / 4 - 22 + 2 * (2 * 2 - 2) % 2 / 310 + 9 * ((8 + 7) % 6) + 5 * 4 % 3 * 2 + 3 1 + 2 + (3 + 4) * ((5 * 6 % 7 / 8) - 9) * 10
答案: 【 5 2 44 -627】
第3周判断与循环
C语言基本知识点考察
1、单选题:
假设整型变量a的值是1,b的值是2,c的值是3,在这种情况下执行下面的语句: u=(a==2)?b+a:c+a; 执行该语句后整型变量u的值为()。
选项:
A: 0
B: 3
C: 4
D: 5
答案: 【 4】
2、单选题:
分析下面的代码:if ( x>20||x<-10)if(y<=100&&y>x)printf("Good");elseprintf("Bad");如果 x=30,y=150, 输出为( )。
选项:
A: Good
B: Bad
C: Good Bad
D: Bad Good
答案: 【 Bad】
3、单选题:
#include<stdio.h>void main(){int a;scanf("%d",&a);switch(a){case 1:printf(" 星期一 ");case 2:printf(" 星期二 ");读书破万卷 下笔如有神case 3:printf(" 星期三 ");case 4:printf(" 星期四 ");case 5:printf(" 星期五 ");case 6:printf(" 星期六 ");case 7:printf(" 星期日 ");default:printf(" 输入错误 n");}}若 a=6, 则输出结果是( )。
选项:
A: 星期六
B: 星期六 星期日
C: 星期六 星期日 输入错误
D: 输入错误
答案: 【 星期六 星期日 输入错误】
4、单选题:
if (a<0.7)printf(" 提示 1");else if(a<1)printf(" 提示 2");elseprintf(" 提示 3");如果 a=0.8, 那么输出结果为 ( ) 。
选项:
A: 提示 1
B: 提示 2
C: 提示 3
D:
答案: 【 提示 3】
5、单选题:
在 switch 结构中,( )子句不是必选项。
选项:
A: switch
B: case
C: default
D: else
答案: 【 default】
6、单选题:
分析下面的代码,如果输入 85,那么将输出( )。#include <stdio.h>读书破万卷 下笔如有神void main(){int mks;printf(" 请输入分数: ");scanf("%d",&mks);mks>90?printf(" 优秀 "):printf(" 一般 ");}
选项:
A: 优秀
B: 一般
C: 代码将不会显示任何结果
D: 语法错误
答案: 【 一般】
7、单选题:
分析下面的 C语言代码:int a=1,b=10;do{b-=a; a++;}while (b- -<0);则执行循环语句后 b 的值为()
选项:
A: 9
B: -2
C: -1
D: 8
答案: 【 8】
8、单选题:
设 i 是 int 型变量 ,f 是 float 型变量 , 用下面的语句给这两个变量输入值 :scanf("i=%d,f=%f",&i,&f);为了把 100 和 765.12 分别赋给 i 和 f, 则正确的输入为() 。
选项:
A: 100 765.12
B: i=100,f=765.12
C: 100< 回车> 765.12
D: x=100 y=765.12
答案: 【 i=100,f=765.12】
9、单选题:
#include<stdio.h>void main(){int a=3,b=2,c=1;int x=10,y=20;if(a<b)if(b!=0)读书破万卷 下笔如有神if(!x)y=1;else if(x)y=0;y=-1;printf("%d",y);}上面的 C程序的输出结果是( )。
选项:
A: 20
B: 1
C: 0
D: -1
答案: 【 1】
10、单选题:
C语言中, while 和 do⋯while 循环的主要区别是( )。
选项:
A: while 的循环控制条件比 do⋯while 的循环控制条件严格
B: do ⋯while 的循环体至少无条件执行一次
C: do ⋯while 允许从外部转到循环体内
D: do ⋯while 的循环体不能是复合语句
答案: 【 do ⋯while 的循环体不能是复合语句】
11、单选题:
执行下面的 C程序段后,输出结果是( )。int a=5;while( a- -);printf( "%d",a) ;
选项:
A: 54321
B: 4321
C: 0
D: -1
答案: 【 -1】
12、单选题:
下面 C代码的输出结果是( )。int answer,result;answer=100;result=answer-10;printf( “The result is %d” , result+5);
选项:
A: The result is 90
B: The result is 95
C: The result is 10
D: The result is 100
答案: 【 The result is 95】
13、单选题:
分析下面的 C程序 :#include<stdio.h>void main(){int num=0;while(num<=2){num++;printf("%d ",num);}}输出结果是( )。
选项:
A: 1 2 3
B: 0 1 2
C: 2 3
D: 1 2
答案: 【 1 2 3】
14、单选题:
研究下面的 C程序段:int i,j;for (i=5;i;i--)for(j=0;j<4;j++){ ⋯}循环体的总执行次数是() 。
选项:
A: 20
B: 25
C: 24
D: 30
答案: 【 20】
15、单选题:
设 x,y,z,t 均为 int 型变量,则执行以下语句后, t 的值为()。x=y=z=1;t=++x||--y&&++z;
选项:
A: 不定值
B: 2
C: 1
D: 0
答案: 【 1】
16、单选题:
阅读下面的 C语言代码,输出结果是() 。int x, y = 1, z=0;if ( z < 0 )x = 3;else if ( y == 0 )x = 5;elsex = 7;printf("%d, %d", x, y);
选项:
A: 7,0
B: 7,1
C: 3,3
D: 其他答案都不正确
答案: 【 7,1】
17、单选题:
在 C 语言中,已知字母 A的 ASCII 码是 65,则执行语句: char ch='A'+3; 后 ch 的值为( )。
选项:
A: 不确定
B: 68
C: C
D: D
答案: 【 D】
18、单选题:
在 C语言中,能正确表示 a 和 b 同时为正或同时为负的逻辑表达式是() 。
选项:
A: (a>=0 ‖b>=0)&&(a<0‖b<0)
B: (a>=0&&b>=0)&&(a<0&&b<0)
C: (a+b>0)&&(a+b<=0)
D: a*b>0
答案: 【 a*b>0】
19、单选题:
下面的 C语言代码段的输出结果是() 。int j;for(j=1; j<10; j+=2)printf("%d ",j);
选项:
A: 1 2 3 4 5 6 7 8 9
B: 2 4 6 8
C: 1 3 5 7 9
D: 1 2 4 6 8
答案: 【 1 3 5 7 9】
20、单选题:
在 C语言中 , 表达式 :10!=9 的值是()。
选项:
A: true
B: 非零值
C: 0
D: 1
答案: 【 1】
21、单选题:
在 C语言中,下列正确的字符型常量是() 。
选项:
A: "f"
B: '9'
C: #
D: 365
答案: 【 '9'】
22、单选题:
在 C语言中,以下不会出现死循环的语句是() 。
选项:
A: int x=0;do{x++;}while(x=1);
B: for(k=10; ; k--);
C: for(y=0, x=1; x>++y; x=k++) k=x;
D: while(1) {x++;}
答案: 【 for(y=0, x=1; x>++y; x=k++) k=x;】
23、单选题:
分析下面的 C语言程序:void main(){int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%dn",a,b);}输出结果是() 。
选项:
A: 2,1
B: 3,2
C: 4,3
D: 2,-1
答案: 【 2,1】
24、单选题:
在 C语言中,下面()是逻辑运算符中优先级最高的。
选项:
A: !
B: &&
C: ||
D: &
答案: 【 ! 】
25、单选题:
sizeof(float) 是( )
选项:
A: 一个双精度型表达式
B: 一个整型表达式
C: 一种函数调用
D: 一个不合法的表达式
答案: 【 一个整型表达式】
26、单选题:
临时存储频繁使用的信息以加快访问速度, 通常用在处理器和主存储器之间一种计算机存储器是() 。
选项:
A: 高速缓存( Cache)
B: 辅助存储器
C: 随机访问存储器
D: 只读存储器
答案: 【 高速缓存( Cache)】
27、单选题:
以下两种说法()说法 1:浏览器 – 服务器模型的软件在升级时需要升级相应的客户端说法 2:客户端 – 服务器模型中的客户端和服务器必须是不同的计算机
选项:
A: 只有说法 1 正确
B: 只有说法 2 正确
C: 两种说法都正确
D: 两种说法都不正确
答案: 【 两种说法都不正确】
28、单选题:
下列关于计算机病毒的叙述中,错误的是() 。
选项:
A: 计算机病毒会造成对计算机文件和数据的破坏
B: 只要删除感染了病毒的文件就可以彻底消除病毒
C: 计算机病毒是一段人为制造的小程序
D: 计算机病毒是可以预防和消除的
答案: 【 只要删除感染了病毒的文件就可以彻底消除病毒】
29、单选题:
请阅读以下程序:void main(){int a=5,b=0,c=0;if(a=b+c) printf("***n ");else printf("$$$n");}以上程序( )
选项:
A: 有语法错误不能通过编译
B: 可以通过编译但不能通过连接
C: 输出***
D: 输出$$$
答案: 【 输出$$$】
30、单选题:
若 w=1,x=2,y=3,z=4, 则条件表达式 w<x?w:y<z?y:z 的值是()。
选项:
A: 4
B: 3
C: 2
D: 1
答案: 【 1】
小测验
1、单选题:
以下哪个循环和其他三条循环不等价(假设循环体都是一样的)?
选项:
A: for ( i=0; i<10; i++ ) {...}
B: for ( i=0; i<10; ++i ) {...}
C: for ( i=0; i++<10; ) {...}
D: for ( i=0; i<=9; i++ ) {...}
答案: 【 for ( i=0; i++<10; ) {...}】
2、判断题:
while循环的条件满足的时候循环继续,而do-while的条件满足的时候循环就结束了
选项:
A: 正确
B: 错误
答案: 【 错误】
3、填空题:
以下代码片段执行结束后,变量i的值是多少?int i =10;
while ( i>0 ) {
i /=2;
}
答案: 【 0】
4、填空题:
以下代码片段执行结束后,变量i的值是多少?int i = 1;
do {
i += 5;
} while (i<17);
答案: 【 21】
5、填空题:
以下代码段的输出是什么?for ( int i=10; i> 1; i /=2 ) {
printf("%d ", i++);
}
答案: 【 10 5 3 2】
第4周进一步的判断与循环
小测验
1、单选题:
以下哪种运算能从变量x中取得十进制最低位的数字
选项:
A: x /10
B: x % 10
C: x * 10
D: 10 / x
答案: 【 x % 10】
2、填空题:
当需要累加一些值的时候,用来记录累加结果的变量应该被初始为:
答案: 【 0】
循环与选择结构的综合测试
1、单选题:
以下描述中正确的是( )
选项:
A: 由于 do-while 循环中循环体语句只能是一条可执行语句, 所以循环体内不能使用复合语句
B: do-while 循环由 do 开始,用 while 结束,在 while( 表达式 ) 后面不能写分号
C: 在 do-while 循环体中,一定要有能使 while 后面表达式的值变为零 (“假”)的操作
D: do-while 循环中,根据情况可以省略 while
答案: 【 在 do-while 循环体中,一定要有能使 while 后面表达式的值变为零 (“假”)的操作】
2、单选题:
下面程序的运行结果是( )#include<stdio.h>void main(){int y=10;do{y--;}while(- -y);printf( “%dn”,y- -);}
选项:
A: -1
B: 1
C: 8
D: 0
答案: 【 0】
3、单选题:
下面有关 for 循环的正确描述是( )。
选项:
A: for 循环只能用于循环次数已经确定的情况
B: for 循环是先执行循环体语句,后判断表达式
C: 在 for 循环中,不能用 break 语句跳出循环体
D: for 循环的循环体语句中,可以包含多条语句,但必须用大括号括起来
答案: 【 for 循环的循环体语句中,可以包含多条语句,但必须用大括号括起来】
4、单选题:
若 i 为整型变量,则以下循环执行次数是( )。for(i=2;i= =0;) printf( “%dn”,i- -);
选项:
A: 无限次
B: 0次
C: 1次
D: 2次
答案: 【 0次】
5、单选题:
以下不是无限循环的语句为( )。
选项:
A: for(y=0,x=1;x>++y;x=i++) i=x;
B: for(;;x++=i);
C: while(1){x++;}
D: for(i=10;;i- -) sum+=i;
答案: 【 for(y=0,x=1;x>++y;x=i++) i=x;】
6、单选题:
下面程序的运行结果是( )#include<stdio.h>void main(){ int i;for(i=1;i<=5;i++){if(i%2) printf( “ *”);else continue;printf( “#n ”);}printf( “$n ”);}
选项:
A: *#*#*#$
B: #*#*#*$
C:
