2020 C语言程序设计精髓(南通理工学院) 最新满分章节测试答案

2025年3月11日 分类:免费网课答案 作者:网课帮手
文章目录[隐藏]

本答案对应课程为:点我自动跳转查看
本课程起止时间为:2020-02-24到2020-06-30
本篇答案更新状态:已完结

第1周——指针1 练兵区——单选题——不计入总分

1、 问题:下面程序的功能是输入某年某月某日,计算并输出它是这一年的第几天。程序的运行结果如下:Please enter year, month, day:2014,12,29↙yearDay = 363按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include    <stdio.h>
int  DayofYear(int year, int month, int day);
int dayTab[2][13] = {{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
int main()
{
    int year, month, day, yearDay;
    printf("Please enter year, month, day:");
    scanf("%d,%d,%d", &year, &month, &day);
    yearDay = DayofYear(year, month, day);
    printf("yearDay = %d", yearDay);
    return 0;
}

/ 函数功能:对给定的某年某月某日,计算并返回它是这一年的第几天 /
int  DayofYear(int year, int month, int day)
{
    int  i, leap;
    leap = ___;  / 若year为闰年,即leap值为1,则用第1行元素dayTab[1][i]计算;
                                       否则leap值为0,用第0行dayTab[0][i]计算 
/
    for (i=1; 
_; i++)
    {
        day = 
_______;
    }
    return day;         / 返回计算出的day的值 /
}
选项:
A:第18行:  ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)第20:    i<month第22行:  day + dayTab[leap][i]
B:第18行:  ((year % 4 == 0) || (year % 100 != 0)) || (year % 400 == 0)第20:    i<month第22行:  day + dayTab[i][leap]
C:第18行:  ((year % 4 == 0) && (year % 100 != 0)) && (year % 400 == 0)第20:    i<12第22行:  day + dayTab[leap][i]
D:第18行:  ((year % 4 != 0) && (year % 100 != 0)) || (year % 400 != 0)第20:    i<=month第22行:  day + dayTab[i][leap]
答案: 【第18行:  ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)第20:    i<month第22行:  day + dayTab[leap][i]

2、 问题:下面程序中子函数MonthDay()的功能是将某年的第几天转换为某月某日。程序的运行结果如下:Please enter year, yearDay:2014,100↙month = 4, day = 10按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include    <stdio.h>
void  MonthDay(int year, int yearDay, int pMonth, int pDay);
int dayTab[2][13] = {{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};

int main()     
{
    int year, month, day, yearDay;
    printf("Please enter year, yearDay:");
    scanf("%d,%d", &year, &yearDay);
    _____;
    printf("month = %d, day = %d", month, day); 
    return 0;  
}

/ 函数功能:对给定的某一年的第几天,计算它是这一年的第几月第几日 /
void  MonthDay(int year, int yearDay, int pMonth, int pDay)
{  
    int  i, leap;
    leap = ____;
    
    for (i=1; yearDay>dayTab[leap][i]; i++)
    {
        yearDay = 
___;
    }
    
______;        / 将计算出的月份值赋值给pMonth所指向的变量 /
    
    pDay = yearDay;   / 将计算出的日号赋值给pDay所指向的变量 /
}
选项:
A:第10行: MonthDay(year, yearDay, &month, &day)第19行: ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)第23行: yearDay – dayTab[leap][i]第25行: 
pMonth = i
B:第10行: MonthDay(year, yearDay, month, day)第19行: ((year % 4 == 0) || (year % 100 != 0)) || (year % 400 == 0)第23行: yearDay – dayTab[leap][i]第25行: pMonth = i
C:第10行: MonthDay(&year, &yearDay, &month, &day)第19行: ((year % 4 == 0) || (year % 100 != 0)) && (year % 400 != 0)第23行: yearDay + dayTab[i][leap]第25行: pMonth = i
D:第10行: MonthDay(&year, &yearDay, month, day)第19行: ((year % 4 == 0) && (year % 100 == 0)) || (year % 400 == 0)第23行: yearDay – dayTab[i][leap]第25行: pMonth = i
答案: 【第10行: MonthDay(year, yearDay, &month, &day)第19行: ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)第23行: yearDay – dayTab[leap][i]第25行: 
pMonth = i】

3、 问题:子函数Fun的功能是比较形参变量x和y所指的内存单元中的数据大小,将两者中的最小值返回。以下程序执行后输出结果是7,8,7。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求#include <stdio.h>
int Fun(int x,int y)

    if(_____)  /如果形参变量x所指的内存单元中的数据小于y所指的内存单元中的数据,则返回该最小值/
         return x;
    else
         return 
y;
}

