高级语言程序设计(吉林大学) 中国大学慕课答案2024版100分完整版

苏可怒亢库匠莆堆韶沤皆腾赣

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

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

A:无穷性
B:确定性
C:有效性
D:0个或多个输入及一个或多个输出
答案: 无穷性

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

A:设计图‍
B:NS图
C: PAD图
D:流程图
答案: 设计图‍

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

A:signed
B:int
C:double
D:char
答案: signed

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

A:!
B:#
C:;
D:,
答案: !

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

A:多文件结构
B:顺序控制结构
C:循环控制结构
D:分支控制结构
答案: 多文件结构

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

A: 任何C程序必须包含至少一个主函数main
B:一个C程序由一个或若干个编译单元组成,每个编译单元是一个源程序文件
C:一个编译单元由若干顶层声明组成,每个顶层声明是一个声明或函数定义,其中主要为函数定义
D:声明包括类型定义、变量声明、宏、… 等 
答案:  任何C程序必须包含至少一个主函数main

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

A:使用文本编辑程序,录入源程序,保存文件
B:使用连接程序进行连接,把.obj文件以及需要的库函数连接到一起,成为一个程序,生成可执行的机器语言程序
C:使用C 编译程序编译C源程序文件,生成目标代码程序文件.obj
D:执行程序,得到运行结果
答案: 使用文本编辑程序,录入源程序,保存文件

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

A:程序中唯一的main函数
B:程序中的第一个函数
C:程序中第一条可执行语句
D:第一个包含文件的第一个函数
答案: 程序中唯一的main函数

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

A:define‍
B:sizeof
C: if
D:double
答案: define‍

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

A:#
B:++
C:+=
D:==
答案: #

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

A:有穷性
B:冗余性
C:确定性
D:确定性
答案: 冗余性

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

A:汇编语言
B:机器语言
C:高级语言
D:自然语言
答案: 机器语言

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

A:正确
B:错误
答案: 错误

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

A:正确
B:错误
答案: 错误

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

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

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

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

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

A:scanf(“%f”,&y);
B:scanf(“%s”,&y);
C:scanf(“%d”,y);
D:scanf(“%f”,y);
答案: scanf(“%f”,&y);

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

A:整数类型、浮点类型、字符类型
B:浮点类型、整数类型、字符类型、逻辑类型
C:逻辑类型、整数类型、字符类型 
D:整数类型、逻辑类型、浮点类型
答案: 整数类型、浮点类型、字符类型

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

A:1
B:2
C:5
D:2.5
答案: 1

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

A:值为1个字符
B:值为2个字符
C:值为空
D:值为3个字符
答案: 值为1个字符

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

A:20<x<25
B:!(x<=20)&&!(x>=25)
C: x==21||x==22||x==23||x==24
D:x>20&&x<25
答案: 20<x<25

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

A:float
B:char
C:无法确定
D:int
答案: float

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

A:2Dim
B: Name
C: Li_Stone
D:DQ
答案: 2Dim

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

A:11  13
B:11  11
C:12  12
D:12  13
答案: 11  13

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

A:x>=11 || x<=2 
B:x>=11 && x<=2
C:x>=2 | x<=11
D:x>=11 and x<=2
答案: x>=11 || x<=2 

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

A:’\9999′
B:’\’‍
C: ‘\”‍
D: ‘\0’       
答案: ‘\9999’

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

A:-ab
B:_ab
C:a_b
D:ab12
答案: -ab

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

A:6
B:9
C:0
D:3
答案: 6

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

A:stdio.h
B:string.h
C:math.h
D:limits.h
答案: stdio.h

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

A:正确
B:错误
答案: 错误

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

A:正确
B:错误
答案: 错误

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

A:正确
B:错误
答案: 正确

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

A:正确
B:错误
答案: 错误

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

A:正确
B:错误
答案: 错误

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

A:正确
B:错误
答案: 正确

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

A:正确
B:错误
答案: 正确

21、 假设有int v; 则使用语句scanf(“%d”, v);可以从键盘读取整型变量v的值。

A:正确
B:错误
答案: 错误

作业第二讲:顺序程序设计 第二讲:顺序程序设计–编程题

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;
}

A:2  1
B:1  0
C:2  2
D:3  2
答案: 2  1

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

