中国大学mooc慕课 高级语言程序设计(吉林大学) 答案满分完整版章节测试

钱扒炉泉火狡断溪浅蔽陪炮龟




第一讲:绪论与程序初步 第一讲:绪论与程序初步–客观题

1、 算法是一个计算过程,是程序设计的基础和精髓。一个有效的算法应该具有如下特点,其中错误的是:____

答案: 无穷性

2、  描述算法有各种多样的方法,下述错误的是:__

答案: 设计图‍

3、 下面C语言中不正确的数据类型关键字是 __。

答案: signed

4、 不是C分隔符的是 __。

答案: !

5、 算法由某些基本成分组成,这些基本成分是一些基本的操作和控制结构。以下不属于基本控制结构的是:____。

答案: 多文件结构

6、 如下错误的表达为:__。

答案:  任何C程序必须包含至少一个主函数main

7、 一般编写并执行C程序的过程,第一步应该是__。

答案: 使用文本编辑程序,录入源程序,保存文件

8、 C语言可执行程序从哪里开始执行__。

答案: 程序中唯一的main函数

9、  不是C关键字的是 __。

答案: define‍

10、 不是C运算符的是 __。

答案: #

11、 有效算法不应该具有的特性是_____。

答案: 冗余性

12、 哪种语言是计算机能够读懂的语言?

答案: 机器语言

13、 与PAD图相比,NS图和流程图更开放、更易修改。

答案: 错误

14、 C语言编写的程序只要编译链接正确,就一定能正确运行得到正确结果。

答案: 错误

作业第一讲:绪论与程序初步 第一讲:绪论与程序初步–编程题

1、 Hello World
建议:本题是主观题,暂无解析

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

第二讲:顺序程序设计 第二讲:顺序程序设计–客观题

1、 现声明float y,由键盘输入:3.1416,正确的数据输入语句是:__。

答案: scanf(“%f”,&y);

2、 C语言中的简单数据类型包括:__。

答案: 整数类型、浮点类型、字符类型

3、 C语言程序中,表达式5%2的结果是  __。

答案: 1

4、 语句char ch=’\65′, 则变量ch __。

答案: 值为1个字符

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

答案: 20<x<25

6、 设变量A是int 型,B是float型,则表达式A+’q’+B结果的 数据类型是__。‍

答案: float

7、 下列标识符中不合法的是_ 。

答案: 2Dim

8、 执行如下语句后,x的值和输出结果分别是 __。int x=11; printf(“%d”, x+2);

答案: 11  13

9、 如果要表示逻辑关系 “ x≥11或x≤2 ”,下面正确的C语言表达式是 
__。

答案: x>=11 || x<=2 

10、 下列转义字符不正确的是:____。

答案: ‘\9999’

11、 下面哪个是非法的C语言标识符?

答案: -ab

12、 假设整型变量A、B和C的值分别是3、6和9,请问在执行完如下程序片段后,A的值是多少?    C=B;     B=A;    A=C;     

答案: 6

13、 C语言提供的标准输入输出库函数头文件名字是_

答案: stdio.h

14、 6 /4和6.0/ 4结果相同。

答案: 错误

15、 注释会参与到程序实际执行过程,并起到关键作用。

答案: 错误

16、 字符有两种形态:可视性态和存储形态。

答案: 正确

17、 17,904 是合法的整数字面常量。

答案: 错误

18、 假设有“#define pai  3.14;” 此时常量标识符pai 代表实数“3.14”。

答案: 错误

19、 复合语句是多条简单语句的集合,并依次执行,即复合语句中的每条语句要么被执行、要么不被执行,不存在值执行一部分的情况。

答案: 正确

20、 C语言中用表达式“a*b”表示a与b相乘。

答案: 正确

21、 假设有int v; 则使用语句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  1

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

答案:  a<>b+c