int main()

    int a=7,b=8,_,r;
    p=&a;
    q=&b;
    r=______;  /调用子函数Fun,返回变量a和b中的最小值,将其存放到变量r中。/
    
    printf("%d,%d,%d",p,q,r);
    return 0;
  }
选项:
A:第4行: x<y第12行: p,q第15行: Fun(p,q)
B:第4行: x<y第12行: p,q第15行: Fun(p,q)
C:第4行: x<y第12行: p,q第15行: Fun(&p,&q)
D:第4行: x<y第12行: p,q第15行: Fun(a,b)
答案: 【第4行: x<y第12行: p,q第15行: Fun(p,q)

4、 问题:下面程序的功能是从键盘输入10个整数,用函数编程实现计算其最大值和最小值,并互换它们所在数组中的位置。程序运行结果如下:Input n(n<=10):10↙Input 10 Numbers:1 4 3 0 –2 6 7 2 9 -1 ↙Exchange results:     1     4     3     0     9     6     7     2    -2    -1按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include  <stdio.h>
void ReadData(int a[], int n);
void PrintData(int a[], int n);
void  MaxMinExchang(int a[], int n);
void Swap(int x, int y);
int main()
{
    int  a[10], n;
    printf("Input n(n<=10):");
    scanf("%d", &n);
    printf("Input %d numbers:", n);
    ReadData(a, n); 
    MaxMinExchang(a, n);
    printf("Exchange results:");
    PrintData(a, n); 
    return 0;
}

/ 函数功能:输入数组a的n个元素值 /
void ReadData(int a[], int n)  
{
    int i;
    for (i=0; i<n; i++)
     {
          scanf("%d", &a[i]);
     }
}

/ 函数功能:输出数组a的n个元素值 /
void PrintData(int a[], int n)  
{
    int i;
    for (i=0; i<n; i++)
     {
          printf("%5d", a[i]);
     }
    printf("");
}

/ 函数功能:将数组a中的最大数与最小数位置互换 /
void  MaxMinExchang(__, int n)
{
    int  maxValue = a[0], minValue = a[0], maxPos = 0, minPos = 0;
    int  i;
    for (i=1; i<n; i++)
    {
        if (a[i] > maxValue)
        {
            maxValue = _;
            maxPos = _;
        }
        if (a[i] < minValue)
        {
            minValue = a[i];
            minPos = i;
       }
}
        Swap(
_______);
}

/ 函数功能:两整数值互换 /
void  Swap(int x, int y)                
{
    int  __;
    temp = x;                          
    ___;
                    
    
y = temp;            
}
选项:
A:第41行: int a[]第49行: a[i]第50行: i第58行: &a[maxPos], &a[minPos]第64行: temp第66行: x = y
B:第41行: int a第49行: a[i]第50行: i第58行: a[maxPos], a[minPos]第64行: temp第66行: x = y
C:第41行: int a[]第49行: a[0]第50行: 0第58行: &a[maxPos], &a[minPos]第64行: temp第66行: x = y
D:第41行: int a[]第49行: a[n-1]第50行: n-1第58行: 
a[maxPos], a[minPos]第64行: &temp第66行: x = y
答案: 【第41行: int a[]第49行: a[i]第50行: i第58行: &a[maxPos], &a[minPos]第64行: temp第66行: 
x = *y】

5、 问题:下列函数的功能为__。void  Exchange(int p1, int p2){    int  p;    p = p1;    p1 = p2;    p2 = p;}
选项:
A:交换p1和p2的值
B:正确,但无法改变p1和p2的值
C:交换p1和p2的地址 
D:可能造成系统故障
答案: 【交换p1和p2的值

6、 问题:声明语句int (*p)();的含义是__。
选项:
A:p是一个指向函数的指针,该函数的返回值是一个整型
B:p是一个指向一维数组的指针变量
C:p是指针变量,指向一个整型数据

本门课程剩余章节答案为付费内容
本文章不含期末不含主观题!!
本文章不含期末不含主观题!!
支付后可长期查看
有疑问请添加客服QQ 2356025045反馈
如遇卡顿看不了请换个浏览器即可打开
请看清楚了再购买哦,电子资源购买后不支持退款哦
请输入手机号或商家订单号
打不开请联系客服QQ 2356025045 商家订单号在哪里?点此了解

商家订单号查看步骤

打开支付宝
方法一:我的 > 账单 > 账单详情 > 更多>复制商家订单号
方法二:我的 > 账单 >搜索关键字【网课小帮手】
> 账单详情 > 更多>复制商家订单号
方法三:联系客服QQ 2356025045
微信支付
我 > 支付 > 钱包 > 账单 > 账单详情

继续阅读