A: a<>b+c
B:ch=getchar()
C:a==b+c
D:a++
答案:  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);

A:d
B:100
C:D
D:68
答案: d

4、 如有定义语句int a,b; double x; 则下列选项中没有错误的是______.提示:(int)x 表示将变量x的值强制转换成int类型。若x初始值为3.2则 (int)x的结果是int类型,值为3.

A: switch((int)x%2 ){
      case 0: a++; break;             
      case 1: b++; break;
      default: a++; b++;
}
B:switch(x%2){
        case 0: a++; break;
        case 1: b++; break;
        default: a++; b++;
}
C:switch((int)x%2.0){
     case 0: a++; break;              
     case 1: b++; break;
     default: a++; b++;
}
D:switch(x%2){
      case 0: a++; break;
      case 1.0: b++; break;
      default: a++; b++;
}
答案:  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;
}

A:1,2,3
B:1,3,2
C:1.3.3
D:3,2,1
答案: 1,2,3

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

A:num%10 ==num/10%10
B:num/10%10==num/100%10
C:num/100%10==num%10
D:num/1000==num%10
答案: num%10 ==num/10%10

7、 判断一个自然数是否为4位且是5的倍数,下述语句不正确的是:

A:if(n< =1000 || n>10000)
     if(n%5==0)
       printf(“YES”);
     else
       printf(“NO”);
B:if (n > =1000 && n<10000 && n%5==0)
    printf(“YES”);
else
    printf(“NO”);
C:if(n%5==0)
   if (n > =1000 && n<10000 )    
      printf(“YES”);
   else
     printf(“NO”);
D:if (n > =1000 && n<10000 )
    if(n%5==0)
       printf(“YES”);
    else
       printf(“NO”);
答案: 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);

A:x%3==0 || x%5==0
B:x%3!=0 && x%5!=0
C:x%15
D:x%3==0 && x%5==0
答案: 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;
}

A:b=0
B:b=1
C:b=2
D:b=3
答案: 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;

A:8
B:9
C:10
D:11
答案: 8

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

A:010
B:0
C:10
D:20
答案: 010

12、 switch(条件语句 ) 中的条件语句不能填入以下哪种数据类型?

A:字符串类型
B:字符类型
C:bool
D:int
答案: 字符串类型

13、 以下选项中,两个条件语句语义等价的是____。

A:if(a-2)printf(“%d”,a);
if(a!=2)printf(“%d”,a);
B:if(a=2)printf(“%d”,a); 
if(a==2)printf(“%d”,a);
C:if(a)printf(“%d”,a);
if(a!=2)printf(“%d”,a);
D:if(a-2)printf(“%d”,a);
if(a==2)printf(“%d”,a);
答案: 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;

A:100
B:15
C:25
D:20
答案: 100

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

A:6
B:7
C:5
D:4
答案: 6

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

A:if(a<b) s=a-b;    else s=b-a;
B: if(a>b) s=a-b;    else s=b-a;
C:if(a-b>0) s=a-b;    else s=b-a;
D:if(a>b) s=a-b;      if(a<=b) s=b-a;
答案: if(a<b) s=a-b;    else s=b-a;

17、 多分支switch语句(难度:低) switch ( e ){     case c1: 语句; break;  ………..     case ci: 语句; break;   ………..     default:语句 }中描述正确的是:____

A: e是任意合法的表达式
B:break的作用是跳出包含它的switch语句,执行该switch语句的后继语句
C:switch语句执行结果和case ci的书写顺序有关
D:常量表达式必须是整数
答案: break的作用是跳出包含它的switch语句,执行该switch语句的后继语句

18、 如下哪个逻辑表达式为真时,能正确表示x是3,5,7 的公倍数。