3、 阅读下述程序段,设变量c的值是68,写出运行结果。(提示小写字母a的ASCII码是97, 大写字母A的ASCII码是65)char c;
if ( c>=‘A’ && c<=‘Z’)
     printf (“%c”,c+32);
else
     printf (“%d”,c);

答案: d

4、 如有定义语句int a,b; double x; 则下列选项中没有错误的是______.提示:(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,3

6、 如下程序段的功能是判断一个4位自然数个位和十位数字是否相同,在划线处填写表达式。int num;
scanf (“%d”,&num);
if (num>=1000 && num<10000)
   if (__)
        printf ( “该4位自然数个位和十位数字相同”);
   else
        printf ( “该4位自然数个位和十位数字不同”);

答案: num%10 ==num/10%10

7、 判断一个自然数是否为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==0

9、 下述程序的运行结果是: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=0

10、 阅读下面程序段,s 的值是:int a=1, b=2 c=6,s ;
if ( a<=b || c<0 || b<c)
    s=b+c;
else
    s=a+b+c;

答案: 8

11、 下列程序正确的输出是:____。int x=20;
if(x>0) printf(“0”);
if(x>10) printf(“10”);
if(x>20) printf(“20”);

答案: 010

12、 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;

答案: 100

15、 若执行下面的程序从键盘上输入5,则输出结果是____。int main(void){
    int x; 
    scanf(“%d”,&x);
    if(x++>5) 
       printf(“%d”,x);
    else
       printf(“%d”,x –);
    return 0;
 }

答案: 6

16、 如下语句中有一个功能与其他不同,请指出是哪一个?

答案: if(a<b) s=a-b;    else s=b-a;

17、 多分支switch语句(难度:低) switch ( e ){     case c1: 语句; break;  ………..     case ci: 语句; 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的值是:

答案: 10

2、 下面程序的输出结果是_____.int main(void){
   int s,k;
   for(s=1,k=2;k<5;k++)
     s+=k;
   printf(“%d”,s);
   return 0;
}

答案: 10

3、 下面有关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);

答案: 18

8、 下面程序的输出结果是____.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;
}

答案: 12

9、 以下关于for循环的描述,正确的是 __。

答案: for循环体语句中,可以包含多条语句

10、 下面程序执行结果正确的是 __。#include <stdio.h>{
int  main(void){
    int n=0;
    while (n<=2)
    printf(“%d”,n++);    
    return 0;
}

答案: 012

11、 下面程序段中循环体语句执行次数是 __。for (int i=5;i;i–)
     for (int j=0;j<4;j++){
        …
}

答案: 20

12、 下面程序的输出结果是 __。#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;
}

答案: 10

13、 下面程序的运行结果是 __。#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;
}

答案: 6

16、 以下描述正确的是__。

答案: 使用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、 在定义int a[5][5];后,数组a中的第10个元素是__。(设a[0][0]为第一个元素)‍

答案:  a[1][4]

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

答案:  int 型

3、 有函数定义:int f(int x,int y);则下列函数调用正确的为_____。

答案: int n=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、 在定义int a[5][4];之后,对a数组第2行第3列的元素的引用哪个是正确(假设a[0][0]是第一行第一列元素):__。

答案: a[1][2]

10、 在C语言中,调用一个函数可得到_____。 

答案:  最多一个返回值

11、 执行如下程序,从键盘依次输入十个整数:“1 0 0 0 1 2 3 0 2 0 0”,则输出时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;
}

答案: 2

12、 在C语言函数中,正确的说法是__。

答案: 可以有也可以没有形参

13、 在C语言中,正确的说法是__。

答案: 函数的定义不可以嵌套,但函数的调用可以嵌套

14、 C语言的函数名实际上是_____。

答案: 函数的入口地址

15、 在定义C语言函数时,如果函数首部冠以关键字void,表示此函数_____。

答案: 无返回值

16、 以下对二维数组a进行正确初始化的是__。

答案: int a[][3]={3,2,1,4,5,8};
int a[][3]={{3,2,1},{4,5,8}};
int a[2][3]={{3,2,1},{4,5,8}}

