中国大学mooc《高级语言程序设计(吉林大学) 》章节测试答案_第1页
中国大学mooc《高级语言程序设计(吉林大学) 》章节测试答案_第2页
中国大学mooc《高级语言程序设计(吉林大学) 》章节测试答案_第3页
中国大学mooc《高级语言程序设计(吉林大学) 》章节测试答案_第4页
中国大学mooc《高级语言程序设计(吉林大学) 》章节测试答案_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

title高级语言程序设计(吉林大学)中国大学mooc答案100分最新版content第一讲:绪论与程序初步第一讲:绪论与程序初步–客观题1、算法是一个计算过程,是程序设计的基础和精髓。一个有效的算法应该具有如下特点,其中错误的是:____答案:无穷性2、

描述算法有各种多样的方法,下述错误的是:__答案:设计图‍3、下面C语言中不正确的数据类型关键字是

__。答案:signed4、不是C分隔符的是

__。答案:!5、算法由某些基本成分组成,这些基本成分是一些基本的操作和控制结构。以下不属于基本控制结构的是:____。答案:多文件结构6、如下错误的表达为:__。答案:

任何C程序必须包含至少一个主函数main7、一般编写并执行C程序的过程,第一步应该是__。答案:使用文本编辑程序,录入源程序,保存文件8、C语言可执行程序从哪里开始执行__。答案:程序中唯一的main函数9、

不是C关键字的是

__。答案:define‍10、不是C运算符的是

__。答案:#11、有效算法不应该具有的特性是_____。答案:冗余性12、哪种语言是计算机能够读懂的语言?答案:机器语言13、与PAD图相比,NS图和流程图更开放、更易修改。答案:错误14、C语言编写的程序只要编译链接正确,就一定能正确运行得到正确结果。答案:错误作业第一讲:绪论与程序初步第一讲:绪论与程序初步–编程题1、HelloWorld

建议:本题是主观题,暂无解析2、“鸡兔同笼”问题

建议:本题是主观题,暂无解析第二讲:顺序程序设计第二讲:顺序程序设计–客观题1、现声明float

y,由键盘输入:3.1416,正确的数据输入语句是:__。答案:scanf(“%f”,&y);2、C语言中的简单数据类型包括:__。答案:整数类型、浮点类型、字符类型3、C语言程序中,表达式5%2的结果是

__。答案:14、语句char

ch=’\65′,则变量ch

__。答案:值为1个字符5、设x为整型变量,如果要表示数学关系20<x<25,错误的C语言表达式是

__。答案:20<x<256、设变量A是int型,B是float型,则表达式A+’q’+B结果的

数据类型是__。‍答案:float7、下列标识符中不合法的是_

。答案:2Dim8、执行如下语句后,x的值和输出结果分别是

__。int

x=11;

printf(“%d”,x+2);答案:11

139、如果要表示逻辑关系“

x≥11或x≤2

”,下面正确的C语言表达式是

__。

答案:x>=11

||

x<=2

10、下列转义字符不正确的是:____。答案:‘\9999’11、下面哪个是非法的C语言标识符?答案:-ab12、假设整型变量A、B和C的值分别是3、6和9,请问在执行完如下程序片段后,A的值是多少?

C=B;

B=A;

A=C;

答案:613、C语言提供的标准输入输出库函数头文件名字是_。答案:stdio.h14、6/4和6.0/4结果相同。答案:错误15、注释会参与到程序实际执行过程,并起到关键作用。答案:错误16、字符有两种形态:可视性态和存储形态。答案:正确17、17,904是合法的整数字面常量。答案:错误18、假设有“#definepai

3.14;”此时常量标识符pai代表实数“3.14”。答案:错误19、复合语句是多条简单语句的集合,并依次执行,即复合语句中的每条语句要么被执行、要么不被执行,不存在值执行一部分的情况。答案:正确20、C语言中用表达式“a*b”表示a与b相乘。答案:正确21、假设有intv;则使用语句scanf(“%d”,v);可以从键盘读取整型变量v的值。答案:错误作业第二讲:顺序程序设计第二讲:顺序程序设计–编程题1、给定字符的前驱、本身和后继字符

