2019西南大学0039C语言程序设计机考大作业答案
西南大学19年12月C语言程序设计【0039】大作业答案
(c)程序必须有输入输出提示。
3. 依据下列提供的程序回答问题#include <stdio.h>int f(int m,int n){ int r;while(r=m%n){ m=n; n=r; }return(n);}int main(){ int int_num1, int_num2;printf("请输入两个正的整数(之间用逗号隔开):\n ");scanf("%d,%d",&int_num1,&int_num2);printf("int_num1= %d,int_num2= %d\n",int_num1,int_num2);printf("The maximun common divisor is %d\n",f(int_num1,int_num2));}(1)上述提供程序中,函数f的功能是什么?答:函数f的功能是求两个数的最大公约数。
(2)请依据提供的函数f代码所表示的算法内涵画出其中的传统流程图或N-S图或采用自然语言描述fun代码所表示的算法。
答:辗转相除法(欧几里德法) C语言中用于计算两个正整数a,b的最大公约数,采用函数嵌套调用形式进行求两个数的最大公约数。
其算法过程为:前提:设两数为a,b设其中a做被除数,b做除数,temp为余数Steps:大数放a中,小数放b中;求a/b的余数;若temp=0则b为最大公约数;如果temp!=0则把b的值给a,temp的值给a;返回第二步。
流程图:(3)在VC6.0环境下,运行上述程序时,若输入的数据序列为36,48其输出结果是什么?答:输出结果如下int_num1= 36,int_num2= 48The maximun common divisor is 12二、大作业要求大作业共需要完成3个大题:第1题,满分30分;第2题(1)-(5)任选两题完成,各15分,(6)题必做,10分,满分40分;第3题(1)-(3)必做,满分30分。
2019西南大学0039C语言程序设计机考大作业答案
//打开文件后,如下步骤写程序#include <stdio.h>//首先要引入c语言的标准输入输出库文件,因为这个文件里有已经定义好的可以使用的函数//接下来需要写一个main函数,这也是c语言程序里必不可少的一个函数,叫主函数,他是整个程序的入口函数,程序所有的功能实现都要在这个函数中体现。
但是这个函数有且仅有一个int main(){//这是main函数的函数体,要实现什么功能,就把实现功能的语句写到这里面//比如我要实现打印HelloWorld字符,那么我就调用printf()标准输出语句printf("Hello World!\n");//这个语句表示原样输出引号内的字符,‘\n’表示换行return0;//最后,因为main函数有一个int的返回类型限定,那么我们使用return 语句返回一个int类型的值 0.}//这样就结束了。
一个简单的但又完整的C程序就有了,//下一步就是使用编译器编译成目标的可执行文件://如果是windows下的vc++,那么需要分别点击编译,链接两个按钮生成hello.exe可执行文件//如果是linux下直接在shell中使用gcc hello.c就可以编译成可执行文件a.out //最后就是运行了,windows下直接点击vc++的运行或双击hello.exe可以出现dos窗口运行,并显示结果,linux下使用“./a.out”可以直接运行,运行结果会显示在shell 中。
//这就是整个完整的流程,包括每一步。
调试过程:设置断点,调试命令,察看变量,查看内存,常见错误:C 语言程序设计的错误可分为语法错误、连接错误、逻辑错误和运行错误。
VC++ 和DEV C++都是C++语言的开发工具。
如果只是做些小程序,基本上看不出区别。
两者DEBUG 和RELEASE上的时间有所不同。
还有一点就是,通常如果是在VC++下编写的代码,不是很规范,拿到DEV C++上会报错。
0039-2020春大作业
printf("请输入两个正的整数(之间用逗号隔开):\n");scanf("%d,%d",&int_num1,&int_num2);printf("int_num1=%d,int_num2=%d\n",int_num1,int_num2);printf("The maximun common divisor is%d\n",fun(int_num1,int_num2));}3.阅读下列程序,按照要求回答下列问题#include <stdio.h>int fun(int n){int s=0,i;for(i=1;i<=n;i++)s=s+i;return s;}int main( ){int i,n;int sum=0;printf("请输入一个正整数(n≥5):\n");scanf("%d", &n);for(i=1;i<=n;i++) sum=sum+fun(i);printf("1+(1+2)+(1+2+3)+ ......+(1+2+3+...+%d)=%d\n",n,sum); }(1)上述程序中函数fun的功能是什么?答:上述程序中函数fun的功能是求n之内的自然数求和(2)依据函数fun的功能画出其流程图。
(3) 当输入n的值为5时,其输出结果是什么?答:当输入n的值为5时,其输出结果是1+(1+2)+(1+2+3)+ ......+(1+2+3+...+5)=35二、大作业要求大作业共需要完成3个大题:第1题满分30分;第2题(1)-(6)小题任选两题完成,各15分,(7)小题必做,10分,满分40分;第3题(1)-(3)必做,满分30分。
(0039)《C语言程序设计》大作业A
西南大学网络与继续教育学院课程考试试题卷类别:网教 专业:算机科学与技术,计算机应用技术 2015年12月课程名称【编号】: C语言程序设计 【0039】 A卷大作业 满分:100 分一、大作业题目1.通过你对C语言程序设计课程的学习,你认为C语言具有哪些特点?并简要说明。
C语言有哪些局限性?针对这些局限性,是如何解决这些问题的?2.C语言是一种结构化程序设计语言,在C语言中是如何体现结构化程序设计思想的?结构化程序设计方法有内容是什么?在模块化设计中,划分模块的基本原则是什么?采用结构化程序设计方法的好处是什么?3.编程题(1)编写程序,利用公式求的值。
(要求最后一项小于10-6为止)。
(2)编写程序输出100以内能被7整除的数。
(3)编写一个函数void sort(float a[],int n),其功能是对数组a中的n个数据按照升序排列。
再写一个主函数调用该函数对输入10个学生的成绩从高到低排序,并输出排序的结果。
4.依据下列提供的程序回答问题#include <stdio.h>void main(){float x[1000],sum=0.0,ave,score;int n=0,i;printf("请输入一个学生的课程成绩(0-100):\n");scanf("%f",&score);while(score>=0){sum=sum+score;x[n]=score;n++;printf("再输入一个学生的课程成绩(0-100):\n");scanf("%f",&score);}ave=sum/n;printf("输出平均成绩:\n");printf("ave=%5.0f\n",ave);printf("输出低于平均分的学生成绩:\n");for(i=0;i<n;i++)if (x[i]<ave) printf("%5.0f",x[i]);}(1)所提供程序的功能是什么?(2)请依据提供的程序画出其中的传统流程图或N-S图或自然语言描述。
c语言程序设计考试题及答案2019
c语言程序设计考试题及答案2019一、选择题(每题2分,共20分)1. 在C语言中,用于定义一个结构体类型的关键字是()。
A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言函数的描述,错误的是()。
A. 函数可以没有返回值B. 函数可以没有参数C. 函数可以有多个返回值D. 函数可以有多个入口答案:D3. 在C语言中,下列哪个选项是正确的文件操作语句()。
A. FILE *fp; fp = fopen("example.txt", "r");B. FILE *fp; fp = open("example.txt", "r");C. FILE *fp; fp = read("example.txt", "r");D. FILE *fp; fp = openfile("example.txt", "r");答案:A4. 下列关于指针的描述中,错误的是()。
A. 指针可以存储地址B. 指针可以存储数据C. 指针可以作为函数的参数D. 指针可以作为函数的返回值答案:B5. C语言中,下列哪个选项是正确的数组定义方式()。
A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3};D. int arr = {1, 2, 3, 4, 5};答案:A6. 下列关于C语言中预处理命令的描述,正确的是()。
A. #include <stdio.h> 用于编译时包含标准输入输出库B. #define PI 3.14159 是一个宏定义C. #pragma 是编译器指令D. 以上都是答案:D7. 在C语言中,下列哪个选项是正确的循环语句()。
2016年6月西南大网络与继续教育学院C语言程序设计 【0039】 A卷原题及答案参考答案
(3)循环结构:循环结构是指重复执行某些操作,重复执行的部分称为循环体。
2.编程题
1.从键盘上任意输入10个正整数,并将这些整数的各位数字求和。
答:
#include“stdio.h”
int add(int n)
{int r,s=0;
do{r=n%10;
结构化程序设计强调程序设计风格和程序结构的规范化,提倡结清晰。良好的程序设计风格可以使程序结构清晰合理,使程序代码便于维护。著名的“清晰第一,效率第二”的论点已成为当今主导的程序设计风格。
采用结构化程序设计方法的好处是:可以使每个模块功能明确,模块间的关系简单、清晰(即可读性强),每个模块内部的修改尽可能不影响其他模块(即独立性好),同时每个模块的正确性容易验证(即可维护性好)。
s+=r; n=n/10;
}while(n>0);
return(s);
}
void main()
{int m;
scanf(“%d”,&m);
printf(“%d”, add(m));
}
(2)编写程序打印下列图案
答:
#include
main()
{int I,j,k;
for (I=1;I<=5;I++)
{for (j=1;j<=20-I;j++) printf(" ");
(2)若有一个复杂问题的求解,若采用模块化程序设计方法,请你简单阐述用C语言编写一个模块化程序的基本过程。(6分)
答:根据模块化程序设计,一个较大的程序一般应分为若干个程序模块,每个模块用于实现一个特定的功能。在C程序中,模块用函数来实现。函数是构成C程序的基本单位,C语言不仅提供了极为丰富的库函数,如scanf(),printf(),sin(),cos()等,另外C语言还允许用户自己定义函数。用户可以把一些完成特定功能的模块编写成一个相对独立的函数,然后通过调用这些函数使程序完成特定的功能,这样就可以较好地实现操作过程的封装性。对用户隐藏各个操作的细节,从而降低程序设计的复杂度,提高程序的可维护性。
西南大学2020年春季C语言程序设计 【0039】课程考试大作业参考答案
else
printf("No triangle\n");
}
(3)程序的功能是:输入n(n≥1),计算1+(1+2)+ (1+2+3)+...+(1+2+3+…+n)的值,要求有输入输出提示。
(4)任意输入一个三位正整数,十位上的数字不动,将个位和百位上的数字交换,构成一个新的正整数后输出。(例如:523变为325)
while(r=m%n)
{ m=n; n=r;
}
return(n);
}
int main()
{ int int_num1, int_num2;
printf("请输入两个正的整数(之间用逗号隔开):\n ");
scanf("%d,%d",&int_num1,&int_num2);
printf("int_num1= %d,int_num2= %d\n",int_num1,int_num2);
temp=a[0];a[0]=a[2];a[2]=temp;
m=a[0]*100+ a[1]*10+ a[2];
printf("新的三位整数为%d\n",m);
}
(5)编写程序计算函数 的值,要求有输入输出提示,结果保留小数点后3位
(6)写一个函数fun用于计算字符串的长度,再写一个测试函数测试其功能。不允许使用strlen函数
答:途径: (1)理解和记忆程序基本结构;
(2)熟练上机调试技能;
2018—2019学年第二学期期末 C语言程序设计上机考试试题及答案
#include <stdio.h>
void main()
{ int a[10]={1,4,2,7,3,12,5,34,5,9},i,max,pos;
max = a[0];
pos = 0;
for ( i=1; i<10; i++)
/************找错误************/
2018—2019学年第二学期期末上机考试试题及答案
《C语言程序设计》
答题要求:
1、把监考教师发给的“Word答题册”文档重新命名为姓名+学号,本试卷的所有答案都写到该文档中并上交。
2、注意标清楚题号、保存文档。
3、编程题要求把源代码复制到Word文档中,把运行后的输出结果截图粘贴到代码下面。
本试题需在word文档【答题册】作答。(试题总分100分)
while(score<0||score>100);
t=score/10;
/*************找错误**************/
switch(score)
{
case 10:
case 9:printf("优秀!\n");break;
case 8:printf("良好!\n");break;
case 7:printf("中等!\n");break;
{
int x,y;
scanf("%d ",&x);
if()
y=-x;
else
y=;
printf("x=%d,y=%d\n",x,y);
西南大学0039《C语言》作业参考答案
西南大学网络与继续教育学院课程代码:0039 学年学季:20201单项选择题1、对于下面程序输出结果的判断中,正确的是()。
#include <stdio.h>void main(){int x;for(x=1;x<=100;x++)if (++x%2= =0)if (++x%3= =0)if (++x%5= =0)printf("%d,",x); }D. 输出31,61,91输出30,60,90不输出任何内容输出29,59,892、在循环结构中,continue语句的作用是( )E. 继续执行本次循环提前退出本重循环提前结束本次循环提前退出多重循环3、设char s[ ]=“1234567”;,执行printf(“%d,%d\n”,strlen(s),sizeof(s));后的输出结果是( )B. 7,87,78,88,74、执行语句x=(a=3,b=a--);后,x,a,b的值依次是()2,3,23,3,23,2,23,2,35、下面程序的输出结果是()。
#include "stdio.h"int main(){int x=-1,y=4;int k;k=x++<=0&&!(y--<=0);printf("%d,%d,%d",k,x,y);}0,0,31,1,21,1,21,0,36、下列程序的运行结果是()#include "stdio.h"int main( ){int a[3][3]={1,4,17,3,6,19,2,5,18},i,s=0;for(i=0;i<3;i++)s=s+a[i][2-i];printf("s=%d\n",s);}A. s=26s=25s=24s=227、对二维数组正确定义并初始化的是( )int a[3][ ]={{l,2,3},{4,5,6}}int a[3][3]={a,b,c,d,e,f,g}int a[ ][3]={1,2,3,4,5,6}int a[3][3]=(1,2,3,4,5,6)8、下面程序的输出结果是()。
C语言程序设计【0039】
(3)请简述程序设计语言与程序的区别与联系。在 C 语言中数据类型丰富,请你至少给出 4 一、 大作业题目 种以上的数据类型实例。(8 分) 答:区别:算法(Algorithm)就是对解决某问题所采用的方法和步骤的描述。程序设计 1. 简要回答问题(30 分) 语言设计上就是一组符号及规则的集合。它是由语法、语义、语用三个要素组成。一个程 (1)构建程序设计思想和方法是学习 C 语言程序设计的重要内容,也是提升阅读程序能力 序一般包括数据类型和算法两个方面的内容。其中数据类型(即数据结构)是对程序中的 和编写程序能力的保障。请简要说明你在 C 语言学习过程中做了哪些工作(譬如采用了哪 数据进行描述,指定数据在程序中的类型和数据的组织形式,它决定了数据的在内存中所 些方法和途径来学习?学习了哪些内容?)?通过 C 语言的学习,你有何感受和体会?要 占的存储空间和数据在内存中存放形式。而算法是对程序中数据的操作描述,是解决“做 求回答问题时必须真实真情表达(10 分) 什么”和“怎么做”的问题,源程序中的操作语句就是算法的体现。正如著名计算机科学 答: 通过一学期对 c 语言的学习, 我感觉学习 c 语言是有一定难度却又是非常有趣的科目。 家沃思(Nikiklaus Wirth)所提出的观点:程序=数据结构+算法。 也是很有帮助的,特别是对将要面对的计算机二级考试。 这段时间的学习我知道了 c 语 联系:程序设计语言是编写程序实现算法的语言工具。 言的基本特点有以下几点: 主要数据类型有:C 语言包括基本类型(整型、字符型、浮点型(单、双精度型)枚举类 1.语言简洁,使用灵活方便。 型)、构造类型(数组、结构体、共用体类型)、指针类型、空类型。 2.运算符丰富,表达能力强。 2.编程题(40 分) 3.数计类型丰富。 (1) 编写一个函数计算函数 f(x,y)=x3+y2+sin(x)的值,要求有输入输出提示,结果保留 4.目标程序质量高,具有面向硬件系统的特点。 小数点后 3 位。 5.具有结构化的控制语句和模块化的程序结构。 (2)编写一个程序计算下列公式的前 n 项的和。 6.具有编译预处理功能。 1*3 3*5 5*7 (2 * n 1) * (2 * n 1) 7.程序设计自由度大,可移植性好。 s ... 2 2 2 通过一段时间的学习使我掌握了: 2 4 6 (2 * n )2 c 语言的数据类型、常量与符号常量、变量、c 语言的运算符和表达式、赋值运算符和赋 (3)写一个函数统计一个字符串中数字字符的个数,再写一个测试主函数测试其功能。 值表达式、自增自减运算符以及逗号表达式等。 (4)输出 200-700 之间能够被 5 或 7 整除的所有整数,并计算满足条件的所有整数的平 结构化程序的三种基本结构、c 语句概述、数据输出包括字符输出函数 putchar()和格式 均值输出。 输出函数 printf()、数据输入包括字符输入函数 getchar()和格式输入函数 scanf(),还 (5) 利用随机函数产生 30 个 200-300 的随机整数存放在数组 a 中,找出其中的偶数放 有一些简单的 c 语程序设计举列等。 在数组 b 中,并对 b 数组的值按降序排列。提示:随机函数为 rand(),随机数发生器的初 前几天一直在看 c++语法,所以对一些比较实际的例子总感到比较抽象,但是那也是 始化函数为 srand(); 一个必需阶段,可能大家和我的学习方式不一样,但从刚接触程序到现在来看,发现这样 要求: 学习语言的方法挺不错的。 (1)程序中分别输出所有随机整数、所有求出的偶数以及排序前后的值。 (2)要求用模块化方法实现。 (2)构建算法是编写代码的重要环节,请问什么是算法?算法有哪些主要特征?算法的描 (3)程序必须有输入输出提示。 述方法有哪些?(12 分)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include <stdio.h>//首先要引入c语言的标准输入输出库文件,因为这个文件里有已经定义好的可以使用的函数
//接下来需要写一个main函数,这也是c语言程序里必不可少的一个函数,叫主函数,他是整个程序的入口函数,程序所有的功能实现都要在这个函数中体现。
但是这个函数有且仅有一个
int main()
{
//这是main函数的函数体,要实现什么功能,就把实现功能的语句写到这里面
//比如我要实现打印HelloWorld字符,那么我就调用printf()标准输出语句
printf("Hello World!\n");//这个语句表示原样输出引号内的字符,‘\n’表示换行
return0;//最后,因为main函数有一个int的返回类型限定,那么我们使用return语句返回一个int类型的值0.
}
//这样就结束了。
一个简单的但又完整的C程序就有了,
//下一步就是使用编译器编译成目标的可执行文件:
//如果是windows下的vc++,那么需要分别点击编译,链接两个按钮生成hello.exe可执行文件
//如果是linux下直接在shell中使用gcc hello.c就可以编译成可执行文件a.out
//最后就是运行了,windows下直接点击vc++的运行或双击hello.exe可以出现dos窗口运行,并显示结果,linux下使用“./a.out”可以直接运行,运行结果会显示在shell中。
//这就是整个完整的流程,包括每一步。
调试过程:设置断点,调试命令,察看变量,查看内存,
常见错误:C 语言程序设计的错误可分为语法错误、连接错误、逻辑错误和运行错误。
VC++ 和DEV C++都是C++语言的开发工具。
如果只是做些小程序,基本上看不出区别。
两者DEBUG和RELEASE上的时间有所不同。
还有一点就是,通常如果是在VC++下编写的代码,不是很规范,拿到DEV C++上会报错。
而反过来则可以运行。
这里涉及到GCC的问题,它对标准的支持表现在不支持非标准的东西,但是 DEV C++有个最大的好处就是体积小,没有VC++这么大,可以装到U盘里。
(3)
1 对于编译器处理更方便。
在编译的时候,编译器需要为变量定义符号列表,有显式的变量定义,可以让编译器更方便的查找到变量列表,从而确定变量符号列表,执行后续的编译操作。
2 不容易出错。
可以识别出变量名的手打错误。
比如定义了var_name,在调用的时候如果写作了var_nane, 如果没规定要先定义后使用,那么var_nane就会被当做一个新的变量使用,只到运行时才会发生错误。
而按照C语言的规定,在编译阶段就可以发现该错误。
3 程序更清晰。
变量定义时,直接指明类型,这样在阅读程序时不需要为查知变量类型而花费额外时间。
2、
(1)
#include <stdio.h>
main()
{
int i,n,sum=0;
printf("input n:");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
sum+=i;
}
printf ("sum=%d\n",sum);
}
(5)
#include<stdio.h>
#include<math.h>
int main()
{
int i = 0;
for(; i <= 999; i++)
{
int tmp = 0;
int sum = 0;
int count = 1;
tmp = i//把i赋值给tmp
while(tmp/10)//用while循环判断有几位数
{
count ++;//满足条件,计数器++
tmp /= 10;
}
tmp = i;//重新赋值
while(tmp)//判断i是否为水仙花数
{
sum += pow((tmp % 10), count);//pow函数,求一个数的次方,如输入参数pow(3,3),即得27
tmp /= 10;
}
if(sum == i)//如果sum等于i,找到了,并且输出
printf("%d ", i);
}
return 0;
}
(6)
#include<stdio.h>
#include<math.h>
#define N 5
int pri[N];
int flag=0;//判断有无素数无则返回1,有则返回0 int count=0;//素数个数
void pri me(int ar[],int n);
main()
{
int a[N];
int i,j,temp;
pri ntf("input %d numbers below:",N);
for(i=0; i<N; i++)
scanf("%d",&a[i]);
prime(a,N);
for(i=0; i<count; i++)
for(j=i+1;j<count;j++)
if(pri[i]>pri[j])
{
temp = pri[i];
pri[i] = pri[j];
pri[j] =temp;
}
if(flag == 1)
{
printf("After sorting:\n");
for(i=0; i<count; i++)
printf("%d\n",pri[i]);
printf("\n");
}
return 0;
} void prime(int ar[],int n) {
int i,j,m;
for(i=0; i<n; i++)
{
m=(int)(sqrt(ar[i])+1);
for(j=2; j<=m;j++)
if(ar[i]%j == 0)
break;
if(j>m)
{
flag=1;
pri[count++]=ar[i];
printf("%4d\n",ar[i]);
}
}
printf("No primer\n");
}
3、
(1)fun的功能是求m个数的平均值 (3)这些偶数的平均值是16。