A: (x%3==0)||(x%5==0)||(x%7==0)
B: (x%3==0)&&(x%5==0)||(x%7==0)
C:(x%3==0)||(x%5==0)&&(x%7==0)
D:(x%3==0)&&(x%5==0)&&(x%7==0)
答案: (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的值是:

A:10
B:9
C:11
D:12
答案: 10

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

A:10
B:1
C:9
D:15
答案: 10

3、 下面有关for循环的正确描述是:

A:for循环的循环体可以包含多条语句,但必须用花括号括起来。
B:for循环只能用于循环次数已经确定的情况
C:for循环是先执行循环体语句,后判断表达式。
D:在for循环中,不能用break语句跳出循环体。
答案: for循环的循环体可以包含多条语句,但必须用花括号括起来。

4、 以下叙述正确的是:

A:用do—while语句构成的循环,在while后的表达式为零时结束循环。
B:do—while语句构成的循环不能用其他语句构成的循环来代替。
C:do—while语句构成的循环只能用break语句退出。
D:用do—while语句构成的循环,在while 后的表达式为非零时结束循环。
答案: 用do—while语句构成的循环,在while后的表达式为零时结束循环。

5、 若k为整型变量,则下面while循环执行的次数为:k=10;
while(k>=5)  k=k-1;

A:6次   
B:4次
C:5次
D:7次
答案: 6次   

6、 若k为整型,以下while循环执行___次.k=2;
while(k=0)
    printf(“%d”,k),k–;
printf(“”);

A:0次
B:1次
C:2次
D:无限次
答案: 0次

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

A:18
B:9
C:10
D:20
答案: 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;
}

A:12
B:9
C:15
D:18
答案: 12

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

A:for循环只能用于循环次数已经确定的情况
B:for循环是先执行循环体语句,后判定表达式
C:在for循环中,不能用return语句终止循环执行
D:for循环体语句中,可以包含多条语句
答案: for循环体语句中,可以包含多条语句

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

A:23
B:123
C:012
D:12
答案: 012

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

A:20
B:24
C:6
D:5
答案: 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;
}

A:10
B:15
C:20
D:25
答案: 10

13、 下面程序的运行结果是 __。#include <stdio.h>
int  main(void){
    int x=1;
    while (x<20)
        x=1+1/x;      
    printf(“%d”,x);
    return 0;
}

A:20
B:1
C: 程序有错,不能运行   
D:死循环
答案: 死循环

14、 下面程序段判断x是否为素数。则空格处应该填写的语句分别为 _。scanf(“%d”,&x);
y=(int)sqrt(x);
for (int j=2; j<=y; j++)
  if (_)
    _
;
if (j<=x)
  printf(“是素数”);
else
  printf(“不是素数”);

A: x/j==0, return;
B:y%j==0, break;
C: y/j==0, break.
D:x%j==0, j=x+1;
答案: 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;
}

A:8
B:10
C:6
D:4
答案: 6

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

A:使用while和for循环时,循环变量初始化的操作应该在循环体语句之前完成
B:while循环是先判断表达式,后执行循环体;
C:do-while和for语句都是先执行循环体,后判断表达式;
D:for,while和do-while语句中的循环体均可以是空语句。
答案: 使用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);    
}

A: x>=0时什么也不输出
B:最多允许输出100个整数
C:当x<0时,整个循环结束
D:输出的都是非负整数
答案: 最多允许输出100个整数;
当x<0时,整个循环结束;
输出的都是非负整数

18、 以下循环语句中,不构成死循环的是__。

A:int i; 
scanf(“%d”,&i);
while (1){ 
    i=i%100+1;
    if (i>100) break;
}
B:for (;1;;);
C:int k=1000;
do{;}while (k++<10000);
D:int s=36;
while (s)
    –s;
答案: int k=1000;
do{;}while (k++<10000);;
int s=36;
while (s)
    –s;

19、 对于以下程序段,描述正确的是__。int t=0;
while(t=1);

A:循环控制表达式不合法
B:循环控制表达式的值为1
C:死循环
D:以上描述都正确
答案: 循环控制表达式的值为1;
死循环

第五讲:函数和数组初步 第五讲:函数和数组初步–客观题

1、 在定义int a[5][5];后,数组a中的第10个元素是__。(设a[0][0]为第一个元素)‍

A: a[1][4]
B:a[2][5]
C:a[2][4]
D: a[1][5]
答案:  a[1][4]

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

A: int 型
B:float型
C:char型
D:double型
答案:  int 型

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

A:int n=1,a=0,b=1;n=f(a,n);
B:int  n, a=0,b=1;n=f(int a, int b);
C:int n,a=0,b=1;n=int f(x,y);
D:int n;n=f();
答案: int n=1,a=0,b=1;n=f(a,n);

