文章目录[点我隐藏目录]

本答案对应课程为:点我自动跳转查看
本课程起止时间为:2022-02-21到2022-07-08

【作业】第10章 指针基础 指针基础单元作业

1、 问题:从键盘上输入10个数据到一维数组中,然后找出数组中的最大值元素的下标。
评分规则: 【 #include<stdio.h>int max(int p){       int max = p, i, index = 0;       for(i = 0; i < 9; i++)       {              if(max < (p + i))              {                     max = (p + i);                     index = i;              }       }       return index;}int main(){       int a[10], i;       for(i = 0; i < 10; i++)              scanf("%d", &a[i]);       printf("max下标: %d", max(a));    return 0;}

2、 问题:编写一函数,求一个字符串的长度,要求用字符指针实现。在主函数中输入字符串,调用该函数输出其长度。
评分规则: 【 #include<stdio.h>int mystrlen(char p){       int len = 0;       while(p != ‘\0’)       {              len++;              p++;       }       return len + 1;}int main(){       char str[100];       gets(str);       printf("len:%d", mystrlen(str));       return 0;}

3、 问题:输入一行文字,找出其中字母、数字及其他字符各有多少。
评分规则: 【 #include<stdio.h>main(){    char str[100], p = str;    int letter = 0, digit = 0, other = 0, i;    printf("请输入字符串:");    scanf("%s", str);    while(p != NULL)    {        if((p >= ‘a’ && p <= ‘z’) || (p >= ‘A’ && p <= ‘Z’))            letter++;        else if(p >= ‘0’ && p <= ‘9’)            digit++;        else            other++;        p++;    }    printf("该字符串中字母有%d个,数字有%d个,其他字符有%d个", letter, digit, other);}

【作业】第12章 编译预处理 编译预处理单元作业

1、 问题:输入两个整数,求它们相除的余数,用带参的宏来实现,编程序。
评分规则: 【 #include <stdio.h>#define Y(a,b) a%bint main(){       int a,b;       printf("Input a:");       scanf("%d",&a);       fflush(stdin);       printf("Input b:");       scanf("%d",&b);       fflush(stdin);       printf("%d %% %d = %d",a,b,Y(a,b));       return 0;}

2、 问题:定义一个带参数的宏,使两个参数的值互换,并写出程序,输入两个数作使用宏时的实参,输出已交换后的两个数。
评分规则: 【 #include<stdio.h>#define swap(a,b) t=a;a=b;b=t;int main(){       int x,y,t;       scanf("%d%d",&x,&y);       swap(x,y);       printf("%d %d",x,y);       return 0;}

3、 问题:给出一个年份year,定义一个宏,以判别该年份是否是闰年。提示:宏名可定义为LEAP_YEAR,形参为y。
评分规则: 【 #include<stdio.h>#define LEAP_YEAR(y) (y) % 400 == 0 || ((y) % 4 == 0 && (y) % 100 != 0)main(){       int a;       printf("pleas input the year:");       scanf("%d", &a);       printf("%d", a);       if(LEAP_YEAR(a) == 1)              printf("%d is leap year", a);       else              printf("%d is not leap year", a);}

【作业】第14章 位运算和文件操作 文件操作单元作业

1、 问题:从键盘读入多行文本,并指定文件名,将输入的字符写入到中指定名称的文件中。
评分规则: 【 #include <stdio.h>#include <string.h>main(){       char filename[255], ch;       FILE* fp;       printf("请输入文件名:");       scanf("%s", filename);       if((fp = fopen(filename, "w+")) == NULL)       {              printf("创建文件失败!");              return -1;       }       printf("输入内容以\"Ctrl+Z\"结束:");       ch = getchar();       while(ch != EOF)       {              ch = getchar();              fputc(ch, fp);       }       fclose(fp);       return 0;}

2、 问题:输入文件名称,然后统计该文件中所有字符的个数。
评分规则: 【 #include <stdio.h>main(){       int count = 0;       char fname[80];       FILE *fp;       printf("Please enter the file name:");       scanf("%s",fname);       if((fp = fopen(fname,"r")) == NULL)       {              printf("Open file failed!!");              exit(1);       }       while(fgetc(fp) != EOF)              count++;       fclose(fp);       printf("There are %d characters in file %s.",count,fname);       return 0;}

【作业】第1周 C语言概述 C语言概述单元作业

1、 问题:简述计算机语言的发展经历了多个发展阶段。
评分规则: 【 第一阶段是机器语言,也叫二进制语言阶段,因为计算机作为一种电子产品,也是靠电流工作的,因此计算机也只能识别0和1组成的二进制指令,计算机发展初期,科学家及计算机的使用者都是使用二进制语言进行编程,编程效率极低,而且很不适合大规模软件的开发。
第二阶段是汇编语言。如果利用二进制语言进行编程,大量的二进制序列人们无法记住,所以,科学家就将这些二进制序列用较容易记忆的一些单词、符号代替,使编程变得较为容易,这种语言叫“助记符语言”,用此种语言编制出来的程序,必须要经过一个称作是汇编的编译工具,这种工具将助记符语言的一条语句或指令转换成机器能接受的二进制指令,转换的过程称为“汇编”。
第三阶段是高级语言。为了克服低级语言的这些弱点,在20世纪50年代,计算机科学家们就开始研制适合于人类使用的,能用人类易懂的、贴近于人类自然语言的高级语言。

