大学MOOC 程序设计技术(太原理工大学)1450320375 最新慕课完整章节测试答案
第三周格式化输入输出及选择结构1
文章目录
选择题
1、单选题:
能正确表示逻辑关系x<=y<=z的C语言表达式为( )
选项:
A: (x<=y)&&(y<=z)
B: (x<=y)AND(y<=z)
C: (x<=y<=z)
D: (x<=y)&(y<=z)
答案: 【 (x<=y)&&(y<=z) 】
2、单选题:
能正确表示逻辑关系“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>=10‖a<=0 】
3、单选题:
能正确表示逻辑关系“79<X<90”的C语言表达式是( )
选项:
A: ( X>79 ) && ( X<90 )
B: ( X>79 )!=( X<90 )
C: 79<X<90
D: (X>79 )||( X<90)
答案: 【 ( X>79 ) && ( X<90 ) 】
4、单选题:
设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是( )
选项:
A: 10<a<15
B: a==11||a==12||a==13||a==14
C: a>10&&a<15
D: !(a<=10)&&!(a>=15)
答案: 【 10<a<15 】
5、单选题:
设x,t均为int型变量,则执行语句“x=10; t=x&&x>10;”后,t的值为( )
选项:
A: 值不确定
B: 10
C: 1
D: 0
答案: 【 0】
6、单选题:
下面程序,运行后的输出结果是( )#include<stdio.h>int main(){ int a=1, b = 3, c = 4;if(a<b) a=b;if(a<c) a=c;printf("%d, %d, %dn", a, b, c);}
选项:
A: 4,4,3
B: 4,3,4
C: 3,4,3
D: 1,3,4
答案: 【 4,3,4 】
7、单选题:
语法不正确的语句是( )
选项:
A: if (x>y);
B: if (x=y) {x++;y++;}
C: if (x==y) && (x!=0) x++;
D: if (x!=y) scanf ("%d", &x);
答案: 【 if (x==y) && (x!=0) x++;】
8、单选题:
如果整型变量a,b,c的值分别为5,4,3,则语句if(a>b>c) c++; 执行后c的值是( )
选项:
A: 5
B: 4
C: 3
D: 2
答案: 【 3】
9、单选题:
如果整型变量a,b,c的值分别为3,4,5,则语句 if(a<b<c) c++;执行后c的值是( )
选项:
A: 3
B: 4
C: 5
D: 6
答案: 【 6】
10、单选题:
运行以下程序,如果从键盘上输入5,则输出结果是( ) #include<stdio.h>int main(){ int x;scanf("%d", &x);if (x--< 5) printf("%d", x);}
选项:
A: 3
B: 4
C: 5
D: 无输出
答案: 【 无输出】
11、单选题:
C语言语句中,可以用来决定分支流程的表达式是( )
选项:
A: 任意表达式
B: 只能用逻辑表达式或关系表达式
C: 只能用逻辑表达式
D: 只能用关系表达式
答案: 【 任意表达式】
12、单选题:
int x=102,y=12;printf("%2d,%3dn",x,y);执行后输出结果是( )
选项:
A: 10,012
B: 02, 12
C: 102, 12
D: 102,120
答案: 【 102, 12】
13、单选题:
设i是 int 型变量 ,j是 float 型变量 , 用下面的语句给这两个变量输入值: scanf("i=%d, j=%f",&i,&j); 为了把 10 和 2.5分别赋给 i 和 j, 则正确的输入为( )
选项:
A: 10 2.5< 回车 >
B: i=10,j=2.5< 回车 >
C: 10 < 回车 > 2.5< 回车 >
D: x=10 < 回车 > ,y=2.5< 回车 >
答案: 【 i=10,j=2.5< 回车 > 】
14、单选题:
执行下面语句,int a =1,b=2,c=3;if(a>c) b =c; a=c; c=b;a,b,c的值分别为( )(用逗号分隔)
选项:
A: 3,2,2
B: 1,2,3
C: 3,3,2
D: 3,3,3
答案: 【 3,2,2】
15、单选题:
请选出正确的输入语句( )。
选项:
A: double f;scanf("%lf",&f);
B: float x,y; scanf("%f%f",x,y);
C: float x;scanf("%fn",x);
D: double x;scanf("%f",&x);
答案: 【 double f;scanf("%lf",&f);】
16、多选题:
在printf函数中,浮点型数据输出的格式控制符有( )。
选项:
A: %e
B: %d
C: %f
D: %g
答案: 【 %e;
%f;
%g】
17、多选题:
下面程序中,( )可以输出变量a,b,c的最大值。
选项:
A: if(a>=b && a>=c ) printf( "最大值为%dn",a); if(b>=a && b>=c) printf( "最大值为%dn",b); if(c>=a && c>=b) printf( "最大值为%dn",c);
B: max=a; if(b>max) max=b; if(c>max) max=c;printf( "最大值为%dn",max);
C: if(a>b>c ) printf( "最大值为%dn",a); if(b>a>c) printf( "最大值为%dn",b); if(c>a>b) printf( "最大值为%dn",c);
D: if(a>b) max=a; if(c>max) max=c;printf( "最大值为%dn",max);
答案: 【 if(a>=b && a>=c ) printf( "最大值为%dn",a); if(b>=a && b>=c) printf( "最大值为%dn",b); if(c>=a && c>=b) printf( "最大值为%dn",c); ;
max=a; if(b>max) max=b; if(c>max) max=c;printf( "最大值为%dn",max);】
18、填空题:
设a=1, b=2, c=3,关系表达式a+b>=c 的值是( )。
答案: 【 1】
19、填空题:
设a=1, b=2, c=3,逻辑表达式a && b && c的值是( )。
答案: 【 1】
20、填空题:
设a=1, b=2, c=3,逻辑表达式a || !b || !c的值是( )。
答案: 【 1】
21、填空题:
输入一个考试分数(0至100范围内),如果分数小于60分,则输出“不及格”;大于90分输出“优秀”;大于等于60并且小于等于90,则输出“合格”。(有1个空,答案一行写一个,不要添加多余的空格)#include <stdio.h> int main(){ int x; printf("请输入分数(0-100): "); scanf("%d",&x); if(x<60) printf( "不及格n"); if(x>90) printf( "优秀n"); printf( "合格n"); //注意分数在一个区间内,C语言中该如何描述 return 0;}
答案: 【 if(x>=60 && x<=90)##%_YZPRLFH_%##if(60<=x && x<=90)##%_YZPRLFH_%##if(60=x)##%_YZPRLFH_%##if(x>=60 && 90>=x)##%_YZPRLFH_%##if(x>=60&&x<=90)##%_YZPRLFH_%##if(60<=x&&x<=90)##%_YZPRLFH_%##if(60=x)##%_YZPRLFH_%##if(x>=60&&90>=x)##%_YZPRLFH_%##if((x>=60)&&(x<=90))】
22、填空题:
我国的邮政编码由六位阿拉伯数字组成,前第三位代表邮区,厦门市的邮政编码前三位为361 。下面的程序功能:如果输入的邮政编码前3位是361,则输出“厦门市的邮件”;如果不是361,则输出“不是厦门市的邮件”。请完善程序(有2个空,答案一行写一个,不要添加多余的空格).#include <stdio.h> int main(){ int code; printf("请输入邮政编码: "); scanf(" %*3d",&code); //用scanf函数截取输入邮政编码的前3位 if(361 code ) printf( "厦门市的邮件n"); if (361!=code) printf( "不是厦门市的邮件n"); return 0;}需要更多样例参考的同学可查阅课件 “ 选择结构初步 ” 里的最后一个文档 “ 习题解析 ”中第2题
答案: 【 %3d
==】
第四周选择结构2
多分支选择题
1、单选题:
分析以下程序, 下列说法正确的是( )#include<stdio.h>main(){ int x=5,a=0,b=0; if(x=a+b) printf("* * * *n"); else printf("# # # #n");}
选项:
A: 有语法错,不能通过编译
B: 通过编译,但不能连接
C: 输出* * * *
D: 输出# # # #
答案: 【 输出# # # #】
2、单选题:
分析以下程序, 下列说法正确的是( )#include<stdio.h> main(){ int x=6,a=8,b=3; if(x=a+b) printf("* * * *n"); else printf("# # # #n");}
选项:
A: 有语法错,不能通过编译
B: 通过编译,但不能连接
C: 输出* * * *
D: 输出# # # #
答案: 【 输出* * * * 】
3、单选题:
分析以下程序, 下列说法正确的是( )#include<stdio.h> main(){ int x=0,a=0,b=0; if(x==a+b) printf("* * * *n"); else printf("# # # #n");}
选项:
A: 有语法错,不能通过编译
B: 通过编译,但不能连接
C: 输出* * * *
D: 输出# # # #
答案: 【 输出* * * *】
4、单选题:
运行以下程序,如果从键盘上输入5,则输出结果是( )#include<stdio.h> int main(){ int x; scanf("%d", &x); if ( x--< 5) printf("%d", x); else printf("%d",x++);}
选项:
A: 3
B: 4
C: 5
D: 6
答案: 【 4】
5、单选题:
运行以下程序,如果从键盘上输入5,则输出结果是( )#include<stdio.h> int main(){ int x; scanf("%d", &x); if ( x--< 5) printf("%d", x); else printf("%d",++x);}
选项:
A: 3
B: 4
C: 5
D: 6
答案: 【 5】
6、单选题:
运行以下程序,如果从键盘上输入9,则输出结果是( )#include<stdio.h> int main(){ int x; scanf("%d", &x); if ( ++x< 10) printf("%d", x); else printf("%d",--x);}
选项:
A: 11
B: 10
C: 9
D: 8
答案: 【 9】
7、单选题:
以下程序的输出是( )#include<stdio.h> int main(){ float x=2.0,y; if (x<0.0) y=0.0; else if (x<10.0) y=1.0/x; else y= 1.0; printf("%fn", y);}
选项:
A: 0.000000
B: 0.250000
C: 0.500000
D: 1.000000
答案: 【 0.500000】
8、单选题:
下面程序的运行结果是( )。#include <stdio.h>main(){ int a=12, b= -34, c=56, min=0; min=a; if(min>b) min=b; if(min>c) min=c; printf("%d", min);}
选项:
A: 12
B: -34
C: 56
D: 0
答案: 【 -34】
9、单选题:
分析以下程序, 输出结果是( )#include<stdio.h>int main(){ int x=5; if(x) printf("* * * *n"); printf("# # # #n");}
选项:
A: * * * *# # # #
B: # # # #
C: * * * *
D: 无输出
答案: 【 * * * *# # # #】
10、单选题:
分析以下程序, 输出结果是( )#include<stdio.h>int main(){ int x=5; if(x) x=6; x=7; printf("%dn",x);}
选项:
A: 7
B: 5
C: 6
D: x
答案: 【 7】
11、多选题:
按功能键F5进入调试状态后,可以( )。
选项:
A: 查出所有的语法错误
B: 设置断点
C: 控制程序一步一步地执行,每执行一步,都可以暂停
D: 观察变量或表达式值的变化
答案: 【 设置断点;
控制程序一步一步地执行,每执行一步,都可以暂停;
观察变量或表达式值的变化】
12、多选题:
下面( )是正确的符号函数程序。当x>0时,y=1当x=0时,y=0当x<0时,y=-1(提示:按if-else配对规则分析程序,y值的运算结果与符号函数一致,才是正确的程序)
选项:
A: if(x>0) y=1;else if(x==0) y=0; else y=-1;
B: y=0;if(x!=0) if(x>0) y=1; else y=-1;
C: y=0;if(x>=0) if(x>0) y=1; else y=-1;
D: if(x>=0) if(x>0) y=1;else y=0;else y=1;
答案: 【 if(x>0) y=1;else if(x==0) y=0; else y=-1;;
y=0;if(x!=0) if(x>0) y=1; else y=-1;】
13、多选题:
程序功能:输入一个整数,当它是偶数时,输出“该数是偶数”,否则,输出“该数是奇数”。请完善程序,空格处应填( )。#include <stdio.h> int main(){ int x; printf("请输入x: "); scanf("%d",&x); if(x%2==0) printf( "该数是偶数n"); //偶数除以2的余数为0 printf( "该数是奇数n"); return 0;}
选项:
A: else
B: if(x%2!=0)
C: if(x/2!=0)
D: else if(x%2!=0)
答案: 【 else;
if(x%2!=0);
else if(x%2!=0)】
14、多选题:
输入一个考试分数(0至100范围内),如果分数小于60分,则输出“不及格”;否则输出“及格”。(程序有1个空,请选择正确的答案)#include <stdio.h> int main(){ int x; printf("请输入分数(0-100): "); scanf("%d",&x); if(x<60) printf( "不及格n"); printf( "及格n"); return 0;}
选项:
A: else
B: if(x>=60)
C: else if(x>=60)
D: x>=60
答案: 【 else;
if(x>=60);
else if(x>=60)】
15、填空题:
读程序,写出运行结果。#include <stdio.h>main(){ int a=1,b=3,c=5;if (c==a+b) printf("yesn");else printf("non");}
答案: 【 no】
16、填空题:
读程序,写出运行结果。#include <stdio.h>int main(){ int x=2, y=-1, z=5; if(x<y) if(y<0) z=0; else z=z+1; printf(“%dn”,z); }
答案: 【 5】
17、填空题:
读程序,写出运行结果。#include <stdio.h>main(){ float a,b,c,t;a=3;b=7;c=1;if(a>b) {t=a;a=b;b=t;}if(a>c) {t=a;a=c;c=t;}if(b>c) {t=b;b=c;c=t;}printf("%5.2f,%5.2f,%5.2f",a,b,c); //注意%5.2f 的输出格式与逗号}
答案: 【 1.00, 3.00, 7.00】
18、填空题:
下面是一个旅游自助程序。程序先输出选择菜单,
如果用户输入1,则提示输入租车数量,用变量i保存,然后计算需支付的金额,并输出。
如果用户输入2,则提示输入购票数量,用变量j保存,然后计算需支付的金额,并输出。
如果用户输入其它数,则提示选择错误。
费用计算方法:
租一辆车需支付150元。
门票一张60元,如果购票数>=10,则每张50元。
请完善程序。(程序有2个空,答案一行写一个,不要添加多余的空格)
#include <stdio.h>
int main()
{
int choose,i,j,money;
printf("ntt旅游自助服务n");
printf("t1---租车t2---购买门票nn");
printf("请选择您需要的服务:");
scanf("%d",&choose);
if( )
{
printf("请输入租车数量");
scanf("%d",&i);
money=150*i;
printf("n您需支付:%d元n",money);
}
(choose==2)
{
printf("请输入购票数量");
scanf("%d",&j);
if(j>=10) money=50*j; else money=60*j;
printf("n您需支付:%d元n",money);
}
else
{
printf("选择错误");
}
return 0;
}
答案: 【 choose==1
else if##%_YZPRLFH_%##1==choose
else if】
第五周循环基础
单循环选择、填空题
1、单选题:
设有如下程序段,则输出结果为()int k=0,a;for (a=1;a<=1000;a++) k=k+1;printf("k=%d",k);提示:可参考课件“附加例题解析”文档中的例题
选项:
A: k=1
B: k=1001
C: k=1000
D: 溢出
答案: 【 k=1000】
2、单选题:
设有如下程序段,则最后一次输出的是()int a;for (a=1;a<=1000;a++) printf("a=%d",a);提示:可参考课件“附加例题解析”文档中的例题
选项:
A: a=1
B: a=1000
C: a=1001
D: 溢出
答案: 【 a=1000】
3、单选题:
设有如下程序段,则输出结果是()int a;for (a=1;a<=1000;a++) ;printf("a=%d",a);提示:可参考课件“附加例题解析”文档中的例题
选项:
A: a=a=aaa a= 1 a= 1a=1
B: a=1000
C: a=1001
D: 溢出
答案: 【 a=1001】
4、单选题:
设有如下程序段,则输出结果为()int k=0,a;for (a=1;a<=1000;a++) {a=a+1;k=k+1;}printf("k=%d",k);
选项:
A: k=1000
B: k=499
C: k=500
D: k=501
答案: 【 k=500】
5、单选题:
int i,j=10;for( i=1; i==j; i++); 的循环次数是()提示:可参考课件“附加例题解析”文档中的例题
选项:
A: 0
B: 5
C: 10
D: 无限
答案: 【 0】
6、单选题:
int i, j;j=10;for(i=1; i<=j; i++) j--; 程序的循环次数是()
选项:
A: 0
B: 5
C: 10
D: 无限
答案: 【 5】
7、单选题:
语句for(x=0,y=0; y!=1&&x<4; x++); 是()
选项:
A: 无限循环
B: 循环次数不定
C: 循环4次
D: 循环3次
答案: 【 循环4次】
8、单选题:
设有程序段:int k=10;while(k=0)k = k- 1; 则下面叙述正确的是()
选项:
A: while循环执行10次
B: 是无限循环
C: 循环体语句执行一次
D: 循环体语句一次也不执行
答案: 【 循环体语句一次也不执行】
9、单选题:
设有程序段:int k=10;while(k==0)k = k- 1; 则下面叙述正确的是()
选项:
A: while循环执行10次
B: 无限循环
C: 循环体语句执行一次
D: 循环体语句一次也不执行
答案: 【 循环体语句一次也不执行】
10、单选题:
设有程序段:int k=10;while(k!=0) k = k- 1;则下面叙述正确的是()
选项:
A: while循环重复执行10次
B: 是无限循环
C: 循环体语句执行一次
D: 循环体语句一次也不执行
答案: 【 while循环重复执行10次】
11、单选题:
与语句while(!x);等价的语句是()
选项:
A: while(x= =0);
B: while(x!=1);
C: while(x!=0);
D: while(x==1);
答案: 【 while(x= =0); 】
12、单选题:
int i=0, j;for( j=10; i<j; j--) i++; 程序的循环次数是()
选项:
A: 0
B: 5语法错误 5
C: 语法错误
D: 无穷多次
答案: 【 5语法错误 5】
13、单选题:
设有程序段,以下说法正确的是()x = -1;do { x = x*x;} while( !x);
选项:
A: 循环体将执行一次
B: 循环体将执行两次
C: 循环体将执行无限次
D: 系统将提示有语法错误
答案: 【 循环体将执行一次 】
14、单选题:
C语言中while 和do-while 循环的主要区别是()
选项:
A: do-while的循环体至少无条件执行一次
B: while 的循环控制条件比do-while 的循环控制条件严格
C: do-while的循环体比while的循环体少执行1次
D: do-while 的循环体不能是复合语句
答案: 【 do-while的循环体至少无条件执行一次】
15、单选题:
下列语句不是死循环的是()
选项:
A: int i = 1;while(1) i++;
B: int i =1;for(;;) i++;
C: int i =1;doi++;while(1);
D: int i =10;while(i)i--;
答案: 【 int i =10;while(i)i--;】
16、单选题:
下面程序的功能是:计算1~10之间的奇数之和及偶数之和,空白处应填 ()#include<stdio.h>int main(){ int a, b, c, i; a = c = 0; for(i=0; i<=10; i+=2) { a += i; } printf("偶数之和=%d!n", a); printf("奇数之和=%d!n", c-11); }
选项:
A: c+=i;
B: c+=i+1;
C: b+=i;
D: b+=i+1;
答案: 【 c+=i+1;】
17、单选题:
下面程序的功能是()#include<stdio.h>int main(){ int x,s=0,i; for(i=1; i<=5; i++) { scanf("%d",&x); s=s+x; } printf("s=%dn", s); return 0;}
选项:
A: 输入任意5个整数,输出这5个数的和
B: 输入任意5个整数,输出这5个数
C: 求1+2+3+4+5的和
D: 输入语句scanf("%d",&x);不能放在循环中,程序出错
答案: 【 输入任意5个整数,输出这5个数的和】
18、单选题:
下面程序的功能是()#include<stdio.h>int main(){ int x,s=0,i; scanf("%d",&x); while(x!=0) { s=s+x; scanf("%d",&x); } printf("s=%dn", s); return 0;}
选项:
A: 输入一组整数,以输入0作为结束,求所有数的和并输出
B: 输入一组整数,输出不为0的数
C: 输入一组整数,并输出这些数
D: 程序只输入了一个整数,输出0
答案: 【 输入一组整数,以输入0作为结束,求所有数的和并输出】
19、填空题:
编程:输入一个整数,计算该整数的位数,并输出位数。输入样例:12345输出样例:输入的是5位数请完善程序。(程序有1个空,答案一行写一个,不要添加多余的空格) #include <stdio.h>int main( ){ int i=0,k,j; scanf("%d",&k); do { k= k/10; i++; }while( ); printf("输入的是%d位数n", i); }提示:第二周讨论题-----讨论一类赋值语句的特点,在置顶贴的回复中,有本题的相关内容。这一类赋值语句常用于循环中。
答案: 【 k!=0##%_YZPRLFH_%##0!=k##%_YZPRLFH_%##!k==0】
20、填空题:
编程:输入一个整数,计算该整数的位数,并输出位数。输入样例:12345输出样例:输入的是5位数请完善程序。(程序有1个空,答案一行写一个