4、 一个C语言程序必须有的一个函数是_____。

A:main函数 
B:子函数
C:被调函数
D:主调函数
答案: main函数 

5、 下面关于返回类型是void的函数说法正确的是_____.

A:如果函数内部没有return语句,则执行到函数体结束处的右花括号时返回。
B:函数仅可以通过return 语句返回。
C:函数的返回值是0。
D:如果使用return语句返回,则 return 后面必须有一个整型表达式。
答案: 如果函数内部没有return语句,则执行到函数体结束处的右花括号时返回。

6、 关于C语言中的数组说法错误的是:_____.

A:数组中元素的下标是从1开始的。‍
B:数组中的所有元素都是同一个类型。
C:对数组的操作必须通过对数组内元素的操作实现。
D:数组声明时,“[ ]”里面的内容说明数组长度,且必须是一个常量表达式。
答案: 数组中元素的下标是从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;

 }

A:4, 不定值‍
B: 0, 4‍
C:4  0‍
D:4  0
答案: 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;
}

A:check_number(ch)
B:check_number(ch+1)
C:check_number(!ch)
D:!check_number(ch)
答案: check_number(ch)

9、 在定义int a[5][4];之后,对a数组第2行第3列的元素的引用哪个是正确(假设a[0][0]是第一行第一列元素):__。

A:a[2][3] 
B:a[1][3]
C:a[1][2]
D:a[2][2]
答案: a[1][2]

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

A: 最多一个返回值
B:最多两个返回值
C:最多三个返回值‍
D:任意多个返回值
答案:  最多一个返回值

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;
}

A:0
B:1
C:2
D:3
答案: 2

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

A:必须有形参
B:形参必须是简单变量名
C:可以有也可以没有形参
D:数组名不能作形参
答案: 可以有也可以没有形参

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

A:函数的定义可以嵌套,但函数的调用不可以嵌套
B:函数的定义不可以嵌套,但函数的调用可以嵌套
C:函数的定义和函数的调用均不可以嵌套
D: 函数的定义和函数的调用均可以嵌套
答案: 函数的定义不可以嵌套,但函数的调用可以嵌套

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

A:返回值存储单元
B:函数值存储单元
C:函数变量
D:函数的入口地址
答案: 函数的入口地址

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

A:无返回值
B:返回值可有可无
C:有任意多个返回值
D:有一个返回值
答案: 无返回值

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

A:int a[][3]={3,2,1,4,5,8}
B:int a[][]={{3,2,1},{4,5,8)}
C:int a[][3]={{3,2,1},{4,5,8}}
D:int a[2][3]={{3,2,1},{4,5,8}}
答案: 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:a[2][4]
B:a[5][0]
C:a[1][1]
D:a[0,0]
答案: a[2][4];
a[5][0];
a[0,0]

18、 以下错误的定义语句是__。

A:#define M 5;
int A[M];
B:int A[5,6];
C:int A[][3];
D:int A[10];
答案: #define M 5;
int A[M];;
int A[5,6];;
int A[][3];

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

A:char word[]=“Computer\0”;
B:char word[]=“Computer”;
C:char word[]=‘Computer\0’;
D:char word[]={‘C’,’o’,’m’,’p’,’u’,’t’,’e’,’r’,’\0’};
答案: 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;
}

A:840
B:2520
C:360
D:12600
答案: 840

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

A:int a[10]={1,23};
B:int a[10]=(0,0,0,0,0);
C:int a[]={};
D:int a[]={0}
答案: int a[10]={1,2
3};

3、 有如下声明: int a[10]={0,1,2,3,4,5,6,7,8,9}; 则数值不是6的表达式是:___.

A:a[7]
B:a[10-4]
C:a[6]
D:a[9]-a[3]
答案: a[7]

4、 以下程序的输出结果是__。int main(void){
    char a[5]={‘1′,’2′,’3′,’4′,’\0’};
    puts(a);
    return 1;
}

A:1234
B:12034
C:12340
D:2134
答案: 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;
}‍

A:5
B:2
C:3
D:4
答案: 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;
}

A:4 5 6
B:3 6 9
C:1 5 9
D:7 8 9
答案: 4 5 6

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