2、 问题:结构化程序设计的特征有哪些?
评分规则: 【 采用自顶向下,逐步求精的编程思想来进行整体设计。
以三种基本结构的组合来描述程序。
整个程序的编写采用模块化的组织方法。
采用结构化程序设计语言书写程序,并使程序清晰、易读。

3、 问题:判断一个年份(用year来表示)是否是闰年的方法是:第一种情况,这个年份是否能被400整除,如果可以,则这个年份是一个闰年,第二种情况,这个年份能被4整除,但是要求不能被100整除。除了以上两种情况,则该年份是平年。请根据此叙述,画出判断某一年是闰年或者是平年的一般流程图和N-S图。
评分规则: 【

【作业】第2周 C语言程序初探 C语言程序初探单元作业

1、 问题:参照本章例题,编写一个C程序,输出以下信息:*****ThisisasimpleCprogram!****
评分规则: 【 #include <stdio.h>
main()
{
    printf("
****");
    printf("This is a simple C program!");
    printf("****
***");
}

2、 问题:一个C语言程序的执行流程是什么?
评分规则: 【 C语言是一种编译型的语言。用C语言编写的源程序必须要经过编译和链接这两个最主要的阶段,才能最终生成可以执行的文件。一般来讲,一个完整的C语言程序从开始编辑到最后生成可执行文件要经过这样几个步骤。(1)C语言程序编辑,通过编辑器编辑好的程序称为源程序。C语言源程序可以通过文本编辑器或者通过Turboc2.0、Visual C++6.0等编译系统的编辑器来进行编写,编写完的源程序是文本文件,但是其扩展名必须定义为“.C”,这样才是C语言的源程序文件。
(2)C程序源文件的编译,编辑完的C源程序可以通过编译系统进行编译,编译的主要功能对源程序进行词法分析、语法检查等,如检查标识符的定义是否合法;检查程序的三种基本结构是否正确;语句是否正确;检查函数定义与调用是否正确等。通过编译的C源程序生成了一个后缀名是“.obj”的目标文件,该文件是一个二进制文件。
(3)C程序目标文件的链接,对于编译通过的C语言目标文件,通过编译系统的链接命令,可以进行目标文件和C语言的标准库函数以及用户自定义函数等进行链接,链接成功后,将生成一个扩展名是“.exe”的可执行文件。如果在链接过程中,没有相应的函数,则链接不能进行,也无法生成可执行文件。
(4)C程序可执行文件的运行,通过链接生成的扩展名是“.exe”的文件,可以在DOS控制台中通过键入可执行文件的文件名执行,也可以在WINDOWS可视化窗口中通过鼠标点击执行。可执行文件执行后,会按照程序的要求输出相应结果。

【作业】第5周 顺序结构 顺序结构单元作业

1、 问题:输入圆的半径,计算圆的周长与面积。
评分规则: 【 #include "stdio.h"main(){       float pi=3.1415926, r,s,area;/实型变量r、s、area分别表示圆的半径、周长、面积/       printf("请输入圆的半径:");       scanf("%f",&r);       s=2pir;       area=pirr;       printf("圆的周长为:%.3f",s);       printf("圆的面积为:%.3f",area);}

2、 问题:输入单个字符,然后将输入的字符输出到显示器上。
评分规则: 【 #include "stdio.h"main(){       char ch;       printf("请输入一个字符:");       ch=getchar();/从键盘上获取一个字符,赋给字符型变量ch/       printf("你输入的字符是:%c",ch);}

3、 问题:实现华氏温度与摄氏温度转换。输入一个华氏温度,要求输出摄氏温度,华氏温度转换为摄氏温度的公式为C=5/9(F-32),要求结果取两位小数。
评分规则: 【 #include  "stdio.h"main( ){       float F,C;/实型变量F、C分别代表华氏温度、摄氏温度/       printf("请输入华氏温度:");       scanf("%f",&F);       printf("你输入的华氏温度为:%f",F);       C=5.0/9*(F-32);       printf("转换成摄氏温度为:%.2f",C);}

4、 问题:编写程序,实现输入某生的单科(语文、数学、政治、C语言)成绩,计算出总分和平均分。
评分规则: 【 #include "stdio.h"main( ){       float yw,sx,zz,cyy,zf,pjf;       printf("请输入语文、数学、政治和C语言的成绩,以逗号隔开:");       scanf("%f,%f,%f,%f",&yw,&sx,&zz,&cyy);       printf("你输入的单科成绩为:");       printf("语文:%.2f数学:%.2f政治:%.2fC语言:%.2f",yw,sx,zz,cyy);       zf=yw+sx+zz+cyy;       pjf=zf/4;       printf("总成绩为:%.2f平均分为:%.2f",zf,pjf);}

【作业】第8周 数组 数组单元作业

1、 问题:青年歌手参加歌曲大奖赛,有10个评委进行打分,试编程求某位选手的平均得分(去掉一个最高分和一个最低分)。
评分规则: 【 #include "stdio.h"int main() {    double a[10], max = 0, min = 100, avg = 0;    int i;    for(i = 0; i < 10; i++)    {        scanf("%lf", &a[i]);        if(max < a[i])            max = a[i];        if(min > a[i])            min = a[i];        avg += a[i];    }    avg = (avg – max – min) / 10;    printf("%lf", avg);}

2、 问题:将一个数组中的元素按逆序重新存放。例如原来顺序为:8,6,5,4,1。要求改为:1,4,5,6,8。
评分规则: 【 #include "stdio.h"int main() {    int a[5] = {8, 6, 5, 4, 1}, i, j;    for(i = 0, j = sizeof(a) / sizeof(a[0]) – 1; i < j; i++, j–)    {        int t = a[i];        a[i] = a[j];        a[j] = t;    }    for(i = 0; i < 5; i++)        printf("%3d", a[i]);}

3、 问题:有一个已排好序的数组,现输入一个数,要求按原来排序的规律将他插入数组中。
评分规则: 【 #include<stdio.h>int main(){    int a[20] = {1, 4, 6, 9, 13, 16, 19, 28, 40, 100};    int number = 0, i = 0, j = 0;    scanf("%d", &number);    for(i = 0; i < sizeof(a) / sizeof(a[0]); i++)    {        if(number < a[i])        {            for(j =  sizeof(a) / sizeof(a[0]) – 1; j >= i; j–)                a[j] = a[j – 1];            a[i] = number;            break;         }    }    for(i = 0; i < sizeof(a) / sizeof(a[0]); i++)        printf("%d", a[i]); }

4、 问题:编写一个程序,手动输入一个3行4列的二维数组,并像表格一样排列打印出来。
评分规则: 【 #include<stdio.h>int main(){    int i, j, a[3][4];    for(i = 0; i < 3; i++)        for(j = 0; j < 4; j++)           scanf("%d", &a[i][j]);    for(i = 0; i < 3; i++)    {        for(j = 0;j < 4; j++)            printf("%d\t", a[i][j]);        printf("");    }    return 0;}

第11章 指针的高级运算 指针的高级运算单元测验

1、 问题:假设有如下定义int(*p)();下面正确的叙述为()。
选项:
A:p是一个普通的变量
B:p是指向整型数据的指针变量
C:p是一个函数名,该函数的返回值是指向整型数据的指针变量
D:p是指向函数的指针变量,该函数的返回值是整型数据
答案: 【p是一个函数名,该函数的返回值是指向整型数据的指针变量

2、 问题:下面程序的输出结果为()。#include "stdio.h"main(){char alpha[6]={ "ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};char *p;int i;p=alpha;for(i=0;i<4;i++)  printf("%s",p[i]);printf("");}
选项:
A:ABCDEFGHIJKL
B:ABCDEFGHIJKLMNOP
C:ABCD
D:AEIM
答案: 【ABCDEFGHIJKLMNOP

3、 问题:执行以下程序后,y的值是()。#include "stdio.h"main(){int a[]={2,4,6,8,10};int y=1, x, p;p=&a[1];for(x=0;x<3;x++)y+=(p+x);printf("%d",y);}
选项:
A:17
B:18
C:19
D:20
答案: 【19

4、 问题:如果x是整型变量,则合法的形式是()。
选项:
A:&(x+5)
B:x
C:&
x
D:&x
答案: 【
&x】

5、 问题:已有函数max(a,b),为了让函数指针变量p指向函数max,正确的赋值方法是()。
选项:
A:p=max
B:p=max
C:p=max(a,b)
D:
p=max(a,b)
答案: 【p=max

6、 问题:intp(int,int)是返回值为指针的函数,int(p)(int,int)是函数指针。
选项:
A:正确
B:错误
答案: 【正确

7、 问题:若有定义intx[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(p)[3]=x;则(*(p+l)+2)能够正确表示数组元素x[1][2]。
选项:
A:正确
B:错误
答案: 【正确

8、 问题:C语言允许main函数带形参,且形参个数和形参名均可由用户指定。
选项:
A:正确
B:错误
答案: 【正确

9、 问题:若有说明:int main(int argc, char**argv),则argc的值必须大于1。
选项:
A:正确
B:错误
答案: 【错误

10、 问题:设有定义char*cc[2]={"1234","5678"};则正确的叙述是cc数组的两个元素中各自存放了字符串"1234"和"5678"的首地址。
选项:
A:正确
B:错误
答案: 【正确

11、 问题:若有定义int a[2][3],则对a数组的第i行j列元素地址的正确引用为()。

本门课程剩余章节答案为付费内容
本文章不含期末不含主观题!!
本文章不含期末不含主观题!!
支付后可长期查看
有疑问请添加客服QQ 2356025045反馈
如遇卡顿看不了请换个浏览器即可打开
请看清楚了再购买哦,电子资源购买后不支持退款哦

   

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注