建议:本题是主观题,暂无解析2、求平均值

建议:本题是主观题,暂无解析3、点到平面距离

建议:本题是主观题,暂无解析4、重量转换

建议:本题是主观题,暂无解析作业第三讲:分支和循环初步第三讲:分支和循环初步–编程题1、输出成绩等级

建议:本题是主观题,暂无解析2、回文数字

建议:本题是主观题,暂无解析3、时间值是否合法

建议:本题是主观题,暂无解析4、输出指定月份的天数

建议:本题是主观题,暂无解析5、判断日期是否合法

建议:本题是主观题,暂无解析第三讲:分支和循环初步第三讲:分支和循环初步–客观题1、以下程序的运行结果是:int

main(void){

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(“%d

%d”,

a,

b);

return

0;

}答案:2

12、若变量已正确定义,在if(S)printf(“%d”,n);中,以下不可以替代S的是:答案:

a<>b+c3、阅读下述程序段,设变量c的值是68,写出运行结果。(提示小写字母a的ASCII码是97,大写字母A的ASCII码是65)char

c;

if

(

c>=‘A’

&&

c<=‘Z’)

printf

(“%c”,c+32);

else

printf

(“%d”,c);答案:d4、如有定义语句inta,b;doublex;则下列选项中没有错误的是______.提示:(int)x表示将变量x的值强制转换成int类型。若x初始值为3.2则(int)x的结果是int类型,值为3.答案:

switch((int)x%2

){

case

0:

a++;

break;

case

1:

b++;

break;

default:

a++;

b++;

}5、下面程序的运行结果是:#include

<stdio.h>

int

main(void){

int

a=1,

b=2,

c=3

;

if

(

a==1

&&

b==2)

if

(b

!=2

||

c!=3)

printf

(

“%d,%d,%d”,a,b,c);

else

printf

(

“%d,%d,%d”,a,b,c);

else

printf

(

“%d,%d,%d”,a,b,c);

return

1;

}答案:1,2,36、如下程序段的功能是判断一个4位自然数个位和十位数字是否相同,在划线处填写表达式。int

num;

scanf

(“%d”,&num);

if

(num>=1000

&&

num<10000)

if

(__)

printf

(

“该4位自然数个位和十位数字相同”);

else

printf

(

“该4位自然数个位和十位数字不同”);答案:num%10

==num/10%107、判断一个自然数是否为4位且是5的倍数,下述语句不正确的是:答案:if(n<

=1000

||

n>10000)

if(n%5==0)

printf(“YES”);

else

printf(“NO”);8、下面程序段实现把3或5的倍数输出,在划线处填上正确的表达式

int

x;

scanf

(“%d”,&x);

if

(_______)

printf

(“%d”,x);答案:x%3==0

||

x%5==09、下述程序的运行结果是:int

main(void){

int

a=1,b=0;

if

(!a

)

b++;

else

if

(

a==0

)

if

(

a

)

b+=2;

else

b+=3;

printf(“b=%d”,b);

return

0;

}答案:b=010、阅读下面程序段,s的值是:int

a=1,

b=2

c=6,s

;

if

(

a<=b

||

c<0

||

b<c)

s=b+c;

else

s=a+b+c;答案:811、下列程序正确的输出是:____。int

x=20;

if(x>0)

printf(“0”);

if(x>10)

printf(“10”);

if(x>20)

printf(“20”);答案:01012、switch(条件语句)中的条件语句不能填入以下哪种数据类型?答案:字符串类型13、以下选项中,两个条件语句语义等价的是____。答案:if(a-2)printf(“%d”,a);

if(a!=2)printf(“%d”,a);14、下面程序输出结果是____。int