A:strcmp(sx, sy)<0
B:sx<sy
C:sx[0]<sy[0]
D:strlen(sx)<strlen(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:将字符数组a中的元素从大到小排序
B:将字符数组a中的元素从小到大排序
C:求字符数组a中的最大元素
D:求字符数组a中的最小元素
答案: 将字符数组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;
}

A:将数字字符串ch转换成十进制数
B:求字符数组长度
C:将字符数组中的数字转换对应的字母
D:将字符数组中的大写字母转换成小写
答案: 将数字字符串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;
}

A:求字符数组长度
B:将数字字符串ch转换成十进制数
C:将字符数组中的数字转换对应的字母
D:将字符数组中的大写字母转换成小写
答案: 求字符数组长度

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;
                         }
                 }    
}

A:arr[j][i]
B:arr[i][i]
C:arr[j][j]
D:arr[i][j]
答案: 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;
}

A:gfedcba
B:abcdefg
C:badcefg
D:gefbca
答案: 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 A:”);
        for(i=0;i<L;i++)
                 printf(“%d”,A[i]);
        printf(“Array B:”);
        for(i=0;i<L;i++)
                 printf(“%d”,B[i]);
}
int main(void){
        initial();
        sort();
        print();
    return 0;
}

A:3
B:4
C:2
D:1
答案: 3

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

A:数组的大小是固定的,但可以有不同的类型的数组元素。
B:数组的大小是可变的,但所有数组元素的类型必须相同。
C:数组的大小是固定的,所有数组元素的类型必须相同。
D:数组的大小是可变的,可以有不同的类型的数组元素。
答案: 数组的大小是固定的,所有数组元素的类型必须相同。

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

A:int a(10);
B:int n=10,a[n];
C:int n; scanf”(%d”,&n);  int a[n];
D: #define SIZE 10   int a[SIZE];
答案:  #define SIZE 10   int a[SIZE];

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

A:5
B:6
C:7
D:9
答案: 5

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

A:将5个初值依次赋给a[1]至a[5]
B:将5个初值依次赋给a[0]至a[4]
C:将5个初值依次赋给a[5]至a[9]
D:因为数组长度与初值的个数不相同,所以此语句不正确
答案: 将5个初值依次赋给a[0]至a[4]

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

A:5
B:6
C:7
D:9
答案: 6

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

A:im+j
B:i
m+i
C:im+j-1
D:i
m+i_1
答案: i*m+j

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

A:~
B:e
C:f
D:\0
答案: f

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

A:stdio.h
B:math.h
C:string.h
D:time.h
答案: string.h

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

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

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

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

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

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


如需购买完整答案,请点击下方红字:

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


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

添加书签方法:

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

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

高级语言程序设计(吉林大学) 中国大学慕课答案2024版100分完整版第1张

高级语言程序设计(吉林大学) 中国大学慕课答案2024版100分完整版第2张


获取更多慕课答案,欢迎在浏览器访问我们的网站:http://mooc.mengmianren.com

高级语言程序设计(吉林大学) 中国大学慕课答案2024版100分完整版第3张

高级语言程序设计(吉林大学) 中国大学慕课答案2024版100分完整版第4张

注:请切换至英文输入法输入域名,如果没有成功进入网站,请输入完整域名:http://mooc.mengmianren.com/


我们的公众号

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

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

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

高级语言程序设计(吉林大学) 中国大学慕课答案2024版100分完整版第5张


APP下载

点击这里下载萌面人APP,使用更方便!


APP功能说明

1.可查看各种网课答案

点击【萌面人官网】,可查看知到智慧树,超星尔雅学习通,学堂在线等网课答案

高级语言程序设计(吉林大学) 中国大学慕课答案2024版100分完整版第6张

点击【中国大学慕课答案】,可查看mooc慕课答案

高级语言程序设计(吉林大学) 中国大学慕课答案2024版100分完整版第7张

2.可一键领取淘宝/天猫/京东/拼多多无门槛优惠券

如图所示,点击对应图标即可领取淘宝/天猫/京东/拼多多无门槛优惠券

高级语言程序设计(吉林大学) 中国大学慕课答案2024版100分完整版第8张


 

泥怂迁勃辰鞘荆蹦舌莽弧餐寞