17、 定义int a[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];;
int A[5,6];;
int A[][3];

19、 以下对字符数组word进行正确初始化的是__。

答案: char word[]=“Computer\0”;;
char word[]=“Computer”;;
char word[]={‘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;
}

答案: 840

2、 以下对有十个元素的一维数组a进行正确的初始化的是:

答案: int a[10]={1,23};

3、 有如下声明: int a[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;
}

答案: 1234

5、 下面程序的输出是__。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;
}‍

答案: 5

6、 以下程序的输出结果是:___。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;
}

答案: 4 5 6

7、 字符串sx小于字符串sy的正确逻辑表达式是:___。

答案: strcmp(sx, sy)<0

8、 下面程序的功能是:___。#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 3

define N 3

void 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 100

void 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[SIZE];
        scanf(“%s”,str);
        strchange(str);
        printf(“%s”,str);
    return 1;
}

答案: gfedcba

13、 执行如下程序,从键盘依次输入5个整数“5 4 6 7 3”;则输出时B[2]值是_. #include <stdio.h>

define L 5

int A[L],B[L];
void initial(){
        printf(“Please input the array:”);
        for(int i=0;i<L;i++){
                 scanf(“%d”,&A[i]);
                 B[i]=i;
        }
}
void sort(){
        int i,j,count=0;
        for(i=0;i<L;i++){
                 count=0;
                 for(j=0;j<L;j++){
                         if((A[j]<A[i]&&i!=j)||(A[i]==A[j]&&i>j))
                                  count++;
                 }
                 B[i]=count;
        }
}
void print(){
        int i;
        printf(“Aarry 答案: 3

14、 以下关于数组的描述正确的是__。

答案: 数组的大小是固定的,所有数组元素的类型必须相同。

15、   在C99之前的C标准中,以下一维数组的正确定义是__。

答案:  #define SIZE 10   int a[SIZE];

16、 在执行char str[10]=”China\0”;  strlen(str)的结果是__。

答案: 5

17、 对语句int a[10]={3,4,5,6,7}的正确理解是__。

答案: 将5个初值依次赋给a[0]至a[4]

18、 在执行char str[10]=”China”;  strlen(str)的结果是__。

答案: 6

19、 若二维数组a有m列,则在a[i][j]之前的元素个数为__。

答案: i*m+j

20、 下面程序段的运行结果是__。char  a[7]=“abcdef”, b[5]=“ABCD”;
strcpy(a,b);
printf(“%c”, a[5]);

答案: f

21、 C语言中字符串比较操作的库函数头文件是__。

答案: string.h

作业第六讲:数组应用 第六讲:数组应用–编程题

1、 矩阵重复元素检测
建议:本题是主观题,暂无解析

2、 索引数组排序
建议:本题是主观题,暂无解析

3、 统计学生成绩
建议:本题是主观题,暂无解析

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

5、 逆序存放
建议:本题是主观题,暂无解析


上方为免费预览版答案,如需购买完整答案,请点击下方红字

点击这里,购买完整版答案


为了方便下次阅读,建议在浏览器添加书签收藏本网页

添加书签方法:

1.电脑按键盘的Ctrl键+D键即可收藏本网页

2.手机浏览器可以添加书签收藏本网页

中国大学mooc慕课 高级语言程序设计(吉林大学)  答案满分完整版章节测试第1张

中国大学mooc慕课 高级语言程序设计(吉林大学)  答案满分完整版章节测试第2张


我们的公众号

打开手机微信,扫一扫下方二维码,关注微信公众号:萌面人APP

本公众号可查看各种网课答案,还可免费查看大学教材答案

点击这里,可查看公众号功能介绍

中国大学mooc慕课 高级语言程序设计(吉林大学)  答案满分完整版章节测试第3张


 

哺喜沁兢伶朔冯犁侨诧铺撵宪