main(void){

int

a

=

0

,

b

=

1,

c

=

0

,d

=

20

,

x

=100;

if(a)

x

=

d-10;

else

if(!b)

if(!c)

x

=

15;

else

x

=

20;

printf(“%d”,

x);

return

0;答案:10015、若执行下面的程序从键盘上输入5,则输出结果是____。int

main(void){

int x; 

scanf(“%d”,&x);

if(x++>5) 

printf(“%d”,x);

else

printf(“%d”,x

–);

return

0;

}答案:616、如下语句中有一个功能与其他不同,请指出是哪一个?答案:if(a<b)s=a-b;

elses=b-a;17、多分支switch语句(难度:低)switch(e){

casec1:语句;break;

………..

caseci:语句;break;

………..

default:语句}中描述正确的是:____答案:break的作用是跳出包含它的switch语句,执行该switch语句的后继语句18、如下哪个逻辑表达式为真时,能正确表示x是3,5,7的公倍数。答案:(x%3==0)&&(x%5==0)&&(x%7==0)作业第四讲:循环进阶第四讲:循环进阶–编程题1、勒让德多项式

建议:本题是主观题,暂无解析2、计算序列和

建议:本题是主观题,暂无解析3、判断给定自然数是否为降序数

建议:本题是主观题,暂无解析4、计算n个正整数的最小公倍数

建议:本题是主观题,暂无解析5、爱因斯坦阶梯问题

建议:本题是主观题,暂无解析作业第四讲:循环进阶第四讲:循环进阶–编程题–拓展篇(不计入成绩)1、连续数字序列

建议:本题是主观题,暂无解析2、求参加竞赛人数

建议:本题是主观题,暂无解析第四讲:循环进阶第四讲:循环进阶–客观题1、for(i=1;i<10;i++);结束后,i的值是:答案:102、下面程序的输出结果是_____.int

main(void){

int

s,k;

for(s=1,k=2;k<5;k++)

s+=k;

printf(“%d”,s);

return

0;

}答案:103、下面有关for循环的正确描述是:答案:for循环的循环体可以包含多条语句,但必须用花括号括起来。4、以下叙述正确的是:答案:用do—while语句构成的循环,在while后的表达式为零时结束循环。5、若k为整型变量,则下面while循环执行的次数为:k=10;

while(k>=5)

k=k-1;答案:6次

6、若k为整型,以下while循环执行___次.k=2;

while(k=0)

printf(“%d”,k),k–;

printf(“”);答案:0次7、要使下面程序输出10个整数,则在横线处填入正确的数是:for(i=0;i<=

______

printf(“%d”,i+=2);答案:188、下面程序的输出结果是____.int

main(void){

int

i,j;

for(i=0;i<10;i++)

for(j=0;j<3;j++)

i=i+j;

printf(“%d”,i);

return

0;

}答案:129、以下关于for循环的描述,正确的是

__。答案:for循环体语句中,可以包含多条语句10、下面程序执行结果正确的是

__。#include

<stdio.h>{

int

main(void){

int

n=0;

while

(n<=2)

printf(“%d”,n++);

return

0;

}答案:01211、下面程序段中循环体语句执行次数是

__。for

(int

i=5;i;i–)

for

(int

j=0;j<4;j++){

}答案:2012、下面程序的输出结果是

__。#include

<stdio.h>

int

main(void){

int

i=1,j,m=0;

for

(;i<=5;i+=4)

for

(j=3;j<=19;j+=4)

m++;

printf(“%d”,m);

return

0;

}答案:1013、下面程序的运行结果是

__。#include

<stdio.h>

int

main(void){

int

x=1;

while

(x<20)

x=1+1/x;

printf(“%d”,x);

return

0;

}答案:死循环14、下面程序段判断x是否为素数。则空格处应该填写的语句分别为

_。scanf(“%d”,&x);

y=(int)sqrt(x);

for

(int

j=2;

j<=y;

j++)

if

(_)

_;

if

(j<=x)

printf(“是素数”);

else

printf(“不是素数”);答案:x%j==0,j=x+1;15、下面程序的输出结果是

__。#include

<stdio.h>

int

main(void){

int

i,j,x=0;

for

(i=0;i<2;i++){

x++;

for

(j=1;j<=3;j++{

if

(j%2)

continue;

x++;

}

x++;

}

printf(“%d”,x);

return

0;

}答案:616、以下描述正确的是__。答案:使用while和for循环时,循环变量初始化的操作应该在循环体语句之前完成;

while循环是先判断表达式,后执行循环体;;

for,while和do-while语句中的循环体均可以是空语句。17、针对下面程序段,说法正确的是__。for

(t=1;t<=100;t++){

scanf(“%d”,&x);

if

(x<0)

break;

else

printf(“%d”,x);

}答案:最多允许输出100个整数;

当x<0时,整个循环结束;

输出的都是非负整数18、以下循环语句中,不构成死循环的是__。答案:int

k=1000;

do{;}while

(k++<10000);;

int

s=36;

while

(s)

–s;19、对于以下程序段,描述正确的是__。int

t=0;

while(t=1);答案:循环控制表达式的值为1;

死循环第五讲:函数和数组初步第五讲:函数和数组初步–客观题1、在定义inta[5][5];后,数组a中的第10个元素是__。(设a[0][0]为第一个元素)‍答案:

a[1][4]2、在定义一个C语言函数时,如果不加类型说明,则它的类型默认为_____。

答案:

int型3、有函数定义:intf(intx,inty);则下列函数调用正确的为_____。答案:intn=1,a=0,b=1;n=f(a,n);4、一个C语言程序必须有的一个函数是_____。答案:main函数

5、下面关于返回类型是void的函数说法正确的是_____.答案:如果函数内部没有return语句,则执行到函数体结束处的右花括号时返回。6、关于C语言中的数组说法错误的是:_____.答案:数组中元素的下标是从1开始的。‍7、下列程序执行后的输出结果是:__。#include

<stdio.h>

int

main(void)

{

int

a,b[5];

a=1;

b[0]=4;

printf(“%d,%d”,b[0],b[1]);

return

1;

}答案:4,不定值‍8、在划线处填写适当内容完成程序,本程序当输入字符是数字时输出字符串“number”,否则输出“none”#include<stdio.h>

int

check_number(char

x){

if

((x>=’0′)&&(x<=’9′))

return

1;

else

return

0;

}

int

main(void){

char

ch;

while(1){

scanf(“%c”,&ch);

if(ch==’#’)

break;

if(____)

printf(“number”);

else

printf(“none”);

}

return

0;

}答案:check_number(ch)9、在定义inta[5][4];之后,对a数组第2行第3列的元素的引用哪个是正确(假设a[0][0]是第一行第一列元素):__。答案:a[1][2]10、在C语言中,调用一个函数可得到_____。

答案:

最多一个返回值11、执行如下程序,从键盘依次输入十个整数:“10001230200”,则输出时a[4]的值是______。#include<stdio.h>

int

main(void){

int

a[10];

int

i,j;

for(i=0;i<10;i++)

scanf(“%d”,&a[i]);

for(i=0;i<10;i++){

if(a[i]==0){

j=i;

while(j<10-1&&a[j]==0)

j++;

a[i]=a[j];

a[j]=0;

}

}

for(i=0;i<10;i++)

printf(“%d”,a[i]);

return

0;

}答案:212、在C语言函数中,正确的说法是__。答案:可以有也可以没有形参13、在C语言中,正确的说法是__。答案:函数的定义不可以嵌套,但函数的调用可以嵌套14、C语言的函数名实际上是_____。答案:函数的入口地址15、在定义C语言函数时,如果函数首部冠以关键字void,表示此函数_____。答案:无返回值16、以下对二维数组a进行正确初始化的是__。答案:inta[][3]={3,2,1,4,5,8};

inta[][3]={{3,2,1},{4,5,8}};

inta[2][3]={{3,2,1},{4,5,8}}17、定义inta[2][3]={0,1,2,3,4,5};无法正常访问a数组数值0~5的下标表达式是__。答案:a[2][4];

a[5][0];

a[0,0]18、以下错误的定义语句是__。答案:#define

M

5;

int

A[M];;

intA[5,6];;

intA[][3];19、以下对字符数组word进行正确初始化的是__。答案:charword[]=“Computer\0”;;

charword[]=“Computer”;;

charword[]={‘C’,’o’,’m’,’p’,’u’,’t’,’e’,’r’,’\0’};作业第五讲:函数和数组初步第五讲:函数和数组初步–编程题1、组合问题

建议:本题是主观题,暂无解析2、逆序数

建议:本题是主观题,暂无解析3、转移0元素

建议:本题是主观题,暂无解析4、循环右移

建议:本题是主观题,暂无解析作业第六讲:数组应用第六讲:数组应用–编程题–拓展篇(不计入成绩)1、十进制数转换成其他进制数

建议:本题是主观题,暂无解析2、猴子选大王

建议:本题是主观题,暂无解析第六讲:数组应用第六讲:数组应用–客观题1、

以下程序的输出结果是__。int

main(void

){

int

a[3][3]={{1,2,3},{3,4,5},{5,6,7}},i,j,s=1;

for(i=0;i<3;i++)

for(j=i;j<3;j++)

s*=a[i][j];

printf(“%d”,s);

return

1;

}答案:8402、以下对有十个元素的一维数组a进行正确的初始化的是:答案:inta[10]={1,23};3、有如下声明:inta[10]={0,1,2,3,4,5,6,7,8,9};则数值不是6的表达式是:___.答案:a[7]4、以下程序的输出结果是__。int

main(void){

char

a[5]={‘1′,’2′,’3′,’4′,’\0’};

puts(a);

return

1;

}答案:12345、下面程序的输出是__。int

main(void)

{

int

a[10]={1,2,3,4,5,6,7,8,9,10};

printf(“%d”,a[a[7]/a[1]]);

return

1;

}‍答案:56、以下程序的输出结果是:___。int

main(

){

int

i,x[3][3]={1,2,3,4,5,6,7,8,9};

for(i=0;i<3;i++)

printf(“%5d”,x[1][i]);

return

1;

}答案:4567、字符串sx小于字符串sy的正确逻辑表达式是:___。答案:strcmp(sx,sy)<08、下面程序的功能是:___。#include

<string.h>

int

main(void)

{

char

a[

]=”programming”,t;

int

i,j,k;

k=strlen(a);

for(i=0;i<=k-1;

i++)

for(j=i+1;j<k;

j++)

if(a[i]<a[j])

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

puts(a);

printf(“”);

return

1;

}答案:将字符数组a中的元素从大到小排序9、如下程序运行时,从键盘上输入由数字组成的字符串,该程序的功能是__。int

main(void){

char

ch[5];

int

j;

int

s=0;

printf(“Enter

a

numeral

string”);

gets(ch);

for(j=0;ch[j]>’\0′;j++)

s=10*s+ch[j]-‘0’;

printf(“%d”,s);

return

1;

}答案:将数字字符串ch转换成十进制数10、如下程序的功能是:_.int

main(void){

char

str[10]=”array”;

int

i=0,j=0;

for(i=0;str[i]>’\0’;i++)

j++;

printf(“%d”,j);

return

1;

}答案:求字符数组长度11、

划线处填写______,可以使函数fun实现矩阵转置的功能。#include<stdio.h>define

M

3define

N

3void

fun(int

arr[M][N])

{//转置

int

i,j;

for(i=0;

i<M;

i++)

for(j=0;

j<N;

j++){

if(i!=j&&i<j){

int

tmp;

tmp=arr[i][j];

arr[i][j]=___;

arr[j][i]=tmp;

}

}

}答案:arr[j][i]12、

执行如下程序从键盘输入字符串“abcdefg”,则程序输出_______.#include<stdio.h>include<string.h>define

SIZE

100void

strchange(char

str[]){

int

n=strlen(str);

if(n==0||n==1)

return;

else

{

int

i,j;

for(i=0,j=n-1;

i<=n/2-1;

i++,j–){

char

tmp;

tmp=str[i];

str[i]=str[j];

str[j]=tmp;

}

}

}

int

main(void

){

char

str[SI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论